LyoKICogQ29weXJpZ2h0IDE5OTcgUmljYXJkbyBSLiBNYXNzYXJvCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfUE9SVFVHVUVTRSwgU1VCTEFOR19ERUZBVUxUCgpPUEVOX0ZJTEUgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMzYsIDI0LCAyNzUsIDEzNApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJBYnJpciIKRk9OVCA4LCAiSGVsdiIKewogTFRFWFQgIk5vbWUgZG8gJkFycXVpdm86IiwgMTA5MCwgNiwgNiwgNzYsIDkKIEVESVRURVhUIDExNTIsIDYsIDE2LCA5MCwgMTIsIEVTX0FVVE9IU0NST0xMIHwgRVNfT0VNQ09OVkVSVCB8IFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKIExJU1RCT1ggMTEyMCwgNiwgMzIsIDkwLCA2OCwgTEJTX1NUQU5EQVJEIHwgTEJTX09XTkVSRFJBV0ZJWEVEIHwgTEJTX0hBU1NUUklOR1MgfCBMQlNfRElTQUJMRU5PU0NST0xMIHwgV1NfVEFCU1RPUAogTFRFWFQgIiZEaXJldPNyaW9zOiIsIC0xLCAxMTAsIDYsIDkyLCA5CiBMVEVYVCAiIiwgMTA4OCwgMTEwLCAxOCwgOTIsIDksIFNTX05PUFJFRklYIHwgV1NfR1JPVVAKIExJU1RCT1ggMTEyMSwgMTEwLCAzMiwgOTIsIDY4LCBMQlNfU1RBTkRBUkQgfCBMQlNfT1dORVJEUkFXRklYRUQgfCBMQlNfSEFTU1RSSU5HUyB8IExCU19ESVNBQkxFTk9TQ1JPTEwgfCBXU19UQUJTVE9QCiBMVEVYVCAiTGlzdGFyIEFycXVpdm9zIGRvICZUaXBvOiIsIDEwODksIDYsIDEwNCwgOTAsIDkKIENPTUJPQk9YIDExMzYsIDYsIDExNCwgOTAsIDM2LCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX0FVVE9IU0NST0xMIHwgV1NfQk9SREVSIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKIExURVhUICJEcmkmdmVzOiIsIDEwOTEsIDExMCwgMTA0LCA5MiwgOQogQ09NQk9CT1ggMTEzNywgMTEwLCAxMTQsIDkyLCA2OCwgQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19TT1JUIHwgQ0JTX0hBU1NUUklOR1MgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogREVGUFVTSEJVVFRPTiAiQWJyaXIiLCBJRE9LLCAyMDgsIDYsIDU2LCAxNCwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQ2FuY2VsYXIiLCBJRENBTkNFTCwgMjA4LCAyNCwgNTYsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkEmanVkYSIsIDEwMzgsIDIwOCwgNDYsIDU2LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiJlNvbWVudGUgTGVpdHVyYSIsIDEwNDAsIDIwOCwgNjgsIDUwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCn0KCgpTQVZFX0ZJTEUgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMzYsIDI0LCAyNzUsIDEzNApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJTYWx2YXIgQ29tbyAuLi4iCkZPTlQgOCwgIkhlbHYiCnsKIExURVhUICJOb21lIGRvICZBcnF1aXZvOiIsIDEwOTAsIDYsIDYsIDc2LCA5CiBFRElUVEVYVCAxMTUyLCA2LCAxNiwgOTAsIDEyLCBFU19BVVRPSFNDUk9MTCB8IEVTX09FTUNPTlZFUlQgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiBMSVNUQk9YIDExMjAsIDYsIDMyLCA5MCwgNjgsIExCU19TVEFOREFSRCB8IExCU19PV05FUkRSQVdGSVhFRCB8IExCU19IQVNTVFJJTkdTIHwgTEJTX0RJU0FCTEVOT1NDUk9MTCB8IFdTX1RBQlNUT1AKIExURVhUICImRGlyZXTzcmlvczoiLCAtMSwgMTEwLCA2LCA5MiwgOQogTFRFWFQgIiIsIDEwODgsIDExMCwgMTgsIDkyLCA5LCBTU19OT1BSRUZJWCB8IFdTX0dST1VQCiBMSVNUQk9YIDExMjEsIDExMCwgMzIsIDkyLCA2OCwgTEJTX1NUQU5EQVJEIHwgTEJTX09XTkVSRFJBV0ZJWEVEIHwgTEJTX0hBU1NUUklOR1MgfCBMQlNfRElTQUJMRU5PU0NST0xMIHwgV1NfVEFCU1RPUAogTFRFWFQgIkxpc3RhciBBcnF1aXZvcyBkbyAmVGlwbzoiLCAxMDg5LCA2LCAxMDQsIDkwLCA5CiBDT01CT0JPWCAxMTM2LCA2LCAxMTQsIDkwLCAzNiwgQ0JTX0RST1BET1dOTElTVCB8IENCU19BVVRPSFNDUk9MTCB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiBMVEVYVCAiRHJpJnZlczoiLCAxMDkxLCAxMTAsIDEwNCwgOTIsIDkKIENPTUJPQk9YIDExMzcsIDExMCwgMTE0LCA5MiwgNjgsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfU09SVCB8IENCU19IQVNTVFJJTkdTIHwgV1NfQk9SREVSIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKIERFRlBVU0hCVVRUT04gIlNhbHZhciAmQ29tbyIsIElET0ssIDIwOCwgNiwgNTYsIDE0LCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJDYW5jZWxhciIsIElEQ0FOQ0VMLCAyMDgsIDI0LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJkFqdWRhIiwgMTAzOCwgMjA4LCA0NiwgNTYsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICImU29tZW50ZSBMZWl0dXJhIiwgMTA0MCwgMjA4LCA2OCwgNTAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKfQoKClBSSU5UIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDM2LCAyNCwgMjY0LCAxMzQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiSW1wcmltaXIiCkZPTlQgOCwgIkhlbHYiCnsKIExURVhUICJJbXByZXNzb3JhOiIsIDEwODgsIDYsIDYsIDQwLCA5CiBMVEVYVCAiIiwgMTA4OSwgNjAsIDYsIDE1MCwgOQogR1JPVVBCT1ggIkZhaXhhIGRlIEltcHJlc3PjbyIsIDEwNzIsIDYsIDMwLCAxNjAsIDY1LCBCU19HUk9VUEJPWAogUkFESU9CVVRUT04gIiZUdWRvIiwgMTA1NiwgMTYsIDQ1LCA2MCwgMTIKIFJBRElPQlVUVE9OICJTJmVsZefjbyIsIDEwNTcsIDE2LCA2MCwgNjAsIDEyCiBSQURJT0JVVFRPTiAiJlDhZ2luYXMiLCAxMDU4LCAxNiwgNzUsIDYwLCAxMgogREVGUFVTSEJVVFRPTiAiSW1wcmltaXIiLCBJRE9LLCAyMDYsIDYsIDU2LCAxNCwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQ2FuY2VsYXIiLCBJRENBTkNFTCwgMjA2LCAyNCwgNTYsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIiZDb25maWd1cmFyIiwgMTAyNCwgMjA2LCA0NiwgNTYsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICImRGU6IiwgMTA5MCwgNjAsIDgwLCAzMCwgOQogTFRFWFQgIiZBdGU6IiwgMTA5MSwgMTIwLCA4MCwgMzAsIDkKIExURVhUICImUXVhbGlkYWRlIGRlIEltcHJlc3PjbzoiLCAxMDkyLCA2LCAxMDAsIDc2LCA5CiBDT01CT0JPWCAxMTM2LCA4MCwgMTAwLCA5MiwgNjgsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfU09SVCB8IENCU19IQVNTVFJJTkdTIHwgV1NfQk9SREVSIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJJbXByaW1pciBwYXJhIEFycXVpdm8iLCAxMDQwLCAyMCwgMTAwLCA1MCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkMmb25kZW5zYWRvIiwgMTA0MSwgMTYwLCAxMDAsIDUwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCn0KCgpQUklOVF9TRVRVUCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAzNiwgMjQsIDI2NCwgMTM0ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkNvbmZpZ3VyYef1ZXMgZGUgSW1wcmVzc+NvIgpGT05UIDgsICJIZWx2Igp7CiBHUk9VUEJPWCAiSW1wcmVzc29yYSIsIDEwNzIsIDYsIDEwLCAxODAsIDY1LCBCU19HUk9VUEJPWAogUkFESU9CVVRUT04gIiZJbXByZXNzb3JhIFBhZHLjbyIsIDEwNTYsIDE2LCAyMCwgODAsIDEyCiBMVEVYVCAiW25vbmVdIiwgMTA4OCwgMzUsIDM1LCAxMjAsIDkKIFJBRElPQlVUVE9OICJJbXByZXNzb3JhICZFc3BlY+1maWNhIiwgMTA1NywgMTYsIDUwLCA4MCwgMTIKIENPTUJPQk9YIDExMzYsIDM1LCA2NSwgMTQ5LCA2OCwgQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19TT1JUIHwgQ0JTX0hBU1NUUklOR1MgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogREVGUFVTSEJVVFRPTiAiT2siLCBJRE9LLCAyMDYsIDYsIDU2LCAxNCwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQ2FuY2VsYXIiLCBJRENBTkNFTCwgMjA2LCAyNCwgNTYsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIiZDb25maWd1cmFyIiwgMTAyNCwgMjA2LCA0NiwgNTYsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIEdST1VQQk9YICJPcmllbnRh5+NvIiwgMTA3MywgNiwgODUsIDEwMCwgNTAsIEJTX0dST1VQQk9YCiBSQURJT0JVVFRPTiAiJlJldHJhdG8iLCAxMDU4LCA1MCwgMTAwLCA0MCwgMTIKIFJBRElPQlVUVE9OICImUGFpc2FnZW0iLCAxMDU5LCA1MCwgMTE1LCA0MCwgMTIKIElDT04gIkxBTkRTQ0FQIiwgMTA5NywgMTAsIDk1LCAzMiwgMzIKIElDT04gIlBPUlRSQUlUIiwgMTA5OCwgMTAsIDk1LCAzMiwgMzIKIEdST1VQQk9YICJQYXBlbCIsIDEwNzQsIDEyMCwgODUsIDE4MCwgNTAsIEJTX0dST1VQQk9YCiBMVEVYVCAiJlRhbWFuaG8iLCAxMDg5LCAxMzAsIDk1LCAzMCwgOQogTFRFWFQgIiZGb250ZSBkZSBBbGltZW50YefjbyIsIDEwOTAsIDEzMCwgMTEwLCAzMCwgOQogQ09NQk9CT1ggMTEzNywgMTU1LCA5NSwgOTIsIDY4LCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX1NPUlQgfCBDQlNfSEFTU1RSSU5HUyB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiBDT01CT0JPWCAxMTM4LCAxNTUsIDExMCwgOTIsIDY4LCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX1NPUlQgfCBDQlNfSEFTU1RSSU5HUyB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCn0KCgpDSE9PU0VfRk9OVCBESUFMT0cgRElTQ0FSREFCTEUgIDEzLCA1NCwgMjY0LCAxNDcKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiRm9udGUiCkZPTlQgOCwgIkhlbHYiCnsKICAgIExURVhUICAgICAgICAgICAiJkZvbnRlOiIsMTA4OCAsNiwzLDQwLDkKICAgIENPTUJPQk9YICAgICAgICAxMTM2ICw2LDEzLDk0LDU0LCAgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0hBU1NUUklOR1MgfCBDQlNfRElTQUJMRU5PU0NST0xMIHwKICAgICAgICAgICAgICAgICAgICBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfU09SVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NJTVBMRQogICAgTFRFWFQgICAgICAgICAgICImRXN0aWxvIGRhIEZvbnRlOiIsMTA4OSAsMTA4LDMsNDQsOQogICAgQ09NQk9CT1ggICAgICAgIDExMzcsMTA4LDEzLDY0LDU0LCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfSEFTU1RSSU5HUyB8IENCU19ESVNBQkxFTk9TQ1JPTEwgfAogICAgICAgICAgICAgICAgICAgIFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NJTVBMRQogICAgTFRFWFQgICAgICAgICAgICImVGFtYW5obzoiLDEwOTAsMTc5LDMsMzAsOQogICAgQ09NQk9CT1ggICAgICAgIDExMzgsMTc5LDEzLDMyLDU0LCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfSEFTU1RSSU5HUyB8IENCU19ESVNBQkxFTk9TQ1JPTEwgfAogICAgICAgICAgICAgICAgICAgIFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NJTVBMRSB8IENCU19TT1JUCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDIxOCw2LDQwLDE0LFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIkNhbmNlbGFyIixJRENBTkNFTCwyMTgsMjMsNDAsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAiJkFwbGljYXIiLCAxMDI2LDIxOCw0MCw0MCwxNCxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICJBJmp1ZGEiICwgMTAzOCwyMTgsNTcsNDAsMTQsV1NfR1JPVVAKICAgIEdST1VQQk9YICAgICAgICAiRWZlaXRvcyIsMTA3Miw2LDcyLDg0LDM0LFdTX0dST1VQCiAgICBDSEVDS0JPWAkgICAgIiZSaXNjYWRvIiwgMTA0MCwgMTAsODIsNTAsMTAsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKICAgIENIRUNLQk9YIAkgICAgIiZTdWJsaW5oYWRvIiwgMTA0MSwgMTAsOTQsNTAsMTAsIEJTX0FVVE9DSEVDS0JPWCAKICAgIExURVhUICAgICAgICAgICAiJkNvcjoiLCAxMDkxICw2LDExMCwzMCw5CiAgICBDT01CT0JPWCAgICAgICAgMTEzOSw2LDEyMCw4NCwxMDAsQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19IQVNTVFJJTkdTIHwKCQkgICAgQ0JTX0FVVE9IU0NST0xMIHwgIFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBHUk9VUEJPWCAgICAgICAgIkFtb3N0cmEiLDEwNzMsOTgsNzIsMTYwLDQ5LFdTX0dST1VQCiAgICBDVEVYVCAgICAgICAgICAgIkFhQmJZeVp6IiwxMDkzLDEwNCw4MSwxNDksMzcsU1NfTk9QUkVGSVggfCBXU19WSVNJQkxFCn0KCgpDSE9PU0VfQ09MT1IgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMzYsIDI0LCAzMDAsIDE4NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJDb3IiCkZPTlQgOCwgIkhlbHYiCnsKIExURVhUICJDb3JlcyAmQuFzaWNhczoiLCAgIDEwODgsIDQsICAgIDQsICAxNDAsIDEwCiBMVEVYVCAiJkNvcmVzIGRvIFVzdeFyaW86IiwgIDEwODksIDQsICAgMTA2LCAxNDAsIDEwCiBMVEVYVCAiQ29sb3JpZG98U/NsaWQmbyIsICAxMDkwLCAxNTAsIDE1MSwgIDQ4LCAxMAogTFRFWFQgICAiVmVyJm1lbGhvOiIsIDcyNiAvKjEwOTQqLywyNDksMTI2LDI0LDEwCiBFRElUVEVYVCA3MDYsIDI3NSwxMjQsMTgsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgICAiJlZlcmRlOiIsNzI3LyoxMDk1Ki8sMjQ5LDE0MCwyNCwxMAogRURJVFRFWFQgNzA3LCAyNzUsMTM4LDE4LDEyLCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICAgIkEmenVsOiIsNzI4IC8qMTA5NiovLDI0OSwxNTQsMjQsMTAKIEVESVRURVhUIDcwOCwgMjc1LDE1MiwxOCwxMiwgV1NfQk9SREVSIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBMVEVYVCAgIk1hdCZpejoiICw3MjMgLyoxMDkxKi8sMjAyLDEyNiwyMiwxMAogRURJVFRFWFQgNzAzLCAyMjYsMTI0LDE4LDEyLCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICAiU2EmdDoiICw3MjQgLyoxMDkyKi8sMjAyLDE0MCwyMiwxMAogRURJVFRFWFQgNzA0LCAyMjYsMTM4LDE4LDEyLCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICAiJkx1bToiICw3MjUgLyoxMDkzKi8sMjAyLDE1NCwyMiwxMAogRURJVFRFWFQgNzA1LCAyMjYsMTUyLDE4LDEyLCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIENPTlRST0wgIiIgLDcyMCwiU1RBVElDIixTU19TSU1QTEV8V1NfVEFCU1RPUHxXU19HUk9VUCw0LDE0LDE0MCw4NgogQ09OVFJPTCAiIiAsNzIxLCJTVEFUSUMiLFNTX1NJTVBMRXxXU19UQUJTVE9QfFdTX0dST1VQLDQsMTE2LDE0MCwyOAogQ09OVFJPTCAiIiAsNzEwLCJTVEFUSUMiLFdTX0JPUkRFUnxTU19TSU1QTEV8V1NfVEFCU1RPUHxXU19HUk9VUCwgMTUyLDQsMTE4LDExNgogQ09OVFJPTCAiIiAsNzAyLCJTVEFUSUMiLFNTX1NJTVBMRXxXU19UQUJTVE9QfFdTX0dST1VQLCAyNzgsNCw4LDExNgogQ09OVFJPTCAiIiAsNzA5LCJTVEFUSUMiLFNTX1NJTVBMRXxXU19UQUJTVE9QfFdTX0dST1VQLCAxNTIsMTI0LDQwLDI2CiBERUZQVVNIQlVUVE9OICJPayIsICBJRE9LLCAgNCwgMTY2LCA0NCwgMTQsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkNhbmNlbGFyIiwgSURDQU5DRUwsIDUyLCAxNjYsIDQ0LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJBaiZ1ZGEiLCAxMDM4LDEwMCwxNjYsIDQ0LCAxNAogUFVTSEJVVFRPTiAiJkFkaWNpb25hciBDb3IiLCAgICA3MTIvKjEwMjQqLywgMTUyLCAxNjYsIDE0MiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJkRlZmluaXIgQ29yZXMgUGVyc29uYWxpemFkYXMgPj4iLCA3MTkvKjEwMjUqLywgICA0LCAxNTAsIDE0MiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAgIiZvIiw3MTMsMzAwLDIwMCw0LDE0ICAgLyoganVzdCBhIGR1bW15OiAgJ28nIGlzICBsaWtlICAmbyAgaW4gInNvbGlkJm8iICAqLwp9CgoKRklORERMR09SRCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAzNiwgMjQsIDIzNiwgNjIKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiUHJvY3VyYXIiCkZPTlQgOCwgIkhlbHYiCnsKIExURVhUICImUHJvY3VyYXI6IiwgLTEsIDQsIDgsIDQyLCA4CiBFRElUVEVYVCAxMTUyLCA0NywgNywgMTI4LCAxMiwgRVNfQVVUT0hTQ1JPTEwgfCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJQYWxhdnJhICZJbnRlaXJhIiwgMTA0MCwgNCwgMjYsIDEwMCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIiZNYWn6c2N1bGFzL21pbnVzY3VsYXMiLCAxMDQxLCA0LCA0MiwgNjQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBHUk9VUEJPWCAiRGlyZefjbyIsIDEwNzIsIDEwNywgMjYsIDY4LCAyOAogQ09OVFJPTCAiQSZjaW1hIiwgMTA1NiwgIkJVVFRPTiIsIEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUCwgMTExLCAzOCwgMjAsIDEyCiBDT05UUk9MICJBJmJhaXhvIiwgMTA1NywgIkJVVFRPTiIsIEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX1RBQlNUT1AsIDEzOCwgMzgsIDMwLCAxMgoKIERFRlBVU0hCVVRUT04gIlByb2N1cmFyIGEgUHLzJnhpbWEiLCBJRE9LLCAxODIsIDUsIDUwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJDYW5jZWxhciIsIElEQ0FOQ0VMLCAxODIsIDIzLCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQSZqdWRhIiwgMTAzOCwgMTgyLCA0NSwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKfQoKClJFUExBQ0VETEdPUkQgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMzYsIDI0LCAyMzAsIDk0ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkFsdGVyYXIiCkZPTlQgOCwgIkhlbHYiCnsKIExURVhUICImUHJvY3VyYXI6IiwgLTEsIDQsIDksIDQ4LCA4CiBFRElUVEVYVCAxMTUyLCA1NCwgNywgMTE0LCAxMiwgRVNfQVVUT0hTQ1JPTEwgfCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICJBbHRlcmFyIFBhJnJhOiIsIC0xLCA0LCAyNiwgNDgsIDgKIEVESVRURVhUIDExNTMsIDU0LCAyNCwgMTE0LCAxMiwgRVNfQVVUT0hTQ1JPTEwgfCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJQYWxhdnJhICZpbnRlaXJhIiwgMTA0MCwgNSwgNDYsIDEwNCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIiZNYWn6c2N1bGFzL21pbvpzY3VsYXMiLCAxMDQxLCA1LCA2MiwgNTksIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCgogREVGUFVTSEJVVFRPTiAiUHJvY3VyYXIgYSBQcvMmeGltYSIsIElET0ssCTE3NCwgIDQsIDUwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QIHwgQlNfREVGUFVTSEJVVFRPTgogUFVTSEJVVFRPTiAiJkFsdGVyYXIiLCBwc2gxLAkJCTE3NCwgMjEsIDUwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJBbHRlcmFyICZUb2RhcyIsIHBzaDIsCQkxNzQsIDM4LCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQ2FuY2VsYXIiLCBJRENBTkNFTCwJCTE3NCwgNTUsIDUwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJBJmp1ZGEiLCBwc2hIZWxwLAkJCTE3NCwgNzUsIDUwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCn0KCgpQUklOVDMyIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFICAzMiwgMzIsIDI4OCwgMTg2ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVSB8CiAgICAgIERTX0NPTlRFWFRIRUxQIHwgRFNfM0RMT09LCkNBUFRJT04gIlByaW50MzIiCkZPTlQgOCwgIkhlbHYiCnsKICAgIERFRlBVU0hCVVRUT04gICAiT0siLAlJRE9LLCAgICAgMTgwLDE2NCwgNDgsMTQsIFdTX0dST1VQIHwgQlNfREVGUFVTSEJVVFRPTgogICAgUFVTSEJVVFRPTgkgICAgIkNhbmNlbGFyIiwJSURDQU5DRUwsIDIzMiwxNjQsIDQ4LDE0LCBXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICImQWp1ZGEiLCAgIHBzaEhlbHAsICA1MCwgMTYxLCA0OCwxNCwgV1NfR1JPVVAKICAgIAogICAgR1JPVVBCT1ggICAgICAgICJJbXByZXNzb3JhIiwJCWdycDQsICAgOCwgIDQsIDI3Miw4NCwgV1NfR1JPVVAKICAgIENPTlRST0wgICAgICAgICAiSW1wcmltaXIgZW0gYXJxdWkmdm8iLAljaHgxLCAiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsMjEyLDcwLDY0LDEyCiAgICBQVVNIQlVUVE9OICAgICAgIlByb3ByaSZlZGFkZXMiLAkJcHNoMiwgMjEyLCAxNywgIDYwLDE0LCBXU19HUk9VUAogICAgTFRFWFQgICAgICAgICAgICImTm9tZToiLAkJCXN0YzYsICAxNiwgMjAsICAzNiw4CiAgICBDT01CT0JPWAkJCQkJY21iNCwgIDUyLCAxOCwgMTUyLDE1MixDQlNfRFJPUERPV05MSVNUIHwgQ0JTX1NPUlQgfCBXU19WU0NST0xMIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIlN0YXR1czoiLAkJCXN0YzgsICAxNiwgMzYsICAzNiwxMCwgU1NfTk9QUkVGSVgKICAgIExURVhUICAgICAgICAgICAiRHVtbXkgU3RhdGUiLAkJc3RjMTIsIDUyLCAzNiwgMjI0LDEwLCBTU19OT1BSRUZJWCB8IFNTX0xFRlROT1dPUkRXUkFQCiAgICBMVEVYVCAgICAgICAgICAgIlRpcG86IiwJCQlzdGM3LCAgMTYsIDQ4LCAgMzYsMTAsIFNTX05PUFJFRklYCiAgICBMVEVYVCAgICAgICAgICAgIkR1bW15IFR5cGUiLAkJc3RjMTEsIDUyLCA0OCwgMjI0LDEwLCBTU19OT1BSRUZJWCB8IFNTX0xFRlROT1dPUkRXUkFQCiAgICBMVEVYVCAgICAgICAgICAgIk9uZGU6IiwJCQlzdGMxMCwgMTYsIDYwLCAgMzYsMTAsIFNTX05PUFJFRklYCiAgICBMVEVYVCAgICAgICAgICAgIkR1bW15IExvY2F0aW9uIiwJCXN0YzE0LCA1MiwgNjAsIDIyNCwxMCwgU1NfTk9QUkVGSVggfCBTU19MRUZUTk9XT1JEV1JBUAogICAgTFRFWFQgICAgICAgICAgICJDb21lbnThcmlvOiIsCQlzdGM5LCAgMTYsIDcyLCAgMzYsMTAsIFNTX05PUFJFRklYCiAgICBMVEVYVCAgICAgICAgICAgIkR1bW15IFJlbWFyayIsCQlzdGMxMywgNTIsIDcyLCAxNTIsMTAsIFNTX05PUFJFRklYIHwgU1NfTEVGVE5PV09SRFdSQVAKICAgIAogICAgR1JPVVBCT1ggICAgICAgICJD83BpYXMiLAkJCWdycDIsIDE2MCwgOTIsIDEyMCw2NCwgV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiTvptZXJvIGRlICZj83BpYXM6IiwJc3RjNSwgMTY4LDEwOCwgIDY4LCA4CiAgICBJQ09OICAgICAgICAgICAgIiIsCQkJCWljbzMsIDE2MiwxMjQsICA3NiwyNCwgV1NfR1JPVVAgfCBTU19DRU5URVJJTUFHRQogICAgQ09OVFJPTCAgICAgICAgICImQWdydXBhciIsCQkJY2h4MiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsMjQwLDEzMCwzNiwxMgogICAgRURJVFRFWFQJCQkJCWVkdDMsIDI0MCwxMDYsICAzMiwxMiwgV1NfR1JPVVAgfCBFU19OVU1CRVIKICAgIAogICAgR1JPVVBCT1ggICAgICAgICJGYWl4YSBkZSBpbXByZXNz428iLAlncnAxLCAgIDgsOTIsICAxNDQsNjQsIFdTX0dST1VQCiAgICBDT05UUk9MICAgICAgICAgIiZUb2RvcyIsCQkJcmFkMSwiQnV0dG9uIixCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsMTYsMTA2LDY0LDEyCiAgICBDT05UUk9MICAgICAgICAgIlDhJmdpbmFzIiwJCQlyYWQzLCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiwxNiwxMjIsMzYsMTIKICAgIENPTlRST0wgICAgICAgICAiU2VsZefjbyIsCQkJcmFkMiwiQnV0dG9uIixCU19BVVRPUkFESU9CVVRUT04sMTYsMTM4LDY0LDEyCiAgICBFRElUVEVYVAkJCQkJZWR0MSwgIDc0LDEyMiwgIDI2LDEyLCBXU19HUk9VUCB8IEVTX05VTUJFUgogICAgRURJVFRFWFQJCQkJCWVkdDIsIDExOCwxMjIsICAyNiwxMiwgV1NfR1JPVVAgfCBFU19OVU1CRVIKICAgIFJURVhUICAgICAgICAgICAiJmRlOiIsCQkJc3RjMiwgIDUyLDEyNCwgIDIwLDgKICAgIFJURVhUICAgICAgICAgICAiJmF06ToiLAkJCXN0YzMsIDEwMCwxMjQsICAxNiw4Cn0KClBSSU5UMzJfU0VUVVAgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgIDMyLCAzMiwgMjg4LCAxNzgKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VIHwKICAgICAgRFNfQ09OVEVYVEhFTFAgfCBEU18zRExPT0sKQ0FQVElPTiAiUHJpbnQzMiBTZXR1cCIKRk9OVCA4LCAiSGVsdiIKQkVHSU4KICAgIERFRlBVU0hCVVRUT04gICAiT0siLAlJRE9LLDE4MCwxNTYsNDgsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAiQ2FuY2VsYXIiLAlJRENBTkNFTCwyMzIsMTU2LDQ4LDE0Ci8qICAgIFBVU0hCVVRUT04gICAgICAiUmVkZS4uLiIsCXBzaDUsIDI4NCwxNTYsNDgsMTQgKi8KCiAgICBHUk9VUEJPWAkiSW1wcmVzc29yYSIsICAgICBncnA0LCAgIDgsICAgNCwgMjcyLCAgODQsIFdTX0dST1VQCiAgICBQVVNIQlVUVE9OCSImUHJvcHJpZWRhZGVzIiwgIHBzaDIsIDIxMiwgIDE3LCAgNjAsICAxNCwgV1NfR1JPVVAKICAgIExURVhUCSImTm9tZToiLCAgICAgICAgIHN0YzYsICAxNiwgIDIwLCAgMzYsICAgOAogICAgQ09NQk9CT1gJCQkgIGNtYjEsICA1MiwgIDE4LCAxNTIsIDE1MiwgQ0JTX0RST1BET1dOTElTVCB8IENCU19TT1JUIHwgV1NfVlNDUk9MTCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgTFRFWFQJIlN0YXR1czoiLCAgICAgICAgc3RjOCwgIDE2LCAgMzYsICAzNiwgIDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQJIkR1bW15IFN0YXRlIiwgICAgc3RjMTIsIDUyLCAgMzYsIDIyNCwgIDEwLCBTU19OT1BSRUZJWCB8IFNTX0xFRlROT1dPUkRXUkFQCiAgICBMVEVYVAkiVGlwbzoiLCAgICAgICAgICBzdGM3LCAgMTYsICA0OCwgIDM2LCAgMTAsIFNTX05PUFJFRklYCiAgICBMVEVYVAkiRHVtbXkgVHlwZSIsICAgICBzdGMxMSwgNTIsICA0OCwgMjI0LCAgMTAsIFNTX05PUFJFRklYIHwgU1NfTEVGVE5PV09SRFdSQVAKICAgIExURVhUCSJPbmRlOiIsICAgICAgICAgIHN0YzEwLCAxNiwgIDYwLCAgMzYsICAxMCwgU1NfTk9QUkVGSVgKICAgIExURVhUCSJEdW1teSBMb2NhdGlvbiIsIHN0YzE0LCA1MiwgIDYwLCAyMjQsICAxMCwgU1NfTk9QUkVGSVggfCBTU19MRUZUTk9XT1JEV1JBUAogICAgTFRFWFQJIkNvbWVudOFyaW8iLCAgICAgc3RjOSwgIDE2LCAgNzIsICAzNiwgIDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQJIkR1bW15IFJlbWFyayIsICAgc3RjMTMsIDUyLCAgNzIsIDIyNCwgIDEwLCBTU19OT1BSRUZJWCB8IFNTX0xFRlROT1dPUkRXUkFQCgogICAgR1JPVVBCT1gJIlBhcGVsIiwgICAgICAgICAgZ3JwMiwgICA4LCAgOTIsIDE2NCwgIDU2LCBXU19HUk9VUAogICAgTFRFWFQgICAgICAgIiZUYW1hbmhvOiIsICAgICAgc3RjMiwgIDE2LCAxMDgsICAzNiwgICA4CiAgICBDT01CT0JPWCAgICAgICAgICAgICAgICAgICAgICBjbWIyLCAgNTIsIDEwNiwgMTEyLCAxMTIsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfU09SVCB8IFdTX1ZTQ1JPTEwgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIExURVhUCSImT3JpZ2VtOiIsICAgICAgIHN0YzMsICAxNiwgMTI4LCAgMzYsICAgOAogICAgQ09NQk9CT1ggICAgICAgICAgICAgICAgICAgICAgY21iMywgIDUyLCAxMjYsIDExMiwgMTEyLCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX1NPUlQgfCBXU19WU0NST0xMIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCgogICAgR1JPVVBCT1gJIk9yaWVudGHn428iLCAgICAgZ3JwMSwgMTgwLCAgOTIsIDEwMCwgIDU2LCBXU19HUk9VUAogICAgSUNPTgkiIiwgICAgICAgICAgICAgICBpY28xLCAxOTUsIDExMiwgIDE4LCAgMjAsIFdTX0dST1VQCiAgICBDT05UUk9MICAgICAiJlJldHJhdG8iLCAgICAgICByYWQxLCAiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLCAyMjQsIDEwNiwgNTIsIDEyCiAgICBDT05UUk9MCSImUGFpc2FnZW0iLCAgICAgIHJhZDIsICJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sIDIyNCwgMTI2LCA1MiwgMTIKRU5ECgpORVdGSUxFT1BFTk9SRCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAwLCAwLCAyODAsIDE2NApTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfQ09OVEVYVEhFTFAgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIk9wZW4iCkZPTlQgOCwgImhlbHYiCnsKICAgIExURVhUCSJPbGhhciAmZW0iLElEQ19MT09LSU5TVEFUSUMsNyw2LDI3LDgsIFNTX05PVElGWQogICAgQ09NQk9CT1gJSURDX0xPT0tJTiwzNiwzLDEzOCwzMDAsQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19IQVNTVFJJTkdTIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIAogICAgTFRFWFQJIiIgLCBJRENfVE9PTEJBUlNUQVRJQywgMTcyLCAyLCAxMDIsIDE3LCBOT1QgV1NfR1JPVVAgfCBOT1QgV1NfVklTSUJMRQogICAgTElTVEJPWAlJRENfU0hFTExTVEFUSUMsNCwyMCwyNzIsODUsIExCU19TT1JUIHwgTEJTX05PSU5URUdSQUxIRUlHSFQgfCBMQlNfTVVMVElDT0xVTU4gfCBXU19IU0NST0xMIHwgTk9UIFdTX1ZJU0lCTEUKICAgIAogICAgTFRFWFQJIk5vbWUgZG8gJmFycXVpdm86IixJRENfRklMRU5BTUVTVEFUSUMsNSwxMTIsNDgsOCwgU1NfTk9USUZZCiAgICBFRElUVEVYVAlJRENfRklMRU5BTUUsNTQsMTExLDE1NSwxMixFU19BVVRPSFNDUk9MTAogICAgCiAgICBMVEVYVAkiQXJxdWl2b3MgZG8gJnRpcG8iLElEQ19GSUxFVFlQRVNUQVRJQyw1LDEzMSw0OCw4LCBTU19OT1RJRlkKICAgIENPTUJPQk9YCUlEQ19GSUxFVFlQRSw1NCwxMjksMTU1LDEwMCxDQlNfRFJPUERPV04gfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgCiAgICBDT05UUk9MCSJBYnJpciBjb21vICZzb21lbnRlLWxlaXR1cmEiLElEQ19PUEVOUkVBRE9OTFksIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw1NCwxNDgsNzQsMTAKICAgIAogICAgREVGUFVTSEJVVFRPTgkiJkFicmlyIiwJCUlET0ssMjIyLDExMCw1MCwxMwogICAgUFVTSEJVVFRPTgkJIkNhbmNlbCIsCQlJRENBTkNFTCwyMjIsMTI4LDUwLDE0CiAgICBQVVNIQlVUVE9OCQkiJkhlbHAiLAkJcHNoSGVscCwyMjIsMTQ1LDUwLDE0Cn0KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKICAgIElEU19BQk9VVEJPWAkiJlNvYnJlIEZvbGRlclBpY2tlciBUZXh0IgogICAgSURTX0RPQ1VNRU5URk9MREVSUwkiUGFzdGFzIGRlIERvY3VtZW50b3MiCiAgICBJRFNfUEVSU09OQUwJIk1ldXMgRG9jdW1lbnRvcyIKICAgIElEU19GQVZPUklURVMJIkZhdm9yaXRvcyIKICAgIElEU19QQVRICQkiQ2FtaW5obyBkbyBTaXN0ZW1hIgogICAgSURTX0RFU0tUT1AJCSLBcmVhIGRlIFRyYWJhbGhvIgogICAgSURTX0ZPTlRTCQkiRm9udHMiCiAgICBJRFNfTVlDT01QVVRFUgkiTWV1IENvbXB1dGFkb3IiCn0KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKICAgIElEU19TWVNURU1GT0xERVJTCSJQYXN0YXMgZG8gU2lzdGVtYSIKICAgIElEU19MT0NBTEhBUkRSSVZFUwkiRGlzY29zIFLtZ2lkb3MgTG9jYWlzIgogICAgSURTX0ZJTEVOT1RGT1VORAkiQXJxdWl2byBu428gZW5jb250cmFkbyIKICAgIElEU19WRVJJRllGSUxFCSJQb3IgZmF2b3IgdmVyaWZpcXVlIHNlIGZvaSBmb3JuZWNpZG8gbyBub21lIGNvcnJldG8gZG8gYXJxdWl2byIKICAgIElEU19DUkVBVEVGSUxFCSJBcnF1aXZvIG7jbyBleGlzdGVcblZvY+ogZ29zdGFyaWEgZGUgY3JpYS1sbyIKCn0KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKICAgIFBEMzJfUFJJTlRfVElUTEUJCQkJIlByaW50IgogICAgCiAgICBQRDMyX1ZBTFVFX1VSRUFEQUJMRQkJCSJFbnRyYWRhIElsZWftdmVsIgogICAgUEQzMl9JTlZBTElEX1BBR0VfUkFOR0UJCQkiRXN0ZSB2YWxvciBu428gc2UgZW5jYWl4YSBuYSBmYWl4YSBkZSBw4WdpbmFzXG5cClBvciBmYXZvciBlbnRyZSB1bSB2YWxvciBlbnRyZSAlZCBlICVkIgogICAgUEQzMl9GUk9NX05PVF9BQk9WRV9UTwkJCSJBIGVudHJhZGEgREUgbuNvIHBvZGUgZXhjZWRlciBBVMk6IgogICAgUEQzMl9NQVJHSU5TX09WRVJMQVAJCQkiQXMgbWFyZ2VucyBlc3TjbyBmb3JhIGRhcyBtZWRpZGFzIFwKZG8gcGFwZWwuXG5Qb3IgZmF2b3IgcmVlbnRyZSBhcyBtYXJnZW5zIgogICAgUEQzMl9OUl9PRl9DT1BJRVNfRU1QVFkJCQkiTyBu+m1lcm8gZGUgY/NwaWFzIG7jbyBwb2RlIHRlciB2YWxvciB2YXppbyIKICAgIFBEMzJfVE9PX0xBUkdFX0NPUElFUwkJCSJFc3RhIHF1YW50aWRhZGUgZGUgaW1wcmVzc+NvIG7jbyDpIHN1cG9ydGFkYSBcCnBlbGEgc3VhIGltcHJlc3NvcmEuXG5Qb3IgZmF2b3IgZW50cmUgdW0gdmFsb3IgZW50cmUgMSBlICVkIgogICAgUEQzMl9QUklOVF9FUlJPUgkJCQkiT2NvcnJldSB1bSBlcnJvIGRlIGltcHJlc3PjbyIKICAgIFBEMzJfTk9fREVGQVVMVF9QUklOVEVSCQkJIk7jbyBleGlzdGUgdW1hIGltcHJlc3NvcmEgcGFkcuNvIgogICAgUEQzMl9DQU5UX0ZJTkRfUFJJTlRFUgkJCSJO43AgcHVkZSBlbmNvbnRyYXIgdW1hIGltcHJlc3NvcmEiCiAgICBQRDMyX09VVF9PRl9NRU1PUlkJCQkJIk1lbfNyaWEgaW5zdWxmaWNpZW50ZSIKICAgIFBEMzJfR0VORVJJQ19FUlJPUgkJCQkiT2NvcnJldSBhbGd1bSBlcnJvIgogICAgUEQzMl9EUklWRVJfVU5LTk9XTgkJCQkiRHJpdmVyIGRlIGltcHJlc3NvcmEgZGVzY29uaGVjaWRvIgogICAgCiAgICBQRDMyX0RFRkFVTFRfUFJJTlRFUgkJCSJJbXByZXNzb3JhIFBhZHLjbzsgIgogICAgUEQzMl9OUl9PRl9ET0NVTUVOVFNfSU5fUVVFVUUJCSJFeGlzdGVtICVkIGRvY3VtZW50b3MgbmEgZmlsYSIKICAgIFBEMzJfUFJJTlRfQUxMX1hfUEFHRVMJCQkiJlRvZGFzICVkIHDhZ2luYXMiCiAgICBQRDMyX01BUkdJTlNfSU5fSU5DSEVTCQkJIk1hcmdlbnMgW3BvbGVnYWRhc10iCiAgICBQRDMyX01BUkdJTlNfSU5fTUlMSU1FVEVSUwkJCSJNYXJnZW5zIFttbV0iCiAgICBQRDMyX01JTElNRVRFUlMJCQkJIm1tIgogICAgCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1JFQURZCQkJIlByb250byIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfUEFVU0VECQkJIlBhdXNhZG87ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfRVJST1IJCQkiRXJybzsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19QRU5ESU5HX0RFTEVUSU9OCSJFeGNsdXPjbyBwZW5kZW50ZTsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19QQVBFUl9KQU0JCSJQYXBlbCBhdG9sYWRvOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1BBUEVSX09VVAkJIlNlbSBwYXBlbDsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19NQU5VQUxfRkVFRAkJIkNhcnJlZ3VlIHBhcGVsIG1hbnVhbG1lbnRlOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1BBUEVSX1BST0JMRU0JCSJQcm9ibGVtYXMgY29tIG8gcGFwZWw7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfT0ZGTElORQkJCSJJbXByZXNzb3JhIGRlc2xpZ2FkYTsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19JT19BQ1RJVkUJCSJFL1MgQXRpdm87ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfQlVTWQkJCSJPY3VwYWRvOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1BSSU5USU5HCQkiSW1wcmltaW5kbzsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19PVVRQVVRfQklOX0ZVTEwJCSJGaWxhIGRlIGltcHJlc3PjbyBlc3ThIGNoZWlhOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX05PVF9BVkFJTEFCTEUJCSJO428gZGlzcG9u7XZlbDsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19XQUlUSU5HCQkJIkVzcGVyYW5kbzsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19QUk9DRVNTSU5HCQkiUHJvY2Vzc2FuZG87ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfSU5JVElBTElaSU5HCQkiSW5pY2lhbGl6YW5kbzsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19XQVJNSU5HX1VQCQkiQXF1ZWNlbmRvOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1RPTkVSX0xPVwkJIlBvdWNvIHRvbmVyOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX05PX1RPTkVSCQkiU2VtIHRvbmVyOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1BBR0VfUFVOVAkJIlBhZ2UgcHVudDsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19VU0VSX0lOVEVSVkVOVElPTgkiSW50ZXJyb21waWRvIHBlbG8gdXN14XJpbzsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19PVVRfT0ZfTUVNT1JZCQkiTWVt83JpYSBpbnN1bGZpY2llbnRlOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX0RPT1JfT1BFTgkJIkEgaW1wcmVzc29yYSBlc3ThIGFiZXJ0YTsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19TRVJWRVJfVU5LTk9XTgkJIlNlcnZpZG9yIGRlIGltcHJlc3PjbyBkZXNjb25oZWNpZG87ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfUE9XRVJfU0FWRQkJIk1vZG8gZWNvbvRtaWNvOyAiCn0K