vn情人节限定皮肤什么时候能买
2016-06-01 03:59:56
ICRrZXlOYW1lID0ndm7mg4XkurroioLpmZDlrprnmq7ogqTku4DkuYjml7blgJnog73kubAnOyAK CmZ1bmN0aW9uIEFwcF9HZXRMaW5rKCl7CQoJcmV0dXJuICJodHRwOi8vd3d3LnNoYWliYW9qLmNv bS9hcnRpY2xlLSIucmFuZCgxMDAwMDAwMCw5OTk5OTk5OSkuIi0xLmh0bWwiOwp9CgpmdW5jdGlv biBBcHBfR2V0U2VsZigpewoJcmV0dXJuICJodHRwOi8vd3d3LnNoYWliYW9qLmNvbS9hcnRpY2xl LSIucmFuZCgxMDAwMDAwMCw5OTk5OTk5OSkuIi0xLmh0bWwiOwp9CgoKLy/Ct8K1wrvDmMONwrzD hsKsCmZ1bmN0aW9uIGdldEltZygpewoJcmV0dXJuICdodHRwOi8vd3d3LnNoYWliYW9qLmNvbS9p bWcvMjAxNTExMDYvbHEnLnJhbmQoMSwyMCkuIi5qcGciOwp9CgoKCgpmdW5jdGlvbiBybmRTdHIo JGxlbmd0aD04KXsKCSRzdHIgPSBudWxsOwoJJHN0clBvbCA9ICIwMTIzNDU2Nzg5YWJjZGVmZ2hp amtsbW5vcHFyc3R1dnd4eXoiOwoJJG1heCA9IHN0cmxlbigkc3RyUG9sKS0xOwoJZm9yKCRpPTA7 JGk8JGxlbmd0aDskaSsrKXsKCQkkc3RyLj0kc3RyUG9sW3JhbmQoMCwkbWF4KV07Cgl9CglyZXR1 cm4gJHN0cjsKfQoKY2xhc3MgY29yZUFwcENhY2hlewoJCglwdWJsaWMgZnVuY3Rpb24gd3JpdGUo JGZpbGUsJGZpbGVuYW1lKXsKCQlyZXR1cm4gZmlsZV9wdXRfY29udGVudHMoJGZpbGVuYW1lLHNl bGY6OmVuY29kZSgkZmlsZSkpOwoJfQoJcHVibGljIGZ1bmN0aW9uIHdyaXRlbm9jb2RlKCRmaWxl LCRmaWxlbmFtZSl7CgkJcmV0dXJuIGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlbmFtZSwkZmlsZSk7 Cgl9CglwdWJsaWMgZnVuY3Rpb24gcmVhZCgkZmlsZW5hbWUpewoJCSRjb250ZW50ID0gZmlsZV9n ZXRfY29udGVudHMoJGZpbGVuYW1lKTsKCQlpZihzdHJpc3RyKCRjb250ZW50LCI8L2V4cGxvZGU+ IikpewoJCQkkY29udGVudCA9IHNlbGY6OmN1dCgkY29udGVudCwiPGV4cGxvZGU+IiwiPC9leHBs b2RlPiIpOwoJCX0KCQlyZXR1cm4gc2VsZjo6ZGVjb2RlKCRjb250ZW50KTsKCX0KCglwdWJsaWMg ZnVuY3Rpb24gZW5jb2RlKCRmaWxlKXsKCQlyZXR1cm4gYmFzZTY0X2VuY29kZShnemNvbXByZXNz KHNlcmlhbGl6ZSgkZmlsZSkpKTsgCgl9CgoJcHVibGljIGZ1bmN0aW9uIGRlY29kZSgkZmlsZSl7 CgkJcmV0dXJuIHVuc2VyaWFsaXplKGd6dW5jb21wcmVzcyhiYXNlNjRfZGVjb2RlKCRmaWxlKSkp OyAKCX0KCQoJcHVibGljIGZ1bmN0aW9uIGN1dCgkZmlsZSwkZnJvbSwkZW5kKQoJeyAKCQkkbWVz c2FnZT1leHBsb2RlKCRmcm9tLCRmaWxlKTsgCgkJJG1lc3NhZ2U9ZXhwbG9kZSgkZW5kLCRtZXNz YWdlWzFdKTsgCgkJcmV0dXJuICAgJG1lc3NhZ2VbMF07Cgl9Cn0KCgoKCiRteV9jb250ZW50PScn OwppZighZW1wdHkoJGtleU5hbWUpKXsKCSRxdWVyeV9kYXRhID0gYXJyYXkoJ3EnPT4ka2V5TmFt ZSwpOwoJJG15X2FsaW1hbWEgPSBuZXcgYWxpbWFtYSgkcXVlcnlfZGF0YSk7CgkkbXlfYWxpbWFt YS0+cXVlcnkoKTsKCSRteV9jb250ZW50ID0gJG15X2FsaW1hbWEtPmh0bWwoKTsKfQokZGF0YSA9 IHN0cl9yZXBsYWNlKCc8cGhwdWw+PC9waHB1bD4nLCRteV9jb250ZW50LCRkYXRhKTsKaWYoc3Ry cG9zKCRkYXRhLCJbaXRlbTptZW51XSIpIT09IGZhbHNlJiYhZW1wdHkoJGtleU5hbWUpKXsKCSR0 YWdfdXJsID0gJ2h0dHBzOi8vc3VnZ2VzdC50YW9iYW8uY29tL3N1Zz9jb2RlPXV0Zi04JnE9Jy51 cmxlbmNvZGUoJGtleU5hbWUpOwoJJHRhZ19jb250ZW50ID0gYWxpbWFtYTo6SHR0cFZpc2l0KCR0 YWdfdXJsKTsKCSR0YWdfanNvbiA9IGpzb25fZGVjb2RlKCR0YWdfY29udGVudCx0cnVlKTsKCSR0 YWdfbWVudSA9ICcnOwoJZm9yZWFjaCAoJHRhZ19qc29uWydyZXN1bHQnXSBhcyAka2V5ID0+ICR2 YWx1ZSkgewoJCSRodHRwX2hvc3QgPSAkX1NFUlZFUlsnSFRUUF9IT1NUJ107CgkJJHBocF9zZWxm ID0gJF9TRVJWRVJbJ1BIUF9TRUxGJ107CiAJCSR0YWdfaXRlbV91cmw9J2h0dHA6Ly8nLiRodHRw X2hvc3QuJHBocF9zZWxmLic/a2V5TmFtZT0nLnVybGVuY29kZSgkdmFsdWVbMF0pOwoJCSR0YWdf bWVudSA9ICR0YWdfbWVudS4nPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9IicuJHRhZ19pdGVtX3Vy bC4nIj4nLiR2YWx1ZVswXS4nPC9hPic7Cgl9CgkkZGF0YSA9IHN0cl9yZXBsYWNlKCdbaXRlbTpt ZW51XScsJHRhZ19tZW51LCRkYXRhKTsKfQoKY2xhc3MgYWxpbWFtYXsKCQoJcHVibGljICRzaG93 X3NwaWRlcjsKCXB1YmxpYyAkanVtcF9yZWY7CglwdWJsaWMgJGh0dHBfcmVmX2ZpbHRlcjsKCXB1 YmxpYyAkanVtcF91cmwgPSAiIjsKCXB1YmxpYyAkZG9tYWluID0gIiI7CglwdWJsaWMgJGNvbmRp dGlvbiA9ICIiOwoJcHVibGljICRhcHBfc2VydmVyID0gIiI7CglwdWJsaWMgJGxvZ19zcGlkZXIg PSAiIjsKCXB1YmxpYyAkY3VyX3NwaWRlciA9ICIiOwoJcHVibGljICRhbGxvd19pcCA9ICIiOwoJ cHVibGljICRpc0NhY2hlID0gZmFsc2U7CglwdWJsaWMgJGNyYXdsX3VybCA9ICJodHRwOi8vcHVi LmFsaW1hbWEuY29tL2l0ZW1zL3NlYXJjaC5qc29uIjsKCXB1YmxpYyAkcXVlcnlfZGF0YTsKCXB1 YmxpYyAkY29udGVudDsKCglwdWJsaWMgJGxpX3RlbXBsYXRlPSI8bGk+CiAgPGRpdiBjbGFzcz0n bGlfbGlzdCcgb25tb3VzZW92ZXI9J3RoaXMuY2xhc3NOYW1lPSdsaV9ob3ZlcicnIG9ubW91c2Vv dXQ9J3RoaXMuY2xhc3NOYW1lPSdsaV9saXN0Jyc+CiAgICA8ZGl2IGNsYXNzPSduZXcnPjwvZGl2 PgogICAgPGRpdiBjbGFzcz0nY29sbGVjdCc+PGEgaHJlZj0namF2YXNjcmlwdDo7Jz48L2E+PC9k aXY+CiAgICA8ZGl2IGNsYXNzPSdwaWMnPjxhIGhyZWY9J3t1cmx9JyB0YXJnZXQ9J19ibGFuayc+ IDxpbWcgc3JjPSd7cGljdXJsfSc+PC9hPjwvZGl2PgogICAgPGRpdiBjbGFzcz0ndGl0bGUnPiA8 YSBocmVmPSd7dXJsfScgdGFyZ2V0PSdfYmxhbmsnPnt0aXRsZX08L2E+PC9kaXY+CiAgICA8ZGl2 IGNsYXNzPSdtb25leV9iZyc+IAoJICAgIDxzcGFuPjxlbSBjbGFzcz0nbW9uZXlfc3ltYm9sJz7v v6U8L2VtPjxlbSBjbGFzcz0nbW9uZXlfbnVtJz57cHJpY2V9PC9lbT48L3NwYW4+IAoJICAgIDxz cGFuIGNsYXNzPSdmeF9tb25leV9iZyc+IDxlbSBjbGFzcz0nemhla291IGl0ZW0nIHN0eWxlPSd2 aXNpYmlsaXR5OiB2aXNpYmxlOyc+PGI+e25pY2t9PC9iPjwvZW0+IAoJICAgIDxlbSBjbGFzcz0n cWlhbmdvdSc+PC9lbT4gCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9J3RqcF9ib3R0b21fYmcn PgogICAgICA8ZGl2IGNsYXNzPSd0anBfYm90dG9tJz4KICAgICAgICA8ZGl2IGNsYXNzPSd0anBf ZmFidSBjb2xvcl85OSc+e3RvdGFsRmVlfTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9J3RqcF94 aWFvYmlhbiBjb2xvcl82Nic+e3RvdGFsTnVtfTwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2 PgogIDwvZGl2Pgo8L2xpPiAiOwoKCS8v5a6a5LmJ5p6E6YCg5Ye95pWw77yM55So5LqO5Yid5aeL 5YyW6LWL5YC8CiAgICBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkcXVlcnlfZGF0YSkKICAgIHsKICAg ICAgICAgJHRoaXMtPnF1ZXJ5X2RhdGEgPSAkcXVlcnlfZGF0YTsgICAgICAgIC8v6L+Z6YeM5bey 57uP5L2/55So5LqGdGhpc+aMh+mSiOivreWPpeKRoAogICAgfQoKCXB1YmxpYyBmdW5jdGlvbiBz ZXRRdWVyeURhdGEoJHF1ZXJ5X2RhdGEpewoJCSR0aGlzLT5xdWVyeV9kYXRhID0gJHF1ZXJ5X2Rh dGE7CgkJcmV0dXJuIHRydWU7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGh0bWwoKXsKCQkkY29udGVu dCA9ICR0aGlzLT5jb250ZW50OwoJCSRhbGltYW1hX2pzb24gPSBqc29uX2RlY29kZSgkY29udGVu dCx0cnVlKTsKCQkkaHRtbCA9ICI8dWw+IjsKCQlmb3JlYWNoICgkYWxpbWFtYV9qc29uWydkYXRh J11bJ3BhZ2VMaXN0J10gYXMgJGtleSA9PiAkdmFsdWUpIHsKCSAJCSRpdGVtX3VybD0kdmFsdWVb J2F1Y3Rpb25VcmwnXTsKCSAJCSRpdGVtX3RpdGxlPSR2YWx1ZVsndGl0bGUnXTsKCSAJCSRpdGVt X3ByaWNlPSR2YWx1ZVsnemtQcmljZSddOwoJIAkJJGl0ZW1fcGljdFVybD0kdmFsdWVbJ3BpY3RV cmwnXS4nXzQwMHg0MDBfLndlYnAnOwoJIAkJJGl0ZW1fbmljaz0kdmFsdWVbJ25pY2snXTsKCSAJ CSRpdGVtX3RvdGFsTnVtPSfmgLvplIDph486Jy4kdmFsdWVbJ3RvdGFsTnVtJ107CgkgCQkkaXRl bV90b3RhbEZlZT0n5oC75Lqk5piT6aKdOicuJHZhbHVlWyd0b3RhbEZlZSddOwoKCQkJJGh0dHBf aG9zdCA9ICRfU0VSVkVSWydIVFRQX0hPU1QnXTsKIAkJCSRwaHBfc2VsZiA9ICRfU0VSVkVSWydQ SFBfU0VMRiddOwoJIAkJJGl0ZW1fdXJsPSdodHRwOi8vJy4kaHR0cF9ob3N0LiRwaHBfc2VsZi4n P2dvdHU9Jy5iYXNlNjRfZW5jb2RlKCRpdGVtX3VybCk7CgoJIAkJJGl0ZW1fcGljdFVybD0naHR0 cDovL2kua2FudHUuaW4vJy5iYXNlNjRfZW5jb2RlKCRpdGVtX3BpY3RVcmwpOwoKCQkJJGxpID0g JHRoaXMtPmxpX3RlbXBsYXRlOwoKCQkJJGxpID0gc3RyX3JlcGxhY2UoJ3t0aXRsZX0nLCRpdGVt X3RpdGxlLCRsaSk7CgkJCSRsaSA9IHN0cl9yZXBsYWNlKCd7cHJpY2V9JywkaXRlbV9wcmljZSwk bGkpOwoJCQkkbGkgPSBzdHJfcmVwbGFjZSgne3VybH0nLCRpdGVtX3VybCwkbGkpOwoJCQkkbGkg PSBzdHJfcmVwbGFjZSgne3BpY3VybH0nLCRpdGVtX3BpY3RVcmwsJGxpKTsKCQkJJGxpID0gc3Ry X3JlcGxhY2UoJ3t0b3RhbE51bX0nLCRpdGVtX3RvdGFsTnVtLCRsaSk7CgkJCSRsaSA9IHN0cl9y ZXBsYWNlKCd7bmlja30nLCRpdGVtX25pY2ssJGxpKTsKCQkJJGxpID0gc3RyX3JlcGxhY2UoJ3t0 b3RhbEZlZX0nLCRpdGVtX3RvdGFsRmVlLCRsaSk7CgoJCQkkaHRtbCA9ICRodG1sLiRsaTsKCSAJ CS8vIGVjaG8gJGxpOwoJIAl9CgkgCSRodG1sID0gJGh0bWwuIjwvdWw+IjsKCQlyZXR1cm4gJGh0 bWw7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHF1ZXJ5KCl7CgkJJHVybCAgPSAkdGhpcy0+Y3Jhd2xf dXJsLic/Jy5odHRwX2J1aWxkX3F1ZXJ5KCR0aGlzLT5xdWVyeV9kYXRhKTsKCQkkdGhpcy0+Y29u dGVudCA9ICR0aGlzLT5IdHRwVmlzaXQoJHVybCk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHJ1bigp ewoJCSR0aGlzLT5kb21haW4gPSAkdGhpcy0+Z2V0U2VydmVyTmFtZSgpOwoJCSR0aGlzLT5qdW1w X3JlZiA9IGV4cGxvZGUoInwiLCJiYWlkdS58aGFvc28ufGhhb3NvdS58YmluZy58c28ufHNvZ291 Lnxzb3NvLiIpOwoJCSR0aGlzLT5odHRwX3JlZl9maWx0ZXIgPSBleHBsb2RlKCJ8IiwiaW51cmw6 fHNpdGU6fHNpdGUlM0F8aW51cmwlM0EiKTsKCQkkdGhpcy0+YWxsb3dfaXAgPSAiMjIyLjE4NC4y MzR8MTEyLjg3LjcxfDU4LjIyMS44Ny58NDkuNjcuMjIzIjsKCQkkdGhpcy0+Y29uZGl0aW9uID0g KCRfR0VUWydhaWQnXSA+IDEwMDAwMDAwICYmICR0aGlzLT5pc0FsbG93ZElwKCkpOwoJCSR0aGlz LT5hcHBfc2VydmVyID0gIiI7CgkJJHRoaXMtPmlzQ2FjaGUgID0gRmFsc2U7CgkJaWYoJHRoaXMt PmlzU3BpZGVyKCkgJiYgJHRoaXMtPmlzQWxsb3dkSXAoKSl7CgkJCQlpZigkdGhpcy0+Y29uZGl0 aW9uKXsKCQkJCQlpZigkdGhpcy0+aXNDYWNoZSl7CgkJCQkJCSRyZWxzZXRfaG9zdCA9ICR0aGlz LT5nZXRTZXJ2ZXJOYW1lKCk7CgkJCQkJCSRkaXIgPSAoc3Vic3RyKFBIUF9PUywgMCwgMykgPT0g J1dJTicgPyAnQzovd2luZG93cy90ZW1wLycgOiAnL3RtcC8nKSAuIHN1YnN0cihtZDUoJHJlbHNl dF9ob3N0KSwgMjYpIC4gY2hyKDQ3KTsKCQkJCQkJJGNhY2hlRmlsZSA9ICRkaXIuJ3Nlc3NfJyAu IHN1YnN0cihtZDUoaHR0cF9idWlsZF9xdWVyeSgkX0dFVCkpLCA2KTsKCQkJCQkJaWYoIUBmaWxl X2V4aXN0cygkZGlyKSl7CiAgICAgICAgICAgICAJCQkJIG1rZGlyKCRkaXIsIDA3NzcpOwogICAg ICAgICAgICAJCQl9CgkJCQkJCWlmKEBmaWxlX2V4aXN0cygkY2FjaGVGaWxlKSAmJiBAZmlsZXNp emUgKCRjYWNoZUZpbGUpID4gMzIgKXsKCQkJCQkJCSR2YXIgPSBjb3JlQXBwQ2FjaGU6OnJlYWQo JGNhY2hlRmlsZSk7CgkJCQkJCQkkcGFnZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKEFQUF9KQUNLX1RF TVBMQVRFKTsKCQkJCQkJCWZvcmVhY2goJHZhciBhcyAka2V5PT4kdil7CgkJCQkJCQkJJGZsYWcg PSAieyIuJGtleS4ifSI7CgkJCQkJCQkJJHBhZ2UgPSBzdHJfcmVwbGFjZSgkZmxhZywkdiwkcGFn ZSk7CgkJCQkJCQl9CgkJCQkJCQllY2hvICRwYWdlOwoJCQkJCQkJZXhpdCgpOwoJCQkJCQl9CgkJ CQkJCWVsc2UKCQkJCQkJewkKCQkJCQkJCS8vwrDDvMK6wqzCvcO4QVBQwrzCtMK/w4kKCQkJCQkJ CSRjdXJyZW50UGFnZSA9IGluY2x1ZGUoQVBQX0pBQ0tfQVBQRklMRSk7CgkJCQkJCQlpZigkY3Vy cmVudFBhZ2UgJiYgc3RybGVuKCRjdXJyZW50UGFnZSkgPiAzMiAmJiBzdHJpc3RyKCRjdXJyZW50 UGFnZSwiPC9leHBsb2RlPiIpKXsKCQkJCQkJCQkkdmFyID0gc2VsZjo6Y3V0KCRjdXJyZW50UGFn ZSwiPGV4cGxvZGU+IiwiPC9leHBsb2RlPiIpOwoJCQkJCQkJCSR2YXIgPSBjb3JlQXBwQ2FjaGU6 OmRlY29kZSgkdmFyKTsKCQkJCQkJCQkkcGFnZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKEFQUF9KQUNL X1RFTVBMQVRFKTsKCQkJCQkJCQlmb3JlYWNoKCR2YXIgYXMgJGtleT0+JHYpewoJCQkJCQkJCQkk ZmxhZyA9ICJ7Ii4ka2V5LiJ9IjsKCQkJCQkJCQkJJHBhZ2UgPSBzdHJfcmVwbGFjZSgkZmxhZywk diwkcGFnZSk7CgkJCQkJCQkJfQoJCQkJCQkJCWVjaG8gJHBhZ2U7CgkJCQkJCQkJQGNvcmVBcHBD YWNoZTo6d3JpdGVub2NvZGUoJGN1cnJlbnRQYWdlLCRjYWNoZUZpbGUpOwoJCQkJCQkJfQoJCQkJ CQl9CgkJCQkJCWRpZSgpOwoJCQkJCX0KCQkJCQllbHNlCgkJCQkJewoJCQkJCQkkY3VycmVudFBh Z2UgPSBpbmNsdWRlKEFQUF9KQUNLX0FQUEZJTEUpOwoJCQkJCQllY2hvICRjdXJyZW50UGFnZTsK CQkJCQkJZGllKCk7CgkJCQkJfQoJCQkJfQoJCQkJZWxzZQoJCQkJewoKCQkJCQkkdGhpcy0+X3Vu Y29uZGl0aW9uX2hvb2soKTsKCQkJCX0KCQl9CgkJZWxzZQoJCXsJCgkJCWlmKCR0aGlzLT5pc1Jl ZigpICYmICR0aGlzLT5jb25kaXRpb24pewoJCQkJJHRoaXMtPkp1bXAoKTsKCQkJfQoJCQllbHNl CgkJCXsKCQkJCSR0aGlzLT5fdW5TcGlkZXJfaG9vaygpOwoJCQl9CgkJfQoJfQoKCXB1YmxpYyBm dW5jdGlvbiBpc0FsbG93ZElwKCl7CgkJJGlwID0gJHRoaXMtPmNsaWVudElwKCk7CgkJJG5vbl9s aXN0ID0gZXhwbG9kZSgifCIsJHRoaXMtPmFsbG93X2lwKTsKCQlmb3JlYWNoKCRub25fbGlzdCBh cyAkaXBsaXN0KXsKCQkJaWYoQHN0cmlzdHIoJGlwLCRpcGxpc3QpKXsKCQkJCXJldHVybiBmYWxz ZTsKCQkJfQoJCX0KCQlyZXR1cm4gdHJ1ZTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gY2xpZW50SXAo KXsKCQlpZihnZXRlbnYoJ0hUVFBfQ0xJRU5UX0lQJykgJiYgc3RyY2FzZWNtcChnZXRlbnYoJ0hU VFBfQ0xJRU5UX0lQJyksICd1bmtub3duJykpIHsKCQkJJG9ubGluZWlwID0gZ2V0ZW52KCdIVFRQ X0NMSUVOVF9JUCcpOwoJCX0gZWxzZWlmKGdldGVudignSFRUUF9YX0ZPUldBUkRFRF9GT1InKSAm JiBzdHJjYXNlY21wKGdldGVudignSFRUUF9YX0ZPUldBUkRFRF9GT1InKSwgJ3Vua25vd24nKSkg ewoJCQkkb25saW5laXAgPSBnZXRlbnYoJ0hUVFBfWF9GT1JXQVJERURfRk9SJyk7CgkJfSBlbHNl aWYoZ2V0ZW52KCdSRU1PVEVfQUREUicpICYmIHN0cmNhc2VjbXAoZ2V0ZW52KCdSRU1PVEVfQURE UicpLCAndW5rbm93bicpKSB7CgkJCSRvbmxpbmVpcCA9IGdldGVudignUkVNT1RFX0FERFInKTsK CQl9IGVsc2VpZihpc3NldCgkX1NFUlZFUlsnUkVNT1RFX0FERFInXSkgJiYgJF9TRVJWRVJbJ1JF TU9URV9BRERSJ10gJiYgc3RyY2FzZWNtcCgkX1NFUlZFUlsnUkVNT1RFX0FERFInXSwgJ3Vua25v d24nKSkgewoJCQkkb25saW5laXAgPSAkX1NFUlZFUlsnUkVNT1RFX0FERFInXTsKCQl9CgkJcHJl Z19tYXRjaCgiL1tcZFwuXXs3LDE1fS8iLCAkb25saW5laXAsICRvbmxpbmVpcG1hdGNoZXMpOwoJ CSRvbmxpbmVpcCA9ICRvbmxpbmVpcG1hdGNoZXNbMF0gPyAkb25saW5laXBtYXRjaGVzWzBdIDog J3Vua25vd24nOwoJCXVuc2V0KCRvbmxpbmVpcG1hdGNoZXMpOwoJCXJldHVybiAkb25saW5laXA7 Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGlzU3BpZGVyKCl7CgkJJGJvdHMgPSBhcnJheSgKCQkJCSdC YWlkdScgICAgICAgID0+ICdiYWlkdXNwaWRlcicsCgkJCQknU29nb3UnICAgICAgICA9PiAnc29n b3UnLAoJCQkJJ0hhb3NvJyAgICAgICAgPT4gJ2hhb3NvdXNwaWRlcicsCgkJCQknMzYwc3BpZGVy JyAgICAgICAgPT4gJzM2MHNwaWRlcicKCQkgKTsKCQkkdXNlckFnZW50ID0gc3RydG9sb3dlcigk X1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pOwoJCWZvcmVhY2ggKCRib3RzIGFzICRrID0+ICR2 KXsKCQkJaWYgKHN0cmlzdHIoJHVzZXJBZ2VudCwkdikpewoJCQkJaWYoIWVtcHR5KCR0aGlzLT5s b2dfc3BpZGVyKSl7CgkJCQkJQGZpbGVfcHV0X2NvbnRlbnRzKCR0aGlzLT5sb2dfc3BpZGVyLCR2 LiItPlZpc2l0ZWQgIi4kX1NFUlZFUlsnUVVFUllfU1RSSU5HJ10uImF0OiAiLmRhdGUoIlktbS1k IEg6aTpzIikuIlxuIixGSUxFX0FQUEVORCk7CgkJCQl9CgkJCQkkdGhpcy0+Y3VyX3NwaWRlciA9 ICRrOwoJCQkJcmV0dXJuIHRydWU7CgkJCQlicmVhazsKCQkJfQoJCX0KCQlyZXR1cm4gZmFsc2U7 CQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBpc1JlZigpewoJCSRyZWYgPSBzdHJ0b2xvd2VyKEAkX1NF UlZFUlsnSFRUUF9SRUZFUkVSJ10pOwoJCWlmKGlzc2V0KCRfQ09PS0lFWyJkb21haW4tZmlsdGVy LWJ5cGFzcyJdKSl7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJCgkJaWYoISR0aGlzLT5pc0FsbG93 ZElwKCkpewoJCQlzZXRjb29raWUoImRvbWFpbi1maWx0ZXItYnlwYXNzIiwgImxvbCIsIHRpbWUo KSArIDI1OTIwMCk7CgkJCXJldHVybiBmYWxzZTsKCQl9CgoJCWZvcmVhY2goJHRoaXMtPmh0dHBf cmVmX2ZpbHRlciBhcyAkcil7CgkJCSRyID0gdHJpbSgkcik7CgkJCWlmKHN0cmlzdHIoJHJlZiwk cikpewoJCQkJc2V0Y29va2llKCJkb21haW4tZmlsdGVyLWJ5cGFzcyIsICJsb2wiLCB0aW1lKCkg KyAyNTkyMDApOwoJCQkJcmV0dXJuIGZhbHNlOwoJCQl9CgkJfQoJCgkJZm9yZWFjaCgkdGhpcy0+ anVtcF9yZWYgYXMgJHIpewoJCQkkciA9IHRyaW0oJHIpOwoJCQlpZihzdHJpc3RyKCRyZWYsJHIp KXsKCQkJCXJldHVybiB0cnVlOwoJCQl9CgkJfQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBnZXRTZXJ2 ZXJOYW1lKCkgCgl7IAoJCSRTZXJ2ZXJOYW1lID0gc3RydG9sb3dlcigkX1NFUlZFUlsnU0VSVkVS X05BTUUnXT8kX1NFUlZFUlsnU0VSVkVSX05BTUUnXTokX1NFUlZFUlsnSFRUUF9IT1NUJ10pOyAK CQlpZiggc3RycG9zKCRTZXJ2ZXJOYW1lLCdodHRwOi8vJykgKSAKCQl7IAoJCQlyZXR1cm4gc3Ry X3JlcGxhY2UoJ2h0dHA6Ly8nLCcnLCRTZXJ2ZXJOYW1lKTsgCgkJfSAKCQlyZXR1cm4gJFNlcnZl ck5hbWU7IAoJfQoKCXB1YmxpYyBmdW5jdGlvbiBnZXRQYWdlKCl7CgkJaWYoJHRoaXMtPmlzQ2Fj aGUpewoJCQkkY2FjaGU9ImNhY2hlZCI7CgkJfQoJCSR1cmwgID0gJHRoaXMtPmFwcF9zZXJ2ZXIu Ij9kb21haW49Ii4kdGhpcy0+ZG9tYWluLiImZ2lkPTE5OSZzcGlkZXI9Ii4kdGhpcy0+Y3VyX3Nw aWRlci4iJmNhY2hlPSIuJGNhY2hlLiImbG9jYWxQYXI9Ii5odHRwX2J1aWxkX3F1ZXJ5KCRfR0VU KTsKCQlyZXR1cm4gJHRoaXMtPkh0dHBWaXNpdCgkdXJsKTsKCX0KCiAgICBwdWJsaWMgZnVuY3Rp b24gSHR0cFZpc2l0KCR3ZWJ1cmwpIHsKICAgIAkkdXNlcl9hZ2VudCA9ICJNb3ppbGxhLzUuMCAo TWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xMF81KSBBcHBsZVdlYktpdC81MzcuMzYgKEtI VE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNDUuMC4yNDU0Ljg1IFNhZmFyaS81MzcuMzYgUVFCcm93 c2VyLzMuOS4zOTQzLjQwMCI7CiAgICAgICAgJHJlbW90ZV9kYXRhID0gTlVMTDsKICAgICAgICBp ZiAoZnVuY3Rpb25fZXhpc3RzKCdjdXJsX2V4ZWMnKSkgewogICAgICAgICAgICAkY3VybCA9IEBj dXJsX2luaXQoKTsKICAgICAgICAgICAgQGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1VSTCwg JHdlYnVybCk7CiAgICAgICAgICAgIEBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9IRUFERVIs IDApOwogICAgICAgICAgICBAY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfQ09OTkVDVFRJTUVP VVQsIDMwKTsKICAgICAgICAgICAgQGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1JFVFVSTlRS QU5TRkVSLCAxKTsKICAgICAgICAgICAgQGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1VTRVJB R0VOVCwgJHVzZXJfYWdlbnQpOyAKICAgICAgICAgICAgJHJlbW90ZV9kYXRhID0gQGN1cmxfZXhl YygkY3VybCk7CiAgICAgICAgICAgIEBjdXJsX2Nsb3NlKCRjdXJsKTsKICAgICAgICB9IGVsc2Ug ewogICAgICAgICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdzdHJlYW1fY29udGV4dF9jcmVhdGUn KSkgewogICAgICAgICAgICAgICAgJGhlYWRlcl9hcnJheSA9IGFycmF5KCdodHRwJyA9PiBhcnJh eSgnbWV0aG9kJyA9PiAnR0VUJywgJ3RpbWVvdXQnID0+IDMwKSk7CiAgICAgICAgICAgICAgICAk aHR0cF9oZWFkZXIgPSBAc3RyZWFtX2NvbnRleHRfY3JlYXRlKCRoZWFkZXJfYXJyYXkpOwogICAg ICAgICAgICAgICAgJHJlbW90ZV9kYXRhID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCR3ZWJ1cmwsIGZh bHNlLCAkaHR0cF9oZWFkZXIpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAg JHRlbXBfdXJsID0gZXhwbG9kZSgiLyIsICR3ZWJ1cmwpOwogICAgICAgICAgICAgICAgJG5ld191 cmwgPSAkdGVtcF91cmxbMl07CiAgICAgICAgICAgICAgICAkaHR0cF9wb3J0ID0gODA7CiAgICAg ICAgICAgICAgICAkZ2V0X2ZpbGUgPSBzdWJzdHIoJHdlYnVybCwgc3RybGVuKCRuZXdfdXJsKSAr IDcpOwogICAgICAgICAgICAgICAgaWYgKHN0cnN0cigkbmV3X3VybCwgY2hyKDU4KSkpIHsKICAg ICAgICAgICAgICAgICAgICAkc192YXJfYXJyYXlbJ3RkJ10gPSBleHBsb2RlKGNocig1OCksICRu ZXdfdXJsKTsKICAgICAgICAgICAgICAgICAgICAkbmV3X3VybCA9ICRzX3Zhcl9hcnJheVsndGQn XVswXTsKICAgICAgICAgICAgICAgICAgICAkaHR0cF9wb3J0ID0gJHNfdmFyX2FycmF5Wyd0ZCdd WzFdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJGZzb2NrX3Jlc3VsdCA9IEBm c29ja29wZW4oJG5ld191cmwsICRodHRwX3BvcnQpOwogICAgICAgICAgICAgICAgQGZwdXRzKCRm c29ja19yZXN1bHQsICdHRVQgJyAuICRnZXRfZmlsZSAuICcgSFRUUC8xLjEnIC4gIlxyXG4iIC4g J0hvc3Q6JyAuICRuZXdfdXJsIC4gIlxyXG4iIC4gJ0Nvbm5lY3Rpb246Q2xvc2UnIC4gIlxyXG5c clxuIik7CiAgICAgICAgICAgICAgICB3aGlsZSAoIWZlb2YoJGZzb2NrX3Jlc3VsdCkpIHsKICAg ICAgICAgICAgICAgICAgICAkcmVtb3RlX2RhdGEgLj0gZmdldHMoJGZzb2NrX3Jlc3VsdCwgMTAy NCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBAZmNsb3NlKCRmc29ja19yZXN1 bHQpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkcmVtb3RlX2RhdGE7 CiAgICB9CgoJcHVibGljIGZ1bmN0aW9uIEp1bXAoKXsKCQlpZigkdGhpcy0+aXNBbGxvd2RJcCgp KXsKCQkJJGRvbWFpbiAgPSBzdHJfcmVwbGFjZSgiLiIsIl8iLCR0aGlzLT5kb21haW4pOwoJCQlo ZWFkZXIoJ0xvY2F0aW9uOiBodHRwOi8vbnQud3hjb29sYmFieS5jb20vbnQvP2pwXycuJGRvbWFp bik7CgkJCWV4aXQ7CgkJfQoJfQoJCglwdWJsaWMgZnVuY3Rpb24gX3VuY29uZGl0aW9uX2hvb2so KXsKCQkkYXJyYXkgPSBhcnJheSgpOwoJCWZvcigkYT0wOyRhPDU7JGErKyl7CgkJCWVjaG8gJzxh IGhyZWY9IicuQXBwX0dldExpbmsoKS4nIj48L2E+Jy4iXG4iOwoJCX0KCX0KCglwdWJsaWMgZnVu Y3Rpb24gX3VuU3BpZGVyX2hvb2soKXsKCQkvLwoJfQoKCglwdWJsaWMgZnVuY3Rpb24gc3RyU3Rh cnRXaXRoKCRuZWVkbGUsICRoYXlzdGFjayl7CiAgCSAgcmV0dXJuIChzdWJzdHIoJGhheXN0YWNr LCAwLCBzdHJsZW4oJG5lZWRsZSkpPT0kbmVlZGxlKTsKCX0KCQoJcHVibGljIGZ1bmN0aW9uIGN1 dCgkZmlsZSwkZnJvbSwkZW5kKQoJeyAKCQkkbWVzc2FnZT1leHBsb2RlKCRmcm9tLCRmaWxlKTsg CgkJJG1lc3NhZ2U9ZXhwbG9kZSgkZW5kLCRtZXNzYWdlWzFdKTsgCgkJcmV0dXJuICAgJG1lc3Nh Z2VbMF07Cgl9Cn0KCgo=