LyoKICogQ29weXJpZ2h0IDE5OTcgUmljYXJkbyBSLiBNYXNzYXJvCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfUE9SVFVHVUVTRSwgU1VCTEFOR19ERUZBVUxUCgpPUEVOX0ZJTEUgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMzYsIDI0LCAyNzUsIDEzNApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJBYnJpciIKRk9OVCA4LCAiSGVsdiIKewogTFRFWFQgIk5vbWUgZG8gJkFycXVpdm86IiwgMTA5MCwgNiwgNiwgNzYsIDkKIEVESVRURVhUIDExNTIsIDYsIDE2LCA5MCwgMTIsIEVTX0FVVE9IU0NST0xMIHwgRVNfT0VNQ09OVkVSVCB8IFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKIExJU1RCT1ggMTEyMCwgNiwgMzIsIDkwLCA2OCwgTEJTX1NUQU5EQVJEIHwgTEJTX09XTkVSRFJBV0ZJWEVEIHwgTEJTX0hBU1NUUklOR1MgfCBMQlNfRElTQUJMRU5PU0NST0xMIHwgV1NfVEFCU1RPUAogTFRFWFQgIiZEaXJldPNyaW9zOiIsIC0xLCAxMTAsIDYsIDkyLCA5CiBMVEVYVCAiIiwgMTA4OCwgMTEwLCAxOCwgOTIsIDksIFNTX05PUFJFRklYIHwgV1NfR1JPVVAKIExJU1RCT1ggMTEyMSwgMTEwLCAzMiwgOTIsIDY4LCBMQlNfU1RBTkRBUkQgfCBMQlNfT1dORVJEUkFXRklYRUQgfCBMQlNfSEFTU1RSSU5HUyB8IExCU19ESVNBQkxFTk9TQ1JPTEwgfCBXU19UQUJTVE9QCiBMVEVYVCAiTGlzdGFyIEFycXVpdm9zIGRvICZUaXBvOiIsIDEwODksIDYsIDEwNCwgOTAsIDkKIENPTUJPQk9YIDExMzYsIDYsIDExNCwgOTAsIDM2LCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX0FVVE9IU0NST0xMIHwgV1NfQk9SREVSIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKIExURVhUICJEcmkmdmVzOiIsIDEwOTEsIDExMCwgMTA0LCA5MiwgOQogQ09NQk9CT1ggMTEzNywgMTEwLCAxMTQsIDkyLCA2OCwgQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19TT1JUIHwgQ0JTX0hBU1NUUklOR1MgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogREVGUFVTSEJVVFRPTiAiQWJyaXIiLCBJRE9LLCAyMDgsIDYsIDU2LCAxNCwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQ2FuY2VsYXIiLCBJRENBTkNFTCwgMjA4LCAyNCwgNTYsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkEmanVkYSIsIDEwMzgsIDIwOCwgNDYsIDU2LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiJlNvbWVudGUgTGVpdHVyYSIsIDEwNDAsIDIwOCwgNjgsIDUwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCn0KCgpTQVZFX0ZJTEUgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMzYsIDI0LCAyNzUsIDEzNApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJTYWx2YXIgQ29tbyAuLi4iCkZPTlQgOCwgIkhlbHYiCnsKIExURVhUICJOb21lIGRvICZBcnF1aXZvOiIsIDEwOTAsIDYsIDYsIDc2LCA5CiBFRElUVEVYVCAxMTUyLCA2LCAxNiwgOTAsIDEyLCBFU19BVVRPSFNDUk9MTCB8IEVTX09FTUNPTlZFUlQgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiBMSVNUQk9YIDExMjAsIDYsIDMyLCA5MCwgNjgsIExCU19TVEFOREFSRCB8IExCU19PV05FUkRSQVdGSVhFRCB8IExCU19IQVNTVFJJTkdTIHwgTEJTX0RJU0FCTEVOT1NDUk9MTCB8IFdTX1RBQlNUT1AKIExURVhUICImRGlyZXTzcmlvczoiLCAtMSwgMTEwLCA2LCA5MiwgOQogTFRFWFQgIiIsIDEwODgsIDExMCwgMTgsIDkyLCA5LCBTU19OT1BSRUZJWCB8IFdTX0dST1VQCiBMSVNUQk9YIDExMjEsIDExMCwgMzIsIDkyLCA2OCwgTEJTX1NUQU5EQVJEIHwgTEJTX09XTkVSRFJBV0ZJWEVEIHwgTEJTX0hBU1NUUklOR1MgfCBMQlNfRElTQUJMRU5PU0NST0xMIHwgV1NfVEFCU1RPUAogTFRFWFQgIkxpc3RhciBBcnF1aXZvcyBkbyAmVGlwbzoiLCAxMDg5LCA2LCAxMDQsIDkwLCA5CiBDT01CT0JPWCAxMTM2LCA2LCAxMTQsIDkwLCAzNiwgQ0JTX0RST1BET1dOTElTVCB8IENCU19BVVRPSFNDUk9MTCB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiBMVEVYVCAiRHJpJnZlczoiLCAxMDkxLCAxMTAsIDEwNCwgOTIsIDkKIENPTUJPQk9YIDExMzcsIDExMCwgMTE0LCA5MiwgNjgsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfU09SVCB8IENCU19IQVNTVFJJTkdTIHwgV1NfQk9SREVSIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKIERFRlBVU0hCVVRUT04gIlNhbHZhciAmQ29tbyIsIElET0ssIDIwOCwgNiwgNTYsIDE0LCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJDYW5jZWxhciIsIElEQ0FOQ0VMLCAyMDgsIDI0LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJkFqdWRhIiwgMTAzOCwgMjA4LCA0NiwgNTYsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICImU29tZW50ZSBMZWl0dXJhIiwgMTA0MCwgMjA4LCA2OCwgNTAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKfQoKClBSSU5UIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDM2LCAyNCwgMjY0LCAxMzQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiSW1wcmltaXIiCkZPTlQgOCwgIkhlbHYiCnsKIExURVhUICJJbXByZXNzb3JhOiIsIDEwODgsIDYsIDYsIDQwLCA5CiBMVEVYVCAiIiwgMTA4OSwgNjAsIDYsIDE1MCwgOQogR1JPVVBCT1ggIkZhaXhhIGRlIEltcHJlc3PjbyIsIDEwNzIsIDYsIDMwLCAxNjAsIDY1LCBCU19HUk9VUEJPWAogUkFESU9CVVRUT04gIiZUdWRvIiwgMTA1NiwgMTYsIDQ1LCA2MCwgMTIKIFJBRElPQlVUVE9OICJTJmVsZefjbyIsIDEwNTcsIDE2LCA2MCwgNjAsIDEyCiBSQURJT0JVVFRPTiAiJlDhZ2luYXMiLCAxMDU4LCAxNiwgNzUsIDYwLCAxMgogREVGUFVTSEJVVFRPTiAiSW1wcmltaXIiLCBJRE9LLCAyMDYsIDYsIDU2LCAxNCwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQ2FuY2VsYXIiLCBJRENBTkNFTCwgMjA2LCAyNCwgNTYsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIiZDb25maWd1cmFyIiwgMTAyNCwgMjA2LCA0NiwgNTYsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICImRGU6IiwgMTA5MCwgNjAsIDgwLCAzMCwgOQogTFRFWFQgIiZBdGU6IiwgMTA5MSwgMTIwLCA4MCwgMzAsIDkKIExURVhUICImUXVhbGlkYWRlIGRlIEltcHJlc3PjbzoiLCAxMDkyLCA2LCAxMDAsIDc2LCA5CiBDT01CT0JPWCAxMTM2LCA4MCwgMTAwLCA5MiwgNjgsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfU09SVCB8IENCU19IQVNTVFJJTkdTIHwgV1NfQk9SREVSIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJJbXByaW1pciBwYXJhIEFycXVpdm8iLCAxMDQwLCAyMCwgMTAwLCA1MCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkMmb25kZW5zYWRvIiwgMTA0MSwgMTYwLCAxMDAsIDUwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCn0KCgpQUklOVF9TRVRVUCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAzNiwgMjQsIDI2NCwgMTM0ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkNvbmZpZ3VyYef1ZXMgZGUgSW1wcmVzc+NvIgpGT05UIDgsICJIZWx2Igp7CiBHUk9VUEJPWCAiSW1wcmVzc29yYSIsIDEwNzIsIDYsIDEwLCAxODAsIDY1LCBCU19HUk9VUEJPWAogUkFESU9CVVRUT04gIiZJbXByZXNzb3JhIFBhZHLjbyIsIDEwNTYsIDE2LCAyMCwgODAsIDEyCiBMVEVYVCAiW25vbmVdIiwgMTA4OCwgMzUsIDM1LCAxMjAsIDkKIFJBRElPQlVUVE9OICJJbXByZXNzb3JhICZFc3BlY+1maWNhIiwgMTA1NywgMTYsIDUwLCA4MCwgMTIKIENPTUJPQk9YIDExMzYsIDM1LCA2NSwgMTQ5LCA2OCwgQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19TT1JUIHwgQ0JTX0hBU1NUUklOR1MgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogREVGUFVTSEJVVFRPTiAiT2siLCBJRE9LLCAyMDYsIDYsIDU2LCAxNCwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQ2FuY2VsYXIiLCBJRENBTkNFTCwgMjA2LCAyNCwgNTYsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIiZDb25maWd1cmFyIiwgMTAyNCwgMjA2LCA0NiwgNTYsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIEdST1VQQk9YICJPcmllbnRh5+NvIiwgMTA3MywgNiwgODUsIDEwMCwgNTAsIEJTX0dST1VQQk9YCiBSQURJT0JVVFRPTiAiJlJldHJhdG8iLCAxMDU4LCA1MCwgMTAwLCA0MCwgMTIKIFJBRElPQlVUVE9OICImUGFpc2FnZW0iLCAxMDU5LCA1MCwgMTE1LCA0MCwgMTIKIElDT04gIkxBTkRTQ0FQIiwgMTA5NywgMTAsIDk1LCAzMiwgMzIKIElDT04gIlBPUlRSQUlUIiwgMTA5OCwgMTAsIDk1LCAzMiwgMzIKIEdST1VQQk9YICJQYXBlbCIsIDEwNzQsIDEyMCwgODUsIDE4MCwgNTAsIEJTX0dST1VQQk9YCiBMVEVYVCAiJlRhbWFuaG8iLCAxMDg5LCAxMzAsIDk1LCAzMCwgOQogTFRFWFQgIiZGb250ZSBkZSBBbGltZW50YefjbyIsIDEwOTAsIDEzMCwgMTEwLCAzMCwgOQogQ09NQk9CT1ggMTEzNywgMTU1LCA5NSwgOTIsIDY4LCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX1NPUlQgfCBDQlNfSEFTU1RSSU5HUyB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiBDT01CT0JPWCAxMTM4LCAxNTUsIDExMCwgOTIsIDY4LCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX1NPUlQgfCBDQlNfSEFTU1RSSU5HUyB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCn0KCgpDSE9PU0VfRk9OVCBESUFMT0cgRElTQ0FSREFCTEUgIDEzLCA1NCwgMjY0LCAxNDcKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiRm9udGUiCkZPTlQgOCwgIkhlbHYiCnsKICAgIExURVhUICAgICAgICAgICAiJkZvbnRlOiIsMTA4OCAsNiwzLDQwLDkKICAgIENPTUJPQk9YICAgICAgICAxMTM2ICw2LDEzLDk0LDU0LCAgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0hBU1NUUklOR1MgfCBDQlNfRElTQUJMRU5PU0NST0xMIHwKICAgICAgICAgICAgICAgICAgICBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfU09SVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NJTVBMRQogICAgTFRFWFQgICAgICAgICAgICImRXN0aWxvIGRhIEZvbnRlOiIsMTA4OSAsMTA4LDMsNDQsOQogICAgQ09NQk9CT1ggICAgICAgIDExMzcsMTA4LDEzLDY0LDU0LCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfSEFTU1RSSU5HUyB8IENCU19ESVNBQkxFTk9TQ1JPTEwgfAogICAgICAgICAgICAgICAgICAgIFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NJTVBMRQogICAgTFRFWFQgICAgICAgICAgICImVGFtYW5obzoiLDEwOTAsMTc5LDMsMzAsOQogICAgQ09NQk9CT1ggICAgICAgIDExMzgsMTc5LDEzLDMyLDU0LCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfSEFTU1RSSU5HUyB8IENCU19ESVNBQkxFTk9TQ1JPTEwgfAogICAgICAgICAgICAgICAgICAgIFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NJTVBMRSB8IENCU19TT1JUCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDIxOCw2LDQwLDE0LFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIkNhbmNlbGFyIixJRENBTkNFTCwyMTgsMjMsNDAsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAiJkFwbGljYXIiLCAxMDI2LDIxOCw0MCw0MCwxNCxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICJBJmp1ZGEiICwgMTAzOCwyMTgsNTcsNDAsMTQsV1NfR1JPVVAKICAgIEdST1VQQk9YICAgICAgICAiRWZlaXRvcyIsMTA3Miw2LDcyLDg0LDM0LFdTX0dST1VQCiAgICBDSEVDS0JPWAkgICAgIiZSaXNjYWRvIiwgMTA0MCwgMTAsODIsNTAsMTAsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKICAgIENIRUNLQk9YIAkgICAgIiZTdWJsaW5oYWRvIiwgMTA0MSwgMTAsOTQsNTAsMTAsIEJTX0FVVE9DSEVDS0JPWAogICAgTFRFWFQgICAgICAgICAgICImQ29yOiIsIDEwOTEgLDYsMTEwLDMwLDkKICAgIENPTUJPQk9YICAgICAgICAxMTM5LDYsMTIwLDg0LDEwMCxDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0hBU1NUUklOR1MgfAoJCSAgICBDQlNfQVVUT0hTQ1JPTEwgfCAgV1NfQk9SREVSIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIEdST1VQQk9YICAgICAgICAiQW1vc3RyYSIsMTA3Myw5OCw3MiwxNjAsNDksV1NfR1JPVVAKICAgIENURVhUICAgICAgICAgICAiQWFCYll5WnoiLDEwOTMsMTA0LDgxLDE0OSwzNyxTU19OT1BSRUZJWCB8IFdTX1ZJU0lCTEUKfQoKCkNIT09TRV9DT0xPUiBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAzNiwgMjQsIDMwMCwgMTg1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkNvciIKRk9OVCA4LCAiSGVsdiIKewogTFRFWFQgIkNvcmVzICZC4XNpY2FzOiIsICAgMTA4OCwgNCwgICAgNCwgIDE0MCwgMTAKIExURVhUICImQ29yZXMgZG8gVXN14XJpbzoiLCAgMTA4OSwgNCwgICAxMDYsIDE0MCwgMTAKIExURVhUICJDb2xvcmlkb3xT82xpZCZvIiwgIDEwOTAsIDE1MCwgMTUxLCAgNDgsIDEwCiBMVEVYVCAgICJWZXImbWVsaG86IiwgNzI2IC8qMTA5NCovLDI0OSwxMjYsMjQsMTAKIEVESVRURVhUIDcwNiwgMjc1LDEyNCwxOCwxMiwgV1NfQk9SREVSIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBMVEVYVCAgICImVmVyZGU6Iiw3MjcvKjEwOTUqLywyNDksMTQwLDI0LDEwCiBFRElUVEVYVCA3MDcsIDI3NSwxMzgsMTgsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgICAiQSZ6dWw6Iiw3MjggLyoxMDk2Ki8sMjQ5LDE1NCwyNCwxMAogRURJVFRFWFQgNzA4LCAyNzUsMTUyLDE4LDEyLCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICAiTWF0Jml6OiIgLDcyMyAvKjEwOTEqLywyMDIsMTI2LDIyLDEwCiBFRElUVEVYVCA3MDMsIDIyNiwxMjQsMTgsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgICJTYSZ0OiIgLDcyNCAvKjEwOTIqLywyMDIsMTQwLDIyLDEwCiBFRElUVEVYVCA3MDQsIDIyNiwxMzgsMTgsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgICImTHVtOiIgLDcyNSAvKjEwOTMqLywyMDIsMTU0LDIyLDEwCiBFRElUVEVYVCA3MDUsIDIyNiwxNTIsMTgsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ09OVFJPTCAiIiAsNzIwLCJTVEFUSUMiLFNTX1NJTVBMRXxXU19UQUJTVE9QfFdTX0dST1VQLDQsMTQsMTQwLDg2CiBDT05UUk9MICIiICw3MjEsIlNUQVRJQyIsU1NfU0lNUExFfFdTX1RBQlNUT1B8V1NfR1JPVVAsNCwxMTYsMTQwLDI4CiBDT05UUk9MICIiICw3MTAsIlNUQVRJQyIsV1NfQk9SREVSfFNTX1NJTVBMRXxXU19UQUJTVE9QfFdTX0dST1VQLCAxNTIsNCwxMTgsMTE2CiBDT05UUk9MICIiICw3MDIsIlNUQVRJQyIsU1NfU0lNUExFfFdTX1RBQlNUT1B8V1NfR1JPVVAsIDI3OCw0LDgsMTE2CiBDT05UUk9MICIiICw3MDksIlNUQVRJQyIsU1NfU0lNUExFfFdTX1RBQlNUT1B8V1NfR1JPVVAsIDE1MiwxMjQsNDAsMjYKIERFRlBVU0hCVVRUT04gIk9rIiwgIElET0ssICA0LCAxNjYsIDQ0LCAxNCwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQ2FuY2VsYXIiLCBJRENBTkNFTCwgNTIsIDE2NiwgNDQsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkFqJnVkYSIsIDEwMzgsMTAwLDE2NiwgNDQsIDE0CiBQVVNIQlVUVE9OICImQWRpY2lvbmFyIENvciIsICAgIDcxMi8qMTAyNCovLCAxNTIsIDE2NiwgMTQyLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICImRGVmaW5pciBDb3JlcyBQZXJzb25hbGl6YWRhcyA+PiIsIDcxOS8qMTAyNSovLCAgIDQsIDE1MCwgMTQyLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICAiJm8iLDcxMywzMDAsMjAwLDQsMTQgICAvKiBqdXN0IGEgZHVtbXk6ICAnbycgaXMgIGxpa2UgICZvICBpbiAic29saWQmbyIgICovCn0KCgpGSU5ERExHT1JEIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDM2LCAyNCwgMjM2LCA2MgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJQcm9jdXJhciIKRk9OVCA4LCAiSGVsdiIKewogTFRFWFQgIiZQcm9jdXJhcjoiLCAtMSwgNCwgOCwgNDIsIDgKIEVESVRURVhUIDExNTIsIDQ3LCA3LCAxMjgsIDEyLCBFU19BVVRPSFNDUk9MTCB8IFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIlBhbGF2cmEgJkludGVpcmEiLCAxMDQwLCA0LCAyNiwgMTAwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiJk1hafpzY3VsYXMvbWludXNjdWxhcyIsIDEwNDEsIDQsIDQyLCA2NCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIEdST1VQQk9YICJEaXJl5+NvIiwgMTA3MiwgMTA3LCAyNiwgNjgsIDI4CiBDT05UUk9MICJBJmNpbWEiLCAxMDU2LCAiQlVUVE9OIiwgQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLCAxMTEsIDM4LCAyMCwgMTIKIENPTlRST0wgIkEmYmFpeG8iLCAxMDU3LCAiQlVUVE9OIiwgQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfVEFCU1RPUCwgMTM4LCAzOCwgMzAsIDEyCgogREVGUFVTSEJVVFRPTiAiUHJvY3VyYXIgYSBQcvMmeGltYSIsIElET0ssIDE4MiwgNSwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkNhbmNlbGFyIiwgSURDQU5DRUwsIDE4MiwgMjMsIDUwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJBJmp1ZGEiLCAxMDM4LCAxODIsIDQ1LCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAp9CgoKUkVQTEFDRURMR09SRCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAzNiwgMjQsIDIzMCwgOTQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiQWx0ZXJhciIKRk9OVCA4LCAiSGVsdiIKewogTFRFWFQgIiZQcm9jdXJhcjoiLCAtMSwgNCwgOSwgNDgsIDgKIEVESVRURVhUIDExNTIsIDU0LCA3LCAxMTQsIDEyLCBFU19BVVRPSFNDUk9MTCB8IFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgIkFsdGVyYXIgUGEmcmE6IiwgLTEsIDQsIDI2LCA0OCwgOAogRURJVFRFWFQgMTE1MywgNTQsIDI0LCAxMTQsIDEyLCBFU19BVVRPSFNDUk9MTCB8IFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIlBhbGF2cmEgJmludGVpcmEiLCAxMDQwLCA1LCA0NiwgMTA0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiJk1hafpzY3VsYXMvbWlu+nNjdWxhcyIsIDEwNDEsIDUsIDYyLCA1OSwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKCiBERUZQVVNIQlVUVE9OICJQcm9jdXJhciBhIFBy8yZ4aW1hIiwgSURPSywJMTc0LCAgNCwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AgfCBCU19ERUZQVVNIQlVUVE9OCiBQVVNIQlVUVE9OICImQWx0ZXJhciIsIHBzaDEsCQkJMTc0LCAyMSwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkFsdGVyYXIgJlRvZGFzIiwgcHNoMiwJCTE3NCwgMzgsIDUwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJDYW5jZWxhciIsIElEQ0FOQ0VMLAkJMTc0LCA1NSwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkEmanVkYSIsIHBzaEhlbHAsCQkJMTc0LCA3NSwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKfQoKClBSSU5UMzIgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgIDMyLCAzMiwgMjg4LCAxODYKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VIHwKICAgICAgRFNfQ09OVEVYVEhFTFAgfCBEU18zRExPT0sKQ0FQVElPTiAiUHJpbnQzMiIKRk9OVCA4LCAiSGVsdiIKewogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsCUlET0ssICAgICAxODAsMTY0LCA0OCwxNCwgV1NfR1JPVVAgfCBCU19ERUZQVVNIQlVUVE9OCiAgICBQVVNIQlVUVE9OCSAgICAiQ2FuY2VsYXIiLAlJRENBTkNFTCwgMjMyLDE2NCwgNDgsMTQsIFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIiZBanVkYSIsICAgcHNoSGVscCwgIDUwLCAxNjEsIDQ4LDE0LCBXU19HUk9VUAoKICAgIEdST1VQQk9YICAgICAgICAiSW1wcmVzc29yYSIsCQlncnA0LCAgIDgsICA0LCAyNzIsODQsIFdTX0dST1VQCiAgICBDT05UUk9MICAgICAgICAgIkltcHJpbWlyIGVtIGFycXVpJnZvIiwJY2h4MSwgIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLDIxMiw3MCw2NCwxMgogICAgUFVTSEJVVFRPTiAgICAgICJQcm9wcmkmZWRhZGVzIiwJCXBzaDIsIDIxMiwgMTcsICA2MCwxNCwgV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiJk5vbWU6IiwJCQlzdGM2LCAgMTYsIDIwLCAgMzYsOAogICAgQ09NQk9CT1gJCQkJCWNtYjQsICA1MiwgMTgsIDE1MiwxNTIsQ0JTX0RST1BET1dOTElTVCB8IENCU19TT1JUIHwgV1NfVlNDUk9MTCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJTdGF0dXM6IiwJCQlzdGM4LCAgMTYsIDM2LCAgMzYsMTAsIFNTX05PUFJFRklYCiAgICBMVEVYVCAgICAgICAgICAgIkR1bW15IFN0YXRlIiwJCXN0YzEyLCA1MiwgMzYsIDIyNCwxMCwgU1NfTk9QUkVGSVggfCBTU19MRUZUTk9XT1JEV1JBUAogICAgTFRFWFQgICAgICAgICAgICJUaXBvOiIsCQkJc3RjNywgIDE2LCA0OCwgIDM2LDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQgICAgICAgICAgICJEdW1teSBUeXBlIiwJCXN0YzExLCA1MiwgNDgsIDIyNCwxMCwgU1NfTk9QUkVGSVggfCBTU19MRUZUTk9XT1JEV1JBUAogICAgTFRFWFQgICAgICAgICAgICJPbmRlOiIsCQkJc3RjMTAsIDE2LCA2MCwgIDM2LDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQgICAgICAgICAgICJEdW1teSBMb2NhdGlvbiIsCQlzdGMxNCwgNTIsIDYwLCAyMjQsMTAsIFNTX05PUFJFRklYIHwgU1NfTEVGVE5PV09SRFdSQVAKICAgIExURVhUICAgICAgICAgICAiQ29tZW504XJpbzoiLAkJc3RjOSwgIDE2LCA3MiwgIDM2LDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQgICAgICAgICAgICJEdW1teSBSZW1hcmsiLAkJc3RjMTMsIDUyLCA3MiwgMTUyLDEwLCBTU19OT1BSRUZJWCB8IFNTX0xFRlROT1dPUkRXUkFQCgogICAgR1JPVVBCT1ggICAgICAgICJD83BpYXMiLAkJCWdycDIsIDE2MCwgOTIsIDEyMCw2NCwgV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiTvptZXJvIGRlICZj83BpYXM6IiwJc3RjNSwgMTY4LDEwOCwgIDY4LCA4CiAgICBJQ09OICAgICAgICAgICAgIiIsCQkJCWljbzMsIDE2MiwxMjQsICA3NiwyNCwgV1NfR1JPVVAgfCBTU19DRU5URVJJTUFHRQogICAgQ09OVFJPTCAgICAgICAgICImQWdydXBhciIsCQkJY2h4MiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsMjQwLDEzMCwzNiwxMgogICAgRURJVFRFWFQJCQkJCWVkdDMsIDI0MCwxMDYsICAzMiwxMiwgV1NfR1JPVVAgfCBFU19OVU1CRVIKCiAgICBHUk9VUEJPWCAgICAgICAgIkZhaXhhIGRlIGltcHJlc3PjbyIsCWdycDEsICAgOCw5MiwgIDE0NCw2NCwgV1NfR1JPVVAKICAgIENPTlRST0wgICAgICAgICAiJlRvZG9zIiwJCQlyYWQxLCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUCwxNiwxMDYsNjQsMTIKICAgIENPTlRST0wgICAgICAgICAiUOEmZ2luYXMiLAkJCXJhZDMsIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OLDE2LDEyMiwzNiwxMgogICAgQ09OVFJPTCAgICAgICAgICJTZWxl5+NvIiwJCQlyYWQyLCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiwxNiwxMzgsNjQsMTIKICAgIEVESVRURVhUCQkJCQllZHQxLCAgNzQsMTIyLCAgMjYsMTIsIFdTX0dST1VQIHwgRVNfTlVNQkVSCiAgICBFRElUVEVYVAkJCQkJZWR0MiwgMTE4LDEyMiwgIDI2LDEyLCBXU19HUk9VUCB8IEVTX05VTUJFUgogICAgUlRFWFQgICAgICAgICAgICImZGU6IiwJCQlzdGMyLCAgNTIsMTI0LCAgMjAsOAogICAgUlRFWFQgICAgICAgICAgICImYXTpOiIsCQkJc3RjMywgMTAwLDEyNCwgIDE2LDgKfQoKUFJJTlQzMl9TRVRVUCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAgMzIsIDMyLCAyODgsIDE3OApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUgfAogICAgICBEU19DT05URVhUSEVMUCB8IERTXzNETE9PSwpDQVBUSU9OICJQcmludDMyIFNldHVwIgpGT05UIDgsICJIZWx2IgpCRUdJTgogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsCUlET0ssMTgwLDE1Niw0OCwxNCxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICJDYW5jZWxhciIsCUlEQ0FOQ0VMLDIzMiwxNTYsNDgsMTQKLyogICAgUFVTSEJVVFRPTiAgICAgICJSZWRlLi4uIiwJcHNoNSwgMjg0LDE1Niw0OCwxNCAqLwoKICAgIEdST1VQQk9YCSJJbXByZXNzb3JhIiwgICAgIGdycDQsICAgOCwgICA0LCAyNzIsICA4NCwgV1NfR1JPVVAKICAgIFBVU0hCVVRUT04JIiZQcm9wcmllZGFkZXMiLCAgcHNoMiwgMjEyLCAgMTcsICA2MCwgIDE0LCBXU19HUk9VUAogICAgTFRFWFQJIiZOb21lOiIsICAgICAgICAgc3RjNiwgIDE2LCAgMjAsICAzNiwgICA4CiAgICBDT01CT0JPWAkJCSAgY21iMSwgIDUyLCAgMTgsIDE1MiwgMTUyLCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX1NPUlQgfCBXU19WU0NST0xMIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBMVEVYVAkiU3RhdHVzOiIsICAgICAgICBzdGM4LCAgMTYsICAzNiwgIDM2LCAgMTAsIFNTX05PUFJFRklYCiAgICBMVEVYVAkiRHVtbXkgU3RhdGUiLCAgICBzdGMxMiwgNTIsICAzNiwgMjI0LCAgMTAsIFNTX05PUFJFRklYIHwgU1NfTEVGVE5PV09SRFdSQVAKICAgIExURVhUCSJUaXBvOiIsICAgICAgICAgIHN0YzcsICAxNiwgIDQ4LCAgMzYsICAxMCwgU1NfTk9QUkVGSVgKICAgIExURVhUCSJEdW1teSBUeXBlIiwgICAgIHN0YzExLCA1MiwgIDQ4LCAyMjQsICAxMCwgU1NfTk9QUkVGSVggfCBTU19MRUZUTk9XT1JEV1JBUAogICAgTFRFWFQJIk9uZGU6IiwgICAgICAgICAgc3RjMTAsIDE2LCAgNjAsICAzNiwgIDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQJIkR1bW15IExvY2F0aW9uIiwgc3RjMTQsIDUyLCAgNjAsIDIyNCwgIDEwLCBTU19OT1BSRUZJWCB8IFNTX0xFRlROT1dPUkRXUkFQCiAgICBMVEVYVAkiQ29tZW504XJpbyIsICAgICBzdGM5LCAgMTYsICA3MiwgIDM2LCAgMTAsIFNTX05PUFJFRklYCiAgICBMVEVYVAkiRHVtbXkgUmVtYXJrIiwgICBzdGMxMywgNTIsICA3MiwgMjI0LCAgMTAsIFNTX05PUFJFRklYIHwgU1NfTEVGVE5PV09SRFdSQVAKCiAgICBHUk9VUEJPWAkiUGFwZWwiLCAgICAgICAgICBncnAyLCAgIDgsICA5MiwgMTY0LCAgNTYsIFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAiJlRhbWFuaG86IiwgICAgICBzdGMyLCAgMTYsIDEwOCwgIDM2LCAgIDgKICAgIENPTUJPQk9YICAgICAgICAgICAgICAgICAgICAgIGNtYjIsICA1MiwgMTA2LCAxMTIsIDExMiwgQ0JTX0RST1BET1dOTElTVCB8IENCU19TT1JUIHwgV1NfVlNDUk9MTCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgTFRFWFQJIiZPcmlnZW06IiwgICAgICAgc3RjMywgIDE2LCAxMjgsICAzNiwgICA4CiAgICBDT01CT0JPWCAgICAgICAgICAgICAgICAgICAgICBjbWIzLCAgNTIsIDEyNiwgMTEyLCAxMTIsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfU09SVCB8IFdTX1ZTQ1JPTEwgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKCiAgICBHUk9VUEJPWAkiT3JpZW50YefjbyIsICAgICBncnAxLCAxODAsICA5MiwgMTAwLCAgNTYsIFdTX0dST1VQCiAgICBJQ09OCSIiLCAgICAgICAgICAgICAgIGljbzEsIDE5NSwgMTEyLCAgMTgsICAyMCwgV1NfR1JPVVAKICAgIENPTlRST0wgICAgICImUmV0cmF0byIsICAgICAgIHJhZDEsICJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsIDIyNCwgMTA2LCA1MiwgMTIKICAgIENPTlRST0wJIiZQYWlzYWdlbSIsICAgICAgcmFkMiwgIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwgMjI0LCAxMjYsIDUyLCAxMgpFTkQKCk5FV0ZJTEVPUEVOT1JEIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDAsIDAsIDI4MCwgMTY0ClNUWUxFIERTX01PREFMRlJBTUUgfCBEU19DT05URVhUSEVMUCB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiT3BlbiIKRk9OVCA4LCAiaGVsdiIKewogICAgTFRFWFQJIk9saGFyICZlbSIsSURDX0xPT0tJTlNUQVRJQyw3LDYsMjcsOCwgU1NfTk9USUZZCiAgICBDT01CT0JPWAlJRENfTE9PS0lOLDM2LDMsMTM4LDMwMCxDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0hBU1NUUklOR1MgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIExURVhUCSIiICwgSURDX1RPT0xCQVJTVEFUSUMsIDE3MiwgMiwgMTAyLCAxNywgTk9UIFdTX0dST1VQIHwgTk9UIFdTX1ZJU0lCTEUKICAgIExJU1RCT1gJSURDX1NIRUxMU1RBVElDLDQsMjAsMjcyLDg1LCBMQlNfU09SVCB8IExCU19OT0lOVEVHUkFMSEVJR0hUIHwgTEJTX01VTFRJQ09MVU1OIHwgV1NfSFNDUk9MTCB8IE5PVCBXU19WSVNJQkxFCgogICAgTFRFWFQJIk5vbWUgZG8gJmFycXVpdm86IixJRENfRklMRU5BTUVTVEFUSUMsNSwxMTIsNDgsOCwgU1NfTk9USUZZCiAgICBFRElUVEVYVAlJRENfRklMRU5BTUUsNTQsMTExLDE1NSwxMixFU19BVVRPSFNDUk9MTAoKICAgIExURVhUCSJBcnF1aXZvcyBkbyAmdGlwbyIsSURDX0ZJTEVUWVBFU1RBVElDLDUsMTMxLDQ4LDgsIFNTX05PVElGWQogICAgQ09NQk9CT1gJSURDX0ZJTEVUWVBFLDU0LDEyOSwxNTUsMTAwLENCU19EUk9QRE9XTiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCgogICAgQ09OVFJPTAkiQWJyaXIgY29tbyAmc29tZW50ZS1sZWl0dXJhIixJRENfT1BFTlJFQURPTkxZLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNTQsMTQ4LDc0LDEwCgogICAgREVGUFVTSEJVVFRPTgkiJkFicmlyIiwJCUlET0ssMjIyLDExMCw1MCwxMwogICAgUFVTSEJVVFRPTgkJIkNhbmNlbCIsCQlJRENBTkNFTCwyMjIsMTI4LDUwLDE0CiAgICBQVVNIQlVUVE9OCQkiJkhlbHAiLAkJcHNoSGVscCwyMjIsMTQ1LDUwLDE0Cn0KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKICAgIElEU19BQk9VVEJPWAkiJlNvYnJlIEZvbGRlclBpY2tlciBUZXh0IgogICAgSURTX0RPQ1VNRU5URk9MREVSUwkiUGFzdGFzIGRlIERvY3VtZW50b3MiCiAgICBJRFNfUEVSU09OQUwJIk1ldXMgRG9jdW1lbnRvcyIKICAgIElEU19GQVZPUklURVMJIkZhdm9yaXRvcyIKICAgIElEU19QQVRICQkiQ2FtaW5obyBkbyBTaXN0ZW1hIgogICAgSURTX0RFU0tUT1AJCSLBcmVhIGRlIFRyYWJhbGhvIgogICAgSURTX0ZPTlRTCQkiRm9udHMiCiAgICBJRFNfTVlDT01QVVRFUgkiTWV1IENvbXB1dGFkb3IiCn0KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKICAgIElEU19TWVNURU1GT0xERVJTCSJQYXN0YXMgZG8gU2lzdGVtYSIKICAgIElEU19MT0NBTEhBUkRSSVZFUwkiRGlzY29zIFLtZ2lkb3MgTG9jYWlzIgogICAgSURTX0ZJTEVOT1RGT1VORAkiQXJxdWl2byBu428gZW5jb250cmFkbyIKICAgIElEU19WRVJJRllGSUxFCSJQb3IgZmF2b3IgdmVyaWZpcXVlIHNlIGZvaSBmb3JuZWNpZG8gbyBub21lIGNvcnJldG8gZG8gYXJxdWl2byIKICAgIElEU19DUkVBVEVGSUxFCSJBcnF1aXZvIG7jbyBleGlzdGVcblZvY+ogZ29zdGFyaWEgZGUgY3JpYS1sbyIKCn0KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKICAgIFBEMzJfUFJJTlRfVElUTEUJCQkJIlByaW50IgoKICAgIFBEMzJfVkFMVUVfVVJFQURBQkxFCQkJIkVudHJhZGEgSWxlZ+12ZWwiCiAgICBQRDMyX0lOVkFMSURfUEFHRV9SQU5HRQkJCSJFc3RlIHZhbG9yIG7jbyBzZSBlbmNhaXhhIG5hIGZhaXhhIGRlIHDhZ2luYXNcblwKUG9yIGZhdm9yIGVudHJlIHVtIHZhbG9yIGVudHJlICVkIGUgJWQiCiAgICBQRDMyX0ZST01fTk9UX0FCT1ZFX1RPCQkJIkEgZW50cmFkYSBERSBu428gcG9kZSBleGNlZGVyIEFUyToiCiAgICBQRDMyX01BUkdJTlNfT1ZFUkxBUAkJCSJBcyBtYXJnZW5zIGVzdONvIGZvcmEgZGFzIG1lZGlkYXMgXApkbyBwYXBlbC5cblBvciBmYXZvciByZWVudHJlIGFzIG1hcmdlbnMiCiAgICBQRDMyX05SX09GX0NPUElFU19FTVBUWQkJCSJPIG76bWVybyBkZSBj83BpYXMgbuNvIHBvZGUgdGVyIHZhbG9yIHZhemlvIgogICAgUEQzMl9UT09fTEFSR0VfQ09QSUVTCQkJIkVzdGEgcXVhbnRpZGFkZSBkZSBpbXByZXNz428gbuNvIOkgc3Vwb3J0YWRhIFwKcGVsYSBzdWEgaW1wcmVzc29yYS5cblBvciBmYXZvciBlbnRyZSB1bSB2YWxvciBlbnRyZSAxIGUgJWQiCiAgICBQRDMyX1BSSU5UX0VSUk9SCQkJCSJPY29ycmV1IHVtIGVycm8gZGUgaW1wcmVzc+NvIgogICAgUEQzMl9OT19ERUZBVUxUX1BSSU5URVIJCQkiTuNvIGV4aXN0ZSB1bWEgaW1wcmVzc29yYSBwYWRy428iCiAgICBQRDMyX0NBTlRfRklORF9QUklOVEVSCQkJIk7jcCBwdWRlIGVuY29udHJhciB1bWEgaW1wcmVzc29yYSIKICAgIFBEMzJfT1VUX09GX01FTU9SWQkJCQkiTWVt83JpYSBpbnN1bGZpY2llbnRlIgogICAgUEQzMl9HRU5FUklDX0VSUk9SCQkJCSJPY29ycmV1IGFsZ3VtIGVycm8iCiAgICBQRDMyX0RSSVZFUl9VTktOT1dOCQkJCSJEcml2ZXIgZGUgaW1wcmVzc29yYSBkZXNjb25oZWNpZG8iCgogICAgUEQzMl9ERUZBVUxUX1BSSU5URVIJCQkiSW1wcmVzc29yYSBQYWRy4287ICIKICAgIFBEMzJfTlJfT0ZfRE9DVU1FTlRTX0lOX1FVRVVFCQkiRXhpc3RlbSAlZCBkb2N1bWVudG9zIG5hIGZpbGEiCiAgICBQRDMyX1BSSU5UX0FMTF9YX1BBR0VTCQkJIiZUb2RhcyAlZCBw4WdpbmFzIgogICAgUEQzMl9NQVJHSU5TX0lOX0lOQ0hFUwkJCSJNYXJnZW5zIFtwb2xlZ2FkYXNdIgogICAgUEQzMl9NQVJHSU5TX0lOX01JTElNRVRFUlMJCQkiTWFyZ2VucyBbbW1dIgogICAgUEQzMl9NSUxJTUVURVJTCQkJCSJtbSIKCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1JFQURZCQkJIlByb250byIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfUEFVU0VECQkJIlBhdXNhZG87ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfRVJST1IJCQkiRXJybzsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19QRU5ESU5HX0RFTEVUSU9OCSJFeGNsdXPjbyBwZW5kZW50ZTsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19QQVBFUl9KQU0JCSJQYXBlbCBhdG9sYWRvOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1BBUEVSX09VVAkJIlNlbSBwYXBlbDsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19NQU5VQUxfRkVFRAkJIkNhcnJlZ3VlIHBhcGVsIG1hbnVhbG1lbnRlOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1BBUEVSX1BST0JMRU0JCSJQcm9ibGVtYXMgY29tIG8gcGFwZWw7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfT0ZGTElORQkJCSJJbXByZXNzb3JhIGRlc2xpZ2FkYTsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19JT19BQ1RJVkUJCSJFL1MgQXRpdm87ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfQlVTWQkJCSJPY3VwYWRvOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1BSSU5USU5HCQkiSW1wcmltaW5kbzsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19PVVRQVVRfQklOX0ZVTEwJCSJGaWxhIGRlIGltcHJlc3PjbyBlc3ThIGNoZWlhOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX05PVF9BVkFJTEFCTEUJCSJO428gZGlzcG9u7XZlbDsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19XQUlUSU5HCQkJIkVzcGVyYW5kbzsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19QUk9DRVNTSU5HCQkiUHJvY2Vzc2FuZG87ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfSU5JVElBTElaSU5HCQkiSW5pY2lhbGl6YW5kbzsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19XQVJNSU5HX1VQCQkiQXF1ZWNlbmRvOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1RPTkVSX0xPVwkJIlBvdWNvIHRvbmVyOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX05PX1RPTkVSCQkiU2VtIHRvbmVyOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1BBR0VfUFVOVAkJIlBhZ2UgcHVudDsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19VU0VSX0lOVEVSVkVOVElPTgkiSW50ZXJyb21waWRvIHBlbG8gdXN14XJpbzsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19PVVRfT0ZfTUVNT1JZCQkiTWVt83JpYSBpbnN1bGZpY2llbnRlOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX0RPT1JfT1BFTgkJIkEgaW1wcmVzc29yYSBlc3ThIGFiZXJ0YTsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19TRVJWRVJfVU5LTk9XTgkJIlNlcnZpZG9yIGRlIGltcHJlc3PjbyBkZXNjb25oZWNpZG87ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfUE9XRVJfU0FWRQkJIk1vZG8gZWNvbvRtaWNvOyAiCn0K