From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============3760771759315511117==" MIME-Version: 1.0 From: Sreeni (Sreenivasa) Busam (Stellus) Subject: [SPDK] Request for clarification of NVMeoF test configuration and setup in initiator and target. Date: Mon, 11 Dec 2017 18:12:38 +0000 Message-ID: In-Reply-To: CGME20171211181239uscas1p105eeffcd8b90bb3f79b230169d3c5d62@uscas1p1.samsung.com List-ID: To: spdk@lists.01.org --===============3760771759315511117== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Ben, Lee, John and Teng, I am looking at the set of instructions from one of the email discussion re= garding setting up a NVMeoF setup for running SPDK test. I understood some = of the steps, have are few more questions, for which I need some informatio= n. Please take look and reply when you get a chance. I have attached the st= eps from the email for your reference. 1. NQN nqn.2016-06.io.spdk:cnode1 How was the nqn configured? Is it just node name of the target or what comm= and was used to configure? What does cnode1 mean? How is it used? I am trying to understand how it is = relevant to initiator. 2. Host nqn.2016-06.io.spdk:init It looks like nqn and host name the same. Please confirm. 3. "3) The nvme-cli tool is capable of configuring the Linux kernel's = built-in NVMe-oF initiator to connect to a target. You simply type somethin= g like "nvme connect -t rdma -a -s -n ", where the values = match the ones you put into the SPDK NVMe-oF target's configuration file. T= he initiator will then connect and a block device will appear on the initia= tor system at /dev/nvmeX." 4. What application is used to test the device /dev/nvmeX which appears on = the initiator when the configuration is successful? Can I use the fio to test the NVMeoF setup as per this configuration? Pleas= e tell any specific changes I need to make to fio configuration file. 5. In the similar way to local SSD NVME API's spdk_nvme_ns_cmd_read() and s= pdk_nvme_ns_write() used in hello_world program, can you please explain wha= t are the API's used in the target application to send the commands to the = underlying device? Please give some pointers how the NVME commands are sent from initiator to = target using the RDMA protocol. Any help would be greatly appreciated? Thanks a lot for your help, Sreeni --===============3760771759315511117== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11cy1hc2NpaSI+CjxtZXRhIG5hbWU9IkdlbmVyYXRv ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPgo8c3R5bGU+ PCEtLQovKiBGb250IERlZmluaXRpb25zICovCkBmb250LWZhY2UKCXtmb250LWZhbWlseToiQ2Ft YnJpYSBNYXRoIjsKCXBhbm9zZS0xOjIgNCA1IDMgNSA0IDYgMyAyIDQ7fQpAZm9udC1mYWNlCgl7 Zm9udC1mYW1pbHk6Ik1hbGd1biBHb3RoaWMiOwoJcGFub3NlLTE6MiAxMSA1IDMgMiAwIDAgMiAw IDQ7fQpAZm9udC1mYWNlCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsKCXBhbm9zZS0xOjIgMTUgNSAy IDIgMiA0IDMgMiA0O30KQGZvbnQtZmFjZQoJe2ZvbnQtZmFtaWx5OiJcQE1hbGd1biBHb3RoaWMi OwoJcGFub3NlLTE6MiAxMSA1IDMgMiAwIDAgMiAwIDQ7fQovKiBTdHlsZSBEZWZpbml0aW9ucyAq LwpwLk1zb05vcm1hbCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFsCgl7bWFyZ2luOjBpbjsK CW1hcmdpbi1ib3R0b206LjAwMDFwdDsKCWZvbnQtc2l6ZToxMS4wcHQ7Cglmb250LWZhbWlseToi Q2FsaWJyaSIsc2Fucy1zZXJpZjt9CmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsKCXttc28tc3R5 bGUtcHJpb3JpdHk6OTk7Cgljb2xvcjojMDU2M0MxOwoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGlu ZTt9CmE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBlcmxpbmtGb2xsb3dlZAoJe21zby1zdHlsZS1wcmlv cml0eTo5OTsKCWNvbG9yOiM5NTRGNzI7Cgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30Kc3Bh bi5FbWFpbFN0eWxlMTcKCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1jb21wb3NlOwoJZm9udC1m YW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7Cgljb2xvcjp3aW5kb3d0ZXh0O30KLk1zb0NocERl ZmF1bHQKCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsKCWZvbnQtZmFtaWx5OiJDYWxpYnJp IixzYW5zLXNlcmlmO30KQHBhZ2UgV29yZFNlY3Rpb24xCgl7c2l6ZTo4LjVpbiAxMS4waW47Cglt YXJnaW46MS4waW4gMS4waW4gMS4waW4gMS4waW47fQpkaXYuV29yZFNlY3Rpb24xCgl7cGFnZTpX b3JkU2VjdGlvbjE7fQotLT48L3N0eWxlPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPgo8bzpzaGFw ZWRlZmF1bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAvPgo8L3htbD48IVtlbmRpZl0t LT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4KPG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPgo8 bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4KPC9vOnNoYXBlbGF5b3V0PjwveG1sPjwh W2VuZGlmXS0tPgo8L2hlYWQ+Cjxib2R5IGxhbmc9IkVOLVVTIiBsaW5rPSIjMDU2M0MxIiB2bGlu az0iIzk1NEY3MiI+CjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+CjxwIGNsYXNzPSJNc29Ob3Jt YWwiPkhpIEJlbiwgTGVlLCBKb2huIGFuZCBUZW5nLDxvOnA+PC9vOnA+PC9wPgo8cCBjbGFzcz0i TXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SSBh bSBsb29raW5nIGF0IHRoZSBzZXQgb2YgaW5zdHJ1Y3Rpb25zIGZyb20gb25lIG9mIHRoZSBlbWFp bCBkaXNjdXNzaW9uIHJlZ2FyZGluZyBzZXR0aW5nIHVwIGEgTlZNZW9GIHNldHVwIGZvciBydW5u aW5nIFNQREsgdGVzdC4gSSB1bmRlcnN0b29kIHNvbWUgb2YgdGhlIHN0ZXBzLCBoYXZlIGFyZSBm ZXcgbW9yZSBxdWVzdGlvbnMsIGZvciB3aGljaCBJIG5lZWQgc29tZSBpbmZvcm1hdGlvbi4gUGxl YXNlIHRha2UKIGxvb2sgYW5kIHJlcGx5IHdoZW4geW91IGdldCBhIGNoYW5jZS4gSSBoYXZlIGF0 dGFjaGVkIHRoZSBzdGVwcyBmcm9tIHRoZSBlbWFpbCBmb3IgeW91ciByZWZlcmVuY2UuPG86cD48 L286cD48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjEuIE5RTiBucW4uMjAxNi0wNi5pby5zcGRr OmNub2RlMTxvOnA+PC9vOnA+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj5Ib3cgd2FzIHRoZSBu cW4gY29uZmlndXJlZD8gSXMgaXQganVzdCBub2RlIG5hbWUgb2YgdGhlIHRhcmdldCBvciB3aGF0 IGNvbW1hbmQgd2FzIHVzZWQgdG8gY29uZmlndXJlPwo8bzpwPjwvbzpwPjwvcD4KPHAgY2xhc3M9 Ik1zb05vcm1hbCI+V2hhdCBkb2VzIGNub2RlMSBtZWFuPyBIb3cgaXMgaXQgdXNlZD8gSSBhbSB0 cnlpbmcgdG8gdW5kZXJzdGFuZCBob3cgaXQgaXMgcmVsZXZhbnQgdG8gaW5pdGlhdG9yLjxvOnA+ PC9vOnA+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj4yLiBIb3N0IG5xbi4yMDE2LTA2LmlvLnNw ZGs6aW5pdDxvOnA+PC9vOnA+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JdCBsb29rcyBsaWtl IG5xbiBhbmQgaG9zdCBuYW1lIHRoZSBzYW1lLiBQbGVhc2UgY29uZmlybS4gPG86cD4KPC9vOnA+ PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj4zLiAmIzgyMjA7MykmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsgJm5ic3A7VGhlIG52bWUtY2xpIHRvb2wgaXMgY2FwYWJsZSBvZiBjb25maWd1cmluZyB0 aGUgTGludXgga2VybmVsJiM4MjE3O3MgYnVpbHQtaW4gTlZNZS1vRiBpbml0aWF0b3IgdG8gY29u bmVjdCB0byBhIHRhcmdldC4gWW91IHNpbXBseSB0eXBlIHNvbWV0aGluZyBsaWtlICYjODIyMDtu dm1lIGNvbm5lY3QgJiM4MjExO3QgcmRtYSAmIzgyMTE7YSAmbHQ7aXAmZ3Q7IC1zICZsdDtwb3J0 Jmd0OyAtbiAmbHQ7bnFuJmd0OyYjODIyMTssIHdoZXJlIHRoZSB2YWx1ZXMgbWF0Y2ggdGhlIG9u ZXMKIHlvdSBwdXQgaW50byB0aGUgU1BESyBOVk1lLW9GIHRhcmdldCYjODIxNztzIGNvbmZpZ3Vy YXRpb24gZmlsZS4gVGhlIGluaXRpYXRvciB3aWxsIHRoZW4gY29ubmVjdCBhbmQgYSBibG9jayBk ZXZpY2Ugd2lsbCBhcHBlYXIgb24gdGhlIGluaXRpYXRvciBzeXN0ZW0gYXQgL2Rldi9udm1lWC4m IzgyMjE7PG86cD48L286cD48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjQuIFdoYXQgYXBwbGlj YXRpb24gaXMgdXNlZCB0byB0ZXN0IHRoZSBkZXZpY2UgL2Rldi9udm1lWCB3aGljaCBhcHBlYXJz IG9uIHRoZSBpbml0aWF0b3Igd2hlbiB0aGUgY29uZmlndXJhdGlvbiBpcyBzdWNjZXNzZnVsPwo8 bzpwPjwvbzpwPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Q2FuIEkgdXNlIHRoZSBmaW8gdG8g dGVzdCB0aGUgTlZNZW9GIHNldHVwIGFzIHBlciB0aGlzIGNvbmZpZ3VyYXRpb24/IFBsZWFzZSB0 ZWxsIGFueSBzcGVjaWZpYyBjaGFuZ2VzIEkgbmVlZCB0byBtYWtlIHRvIGZpbyBjb25maWd1cmF0 aW9uIGZpbGUuPG86cD48L286cD48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjUuIEluIHRoZSBz aW1pbGFyIHdheSB0byBsb2NhbCBTU0QgTlZNRSBBUEkmIzgyMTc7cyBzcGRrX252bWVfbnNfY21k X3JlYWQoKSBhbmQgc3Bka19udm1lX25zX3dyaXRlKCkgdXNlZCBpbiBoZWxsb193b3JsZCBwcm9n cmFtLCBjYW4geW91IHBsZWFzZSBleHBsYWluIHdoYXQgYXJlIHRoZSBBUEkmIzgyMTc7cyB1c2Vk IGluIHRoZSB0YXJnZXQgYXBwbGljYXRpb24gdG8gc2VuZCB0aGUgY29tbWFuZHMgdG8gdGhlIHVu ZGVybHlpbmcKIGRldmljZT8gPG86cD48L286cD48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPlBs ZWFzZSBnaXZlIHNvbWUgcG9pbnRlcnMgaG93IHRoZSBOVk1FIGNvbW1hbmRzIGFyZSBzZW50IGZy b20gaW5pdGlhdG9yIHRvIHRhcmdldCB1c2luZyB0aGUgUkRNQSBwcm90b2NvbC48bzpwPjwvbzpw PjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+QW55IGhlbHAgd291bGQgYmUgZ3JlYXRseSBhcHBy ZWNpYXRlZD8gPG86cD48L286cD48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7 PC9vOnA+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj5UaGFua3MgYSBsb3QgZm9yIHlvdXIgaGVs cCw8bzpwPjwvbzpwPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+U3JlZW5pPG86cD48L286cD48 L3A+CjwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K --===============3760771759315511117== Content-Type: text/plain MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Steps_spdk_nvmeof_test_setup_v1.txt" SGkgTGVpLCBCZW4gYW5kIEpvaG4sDQoNClRoYW5rcyBzbyBtdWNoIGZvciB5b3VyIGluc3RydWN0 aW9ucyEgSSBoZWFyZCB0aGF0DQppbnRlbCBpcyBnb2luZyB0byByZWxlYXNlIGl0cyBvd24gU1BE SyBpbml0aWF0b3IsIG1heQ0KSSBrbm93IHRoZSBhcHByb3hpbWF0ZSB0aW1lIGZvciB0aGlzIHJl bGVhc2U/DQoNClRoYW5rcywNClRlbmcNCg0KRnJvbTogU1BESyBbbWFpbHRvOnNwZGstYm91bmNl cyBhdCBsaXN0cy4wMS5vcmddIE9uIEJlaGFsZiBPZiBLYXJpdWtpLCBKb2huIEsNClNlbnQ6IFdl ZG5lc2RheSwgTm92ZW1iZXIgMzAsIDIwMTYgMjoyMSBQTQ0KVG86IFN0b3JhZ2UgUGVyZm9ybWFu Y2UgRGV2ZWxvcG1lbnQgS2l0IDxzcGRrIGF0IGxpc3RzLjAxLm9yZz4NClN1YmplY3Q6IFJlOiBb U1BES10gaG93IHRvIHVzZSBzcGRrJ3MgbnZtZSBvdmVyIGZhYnJpY3MNCg0KVGVuZw0KSGVyZSBh cmUgc29tZSBub3RlcyB0aGF0IEkgdG9vayBvbiBteSBzeXN0ZW0gd2hlbiBzdGFydGluZyB0aGUg bnZtZiB0YXJnZXQuIEkgcHV0IHN0ZXBzIDEgliAzIGFuZCA1IGluIGEgc2NyaXB0IHRoYXQgSSBy dW4gd2hlbmV2ZXIgbXkgc3lzdGVtIHJlYm9vdHMuDQoxLiAgICAgIExvYWQgaWJfcmRtYV9tb2R1 bGVzDQpzdWRvIG1vZHByb2JlIGliX2NtDQpzdWRvIG1vZHByb2JlIGliX2NvcmUNCnN1ZG8gbW9k cHJvYmUgaWJfdWNtDQpzdWRvIG1vZHByb2JlIGliX3VtYWQNCnN1ZG8gbW9kcHJvYmUgaWJfdXZl cmJzDQpzdWRvIG1vZHByb2JlIGl3X2NtDQpzdWRvIG1vZHByb2JlIHJkbWFfY20NCnN1ZG8gbW9k cHJvYmUgcmRtYV91Y20NCjIuICAgICAgRGV0ZWN0IE1lbGxhbm94IE5JQ3MNCnN1ZG8gbW9kcHJv YmUgbWx4NV9jb3JlDQpzdWRvIG1vZHByb2JlIG1seDVfaWINCjMuICAgICAgQXNzaWduIE5JQ3Mg aXAgYWRkcmVzc2VzDQphLiAgICAgIHN1ZG8gaWZjb25maWcgZXRoMSAxOTIuMTY4LjEwMC44IG5l dG1hc2sgMjU1LjI1NS4yNTUuMCB1cA0KYi4gICAgICBzdWRvIGlmY29uZmlnIGV0aDIgMTkyLjE2 OC4xMDAuOSBuZXRtYXNrIDI1NS4yNTUuMjU1LjAgdXANCjQuICAgICAgU3RhcnQgdGhlIG52bWYg dGFyZ2V0DQpjZCB+L3NwZGsvYXBwL252bWZfdGd0DQpzdWRvIC4vbnZtZl90Z3QgLWMgbnZtZi5j b25mLmluICYNCg0KTXkgY29uZmlndXJhdGlvbiBmaWxlIGhhcyB0aGUgZm9sbG93aW5nIFN1YnN5 c3RlbXMNCg0KW1N1YnN5c3RlbTFdDQogIE5RTiBucW4uMjAxNi0wNi5pby5zcGRrOmNub2RlMQ0K ICBDb3JlIDANCiAgTW9kZSBEaXJlY3QNCiAgTGlzdGVuIFJETUEgMTkyLjE2OC4xMDAuODo0NDIw DQogIEhvc3QgbnFuLjIwMTYtMDYuaW8uc3Bkazppbml0DQogIE5WTWUgMDAwMDo4MTowMC4wDQoN CiMgTXVsdGlwbGUgc3Vic3lzdGVtcyBhcmUgYWxsb3dlZC4NCltTdWJzeXN0ZW0yXQ0KICBOUU4g bnFuLjIwMTYtMDYuaW8uc3Bkazpjbm9kZTINCiAgQ29yZSAwDQogIE1vZGUgRGlyZWN0DQogIExp c3RlbiBSRE1BIDE5Mi4xNjguMTAwLjk6NDQyMA0KICBIb3N0IG5xbi4yMDE2LTA2LmlvLnNwZGs6 aW5pdA0KIE5WTWUgMDAwMDo4NjowMC4wDQoNCg0KNS4gICAgICBPbiB0aGUgY2xpZW50IGxvYWQg bnZtZS1yZG1hIGtlcm5lbCBtb2R1bGUNCnN1ZG8gbW9kcHJvYmUgLXYgbnZtZS1yZG1hDQo2LiAg ICAgIFVzZSB0aGUgY2xpZXQgdG8gZGlzY292ZXIgdGhlIG52bWUgdGFyZ2V0DQpzdWRvIG52bWUg ZGlzY292ZXIgLXQgcmRtYSAtYSAxOTIuMTY4LjEwMC44IC1zIDQ0MjANCg0KDQpGcm9tOiBTUERL IFttYWlsdG86c3Bkay1ib3VuY2VzIGF0IGxpc3RzLjAxLm9yZ10gT24gQmVoYWxmIE9mIFdhbGtl ciwgQmVuamFtaW4NClNlbnQ6IFdlZG5lc2RheSwgTm92ZW1iZXIgMzAsIDIwMTYgOTo1NyBBTQ0K VG86IFN0b3JhZ2UgUGVyZm9ybWFuY2UgRGV2ZWxvcG1lbnQgS2l0IDxzcGRrIGF0IGxpc3RzLjAx Lm9yZzxtYWlsdG86c3BkayBhdCBsaXN0cy4wMS5vcmc+Pg0KU3ViamVjdDogUmU6IFtTUERLXSBo b3cgdG8gdXNlIHNwZGsncyBudm1lIG92ZXIgZmFicmljcw0KDQpUaGUgZ3VpZGUgbGlua2VkIGJl bG93IGlzIG91ciBiZXN0IGF0dGVtcHQgYXQgZG9jdW1lbnRhdGlvbiBzbyBmYXIuIEkgZG8gcmVh bGx5IG5lZWQgdG8gd3JpdGUgbW9yZS4gVGhlIGdlbmVyYWwgb3V0bGluZSBpcyB0aGUgZm9sbG93 aW5nLCBhc3N1bWluZyB5b3UgaGF2ZSB0d28gc3lzdGVtcyAoaW5pdGlhdG9yIGFuZCB0YXJnZXQp IGNvbm5lY3RlZCB2aWEgUkRNQSBOSUNzOg0KDQoNCjEpICAgICBPbiB0aGUgdGFyZ2V0IHN5c3Rl bSwgY29tcGlsZSBTUERLLiBGb2xsb3cgdGhlIGd1aWRlIGxpbmtlZCBiZWxvdyB0byBzdGFydCB0 aGUgU1BESyBOVk1lLW9GIHRhcmdldCBhcHBsaWNhdGlvbi4gQSBmdWxseSBkb2N1bWVudGVkIGV4 YW1wbGUgY29uZmlndXJhdGlvbiBmaWxlIGlzIGluIDxzcGRrIHJlcG8+L2V0Yy9udm1mL252bWYu Y29uZi5pbiCWIHVzZSB0aGF0IGFzIHRoZSBzdGFydGluZyBwb2ludC4NCg0KMikgICAgIE9uIHRo ZSBpbml0aWF0b3Igc3lzdGVtLCBtYWtlIHN1cmUgeW91IGFyZSBydW5uaW5nIExpbnV4IGtlcm5l bCA0LjggYW5kIGhhdmUgbnZtZS1jbGkgaW5zdGFsbGVkLiBUaGlzIGlzIG91dHNpZGUgb2YgU1BE Sywgc28gd2UgZG9uknQgcHJvdmlkZSBpbnN0cnVjdGlvbnMgb24gaG93IHRvIGRvIHRoaXMuIEJ5 IGZhciwgdGhlIGVhc2llc3Qgd2F5IGlzIHRvIGp1c3QgaW5zdGFsbCBGZWRvcmEgMjQvMjUgb24g dGhlIGluaXRpYXRvci4gSXQgaGFzIGEgc3VpdGFibGUga2VybmVsIGJ5IGRlZmF1bHQgYW5kIHRo ZSBudm1lLWNsaSB0b29sIGlzIHBhY2thZ2VkLCBzbyB5b3UgaGF2ZSB6ZXJvIGFkZGl0aW9uYWwg Y29uZmlndXJhdGlvbiB0byBkby4NCg0KMykgICAgIFRoZSBudm1lLWNsaSB0b29sIGlzIGNhcGFi bGUgb2YgY29uZmlndXJpbmcgdGhlIExpbnV4IGtlcm5lbJJzIGJ1aWx0LWluIE5WTWUtb0YgaW5p dGlhdG9yIHRvIGNvbm5lY3QgdG8gYSB0YXJnZXQuIFlvdSBzaW1wbHkgdHlwZSBzb21ldGhpbmcg bGlrZSCTbnZtZSBjb25uZWN0IJZ0IHJkbWEglmEgPGlwPiAtcyA8cG9ydD4gLW4gPG5xbj6ULCB3 aGVyZSB0aGUgdmFsdWVzIG1hdGNoIHRoZSBvbmVzIHlvdSBwdXQgaW50byB0aGUgU1BESyBOVk1l LW9GIHRhcmdldJJzIGNvbmZpZ3VyYXRpb24gZmlsZS4gVGhlIGluaXRpYXRvciB3aWxsIHRoZW4g Y29ubmVjdCBhbmQgYSBibG9jayBkZXZpY2Ugd2lsbCBhcHBlYXIgb24gdGhlIGluaXRpYXRvciBz eXN0ZW0gYXQgL2Rldi9udm1lWC4NCg0KT25seSBzdGVwICMxIGlzIFNQREstc3BlY2lmaWMuIFN0 ZXAgIzIgYW5kICMzIGFyZSB0aGUgc2FtZSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBMaW51eCBrZXJu ZWyScyBOVk1lLW9GIHRhcmdldCCWIHRoYXSScyB3aHkgd2UgZG9uknQgcmVhbGx5IGRvY3VtZW50 IHRob3NlIHRvZGF5Lg0KDQpGcm9tOiBTUERLIFttYWlsdG86c3Bkay1ib3VuY2VzIGF0IGxpc3Rz LjAxLm9yZ10gT24gQmVoYWxmIE9mIExlaSBaaHUNClNlbnQ6IFR1ZXNkYXksIE5vdmVtYmVyIDI5 LCAyMDE2IDc6NTQgUE0NClRvOiBTdG9yYWdlIFBlcmZvcm1hbmNlIERldmVsb3BtZW50IEtpdCA8 c3BkayBhdCBsaXN0cy4wMS5vcmc8bWFpbHRvOnNwZGsgYXQgbGlzdHMuMDEub3JnPj4NClN1Ympl Y3Q6IFtTUERLXSA/PzogaG93IHRvIHVzZSBzcGRrJ3MgbnZtZSBvdmVyIGZhYnJpY3MNCg0KSGks DQoNCllvdSBjYW4gZm9sbG93IHRoaXMgZ3VpZGU6DQpOVk1lIG92ZXIgRmFicmljcyBUYXJnZXQg R2V0dGluZyBTdGFydGVkIEd1aWRlDQpodHRwOi8vd3d3LnNwZGsuaW8vc3Bkay9kb2MvbnZtZl9n ZXR0aW5nX3N0YXJ0ZWQuaHRtbA0KDQo/Pz86IFNQREsgW21haWx0bzpzcGRrLWJvdW5jZXMgYXQg bGlzdHMuMDEub3JnXSA/PyBXYW5nLCBUZW5nDQo/Pz8/OiAyMDE2PzExPzMwPyA2OjQ1DQo/Pz86 IHNwZGsgYXQgbGlzdHMuMDEub3JnPG1haWx0bzpzcGRrIGF0IGxpc3RzLjAxLm9yZz4NCj8/OiBb U1BES10gaG93IHRvIHVzZSBzcGRrJ3MgbnZtZSBvdmVyIGZhYnJpY3MNCg0KSGkgYWxsLA0KDQpJ cyB0aGVyZSBhbnkgZGV0YWlsZWQgaW5zdHJ1Y3Rpb24gb3Igc2FtcGxlIGNvZGUgZm9yIHVzaW5n IFNQREsncyBOVk1lIG92ZXIgZmFicmljcz8NCkhvdyB0byBzZXQgdXAgdGhlIGV4cGVyaW1lbnQ/ IEkgd291bGQgcmVhbGx5IGFwcHJlY2lhdGUgaWYgYW55b25lIGdpdmUgbWUgc29tZQ0KSW5zdHJ1 Y3Rpb25zIG9yIG1hdGVyaWFscyBvbiB0aGlzLg0KDQpUaGFua3MsDQpUZW5nDQo= --===============3760771759315511117==--