{







	"shortName": "silly_update_units",







    "name" : "silly update units v1.4",







	"description" : "some units in https://zero-k.info/Forum/Thread/37328",







	"options":{







		"noelo" : 1,







		"equalcom" : "enable",







		"tweakdefs" : "LS0tQGNsYXNzIHR3ZWFrX3VuaXQNCi0tLUBmaWVsZCBuYW1lIHN0cmluZw0KLS0tQGZpZWxkIHR3ZWFrcyBmdW5jdGlvbg0KDQotLS1AY2xhc3MgY29weV90d2Vha191bml0DQotLS1AZmllbGQgbmFtZSBzdHJpbmcNCi0tLUBmaWVsZCB0d2Vha191bml0IHR3ZWFrX3VuaXQNCg0KbG9jYWwgZnVuY3Rpb24gZG9fdHdlYWsodHdlYWtzKQ0KCS0tbG9jYWwgbmFtZSx0d2Vha3M9dHdlYWtfdW5pdC5uYW1lLHR3ZWFrX3VuaXQudHdlYWtzDQogICAgcmV0dXJuIGZ1bmN0aW9uICh1ZCkNCiAgICAgICAgU3ByaW5nLlV0aWxpdGllcy5PdmVyd3JpdGVUYWJsZUlucGxhY2UodWQsIGxvd2Vya2V5cyh0d2Vha3MpLCB0cnVlKQ0KICAgIGVuZA0KCQ0KZW5kDQoNCmxvY2FsIGZ1bmN0aW9uIGRvX3R3ZWFrX3VuaXQodHdlYWtfdW5pdCkNCglsb2NhbCBuYW1lLHR3ZWFrcz10d2Vha191bml0Lm5hbWUsdHdlYWtfdW5pdC50d2Vha3MNCiAgICB0d2Vha3MoVW5pdERlZnNbbmFtZV0pDQplbmQNCg0KbG9jYWwgZnVuY3Rpb24gZG9fY29weV90d2Vha191bml0KGNvcHlfdHdlYWtfdW5pdCkNCglsb2NhbCBzcmNuYW1lLHRvbmFtZT1jb3B5X3R3ZWFrX3VuaXQubmFtZSxjb3B5X3R3ZWFrX3VuaXQudHdlYWtfdW5pdC5uYW1lDQogICAgVW5pdERlZnNbdG9uYW1lXT1Db3B5VGFibGUoVW5pdERlZnNbc3JjbmFtZV0sdHJ1ZSkNCiAgICBkb190d2Vha191bml0KGNvcHlfdHdlYWtfdW5pdC50d2Vha191bml0KQ0KICAgIC0tY29weV90d2Vha191bml0LnR3ZWFrX3VuaXQoVW5pdERlZnNbdG9uYW1lXSkNCgktLWRvX3R3ZWFrX3VuaXQoY29weV90d2Vha191bml0LnR3ZWFrX3VuaXQpDQplbmQNCg0KbG9jYWwgZnVuY3Rpb24gc2V0X21vcnRoKHNyY25hbWUsY29weWVkbmFtZSxtb3JwaHRpbWUpDQogICAgaWYgbm90IFVuaXREZWZzW3NyY25hbWVdIHRoZW4NCiAgICAgICAgZXJyb3IoInVuaXQgIiAuLiBzcmNuYW1lIC4uICJkbyBub3QgZXhpc3QiKQ0KICAgIGVuZA0KICAgIG1vcnBodGltZT1tb3JwaHRpbWUgb3IgMTANCglVbml0RGVmc1tzcmNuYW1lXS5jdXN0b21wYXJhbXMubW9ycGh0bz1jb3B5ZWRuYW1lDQoJVW5pdERlZnNbc3JjbmFtZV0uY3VzdG9tcGFyYW1zLm1vcnBodGltZT1tb3JwaHRpbWUNCmVuZA0KDQpsb2NhbCBmdW5jdGlvbiBzZXRfbW9ydGhfbXVsKHNyY25hbWUsY29weWVkbmFtZSxtb3JwaHRpbWUsbW9ydGhwcmljZSkNCiAgICBpZiBub3QgVW5pdERlZnNbc3JjbmFtZV0gdGhlbg0KICAgICAgICBlcnJvcigidW5pdCAiIC4uIHNyY25hbWUgLi4gImRvIG5vdCBleGlzdCIpDQogICAgZW5kDQogICAgbW9ydGhwcmljZT1tb3J0aHByaWNlIG9yIFVuaXREZWZzW2NvcHllZG5hbWVdLm1ldGFsY29zdC1Vbml0RGVmc1tzcmNuYW1lXS5tZXRhbGNvc3QNCiAgICBsb2NhbCB1ZF9jcD1Vbml0RGVmc1tzcmNuYW1lXS5jdXN0b21wYXJhbXMNCiAgICBsb2NhbCBpPTENCiAgICBtb3JwaHRpbWU9bW9ycGh0aW1lIG9yIDEwDQogICAgd2hpbGUgdHJ1ZSBkbw0KICAgICAgICBpZiBub3QgdWRfY3BbIm1vcnBodG9fIiAuLiBpXSB0aGVuDQogICAgICAgICAgICB1ZF9jcFsibW9ycGh0b18iIC4uIGldPWNvcHllZG5hbWUNCiAgICAgICAgICAgIHVkX2NwWyJtb3JwaHRpbWVfIiAuLiBpXT1tb3JwaHRpbWUNCiAgICAgICAgICAgIHVkX2NwWyJtb3JwaGNvc3RfIiAuLiBpXT1tb3J0aHByaWNlDQogICAgICAgICAgICBicmVhaw0KICAgICAgICBlbmQNCiAgICAgICAgaT1pKzENCiAgICBlbmQNCmVuZA0KDQpsb2NhbCBmdW5jdGlvbiBzZXRfY29weV90d2Vha19tb3J0aChjb3B5X3R3ZWFrX3VuaXQsbW9ycGh0aW1lKQ0KICAgIGxvY2FsIHNyY25hbWUsY29weWVkbmFtZT1jb3B5X3R3ZWFrX3VuaXQubmFtZSxjb3B5X3R3ZWFrX3VuaXQudHdlYWtfdW5pdC5uYW1lDQogICAgc2V0X21vcnRoKHNyY25hbWUsY29weWVkbmFtZSxtb3JwaHRpbWUpDQplbmQNCg0KbG9jYWwgZnVuY3Rpb24gYnVmZl9zdG9yZShuYW1lLHZhbHVlKQ0KICAgIGlmIG5vdCBVbml0RGVmc1tuYW1lXSB0aGVuDQogICAgICAgIGVycm9yKCJ1bml0ICIgLi4gbmFtZSAuLiAiZG8gbm90IGV4aXN0IikNCiAgICBlbmQNCiAgICBVbml0RGVmc1tuYW1lXS5tZXRhbHN0b3JhZ2U9KFVuaXREZWZzW25hbWVdLm1ldGFsc3RvcmFnZSBvciAwKSt2YWx1ZQ0KICAgIFVuaXREZWZzW25hbWVdLmVuZXJneXN0b3JhZ2U9KFVuaXREZWZzW25hbWVdLmVuZXJneXN0b3JhZ2Ugb3IgMCkrdmFsdWUNCmVuZA0KLS1bPVsNCmxvY2FsIGZ1bmN0aW9uIHNldF9jb3B5X3R3ZWFrX21vcnRoX3N0b3JlKGNvcHlfdHdlYWtfdW5pdCxtb3JwaHRpbWUpDQogICAgbG9jYWwgc3JjbmFtZSxjb3B5ZWRuYW1lPWNvcHlfdHdlYWtfdW5pdC5uYW1lLGNvcHlfdHdlYWtfdW5pdC50d2Vha191bml0Lm5hbWUNCiAgICBidWZmX3N0b3JlKHNyY25hbWUsVW5pdERlZnNbY29weWVkbmFtZV0ubWV0YWxjb3N0LVVuaXREZWZzW3NyY25hbWVdLm1ldGFsY29zdCkNCiAgICBzZXRfbW9ydGgoc3JjbmFtZSxjb3B5ZWRuYW1lLG1vcnBodGltZSkNCmVuZF09XQ0KDQpsb2NhbCBmdW5jdGlvbiBzZXRfY29weV90d2Vha19tb3J0aF9tdWwoY29weV90d2Vha191bml0LG1vcnBodGltZSxtb3J0aHByaWNlKQ0KICAgIGxvY2FsIHNyY25hbWUsY29weWVkbmFtZT1jb3B5X3R3ZWFrX3VuaXQubmFtZSxjb3B5X3R3ZWFrX3VuaXQudHdlYWtfdW5pdC5uYW1lDQogICAgc2V0X21vcnRoX211bChzcmNuYW1lLGNvcHllZG5hbWUsbW9ycGh0aW1lLG1vcnRocHJpY2UpDQplbmQNCi0tWz1bDQpsb2NhbCBmdW5jdGlvbiBzZXRfY29weV90d2Vha19tb3J0aF9tdWwoY29weV90d2Vha191bml0LG1vcnBodGltZSxtb3J0aHByaWNlKQ0KICAgIGxvY2FsIHNyY25hbWUsY29weWVkbmFtZT1jb3B5X3R3ZWFrX3VuaXQubmFtZSxjb3B5X3R3ZWFrX3VuaXQudHdlYWtfdW5pdC5uYW1lDQogICAgbW9ydGhwcmljZT1tb3J0aHByaWNlIG9yIFVuaXREZWZzW2NvcHllZG5hbWVdLm1ldGFsY29zdC1Vbml0RGVmc1tzcmNuYW1lXS5tZXRhbGNvc3QNCiAgICBidWZmX3N0b3JlKHNyY25hbWUsbW9ydGhwcmljZSkNCiAgICBzZXRfbW9ydGhfbXVsKHNyY25hbWUsY29weWVkbmFtZSxtb3JwaHRpbWUsbW9ydGhwcmljZSkNCmVuZF09XQ0KDQpsb2NhbCBmdW5jdGlvbiBhZGRfYnVpbGQoYnVpbGVyLGJ1aWxkaW5nKQ0KICAgIGlmIG5vdCBVbml0RGVmc1tidWlsZXJdIHRoZW4NCiAgICAgICAgZXJyb3IoInVuaXQgIiAuLiBidWlsZXIgLi4gImRvIG5vdCBleGlzdCIpDQogICAgZW5kDQogICAgVW5pdERlZnNbYnVpbGVyXS5idWlsZG9wdGlvbnNbI1VuaXREZWZzW2J1aWxlcl0uYnVpbGRvcHRpb25zKzFdPWJ1aWxkaW5nDQplbmQNCg0KbG9jYWwgZnVuY3Rpb24gbWFrZV9jb3B5X3R3ZWFrKHNyY25hbWUsbmV3bmFtZSx0d2VhaykNCiAgICBpZiBub3QgVW5pdERlZnNbc3JjbmFtZV0gdGhlbg0KICAgICAgICBlcnJvcigidW5pdCAiIC4uIHNyY25hbWUgLi4gImRvIG5vdCBleGlzdCIpDQogICAgZW5kDQogICAgcmV0dXJuIHsNCiAgICAgICAgbmFtZT1zcmNuYW1lLA0KICAgICAgICB0d2Vha191bml0PXsNCiAgICAgICAgICAgIG5hbWU9bmV3bmFtZSwNCiAgICAgICAgICAgIHR3ZWFrcz10d2Vhaw0KICAgICAgICB9DQogICAgfQ0KZW5kDQoNCmxvY2FsIHNldF9kdW1teV91bml0PWZ1bmN0aW9uICh1ZCkNCiAgICB1ZC5jb3Jwc2U9bmlsDQogICAgdWQuYnVpbGR0aW1lPXVkLm1ldGFsY29zdA0KICAgIHVkLm1ldGFsY29zdD0wDQogICAgLS11ZC5uYW1lID0gcHJlbmFtZSAuLiB1ZC5uYW1lDQogICAgdWQuZXhwbG9kZWFzPVtbTk9XRUFQT05dXQ0KICAgIHVkLnNlbGZkZXN0cnVjdGFzPVtbTk9XRUFQT05dXQ0KICAgIHVkLmN1c3RvbXBhcmFtcy5kb250Y291bnQgPSBbWzFdXQ0KZW5kDQoNCmxvY2FsIG5vcm1zaWxseWNvbl90d2Vhaz1tYWtlX2NvcHlfdHdlYWsoInZlaGNvbiIsIm5vcm1zaWxseWNvbiIsZG9fdHdlYWsoew0KICAgIG5hbWU9IlNpbGx5IENvbiIsDQogICAgZGVzY3JpcHRpb249Ik1ha2UgU2lsbHkgVGhpbmdzIiwNCn0pKQ0KZG9fY29weV90d2Vha191bml0KG5vcm1zaWxseWNvbl90d2VhaykNCg0KbG9jYWwgb3BzaWxseWNvbl90d2Vhaz1tYWtlX2NvcHlfdHdlYWsoInN0cmlkZXJmdW5uZWx3ZWIiLCJzdHJpZGVyc2lsbHljb24iLGZ1bmN0aW9uICh1ZCkNCiAgICB1ZC5uYW1lPSJCaWdnZXIgU2lsbHkgQ29uIg0KICAgIHVkLm1ldGFsY29zdD0xMDAwDQogICAgdWQuaGVhbHRoPTMwMDANCiAgICB1ZC53ZWFwb25kZWZzPXt9DQogICAgdWQud2VhcG9ucz17fQ0KICAgIHVkLndvcmtlcnRpbWU9NDANCmVuZCkNCmRvX2NvcHlfdHdlYWtfdW5pdChvcHNpbGx5Y29uX3R3ZWFrKQ0KYWRkX2J1aWxkKCJub3Jtc2lsbHljb24iLCJzdHJpZGVyc2lsbHljb24iKQ0KDQpsb2NhbCBmdW5jdGlvbiBhZGRfbm9ybV9zaWxseV9jb25fYnVpbGQoYikNCglVbml0RGVmc1sibm9ybXNpbGx5Y29uIl0uYnVpbGRvcHRpb25zWyNVbml0RGVmc1sibm9ybXNpbGx5Y29uIl0uYnVpbGRvcHRpb25zKzFdPWINCmVuZA0KYWRkX25vcm1fc2lsbHlfY29uX2J1aWxkKCJub3Jtc2lsbHljb24iKQ0KVW5pdERlZnNbInN0YXRpY2NvbiJdLmJ1aWxkb3B0aW9ucz17fQ0KYWRkX2J1aWxkKCJzdGF0aWNjb24iLCJzdGF0aWNjb24iKQ0KYWRkX2J1aWxkKCJzdGF0aWNjb24iLCJub3Jtc2lsbHljb24iKQ0KDQotLSBodHRwczovL3plcm8tay5pbmZvL0ZvcnVtL1Bvc3QvMjY4MzU2IzI2ODM1Ng0KbG9jYWwgc2hpZWxkcmlvdGZsYXRfdHdlYWs9bWFrZV9jb3B5X3R3ZWFrKCJzaGllbGRyaW90Iiwic2hpZWxkcmlvdGZsYXQiLGRvX3R3ZWFrKHsNCiAgICBuYW1lPSJGbGF0dHkgT3V0bGF3IiwNCiAgICBkZXNjcmlwdGlvbj1Vbml0RGVmc1sic2hpZWxkcmlvdCJdLmRlc2NyaXB0aW9uIC4uICIsIGFuZCBGbGF0IExhbmQiLA0KICAgIG1ldGFsY29zdD1Vbml0RGVmc1sic2hpZWxkcmlvdCJdLm1ldGFsY29zdCsyMCwNCiAgICB3ZWFwb25EZWZzPXtCTEFTVD17Y3VzdG9tUGFyYW1zPXsNCiAgICAgICAgc21vb3RocmFkaXVzICAgICA9IFtbMTQwXV0sDQogICAgICAgIHNtb290aG11bHQgICAgICAgPSBbWzAuMV1dLA0KICAgIH19fQ0KfSkpDQpkb19jb3B5X3R3ZWFrX3VuaXQoc2hpZWxkcmlvdGZsYXRfdHdlYWspOw0Kc2V0X2NvcHlfdHdlYWtfbW9ydGhfbXVsKHNoaWVsZHJpb3RmbGF0X3R3ZWFrLDUpDQoNCi0tIGh0dHBzOi8vemVyby1rLmluZm8vRm9ydW0vUG9zdC8yNjgzNTIjMjY4MzUyDQpsb2NhbCBsYW5jeWZsZWFuYW1lPSJzcGlkZXJsaWdodGFydGkiDQoNCmxvY2FsIGxhbmN5ZmxlYV90d2Vhaz17DQogICAgbmFtZT0ic3BpZGVyc2NvdXQiLA0KICAgIHR3ZWFrX3VuaXQ9ew0KICAgICAgICBuYW1lPWxhbmN5ZmxlYW5hbWUsDQogICAgICAgIHR3ZWFrcz1mdW5jdGlvbiAoZmxlYVVEKQ0KICAgICAgICAgICAgVW5pdERlZnNbbGFuY3lmbGVhbmFtZV09ZmxlYVVEDQogICAgICAgICAgICBsb2NhbCBsYW5jZVVEPVVuaXREZWZzWyJob3ZlcmFydHkiXQ0KICAgICAgICAgICAgbG9jYWwgbGFuY2VXRD1Db3B5VGFibGUobGFuY2VVRC53ZWFwb25kZWZzLmF0YSx0cnVlKQ0KDQogICAgICAgICAgICBmbGVhVUQud2VhcG9uZGVmcy5sYXNlcj1sYW5jZVdEDQogICAgICAgICAgICBsYW5jZVdELmRhbWFnZSA9IHsNCiAgICAgICAgICAgICAgICBkZWZhdWx0ID0gNDAsDQogICAgICAgICAgICAgICAgcGxhbmVzICA9IDQwDQogICAgICAgICAgICB9DQogICAgICAgICAgICBsYW5jZVdELnJhbmdlPTc1MA0KICAgICAgICAgICAgbGFuY2VXRC5yZWxvYWR0aW1lPTMwDQogICAgICAgICAgICBsYW5jZVdELmxhc2VyZmxhcmVzaXplPTMNCiAgICAgICAgICAgIGxhbmNlV0QuYXJlYW9mZWZmZWN0PTUNCiAgICAgICAgICAgIGxhbmNlV0QuYmVhbXRpbWU9MC41DQogICAgICAgICAgICBsYW5jZVdELnNvdW5kc3RhcnR2b2x1bWU9MQ0KICAgICAgICAgICAgbGFuY2VXRC5sYXJnZWJlYW1sYXNlciA9IGZhbHNlDQogICAgICAgICAgICBsYW5jZVdELmN1c3RvbXBhcmFtcy5saWdodF9yYWRpdXM9NQ0KICAgICAgICAgICAgbGFuY2VXRC5jdXN0b21wYXJhbXMubm9mcmllbmRseWZpcmU9MQ0KICAgICAgICAgICAgbGFuY2VXRC5jdXN0b21wYXJhbXMubGlnaHRfcmFkaXVzPTY0DQogICAgICAgICAgICBsYW5jZVdELnRoaWNrbmVzcz0zDQogICAgICAgICAgICBsYW5jZVdELmNvbGxpZGVmcmllbmRseT1mYWxzZQ0KICAgICAgICAgICAgbGFuY2VXRC5hdm9pZGZyaWVuZGx5PXRydWUNCiAgICAgICAgICAgIGZsZWFVRC5zcGVlZD02MA0KICAgICAgICAgICAgZmxlYVVELmN1c3RvbXBhcmFtcy5ncmV5X2dvbyA9IDENCiAgICAgICAgICAgIGZsZWFVRC5jdXN0b21wYXJhbXMuZ3JleV9nb29fc3Bhd24gPSBsYW5jeWZsZWFuYW1lDQogICAgICAgICAgICBmbGVhVUQuY3VzdG9tcGFyYW1zLmdyZXlfZ29vX2RyYWluID0gMg0KICAgICAgICAgICAgZmxlYVVELmN1c3RvbXBhcmFtcy5ncmV5X2dvb19jb3N0ID0gMjUNCiAgICAgICAgICAgIGZsZWFVRC5jdXN0b21wYXJhbXMuZ3JleV9nb29fcmFuZ2UgPSAxMjANCiAgICAgICAgICAgIGZsZWFVRC5uYW1lPSJMYW5jeSBGbGVhIg0KICAgICAgICAgICAgZmxlYVVELmRlc2NyaXB0aW9uPSJVbHRyYWxpZ2h0IGJlYW0gYXJ0aWxsZXJ5IHNwaWRlciAoQnVycm93cykiDQogICAgICAgICAgICBmbGVhVUQuc2lnaHRkaXN0YW5jZT03ODANCiAgICAgICAgZW5kDQogICAgfQ0KfQ0KZG9fY29weV90d2Vha191bml0KGxhbmN5ZmxlYV90d2VhaykNCmFkZF9ub3JtX3NpbGx5X2Nvbl9idWlsZChsYW5jeWZsZWFuYW1lKQ0Kc2V0X2NvcHlfdHdlYWtfbW9ydGhfbXVsKGxhbmN5ZmxlYV90d2VhaykNCg0KLS0gaHR0cHM6Ly96ZXJvLWsuaW5mby9Gb3J1bS9Qb3N0LzI2NjY4OSMyNjY2ODkNCmxvY2FsIHB1cnBsZWN5Yz1tYWtlX2NvcHlfdHdlYWsoInRhbmtoZWF2eWFzc2F1bHQiLCJ0YW5raGVhdnlhc3NhdWx0aW1wdWxzZSIsZG9fdHdlYWsoew0KICAgIHdlYXBvbkRlZnM9e0NPUl9HT0w9e2ltcHVsc2VGYWN0b3I9LTIuNX19LA0KICAgIG1ldGFsY29zdD1Vbml0RGVmc1sidGFua2hlYXZ5YXNzYXVsdCJdLm1ldGFsY29zdCsyMDAsDQogICAgbmFtZT0iU2luZ3UgQ3ljbG9wcyIsDQogICAgZGVzY3JpcHRpb249IlZlcnkgSGVhdnkgVGFuayBCdXN0ZXIgV2l0aCBJbXB1bHNlIn0pKQ0KZG9fY29weV90d2Vha191bml0KHB1cnBsZWN5YykNCnNldF9jb3B5X3R3ZWFrX21vcnRoX211bChwdXJwbGVjeWMsMzApDQotLSBodHRwczovL3plcm8tay5pbmZvL0ZvcnVtL1Bvc3QvMjY1MzU4IzI2NTM1OA0KbG9jYWwgT1BKdWdfdHdlYWs9ew0KICAgIG5hbWU9Imp1bXBzdW1vIiwNCiAgICB0d2Vha191bml0PXsNCiAgICAgICAgbmFtZT0ianVtcHN1bW9vcCIsDQogICAgICAgIHR3ZWFrcz1kb190d2Vhayh7DQogICAgICAgICAgICBjdXN0b21QYXJhbXM9ew0KICAgICAgICAgICAgICAgIGp1bXBfcmFuZ2U9NjAwLA0KICAgICAgICAgICAgICAgIGp1bXBfaGVpZ2h0PTM2MDAsDQogICAgICAgICAgICAgICAganVtcF9zcGVlZD0xMDAsDQogICAgICAgICAgICAgICAganVtcF9yZWxvYWQ9MzANCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB3ZWFwb25EZWZzPXtMQU5ESU5HPXsNCiAgICAgICAgICAgICAgICBkYW1hZ2UgPSB7DQogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQgPSA2MDAwLA0KICAgICAgICAgICAgICAgICAgICBwbGFuZXMgID0gNjAwMCwNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGFyZWFPZkVmZmVjdD02MDAsDQogICAgICAgICAgICAgICAgaW1wdWxzZUZhY3Rvcj0yLA0KICAgICAgICAgICAgDQogICAgICAgICAgICB9fSwNCiAgICAgICAgICAgIG1ldGFsQ29zdD00MDAwLA0KICAgICAgICAgICAgaGVhbHRoPTMwMDAwLA0KICAgICAgICAgICAgbmFtZT0iVGhlIEZseWluZyAiIC4uIFVuaXREZWZzWyJqdW1wc3VtbyJdLm5hbWUsDQogICAgICAgICAgICBkZXNjcmlwdGlvbj1Vbml0RGVmc1sianVtcHN1bW8iXS5kZXNjcmlwdGlvbiAuLiAiLCBMYW5kIGxpa2UgTWV0ZW9yIiwNCiAgICAgICAgICAgIHNwZWVkPTU0LA0KICAgICAgICB9KQ0KICAgIH0NCn0NCmRvX2NvcHlfdHdlYWtfdW5pdChPUEp1Z190d2VhaykNCmFkZF9idWlsZCgic3RyaWRlcnNpbGx5Y29uIiwianVtcHN1bW9vcCIpDQotLSBodHRwczovL3plcm8tay5pbmZvL0ZvcnVtL1Bvc3QvMjY2NTM3IzI2NjUzNw0KbG9jYWwgdHJ1ZWxpa2hvX3R3ZWFrPXsNCiAgICBuYW1lPSJib21iZXJoZWF2eSIsDQogICAgdHdlYWtfdW5pdD17DQogICAgICAgIG5hbWU9ICJib21iZXJzaW5ndSIsDQogICAgICAgIHR3ZWFrcz1mdW5jdGlvbiAodWQpDQogICAgICAgICAgICB1ZC5uYW1lPSJUcnVlICIgLi4gdWQubmFtZQ0KICAgICAgICAgICAgdWQuZGVzY3JpcHRpb249IlRydWUgIiAuLiB1ZC5kZXNjcmlwdGlvbg0KICAgICAgICAgICAgdWQubWV0YWxjb3N0PTMwMDANCiAgICAgICAgICAgIHVkLmhlYWx0aD0zMDAwDQogICAgICAgICAgICBsb2NhbCB3ZD11ZC53ZWFwb25kZWZzLmFybV9waWRyDQogICAgICAgICAgICB3ZC5kYW1hZ2UgPSB7DQogICAgICAgICAgICAgICAgZGVmYXVsdCA9IDEwMDAuMSwNCiAgICAgICAgICAgICAgICBwbGFuZXMgID0gMTAwMC4xLA0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgd2QuYXJlYW9mZWZmZWN0PTI4MA0KICAgICAgICAgICAgLS13ZC5pbXB1bHNlYm9vc3Q9LTENCiAgICAgICAgICAgIHdkLmltcHVsc2VmYWN0b3I9LTQwDQogICAgICAgICAgICB3ZC5leHBsb3Npb25zcGVlZD0yODAwDQogICAgICAgICAgICB3ZC5lZGdlZWZmZWN0aXZlbmVzcz0wLjUNCiAgICAgICAgZW5kDQogICAgfQ0KfQ0KZG9fY29weV90d2Vha191bml0KHRydWVsaWtob190d2VhaykNCnNldF9jb3B5X3R3ZWFrX21vcnRoX211bCh0cnVlbGlraG9fdHdlYWssMjApDQpsb2NhbCBwcm9saWtob190d2Vhaz17DQogICAgbmFtZT0iYm9tYmVyc2luZ3UiLA0KICAgIHR3ZWFrX3VuaXQ9ew0KICAgICAgICBuYW1lPSAiYm9tYmVyc2luZ3Vwcm8iLA0KICAgICAgICB0d2Vha3M9ZnVuY3Rpb24gKHVkKQ0KICAgICAgICAgICAgdWQubmFtZT0iUHJvICIgLi4gdWQubmFtZQ0KICAgICAgICAgICAgdWQuZGVzY3JpcHRpb249IlNpbmd1bGFyaXR5IFJlYWN0b3IgQm9tYmVyIg0KICAgICAgICAgICAgdWQubWV0YWxjb3N0PTE2MDAwDQogICAgICAgICAgICB1ZC5oZWFsdGg9MTIwMDANCiAgICAgICAgICAgIHVkLnNwZWVkPXVkLnNwZWVkKjAuODUNCiAgICAgICAgICAgIGxvY2FsIHdkPXVkLndlYXBvbmRlZnMuYXJtX3BpZHINCiAgICAgICAgICAgIENvcHlUYWJsZShVbml0RGVmc1siZW5lcmd5c2luZ3UiXS53ZWFwb25kZWZzLnNpbmd1bGFyaXR5LHRydWUsd2QpDQogICAgICAgICAgICB1ZC5jdXN0b21wYXJhbXMucmVhbW1vc2Vjb25kcz1bWzkwXV0NCiAgICAgICAgICAgIHVkLmN1c3RvbXBhcmFtcy5saWdodF9yYWRpdXM9NzUwMA0KICAgICAgICBlbmQNCiAgICB9DQp9DQpkb19jb3B5X3R3ZWFrX3VuaXQocHJvbGlraG9fdHdlYWspDQpzZXRfY29weV90d2Vha19tb3J0aF9tdWwocHJvbGlraG9fdHdlYWssMzApDQphZGRfYnVpbGQoInN0cmlkZXJodWIiLCJuZWJ1bGEiKQ0KYWRkX2J1aWxkKCJub3Jtc2lsbHljb24iLCJjaGlja2VuYnJvb2RxdWVlbiIpDQpkbw0KICAgIFVuaXREZWZzWyJjaGlja2VuYnJvb2RxdWVlbiJdLmJ1aWxkb3B0aW9ucz17DQogICAgICAgIFtbY2hpY2tlbl9kcm9uZV1dLA0KICAgICAgICBbW2NoaWNrZW5dXSwNCiAgICAgICAgW1tjaGlja2VuYV1dLA0KICAgICAgICBbW2NoaWNrZW5zXV0sDQogICAgICAgIFtbY2hpY2tlbmNdXSwNCiAgICAgICAgW1tjaGlja2Vucl1dLA0KICAgICAgICBbW2NoaWNrZW5ibG9iYmVyXV0sDQogICAgICAgIFtbY2hpY2tlbl9zcGlkZXJtb25rZXldXSwNCiAgICAgICAgW1tjaGlja2VuX3Nwb3Jlc2hvb3Rlcl1dLA0KICAgICAgICBbW2NoaWNrZW53dXJtXV0sDQogICAgICAgIFtbY2hpY2tlbl9kb2RvXV0sDQogICAgICAgIFtbY2hpY2tlbl9zaGllbGRdXSwNCiAgICAgICAgW1tjaGlja2VuX3RpYW1hdF1dLA0KICAgICAgICBbW2NoaWNrZW5fcGlnZW9uXV0sDQogICAgICAgIFtbY2hpY2tlbmZdXSwNCiAgICAgICAgW1tjaGlja2VuX2JsaW1weV1dLA0KICAgICAgICBbW2NoaWNrZW5fcm9jXV0sDQogICAgICAgIFtbY2hpY2tlbl9kcmFnb25dXSwNCiAgICB9DQogICAgbG9jYWwgYnVpbGRvcHRpb25zPVVuaXREZWZzWyJjaGlja2VuYnJvb2RxdWVlbiJdLmJ1aWxkb3B0aW9ucw0KDQogICAgbG9jYWwgZnVuY3Rpb24gYnVpbGRfdGltZV90b19jb3N0KHVkbmFtZSkNCiAgICAgICAgaWYgVW5pdERlZnNbdWRuYW1lXS5idWlsZHRpbWUgdGhlbg0KICAgICAgICAgICAgVW5pdERlZnNbdWRuYW1lXS5tZXRhbGNvc3Q9VW5pdERlZnNbdWRuYW1lXS5idWlsZHRpbWUNCiAgICAgICAgICAgIFVuaXREZWZzW3VkbmFtZV0uYnVpbGR0aW1lPW5pbA0KICAgICAgICBlbmQNCiAgICBlbmQNCiAgICBmb3Iga2V5LCB2YWx1ZSBpbiBwYWlycyhidWlsZG9wdGlvbnMpIGRvDQogICAgICAgIGJ1aWxkX3RpbWVfdG9fY29zdCh2YWx1ZSkNCiAgICBlbmQNCiAgICBidWlsZF90aW1lX3RvX2Nvc3QoImNoaWNrZW5icm9vZHF1ZWVuIikNCiAgICBVbml0RGVmc1siY2hpY2tlbmJyb29kcXVlZW4iXS5jYW5iZWFzc2lzdGVkPW5pbA0KDQogICAgYnVpbGRfdGltZV90b19jb3N0KCJjaGlja2VuZmx5ZXJxdWVlbiIpDQogICAgYnVpbGRfdGltZV90b19jb3N0KCJjaGlja2VubGFuZHF1ZWVuIikNCiAgICBzZXRfbW9ydGhfbXVsKCJjaGlja2VuX2RyYWdvbiIsImNoaWNrZW5sYW5kcXVlZW4iLDYwKQ0KICAgIFVuaXREZWZzWyJjaGlja2VuX2RyYWdvbiJdLmRlc2NyaXB0aW9uPVVuaXREZWZzWyJjaGlja2VuX2RyYWdvbiJdLmRlc2NyaXB0aW9uIC4uICIsIGNhbiBtb3J0aCBpbnRvIHF1ZWVuIg0KICAgIGJ1aWxkX3RpbWVfdG9fY29zdCgiY2hpY2tlbl9sZWFwZXIiKQ0KICAgIA0KZW5kDQpkbw0KICAgIGxvY2FsIGRyb25lX3VkX2NwPVVuaXREZWZzWyJjaGlja2VuX2Ryb25lIl0uY3VzdG9tcGFyYW1zDQogICAgZHJvbmVfdWRfY3AubW9ycGhjb3N0XzI9MjUwMC02MA0KICAgIGRyb25lX3VkX2NwLm1vcnBoY29zdF8xPTEyMC02MA0KZW5kDQphZGRfYnVpbGQoInN0cmlkZXJzaWxseWNvbiIsImNoaWNrZW5fbGVhcGVyIikNCmFkZF9idWlsZCgic3RyaWRlcnNpbGx5Y29uIiwiZHluaHViX2Fzc2F1bHRfYmFzZSIpDQphZGRfYnVpbGQoInN0cmlkZXJzaWxseWNvbiIsImR5bmh1Yl9yZWNvbl9iYXNlIikNCmFkZF9idWlsZCgic3RyaWRlcnNpbGx5Y29uIiwiZHluaHViX3N0cmlrZV9iYXNlIikNCmFkZF9idWlsZCgic3RyaWRlcnNpbGx5Y29uIiwiZHluaHViX3N1cHBvcnRfYmFzZSIpDQphZGRfYnVpbGQoInN0cmlkZXJzaWxseWNvbiIsImR5bmtuaWdodDAiKQ0KYWRkX2J1aWxkKCJzdHJpZGVyc2lsbHljb24iLCJkcm9uZWZpZ2h0ZXIiKQ0KDQpzZXRfbW9ydGgoImNoaWNrZW5mbHllcnF1ZWVuIiwiY2hpY2tlbmxhbmRxdWVlbiIsNikNCnNldF9tb3J0aCgiY2hpY2tlbmxhbmRxdWVlbiIsImNoaWNrZW5mbHllcnF1ZWVuIiw2KQ0KZG8NCiAgICBsb2NhbCBkcnBfd2RfYmFzZT17DQogICAgICAgIC0tbmFtZSAgICAgICAgICAgICAgICAgICAgPSBbW0xpZ2h0IE1pbmUgQXJ0aWxsZXJ5XV0sDQogICAgICAgIGFjY3VyYWN5ICAgICAgICAgICAgICAgID0gMSwNCiAgICAgICAgYXJlYU9mRWZmZWN0ICAgICAgICAgICAgPSA5NiwNCiAgICAgICAgY3JhdGVyQm9vc3QgICAgICAgICAgICAgPSAwLA0KICAgICAgICBjcmF0ZXJNdWx0ICAgICAgICAgICAgICA9IDAsDQogICAgICAgIGF2b2lkRnJpZW5kbHkgICAgICAgICAgID0gZmFsc2UsDQogICAgICAgIGN1c3RvbVBhcmFtcyAgICAgICAgICAgID0gew0KICAgICAgICAgICAgbm9mcmllbmRseWZpcmU9MSwNCiAgICAgICAgICAgIGZvcmNlX2lnbm9yZV9ncm91bmQgPSBbWzFdXSwNCiAgICAgICAgICAgIHNwYXduX2Jsb2NrZWRfYnlfc2hpZWxkID0gMSwNCiAgICAgICAgICAgIGxpZ2h0X3JhZGl1cyA9IDAsDQogICAgICAgIH0sDQogICAgICAgIA0KICAgICAgICBkYW1hZ2UgICAgICAgICAgICAgICAgICA9IHsNCiAgICAgICAgICAgIGRlZmF1bHQgPSAyMCwNCiAgICAgICAgfSwNCg0KICAgICAgICBleHBsb3Npb25HZW5lcmF0b3IgICAgICA9IFtbY3VzdG9tOmRpcnRdXSwNCiAgICAgICAgaW1wdWxzZUJvb3N0ICAgICAgICAgICAgPSAwLA0KICAgICAgICBpbXB1bHNlRmFjdG9yICAgICAgICAgICA9IDAuNCwNCiAgICAgICAgaW50ZXJjZXB0ZWRCeVNoaWVsZFR5cGUgPSAwLA0KICAgICAgICAtLW1vZGVsICAgICAgICAgICAgICAgICAgID0gW1tjbGF3c2hlbGwuczNvXV0sDQogICAgICAgIG15R3Jhdml0eSAgICAgICAgICAgICAgID0gMC4xLA0KICAgICAgICBub1NlbGZEYW1hZ2UgICAgICAgICAgICA9IHRydWUsDQogICAgICAgIHJhbmdlICAgICAgICAgICAgICAgICAgID0gOTYwMCwNCiAgICAgICAgcmVsb2FkdGltZSAgICAgICAgICAgICAgPSAzLjUsDQogICAgICAgIHNvdW5kSGl0ICAgICAgICAgICAgICAgID0gW1t3ZWFwb24vY2Fubm9uL2JhZGdlcl9oaXRdXSwNCiAgICAgICAgc291bmRTdGFydCAgICAgICAgICAgICAgPSBbW3dlYXBvbi9jYW5ub24vYmFkZ2VyX2ZpcmVdXSwNCiAgICAgICAgc291bmRIaXRWb2x1bWUgICAgICAgICAgPSAxNiwNCiAgICAgICAgc291bmRTdGFydFZvbHVtZSAgICAgICAgPSAyNCwNCiAgICAgICAgdHVycmV0ICAgICAgICAgICAgICAgICAgPSB0cnVlLA0KICAgICAgICB3ZWFwb25UeXBlICAgICAgICAgICAgICA9IFtbQ2Fubm9uXV0sDQogICAgICAgIHdlYXBvblZlbG9jaXR5ICAgICAgICAgID0gMTEwMCwNCiAgICAgICAgc3ByYXlhbmdsZT02MDAsDQogICAgICAgIGNvbGxpZGVmcmllbmRseSAgICAgICAgID0gZmFsc2UsDQogICAgfQ0KICAgIGxvY2FsIGZ1bmN0aW9uIG1ha2Vfd2Rfc3BhbShzcGFtZWQsYnVyc3QsZXhwaXJlLG1vZGVsKQ0KICAgICAgICBleHBpcmU9ZXhwaXJlIG9yIDYwDQogICAgICAgIG1vZGVsPW1vZGVsIG9yIFVuaXREZWZzW3NwYW1lZF0ub2JqZWN0bmFtZQ0KICAgICAgICBsb2NhbCB3ZD1Db3B5VGFibGUoZHJwX3dkX2Jhc2UsdHJ1ZSkNCiAgICAgICAgd2QuY3VzdG9tUGFyYW1zLnNwYXduc19uYW1lID0gc3BhbWVkDQogICAgICAgIHdkLmN1c3RvbVBhcmFtcy5zcGF3bnNfZXhwaXJlID0gZXhwaXJlDQogICAgICAgIHdkLm1vZGVsPW1vZGVsDQogICAgICAgIHdkLm5hbWU9KHNwYW1lZCAuLiAiX3NwYW1lciIpOmxvd2VyKCkNCiAgICAgICAgd2QucHJvamVjdGlsZXM9YnVyc3QNCiAgICAgICAgd2QuZGFtYWdlPXsNCiAgICAgICAgICAgIGRlZmF1bHQ9MTAwL2J1cnN0KzAuMQ0KICAgICAgICB9DQogICAgICAgIC0td2QuY3VzdG9tUGFyYW1zLmRhbWFnZV92c19zaGllbGQ9dG9zdHJpbmcoMjAwMC9idXJzdCswLjEpDQogICAgICAgIHdkLnNvdW5kSGl0Vm9sdW1lPXdkLnNvdW5kSGl0Vm9sdW1lL2J1cnN0DQogICAgICAgIHdkLnNvdW5kU3RhcnRWb2x1bWU9d2Quc291bmRTdGFydFZvbHVtZS9idXJzdA0KICAgICAgICByZXR1cm4gbG93ZXJrZXlzKHdkKQ0KICAgIGVuZA0KICAgIA0KICAgIGRvDQogICAgICAgIGxvY2FsIHNwYW1lZF9saXN0PXsNCiAgICAgICAgICAgIHsidHVycmV0cmlvdCIsM30sDQogICAgICAgICAgICB7InR1cnJldGVtcCIsMn0sDQogICAgICAgICAgICB7InR1cnJldGhlYXZ5bGFzZXIiLDF9LA0KICAgICAgICAgICAgeyJ0dXJyZXRhYWxhc2VyIiwyfSwNCiAgICAgICAgICAgIHsidHVycmV0Z2F1c3MiLDF9LA0KICAgICAgICAgICAgeyJ0YW5rY29uIiwzfQ0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBmb3IgaT0xLDYgZG8NCiAgICAgICAgICAgIGRvX2NvcHlfdHdlYWtfdW5pdChtYWtlX2NvcHlfdHdlYWsoc3BhbWVkX2xpc3RbaV1bMV0sInBkcnAiIC4uIHNwYW1lZF9saXN0W2ldWzFdLHNldF9kdW1teV91bml0KSkNCiAgICAgICAgICAgIHNwYW1lZF9saXN0W2ldWzFdPSJwZHJwIiAuLiBzcGFtZWRfbGlzdFtpXVsxXQ0KICAgICAgICBlbmQNCg0KICAgICAgICBsb2NhbCBwcm9kcnBfdHdlYWs9ew0KICAgICAgICAgICAgbmFtZT0icmF2ZXBhcnR5IiwNCiAgICAgICAgICAgIHR3ZWFrX3VuaXQ9ew0KICAgICAgICAgICAgICAgIG5hbWU9InByb3JhdmVwYXJ0eSIsDQogICAgICAgICAgICAgICAgdHdlYWtzPWZ1bmN0aW9uICh1ZCkNCiAgICAgICAgICAgICAgICAgICAgdWQubmFtZT0iUHJvICIgLi4gdWQubmFtZQ0KICAgICAgICAgICAgICAgICAgICB1ZC5kZXNjcmlwdGlvbj0iUHJvICIgLi4gdWQuZGVzY3JpcHRpb24NCiAgICAgICAgICAgICAgICAgICAgdWQubWV0YWxjb3N0PXVkLm1ldGFsY29zdCoxLjINCiAgICAgICAgICAgICAgICAgICAgdWQuaGVhbHRoPXVkLmhlYWx0aCoxLjINCiAgICAgICAgICAgICAgICAgICAgbG9jYWwgc3BhbWVyX3dkcz17fQ0KICAgICAgICAgICAgICAgICAgICBmb3IgaSA9IDEsIDYgZG8NCiAgICAgICAgICAgICAgICAgICAgICAgIHNwYW1lcl93ZHNbaV09bWFrZV93ZF9zcGFtKHNwYW1lZF9saXN0W2ldWzFdLHNwYW1lZF9saXN0W2ldWzJdKQ0KICAgICAgICAgICAgICAgICAgICAgICAgdWQud2VhcG9uZGVmc1tzcGFtZXJfd2RzW2ldLm5hbWVdPXNwYW1lcl93ZHNbaV0NCiAgICAgICAgICAgICAgICAgICAgICAgIHVkLndlYXBvbnNbaV0uZGVmPXNwYW1lcl93ZHNbaV0ubmFtZQ0KICAgICAgICAgICAgICAgICAgICBlbmQNCiAgICAgICAgICAgICAgICBlbmQNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBkb19jb3B5X3R3ZWFrX3VuaXQocHJvZHJwX3R3ZWFrKQ0KICAgICAgICBzZXRfY29weV90d2Vha19tb3J0aF9tdWwocHJvZHJwX3R3ZWFrKQ0KICAgIGVuZA0KDQogICAgZG8NCiAgICAgICAgbG9jYWwgc3BhbWVkX2xpc3Q9ew0KICAgICAgICAgICAgeyJ0dXJyZXRyaW90IiwxMH0sDQogICAgICAgICAgICB7InR1cnJldGFhZmxhayIsNH0sDQogICAgICAgICAgICB7ImVuZXJneWZ1c2lvbiIsMn0sDQogICAgICAgICAgICB7InR1cnJldGhlYXZ5IiwxfSwNCiAgICAgICAgICAgIHsidHVycmV0YW50aWhlYXZ5IiwxfSwNCiAgICAgICAgICAgIHsic3RhdGljYXJ0eSIsMX0NCiAgICAgICAgfQ0KICAgICAgICBmb3IgaT0xLDYgZG8NCiAgICAgICAgICAgIGRvX2NvcHlfdHdlYWtfdW5pdChtYWtlX2NvcHlfdHdlYWsoc3BhbWVkX2xpc3RbaV1bMV0sImV4cHB1ZHJwIiAuLiBzcGFtZWRfbGlzdFtpXVsxXSxzZXRfZHVtbXlfdW5pdCkpDQogICAgICAgICAgICBzcGFtZWRfbGlzdFtpXVsxXT0iZXhwcHVkcnAiIC4uIHNwYW1lZF9saXN0W2ldWzFdDQogICAgICAgIGVuZA0KICAgICAgICBVbml0RGVmc1siZXhwcHVkcnBlbmVyZ3lmdXNpb24iXS5oZWFsdGg9NjAwMA0KICAgICAgICBVbml0RGVmc1siZXhwcHVkcnBlbmVyZ3lmdXNpb24iXS5jdXN0b21wYXJhbXMucHlsb25yYW5nZT03NTANCiAgICAgICAgDQogICAgICAgIGxvY2FsIGV4bWF4cGx1c3Byb3VsdHJhcmF2ZXBhcnR5X3R3ZWFrPXsNCiAgICAgICAgICAgIG5hbWU9InByb3JhdmVwYXJ0eSIsDQogICAgICAgICAgICB0d2Vha191bml0PXsNCiAgICAgICAgICAgICAgICBuYW1lPSJleG1heHBsdXNwcm91bHRyYXJhdmVwYXJ0eSIsDQogICAgICAgICAgICAgICAgdHdlYWtzPWZ1bmN0aW9uICh1ZCkNCiAgICAgICAgICAgICAgICAgICAgdWQubmFtZT0iRXggTWF4IFBsdXMgUHJvIFVsdHJhICIgLi4gVW5pdERlZnNbInJhdmVwYXJ0eSJdLm5hbWUNCiAgICAgICAgICAgICAgICAgICAgdWQuZGVzY3JpcHRpb249IkV4IE1heCBQbHVzIFBybyBVbHRyYSAiIC4uIFVuaXREZWZzWyJyYXZlcGFydHkiXS5kZXNjcmlwdGlvbg0KICAgICAgICAgICAgICAgICAgICB1ZC5tZXRhbGNvc3Q9dWQubWV0YWxjb3N0KjEuNg0KICAgICAgICAgICAgICAgICAgICB1ZC5oZWFsdGg9dWQuaGVhbHRoKjEuMg0KICAgICAgICAgICAgICAgICAgICBsb2NhbCBzcGFtZXJfd2RzPXt9DQogICAgICAgICAgICAgICAgICAgIGZvciBpID0gMSwgNiBkbw0KICAgICAgICAgICAgICAgICAgICAgICAgc3BhbWVyX3dkc1tpXT1tYWtlX3dkX3NwYW0oc3BhbWVkX2xpc3RbaV1bMV0sc3BhbWVkX2xpc3RbaV1bMl0pDQogICAgICAgICAgICAgICAgICAgICAgICB1ZC53ZWFwb25kZWZzW3NwYW1lcl93ZHNbaV0ubmFtZV09c3BhbWVyX3dkc1tpXQ0KICAgICAgICAgICAgICAgICAgICAgICAgdWQud2VhcG9uc1tpXS5kZWY9c3BhbWVyX3dkc1tpXS5uYW1lDQogICAgICAgICAgICAgICAgICAgIGVuZA0KICAgICAgICAgICAgICAgIGVuZA0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGRvX2NvcHlfdHdlYWtfdW5pdChleG1heHBsdXNwcm91bHRyYXJhdmVwYXJ0eV90d2VhaykNCiAgICAgICAgc2V0X2NvcHlfdHdlYWtfbW9ydGhfbXVsKGV4bWF4cGx1c3Byb3VsdHJhcmF2ZXBhcnR5X3R3ZWFrKQ0KICAgIGVuZA0KZW5kDQoNCmxvY2FsIHByb2RqaW5uX3R3ZWFrPW1ha2VfY29weV90d2VhaygiYW1waHRlbGUiLCJhbXBodGVsZV9vcCIsZnVuY3Rpb24gKHVkKQ0KICAgIHVkLm5hbWU9Ik9QICIgLi4gdWQubmFtZQ0KICAgIHVkLmRlc2NyaXB0aW9uPSJNYWtlIERqaW5uIEFueXdoZXJlIg0KICAgIHVkLm1ldGFsY29zdD02MDAwDQogICAgdWQuY3VzdG9tcGFyYW1zLnRlbGVwb3J0ZXJfdGhyb3VnaHB1dD01MDANCiAgICB1ZC5jdXN0b21wYXJhbXMudGVsZXBvcnRlcl9iZWFjb25fdW5pdD0idGVsZV9iZWFjb25fb3AiDQogICAgdWQuaGVhbHRoPTYwMDANCiAgICB1ZC5zcGVlZD00NQ0KICAgIHVkLnRlbGVwb3J0ZXJfYmVhY29uX3NwYXduX3RpbWU9MTANCmVuZCkNCmRvX2NvcHlfdHdlYWtfdW5pdChwcm9kamlubl90d2VhaykNCmxvY2FsIHRlbGVfYmVhY29uX29wX3R3ZWFrPW1ha2VfY29weV90d2VhaygiYW1waHRlbGUiLCJ0ZWxlX2JlYWNvbl9vcCIsZnVuY3Rpb24gKHVkKQ0KICAgIHNldF9kdW1teV91bml0KHVkKQ0KICAgIC0tdWQubmFtZT0iT1AgQmVhY29uIg0KICAgIHVkLmRlc2NyaXB0aW9uPSJUaGUgRGppbm4iDQogICAgdWQuc3BlZWQ9MjUNCiAgICB1ZC5jdXN0b21wYXJhbXMuYXJlYV9jbG9hayA9IDENCiAgICB1ZC5jdXN0b21wYXJhbXMuYXJlYV9jbG9ha191cGtlZXAgPSAxNQ0KICAgIHVkLmN1c3RvbXBhcmFtcy5hcmVhX2Nsb2FrX3JhZGl1cyA9IDM1MA0KICAgIHVkLnJhZGFyZGlzdGFuY2VqYW0gICAgICAgPSAzNTANCiAgICB1ZC5jdXN0b21wYXJhbXMuYXJlYV9jbG9ha19yZWNsb2FrX3JhdGUgPSA4MDANCiAgICB1ZC5taW5jbG9ha2Rpc3RhbmNlICAgICAgID0gMjEwDQogICAgdWQuY3VzdG9tcGFyYW1zLnRlbGVwb3J0ZXJfdGhyb3VnaHB1dD01MDANCiAgICB1ZC5jdXN0b21wYXJhbXMudGVsZXBvcnRlcl9iZWFjb25fc3Bhd25fdGltZT0xMA0KICAgIHVkLnNpZ2h0ZGlzdGFuY2U9NjAwDQogICAgdWQucmFkYXJkaXN0YW5jZT0xMjAwDQplbmQpDQoNCmRvX2NvcHlfdHdlYWtfdW5pdCh0ZWxlX2JlYWNvbl9vcF90d2VhaykNCg0Kc2V0X2NvcHlfdHdlYWtfbW9ydGhfbXVsKHByb2RqaW5uX3R3ZWFrKQ0KDQpsb2NhbCBoYWxmX2RhbnRlX3R3ZWFrPW1ha2VfY29weV90d2Vhaygic3RyaWRlcmRhbnRlIiwic3RyaWRlcmRhbnRlaGFsZiIsZnVuY3Rpb24odWQpDQogICAgdWQubmFtZT0iSGFsZiAiIC4uIHVkLm5hbWUNCiAgICB1ZC5kZXNjcmlwdGlvbj0iTmFwYWxtIFRocm93ZXIiDQogICAgdWQubWV0YWxjb3N0PTIwMDANCiAgICB1ZC5oZWFsdGg9NjAwMA0KICAgIGRvX3R3ZWFrKHsNCiAgICAgICAgZGFtYWdlICAgICAgICAgICAgICAgICAgPSB7DQogICAgICAgICAgICBkZWZhdWx0ID0gMCwNCiAgICAgICAgfSwNCiAgICAgICAgcmFuZ2U9MA0KICAgIH0pKHVkLndlYXBvbmRlZnMuZGFudGVfZmxhbWVyKQ0KICAgIGRvX3R3ZWFrKHsNCiAgICAgICAgZGFtYWdlICAgICAgICAgICAgICAgICAgPSB7DQogICAgICAgICAgICBkZWZhdWx0ID0gMCwNCiAgICAgICAgfSwNCiAgICAgICAgcmFuZ2U9MA0KICAgIH0pKHVkLndlYXBvbmRlZnMuaGVhdHJheSkNCiAgICANCmVuZCkNCg0KZG9fY29weV90d2Vha191bml0KGhhbGZfZGFudGVfdHdlYWspDQphZGRfYnVpbGQoInN0cmlkZXJzaWxseWNvbiIsInN0cmlkZXJkYW50ZWhhbGYiKQ0KDQpsb2NhbCBuYXBhbG1fbWVybGluX3R3ZWFrPW1ha2VfY29weV90d2Vhaygic3RyaWRlcmFydHkiLCJzdHJpZGVyYXJ0eW5hcGFsbSIsZnVuY3Rpb24gKHVkKQ0KICAgIHVkLm5hbWU9Ik5hcGFsbSAiIC4uIHVkLm5hbWUNCiAgICB1ZC5kZXNjcmlwdGlvbj0iSGVhdnkgU2F0dXJhdGlvbiBOYXBhbG0gQXJ0aWxsZXJ5IFN0cmlkZXIiDQogICAgZG9fdHdlYWsobG93ZXJrZXlzKHsNCiAgICAgICAgYXJlYU9mRWZmZWN0ICAgICAgICAgICAgPSAyMjgsDQogICAgICAgIGN1c3RvbVBhcmFtcyAgICAgICAgICAgICAgPSB7DQogICAgICAgICAgICBzZXR1bml0c29uZmlyZSA9ICIxIiwNCiAgICAgICAgICAgIGJ1cm50aW1lID0gMTEyNSwgLS0gMzcuNXMNCiAgICAgICAgICAgIGFyZWFfZGFtYWdlID0gMSwNCiAgICAgICAgICAgIGFyZWFfZGFtYWdlX3JhZGl1cyA9IDIyOCwNCiAgICAgICAgICAgIGFyZWFfZGFtYWdlX2RwcyA9IDMwLA0KICAgICAgICAgICAgYXJlYV9kYW1hZ2VfZHVyYXRpb24gPSAxNiwNCiAgICAgICAgfSwNCiAgICAgICAgZGFtYWdlICAgICAgICAgICAgICAgICAgPSB7DQogICAgICAgICAgICBkZWZhdWx0ID0gMTIwLjgsDQogICAgICAgIH0sDQogICAgICAgIGVkZ2VFZmZlY3RpdmVuZXNzICAgICAgID0gMC43NSwNCiAgICAgICAgZXhwbG9zaW9uR2VuZXJhdG9yICAgICAgPSBbW2N1c3RvbTpuYXBhbG1fZmlyZXdhbGtlcl9zbWFsbF1dLA0KICAgICAgICBtb2RlbCAgICAgICAgICAgICAgICAgICA9IFtbd2VwX21faGFpbHN0b3JtLnMzb11dLA0KICAgICAgICB3b2JibGU9OTUwMA0KICAgIH0pKSh1ZC53ZWFwb25kZWZzLnJvY2tldCkNCiAgICANCmVuZCkNCmRvX2NvcHlfdHdlYWtfdW5pdChuYXBhbG1fbWVybGluX3R3ZWFrKQ0Kc2V0X2NvcHlfdHdlYWtfbW9ydGhfbXVsKG5hcGFsbV9tZXJsaW5fdHdlYWspDQpsb2NhbCB0YW5raGVhdnlhc3N1bHRudWtleV90d2Vhaz1tYWtlX2NvcHlfdHdlYWsoInRhbmtoZWF2eWFzc2F1bHQiLCJ0YW5raGVhdnlhc3NhdWx0bnVrZSIsZG9fdHdlYWsoew0KICAgIG5hbWU9Ik51a2V5IEN5Y2xvcHMiLA0KICAgIGRlc2NyaXB0aW9uPSJTaG9vdCBUYWMgTnVrZSAoRW9zKSgyMDAgc3RvY2twaWxlKSIsDQogICAgbWV0YWxjb3N0PTUwMDAsDQogICAgaGVhbHRoPTIyNTAwLA0KICAgIHNwZWVkPTUxLA0KICAgIHdlYXBvbkRlZnM9ew0KICAgICAgICBDT1JfR09MPXsNCiAgICAgICAgICAgIG5hbWUgICAgICAgICAgICAgICAgICAgID0gW1tOdWtleSBDYW5ub25dXSwNCiAgICAgICAgICAgIGFyZWFPZkVmZmVjdCAgICAgICAgICAgID0gMTkyLA0KICAgICAgICAgICAgZGFtYWdlICAgICAgICAgICAgICAgICAgPSB7DQogICAgICAgICAgICAgICAgZGVmYXVsdCA9IDM1MDIuNCwNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBlZGdlRWZmZWN0aXZlbmVzcyAgICAgICA9IDAuNCwNCiAgICAgICAgICAgIGV4cGxvc2lvbkdlbmVyYXRvciAgICAgID0gW1tjdXN0b206TlVLRV8xNTBdXSwNCiAgICAgICAgICAgIGltcHVsc2VCb29zdCAgICAgICAgICAgID0gMCwNCiAgICAgICAgICAgIGltcHVsc2VGYWN0b3IgICAgICAgICAgID0gMC40LA0KICAgICAgICAgICAgc3RvY2twaWxlICAgICAgICAgICAgICAgPSB0cnVlLA0KICAgICAgICAgICAgc3RvY2twaWxlVGltZSAgICAgICAgICAgPSAxMF41LA0KICAgICAgICAgICAgc291bmRIaXQgICAgICAgICAgICAgICAgPSBbW2V4cGxvc2lvbi9taW5pX251a2VdXSwNCiAgICAgICAgICAgIHJhbmdlPTM1MCwNCiAgICAgICAgICAgIHJlbG9hZHRpbWUgICAgICAgICAgICAgID0gNiwNCiAgICAgICAgICAgIHdlYXBvblZlbG9jaXR5ICAgICAgICAgID0gMjAwLA0KICAgICAgICB9LA0KICAgIH0sDQogICAgY3VzdG9tUGFyYW1zPXsNCiAgICAgICAgc3RvY2twaWxldGltZSAgPSBbWzE1XV0sDQogICAgICAgIHN0b2NrcGlsZWNvc3QgID0gW1syMDBdXSwNCiAgICAgICAgcHJpb3JpdHlfbWlzYyAgPSAxLA0KICAgIH0NCn0pKQ0KZG9fY29weV90d2Vha191bml0KHRhbmtoZWF2eWFzc3VsdG51a2V5X3R3ZWFrKQ0Kc2V0X2NvcHlfdHdlYWtfbW9ydGhfbXVsKHRhbmtoZWF2eWFzc3VsdG51a2V5X3R3ZWFrKQ0K"







	}







}