LyoKICogV2luZUZpbGUKICogVHVya2lzaCBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDA2IEZhdGloIEH+/WP9CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCiNpbmNsdWRlICJyZXNvdXJjZS5oIgoKTEFOR1VBR0UgTEFOR19UVVJLSVNILCBTVUJMQU5HX0RFRkFVTFQKCi8qIE1lbnUgKi8KCklETV9XSU5FRklMRSBNRU5VCnsKICAgIFBPUFVQICImRG9zeWEiICB7CiAgICAgICAgTUVOVUlURU0gIiZB51x0RW50ZXIiLCAgICAgICAgICAgICAgICAgIElEX0FDVElWQVRFCiAgICAgICAgTUVOVUlURU0gIiZUYf79Li4uXHRGNyIsICAgICAgICAgICAgICAgIElEX0ZJTEVfTU9WRQogICAgICAgIE1FTlVJVEVNICJLJm9weWFsYS4uLlx0RjgiLCAgICAgICAgICAgICBJRF9GSUxFX0NPUFkKICAgICAgICBNRU5VSVRFTSAiJlBhbm9kYW4uLi5cdEY5IiwgICAgICAgICAgICAgMTE4CiAgICAgICAgTUVOVUlURU0gIiZTaWxcdERlbCIsICAgICAgICAgICAgICAgICAgIElEX0ZJTEVfREVMRVRFCiAgICAgICAgTUVOVUlURU0gIlllJm5pZGVuIEFkbGFuZP1yLi4uIiwgICAgICAgIDEwOQogICAgICAgIE1FTlVJVEVNICIm1nplbGxpa2xlci4uLlx0QWx0K0VudGVyIiwgICBJRF9FRElUX1BST1BFUlRJRVMKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiUyb9a/3+dP1yLi4uIiwgICAgICAgICAgICAgICAgMTE5CiAgICAgICAgTUVOVUlURU0gIkdlbmkm/mxldC4uLiIsICAgICAgICAgICAgICAgIDEyMAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImx2Fs/f50/XIuLi4iLCAgICAgICAgICAgICAgICBJRF9SVU4KICAgICAgICBNRU5VSVRFTSAiWWEmemT9ci4uLiIsICAgICAgICAgICAgICAgICAgMTAyCiAgICAgICAgTUVOVUlURU0gIt1saf5raWxlbmRpci4uLiIsICAgICAgICAgICAgIDEwMwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImRGl6aW4gT2x1/nR1ci4uLiIsICAgICAgICAgICAxMTEKICAgICAgICBNRU5VSVRFTSAiQSZyYS4uLiIsICAgICAgICAgICAgICAgICAgICAgMTA0CiAgICAgICAgTUVOVUlURU0gIkQmb3N5YWxhcv0gU2XnLi4uIiwgICAgICAgICAgIDExNgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgojaWZuZGVmIF9OT19FWFRFTlNJT05TCiAgICAgICAgTUVOVUlURU0gIibH/Wv9/lx0QWx0K1giLCAgICAgICAgICAgICAgICBJRF9GSUxFX0VYSVQKI2Vsc2UKICAgICAgICBNRU5VSVRFTSAiJsf9a/3+IiwgICAgICAgICAgICAgICAgICAgICAgIElEX0ZJTEVfRVhJVAojZW5kaWYKICAgIH0KCiAgICBQT1BVUCAiJkRpc2siICB7CiAgICAgICAgTUVOVUlURU0gIkRpc2sgSyZvcHlhbGEuLi4iLCAgICAgICAgICAgICAyMDEKICAgICAgICBNRU5VSVRFTSAiRGlzayAmRXRpa2V0aS4uLiIsICAgICAgICAgICAgIDIwMgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJEaXNrIEJpJudpbWxlbmRpci4uLiIsICAgICAgICAgSURfRk9STUFUX0RJU0sKI2lmZGVmIF9XSU45NQogICAgICAgIE1FTlVJVEVNICImU2lzdGVtIERpc2tpIE9sdf50dXIuLi4iLCAtMSAvKlRPRE8qLwojZW5kaWYKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkHwIFP8cvxj/HP8bmUgQmHwbGFuIiwgICAgICAgSURfQ09OTkVDVF9ORVRXT1JLX0RSSVZFCiAgICAgICAgTUVOVUlURU0gIkHwIFP8cvxj/HP8bmUgQmHwbGFudP15/SAmS2VzIiwgICBJRF9ESVNDT05ORUNUX05FVFdPUktfRFJJVkUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiUGF5bGH+Li4uIiwgICAgICAgICAgICAgICAgICAgMjU0CiAgICAgICAgTUVOVUlURU0gIlBheWxh/v1t/SBTJmlsLi4uIiwgICAgICAgICAgIDI1NQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJTJvxy/GP8IFNl5y4uLiIsICAgICAgICAgICAgICAyNTEKICAgIH0KCiAgICBQT1BVUCAiRGkmemlubGVyIiAgewogICAgICAgIE1FTlVJVEVNICImU29ucmFraSBTZXZpeWVcdCsiLCAgICAgICAgICAzMDEKICAgICAgICBNRU5VSVRFTSAiQfBhY/0gJkdlbmn+bGV0XHQqIiwgICAgICAgICAgMzAyCiAgICAgICAgTUVOVUlURU0gIiZU/G38bvwgR2Vuaf5sZXRcdFN0cmcrKiIsICAgIDMwMwogICAgICAgIE1FTlVJVEVNICJB8GFj/SBUJm9wbGFcdC0iLCAgICAgICAgICAgICAzMDQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQSZsdCBEYWxsYXL9IN3+YXJldGxlIiwgICAgICAgNTA1CiAgICB9CgogICAgUE9QVVAgIiZH9nL8bvxtIiAgewogICAgICAgIE1FTlVJVEVNICJBJvBh5yB2ZSBEaXppbiIsICAgICAgICAgICAgICA0MTMKICAgICAgICBNRU5VSVRFTSAiWWFsbv16Y2EgJkHwYeciLCAgICAgICAgICAgICAgNDExCiAgICAgICAgTUVOVUlURU0gIllhbG79emNhICZEaXppbiIsICAgICAgICAgICAgIDQxMgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBeSZyYeciLCAgICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX1NQTElUCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZBZCIsICAgICAgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfTkFNRQogICAgICAgIE1FTlVJVEVNICImVPxtIERvc3lhIEF5cv1udP1sYXL9IiwgICAgICBJRF9WSUVXX0FMTF9BVFRSSUJVVEVTLCBDSEVDS0VECiAgICAgICAgTUVOVUlURU0gIiZTZedpbG1p/iBBeXL9bnT9bGFyLi4uIiwgICAgIElEX1ZJRVdfU0VMRUNURURfQVRUUklCVVRFUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQWRhIEf2cmUgU/1yYWxhIiwgICAgICAgICAgICBJRF9WSUVXX1NPUlRfTkFNRQogICAgICAgIE1FTlVJVEVNICImVPxyZSBH9nJlIFP9cmFsYSIsICAgICAgICAgICBJRF9WSUVXX1NPUlRfVFlQRQogICAgICAgIE1FTlVJVEVNICImQm95dXRhIEf2cmUgU/1yYWxhIiwgICAgICAgICBJRF9WSUVXX1NPUlRfU0laRQogICAgICAgIE1FTlVJVEVNICImVGFyaWhlIEf2cmUgU/1yYWxhIiwgICAgICAgICBJRF9WSUVXX1NPUlRfREFURQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJT/HpnZecgJi4uLiIsICAgICAgICAgICAgICAgICBJRF9WSUVXX0ZJTFRFUgogICAgfQoKICAgIFBPUFVQICImU2XnZW5la2xlciIgIHsKICAgICAgICBNRU5VSVRFTSAiJk9uYXlsYW1hLi4uIiwgICAgICAgICAgICAgICAgNTAxCiAgICAgICAgTUVOVUlURU0gIiZZYXr9IFRpcGkuLi4iLCAgICAgICAgICAgICAgIElEX1NFTEVDVF9GT05UCiAgICAgICAgTUVOVUlURU0gIkFyYecgx3VidfB1bnUgJtZ6ZWxsZf50aXIuLi4iLCAgNTEyCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZBcmHnIMd1YnXwdSIsICAgICAgICAgICAgICAgIElEX1ZJRVdfVE9PTF9CQVIsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiJlP8cvxj/CDHdWJ18HUiLCAgICAgICAgICAgICAgSURfVklFV19EUklWRV9CQVIsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiJkR1cnVtIMd1YnXwdSIsICAgICAgICAgICAgICAgSURfVklFV19TVEFUVVNCQVIsIENIRUNLRUQKI2lmbmRlZiBfTk9fRVhURU5TSU9OUwogICAgICAgIE1FTlVJVEVNICImVGFtIEVrcmFuXHRDdHJsK1NoaWZ0K1MiLCAgICBJRF9WSUVXX0ZVTExTQ1JFRU4KI2VuZGlmCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkHn/Wz9/nRhICZr/Of8bHQiLCAgICAgICAgICAgIDUwNAogICAgICAgIE1FTlVJVEVNICImx/1r/f50YSBheWFybGFy/SBrYXlkZXQiLCAgICA1MTEKICAgIH0KCgogICAgUE9QVVAgIiZH/HZlbmxpayIgIHsKICAgICAgICBNRU5VSVRFTSAiJkVyaf5pbS4uLiIsICAgICAgICAgICAgICAgICAgNjA1CiAgICAgICAgTUVOVUlURU0gIiZPdHVydW0gQedtYS4uLiIsICAgICAgICAgICAgIDYwNgogICAgICAgIE1FTlVJVEVNICImU2FoaXAuLi4iLCAgICAgICAgICAgICAgICAgICA2MDcKICAgIH0KCiAgICBQT1BVUCAiJlBlbmNlcmUiICB7CiAgICAgICAgTUVOVUlURU0gIiZZZW5pIFBlbmNlcmUiLCAgICAgICAgICAgICAgIElEX1dJTkRPV19ORVcKICAgICAgICBNRU5VSVRFTSAiRGl6XHRDdHJsK0Y1IiwgICAgICAgICAgICAgICAgSURfV0lORE9XX0NBU0NBREUKICAgICAgICBNRU5VSVRFTSAiJllhdGF5IET2/mUiLCAgICAgICAgICAgICAgICAgSURfV0lORE9XX1RJTEVfSE9SWgogICAgICAgIE1FTlVJVEVNICJEaSZrZXkgRPb+ZVx0Q3RybCtGNCIsICAgICAgICBJRF9XSU5ET1dfVElMRV9WRVJUCiNpZm5kZWYgX05PX0VYVEVOU0lPTlMKICAgICAgICBNRU5VSVRFTSAiT3RvbWF0aWsgRPx6ZW5sZSIsICAgICAgICAgICAgSURfV0lORE9XX0FVVE9TT1JUCiNlbmRpZgogICAgICAgIE1FTlVJVEVNICJTaW1nZWxlcmkgRCb8emVubGUiLCAgICAgICAgICBJRF9XSU5ET1dfQVJSQU5HRQogICAgICAgIE1FTlVJVEVNICJZZSZuaWxlXHRGNSIsICAgICAgICAgICAgICAgICBJRF9SRUZSRVNICiAgICB9CgogICAgUE9QVVAgIiZZYXJk/W0iICB7CiAgICAgICAgTUVOVUlURU0gIiZZYXJk/W0gS29udWxhcv1cdEYxIiwgICAgICAgIElEX0hFTFAKICAgICAgICBNRU5VSVRFTSAiWWFyZP1tZGEgJkFyYS4uLlx0RjEiLCAgICAgICAgSURfSEVMUAogICAgICAgIE1FTlVJVEVNICJZYXJk/W0gJkt1bGxhbv1t/Vx0RjEiLCAgICAgICBJRF9IRUxQX1VTSU5HCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIldpbmVmaWxlIGhha2v9bmRhICZiaWxnaS4uLiIsIElEX0FCT1VUCiAgICB9Cn0KCklERF9TRUxFQ1RfREVTVElOQVRJT04gRElBTE9HIDE1LCAxMywgMjEwLCA2MwpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJIZWRlZmkgc2XnIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKICAgIENPTlRST0wgICAgICAgICAiIiwgMTAxLCAiU3RhdGljIiwgU1NfU0lNUExFfFNTX05PUFJFRklYLCAzLCA2LCAxNjIsIDEwCiAgICBDT05UUk9MICAgICAgICAgIiZZb2w6IiwgLTEsICJTdGF0aWMiLCBTU19MRUZUTk9XT1JEV1JBUHxXU19HUk9VUCwgMywgMTgsIDYwLCAxMAogICAgRURJVFRFWFQgICAgICAgIDIwMSwgMywgMjksIDEzNCwgMTIsIEVTX0FVVE9IU0NST0xMCiAgICBERUZQVVNIQlVUVE9OICAgIlRhbWFtIiwgMSwgMTU4LCA2LCA0NywgMTQKICAgIFBVU0hCVVRUT04gICAgICAi3XB0YWwiLCAyLCAxNTgsIDIzLCA0NywgMTQKICAgIFBVU0hCVVRUT04gICAgICAiJkf2emF0IiwgMjU0LCAxNTgsIDQzLCA0NywgMTQKfQoKSUREX0RJQUxPR19WSUVXX1RZUEUgRElBTE9HIDE1LCAxMywgMTYxLCA5NwpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJEb3N5YSBU/HL8bmUgR/ZyZSIKRk9OVCA4LCAiTVMgU2FucyBTZXJpZiIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAiJkFkOiIsLTEsNyw4LDIyLDEwCiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZJRVdfUEFUVEVSTiwzMSw3LDYzLDEyLEVTX0FVVE9IU0NST0xMCiAgICBHUk9VUEJPWCAgICAgICAgIkRvc3lhIFT8cvwiLC0xLDcsMjMsODcsNTYKICAgIENPTlRST0wgICAgICAgICAiJkRpemlubGVyIixJRENfVklFV19UWVBFX0RJUkVDVE9SSUVTLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTMsMzIsNzAsMTAKICAgIENPTlRST0wgICAgICAgICAiJlByb2dyYW1sYXIiLElEQ19WSUVXX1RZUEVfUFJPR1JBTVMsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMyw0Myw3MCwxMAogICAgQ09OVFJPTCAgICAgICAgICImQmVsZ2VsZXIiLElEQ19WSUVXX1RZUEVfRE9DVU1FTlRTLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTMsNTQsNzAsMTAKICAgIENPTlRST0wgICAgICAgICAiJkRp8GVyIGRvc3lhbGFyIixJRENfVklFV19UWVBFX09USEVSUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzLDY1LDcwLDEwCiAgICBDT05UUk9MICAgICAgICAgIkdpemxpL1Npc3RlbSDWemVsbGlrbGkgRG9zeWFsYXL9ICZH9nN0ZXIiLElEQ19WSUVXX1RZUEVfSElEREVOLAogICAgICAgICAgICAgICAgICAgICJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNyw4MSwxNDAsOQogICAgREVGUFVTSEJVVFRPTiAgICJUYW1hbSIsSURPSywxMDQsNyw1MCwxNAogICAgUFVTSEJVVFRPTiAgICAgICLdcHRhbCIsSURDQU5DRUwsMTA0LDI0LDUwLDE0CkVORAoKSUREX0RJQUxPR19QUk9QRVJUSUVTIERJQUxPRyAgMCwgMCwgMjQ4LCAyMTUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiJXMg1nplbGxpa2xlcmkiCkZPTlQgOCwgIk1TIFNhbnMgU2VyaWYiCkJFR0lOCiAgICBERUZQVVNIQlVUVE9OICAgIlRhbWFtIixJRE9LLDE5MSw3LDUwLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIt1wdGFsIixJRENBTkNFTCwxOTEsMjksNTAsMTQKICAgIExURVhUICAgICAgICAgICAiJkRvc3lhIEFk/ToiLC0xLDcsNyw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX0ZJTEVOQU1FLDcxLDcsMTIwLDksRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJUYW0gJllvbDoiLC0xLDcsMTgsNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9QQVRILDcxLDE4LDEyMCw5LCBFU19SRUFET05MWSB8IE5PVCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIlNvbiBEZfBp/m1lOiIsLTEsNywyOSw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX0xBU1RDSEFOR0UsNzEsMjksMTIwLDksRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJT/HL8bToiLC0xLDcsNDAsNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9WRVJTSU9OLDcxLDQwLDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiJlRlbGlmIEhha2v9OiIsLTEsNyw1MSw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX0NPUFlSSUdIVCw3MSw1MSwxMjAsOSxFU19SRUFET05MWSB8IE5PVCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIkJveXV0OiIsLTEsNyw2Miw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX1NJWkUsNzEsNjIsMTIwLDksRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICLWemVsbGlrbGVyIiwtMSw3LDc5LDE1OCw0NgogICAgQ09OVFJPTCAgICAgICAgICImU2FsdCBPa3VudXIiLElEQ19DSEVDS19SRUFET05MWSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE3LDkxLDY4LDkKICAgIENPTlRST0wgICAgICAgICAiJkdpemxpIixJRENfQ0hFQ0tfSElEREVOLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsOTIsOTEsNjgsOQogICAgQ09OVFJPTCAgICAgICAgICImQXL+aXYiLElEQ19DSEVDS19BUkNISVZFLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTcsMTAxLDY4LDkKICAgIENPTlRST0wgICAgICAgICAiJlNpc3RlbSIsSURDX0NIRUNLX1NZU1RFTSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDkyLDEwMSw2OCw5CiAgICBDT05UUk9MICAgICAgICAgIlMm/Wv9/v1rIixJRENfQ0hFQ0tfQ09NUFJFU1NFRCwiQnV0dG9uIiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNywxMTEsNjgsOQogICAgR1JPVVBCT1ggICAgICAgICJTJvxy/G0gQmlsZ2lzaSIsLTEsNywxMjksMjM0LDc5CiAgICBMSVNUQk9YICAgICAgICAgSURDX0xJU1RfUFJPUF9WRVJTSU9OX1RZUEVTLDEzLDEzOSwxMDcsNjMsTEJTX1NPUlQgfCBMQlNfTk9JTlRFR1JBTEhFSUdIVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBFRElUVEVYVCAgICAgICAgSURDX0xJU1RfUFJPUF9WRVJTSU9OX1ZBTFVFUywxMjMsMTM5LDExMSw2MyxFU19NVUxUSUxJTkUgfCBFU19SRUFET05MWSB8IFdTX1ZTQ1JPTEwKRU5ECgoKU1RSSU5HVEFCTEUKewogICAgSURTX0ZPTlRfU0VMX0RMR19OQU1FICAgIllhev0gdGlwaSBheWFybGFy/SB1eWd1bGFu/XlvciIKICAgIElEU19GT05UX1NFTF9FUlJPUiAgICAgICJZZW5pIHlhev0gdGlwaSBzZedlcmtlbiBoYXRhLiIKfQoKU1RSSU5HVEFCTEUKewogICAgSURTX1dJTkVGSUxFICAgICAgICAgICAgIldpbmVmaWxlIgogICAgSURTX0VSUk9SICAgICAgICAgICAgICAgIkhhdGEiCiAgICBJRFNfUk9PVF9GUyAgICAgICAgICAgICAia/ZrIGRzIgogICAgSURTX1VOSVhGUyAgICAgICAgICAgICAgInVuaXhmcyIKICAgIElEU19ERVNLVE9QICAgICAgICAgICAgICJNYXNh/HN0/CIKICAgIElEU19TSEVMTCAgICAgICAgICAgICAgICJLYWJ1ayIKICAgIElEU19USVRMRUZNVCAgICAgICAgICAgICIlcyAtICVzIgogICAgSURTX05PX0lNUEwgICAgICAgICAgICAgIkhlbvx6IHRhbWFtbGFubWFk/SIKICAgIElEU19XSU5FX0ZJTEUgICAgICAgICAgICJXaW5lIERvc3lhIFn2bmV0aWNpc2kiCn0KClNUUklOR1RBQkxFCnsKICAgIElEU19DT0xfTkFNRSAgICAgICAgICAgICJBZCIKICAgIElEU19DT0xfU0laRSAgICAgICAgICAgICJCb3l1dCIKICAgIElEU19DT0xfQ0RBVEUgICAgICAgICAgICJPVGFyaWhpIgogICAgSURTX0NPTF9BREFURSAgICAgICAgICAgIkVUYXJpaGkiCiAgICBJRFNfQ09MX01EQVRFICAgICAgICAgICAiRFRhcmloaSIKICAgIElEU19DT0xfSURYICAgICAgICAgICAgICLdbmRla3MvRPzw/G0iCiAgICBJRFNfQ09MX0xJTktTICAgICAgICAgICAiQmHwbGFudP1sYXIiCiAgICBJRFNfQ09MX0FUVFIgICAgICAgICAgICAi1nplbGxpa2xlciIKICAgIElEU19DT0xfU0VDICAgICAgICAgICAgICJH/HZlbmxpayIKCiAgICBJRFNfRlJFRV9TUEFDRV9GTVQgICAgICAiJXMgLyAlcyBib/4iCn0K