From mboxrd@z Thu Jan 1 00:00:00 1970 From: Adonay Felipe Nogueira Subject: Writing recipe for Crypto++, and getting build errors Date: Wed, 21 Sep 2016 12:24:00 -0300 Message-ID: <1474471440.5872.41.camel@adfeno-VPCEG17FB> Mime-Version: 1.0 Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="=-59VaC73GfMdQaM3m2sLU" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:50437) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bmjzR-0006P2-ND for guix-devel@gnu.org; Wed, 21 Sep 2016 12:03:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bmjzN-0000w3-Cf for guix-devel@gnu.org; Wed, 21 Sep 2016 12:03:17 -0400 Received: from smtp17.openmailbox.org ([62.4.1.51]:59181 helo=smtp2.openmailbox.org) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bmjzM-0000vR-Sb for guix-devel@gnu.org; Wed, 21 Sep 2016 12:03:13 -0400 List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org --=-59VaC73GfMdQaM3m2sLU Content-Type: multipart/mixed; boundary="=-QP6JUjWQxXQ3uJEQYJeK" --=-QP6JUjWQxXQ3uJEQYJeK Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Note: I'm not a programmer, the only thing I can understand is basic Guile Scheme and basic Bash scripting. So, I'm not really fit to make changes in the Crypto++'s source files by myself. I'm writing a recipe for Crypto++ and other packages. I'm not a programmer, but I decided to try to contribute to Guix by making the first steps on porting Tahoe-LAFS and related dependencies. In attachment is the set of recipes I'm writing. The examples given assume $GUIX_PACKAGE_PATH referring to directories where the user-supplied recipes can be found. Doing: $ guix build --fallback "cryptopp" ... outputs: # Begin of output starting phase `build' make: *** No rule to make target 'dynamic'. Stop. phase `build' failed after 0.2 seconds builder for `/gnu/store/k863vf0ab6hkdhbm7zgmbfs1c3wdqpqs-cryptopp-5.6.4.drv' failed with exit code 1 @ build-failed /gnu/store/k863vf0ab6hkdhbm7zgmbfs1c3wdqpqs-cryptopp-5.6.4.drv= - 1 builder for `/gnu/store/k863vf0ab6hkdhbm7zgmbfs1c3wdqpqs-cryptopp-5.6.= 4.drv' failed with exit code 1 guix build: error: build failed: build of `/gnu/store/k863vf0ab6hkdhbm7zgmbfs1c3wdqpqs-cryptopp-5.6.4.drv' failed # End of output However, I did some tests by doing: $ guix build --fallback --keep-failed "cryptopp" $ cd "[Failed build path]" $ sudo --user=3D"[User owner of failed build path]" guix environment --pure "cryptopp" $ make "dynamic" And it **does** start building. If instead of `make "dynamic"`, one does `make -dnpw "dynamic"` (both in the recipe itself and in the series of commands given earlier), one can see that: * The build phase in `guix build` doesn't find the GNUmakefile. * Attempting the series of commands given earlier, `make` **does** find the GNUmakefile file. Besides, someone at #guix suggested me to look at what the NixOS project did with their Crypto++ package, and it seems they are using it normally, without removing the dependency on `ldconfig`. ## Additional subject: Absence of `ldconfig` Seeing the GNUmakefile, it seems to expect some commands to be available in the environment, so I tried finding those and seeing if the environment sees them from the profile. If I remake the environment given before **without** the `--pure` option, specially if one is using Guix on other distribution, doing: $ which ar ranlib cp mv egrep chmod mkdir ln ldconfig uname gcc g++ cut which ... outputs: # Begin of output /gnu/store/4bs2xiv9mr0p8vfy046b4jaqn0958wk4-profile/bin/ar /gnu/store/4bs2xiv9mr0p8vfy046b4jaqn0958wk4-profile/bin/ranlib /gnu/store/4bs2xiv9mr0p8vfy046b4jaqn0958wk4-profile/bin/cp /gnu/store/4bs2xiv9mr0p8vfy046b4jaqn0958wk4-profile/bin/mv /gnu/store/4bs2xiv9mr0p8vfy046b4jaqn0958wk4-profile/bin/egrep /gnu/store/4bs2xiv9mr0p8vfy046b4jaqn0958wk4-profile/bin/chmod /gnu/store/4bs2xiv9mr0p8vfy046b4jaqn0958wk4-profile/bin/mkdir /gnu/store/4bs2xiv9mr0p8vfy046b4jaqn0958wk4-profile/bin/ln /sbin/ldconfig /gnu/store/4bs2xiv9mr0p8vfy046b4jaqn0958wk4-profile/bin/uname /gnu/store/4bs2xiv9mr0p8vfy046b4jaqn0958wk4-profile/bin/gcc /gnu/store/4bs2xiv9mr0p8vfy046b4jaqn0958wk4-profile/bin/g++ /gnu/store/4bs2xiv9mr0p8vfy046b4jaqn0958wk4-profile/bin/cut /usr/bin/which # End of output This indicates that `ldconfig` is absent. Someone in #guix told me that it was supposed to be provided by=20 Additionally, `which` was included in the output (comes from the "debianutils" package on .deb-based distributions) and is also absent, and the GNUmakefile seems to expect `which` at some point (although I'm not sure if the build process reached that), so the absence of `which` might be good to discuss on other bug report. Respectfully, Adonay. --=20 # pt-BR: Brasileiro | en: Brazilian * pt-BR: Palestra sobre liberdade de software (movimento filos=C3=B3fico po= l=C3=ADtico-social, n=C3=A3o tecnol=C3=B3gico). * en: Gives talks about software freedom (philosophical, political and so= cial movement, not technological). * pt-BR: Volunt=C3=A1rio avaliador de liberdade de software (para software = pagos ou gratuitos). * en: Volunteer evaluator of software freedom (for paid software, or grat= is software). * pt-BR: Presta suporte e consultoria b=C3=A1sicos sobre software livre. * en: Gives basic support and consulting about free/libre software. ## pt-BR: Sobre mim e contato | en: About me and contact --=-QP6JUjWQxXQ3uJEQYJeK Content-Disposition: attachment; filename="tahoe-lafs.scm" Content-Type: text/x-scheme; name="tahoe-lafs.scm"; charset="UTF-8" Content-Transfer-Encoding: base64 Ozs7IEdOVSBHdWl4IC0tLSBGdW5jdGlvbmFsIHBhY2thZ2UgbWFuYWdlbWVudCBmb3IgR05VDQo7 OzsgQ29weXJpZ2h0IMKpIDIwMTIsIDIwMTMsIDIwMTQsIDIwMTUsIDIwMTYgTHVkb3ZpYyBDb3Vy dMOocyA8bHVkb0BnbnUub3JnPg0KOzs7IENvcHlyaWdodCDCqSAyMDE0IEFuZHJlYXMgRW5nZSA8 YW5kcmVhc0BlbmdlLmZyPg0KOzs7IENvcHlyaWdodCDCqSAyMDEyIE5pa2l0YSBLYXJldG5pa292 IDxuaWtpdGFAa2FyZXRuaWtvdi5vcmc+DQo7OzsgQ29weXJpZ2h0IMKpIDIwMTQsIDIwMTUsIDIw MTYgTWFyayBIIFdlYXZlciA8bWh3QG5ldHJpcy5vcmc+DQo7OzsgQ29weXJpZ2h0IMKpIDIwMTQg QWxleCBLb3N0IDxhbGV6b3N0QGdtYWlsLmNvbT4NCjs7OyBDb3B5cmlnaHQgwqkgMjAxNCwgMjAx NSBNYW5vbGlzIEZyYWdraXNrb3MgUmFna291c2lzIDxtYW5vbGlzODM3QGdtYWlsLmNvbT4NCjs7 OyBDb3B5cmlnaHQgwqkgMjAxNiBFZnJhaW0gRmxhc2huZXIgPGVmcmFpbUBmbGFzaG5lci5jby5p bD4NCjs7OyBDb3B5cmlnaHQgwqkgMjAxNiBKYW4gTmlldXdlbmh1aXplbiA8amFubmVrZUBnbnUu b3JnPg0KOzs7IENvcHlyaWdodCDCqSAyMDE2IEFkb25heSAiYWRmZW5vIiBGZWxpcGUgTm9ndWVp cmEgPGh0dHBzOi8vbGlicmVwbGFuZXQub3JnL3dpa2kvVXNlcjpBZGZlbm8+IDxhZGZlbm9Ab3Bl bm1haWxib3gub3JnPg0KOzs7DQo7OzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEd1aXguDQo7 OzsNCjs7OyBHTlUgR3VpeCBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5IGl0DQo7OzsgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCjs7OyB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQNCjs7OyB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQo7OzsNCjs7OyBHTlUgR3VpeCBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQNCjs7OyBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQo7 OzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQ0KOzs7IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu DQo7OzsNCjs7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQ0KOzs7IGFsb25nIHdpdGggR05VIEd1aXguICBJZiBub3QsIHNl ZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uDQoNCihkZWZpbmUtbW9kdWxlICh0YWhv ZS1sYWZzKQ0KICAjOnVzZS1tb2R1bGUgKChndWl4IGxpY2Vuc2VzKQ0KICAgICAgIzpzZWxlY3Qg KGJvb3N0MS4wIGV4cGF0IGdwbDIrKSkNCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgZ2Nj KQ0KICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBweXRob24pDQogICM6dXNlLW1vZHVsZSAo Z251IHBhY2thZ2VzIHppcCkNCiAgIzp1c2UtbW9kdWxlIChndWl4IGJ1aWxkLXN5c3RlbSBnbnUp DQogICM6dXNlLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0gcHl0aG9uKQ0KICAjOnVzZS1tb2R1 bGUgKGd1aXggZG93bmxvYWQpDQogICM6dXNlLW1vZHVsZSAoZ3VpeCBwYWNrYWdlcykpDQoNCihk ZWZpbmUtcHVibGljIGNyeXB0b3BwDQogIDs7IFRPRE86IFRlc3QgcmVwcm9kdWNpYmlsaXR5Lg0K ICAocGFja2FnZQ0KICAgIChuYW1lICJjcnlwdG9wcCIpDQogICAgKHZlcnNpb24gIjUuNi40IikN CiAgICAoc291cmNlDQogICAgICAob3JpZ2luDQogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQ0K ICAgICAgICAodXJpICJodHRwOi8vd3d3LmNyeXB0b3BwLmNvbS9jcnlwdG9wcDU2NC56aXAiKQ0K ICAgICAgICAoZmlsZS1uYW1lIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi56aXAi KSkNCiAgICAgICAgKHNoYTI1Ng0KICAgICAgICAgIChiYXNlMzINCiAgICAgICAgICAgICIxbXNh cjI0YTM4cnh6cTB4Z21qZjA5aHphdzJsdjZzNDh2bmJiaGZyZjVhd24xdmg2aHh5IikpKSkNCiAg ICAoYnVpbGQtc3lzdGVtIGdudS1idWlsZC1zeXN0ZW0pDQogICAgKGlucHV0cyBgKCgiZ2NjIiAs Z2NjKQ0KICAgICAgICAgICAgICAoInVuemlwIiAsdW56aXApKSkNCiAgICAoYXJndW1lbnRzIGAo IzptYWtlLWZsYWdzIGAoLChzdHJpbmctYXBwZW5kICJQUkVGSVg9Ig0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFzc29jLXJlZiAlb3V0cHV0cyAib3V0 IikpKQ0KICAgICAgICAgICAgICAgICAjOnBoYXNlcyAobW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQt cGhhc2VzDQogICAgICAgICAgICAgICAgICAgKGRlbGV0ZSBgY29uZmlndXJlKSA7IEZJWE1FOiBD b25maWd1cmF0aW9uIGlzIGRvbmUgaW5zaWRlICJjb25maWcuaCIgZmlsZT8/Pw0KICAgICAgICAg ICAgICAgICAgIChyZXBsYWNlIGBidWlsZA0KICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSog Xw0KICAgICAgICAgICAgICAgICAgICAgICAoemVybz8gKHN5c3RlbSogIm1ha2UiICJkeW5hbWlj IikpKSkpKSkNCiAgICAoaG9tZS1wYWdlICJodHRwOi8vd3d3LmNyeXB0b3BwLmNvbS8iKQ0KICAg IChzeW5vcHNpcyAiQ3J5cHRvKysgTGlicmFyeSBpcyBhIGZyZWUgQysrIGNsYXNzIGxpYnJhcnkg b2YgY3J5cHRvZ3JhcGhpYyBzY2hlbWVzIikNCiAgICAoZGVzY3JpcHRpb24gIkNyeXB0bysrIExp YnJhcnkgaXMgYSBmcmVlIEMrKyBjbGFzcyBsaWJyYXJ5IG9mIGNyeXB0b2dyYXBoaWMgc2NoZW1l cy4NCiAgICAgIA0KICAgICAgVGhpcyBwYWNrYWdlIHdhcyBub3QgdGVzdGVkIGZvciByZXByb2R1 Y2liaWxpdHkuIikNCiAgICAobGljZW5zZSBib29zdDEuMCkpKQ0KDQooZGVmaW5lLXB1YmxpYyBw eXRob24yLWF0dHJzDQogIDs7IFRPRE86IFRlc3Qgd2l0aCBQeXRob24gMy4NCiAgOzsgVE9ETzog VGVzdCByZXByb2R1Y2liaWxpdHkuDQogIChwYWNrYWdlDQogICAgKG5hbWUgInB5dGhvbjItYXR0 cnMiKQ0KICAgICh2ZXJzaW9uICIxNi4yLjAiKQ0KICAgIChzb3VyY2UNCiAgICAgIChvcmlnaW4N CiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpDQogICAgICAgICh1cmkgKHN0cmluZy1hcHBlbmQg Imh0dHBzOi8vZ2l0aHViLmNvbS9oeW5lay9hdHRycy9hcmNoaXZlLyINCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2ZXJzaW9uICIudGFyLmd6IikpDQogICAgICAgIChmaWxlLW5hbWUgKHN0 cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLnRhci5neiIpKQ0KICAgICAgICAoc2hhMjU2 DQogICAgICAgICAgKGJhc2UzMg0KICAgICAgICAgICAgIjFmcXptNHZ3M3FrODBpM2RpZ240anNk eXhmcnp5ZmdwODc5cm5kcTF6OHB5OXJsbWw3Y3ciKSkpKQ0KICAgIChidWlsZC1zeXN0ZW0gcHl0 aG9uLWJ1aWxkLXN5c3RlbSkNCiAgICAoaW5wdXRzIGAoKCJweXRob24yLXNldHVwdG9vbHMiICxw eXRob24yLXNldHVwdG9vbHMpKSkNCiAgICAoYXJndW1lbnRzIGAoIzpweXRob24gLHB5dGhvbi0y DQogICAgICAgICAgICAgICAgICM6dGVzdHM/ICNmIDsgRklYTUU6IFRlc3RzIHJlcXVpcmUgcHl0 ZXN0Lg0KICAgICAgICAgICAgICAgICApKQ0KICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHVi LmNvbS9oeW5lay9hdHRycyIpDQogICAgKHN5bm9wc2lzICJQeXRob24gYXR0cmlidXRlcyB3aXRo b3V0IGJvaWxlcnBsYXRlIikNCiAgICAoZGVzY3JpcHRpb24gIlB5dGhvbiBwYWNrYWdlIHRvIGVh c2Ugd3JpdGluZyBjbGFzc2VzIGJ5IG5vdCBuZWVkaW5nIHRvIGltcGxlbWVudA0KICAgICAgb2Jq ZWN0IHByb3RvY29scywgdHVwbGVzIG9yIG5hbWVkdHVwbGVzLCBhbmQgc28gcmVzdWx0aW5nIGlu IGhpZ2hlcg0KICAgICAgcnVudGltZSBwZXJmb3JtYW5jZS4NCiAgICAgIA0KICAgICAgVGhpcyBw YWNrYWdlIHdhcyBub3QgdGVzdGVkIGZvciByZXByb2R1Y2liaWxpdHkuIikNCiAgICAobGljZW5z ZSBleHBhdCkpKQ0KDQooZGVmaW5lLXB1YmxpYyBweXRob24yLWNoYXJhY3RlcmlzdGljDQogIDs7 IFRPRE86IFRlc3Qgd2l0aCBQeXRob24gMy4NCiAgOzsgVE9ETzogVGVzdCByZXByb2R1Y2liaWxp dHkuDQogIChwYWNrYWdlDQogICAgKG5hbWUgInB5dGhvbjItY2hhcmFjdGVyaXN0aWMiKQ0KICAg ICh2ZXJzaW9uICIxNC4zLjAiKQ0KICAgIChzb3VyY2UNCiAgICAgIChvcmlnaW4NCiAgICAgICAg KG1ldGhvZCB1cmwtZmV0Y2gpDQogICAgICAgICh1cmkgKHN0cmluZy1hcHBlbmQgImh0dHBzOi8v Z2l0aHViLmNvbS9oeW5lay9jaGFyYWN0ZXJpc3RpYy9hcmNoaXZlLyINCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2ZXJzaW9uICIudGFyLmd6IikpDQogICAgICAgIChmaWxlLW5hbWUgKHN0 cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLnRhci5neiIpKQ0KICAgICAgICAoc2hhMjU2 DQogICAgICAgICAgKGJhc2UzMg0KICAgICAgICAgICAgIjA1cDhrNjhrNmJiZDAyZjN4bDJuMTNz NDc1OGtoZ3oxaW1wZnlnNnZmcTFjNHhjaTdtMjYiKSkpKQ0KICAgIChidWlsZC1zeXN0ZW0gcHl0 aG9uLWJ1aWxkLXN5c3RlbSkNCiAgICAoaW5wdXRzIGAoKCJweXRob24yLXNldHVwdG9vbHMiICxw eXRob24yLXNldHVwdG9vbHMpKSkNCiAgICAoYXJndW1lbnRzIGAoIzpweXRob24gLHB5dGhvbi0y DQogICAgICAgICAgICAgICAgICM6dGVzdHM/ICNmIDsgRklYTUU6IFRlc3RzIHJlcXVpcmUgcHl0 ZXN0Lg0KICAgICAgICAgICAgICAgICApKQ0KICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHVi LmNvbS9oeW5lay9jaGFyYWN0ZXJpc3RpYyIpDQogICAgKHN5bm9wc2lzICJQeXRob24gYXR0cmli dXRlcyB3aXRob3V0IGJvaWxlcnBsYXRlIikNCiAgICAoZGVzY3JpcHRpb24gIlB5dGhvbiBwYWNr YWdlIHdpdGggY2xhc3MgZGVjb3JhdG9ycyB0aGF0IGVhc2UgdGhlIGNob3JlcyBvZiBpbXBsZW1l bnRpbmcNCiAgICAgIHRoZSBtb3N0IGNvbW1vbiBhdHRyaWJ1dGUtcmVsYXRlZCBvYmplY3QgcHJv dG9jb2xzLg0KICAgICAgDQogICAgICBQcmVkZWNlc3NvciBvZiBhdHRycy4NCiAgICAgIA0KICAg ICAgVGhpcyBwYWNrYWdlIHdhcyBub3QgdGVzdGVkIGZvciByZXByb2R1Y2liaWxpdHkuIikNCiAg ICAobGljZW5zZSBleHBhdCkpKQ0KDQooZGVmaW5lLXB1YmxpYyBweXRob24yLWZvb2xzY2FwDQog IDs7IFRPRE86IFRlc3Qgd2l0aCBQeXRob24gMy4NCiAgOzsgVE9ETzogVGVzdCByZXByb2R1Y2li aWxpdHkuDQogIChwYWNrYWdlDQogICAgKG5hbWUgInB5dGhvbjItZm9vbHNjYXAiKQ0KICAgICh2 ZXJzaW9uICIwLjEyLjMiKQ0KICAgIChzb3VyY2UNCiAgICAgIChvcmlnaW4NCiAgICAgICAgKG1l dGhvZCB1cmwtZmV0Y2gpDQogICAgICAgICh1cmkgKHN0cmluZy1hcHBlbmQgImh0dHBzOi8vZ2l0 aHViLmNvbS93YXJuZXIvZm9vbHNjYXAvYXJjaGl2ZS9mb29sc2NhcC0iDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgdmVyc2lvbiAiLnRhci5neiIpKQ0KICAgICAgICAoZmlsZS1uYW1lIChz dHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi50YXIuZ3oiKSkNCiAgICAgICAgKHNoYTI1 Ng0KICAgICAgICAgIChiYXNlMzINCiAgICAgICAgICAgICIwcDU4c3oxcnM0ZzZ6aDg4YzQxZmti ZjdpaDhnbHB3bjFmNnhtNGJmZDFudm1tYTQ5czU5IikpKSkNCiAgICAoYnVpbGQtc3lzdGVtIHB5 dGhvbi1idWlsZC1zeXN0ZW0pDQogICAgKGlucHV0cyBgKCgicHl0aG9uMi1weW9wZW5zc2wiICxw eXRob24yLXB5b3BlbnNzbCkNCiAgICAgICAgICAgICAgKCJweXRob24yLXNldHVwdG9vbHMiICxw eXRob24yLXNldHVwdG9vbHMpDQogICAgICAgICAgICAgICgicHl0aG9uMi10d2lzdGVkLXRscyIg LHB5dGhvbjItdHdpc3RlZC10bHMpKSkNCiAgICAoYXJndW1lbnRzIGAoIzpweXRob24gLHB5dGhv bi0yKSkNCiAgICAoaG9tZS1wYWdlICJodHRwczovL2Zvb2xzY2FwLmxvdGhhci5jb20vIikNCiAg ICAoc3lub3BzaXMgIlJlbW90ZSBvYmplY3QtbWVzc2FnaW5nIGZvciBQeXRob24rVHdpc3RlZCIp DQogICAgKGRlc2NyaXB0aW9uICJGb29sc2NhcCBpcyBhbiBSUEMvUk1JIChSZW1vdGUgUHJvY2Vk dXJlIENhbGwgLyBSZW1vdGUgTWV0aG9kIEludm9jYXRpb24pDQogICAgICBwcm90b2NvbCBmb3Ig dXNlIHdpdGggVHdpc3RlZCwgZGVyaXZlZC9pbnNwaXJlZCBieSBUd2lzdGVkJ3MgYnVpbHQtaW4N CiAgICAgIFBlcnNwZWN0aXZlIEJyb2tlciBwYWNrYWdlLg0KICAgICAgDQogICAgICBUaGlzIHBh Y2thZ2Ugd2FzIG5vdCB0ZXN0ZWQgZm9yIHJlcHJvZHVjaWJpbGl0eS4iKQ0KICAgIChsaWNlbnNl IGV4cGF0KSkpDQoNCihkZWZpbmUtcHVibGljIHB5dGhvbjItbmV2b3cNCiAgOzsgVE9ETzogVGVz dCB3aXRoIFB5dGhvbiAzLg0KICA7OyBUT0RPOiBUZXN0IHJlcHJvZHVjaWJpbGl0eS4NCiAgKHBh Y2thZ2UNCiAgICAobmFtZSAicHl0aG9uMi1uZXZvdyIpDQogICAgKHZlcnNpb24gIjAuMTQuMiIp DQogICAgKHNvdXJjZQ0KICAgICAgKG9yaWdpbg0KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkN CiAgICAgICAgKHVyaSAoc3RyaW5nLWFwcGVuZCAiaHR0cHM6Ly9naXRodWIuY29tL3R3aXN0ZWQv bmV2b3cvYXJjaGl2ZS9uZXZvdy0iDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lv biAiLnRhci5neiIpKQ0KICAgICAgICAoZmlsZS1uYW1lIChzdHJpbmctYXBwZW5kIG5hbWUgIi0i IHZlcnNpb24gIi50YXIuZ3oiKSkNCiAgICAgICAgKHNoYTI1Ng0KICAgICAgICAgIChiYXNlMzIN CiAgICAgICAgICAgICIwaW43Z2R2aTdzYnhkNW1sMnFjNGx2M2xpZnMyemR3bmhnY21wbGkxcTJi YTVuNWdhamttIikpKSkNCiAgICAoYnVpbGQtc3lzdGVtIHB5dGhvbi1idWlsZC1zeXN0ZW0pDQog ICAgKGlucHV0cyBgKCgicHl0aG9uMi1zZXR1cHRvb2xzIiAscHl0aG9uMi1zZXR1cHRvb2xzKQ0K ICAgICAgICAgICAgICAoInB5dGhvbjItdHdpc3RlZCIgLHB5dGhvbjItdHdpc3RlZCkNCiAgICAg ICAgICAgICAgKSkNCiAgICAoYXJndW1lbnRzIGAoIzpweXRob24gLHB5dGhvbi0yKSkNCiAgICAo aG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vdHdpc3RlZC9uZXZvdyIpDQogICAgKHN5bm9w c2lzICJXZWIgYXBwbGljYXRpb24gY29uc3RydWN0aW9uIGtpdCIpDQogICAgKGRlc2NyaXB0aW9u ICJEaXZtb2QgTmV2b3cgaXMgYSB3ZWIgYXBwbGljYXRpb24gY29uc3RydWN0aW9uIGtpdCB3cml0 dGVuIGluIFB5dGhvbi4gSXQNCiAgICAgIGlzIGRlc2lnbmVkIHRvIGFsbG93IHRoZSBwcm9ncmFt bWVyIHRvIGV4cHJlc3MgYXMgbXVjaCBvZiB0aGUgdmlldyBsb2dpYw0KICAgICAgYXMgZGVzaXJl ZCBpbiBQeXRob24sIGFuZCBpbmNsdWRlcyBhIHB1cmUgUHl0aG9uIFhNTCBleHByZXNzaW9uIHN5 bnRheA0KICAgICAgbmFtZWQgc3RhbiB0byBmYWNpbGl0YXRlIHRoaXMuIEhvd2V2ZXIgaXQgYWxz byBwcm92aWRlcyByaWNoIHN1cHBvcnQgZm9yDQogICAgICBkZXNpZ25lci1lZGl0ZWQgdGVtcGxh dGVzLCB1c2luZyBhIHZlcnkgc21hbGwgWE1MIGF0dHJpYnV0ZSBsYW5ndWFnZSB0bw0KICAgICAg cHJvdmlkZSBiaS1kaXJlY3Rpb25hbCB0ZW1wbGF0ZSBtYW5pcHVsYXRpb24gY2FwYWJpbGl0eS4N CiAgICAgIA0KICAgICAgVGhpcyBwYWNrYWdlIHdhcyBub3QgdGVzdGVkIGZvciByZXByb2R1Y2li aWxpdHkuIikNCiAgICAobGljZW5zZSBleHBhdCkpKQ0KDQooZGVmaW5lLXB1YmxpYyBweXRob24y LXB5Y3J5cHRvcHANCiAgOzsgVE9ETzogVGVzdCB3aXRoIFB5dGhvbiAzLg0KICA7OyBUT0RPOiBU ZXN0IHJlcHJvZHVjaWJpbGl0eS4NCiAgKHBhY2thZ2UNCiAgICAobmFtZSAicHl0aG9uMi1weWNy eXB0b3BwIikNCiAgICAodmVyc2lvbiAiMC43LjEiKQ0KICAgIChzb3VyY2UNCiAgICAgIChvcmln aW4NCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpDQogICAgICAgICh1cmkgKHN0cmluZy1hcHBl bmQgImh0dHBzOi8vZ2l0aHViLmNvbS90YWhvZS1sYWZzL3B5Y3J5cHRvcHAvYXJjaGl2ZS9weWNy eXB0b3BwLSINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uICIudGFyLmd6Iikp DQogICAgICAgIChmaWxlLW5hbWUgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLnRh ci5neiIpKQ0KICAgICAgICAoc2hhMjU2DQogICAgICAgICAgKGJhc2UzMg0KICAgICAgICAgICAg IjBpZ2hzZHhycWNtczBiZzYzYWN5cXBmbWlhOWM0ZDJxeng1cDhzcDk5NGwzd2NxZGM3YmEiKSkp KQ0KICAgIChidWlsZC1zeXN0ZW0gcHl0aG9uLWJ1aWxkLXN5c3RlbSkNCiAgICAoaW5wdXRzIGAo KCJjcnlwdG9wcCIgLGNyeXB0b3BwKQ0KICAgICAgICAgICAgICAoInB5dGhvbjItc2V0dXB0b29s cyIgLHB5dGhvbjItc2V0dXB0b29scykpKQ0KICAgIChhcmd1bWVudHMgYCgjOnB5dGhvbiAscHl0 aG9uLTIpKQ0KICAgIChob21lLXBhZ2UgImh0dHBzOi8vdGFob2UtbGFmcy5vcmcvdHJhYy9weWNy eXB0b3BwIikNCiAgICAoc3lub3BzaXMgIlB5dGhvbiBiaW5kaW5ncyB0byB0aGUgQ3J5cHRvKysg bGlicmFyeSIpDQogICAgKGRlc2NyaXB0aW9uICJQeWNyeXB0b3BwIGlzIGEgY29sbGVjdGlvbiBv ZiBQeXRob24gaW50ZXJmYWNlcyB0byBhIGZldyBnb29kIGNyeXB0bw0KICAgICAgYWxnb3JpdGht cy4NCiAgICAgIA0KICAgICAgVGhpcyBwYWNrYWdlIHdhcyBub3QgdGVzdGVkIGZvciByZXByb2R1 Y2liaWxpdHkuIikNCiAgICAobGljZW5zZSBncGwyKykpKQ0KDQooZGVmaW5lLXB1YmxpYyBweXRo b24yLXB5dXRpbA0KICA7OyBUT0RPOiBUZXN0IHdpdGggUHl0aG9uIDMuDQogIDs7IFRPRE86IFRl c3QgcmVwcm9kdWNpYmlsaXR5Lg0KICAocGFja2FnZQ0KICAgIChuYW1lICJweXRob24yLXB5dXRp bCIpDQogICAgKHZlcnNpb24gIjIuMC4wIikNCiAgICAoc291cmNlDQogICAgICAob3JpZ2luDQog ICAgICAgIChtZXRob2QgdXJsLWZldGNoKQ0KICAgICAgICAodXJpIChzdHJpbmctYXBwZW5kICJo dHRwczovL3B5cGkucHl0aG9uLm9yZy9wYWNrYWdlcy9zb3VyY2UvcC9weXV0aWwvcHl1dGlsIg0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb24gIi50YXIuZ3oiKSkNCiAgICAgICAg KHNoYTI1Ng0KICAgICAgICAgIChiYXNlMzINCiAgICAgICAgICAgICIxZnNnOXl6NW1pMnNiMGg2 YzF2dmNxY2h4NTZpODluYnZkYjVnZmd2MWlhM2IydzVyYThjIikpKSkNCiAgICAoYnVpbGQtc3lz dGVtIHB5dGhvbi1idWlsZC1zeXN0ZW0pDQogICAgKGlucHV0cyBgKCgicHl0aG9uMi1zZXR1cHRv b2xzIiAscHl0aG9uMi1zZXR1cHRvb2xzKSkpDQogICAgKGFyZ3VtZW50cyBgKCM6cHl0aG9uICxw eXRob24tMikpDQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly90YWhvZS1sYWZzLm9yZy90cmFjL3B5 dXRpbCIpDQogICAgKHN5bm9wc2lzICJBIGNvbGxlY3Rpb24gb2YgdXRpbGl0aWVzIGZvciBQeXRo b24gcHJvZ3JhbW1lcnMiKQ0KICAgIChkZXNjcmlwdGlvbiAiQSBjb2xsZWN0aW9uIG9mIHV0aWxp dGllcyBmb3IgUHl0aG9uIHByb2dyYW1tZXJzLg0KICAgICAgDQogICAgICBUaGlzIHBhY2thZ2Ug d2FzIG5vdCB0ZXN0ZWQgZm9yIHJlcHJvZHVjaWJpbGl0eS4iKQ0KICAgIChsaWNlbnNlIGdwbDIr KSkpDQoNCihkZWZpbmUtcHVibGljIHB5dGhvbjItc2VydmljZS1pZGVudGl0eQ0KICA7OyBUT0RP OiBUZXN0IHdpdGggUHl0aG9uIDMuDQogIDs7IFRPRE86IFRlc3QgcmVwcm9kdWNpYmlsaXR5Lg0K ICAocGFja2FnZQ0KICAgIChuYW1lICJweXRob24yLXNlcnZpY2UtaWRlbnRpdHkiKQ0KICAgICh2 ZXJzaW9uICIxNi4wLjAiKQ0KICAgIChzb3VyY2UNCiAgICAgIChvcmlnaW4NCiAgICAgICAgKG1l dGhvZCB1cmwtZmV0Y2gpDQogICAgICAgICh1cmkgKHN0cmluZy1hcHBlbmQgImh0dHBzOi8vZ2l0 aHViLmNvbS9weWNhL3NlcnZpY2VfaWRlbnRpdHkvYXJjaGl2ZS8iDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgdmVyc2lvbiAiLnRhci5neiIpKQ0KICAgICAgICAoZmlsZS1uYW1lIChzdHJp bmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi50YXIuZ3oiKSkNCiAgICAgICAgKHNoYTI1Ng0K ICAgICAgICAgIChiYXNlMzINCiAgICAgICAgICAgICIxMGprd3NjNGE0aXdyc3kwa2NkajVyanBh dndrZDUxa2Y0dmIyc3IyeGozMzQ1bGxwMXFwIikpKSkNCiAgICAoYnVpbGQtc3lzdGVtIHB5dGhv bi1idWlsZC1zeXN0ZW0pDQogICAgKGlucHV0cyBgKCgicHl0aG9uMi1hdHRycyIscHl0aG9uMi1h dHRycykNCiAgICAgICAgICAgICAgKCJweXRob24yLXB5YXNuMSIgLHB5dGhvbjItcHlhc24xKQ0K ICAgICAgICAgICAgICAoInB5dGhvbjItcHlhc24xLW1vZHVsZXMiICxweXRob24yLXB5YXNuMS1t b2R1bGVzKQ0KICAgICAgICAgICAgICAoInB5dGhvbjItcHlvcGVuc3NsIiAscHl0aG9uMi1weW9w ZW5zc2wpDQogICAgICAgICAgICAgICgicHl0aG9uMi1zZXR1cHRvb2xzIiAscHl0aG9uMi1zZXR1 cHRvb2xzKQ0KICAgICAgICAgICAgICApKQ0KICAgIChhcmd1bWVudHMgYCgNCiAgICAgICAgICAg ICAgICAgIzp0ZXN0cz8gI2YgOyBGSVhNRTogVGVzdHMgcmVxdWlyZSBweXRlc3QuDQogICAgICAg ICAgICAgICAgICkpDQogICAgKGFyZ3VtZW50cyBgKCM6cHl0aG9uICxweXRob24tMikpDQogICAg KGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3B5Y2Evc2VydmljZV9pZGVudGl0eSIpDQog ICAgKHN5bm9wc2lzICJTZXJ2aWNlIGlkZW50aXR5IHZlcmlmaWNhdGlvbiBmb3IgcHlPcGVuU1NM IikNCiAgICAoZGVzY3JpcHRpb24gIlVzZSB0aGlzIHBhY2thZ2UgaWYgeW91IHVzZSBweU9wZW5T U0wgYW5kIGRvbuKAmXQgd2FudCB0byBiZSBNSVRNZWQgb3INCiAgICAgIGlmIHlvdSB3YW50IHRv IHZlcmlmeSB0aGF0IGEgUHlDQSBjcnlwdG9ncmFwaHkgY2VydGlmaWNhdGUgaXMgdmFsaWQgZm9y DQogICAgICBhIGNlcnRhaW4gaG9zdG5hbWUuDQogICAgICANCiAgICAgIHNlcnZpY2VfaWRlbnRp dHkgYXNwaXJlcyB0byBnaXZlIHlvdSBhbGwgdGhlIHRvb2xzIHlvdSBuZWVkIGZvciB2ZXJpZnlp bmcNCiAgICAgIHdoZXRoZXIgYSBjZXJ0aWZpY2F0ZSBpcyB2YWxpZCBmb3IgdGhlIGludGVuZGVk IHB1cnBvc2VzLg0KICAgICAgDQogICAgICBJbiB0aGUgc2ltcGxlc3QgY2FzZSwgdGhpcyBtZWFu cyBob3N0IG5hbWUgdmVyaWZpY2F0aW9uLiBIb3dldmVyLA0KICAgICAgc2VydmljZV9pZGVudGl0 eSBpbXBsZW1lbnRzIFJGQyA2MTI1IGZ1bGx5IGFuZCBwbGFucyB0byBhZGQgb3RoZXIgcmVsZXZh bnQNCiAgICAgIFJGQ3MgdG9vLg0KICAgICAgDQogICAgICBUaGlzIHBhY2thZ2Ugd2FzIG5vdCB0 ZXN0ZWQgZm9yIHJlcHJvZHVjaWJpbGl0eS4iKQ0KICAgIChsaWNlbnNlIGV4cGF0KSkpDQoNCihk ZWZpbmUtcHVibGljIHB5dGhvbjItdHdpc3RlZC10bHMNCiAgOzsgVE9ETzogVGVzdCB3aXRoIFB5 dGhvbiAzLg0KICA7OyBUT0RPOiBUZXN0IHJlcHJvZHVjaWJpbGl0eS4NCiAgKHBhY2thZ2UgKGlu aGVyaXQgcHl0aG9uMi10d2lzdGVkKQ0KICAgIChuYW1lICJweXRob24yLXR3aXN0ZWQtdGxzIikN CiAgICAoaW5wdXRzIGAoKCJweXRob24yLXB5b3BlbnNzbCIgLHB5dGhvbjItcHlvcGVuc3NsKQ0K ICAgICAgICAgICAgICAoInB5dGhvbjItc2VydmljZS1pZGVudGl0eSIgLHB5dGhvbjItc2Vydmlj ZS1pZGVudGl0eSkNCiAgICAgICAgICAgICAgKCJweXRob24yLWlkbmEiICxweXRob24yLWlkbmEp DQogICAgICAgICAgICAgICxAKHBhY2thZ2UtaW5wdXRzIHB5dGhvbjItdHdpc3RlZCkpKQ0KICAg IChkZXNjcmlwdGlvbiAoc3RyaW5nLWFwcGVuZCAocGFja2FnZS1kZXNjcmlwdGlvbiBweXRob24y LXR3aXN0ZWQpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIFRoaXMgcGFja2Fn ZSB3YXMgbm90IHRlc3RlZCBmb3IgcmVwcm9kdWNpYmlsaXR5LiIpKSkpDQoNCihkZWZpbmUtcHVi bGljIHB5dGhvbjItemZlYw0KICA7OyBUT0RPOiBUZXN0IHdpdGggUHl0aG9uIDMuDQogIDs7IFRP RE86IFRlc3QgcmVwcm9kdWNpYmlsaXR5Lg0KICAocGFja2FnZQ0KICAgIChuYW1lICJweXRob24y LXpmZWMiKQ0KICAgICh2ZXJzaW9uICIxLjQuMjQiKQ0KICAgIChzb3VyY2UNCiAgICAgIChvcmln aW4NCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpDQogICAgICAgICh1cmkgKHN0cmluZy1hcHBl bmQgImh0dHBzOi8vZ2l0aHViLmNvbS90YWhvZS1sYWZzL3pmZWMvYXJjaGl2ZS96ZmVjLSINCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uICIudGFyLmd6IikpDQogICAgICAgIChm aWxlLW5hbWUgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLnRhci5neiIpKQ0KICAg ICAgICAoc2hhMjU2DQogICAgICAgICAgKGJhc2UzMg0KICAgICAgICAgICAgIjEzZDV6NjYwN2p6 aGxqbmE3eWx2eHFnMzdkN2hzcjkxcDN4NGE3OTkwNjRjaWMxMXc1ZmIiKSkpKQ0KICAgIChidWls ZC1zeXN0ZW0gcHl0aG9uLWJ1aWxkLXN5c3RlbSkNCiAgICAoaW5wdXRzIGAoKCJweXRob24yLXNl dHVwdG9vbHMiICxweXRob24yLXNldHVwdG9vbHMpDQogICAgICAgICAgICAgICgicHl0aG9uMi1w eXV0aWwiICxweXRob24yLXB5dXRpbCkNCiAgICAgICAgICAgICAgKSkNCiAgICAoYXJndW1lbnRz IGAoIzpweXRob24gLHB5dGhvbi0yKSkNCiAgICAoaG9tZS1wYWdlICJodHRwczovL3RhaG9lLWxh ZnMub3JnL3RyYWMvemZlYyIpDQogICAgKHN5bm9wc2lzICJFZmZpY2llbnQsIHBvcnRhYmxlIGVy YXN1cmUgY29kaW5nIHRvb2wiKQ0KICAgIChkZXNjcmlwdGlvbiAiR2VuZXJhdGUgcmVkdW5kYW50 IGJsb2NrcyBvZiBpbmZvcm1hdGlvbiBzdWNoIHRoYXQgaWYgc29tZSBvZiB0aGUgYmxvY2tzDQog ICAgICBhcmUgbG9zdCB0aGVuIHRoZSBvcmlnaW5hbCBkYXRhIGNhbiBiZSByZWNvdmVyZWQgZnJv bSB0aGUgcmVtYWluaW5nDQogICAgICBibG9ja3MuIFRoaXMgcGFja2FnZSBpbmNsdWRlcyBjb21t YW5kLWxpbmUgdG9vbHMsIEMgQVBJLCBQeXRob24gQVBJLA0KICAgICAgYW5kIEhhc2tlbGwgQVBJ Lg0KICAgICAgDQogICAgICBUaGlzIHBhY2thZ2Ugd2FzIG5vdCB0ZXN0ZWQgZm9yIHJlcHJvZHVj aWJpbGl0eS4iKQ0KICAgIChsaWNlbnNlIGdwbDIrKSkpDQoNCihkZWZpbmUtcHVibGljIHRhaG9l LWxhZnMNCiAgOzsgVE9ETzogVGVzdCB3aXRoIFB5dGhvbiAzLg0KICA7OyBUT0RPOiBUZXN0IHJl cHJvZHVjaWJpbGl0eS4NCiAgKHBhY2thZ2UNCiAgICAobmFtZSAidGFob2UtbGFmcyIpDQogICAg KHZlcnNpb24gIjEuMTEuMCIpDQogICAgKHNvdXJjZQ0KICAgICAgKG9yaWdpbg0KICAgICAgICAo bWV0aG9kIHVybC1mZXRjaCkNCiAgICAgICAgKHVyaSAoc3RyaW5nLWFwcGVuZCAiaHR0cHM6Ly93 d3cudGFob2UtbGFmcy5vcmcvZG93bmxvYWRzL3RhaG9lLWxhZnMtIg0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZlcnNpb24gIi50YXIuZ3oiKSkNCiAgICAgICAgKHNoYTI1Ng0KICAgICAg ICAgIChiYXNlMzINCiAgICAgICAgICAgICIwOWp4YjRnd2ExNjN5ZDVqZjNxZDU2OTFzbG1rcXZt dnJ4d2RzcHBhMG5xdnlkNHcybGhtIikpKSkNCiAgICAoYnVpbGQtc3lzdGVtIHB5dGhvbi1idWls ZC1zeXN0ZW0pDQogICAgKGlucHV0cyBgKCgicHl0aG9uMi1jaGFyYWN0ZXJpc3RpYyIgLHB5dGhv bjItY2hhcmFjdGVyaXN0aWMpDQogICAgICAgICAgICAgICgicHl0aG9uMi1mb29sc2NhcCIgLHB5 dGhvbjItZm9vbHNjYXApDQogICAgICAgICAgICAgICgicHl0aG9uMi1uZXZvdyIgLHB5dGhvbjIt bmV2b3cpDQogICAgICAgICAgICAgICgicHl0aG9uMi1weWFzbjEiICxweXRob24yLXB5YXNuMSkN CiAgICAgICAgICAgICAgKCJweXRob24yLXB5YXNuMS1tb2R1bGVzIiAscHl0aG9uMi1weWFzbjEt bW9kdWxlcykNCiAgICAgICAgICAgICAgKCJweXRob24yLXB5Y3J5cHRvIiAscHl0aG9uMi1weWNy eXB0bykNCiAgICAgICAgICAgICAgKCJweXRob24yLXB5Y3J5cHRvcHAiICxweXRob24yLXB5Y3J5 cHRvcHApDQogICAgICAgICAgICAgICgicHl0aG9uMi1weW9wZW5zc2wiICxweXRob24yLXB5b3Bl bnNzbCkNCiAgICAgICAgICAgICAgKCJweXRob24yLXNlcnZpY2UtaWRlbnRpdHkiICxweXRob24y LXNlcnZpY2UtaWRlbnRpdHkpDQogICAgICAgICAgICAgICgicHl0aG9uMi1zZXR1cHRvb2xzIiAs cHl0aG9uMi1zZXR1cHRvb2xzKQ0KICAgICAgICAgICAgICAoInB5dGhvbjItc2ltcGxlanNvbiIg LHB5dGhvbjItc2ltcGxlanNvbikNCiAgICAgICAgICAgICAgKCJweXRob24yLXR3aXN0ZWQtdGxz IiAscHl0aG9uMi10d2lzdGVkLXRscykNCiAgICAgICAgICAgICAgKCJweXRob24yLXpmZWMiICxw eXRob24yLXpmZWMpDQogICAgICAgICAgICAgICgicHl0aG9uMi16b3BlLWludGVyZmFjZSIgLHB5 dGhvbjItem9wZS1pbnRlcmZhY2UpDQogICAgICAgICAgICAgICkpDQogICAgKGFyZ3VtZW50cyBg KCM6cHl0aG9uICxweXRob24tMikpDQogICAgKHN5bm9wc2lzICJEZWNlbnRyYWxpemVkIHN0b3Jh Z2Ugc3lzdGVtIHdpdGggcHJvdmlkZXItaW5kZXBlbmRlbnQgc2VjdXJpdHkiKQ0KICAgIChkZXNj cmlwdGlvbiAiVGFob2UtTEFGUyBpcyBhIGRlY2VudHJhbGl6ZWQgZGF0YSBzdG9yZS4gSXQgZGlz dHJpYnV0ZXMgeW91ciBmaWxlc3lzdGVtDQogICAgICBhY3Jvc3MgbXVsdGlwbGUgc2VydmVycywg YW5kIGV2ZW4gaWYgc29tZSBvZiB0aGUgc2VydmVycyBmYWlsIG9yIGFyZSB0YWtlbg0KICAgICAg b3ZlciBieSBhbiBhdHRhY2tlciwgdGhlIGVudGlyZSBmaWxlc3lzdGVtIGNvbnRpbnVlcyB0byB3 b3JrIGNvcnJlY3RseQ0KICAgICAgYW5kIHRvIHByZXNlcnZlIHlvdXIgcHJpdmFjeSBhbmQgc2Vj dXJpdHkuDQogICAgICANCiAgICAgIFRoaXMgcGFja2FnZSB3YXMgbm90IHRlc3RlZCBmb3IgcmVw cm9kdWNpYmlsaXR5LiIpDQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly90YWhvZS1sYWZzLm9yZy8i KQ0KICAgIChsaWNlbnNlIGdwbDIrKSkpDQo= --=-QP6JUjWQxXQ3uJEQYJeK-- --=-59VaC73GfMdQaM3m2sLU Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iF4EABEIAAYFAlfiphEACgkQyNbhUgHunaGvqgEA13FAuuGzckxw7XHLajDOm9qO QN7E+ibYNl/UCAti6XUBANbDuSVdKlAGeC0Q9bU85iR8FrXYVOjtkAXAja3ivluy =0hdU -----END PGP SIGNATURE----- --=-59VaC73GfMdQaM3m2sLU--