手游外挂基础篇之ptrace注入

isnull   ·   发表于 2019-06-10 11:32:01   ·   漏洞文章
PGgxIGlkPSJ0b2MtMCI+5byV6KiAPC9oMT48cD7mnKznr4fmlofnq6DlhbfkvZPku47ku6PnoIHkuK3lgZrliLDlpoLkvZXov5vooYxwdHJhY2Xms6jlhaXvvIzkuLrlrp7njrDlsIblpJbmjILmqKHlnZfms6jlhaXliLDmuLjmiI/ov5vnqIvkuK3noLTop6PmiYvmuLgyMDQ45YGa5YeG5aSHPC9wPjxoMSBpZD0idG9jLTEiPuaKgOacr+amgui/sDwvaDE+PHA+5Li76KaB6YCa6L+H57O757uf6LCD55So5Ye95pWwcHRyYWNl55qE5Yqf6IO977yaPC9wPjxvbD48bGk+6YCa6L+Hc2hlbGxjb2Rl5rOo5YWl5qih5Z2X5Yiw6L+c56iL6L+b56iL5LitPC9saT48bGk+5Yip55SocHRyYWNl6L+c56iL6LCD55SoZGxvcGVuL2Rsc3lt5bCG5Yqo5oCB6ZO+5o6l5bqT5rOo5YWl5Yiw6L+c56iL6L+b56iL5Lit5bm25omn6KGM55u45bqU5pON5L2c44CCPC9saT48L29sPjxwPuS4i+mdouS5n+aYr+S4u+imgeWunueOsGRsb3Blbi9kbHN5beadpei/m+ihjHNv5bqT55qE5rOo5YWl5ZKM5Ye95pWw55qE6LCD55SoPC9wPjxoMSBpZD0idG9jLTIiPuS7o+eggeWunueOsDwvaDE+PHA+PHN0cm9uZz7lpLTmlofku7Y8L3N0cm9uZz7vvJrlo7DmmI7lh73mlbA8L3A+PHA+PGJyLz48L3A+PHA+LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio8YnIvPiZuYnNwOyombmJzcDsgRmlsZU5hbWU6Jm5ic3A7Jm5ic3A7IHB0cmFjZUluamVjdC5oPGJyLz4mbmJzcDsqJm5ic3A7IERlY3JpcHRpb246IHB0cmFjZeazqOWFpTxici8+Jm5ic3A7KiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88YnIvPjxici8+I2luY2x1ZGUgPHN0ZGlvLmg+PGJyLz4jaW5jbHVkZSA8c3RkbGliLmg+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOzxici8+I2luY2x1ZGUgPHVuaXN0ZC5oPiA8YnIvPjxici8+Lyog5Yqf6IO9Me+8mumAmui/h3B0cmFjZei/nOeoi+iwg+eUqGRsb3Blbi9kbHN5beaWueW8j+azqOWFpeaooeWdl+WIsOi/nOeoi+i/m+eoiyAqLzxici8+aW50IGluamVjdF9yZW1vdGVfcHJvY2VzcyhwaWRfdCBwaWQsIGNoYXIgKkxpYlBhdGgsIGNoYXIgKkZ1bmN0aW9uTmFtZSwgbG9uZyAqRnVuY1BhcmFtZXRlciwgbG9uZyBOdW1QYXJhbWV0ZXIpOzxici8+PGJyLz4vKiDlip/og70y77ya6YCa6L+Hc2hlbGxjb2Rl5pa55byP5rOo5YWl5qih5Z2X5Yiw6L+c56iL6L+b56iLKi88YnIvPmludCBpbmplY3RfcmVtb3RlX3Byb2Nlc3Nfc2hlbGxjb2RlKHBpZF90IHBpZCwgY2hhciAqTGliUGF0aCwgY2hhciAqRnVuY3Rpb25OYW1lLCBsb25nICpGdW5jUGFyYW1ldGVyLCBsb25nIE51bVBhcmFtZXRlcik7PC9wPjxwPjxici8+PC9wPjxwPjxzdHJvbmc+6LCD6K+V55So5Yiw55qE5pel5b+X5bel5YW3PC9zdHJvbmc+77yaPGNvZGU+UHJpbnRMb2cuaDwvY29kZT48L3A+PHA+PGJyLz48L3A+PHA+I2lmbmRlZiBfQU5EUk9JRF9MT0dfUFJJTlRfSF88YnIvPiNkZWZpbmUgX0FORFJPSURfTE9HX1BSSU5UX0hfPGJyLz48YnIvPiNkZWZpbmUmbmJzcDsgTUFYX1BBVEggMHgxMDA8YnIvPjxici8+I2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+PGJyLz4vL+WmguaenOS4jeaDs+aJk+WNsOaXpeW/l+WPr+S7peazqOmHiui/meihjOWuj+WumuS5iTxici8+I2RlZmluZSBJU19ERUJVRzxici8+Ly/lpoLmnpzlro/lrprkuYnkuoZJU19ERUJVR++8jOmCo+S5iOS4i+mdouWwseS8muWuj+WumuS5ieS4i+mdoui/meS6m+aXpeW/l+aJk+WNsOWHveaVsDxici8+I2lmZGVmIElTX0RFQlVHPGJyLz48YnIvPiNkZWZpbmUgTE9HX1RBRyAoIklOSkVDVCIpPGJyLz48YnIvPiNkZWZpbmUgTE9HViguLi4pICgodm9pZClfX2FuZHJvaWRfbG9nX3ByaW50KEFORFJPSURfTE9HX1ZFUkJPU0UsIExPR19UQUcsIF9fVkFfQVJHU19fKSk8YnIvPjxici8+I2RlZmluZSBMT0dEKC4uLikgKCh2b2lkKV9fYW5kcm9pZF9sb2dfcHJpbnQoQU5EUk9JRF9MT0dfREVCVUcmbmJzcDsgLCBMT0dfVEFHLCBfX1ZBX0FSR1NfXykpPGJyLz48YnIvPiNkZWZpbmUgTE9HSSguLi4pICgodm9pZClfX2FuZHJvaWRfbG9nX3ByaW50KEFORFJPSURfTE9HX0lORk8mbmJzcDsmbmJzcDsgLCBMT0dfVEFHLCBfX1ZBX0FSR1NfXykpPGJyLz48YnIvPiNkZWZpbmUgTE9HVyguLi4pICgodm9pZClfX2FuZHJvaWRfbG9nX3ByaW50KEFORFJPSURfTE9HX1dBUk4mbmJzcDsmbmJzcDsgLCBMT0dfVEFHLCBfX1ZBX0FSR1NfXykpPGJyLz48YnIvPiNkZWZpbmUgTE9HRSguLi4pICgodm9pZClfX2FuZHJvaWRfbG9nX3ByaW50KEFORFJPSURfTE9HX0VSUk9SJm5ic3A7ICwgTE9HX1RBRywgX19WQV9BUkdTX18pKTxici8+PGJyLz4jZWxzZTxici8+PGJyLz4jZGVmaW5lIExPR1YoTE9HX1RBRywgLi4uKSBOVUxMPGJyLz48YnIvPiNkZWZpbmUgTE9HRChMT0dfVEFHLCAuLi4pIE5VTEw8YnIvPjxici8+I2RlZmluZSBMT0dJKExPR19UQUcsIC4uLikgTlVMTDxici8+PGJyLz4jZGVmaW5lIExPR1coTE9HX1RBRywgLi4uKSBOVUxMPGJyLz48YnIvPiNkZWZpbmUgTE9HRShMT0dfVEFHLCAuLi4pIE5VTEw8YnIvPjxici8+I2VuZGlmPGJyLz48YnIvPiNlbmRpZjwvcD48cD48YnIvPjwvcD48cD48c3Ryb25nPua6kOS7o+eggTwvc3Ryb25nPjpwdHJhY2VJbmplY3QuYzwvcD48cD48YnIvPjwvcD48cD4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKjxici8+Jm5ic3A7KiZuYnNwOyBGaWxlTmFtZTogcHRyYWNlSW5qZWN0LmM8YnIvPiZuYnNwOyombmJzcDsgRGVzY3JpcHRpb246Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHB0cmFjZeazqOWFpTxici8+Jm5ic3A7KiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88YnIvPjxici8+PGJyLz4jaW5jbHVkZSA8c3RkaW8uaD4mbmJzcDsmbmJzcDsgJm5ic3A7PGJyLz4jaW5jbHVkZSA8c3RkbGliLmg+Jm5ic3A7Jm5ic3A7ICZuYnNwOzxici8+I2luY2x1ZGUgPHN5cy91c2VyLmg+Jm5ic3A7Jm5ic3A7ICZuYnNwOzxici8+I2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4mbmJzcDsmbmJzcDsgJm5ic3A7PGJyLz4jaW5jbHVkZSA8c3lzL3B0cmFjZS5oPiZuYnNwOyZuYnNwOyAmbmJzcDs8YnIvPiNpbmNsdWRlIDxzeXMvd2FpdC5oPiZuYnNwOyZuYnNwOyAmbmJzcDs8YnIvPiNpbmNsdWRlIDxzeXMvbW1hbi5oPiZuYnNwOyZuYnNwOyAmbmJzcDs8YnIvPiNpbmNsdWRlIDxkbGZjbi5oPiZuYnNwOyZuYnNwOyAmbmJzcDs8YnIvPiNpbmNsdWRlIDxkaXJlbnQuaD4mbmJzcDsmbmJzcDsgJm5ic3A7PGJyLz4jaW5jbHVkZSA8dW5pc3RkLmg+Jm5ic3A7Jm5ic3A7ICZuYnNwOzxici8+I2luY2x1ZGUgPHN0cmluZy5oPiZuYnNwOyZuYnNwOyAmbmJzcDs8YnIvPiNpbmNsdWRlIDxlbGYuaD4gPGJyLz4jaW5jbHVkZSA8UHJpbnRMb2cuaD4gPGJyLz4jaW5jbHVkZSA8cHRyYWNlSW5qZWN0Lmg+PGJyLz48YnIvPiNkZWZpbmUgQ1BTUl9UX01BU0smbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKCAxdSA8PCA1ICk8YnIvPjxici8+Y29uc3QgY2hhciAqbGliY19wYXRoID0gIi9zeXN0ZW0vbGliL2xpYmMuc28iOyZuYnNwOyZuYnNwOyAmbmJzcDs8YnIvPmNvbnN0IGNoYXIgKmxpbmtlcl9wYXRoID0gIi9zeXN0ZW0vYmluL2xpbmtlciI7PGJyLz48YnIvPjxici8+LyoqKioqKioqKioqKioqKioqKioqKioqKioqKjxici8+Jm5ic3A7KiZuYnNwOyBEZXNjcmlwdGlvbjombmJzcDsmbmJzcDsmbmJzcDsg5L2/55SocHRyYWNlIEF0dGFjaOmZhOWKoOWIsOaMh+Wumui/m+eoiyzlj5HpgIFTSUdTVE9Q5L+h5Y+357uZ5oyH5a6a6L+b56iL6K6p5YW25YGc5q2i5LiL5p2l5bm25a+55YW26L+b6KGM6Lef6Liq44CCPGJyLz4mbmJzcDsqJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IOS9huaYr+iiq+i3n+i4qui/m+eoiyh0cmFjZWUp5LiN5LiA5a6a5Lya5YGc5LiL5p2l77yM5Zug5Li65ZCM5pe2YXR0YWNo5ZKM5Lyg6YCSU0lHU1RPUOWPr+iDveS8muWwhlNJR1NUT1DkuKLlpLHjgII8YnIvPiZuYnNwOyombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg5omA5Lul6ZyA6KaBd2FpdHBpZCgyKeetieW+heiiq+i3n+i4qui/m+eoi+iiq+WBnOS4izxici8+Jm5ic3A7KiZuYnNwOyBJbnB1dDombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcGlk6KGo56S66L+c56iL6L+b56iL55qESUQ8YnIvPiZuYnNwOyombmJzcDsgT3V0cHV0OiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyDml6A8YnIvPiZuYnNwOyombmJzcDsgUmV0dXJuOiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyDov5Tlm54w6KGo56S6YXR0YWNo5oiQ5Yqf77yM6L+U5ZueLTHooajnpLrlpLHotKU8YnIvPiZuYnNwOyombmJzcDsgT3RoZXJzOiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyDml6A8YnIvPiZuYnNwOyogKioqKioqKioqKioqKioqKioqKioqKioqLzxici8+aW50IHB0cmFjZV9hdHRhY2gocGlkX3QgcGlkKTxici8+ezxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGludCBzdGF0dXMgPSAwOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmIChwdHJhY2UoUFRSQUNFX0FUVEFDSCwgcGlkLCBOVUxMLCBOVUxMKSA8IDApPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgezxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IExPR0QoInB0cmFjZSBhdHRhY2ggZXJyb3IsIHBpZDolZCIsIHBpZCk7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIC0xOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnIvPjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IExPR0QoImF0dGFjaCBwcm9jZXNzIHBpZDolZCIsIHBpZCk7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgd2FpdHBpZChwaWQsICZzdGF0dXMgLCBXVU5UUkFDRUQpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiAwOzxici8+fTxici8+PGJyLz4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKjxici8+Jm5ic3A7KiZuYnNwOyZuYnNwOyBEZXNjcmlwdGlvbjombmJzcDsmbmJzcDsmbmJzcDsg5L2/55SocHRyYWNlIGRldGFjaOaMh+Wumui/m+eoiyzlrozmiJDlr7nmjIflrprov5vnqIvnmoTot5/ouKrmk43kvZzlkI7vvIzkvb/nlKjor6Xlj4LmlbDljbPlj6/op6PpmaTpmYTliqA8YnIvPiZuYnNwOyombmJzcDsmbmJzcDsgSW5wdXQ6Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHBpZOihqOekuui/nOeoi+i/m+eoi+eahElEPGJyLz4mbmJzcDsqJm5ic3A7Jm5ic3A7IE91dHB1dDombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg5pegPGJyLz4mbmJzcDsqJm5ic3A7Jm5ic3A7IFJldHVybjombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg6L+U5ZueMOihqOekumRldGFjaOaIkOWKn++8jOi/lOWbni0x6KGo56S65aSx6LSlPGJyLz4mbmJzcDsqJm5ic3A7Jm5ic3A7IE90aGVyczombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg5pegPGJyLz4mbmJzcDsqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzxici8+aW50IHB0cmFjZV9kZXRhY2gocGlkX3QgcGlkKTxici8+ezxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmIChwdHJhY2UoUFRSQUNFX0RFVEFDSCwgcGlkLCBOVUxMLCAwKSA8IDApPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgezxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IExPR0QoImRldGFjaCBwcm9jZXNzIGVycm9yLCBwaWQ6JWQiLCBwaWQpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiAtMTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyB9PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgTE9HRCgiZGV0YWNoIHByb2Nlc3MgcGlkOiVkIiwgcGlkKTsgJm5ic3A7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIDA7IDxici8+fTxici8+PGJyLz4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKjxici8+Jm5ic3A7KiZuYnNwOyBEZXNjcmlwdGlvbjombmJzcDsmbmJzcDsmbmJzcDsgcHRyYWNl5L2/6L+c56iL6L+b56iL57un57ut6L+Q6KGMPGJyLz4mbmJzcDsqJm5ic3A7IElucHV0OiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBwaWTooajnpLrov5znqIvov5vnqIvnmoRJRDxici8+Jm5ic3A7KiZuYnNwOyBPdXRwdXQ6Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IOaXoDxici8+Jm5ic3A7KiZuYnNwOyBSZXR1cm46Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IOi/lOWbnjDooajnpLpjb250aW51ZeaIkOWKn++8jOi/lOWbni0x6KGo56S65aSx6LSlPGJyLz4mbmJzcDsqJm5ic3A7IE90aGVyczombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg5pegPGJyLz4mbmJzcDsqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzxici8+aW50IHB0cmFjZV9jb250aW51ZShwaWRfdCBwaWQpPGJyLz57PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgaWYgKHB0cmFjZShQVFJBQ0VfQ09OVCwgcGlkLCBOVUxMLCBOVUxMKSA8IDApPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgezxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IExPR0QoInB0cmFjZSBjb250IGVycm9yLCBwaWQ6JWQiLCBwaWQpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiAtMTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyB9PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIDA7PGJyLz59PGJyLz48YnIvPi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqPGJyLz4mbmJzcDsqJm5ic3A7IERlc2NyaXB0aW9uOiZuYnNwOyZuYnNwOyZuYnNwOyDkvb/nlKhwdHJhY2Xojrflj5bov5znqIvov5vnqIvnmoTlr4TlrZjlmajlgLw8YnIvPiZuYnNwOyombmJzcDsgSW5wdXQ6Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHBpZOihqOekuui/nOeoi+i/m+eoi+eahElE77yMcmVnc+S4unB0X3JlZ3Pnu5PmnoTvvIzlrZjlgqjkuoblr4TlrZjlmajlgLwgPGJyLz4mbmJzcDsqJm5ic3A7IE91dHB1dDombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg5pegPGJyLz4mbmJzcDsqJm5ic3A7IFJldHVybjombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg6L+U5ZueMOihqOekuuiOt+WPluWvhOWtmOWZqOaIkOWKn++8jOi/lOWbni0x6KGo56S65aSx6LSlPGJyLz4mbmJzcDsqJm5ic3A7IE90aGVyczombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg5pegPGJyLz4mbmJzcDsqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzxici8+aW50IHB0cmFjZV9nZXRyZWdzKHBpZF90IHBpZCwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpPGJyLz57PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHUywgcGlkLCBOVUxMLCByZWdzKSA8IDApPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgezxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IExPR0QoIkdldCBSZWdzIGVycm9yLCBwaWQ6JWQiLCBwaWQpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiAtMTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyB9PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIDA7PGJyLz59PGJyLz48YnIvPi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqPGJyLz4mbmJzcDsqJm5ic3A7IERlc2NyaXB0aW9uOiZuYnNwOyZuYnNwOyZuYnNwOyDkvb/nlKhwdHJhY2Xorr7nva7ov5znqIvov5vnqIvnmoTlr4TlrZjlmajlgLw8YnIvPiZuYnNwOyombmJzcDsgSW5wdXQ6Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHBpZOihqOekuui/nOeoi+i/m+eoi+eahElE77yMcmVnc+S4unB0X3JlZ3Pnu5PmnoTvvIzlrZjlgqjpnIDopoHkv67mlLnnmoTlr4TlrZjlmajlgLw8YnIvPiZuYnNwOyombmJzcDsgT3V0cHV0OiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyDml6A8YnIvPiZuYnNwOyombmJzcDsgUmV0dXJuOiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyDov5Tlm54w6KGo56S66K6+572u5a+E5a2Y5Zmo5oiQ5Yqf77yM6L+U5ZueLTHooajnpLrlpLHotKU8YnIvPiZuYnNwOyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovPGJyLz5pbnQgcHRyYWNlX3NldHJlZ3MocGlkX3QgcGlkLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk8YnIvPns8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBpZiAocHRyYWNlKFBUUkFDRV9TRVRSRUdTLCBwaWQsIE5VTEwsIHJlZ3MpIDwgMCk8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyB7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgTE9HRCgiU2V0IFJlZ3MgZXJyb3IsIHBpZDolZCIsIHBpZCk7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIC0xOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gMDs8YnIvPn08YnIvPjxici8+LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio8YnIvPiZuYnNwOyombmJzcDsgRGVzY3JpcHRpb246Jm5ic3A7Jm5ic3A7Jm5ic3A7IOiOt+WPlui/lOWbnuWAvO+8jEFSTeWkhOeQhuWZqOS4rei/lOWbnuWAvOWtmOaUvuWcqEFSTV9yMOWvhOWtmOWZqOS4rTxici8+Jm5ic3A7KiZuYnNwOyBJbnB1dDombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmVnc+WtmOWCqOi/nOeoi+i/m+eoi+W9k+WJjeeahOWvhOWtmOWZqOWAvDxici8+Jm5ic3A7KiZuYnNwOyBSZXR1cm46Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IOWcqEFSTeWkhOeQhuWZqOS4i+i/lOWbnnIw5a+E5a2Y5Zmo5YC8IDxici8+Jm5ic3A7KiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88YnIvPmxvbmcgcHRyYWNlX2dldHJldChzdHJ1Y3QgcHRfcmVncyAqIHJlZ3MpPGJyLz57PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIHJlZ3MtPkFSTV9yMDs8YnIvPn08YnIvPjxici8+LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio8YnIvPiZuYnNwOyombmJzcDsgRGVzY3JpcHRpb246Jm5ic3A7Jm5ic3A7Jm5ic3A7IOiOt+WPluW9k+WJjeaJp+ihjOS7o+eggeeahOWcsOWdgO+8jEFSTeWkhOeQhuWZqOS4i+WtmOaUvuWcqEFSTV9wY+S4rTxici8+Jm5ic3A7KiZuYnNwOyBJbnB1dDombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmVnc+WtmOWCqOi/nOeoi+i/m+eoi+W9k+WJjeeahOWvhOWtmOWZqOWAvDxici8+Jm5ic3A7KiZuYnNwOyBSZXR1cm46Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IOWcqEFSTeWkhOeQhuWZqOS4i+i/lOWbnnBj5a+E5a2Y5Zmo5YC8PGJyLz4mbmJzcDsqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovPGJyLz5sb25nIHB0cmFjZV9nZXRwYyhzdHJ1Y3QgcHRfcmVncyAqIHJlZ3MpJm5ic3A7Jm5ic3A7ICZuYnNwOzxici8+eyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gcmVncy0+QVJNX3BjOyZuYnNwOyZuYnNwOyAmbmJzcDs8YnIvPn0gPGJyLz48YnIvPi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqPGJyLz4mbmJzcDsqJm5ic3A7Jm5ic3A7IERlc2NyaXB0aW9uOiZuYnNwOyZuYnNwOyZuYnNwOyDkvb/nlKhwdHJhY2Xku47ov5znqIvov5vnqIvlhoXlrZjkuK3or7vlj5bmlbDmja48YnIvPiZuYnNwOyombmJzcDsmbmJzcDsgSW5wdXQ6Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHBpZOihqOekuui/nOeoi+i/m+eoi+eahElE77yMcFNyY0J1ZuihqOekuuS7jui/nOeoi+i/m+eoi+ivu+WPluaVsOaNrueahOWGheWtmOWcsOWdgDxici8+Jm5ic3A7KiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBwRGVzdEJ1ZuihqOekuueUqOS6juWtmOWCqOivu+WPluWHuuaVsOaNrueahOWcsOWdgO+8jHNpemXooajnpLror7vlj5bmlbDmja7nmoTlpKflsI88YnIvPiZuYnNwOyombmJzcDsmbmJzcDsgUmV0dXJuOiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyDov5Tlm54w6KGo56S66K+75Y+W5pWw5o2u5oiQ5YqfPGJyLz4mbmJzcDsqJm5ic3A7Jm5ic3A7IG90aGVyOiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyDov5nph4znmoQqX3TnsbvlnovmmK90eXBlZGVm5a6a5LmJ5LiA5Lqb5Z+65pys57G75Z6L55qE5Yir5ZCN77yM55So5LqO6Leo5bmz5Y+w44CC5L6L5aaCPGJyLz4mbmJzcDsqJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVpbnQ4X3TooajnpLrml6DnrKblj7c45L2N5Lmf5bCx5piv5peg56ym5Y+355qEY2hhcuexu+Weizxici8+Jm5ic3A7KiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzxici8+aW50IHB0cmFjZV9yZWFkZGF0YShwaWRfdCBwaWQsIHVpbnQ4X3QgKnBTcmNCdWYsIHVpbnQ4X3QgKnBEZXN0QnVmLCB1aW50MzJfdCBzaXplKTxici8+ezxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVpbnQzMl90IG5SZWFkQ291bnQgPSAwOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVpbnQzMl90IG5SZW1haW5Db3VudCA9IDA7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgdWludDhfdCAqcEN1clNyY0J1ZiA9IHBTcmNCdWY7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgdWludDhfdCAqcEN1ckRlc3RCdWYgPSBwRGVzdEJ1Zjs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBsb25nIGxUbXBCdWYgPSAwOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVpbnQzMl90IGkgPSAwOyA8YnIvPjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8v5q+P5qyh6K+75Y+WNOWtl+iKguaVsOaNrjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IG5SZWFkQ291bnQgPSBzaXplIC8gc2l6ZW9mKGxvbmcpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IG5SZW1haW5Db3VudCA9IHNpemUgJSBzaXplb2YobG9uZyk7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgZm9yIChpID0gMDsgaSA8IG5SZWFkQ291bnQ7IGkrKyk8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyB7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgbFRtcEJ1ZiA9IHB0cmFjZShQVFJBQ0VfUEVFS1RFWFQsIHBpZCwgcEN1clNyY0J1ZiwgMCk7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgbWVtY3B5KHBDdXJEZXN0QnVmLCAoY2hhciAqKSgmbFRtcEJ1ZiksIHNpemVvZihsb25nKSk7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcEN1clNyY0J1ZiArPSBzaXplb2YobG9uZyk7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcEN1ckRlc3RCdWYgKz0gc2l6ZW9mKGxvbmcpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyAvL+W9k+acgOWQjuivu+WPlueahOWtl+iKguS4jei2szTlrZfoioLml7bosIPnlKg8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBpZiAoIG5SZW1haW5Db3VudCA+IDAgKTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBsVG1wQnVmID0gcHRyYWNlKFBUUkFDRV9QRUVLVEVYVCwgcGlkLCBwQ3VyU3JjQnVmLCAwKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBtZW1jcHkocEN1ckRlc3RCdWYsIChjaGFyICopKCZsVG1wQnVmKSwgblJlbWFpbkNvdW50KTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyB9PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIDA7PGJyLz59PGJyLz48YnIvPi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqPGJyLz4mbmJzcDsqJm5ic3A7IERlc2NyaXB0aW9uOiZuYnNwOyZuYnNwOyZuYnNwOyDkvb/nlKhwdHJhY2XlsIbmlbDmja7lhpnlhaXliLDov5znqIvov5vnqIvnqbrpl7TkuK08YnIvPiZuYnNwOyombmJzcDsgSW5wdXQ6Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHBpZOihqOekuui/nOeoi+i/m+eoi+eahElE77yMcFdyaXRlQWRkcuihqOekuuWGmeWFpeaVsOaNruWIsOi/nOeoi+i/m+eoi+eahOWGheWtmOWcsOWdgDxici8+Jm5ic3A7KiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBwV3JpdGVEYXRh55So5LqO5a2Y5YKo5YaZ5YWl5pWw5o2u55qE5Zyw5Z2A77yMc2l6ZeihqOekuuWGmeWFpeaVsOaNrueahOWkp+Wwjzxici8+Jm5ic3A7KiZuYnNwOyBSZXR1cm46Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IOi/lOWbnjDooajnpLrlhpnlhaXmlbDmja7miJDlip/vvIzov5Tlm54tMeihqOekuuWGmeWFpeaVsOaNruWksei0pSA8YnIvPiZuYnNwOyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovPGJyLz5pbnQgcHRyYWNlX3dyaXRlZGF0YShwaWRfdCBwaWQsIHVpbnQ4X3QgKnBXcml0ZUFkZHIsIHVpbnQ4X3QgKnBXcml0ZURhdGEsIHVpbnQzMl90IHNpemUpPGJyLz57PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgdWludDMyX3QgbldyaXRlQ291bnQgPSAwOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVpbnQzMl90IG5SZW1haW5Db3VudCA9IDA7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgdWludDhfdCAqcEN1clNyY0J1ZiA9IHBXcml0ZURhdGE7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgdWludDhfdCAqcEN1ckRlc3RCdWYgPSBwV3JpdGVBZGRyOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGxvbmcgbFRtcEJ1ZiA9IDA7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgdWludDMyX3QgaSA9IDA7PGJyLz48YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBuV3JpdGVDb3VudCA9IHNpemUgLyBzaXplb2YobG9uZyk7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgblJlbWFpbkNvdW50ID0gc2l6ZSAlIHNpemVvZihsb25nKTs8YnIvPjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8v5pWw5o2u5Lulc2l6ZW9mKGxvbmcp5a2X6IqC5aSn5bCP5Li65Y2V5L2N5YaZ5YWl5Yiw6L+c56iL6L+b56iL5YaF5a2Y56m66Ze05LitPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgZm9yIChpID0gMDsgaSA8IG5Xcml0ZUNvdW50OyBpICsrKTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBtZW1jcHkoKHZvaWQgKikoJmxUbXBCdWYpLCBwQ3VyU3JjQnVmLCBzaXplb2YobG9uZykpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmIChwdHJhY2UoUFRSQUNFX1BPS0VURVhULCBwaWQsIHBDdXJEZXN0QnVmLCBsVG1wQnVmKSA8IDApPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgezxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IExPR0QoIldyaXRlIFJlbW90ZSBNZW1vcnkgZXJyb3IsIE1lbW9yeUFkZHI6MHglbHgiLCAobG9uZylwQ3VyRGVzdEJ1Zik7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIC0xOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBwQ3VyU3JjQnVmICs9IHNpemVvZihsb25nKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBwQ3VyRGVzdEJ1ZiArPSBzaXplb2YobG9uZyk7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgfTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmIChuUmVtYWluQ291bnQgPiAwKTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAvL2xUbXBCdWYgPSBwdHJhY2UoUFRSQUNFX1BFRUtURVhULCBwaWQsIHBDdXJEZXN0QnVmLCBOVUxMKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBtZW1jcHkoKHZvaWQgKikoJmxUbXBCdWYpLCBwQ3VyU3JjQnVmLCBuUmVtYWluQ291bnQpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmIChwdHJhY2UoUFRSQUNFX1BPS0VURVhULCBwaWQsIHBDdXJEZXN0QnVmLCBsVG1wQnVmKSA8IDApPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgezxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IExPR0QoIldyaXRlIFJlbW90ZSBNZW1vcnkgZXJyb3IsIE1lbW9yeUFkZHI6MHglbHgiLCAobG9uZylwQ3VyRGVzdEJ1Zik7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIC0xOyAmbmJzcDs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB9PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgfTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiAwOzxici8+fTxici8+PGJyLz4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKjxici8+Jm5ic3A7KiZuYnNwOyBEZXNjcmlwdGlvbjombmJzcDsmbmJzcDsmbmJzcDsg5L2/55SocHRyYWNl6L+c56iLY2FsbOWHveaVsDxici8+Jm5ic3A7KiZuYnNwOyBJbnB1dDombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcGlk6KGo56S66L+c56iL6L+b56iL55qESUTvvIxFeGVjdXRlQWRkcuS4uui/nOeoi+i/m+eoi+WHveaVsOeahOWcsOWdgDxici8+Jm5ic3A7KiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBwYXJhbWV0ZXJz5Li65Ye95pWw5Y+C5pWw55qE5Zyw5Z2A77yMcmVnc+S4uui/nOeoi+i/m+eoi2NhbGzlh73mlbDliY3nmoTlr4TlrZjlmajnjq/looM8YnIvPiZuYnNwOyombmJzcDsgUmV0dXJuOiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyDov5Tlm54w6KGo56S6Y2FsbOWHveaVsOaIkOWKn++8jOi/lOWbni0x6KGo56S65aSx6LSlPGJyLz4mbmJzcDsqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovPGJyLz5pbnQgcHRyYWNlX2NhbGwocGlkX3QgcGlkLCB1aW50MzJfdCBFeGVjdXRlQWRkciwgbG9uZyAqcGFyYW1ldGVycywgbG9uZyBudW1fcGFyYW1zLCBzdHJ1Y3QgcHRfcmVncyogcmVncykmbmJzcDsmbmJzcDsgJm5ic3A7PGJyLz57PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgaW50IGk9MDs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyAvLyBBUk3lpITnkIblmajvvIzlh73mlbDkvKDpgJLlj4LmlbDvvIzlsIbliY3lm5vkuKrlj4LmlbDmlL7liLByMC1yM++8jOWJqeS4i+eahOWPguaVsOWOi+WFpeagiOS4rTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGZvcihpPTA7IGk8bnVtX3BhcmFtcyAmJiBpPDQ7IGkrKyk8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyB7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmVncy0+dXJlZ3NbaV0gPSBwYXJhbWV0ZXJzW2ldOyA8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyB9PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgaWYoaSA8IG51bV9wYXJhbXMpPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgezxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJlZ3MtPkFSTV9zcCAtPSAobnVtX3BhcmFtcyAtIGkpICogc2l6ZW9mKGxvbmcpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmIChwdHJhY2Vfd3JpdGVkYXRhKHBpZCwgKHZvaWQgKilyZWdzLT5BUk1fc3AsICh1aW50OF90ICopJnBhcmFtZXRlcnNbaV0sIChudW1fcGFyYW1zIC0gaSkgKiBzaXplb2YobG9uZykpJm5ic3A7ID09IC0xKTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gLTE7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnIvPjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8v5L+u5pS556iL5bqP6K6h5pWw5ZmoPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgcmVncy0+QVJNX3BjID0gRXhlY3V0ZUFkZHI7IDxici8+PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgLy/liKTmlq3mjIfku6Tpm4Y8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyAvLyDkuI5CWOi3s+i9rOaMh+S7pOexu+S8vO+8jOWIpOaWrei3s+i9rOeahOWcsOWdgOS9jVswXeaYr+WQpuS4ujHvvIzlpoLmnpzkuLox77yM5YiZ5bCGQ1BTVOWvhOWtmOWZqOeahOagh+W/l1Tnva7kvY3vvIzop6Pph4rkuLpUaHVtYuS7o+eggTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmIChyZWdzLT5BUk1fcGMgJiAxKSA8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyB7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgLypUaHVtYiovPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmVncy0+QVJNX3BjICY9ICh+MXUpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJlZ3MtPkFSTV9jcHNyIHw9IENQU1JfVF9NQVNLOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBlbHNlPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgezxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8qIEFSTSovPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmVncy0+QVJNX2Nwc3IgJj0gfkNQU1JfVF9NQVNLOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnIvPjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJlZ3MtPkFSTV9sciA9IDA7PGJyLz48YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyAvL+iuvue9ruWlveWvhOWtmOWZqOWQju+8jOW8gOWni+i/kOihjOi/m+eoizxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmIChwdHJhY2Vfc2V0cmVncyhwaWQsIHJlZ3MpID09IC0xIHx8IHB0cmFjZV9jb250aW51ZShwaWQpID09IC0xKTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBMT0dEKCJwdHJhY2Ugc2V0IHJlZ3Mgb3IgY29udGludWUgZXJyb3IsIHBpZDolZCIsIHBpZCk7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIC0xOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnIvPjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8v5a+55LqOcHRyYWNlX2NvbnRpbnVl6L+Q6KGM55qE6L+b56iL77yM5LuW5Lya5Zyo5LiJ56eN5oOF5Ya15LiL6L+b5YWl5pqC5YGc54q25oCB77yaMS7kuIvkuIDmrKHns7vnu5/osIPnlKggMi7lrZDov5vnqIvlh7rnjrDlvILluLggMy7lrZDov5vnqIvpgIDlh7o8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyAvL+WPguaVsFdVTlRSQUNFROihqOekuuW9k+i/m+eoi+i/m+WFpeaaguWBnOeKtuaAgeWQju+8jOeri+WNs+i/lOWbnjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8v5bCG5a2Y5pS+6L+U5Zue5Zyw5Z2A55qEbHLlr4TlrZjlmajorr7nva7kuLow77yM5omn6KGM6L+U5Zue55qE5pe25YCZ5bCx5Lya5Y+R55Sf6ZSZ6K+v77yM5LuO5a2Q6L+b56iL5pqC5YGcPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgaW50IHN0YXQgPSAwOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHdhaXRwaWQocGlkLCAmc3RhdCwgV1VOVFJBQ0VEKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBMT0dEKCJwdHJhY2UgY2FsbCByZXQgc3RhdHVzIGlzICVkXG4iLCBzdGF0KTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyAvLzB4Yjdm6KGo56S65a2Q6L+b56iL6L+b5YWl5pqC5YGc54q25oCBPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgd2hpbGUgKHN0YXQgIT0gMHhiN2YpPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgezxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmIChwdHJhY2VfY29udGludWUocGlkKSA9PSAtMSk8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgTE9HRCgicHRyYWNlIGNhbGwgZXJyb3IiKTsgPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIC0xOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB3YWl0cGlkKHBpZCwgJnN0YXQsIFdVTlRSQUNFRCk7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgfTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8vIOiOt+WPlui/nOeoi+i/m+eoi+eahOWvhOWtmOWZqOWAvO+8jOaWueS+v+iOt+WPlui/lOWbnuWAvDxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmIChwdHJhY2VfZ2V0cmVncyhwaWQsIHJlZ3MpID09IC0xKTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBMT0dEKCJBZnRlciBjYWxsIGdldHJlZ3MgZXJyb3IiKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gLTE7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgfTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiAwOzxici8+fTxici8+PGJyLz4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKjxici8+Jm5ic3A7KiZuYnNwOyBEZXNjcmlwdGlvbjombmJzcDsmbmJzcDsmbmJzcDsg5Zyo5oyH5a6a6L+b56iL5Lit5pCc57Si5a+55bqU5qih5Z2X55qE5Z+65Z2APGJyLz4mbmJzcDsqJm5ic3A7IElucHV0OiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBwaWTooajnpLrov5znqIvov5vnqIvnmoRJRO+8jOiLpeS4ui0x6KGo56S66Ieq6Lqr6L+b56iL77yMTW9kdWxlTmFtZeihqOekuuimgeaQnOe0oueahOaooeWdl+eahOWQjeensDxici8+Jm5ic3A7KiZuYnNwOyBSZXR1cm46Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IOi/lOWbnjDooajnpLrojrflj5bmqKHlnZfln7rlnYDlpLHotKXvvIzov5Tlm57pnZ4w5Li66KaB5pCc57Si55qE5qih5Z2X5Z+65Z2APGJyLz4mbmJzcDsqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovPGJyLz52b2lkKiBHZXRNb2R1bGVCYXNlQWRkcihwaWRfdCBwaWQsIGNvbnN0IGNoYXIqIE1vZHVsZU5hbWUpPGJyLz57PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgY2hhciBzekZpbGVOYW1lWzUwXSA9IHswfTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBGSUxFICpmcCA9IE5VTEw7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgY2hhciBzek1hcEZpbGVMaW5lWzEwMjRdID0gezB9Ozxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNoYXIgKk1vZHVsZVBhdGgsICpNYXBGaWxlTGluZUl0ZW07PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgbG9uZyBNb2R1bGVCYXNlQWRkciA9IDA7IDxici8+PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgLy8g6K+75Y+WIi9wcm9jL3BpZC9tYXBzIuWPr+S7peiOt+W+l+ivpei/m+eoi+WKoOi9veeahOaooeWdlzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmIChwaWQgPCAwKTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBzbnByaW50ZihzekZpbGVOYW1lLCBzaXplb2Yoc3pGaWxlTmFtZSksICIvcHJvYy9zZWxmL21hcHMiKTsgPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgfTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGVsc2U8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyB7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc25wcmludGYoc3pGaWxlTmFtZSwgc2l6ZW9mKHN6RmlsZU5hbWUpLCAiL3Byb2MvJWQvbWFwcyIsIHBpZCk7Jm5ic3A7ICZuYnNwOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnIvPjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGZwID0gZm9wZW4oc3pGaWxlTmFtZSwgInIiKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBpZiAoZnAgIT0gTlVMTCk8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyB7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgd2hpbGUgKGZnZXRzKHN6TWFwRmlsZUxpbmUsIHNpemVvZihzek1hcEZpbGVMaW5lKSwgZnApKTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpZiAoc3Ryc3RyKHN6TWFwRmlsZUxpbmUsIE1vZHVsZU5hbWUpKTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBNYXBGaWxlTGluZUl0ZW0gPSBzdHJ0b2soc3pNYXBGaWxlTGluZSwgIiBcdCIpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNoYXIgKkFkZHIgPSBzdHJ0b2soc3pNYXBGaWxlTGluZSwgIi0iKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBNb2R1bGVCYXNlQWRkciA9IHN0cnRvdWwoQWRkciwgTlVMTCwgMTYgKTs8YnIvPjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmIChNb2R1bGVCYXNlQWRkciA9PSAweDgwMDApPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgezxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IE1vZHVsZUJhc2VBZGRyID0gMDs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB9PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgYnJlYWs7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBmY2xvc2UoZnApOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gKHZvaWQgKilNb2R1bGVCYXNlQWRkcjs8YnIvPn08YnIvPjxici8+LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio8YnIvPiZuYnNwOyombmJzcDsgRGVzY3JpcHRpb246Jm5ic3A7Jm5ic3A7Jm5ic3A7IOiOt+WPlui/nOeoi+i/m+eoi+S4juacrOi/m+eoi+mDveWKoOi9veeahOaooeWdl+S4reWHveaVsOeahOWcsOWdgDxici8+Jm5ic3A7KiZuYnNwOyBJbnB1dDombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcGlk6KGo56S66L+c56iL6L+b56iL55qESUTvvIxNb2R1bGVOYW1l6KGo56S65qih5Z2X5ZCN56ew77yMTG9jYWxGdW5jQWRkcuihqOekuuacrOWcsOi/m+eoi+S4reivpeWHveaVsOeahOWcsOWdgDxici8+Jm5ic3A7KiZuYnNwOyBSZXR1cm46Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IOi/lOWbnui/nOeoi+i/m+eoi+S4reWvueW6lOWHveaVsOeahOWcsOWdgDxici8+Jm5ic3A7KiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88YnIvPnZvaWQqIEdldFJlbW90ZUZ1bmNBZGRyKHBpZF90IHBpZCwgY29uc3QgY2hhciAqTW9kdWxlTmFtZSwgdm9pZCAqTG9jYWxGdW5jQWRkcik8YnIvPns8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyB2b2lkICpMb2NhbE1vZHVsZUFkZHIsICpSZW1vdGVNb2R1bGVBZGRyLCAqUmVtb3RlRnVuY0FkZHI7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgTG9jYWxNb2R1bGVBZGRyID0gR2V0TW9kdWxlQmFzZUFkZHIoLTEsIE1vZHVsZU5hbWUpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IFJlbW90ZU1vZHVsZUFkZHIgPSBHZXRNb2R1bGVCYXNlQWRkcihwaWQsIE1vZHVsZU5hbWUpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IFJlbW90ZUZ1bmNBZGRyID0gKHZvaWQgKikoKGxvbmcpTG9jYWxGdW5jQWRkciAtIChsb25nKUxvY2FsTW9kdWxlQWRkciArIChsb25nKVJlbW90ZU1vZHVsZUFkZHIpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiBSZW1vdGVGdW5jQWRkcjs8YnIvPn08YnIvPjxici8+LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio8YnIvPiZuYnNwOyombmJzcDsg6YCa6L+H6L+c56iL55u05o6l6LCD55SoZGxvcGVuXGRsc3lt55qE5pa55rOVcHRyYWNl5rOo5YWlc2/mqKHlnZfliLDov5znqIvov5vnqIvkuK08YnIvPiZuYnNwOyombmJzcDsgSW5wdXQ6Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHBpZOihqOekuui/nOeoi+i/m+eoi+eahElE77yMTGliUGF0aOS4uuiiq+i/nOeoi+azqOWFpeeahHNv5qih5Z2X6Lev5b6E77yMRnVuY3Rpb25OYW1l5Li66L+c56iL5rOo5YWl55qE5qih5Z2X5ZCO6LCD55So55qE5Ye95pWwPGJyLz4mbmJzcDsqJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IEZ1bmNQYXJhbWV0ZXLmjIflkJHooqvov5znqIvosIPnlKjlh73mlbDnmoTlj4LmlbDvvIjoi6XkvKDpgJLlrZfnrKbkuLLvvIzpnIDopoHlhYjlsIblrZfnrKbkuLLlhpnlhaXliLDov5znqIvov5vnqIvnqbrpl7TkuK3vvInvvIxOdW1QYXJhbWV0ZXLkuLrlj4LmlbDnmoTkuKrmlbA8YnIvPiZuYnNwOyombmJzcDsgUmV0dXJuOiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyDov5Tlm54w6KGo56S65rOo5YWl5oiQ5Yqf77yM6L+U5ZueLTHooajnpLrlpLHotKU8YnIvPiZuYnNwOyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovPGJyLz5pbnQgaW5qZWN0X3JlbW90ZV9wcm9jZXNzKHBpZF90IHBpZCwgY2hhciAqTGliUGF0aCwgY2hhciAqRnVuY3Rpb25OYW1lLCBsb25nICpGdW5jUGFyYW1ldGVyLCBsb25nIE51bVBhcmFtZXRlcik8YnIvPns8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBpbnQgaVJldCA9IC0xOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHN0cnVjdCBwdF9yZWdzIEN1cnJlbnRSZWdzLCBPcmlnaW5hbFJlZ3M7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgdm9pZCAqbW1hcF9hZGRyLCAqZGxvcGVuX2FkZHIsICpkbHN5bV9hZGRyLCAqZGxjbG9zZV9hZGRyLCAqZGxlcnJvcl9hZGRyOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHZvaWQgKlJlbW90ZU1hcE1lbW9yeUFkZHIsICpSZW1vdGVNb2R1bGVBZGRyLCAqUmVtb3RlTW9kdWxlRnVuY0FkZHI7IDxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGxvbmcgcGFyYW1ldGVyc1s2XTs8YnIvPjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8qIDEuIOmZhOWKoOWIsOi/nOeoi+i/m+eoi+S4iiovPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgaWYgKHB0cmFjZV9hdHRhY2gocGlkKSA9PSAtMSk8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyB7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIGlSZXQ7IDxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnIvPjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8qIDIuIOiOt+WPlui/nOeoi+i/m+eoi+eahOWvhOWtmOWZqOWAvOW5tuS/neWtmOS4i+adpe+8jOS4uuS6huWujOaIkOazqOWFpeaooeWdl+WQjueahOeoi+W6j+aBouWkjeaJp+ihjOWBmuWHhuWkhyovPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgaWYgKHB0cmFjZV9nZXRyZWdzKHBpZCwgJkN1cnJlbnRSZWdzKSA9PSAtMSk8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyB7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcHRyYWNlX2RldGFjaChwaWQpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiBpUmV0Ozxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBMT0dEKCJBUk1fcjA6MHglbHgsIEFSTV9yMToweCVseCwgQVJNX3IyOjB4JWx4LCBBUk1fcjM6MHglbHgsIEFSTV9yNDoweCVseCwgXDxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IEFSTV9yNToweCVseCwgQVJNX3I2OjB4JWx4LCBBUk1fcjc6MHglbHgsIEFSTV9yODoweCVseCwgQVJNX3I5OjB4JWx4LCBcPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgQVJNX3IxMDoweCVseCwgQVJNX2lwOjB4JWx4LCBBUk1fc3A6MHglbHgsIEFSTV9scjoweCVseCwgQVJNX3BjOjB4JWx4IiwgPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgQ3VycmVudFJlZ3MuQVJNX3IwLCBDdXJyZW50UmVncy5BUk1fcjEsIEN1cnJlbnRSZWdzLkFSTV9yMiwgQ3VycmVudFJlZ3MuQVJNX3IzLCBDdXJyZW50UmVncy5BUk1fcjQsPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgQ3VycmVudFJlZ3MuQVJNX3I1LCBDdXJyZW50UmVncy5BUk1fcjYsIEN1cnJlbnRSZWdzLkFSTV9yNywgQ3VycmVudFJlZ3MuQVJNX3I4LCBDdXJyZW50UmVncy5BUk1fcjksPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgQ3VycmVudFJlZ3MuQVJNX3IxMCwgQ3VycmVudFJlZ3MuQVJNX2lwLCBDdXJyZW50UmVncy5BUk1fc3AsIEN1cnJlbnRSZWdzLkFSTV9sciwgQ3VycmVudFJlZ3MuQVJNX3BjKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBtZW1jcHkoJk9yaWdpbmFsUmVncywgJkN1cnJlbnRSZWdzLCBzaXplb2YoQ3VycmVudFJlZ3MpKTs8YnIvPjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8qIDMuIOWcqOi/nOeoi+i/m+eoi+WGhemDqOW8gOi+n+S4gOmBjeWGheWtmOepuumXtOWtmOaUvuS4gOS6m+W4uOmHj+aVsOaNru+8jOS4uui/nOeoi+i/m+eoi+aJp+ihjOWHveaVsOiwg+eUqOaPkOS+m+WPguaVsOWcsOWdgDxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICombmJzcDsmbmJzcDsmbmJzcDsg6L+Z6YeM6ZyA6KaB55+l6YGT77yM5oiR5Lus5Li65LuA5LmI5LiN55u05o6l5Lyg6YCS6L+b5Y675bi46YeP77yf6L+Z5piv5Zug5Li65oiR5Lus546w5Zyo5Lyg6YCS55qE5YC85piv5oiR5Lus5b2T5YmN6L+Z5Liq5rOo5YWl5bel5YW35YaF5a2Y56m66Ze055qE5YC877yMPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKiZuYnNwOyZuYnNwOyZuYnNwOyDnm7jlupTnmoTlhoXlrZjlnLDlnYDkuZ/mmK/miJHku6zms6jlhaXlt6XlhbfnmoTvvIzov5znqIvov5vnqIvmmK/orr/pl67kuI3liLDnmoTvvIzmiYDku6XmiJHku6zpnIDopoHlsIbov5nkupvlj4LmlbDpg73lnKjkvKDpgJLliLDov5znqIvov5vnqIvnqbrpl7TkuK3ljrsqLzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IG1tYXBfYWRkciA9IEdldFJlbW90ZUZ1bmNBZGRyKHBpZCwgbGliY19wYXRoLCAodm9pZCAqKW1tYXApOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IExPR0QoIm1tYXAgUmVtb3RlRnVuY0FkZHI6MHglbHgiLCAobG9uZyltbWFwX2FkZHIpOzxici8+PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgLy/lj4LmlbA8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBwYXJhbWV0ZXJzWzBdID0gMDsvL+iuvue9rk5VTEzooajnpLrorqnns7vnu5/oh6rlt7HpgInmi6nlhoXlrZjkvY3nva7ov5vooYzliIbphY08YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBwYXJhbWV0ZXJzWzFdID0gMHgxMDAwOy8v5YiG6YWN5YaF5a2Y56m66Ze05aSn5bCP5Li6MeS4quWGheWtmOmhtTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHBhcmFtZXRlcnNbMl0gPSBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFIHwgUFJPVF9FWEVDOy8v5YiG6YWN55qE5YaF5a2Y5Yy65Z+f55qE5p2D6ZmQ5piv5Y+v6K+744CB5Y+v5YaZ44CB5Y+v5omn6KGM55qEPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgcGFyYW1ldGVyc1szXSA9Jm5ic3A7IE1BUF9BTk9OWU1PVVMgfCBNQVBfUFJJVkFURTsvL+WMv+WQjeaYoOWwhO+8jOihqOekuuS4jeWPl+aWh+S7tuaUr+aMge+8jOS4i+mdouS4pOS4quWPguaVsOWPr+S7peS4ujA8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBwYXJhbWV0ZXJzWzRdID0gMDsvL+aWh+S7tuagh+ivhuespu+8jOi/memHjOS4ujDooajnpLrkuI3mmKDlsITmlofku7blhoXlrrk8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBwYXJhbWV0ZXJzWzVdID0gMDsvL+aWh+S7tuaYoOWwhOWBj+enu+mHjzxici8+PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgLy/osIPnlKhtbWFw5Ye95pWwPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgaWYgKHB0cmFjZV9jYWxsKHBpZCwgKGxvbmcpbW1hcF9hZGRyLCBwYXJhbWV0ZXJzLCA2LCAmQ3VycmVudFJlZ3MpID09IC0xKTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBMT0dEKCJDYWxsIFJlbW90ZSBtbWFwIEZ1bmMgRmFpbGVkIik7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcHRyYWNlX2RldGFjaChwaWQpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiBpUmV0Ozxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnIvPjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8v6I635Y+W5YiG6YWN5Ye655qE5YaF5a2Y5Yy65Z+f55qE5Zyw5Z2APGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgUmVtb3RlTWFwTWVtb3J5QWRkciA9ICh2b2lkICopcHRyYWNlX2dldHJldCgmQ3VycmVudFJlZ3MpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IExPR0QoIlJlbW90ZSBQcm9jZXNzIE1hcCBNZW1vcnkgQWRkcjoweCVseCIsIChsb25nKVJlbW90ZU1hcE1lbW9yeUFkZHIpOzxici8+PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgLyogNC4g6K6p6L+c56iL6L+b56iL5omn6KGMZGxvcGVu5Yqg6L29c2/lupPliLDlhoXlrZjkuK3jgII8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAqJm5ic3A7Jm5ic3A7Jm5ic3A7IOi/memHjOmcgOimgeWFiOWwhmRsb3BlbuWPguaVsOS4reeahHNv5bqT6Lev5b6E5Lyg6YCS5Yiw6L+c56iL6L+b56iL55qE5YaF5a2Y56m66Ze05Lit77yM6L+Z5qC35a6D6LCD55SoZGxvcGVu55qE5pe25YCZ5omN5Y+v5Lul5LuO6Ieq5bex55qE5YaF5a2Y56m66Ze05Lit6I635Y+W55u45bqU5bi46YeP5YC8Ki88YnIvPjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8v5Zyo6L+c56iL6L+b56iL5paw5byA6L6f55qE5YaF5a2Y56m66Ze05Lit5YaZ5YWlc2/lupPot6/lvoQ8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBpZiAocHRyYWNlX3dyaXRlZGF0YShwaWQsIFJlbW90ZU1hcE1lbW9yeUFkZHIsIExpYlBhdGgsIHN0cmxlbihMaWJQYXRoKSArIDEpID09IC0xKTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBMT0dEKCJXcml0ZSBMaWJQYXRoOiVzIHRvIFJlbW90ZVByb2Nlc3MgZXJyb3IiLCBMaWJQYXRoKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBwdHJhY2VfZGV0YWNoKHBpZCk7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIGlSZXQ7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgfTxici8+PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgLy/lj4LmlbA8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBwYXJhbWV0ZXJzWzBdID0gKGxvbmcpUmVtb3RlTWFwTWVtb3J5QWRkcjs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBwYXJhbWV0ZXJzWzFdID0gUlRMRF9OT1d8IFJUTERfR0xPQkFMOzxici8+PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgZGxvcGVuX2FkZHIgPSBHZXRSZW1vdGVGdW5jQWRkcihwaWQsIGxpbmtlcl9wYXRoLCAodm9pZCAqKWRsb3Blbik7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgTE9HRCgiZGxvcGVuIFJlbW90ZUZ1bmNBZGRyOjB4JWx4IiwgKGxvbmcpZGxvcGVuX2FkZHIpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGRsZXJyb3JfYWRkciA9IEdldFJlbW90ZUZ1bmNBZGRyKHBpZCwgbGlua2VyX3BhdGgsICh2b2lkICopZGxlcnJvcik7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgTE9HRCgiZGxlcnJvciBSZW1vdGVGdW5jQWRkcjoweCVseCIsIChsb25nKWRsZXJyb3JfYWRkcik7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgZGxjbG9zZV9hZGRyID0gR2V0UmVtb3RlRnVuY0FkZHIocGlkLCBsaW5rZXJfcGF0aCwgKHZvaWQgKilkbGNsb3NlKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBMT0dEKCJkbGNsb3NlIFJlbW90ZUZ1bmNBZGRyOjB4JWx4IiwgKGxvbmcpZGxjbG9zZV9hZGRyKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBpZiAocHRyYWNlX2NhbGwocGlkLCAobG9uZylkbG9wZW5fYWRkciwgcGFyYW1ldGVycywgMiwgJkN1cnJlbnRSZWdzKSA9PSAtMSk8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyB7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgTE9HRCgiQ2FsbCBSZW1vdGUgZGxvcGVuIEZ1bmMgRmFpbGVkIik7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcHRyYWNlX2RldGFjaChwaWQpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiBpUmV0Ozxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnIvPjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8v6I635Y+W6L+c56iL6L+b56iL5YaF5a2Y5Lit6KKr5Yqg6L296L+b5Y675qih5Z2X55qE5Zyw5Z2APGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgUmVtb3RlTW9kdWxlQWRkciA9ICh2b2lkICopcHRyYWNlX2dldHJldCgmQ3VycmVudFJlZ3MpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IExPR0QoIlJlbW90ZSBQcm9jZXNzIGxvYWQgbW9kdWxlIEFkZHI6MHglbHgiLCAobG9uZylSZW1vdGVNb2R1bGVBZGRyKTs8YnIvPjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8vIGRsb3BlbiDplJnor688YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBpZiAoKGxvbmcpUmVtb3RlTW9kdWxlQWRkciA9PSAweDApPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgezxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IExPR0QoImRsb3BlbiBlcnJvciIpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmIChwdHJhY2VfY2FsbChwaWQsIChsb25nKWRsZXJyb3JfYWRkciwgcGFyYW1ldGVycywgMCwgJkN1cnJlbnRSZWdzKSA9PSAtMSk8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgTE9HRCgiQ2FsbCBSZW1vdGUgZGxlcnJvciBGdW5jIEZhaWxlZCIpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHB0cmFjZV9kZXRhY2gocGlkKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gaVJldDs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB9PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgY2hhciAqRXJyb3IgPSAodm9pZCAqKXB0cmFjZV9nZXRyZXQoJkN1cnJlbnRSZWdzKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBjaGFyIExvY2FsRXJyb3JJbmZvWzEwMjRdID0gezB9Ozxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHB0cmFjZV9yZWFkZGF0YShwaWQsIEVycm9yLCBMb2NhbEVycm9ySW5mbywgMTAyNCk7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgTE9HRCgiZGxvcGVuIGVycm9yOiVzIiwgTG9jYWxFcnJvckluZm8pOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHB0cmFjZV9kZXRhY2gocGlkKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gaVJldDs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyB9PGJyLz48YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyAvKiA1Lui/nOeoi+i/m+eoi+iwg+eUqOiiq+WKoOi9vei/m+WOu+aooeWdl+eahOWHveaVsOOAgjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICombmJzcDsmbmJzcDsg5YWI5bCG5Y+C5pWw5Lyg6YCS6L+b6L+c56iL6L+b56iL56m66Ze077yM54S25ZCO5Yip55SoZGxzeW3lh73mlbDmkJzntKLlh73mlbDkvY3nva7vvIzmnIDlkI7lnKjov5vooYzosIPnlKgqLzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmIChwdHJhY2Vfd3JpdGVkYXRhKHBpZCwgUmVtb3RlTWFwTWVtb3J5QWRkciArIHN0cmxlbihMaWJQYXRoKSArIDIsIEZ1bmN0aW9uTmFtZSwgc3RybGVuKEZ1bmN0aW9uTmFtZSkgKyAxKSA9PSAtMSk8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyB7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgTE9HRCgiV3JpdGUgRnVuY3Rpb25OYW1lOiVzIHRvIFJlbW90ZVByb2Nlc3MgZXJyb3IiLCBGdW5jdGlvbk5hbWUpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHB0cmFjZV9kZXRhY2gocGlkKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gaVJldDs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyB9PGJyLz48YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyAvL+iuvue9rmRsc3lt5Y+C5pWwPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgcGFyYW1ldGVyc1swXSA9IChsb25nKVJlbW90ZU1vZHVsZUFkZHI7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgcGFyYW1ldGVyc1sxXSA9IChsb25nKShSZW1vdGVNYXBNZW1vcnlBZGRyICsgc3RybGVuKExpYlBhdGgpICsgMik7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgTE9HRCgiRnVuYyBOYW1l77yaJXhcbiIsIHBhcmFtZXRlcnNbMV0pOzxici8+PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgLy/osIPnlKhkbHN5beWHveaVsOW5tuiOt+WPlui/lOWbnueahOWHveaVsOWcsOWdgDxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGRsc3ltX2FkZHIgPSBHZXRSZW1vdGVGdW5jQWRkcihwaWQsIGxpbmtlcl9wYXRoLCAodm9pZCAqKWRsc3ltKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBMT0dEKCJkbHN5bSBSZW1vdGVGdW5jQWRkcjoweCVseCIsIChsb25nKWRsc3ltX2FkZHIpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmIChwdHJhY2VfY2FsbChwaWQsIChsb25nKWRsc3ltX2FkZHIsIHBhcmFtZXRlcnMsIDIsICZDdXJyZW50UmVncykgPT0gLTEpPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgezxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IExPR0QoIkNhbGwgUmVtb3RlIGRsc3ltIEZ1bmMgRmFpbGVkIik7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcHRyYWNlX2RldGFjaChwaWQpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiBpUmV0Ozxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBSZW1vdGVNb2R1bGVGdW5jQWRkciA9ICh2b2lkICopcHRyYWNlX2dldHJldCgmQ3VycmVudFJlZ3MpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IExPR0QoIlJlbW90ZSBQcm9jZXNzIE1vZHVsZUZ1bmMgQWRkcjoweCVseCIsIChsb25nKVJlbW90ZU1vZHVsZUZ1bmNBZGRyKTs8YnIvPjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8qIDYuIOWcqOi/nOeoi+i/m+eoi+S4reiwg+eUqOWKoOi9vei/m+WOu+aooeWdl+eahOWHveaVsCzov5nph4zkuLrkuobnroDljZXotbfop4HvvIzmsqHmnInpgInmi6nkvKDlhaXlj4LmlbDvvIzmiYDku6XnnIHljrvlhpnlhaXlj4LmlbDliLDov5znqIvov5vnqbrpl7TnmoTmraXpqqQqLzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmIChwdHJhY2VfY2FsbChwaWQsIChsb25nKVJlbW90ZU1vZHVsZUZ1bmNBZGRyLCBGdW5jUGFyYW1ldGVyLCBOdW1QYXJhbWV0ZXIsICZDdXJyZW50UmVncykgPT0gLTEpPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgezxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IExPR0QoIkNhbGwgUmVtb3RlIGluamVjdGVkIEZ1bmMgRmFpbGVkIik7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcHRyYWNlX2RldGFjaChwaWQpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiBpUmV0Ozxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnIvPjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8qIDcuIOaBouWkjei/nOeoi+i/m+eoi+eahOaJp+ihjOaTjeS9nCovPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgaWYgKHB0cmFjZV9zZXRyZWdzKHBpZCwgJk9yaWdpbmFsUmVncykgPT0gLTEpPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgezxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IExPR0QoIlJlY292ZXIgcmVnZXMgZmFpbGVkIik7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcHRyYWNlX2RldGFjaChwaWQpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiBpUmV0Ozxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBMT0dEKCJSZWNvdmVyIFJlZ3MgU3VjY2VzcyIpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHB0cmFjZV9nZXRyZWdzKHBpZCwgJkN1cnJlbnRSZWdzKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBpZiAobWVtY21wKCZPcmlnaW5hbFJlZ3MsICZDdXJyZW50UmVncywgc2l6ZW9mKEN1cnJlbnRSZWdzKSkgIT0gMCk8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyB7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgTE9HRCgiU2V0IFJlZ3MgRXJyb3IiKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyB9PGJyLz48YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBpZiAocHRyYWNlX2RldGFjaChwaWQpID09IC0xKTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBMT0dEKCJwdHJhY2UgZGV0YWNoIGZhaWxlZCIpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiBpUmV0Ozxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnIvPjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiAwOzxici8+fTwvcD48cD48YnIvPjwvcD48cD48c3Ryb25nPuazqOWFpeW3peWFt+eahOWFpeWPo+aWh+S7tjwvc3Ryb25nPu+8mkluamVjdE1vZHVsZS5jPC9wPjxwPjxici8+PC9wPjxwPi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio8YnIvPiZuYnNwOyBGaWxlTmFtZTogSW5qZWN0TW9kdWxlLmM8YnIvPiZuYnNwOyBEZXNjcmlwdGlvbjombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcHRyYWNl5rOo5YWlJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOzxici8+KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovPGJyLz48YnIvPiNpbmNsdWRlIDxzdGRpby5oPiZuYnNwOyZuYnNwOyAmbmJzcDs8YnIvPiNpbmNsdWRlIDxzdGRsaWIuaD48YnIvPiNpbmNsdWRlIDxzeXMvdXNlci5oPiZuYnNwOyZuYnNwOyAmbmJzcDs8YnIvPiNpbmNsdWRlIDxhc20vcHRyYWNlLmg+Jm5ic3A7Jm5ic3A7ICZuYnNwOzxici8+I2luY2x1ZGUgPHN5cy9wdHJhY2UuaD4mbmJzcDsmbmJzcDsgJm5ic3A7PGJyLz4jaW5jbHVkZSA8c3lzL3dhaXQuaD4mbmJzcDsmbmJzcDsgJm5ic3A7PGJyLz4jaW5jbHVkZSA8c3lzL21tYW4uaD4mbmJzcDsmbmJzcDsgJm5ic3A7PGJyLz4jaW5jbHVkZSA8ZGxmY24uaD4mbmJzcDsmbmJzcDsgJm5ic3A7PGJyLz4jaW5jbHVkZSA8ZGlyZW50Lmg+Jm5ic3A7Jm5ic3A7ICZuYnNwOzxici8+I2luY2x1ZGUgPHVuaXN0ZC5oPiZuYnNwOyZuYnNwOyAmbmJzcDs8YnIvPiNpbmNsdWRlIDxzdHJpbmcuaD4mbmJzcDsmbmJzcDsgJm5ic3A7PGJyLz4jaW5jbHVkZSA8ZWxmLmg+Jm5ic3A7Jm5ic3A7ICZuYnNwOzxici8+I2luY2x1ZGUgPHB0cmFjZUluamVjdC5oPjxici8+I2luY2x1ZGUgPFByaW50TG9nLmg+IDxici8+PGJyLz4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKjxici8+Jm5ic3A7IERlc2NyaXB0aW9uOiZuYnNwOyZuYnNwOyZuYnNwOyDpgJrov4fov5vnqIvlkI3np7DlrprkvY3liLDov5vnqIvnmoRQSUQ8YnIvPiZuYnNwOyBJbnB1dDombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcHJvY2Vzc19uYW1l5Li66KaB5a6a5L2N55qE6L+b56iL5ZCN56ewPGJyLz4mbmJzcDsgT3V0cHV0OiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyDml6A8YnIvPiZuYnNwOyBSZXR1cm46Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IOi/lOWbnuWumuS9jeWIsOeahOi/m+eoi1BJRO+8jOiLpeS4ui0x77yM6KGo56S65a6a5L2N5aSx6LSlPGJyLz4mbmJzcDsgT3RoZXJzOiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyDml6A8YnIvPioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovIDxici8+cGlkX3QgRmluZFBpZEJ5UHJvY2Vzc05hbWUoY29uc3QgY2hhciAqcHJvY2Vzc19uYW1lKTxici8+ezxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGludCBQcm9jZXNzRGlySUQgPSAwOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHBpZF90IHBpZCA9IC0xOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IEZJTEUgKmZwID0gTlVMTDs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBjaGFyIGZpbGVuYW1lW01BWF9QQVRIXSA9IHswfTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBjaGFyIGNtZGxpbmVbTUFYX1BBVEhdID0gezB9Ozxici8+PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgc3RydWN0IGRpcmVudCAqIGVudHJ5ID0gTlVMTDs8YnIvPjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmICggcHJvY2Vzc19uYW1lID09IE5VTEwgKTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiAtMTs8YnIvPjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IERJUiogZGlyID0gb3BlbmRpciggIi9wcm9jIiApOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmICggZGlyID09IE5VTEwgKTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiAtMTs8YnIvPjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHdoaWxlKCAoZW50cnkgPSByZWFkZGlyKGRpcikpICE9IE5VTEwgKTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBQcm9jZXNzRGlySUQgPSBhdG9pKCBlbnRyeS0+ZF9uYW1lICk7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgaWYgKCBQcm9jZXNzRGlySUQgIT0gMCApPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgezxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHNucHJpbnRmKGZpbGVuYW1lLCBNQVhfUEFUSCwgIi9wcm9jLyVkL2NtZGxpbmUiLCBQcm9jZXNzRGlySUQpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGZwID0gZm9wZW4oIGZpbGVuYW1lLCAiciIgKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpZiAoIGZwICk8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgZmdldHMoY21kbGluZSwgc2l6ZW9mKGNtZGxpbmUpLCBmcCk7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgZmNsb3NlKGZwKTs8YnIvPjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmIChzdHJuY21wKHByb2Nlc3NfbmFtZSwgY21kbGluZSwgc3RybGVuKHByb2Nlc3NfbmFtZSkpID09IDApPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgezxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHBpZCA9IFByb2Nlc3NEaXJJRDs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBicmVhazs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB9PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyB9PGJyLz48YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBjbG9zZWRpcihkaXIpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiBwaWQ7PGJyLz59PGJyLz48YnIvPmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBjaGFyIEluamVjdE1vZHVsZU5hbWVbTUFYX1BBVEhdID0gIi9kYXRhL2xpYkluamVjdE1vZHVsZS5zbyI7Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8vIOazqOWFpeaooeWdl+WFqOi3r+W+hDxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNoYXIgUmVtb3RlQ2FsbEZ1bmNbTUFYX1BBVEhdID0gIkluamVjdF9lbnRyeSI7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8vIOazqOWFpeaooeWdl+WQjuiwg+eUqOaooeWdl+WHveaVsOWQjeensDxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNoYXIgSW5qZWN0UHJvY2Vzc05hbWVbTUFYX1BBVEhdID0gImNvbS50ZXN0am5pIjsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgLy8g5rOo5YWl6L+b56iL5ZCN56ewPGJyLz48YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyAvLyDlvZPliY3orr7lpIfnjq/looPliKTmlq08YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyAjaWYgZGVmaW5lZChfX2kzODZfXykgJm5ic3A7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgTE9HRCgiQ3VycmVudCBFbnZpcm9ubWVudCB4ODYiKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gLTE7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgI2VsaWYgZGVmaW5lZChfX2FybV9fKTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IExPR0QoIkN1cnJlbnQgRW52aXJvbm1lbnQgQVJNIik7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgI2Vsc2UmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgTE9HRCgib3RoZXIgRW52aXJvbm1lbnQiKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gLTE7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgI2VuZGlmPGJyLz48YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBwaWRfdCBwaWQgPSBGaW5kUGlkQnlQcm9jZXNzTmFtZShJbmplY3RQcm9jZXNzTmFtZSk7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgaWYgKHBpZCA9PSAtMSk8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyB7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcHJpbnRmKCJHZXQgUGlkIEZhaWxlZCIpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiAtMTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyB9Jm5ic3A7ICZuYnNwOzxici8+PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgcHJpbnRmKCJiZWdpbiBpbmplY3QgcHJvY2VzcywgUmVtb3RlUHJvY2VzcyBwaWQ6JWQsIEluamVjdE1vZHVsZU5hbWU6JXMsIFJlbW90ZUNhbGxGdW5jOiVzXG4iLCBwaWQsIEluamVjdE1vZHVsZU5hbWUsIFJlbW90ZUNhbGxGdW5jKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBpbnQgaVJldCA9IGluamVjdF9yZW1vdGVfcHJvY2VzcyhwaWQsJm5ic3A7IEluamVjdE1vZHVsZU5hbWUsIFJlbW90ZUNhbGxGdW5jLCZuYnNwOyBOVUxMLCAwKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyAvL2ludCBpUmV0ID0gaW5qZWN0X3JlbW90ZV9wcm9jZXNzX3NoZWxsY29kZShwaWQsJm5ic3A7IEluamVjdE1vZHVsZU5hbWUsIFJlbW90ZUNhbGxGdW5jLCZuYnNwOyBOVUxMLCAwKTs8YnIvPjxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmIChpUmV0ID09IDApPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgezxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHByaW50ZigiSW5qZWN0IFN1Y2Nlc3NcbiIpOzxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyBlbHNlPGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgezxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHByaW50ZigiSW5qZWN0IEZhaWxlZFxuIik7PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgfTxici8+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHByaW50ZigiZW5kIGluamVjdCwlZFxuIiwgcGlkKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gMDsgJm5ic3A7PGJyLz59PC9wPjxwPjxici8+PC9wPjxoMSBpZD0idG9jLTMiPue8luivkei/h+eoizwvaDE+PHA+5bCG5LiK6Z2i55qE5rOo5YWl5Luj56CB57yW6K+R5oiQ5Y+v5omn6KGM5paH5Lu2PC9wPjxoMiBpZD0idG9jLTQiPuWHhuWkh+aWh+S7tjwvaDI+PGgzIGlkPSJ0b2MtNSI+5rOo5YWl5bel5YW3PC9oMz48bGk+PHA+am5p5paH5Lu25aS5PC9wPjxwPue8luivkeaWh+S7tuW/hemhu+WcqGpuaeaWh+S7tuWkueS4izwvcD48L2xpPjxsaT48cD5qbmkvQW5kcm9pZC5tazwvcD48cD7nvJbor5HphY3nva7mlofku7bjgII8L3A+PGxpPjxwPkxPQ0FMX1BBVEjmjIflrprmupDmlofku7bmiYDlnKjnm67lvZU8L3A+PC9saT48bGk+PHA+Q0xFQVI8ZW0+VkFSU+eUqOadpea4hemZpOW+iOWkmkxPQ0FMPC9lbT4q5Y+Y6YePKOS9huaYr+S4jeS8mua4hemZpExPQ0FMX1BBVEgp77yM5Zug5Li65aaC5p6c57yW6K+R5aSa5Liqc2/lsLHpnIDopoHmuIXpmaTkuIrkuIDkuKpzb+aWh+S7tueahOmFjee9ruS/oeaBrzwvcD48L2xpPjxsaT48cD5MT0NBTF9NT0RVTEXvvJrnvJbor5HlkI7nmoTmqKHlnZflkI3vvIzpu5jorqTlnKjlkI7pnaLliqDkuIouc288L3A+PC9saT48bGk+PHA+TE9DQUxfU1JDX0ZJTEVTOiDooqvnvJbor5HnmoTmupDmlofku7Y8L3A+PC9saT48bGk+PHA+TE9DQUxfTERMSUJT77ya5rqQ5paH5Lu255So5Yiw5LqG5LiA5Lqb57O757uf5bqT77yM6YCa6L+H5q2k5Y+Y6YeP5qCH6K6w6ZO+5o6l5Yiw5YW35L2T5L2N572u77yM5aaCPGNvZGU+LUwkKFNZU1JPT1QpL3Vzci9saWI8L2NvZGU+5oyH5a6a5qCH5YeG5bqT55qE55uu5b2V5L2N572u5L2N5LqOTkRL5a6J6KOF5qC555uu5b2V5LiL55qEIHN5c3Jvb3QvdXNyL2luY2x1ZGUg5LitLjwvcD48cD7ogIw8Y29kZT4tbGxvZzwvY29kZT7liJnmoIforrDkvb/nlKjliLDkuoZsaWJsb2cuc2/ov5nkuKrml6Xlv5flupM8L3A+PC9saT48bGk+PHA+PGNvZGU+aW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpPC9jb2RlPuWImeaMh+Wumue8luivkeaIkOWPr+aJp+ihjOaWh+S7tjwvcD48L2xpPjwvbGk+PHA+PGJyLz48L3A+PHA+TE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKSAmbmJzcDs8YnIvPjxici8+aW5jbHVkZSAkKENMRUFSX1ZBUlMpICZuYnNwOzxici8+TE9DQUxfTU9EVUxFIDo9IGluamVjdCZuYnNwOyAmbmJzcDs8YnIvPkxPQ0FMX1NSQ19GSUxFUyA6PSBwdHJhY2VJbmplY3QuYyBJbmplY3RNb2R1bGUuYyA8YnIvPjxici8+TE9DQUxfTERMSUJTICs9IC1MJChTWVNST09UKS91c3IvbGliIC1sbG9nICZuYnNwOzxici8+PGJyLz5pbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSk8L3A+PHA+PGJyLz48L3A+PGxpPjxwPmpuaS9BcHBsaWNhdGlvbi5tazwvcD48cD7mjIflrprnlJ/miJDpgILnlKjkuo4zMiDkvY0gQVJNdjfmjIfku6Tpm4bnmoTmlofku7Y8L3A+PC9saT48cHJlPkFQUF9BQkkmbmJzcDs6PSZuYnNwO2FybWVhYmktdjdhPC9wcmU+PGxpPuazqOWFpeW3peWFt+eahOa6kOaWh+S7tu+8mkluamVjdE1vZHVsZS5j77yMcHRyYWNlSW5qZWN0LmPvvIxwdHJhY2VJbmplY3QuaO+8jFByaW50TG9nLmg8bGk+SW5qZWN0TW9kdWxlLmPvvJrms6jlhaXlt6XlhbflhaXlj6Pmlofku7Y8L2xpPjxsaT5wdHJhY2VJbmplY3QuY++8muazqOWFpeW3peWFt+eahOWKn+iDveS7o+eggTwvbGk+PGxpPnB0cmFjZUluamVjdC5o77ya5aOw5piO5rOo5YWl5Ye95pWw55qE5aS05paH5Lu2PC9saT48bGk+UHJpbnRMb2cuaO+8muWjsOaYjuaXpeW/l+WHveaVsOeahOWktOaWh+S7tjwvbGk+PC9saT48aDMgaWQ9InRvYy02Ij7ooqvms6jlhaXnmoREZW1v5qih5Z2XPC9oMz48bGk+am5p5paH5Lu25aS5PC9saT48bGk+am5pL0FuZHJvaWQubWs8L2xpPjxwPjxici8+PC9wPjxwPkxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikgJm5ic3A7PGJyLz48YnIvPmluY2x1ZGUgJChDTEVBUl9WQVJTKSAmbmJzcDs8YnIvPkxPQ0FMX01PRFVMRSA6PSBJbmplY3RNb2R1bGUgJm5ic3A7PGJyLz5MT0NBTF9TUkNfRklMRVMgOj0gSW5qZWN0TW9kdWxlLmM8YnIvPjxici8+TE9DQUxfQVJNX01PREUgOj0gYXJtPGJyLz48YnIvPkxPQ0FMX0xETElCUyArPSAtTCQoU1lTUk9PVCkvdXNyL2xpYiAtbGxvZyAmbmJzcDs8YnIvPjxici8+aW5jbHVkZSAkKEJVSUxEX1NIQVJFRF9MSUJSQVJZKTwvcD48cD48YnIvPjwvcD48bGk+am5pL0FwcGxpY2F0aW9uLm1rPC9saT48cHJlPkFQUF9BQkkmbmJzcDs6PSZuYnNwO2FybWVhYmktdjdhPC9wcmU+PGxpPuiiq+azqOWFpeaooeWdl+eahOa6kOaWh+S7tkluamVjdE1vZHVsZS5j77yM5ZKM5pel5b+X5omT5Y2w5aS05paH5Lu2UHJpbnRMb2cuaO+8jOi/meS4quWktOaWh+S7tuWSjOS4iumdouS4gOagtzwvbGk+PHA+PGJyLz48L3A+PHA+I2luY2x1ZGUgPHN0ZGlvLmg+PGJyLz4jaW5jbHVkZSA8c3RkbGliLmg+PGJyLz4jaW5jbHVkZSA8UHJpbnRMb2cuaD48YnIvPjxici8+aW50IEluamVjdF9lbnRyeSgpPGJyLz57PGJyLz4mbmJzcDsmbmJzcDsmbmJzcDsgTE9HRCgiSW5qZWN0X2VudHJ5IEZ1bmMgaXMgY2FsbGVkXG4iKTs8YnIvPiZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gMDs8YnIvPn08L3A+PHA+PGJyLz48L3A+PGgyIGlkPSJ0b2MtNyI+57yW6K+RPC9oMj48cD7liIbliKvlnKjkuKTkuKpqbmnnm67lvZXkuIvmiafooYw8Y29kZT5uZGstYnVpbGQ8L2NvZGU+5ZG95Luk77yM6ZyA6KaB6YWN572u546v5aKD5Y+Y6YePPC9wPjxwPjxzdHJvbmc+55Sf5oiQ5L2N572u77yaPC9zdHJvbmc+am5p5ZCM55uu5b2V5LiL55qEbGlicy9hcm1lYWJpLXY3YeaWh+S7tuWkueS4rTwvcD48aDEgaWQ9InRvYy04Ij7ms6jlhaXov4fnqIs8L2gxPjxwPuWwhue8luivkeWlveeahDxjb2RlPmxpYkluamVjdE1vZHVsZS5zbzwvY29kZT7mlofku7bmlL7lhaUvZGF0YeebruW9leS4i++8jOeEtuWQjmNobW9kIDc3NyDnu5nms6jlhaXlt6Xlhbfmj5DkvpvmiafooYzmnYPpmZDvvIzlubbov5DooYzljbPlj6/lnKjml6Xlv5fkuK3nnIvliLDooqvms6jlhaXnmoTlupTnlKjmiafooYzkuobmiJHku6zms6jlhaXov5vljrvnmoRsaWJJbmplY3RNb2R1bGUuc2/mqKHlnZfkuK3nmoTlh73mlbDjgII8L3A+PHA+5b2T54S25Lmf5Y+v5Lul6YCa6L+H5p+l55yL6L+b56iL55qE5YaF5a2Y5biD5bGA77yM5Y+v5Lul55yL5Yiw5oiR5LusPC9wPjxwPjxici8+PC9wPjxwPjxpbWcgc3JjPSJodHRwczovL2Jicy56a2FxLmNuL3VwbG9hZC91c2VyZmlsZS8xOTMyLzhjNGU2NzRmODQ1OWZlMWI5MjI5OThhZThlYWZlYzMwLnBuZyIvPjwvcD48cD48YnIvPjwvcD48cD48aW1nIHNyYz0iaHR0cHM6Ly9iYnMuemthcS5jbi91cGxvYWQvdXNlcmZpbGUvMTkzMi84MDU0NzU3NTQzOTc5NjNiNGJmNzU1MDc0ZWE5YmZhMi5wbmciLz48L3A+PHA+PGJyLz48L3A+PGgxIGlkPSJ0b2MtOSI+5bCP57uTPC9oMT48cD7pgJrov4dkbG9wZW7lkoxkbHN5beWHveaVsOWwhuaIkeS7rOiHquW3seWGmeWlveeahHNv5bqT5rOo5YWl6L+b5Y6777yM6K6w5L2P5Yeg5Liq54K5PC9wPjxwPuOAkDHjgJHlj6ropoHorqnov5znqIvov5vnqIvosIPnlKhkbG9wZW7miZPlvIDmiJHku6zlhpnlpb3nmoRzb+aWh+S7tuWwseWunueOsOS6hnNv5bqT55qE5rOo5YWl77yM57Sn5o6l552A6YCa6L+H5bCG5Ye95pWw5ZCN56ew5ZKMZGxvcGVu5omT5byA55qE5Y+l5p+E5L2c5Li65Y+C5pWw5Lyg6YCS57uZZGxzeW3lsLHlj6/ku6Xlrp7njrDlupPkuK3lh73mlbDlnLDlnYDnmoTmo4DntKI8L3A+PHA+44CQMuOAkeS4iumdoueUqOWIsOeahHNv5paH5Lu255qE6Lev5b6E5ZKM5Ye95pWw5ZCN56ew77yM6YO96ZyA6KaB5oiR5Lus5Lyg6YCS5Yiw6L+c56iL6L+b56iL55qE5YaF5a2Y56m66Ze05Lit77yM6L+c56iL6L+b56iL5piv5LiN6IO96Leo6L+b56iL6K6/6Zeu5oiR5Lus5rOo5YWl5bel5YW35Lit55qE5a2X56ym5Liy55qEPC9wPjxwPuOAkDPjgJHov5znqIvov5vnqIvnmoTosIPnlKjvvIzkuLvopoHpgJrov4dwdHJhY2XmnaXkv67mlLnlr4TlrZjlmajlrp7njrDvvIxwY+WGs+WumuWHveaVsOiwg+eUqOWTquadoeaMh+S7pO+8jHIwLXIz6L+Y5pyJ5qCI5Yaz5a6a5Y+C5pWwPC9wPjxoMSBpZD0idG9jLTEwIj7lj4LogIM8L2gxPjxwPuOAkOS5puexjeOAkea4uOaIj+WuieWFqC3miYvmuLjlronlhajmioDmnK/lhaXpl6g8L3A+PHA+PGJyLz48L3A+PHA+6L2s6Ieq5YWI55+l56S+5Yy6PGJyLz48L3A+

打赏我,让我更有动力~

0 条回复   |  直到 2019-6-10 | 2084 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2025 掌控者 All Rights Reserved.