LyoKICogQ29weXJpZ2h0IDE5OTcgUmljYXJkbyBSLiBNYXNzYXJvCiAqIENvcHlyaWdodCAyMDAzIE1hcmNlbG8gRHVhcnRlCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKi8KCi8qCiAqIFdBUk5JTkc6IERPIE5PVCBDSEFOR0UgVEhFIFNJWkUgT0YgVEhFIFNUQU5EQVJEIERJQUxPRyBURU1QTEFURVMuCiAqLwoKTEFOR1VBR0UgTEFOR19QT1JUVUdVRVNFLCBTVUJMQU5HX0RFRkFVTFQKCk9QRU5fRklMRSBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAzNiwgMjQsIDI3NSwgMTM0ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkFicmlyIgpGT05UIDgsICJIZWx2Igp7CiBMVEVYVCAiTm9tZSBkbyAmQXJxdWl2bzoiLCAxMDkwLCA2LCA2LCA3NiwgOQogRURJVFRFWFQgMTE1MiwgNiwgMTYsIDkwLCAxMiwgRVNfQVVUT0hTQ1JPTEwgfCBFU19PRU1DT05WRVJUIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogTElTVEJPWCAxMTIwLCA2LCAzMiwgOTAsIDY4LCBMQlNfU1RBTkRBUkQgfCBMQlNfT1dORVJEUkFXRklYRUQgfCBMQlNfSEFTU1RSSU5HUyB8IExCU19ESVNBQkxFTk9TQ1JPTEwgfCBXU19UQUJTVE9QCiBMVEVYVCAiJkRpcmV083Jpb3M6IiwgLTEsIDExMCwgNiwgOTIsIDkKIExURVhUICIiLCAxMDg4LCAxMTAsIDE4LCA5MiwgOSwgU1NfTk9QUkVGSVggfCBXU19HUk9VUAogTElTVEJPWCAxMTIxLCAxMTAsIDMyLCA5MiwgNjgsIExCU19TVEFOREFSRCB8IExCU19PV05FUkRSQVdGSVhFRCB8IExCU19IQVNTVFJJTkdTIHwgTEJTX0RJU0FCTEVOT1NDUk9MTCB8IFdTX1RBQlNUT1AKIExURVhUICJMaXN0YXIgQXJxdWl2b3MgZG8gJlRpcG86IiwgMTA4OSwgNiwgMTA0LCA5MCwgOQogQ09NQk9CT1ggMTEzNiwgNiwgMTE0LCA5MCwgMzYsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfQVVUT0hTQ1JPTEwgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogTFRFWFQgIkRyaSZ2ZXM6IiwgMTA5MSwgMTEwLCAxMDQsIDkyLCA5CiBDT01CT0JPWCAxMTM3LCAxMTAsIDExNCwgOTIsIDY4LCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX1NPUlQgfCBDQlNfSEFTU1RSSU5HUyB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiBERUZQVVNIQlVUVE9OICJBYnJpciIsIElET0ssIDIwOCwgNiwgNTYsIDE0LCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJDYW5jZWxhciIsIElEQ0FOQ0VMLCAyMDgsIDI0LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQSZqdWRhIiwgMTAzOCwgMjA4LCA0NiwgNTYsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICImU29tZW50ZSBMZWl0dXJhIiwgMTA0MCwgMjA4LCA2OCwgNTAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKfQoKClNBVkVfRklMRSBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAzNiwgMjQsIDI3NSwgMTM0ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlNhbHZhciBDb21vIC4uLiIKRk9OVCA4LCAiSGVsdiIKewogTFRFWFQgIk5vbWUgZG8gJkFycXVpdm86IiwgMTA5MCwgNiwgNiwgNzYsIDkKIEVESVRURVhUIDExNTIsIDYsIDE2LCA5MCwgMTIsIEVTX0FVVE9IU0NST0xMIHwgRVNfT0VNQ09OVkVSVCB8IFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKIExJU1RCT1ggMTEyMCwgNiwgMzIsIDkwLCA2OCwgTEJTX1NUQU5EQVJEIHwgTEJTX09XTkVSRFJBV0ZJWEVEIHwgTEJTX0hBU1NUUklOR1MgfCBMQlNfRElTQUJMRU5PU0NST0xMIHwgV1NfVEFCU1RPUAogTFRFWFQgIiZEaXJldPNyaW9zOiIsIC0xLCAxMTAsIDYsIDkyLCA5CiBMVEVYVCAiIiwgMTA4OCwgMTEwLCAxOCwgOTIsIDksIFNTX05PUFJFRklYIHwgV1NfR1JPVVAKIExJU1RCT1ggMTEyMSwgMTEwLCAzMiwgOTIsIDY4LCBMQlNfU1RBTkRBUkQgfCBMQlNfT1dORVJEUkFXRklYRUQgfCBMQlNfSEFTU1RSSU5HUyB8IExCU19ESVNBQkxFTk9TQ1JPTEwgfCBXU19UQUJTVE9QCiBMVEVYVCAiTGlzdGFyIEFycXVpdm9zIGRvICZUaXBvOiIsIDEwODksIDYsIDEwNCwgOTAsIDkKIENPTUJPQk9YIDExMzYsIDYsIDExNCwgOTAsIDM2LCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX0FVVE9IU0NST0xMIHwgV1NfQk9SREVSIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKIExURVhUICJEcmkmdmVzOiIsIDEwOTEsIDExMCwgMTA0LCA5MiwgOQogQ09NQk9CT1ggMTEzNywgMTEwLCAxMTQsIDkyLCA2OCwgQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19TT1JUIHwgQ0JTX0hBU1NUUklOR1MgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogREVGUFVTSEJVVFRPTiAiU2FsdmFyICZDb21vIiwgSURPSywgMjA4LCA2LCA1NiwgMTQsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkNhbmNlbGFyIiwgSURDQU5DRUwsIDIwOCwgMjQsIDU2LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICImQWp1ZGEiLCAxMDM4LCAyMDgsIDQ2LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIiZTb21lbnRlIExlaXR1cmEiLCAxMDQwLCAyMDgsIDY4LCA1MCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAp9CgoKUFJJTlQgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMzYsIDI0LCAyNjQsIDEzNApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJJbXByaW1pciIKRk9OVCA4LCAiSGVsdiIKewogTFRFWFQgIkltcHJlc3NvcmE6IiwgMTA4OCwgNiwgNiwgNDAsIDkKIExURVhUICIiLCAxMDg5LCA2MCwgNiwgMTUwLCA5CiBHUk9VUEJPWCAiRmFpeGEgZGUgSW1wcmVzc+NvIiwgMTA3MiwgNiwgMzAsIDE2MCwgNjUsIEJTX0dST1VQQk9YCiBSQURJT0JVVFRPTiAiJlR1ZG8iLCAxMDU2LCAxNiwgNDUsIDYwLCAxMgogUkFESU9CVVRUT04gIlMmZWxl5+NvIiwgMTA1NywgMTYsIDYwLCA2MCwgMTIKIFJBRElPQlVUVE9OICImUOFnaW5hcyIsIDEwNTgsIDE2LCA3NSwgNjAsIDEyCiBERUZQVVNIQlVUVE9OICJJbXByaW1pciIsIElET0ssIDIwNiwgNiwgNTYsIDE0LCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJDYW5jZWxhciIsIElEQ0FOQ0VMLCAyMDYsIDI0LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJkNvbmZpZ3VyYXIiLCAxMDI0LCAyMDYsIDQ2LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgIiZEZToiLCAxMDkwLCA2MCwgODAsIDMwLCA5CiBMVEVYVCAiJkF0ZToiLCAxMDkxLCAxMjAsIDgwLCAzMCwgOQogTFRFWFQgIiZRdWFsaWRhZGUgZGUgSW1wcmVzc+NvOiIsIDEwOTIsIDYsIDEwMCwgNzYsIDkKIENPTUJPQk9YIDExMzYsIDgwLCAxMDAsIDkyLCA2OCwgQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19TT1JUIHwgQ0JTX0hBU1NUUklOR1MgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkltcHJpbWlyIHBhcmEgQXJxdWl2byIsIDEwNDAsIDIwLCAxMDAsIDUwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQyZvbmRlbnNhZG8iLCAxMDQxLCAxNjAsIDEwMCwgNTAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKfQoKClBSSU5UX1NFVFVQIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDM2LCAyNCwgMjY0LCAxMzQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiQ29uZmlndXJh5/VlcyBkZSBJbXByZXNz428iCkZPTlQgOCwgIkhlbHYiCnsKIEdST1VQQk9YICJJbXByZXNzb3JhIiwgMTA3MiwgNiwgMTAsIDE4MCwgNjUsIEJTX0dST1VQQk9YCiBSQURJT0JVVFRPTiAiJkltcHJlc3NvcmEgUGFkcuNvIiwgMTA1NiwgMTYsIDIwLCA4MCwgMTIKIExURVhUICJbbm9uZV0iLCAxMDg4LCAzNSwgMzUsIDEyMCwgOQogUkFESU9CVVRUT04gIkltcHJlc3NvcmEgJkVzcGVj7WZpY2EiLCAxMDU3LCAxNiwgNTAsIDgwLCAxMgogQ09NQk9CT1ggMTEzNiwgMzUsIDY1LCAxNDksIDY4LCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX1NPUlQgfCBDQlNfSEFTU1RSSU5HUyB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDIwNiwgNiwgNTYsIDE0LCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJDYW5jZWxhciIsIElEQ0FOQ0VMLCAyMDYsIDI0LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJkNvbmZpZ3VyYXIiLCAxMDI0LCAyMDYsIDQ2LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogR1JPVVBCT1ggIk9yaWVudGHn428iLCAxMDczLCA2LCA4NSwgMTAwLCA1MCwgQlNfR1JPVVBCT1gKIFJBRElPQlVUVE9OICImUmV0cmF0byIsIDEwNTgsIDUwLCAxMDAsIDQwLCAxMgogUkFESU9CVVRUT04gIiZQYWlzYWdlbSIsIDEwNTksIDUwLCAxMTUsIDQwLCAxMgogSUNPTiAiTEFORFNDQVAiLCAxMDk3LCAxMCwgOTUsIDMyLCAzMgogSUNPTiAiUE9SVFJBSVQiLCAxMDk4LCAxMCwgOTUsIDMyLCAzMgogR1JPVVBCT1ggIlBhcGVsIiwgMTA3NCwgMTIwLCA4NSwgMTgwLCA1MCwgQlNfR1JPVVBCT1gKIExURVhUICImVGFtYW5obyIsIDEwODksIDEzMCwgOTUsIDMwLCA5CiBMVEVYVCAiJkZvbnRlIGRlIEFsaW1lbnRh5+NvIiwgMTA5MCwgMTMwLCAxMTAsIDMwLCA5CiBDT01CT0JPWCAxMTM3LCAxNTUsIDk1LCA5MiwgNjgsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfU09SVCB8IENCU19IQVNTVFJJTkdTIHwgV1NfQk9SREVSIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKIENPTUJPQk9YIDExMzgsIDE1NSwgMTEwLCA5MiwgNjgsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfU09SVCB8IENCU19IQVNTVFJJTkdTIHwgV1NfQk9SREVSIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKfQoKCkNIT09TRV9GT05UIERJQUxPRyBESVNDQVJEQUJMRSAgMTMsIDU0LCAyNjQsIDE0NwpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJGb250ZSIKRk9OVCA4LCAiSGVsdiIKewogICAgTFRFWFQgICAgICAgICAgICImRm9udGU6IiwxMDg4ICw2LDMsNDAsOQogICAgQ09NQk9CT1ggICAgICAgIDExMzYgLDYsMTMsOTQsNTQsICBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfSEFTU1RSSU5HUyB8IENCU19ESVNBQkxFTk9TQ1JPTEwgfAogICAgICAgICAgICAgICAgICAgIENCU19BVVRPSFNDUk9MTCB8IENCU19TT1JUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU0lNUExFCiAgICBMVEVYVCAgICAgICAgICAgIiZFc3RpbG8gZGEgRm9udGU6IiwxMDg5ICwxMDgsMyw0NCw5CiAgICBDT01CT0JPWCAgICAgICAgMTEzNywxMDgsMTMsNjQsNTQsIENCU19PV05FUkRSQVdGSVhFRCB8IENCU19IQVNTVFJJTkdTIHwgQ0JTX0RJU0FCTEVOT1NDUk9MTCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU0lNUExFCiAgICBMVEVYVCAgICAgICAgICAgIiZUYW1hbmhvOiIsMTA5MCwxNzksMywzMCw5CiAgICBDT01CT0JPWCAgICAgICAgMTEzOCwxNzksMTMsMzIsNTQsIENCU19PV05FUkRSQVdGSVhFRCB8IENCU19IQVNTVFJJTkdTIHwgQ0JTX0RJU0FCTEVOT1NDUk9MTCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU0lNUExFIHwgQ0JTX1NPUlQKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMjE4LDYsNDAsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAiQ2FuY2VsYXIiLElEQ0FOQ0VMLDIxOCwyMyw0MCwxNCxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICImQXBsaWNhciIsIDEwMjYsMjE4LDQwLDQwLDE0LFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIkEmanVkYSIgLCAxMDM4LDIxOCw1Nyw0MCwxNCxXU19HUk9VUAogICAgR1JPVVBCT1ggICAgICAgICJFZmVpdG9zIiwxMDcyLDYsNzIsODQsMzQsV1NfR1JPVVAKICAgIENIRUNLQk9YCSAgICAiJlJpc2NhZG8iLCAxMDQwLCAxMCw4Miw1MCwxMCwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogICAgQ0hFQ0tCT1ggCSAgICAiJlN1YmxpbmhhZG8iLCAxMDQxLCAxMCw5NCw1MCwxMCwgQlNfQVVUT0NIRUNLQk9YCiAgICBMVEVYVCAgICAgICAgICAgIiZDb3I6IiwgMTA5MSAsNiwxMTAsMzAsOQogICAgQ09NQk9CT1ggICAgICAgIDExMzksNiwxMjAsODQsMTAwLENCU19EUk9QRE9XTkxJU1QgfCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfSEFTU1RSSU5HUyB8CgkJICAgIENCU19BVVRPSFNDUk9MTCB8ICBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICJBbW9zdHJhIiwxMDczLDk4LDcyLDE2MCw0OSxXU19HUk9VUAogICAgQ1RFWFQgICAgICAgICAgICJBYUJiWXlaeiIsc3RjNSwxMDQsODEsMTQ5LDM3LFNTX05PUFJFRklYIHwgTk9UIFdTX1ZJU0lCTEUKfQoKCkNIT09TRV9DT0xPUiBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAzNiwgMjQsIDMwMCwgMTg1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkNvciIKRk9OVCA4LCAiSGVsdiIKewogTFRFWFQgIkNvcmVzICZC4XNpY2FzOiIsICAgMTA4OCwgNCwgICAgNCwgIDE0MCwgMTAKIExURVhUICImQ29yZXMgZG8gVXN14XJpbzoiLCAgMTA4OSwgNCwgICAxMDYsIDE0MCwgMTAKIExURVhUICJDb2xvcmlkb3xT82xpZCZvIiwgIDEwOTAsIDE1MCwgMTUxLCAgNDgsIDEwCiBMVEVYVCAgICJWZXImbWVsaG86IiwgNzI2IC8qMTA5NCovLDI0OSwxMjYsMjQsMTAKIEVESVRURVhUIDcwNiwgMjc1LDEyNCwxOCwxMiwgV1NfQk9SREVSIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBMVEVYVCAgICImVmVyZGU6Iiw3MjcvKjEwOTUqLywyNDksMTQwLDI0LDEwCiBFRElUVEVYVCA3MDcsIDI3NSwxMzgsMTgsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgICAiQSZ6dWw6Iiw3MjggLyoxMDk2Ki8sMjQ5LDE1NCwyNCwxMAogRURJVFRFWFQgNzA4LCAyNzUsMTUyLDE4LDEyLCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICAiTWF0Jml6OiIgLDcyMyAvKjEwOTEqLywyMDIsMTI2LDIyLDEwCiBFRElUVEVYVCA3MDMsIDIyNiwxMjQsMTgsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgICJTYSZ0OiIgLDcyNCAvKjEwOTIqLywyMDIsMTQwLDIyLDEwCiBFRElUVEVYVCA3MDQsIDIyNiwxMzgsMTgsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgICImTHVtOiIgLDcyNSAvKjEwOTMqLywyMDIsMTU0LDIyLDEwCiBFRElUVEVYVCA3MDUsIDIyNiwxNTIsMTgsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ09OVFJPTCAiIiAsNzIwLCJTVEFUSUMiLFNTX1NJTVBMRXxXU19UQUJTVE9QfFdTX0dST1VQLDQsMTQsMTQwLDg2CiBDT05UUk9MICIiICw3MjEsIlNUQVRJQyIsU1NfU0lNUExFfFdTX1RBQlNUT1B8V1NfR1JPVVAsNCwxMTYsMTQwLDI4CiBDT05UUk9MICIiICw3MTAsIlNUQVRJQyIsV1NfQk9SREVSfFNTX1NJTVBMRXxXU19UQUJTVE9QfFdTX0dST1VQLCAxNTIsNCwxMTgsMTE2CiBDT05UUk9MICIiICw3MDIsIlNUQVRJQyIsU1NfU0lNUExFfFdTX1RBQlNUT1B8V1NfR1JPVVAsIDI3OCw0LDgsMTE2CiBDT05UUk9MICIiICw3MDksIlNUQVRJQyIsU1NfU0lNUExFfFdTX1RBQlNUT1B8V1NfR1JPVVAsIDE1MiwxMjQsNDAsMjYKIERFRlBVU0hCVVRUT04gIk9LIiwgIElET0ssICA0LCAxNjYsIDQ0LCAxNCwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQ2FuY2VsYXIiLCBJRENBTkNFTCwgNTIsIDE2NiwgNDQsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkFqJnVkYSIsIDEwMzgsMTAwLDE2NiwgNDQsIDE0CiBQVVNIQlVUVE9OICImQWRpY2lvbmFyIENvciBQZXJzb25hbGl6YWRhIiwgICAgNzEyLyoxMDI0Ki8sIDE1MiwgMTY2LCAxNDIsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIiZEZWZpbmlyIENvcmVzIFBlcnNvbmFsaXphZGFzID4+IiwgNzE5LyoxMDI1Ki8sICAgNCwgMTUwLCAxNDIsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gICImbyIsNzEzLDMwMCwyMDAsNCwxNCAgIC8qIGp1c3QgYSBkdW1teTogICdvJyBpcyAgbGlrZSAgJm8gIGluICJzb2xpZCZvIiAgKi8KfQoKCkZJTkRETEdPUkQgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMzYsIDI0LCAyMzYsIDYyClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlByb2N1cmFyIgpGT05UIDgsICJIZWx2Igp7CiBMVEVYVCAiJlByb2N1cmFyOiIsIC0xLCA0LCA4LCA0MiwgOAogRURJVFRFWFQgMTE1MiwgNDcsIDcsIDEyOCwgMTIsIEVTX0FVVE9IU0NST0xMIHwgV1NfQk9SREVSIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiUGFsYXZyYSAmSW50ZWlyYSIsIDEwNDAsIDQsIDI2LCAxMDAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICImTWFp+nNjdWxhcy9taW51c2N1bGFzIiwgMTA0MSwgNCwgNDIsIDY0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogR1JPVVBCT1ggIkRpcmXn428iLCAxMDcyLCAxMDcsIDI2LCA2OCwgMjgKIENPTlRST0wgIkEmY2ltYSIsIDEwNTYsICJCVVRUT04iLCBCU19BVVRPUkFESU9CVVRUT04gfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsIDExMSwgMzgsIDIwLCAxMgogQ09OVFJPTCAiQSZiYWl4byIsIDEwNTcsICJCVVRUT04iLCBCU19BVVRPUkFESU9CVVRUT04gfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19UQUJTVE9QLCAxMzgsIDM4LCAzMCwgMTIKCiBERUZQVVNIQlVUVE9OICJQcm9jdXJhciBhIFBy8yZ4aW1hIiwgSURPSywgMTgyLCA1LCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQ2FuY2VsYXIiLCBJRENBTkNFTCwgMTgyLCAyMywgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkEmanVkYSIsIDEwMzgsIDE4MiwgNDUsIDUwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCn0KCgpSRVBMQUNFRExHT1JEIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDM2LCAyNCwgMjMwLCA5NApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJTdWJzdGl0dWlyIgpGT05UIDgsICJIZWx2Igp7CiBMVEVYVCAiJlByb2N1cmFyOiIsIC0xLCA0LCA5LCA0OCwgOAogRURJVFRFWFQgMTE1MiwgNTQsIDcsIDExNCwgMTIsIEVTX0FVVE9IU0NST0xMIHwgV1NfQk9SREVSIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBMVEVYVCAiU3Vic3RpdHVpciBQYSZyYToiLCAtMSwgNCwgMjYsIDQ4LCA4CiBFRElUVEVYVCAxMTUzLCA1NCwgMjQsIDExNCwgMTIsIEVTX0FVVE9IU0NST0xMIHwgV1NfQk9SREVSIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiUGFsYXZyYSAmaW50ZWlyYSIsIDEwNDAsIDUsIDQ2LCAxMDQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICImTWFp+nNjdWxhcy9taW76c2N1bGFzIiwgMTA0MSwgNSwgNjIsIDU5LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAoKIERFRlBVU0hCVVRUT04gIlByb2N1cmFyIGEgUHLzJnhpbWEiLCBJRE9LLAkxNzQsICA0LCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUCB8IEJTX0RFRlBVU0hCVVRUT04KIFBVU0hCVVRUT04gIiZTdWJzdGl0dWlyIiwgcHNoMSwJCQkxNzQsIDIxLCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiU3Vic3RpdHVpciAmVG9kYXMiLCBwc2gyLAkJMTc0LCAzOCwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkNhbmNlbGFyIiwgSURDQU5DRUwsCQkxNzQsIDU1LCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQSZqdWRhIiwgcHNoSGVscCwJCQkxNzQsIDc1LCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAp9CgoKUFJJTlQzMiBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAgMzIsIDMyLCAyODgsIDE4NgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUgfAogICAgICBEU19DT05URVhUSEVMUCB8IERTXzNETE9PSwpDQVBUSU9OICJJbXByaW1pciIKRk9OVCA4LCAiSGVsdiIKewogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsCUlET0ssICAgICAxODAsMTY0LCA1MCwxNCwgV1NfR1JPVVAgfCBCU19ERUZQVVNIQlVUVE9OCiAgICBQVVNIQlVUVE9OCSAgICAiQ2FuY2VsYXIiLAlJRENBTkNFTCwgMjMyLDE2NCwgNTAsMTQsIFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIiZBanVkYSIsICAgcHNoSGVscCwgIDUwLCAxNjEsIDUwLDE0LCBXU19HUk9VUAoKICAgIEdST1VQQk9YICAgICAgICAiSW1wcmVzc29yYSIsCQlncnA0LCAgIDgsICA0LCAyNzIsODQsIFdTX0dST1VQCiAgICBDT05UUk9MICAgICAgICAgIkltcHJpbWlyIGVtIGFycXVpJnZvIiwJY2h4MSwgIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLDIxMiw3MCw2NCwxMgogICAgUFVTSEJVVFRPTiAgICAgICJQcm9wcmkmZWRhZGVzIiwJCXBzaDIsIDIxMiwgMTcsICA2MCwxNCwgV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiJk5vbWU6IiwJCQlzdGM2LCAgMTYsIDIwLCAgMzYsOAogICAgQ09NQk9CT1gJCQkJCWNtYjQsICA1MiwgMTgsIDE1MiwxNTIsQ0JTX0RST1BET1dOTElTVCB8IENCU19TT1JUIHwgV1NfVlNDUk9MTCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJTdGF0dXM6IiwJCQlzdGM4LCAgMTYsIDM2LCAgMzYsMTAsIFNTX05PUFJFRklYCiAgICBMVEVYVCAgICAgICAgICAgIkR1bW15IFN0YXRlIiwJCXN0YzEyLCA1MiwgMzYsIDIyNCwxMCwgU1NfTk9QUkVGSVggfCBTU19MRUZUTk9XT1JEV1JBUAogICAgTFRFWFQgICAgICAgICAgICJUaXBvOiIsCQkJc3RjNywgIDE2LCA0OCwgIDM2LDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQgICAgICAgICAgICJEdW1teSBUeXBlIiwJCXN0YzExLCA1MiwgNDgsIDIyNCwxMCwgU1NfTk9QUkVGSVggfCBTU19MRUZUTk9XT1JEV1JBUAogICAgTFRFWFQgICAgICAgICAgICJPbmRlOiIsCQkJc3RjMTAsIDE2LCA2MCwgIDM2LDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQgICAgICAgICAgICJEdW1teSBMb2NhdGlvbiIsCQlzdGMxNCwgNTIsIDYwLCAyMjQsMTAsIFNTX05PUFJFRklYIHwgU1NfTEVGVE5PV09SRFdSQVAKICAgIExURVhUICAgICAgICAgICAiQ29tZW504XJpbzoiLAkJc3RjOSwgIDE2LCA3MiwgIDM2LDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQgICAgICAgICAgICJEdW1teSBSZW1hcmsiLAkJc3RjMTMsIDUyLCA3MiwgMTUyLDEwLCBTU19OT1BSRUZJWCB8IFNTX0xFRlROT1dPUkRXUkFQCgogICAgR1JPVVBCT1ggICAgICAgICJD83BpYXMiLAkJCWdycDIsIDE2MCwgOTIsIDEyMCw2NCwgV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiTvptZXJvIGRlICZj83BpYXM6IiwJc3RjNSwgMTY4LDEwOCwgIDY4LCA4CiAgICBJQ09OICAgICAgICAgICAgIiIsCQkJCWljbzMsIDE2MiwxMjQsICA3NiwyNCwgV1NfR1JPVVAgfCBTU19DRU5URVJJTUFHRQogICAgQ09OVFJPTCAgICAgICAgICImQWdydXBhciIsCQkJY2h4MiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsMjQwLDEzMCwzNiwxMgogICAgRURJVFRFWFQJCQkJCWVkdDMsIDI0MCwxMDYsICAzMiwxMiwgV1NfR1JPVVAgfCBFU19OVU1CRVIKCiAgICBHUk9VUEJPWCAgICAgICAgIkZhaXhhIGRlIGltcHJlc3PjbyIsCWdycDEsICAgOCw5MiwgIDE0NCw2NCwgV1NfR1JPVVAKICAgIENPTlRST0wgICAgICAgICAiJlRvZG9zIiwJCQlyYWQxLCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUCwxNiwxMDYsNjQsMTIKICAgIENPTlRST0wgICAgICAgICAiUOEmZ2luYXMiLAkJCXJhZDMsIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OLDE2LDEyMiwzNiwxMgogICAgQ09OVFJPTCAgICAgICAgICJTZWxl5+NvIiwJCQlyYWQyLCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiwxNiwxMzgsNjQsMTIKICAgIEVESVRURVhUCQkJCQllZHQxLCAgNzQsMTIyLCAgMjYsMTIsIFdTX0dST1VQIHwgRVNfTlVNQkVSCiAgICBFRElUVEVYVAkJCQkJZWR0MiwgMTE4LDEyMiwgIDI2LDEyLCBXU19HUk9VUCB8IEVTX05VTUJFUgogICAgUlRFWFQgICAgICAgICAgICImZGU6IiwJCQlzdGMyLCAgNTIsMTI0LCAgMjAsOAogICAgUlRFWFQgICAgICAgICAgICImYXTpOiIsCQkJc3RjMywgMTAwLDEyNCwgIDE2LDgKfQoKUFJJTlQzMl9TRVRVUCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAgMzIsIDMyLCAyODgsIDE3OApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUgfAogICAgICBEU19DT05URVhUSEVMUCB8IERTXzNETE9PSwpDQVBUSU9OICJDb25maWd1cmHn9WVzIGRlIEltcHJlc3PjbyIKRk9OVCA4LCAiSGVsdiIKQkVHSU4KICAgIERFRlBVU0hCVVRUT04gICAiT0siLAlJRE9LLDE4MCwxNTYsNTAsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAiQ2FuY2VsYXIiLAlJRENBTkNFTCwyMzIsMTU2LDUwLDE0Ci8qICAgIFBVU0hCVVRUT04gICAgICAiUmVkZS4uLiIsCXBzaDUsIDI4NCwxNTYsNTAsMTQgKi8KCiAgICBHUk9VUEJPWAkiSW1wcmVzc29yYSIsICAgICBncnA0LCAgIDgsICAgNCwgMjcyLCAgODQsIFdTX0dST1VQCiAgICBQVVNIQlVUVE9OCSImUHJvcHJpZWRhZGVzIiwgIHBzaDIsIDIxMiwgIDE3LCAgNjAsICAxNCwgV1NfR1JPVVAKICAgIExURVhUCSImTm9tZToiLCAgICAgICAgIHN0YzYsICAxNiwgIDIwLCAgMzYsICAgOAogICAgQ09NQk9CT1gJCQkgIGNtYjEsICA1MiwgIDE4LCAxNTIsIDE1MiwgQ0JTX0RST1BET1dOTElTVCB8IENCU19TT1JUIHwgV1NfVlNDUk9MTCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgTFRFWFQJIlN0YXR1czoiLCAgICAgICAgc3RjOCwgIDE2LCAgMzYsICAzNiwgIDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQJIkR1bW15IFN0YXRlIiwgICAgc3RjMTIsIDUyLCAgMzYsIDIyNCwgIDEwLCBTU19OT1BSRUZJWCB8IFNTX0xFRlROT1dPUkRXUkFQCiAgICBMVEVYVAkiVGlwbzoiLCAgICAgICAgICBzdGM3LCAgMTYsICA0OCwgIDM2LCAgMTAsIFNTX05PUFJFRklYCiAgICBMVEVYVAkiRHVtbXkgVHlwZSIsICAgICBzdGMxMSwgNTIsICA0OCwgMjI0LCAgMTAsIFNTX05PUFJFRklYIHwgU1NfTEVGVE5PV09SRFdSQVAKICAgIExURVhUCSJPbmRlOiIsICAgICAgICAgIHN0YzEwLCAxNiwgIDYwLCAgMzYsICAxMCwgU1NfTk9QUkVGSVgKICAgIExURVhUCSJEdW1teSBMb2NhdGlvbiIsIHN0YzE0LCA1MiwgIDYwLCAyMjQsICAxMCwgU1NfTk9QUkVGSVggfCBTU19MRUZUTk9XT1JEV1JBUAogICAgTFRFWFQJIkNvbWVudOFyaW8iLCAgICAgc3RjOSwgIDE2LCAgNzIsICAzNiwgIDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQJIkR1bW15IFJlbWFyayIsICAgc3RjMTMsIDUyLCAgNzIsIDIyNCwgIDEwLCBTU19OT1BSRUZJWCB8IFNTX0xFRlROT1dPUkRXUkFQCgogICAgR1JPVVBCT1gJIlBhcGVsIiwgICAgICAgICAgZ3JwMiwgICA4LCAgOTIsIDE2NCwgIDU2LCBXU19HUk9VUAogICAgTFRFWFQgICAgICAgIiZUYW1hbmhvOiIsICAgICAgc3RjMiwgIDE2LCAxMDgsICAzNiwgICA4CiAgICBDT01CT0JPWCAgICAgICAgICAgICAgICAgICAgICBjbWIyLCAgNTIsIDEwNiwgMTEyLCAxMTIsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfU09SVCB8IFdTX1ZTQ1JPTEwgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIExURVhUCSImT3JpZ2VtOiIsICAgICAgIHN0YzMsICAxNiwgMTI4LCAgMzYsICAgOAogICAgQ09NQk9CT1ggICAgICAgICAgICAgICAgICAgICAgY21iMywgIDUyLCAxMjYsIDExMiwgMTEyLCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX1NPUlQgfCBXU19WU0NST0xMIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCgogICAgR1JPVVBCT1gJIk9yaWVudGHn428iLCAgICAgZ3JwMSwgMTgwLCAgOTIsIDEwMCwgIDU2LCBXU19HUk9VUAogICAgSUNPTgkiIiwgICAgICAgICAgICAgICBpY28xLCAxOTUsIDExMiwgIDE4LCAgMjAsIFdTX0dST1VQCiAgICBDT05UUk9MICAgICAiJlJldHJhdG8iLCAgICAgICByYWQxLCAiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLCAyMjQsIDEwNiwgNTIsIDEyCiAgICBDT05UUk9MCSImUGFpc2FnZW0iLCAgICAgIHJhZDIsICJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sIDIyNCwgMTI2LCA1MiwgMTIKRU5ECgpQQUdFU0VUVVBETEdPUkQgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMzIsIDMyLCAyNDAsIDI0MApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiQ29uZmlndXJh5/VlcyBkZSBQ4WdpbmEiCkZPTlQgOCwgIkhlbHYiCkJFR0lOCiAgQ09OVFJPTCAiIiwgcmN0MSwgMTMwLCAweDAwMDIwMDA2LCA4MCwgOCwgODAsIDgwLCAgU1NfV0hJVEVSRUNUCiAgQ09OVFJPTCAiIiwgcmN0MiwgMTMwLCAweDAwMDIwMDA1LCAxNjAsIDEyLCA0LCA4MCwgU1NfR1JBWVJFQ1QKICBDT05UUk9MICIiLCByY3QzLCAxMzAsIDB4MDAwMjAwMDUsIDg0LCA4OCwgODAsIDQsICBTU19HUkFZUkVDVAogIEdST1VQQk9YICJQYXBlbCIsIGdycDIsIDgsIDk2LCAyMjQsIDU2LCBCU19HUk9VUEJPWAogIExURVhUICImVGFtYW5obzoiLCBzdGMyLCAxNiwgMTEyLCAzNiwgOAogIENPTUJPQk9YIGNtYjIsIDY0LCAxMTAsIDE2MCwgMTYwLCBDQlNfU0lNUExFfENCU19EUk9QRE9XTnxDQlNfU09SVHxXU19HUk9VUHxXU19UQUJTVE9QfFdTX1ZTQ1JPTEwKICBMVEVYVCAiJkJhbmRlamE6Iiwgc3RjMywgMTYsIDEzMiwgMzYsIDgKICBDT01CT0JPWCBjbWIzLCA2NCwgMTMwLCAxNjAsIDE2MCwgQ0JTX1NJTVBMRXxDQlNfRFJPUERPV058Q0JTX1NPUlR8V1NfR1JPVVB8V1NfVEFCU1RPUHxXU19WU0NST0xMCiAgR1JPVVBCT1ggIk9yaWVudGHn428iLCBncnAxLCA4LCAxNTYsIDY0LCA1NiwgQlNfR1JPVVBCT1gKICBBVVRPUkFESU9CVVRUT04gIiZSZXRyYXRvIiwgcmFkMSwgMTYsIDE3MCwgNTIsIDEyLCBCU19BVVRPUkFESU9CVVRUT04KICBBVVRPUkFESU9CVVRUT04gIiZQYWlzYWdlbSIsIHJhZDIsIDE2LCAxOTAsIDUyLCAxMiwgQlNfQVVUT1JBRElPQlVUVE9OCiAgR1JPVVBCT1ggIkJvcmRhcyIsIGdycDQsIDgwLCAxNTYsIDE1MiwgNTYsIEJTX0dST1VQQk9YCiAgTFRFWFQgIiZFc3F1ZXJkYToiLCBzdGMxNSwgODgsIDE3MiwgMjEsIDgKICBFRElUVEVYVCBlZHQ0LCAxMTEsIDE3MCwgMzksIDEyLCBXU19UQUJTVE9QfFdTX0dST1VQfFdTX0JPUkRFUgogIExURVhUICImRGlyZWl0YToiLCBzdGMxNiwgMTU5LCAxNzIsIDI3LCA4CiAgRURJVFRFWFQgZWR0NiwgMTg3LCAxNzAsIDM5LCAxMiwgV1NfVEFCU1RPUHxXU19HUk9VUHxXU19CT1JERVIKICBMVEVYVCAiJlN1cGVyaW9yOiIsIHN0YzE3LCA4OCwgMTkyLCAyMSwgOAogIEVESVRURVhUIGVkdDUsIDExMSwgMTkwLCAzOSwgMTIsIFdTX1RBQlNUT1B8V1NfR1JPVVB8V1NfQk9SREVSCiAgTFRFWFQgIiZJbmZlcmlvcjoiLCBzdGMxOCwgMTU5LCAxOTIsIDIzLCA4CiAgRURJVFRFWFQgZWR0NywgMTg3LCAxOTAsIDM5LCAxMiwgV1NfVEFCU1RPUHxXU19HUk9VUHxXU19CT1JERVIKICBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDcxLCAyMjAsIDUwLCAxNCwgQlNfUFVTSEJVVFRPTgogIFBVU0hCVVRUT04gIkNhbmNlbGFyIiwgSURDQU5DRUwsIDEyNiwgMjIwLCA1MCwgMTQKICBQVVNIQlVUVE9OICJJbSZwcmVzc29yYS4uLiIsIHBzaDMsIDE4NCwgMjIwLCA1MCwgMTQKRU5ECgpORVdGSUxFT1BFTk9SRCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAwLCAwLCAyODAsIDE2NApTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfQ09OVEVYVEhFTFAgfCBXU19WSVNJQkxFIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVSB8IFdTX0NMSVBDSElMRFJFTgpDQVBUSU9OICJBYnJpciIKRk9OVCA4LCAiSGVsdiIKewogICAgTFRFWFQJIiZFeGFtaW5hcjoiLElEQ19MT09LSU5TVEFUSUMsNSw2LDMxLDgsIFNTX05PVElGWQogICAgQ09NQk9CT1gJSURDX0xPT0tJTiw0MCwzLDEzNCwzMDAsQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19IQVNTVFJJTkdTIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBMVEVYVAkiIiAsIElEQ19UT09MQkFSU1RBVElDLCAxNzIsIDIsIDEwMiwgMTcsIE5PVCBXU19HUk9VUCB8IE5PVCBXU19WSVNJQkxFCiAgICBMSVNUQk9YCUlEQ19TSEVMTFNUQVRJQyw0LDIwLDI3Miw4NSwgTEJTX1NPUlQgfCBMQlNfTk9JTlRFR1JBTEhFSUdIVCB8IExCU19NVUxUSUNPTFVNTiB8IFdTX0hTQ1JPTEwgfCBOT1QgV1NfVklTSUJMRQoKICAgIExURVhUCSImTm9tZSBkbyBhcnF1aXZvOiIsSURDX0ZJTEVOQU1FU1RBVElDLDUsMTEyLDQ4LDE2LCBTU19OT1RJRlkKICAgIEVESVRURVhUCUlEQ19GSUxFTkFNRSw1NCwxMTEsMTU1LDEyLEVTX0FVVE9IU0NST0xMCgogICAgTFRFWFQJIkFycXVpdm9zIGRvICZ0aXBvIixJRENfRklMRVRZUEVTVEFUSUMsNSwxMzEsNDgsMTYsIFNTX05PVElGWQogICAgQ09NQk9CT1gJSURDX0ZJTEVUWVBFLDU0LDEyOSwxNTUsMTAwLENCU19EUk9QRE9XTiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCgogICAgQ09OVFJPTAkiQWJyaXIgY29tbyAmc29tZW50ZS1sZWl0dXJhIixJRENfT1BFTlJFQURPTkxZLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNTQsMTQ4LDc0LDEwCgogICAgREVGUFVTSEJVVFRPTgkiJkFicmlyIiwJCUlET0ssMjIyLDExMCw1MCwxNAogICAgUFVTSEJVVFRPTgkJIkNhbmNlbGFyIiwJCUlEQ0FOQ0VMLDIyMiwxMjgsNTAsMTQKICAgIFBVU0hCVVRUT04JCSImQWp1ZGEiLAkJcHNoSGVscCwyMjIsMTQ1LDUwLDE0Cn0KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKICAgIElEU19BQk9VVEJPWAkiJlNvYnJlIEZvbGRlclBpY2tlciBUZXN0IgogICAgSURTX0RPQ1VNRU5URk9MREVSUwkiUGFzdGFzIGRlIERvY3VtZW50b3MiCiAgICBJRFNfUEVSU09OQUwJIk1ldXMgRG9jdW1lbnRvcyIKICAgIElEU19GQVZPUklURVMJIkZhdm9yaXRvcyIKICAgIElEU19QQVRICQkiQ2FtaW5obyBkbyBTaXN0ZW1hIgogICAgSURTX0RFU0tUT1AJCSLBcmVhIGRlIFRyYWJhbGhvIgogICAgSURTX0ZPTlRTCQkiRm9udGVzIgogICAgSURTX01ZQ09NUFVURVIJIk1ldSBDb21wdXRhZG9yIgp9CgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQp7CiAgICBJRFNfU1lTVEVNRk9MREVSUwkiUGFzdGFzIGRvIFNpc3RlbWEiCiAgICBJRFNfTE9DQUxIQVJEUklWRVMJIkRpc2NvcyBS7WdpZG9zIExvY2FpcyIKICAgIElEU19GSUxFTk9URk9VTkQJIkFycXVpdm8gbuNvIGVuY29udHJhZG8iCiAgICBJRFNfVkVSSUZZRklMRQkiUG9yIGZhdm9yIHZlcmlmaXF1ZSBzZSBmb2kgZm9ybmVjaWRvIG8gbm9tZSBjb3JyZXRvIGRvIGFycXVpdm8iCiAgICBJRFNfQ1JFQVRFRklMRQkiQXJxdWl2byBu428gZXhpc3RlXG5Wb2PqIGdvc3RhcmlhIGRlIGNyaWEtbG8iCiAgICBJRExfT1ZFUldSSVRFRklMRSAgICAgICAiQXJxdWl2byBq4SBleGlzdGUuXG5Hb3N0YXJpYSBkZSBzdWJzdGl0de0tbG8/IgogICAgSURTX0lOVkFMSURfRklMRU5BTUVfVElUTEUgIkNhcmFjdGVyKGVzKSBpbnbhbGlkb3Mgbm8gY2FtaW5obyIKICAgIElEU19JTlZBTElEX0ZJTEVOQU1FICAgICJVbSBub21lIGRlIGFycXVpdm8gbuNvIHBvZGUgY29udGVyIHF1YWlzcXVlciBkb3Mgc2VndWludGVzIGNhcmFjdGVyZXM6IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAvIDogPCA+IHwiCiAgICBJRFNfUEFUSE5PVEVYSVNUSU5HICAgICAiQ2FtaW5obyBu428gZXhpc3RlIgogICAgSURTX0ZJTEVOT1RFWElTVElORyAgICAgIkFycXVpdm8gbuNvIGV4aXN0ZSIKfQoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKewogICAgSURTX1VQRk9MREVSICAgICAgICAgIlVtIE7tdmVsIEFjaW1hIgogICAgSURTX05FV0ZPTERFUiAgICAgICAgIkNyaWFyIE5vdmEgUGFzdGEiCiAgICBJRFNfTElTVFZJRVcgICAgICAgICAiTGlzdGEiCiAgICBJRFNfUkVQT1JUVklFVyAgICAgICAiRGV0YWxoZXMiCiAgICBJRFNfVE9ERVNLVE9QICAgICAgICAiwXJlYSBkZSBUcmFiYWxobyIKfQoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKewogICAgUEQzMl9QUklOVF9USVRMRQkJCQkiSW1wcmltaXIiCgogICAgUEQzMl9WQUxVRV9VUkVBREFCTEUJCQkiRW50cmFkYSBJbGVn7XZlbCIKICAgIFBEMzJfSU5WQUxJRF9QQUdFX1JBTkdFCQkJIkVzdGUgdmFsb3IgbuNvIHNlIGVuY2FpeGEgbmEgZmFpeGEgZGUgcOFnaW5hc1xuXApQb3IgZmF2b3IgZW50cmUgdW0gdmFsb3IgZW50cmUgJWQgZSAlZC4iCiAgICBQRDMyX0ZST01fTk9UX0FCT1ZFX1RPCQkJIkEgZW50cmFkYSBERSBu428gcG9kZSBleGNlZGVyIEFUyS4iCiAgICBQRDMyX01BUkdJTlNfT1ZFUkxBUAkJCSJBcyBtYXJnZW5zIGVzdONvIGZvcmEgZGFzIG1lZGlkYXMgXApkbyBwYXBlbC5cblBvciBmYXZvciByZWVudHJlIGFzIG1hcmdlbnMuIgogICAgUEQzMl9OUl9PRl9DT1BJRVNfRU1QVFkJCQkiTyBu+m1lcm8gZGUgY/NwaWFzIG7jbyBwb2RlIHRlciB2YWxvciB2YXppby4iCiAgICBQRDMyX1RPT19MQVJHRV9DT1BJRVMJCQkiRXN0YSBncmFuZGUgcXVhbnRpZGFkZSBkZSBj83BpYXMgbuNvIOkgc3Vwb3J0YWRhIFwKcGVsYSBzdWEgaW1wcmVzc29yYS5cblBvciBmYXZvciBlbnRyZSB1bSB2YWxvciBlbnRyZSAxIGUgJWQuIgogICAgUEQzMl9QUklOVF9FUlJPUgkJCQkiT2NvcnJldSB1bSBlcnJvIGRlIGltcHJlc3Pjby4iCiAgICBQRDMyX05PX0RFRkFVTFRfUFJJTlRFUgkJCSJO428gZXhpc3RlIHVtYSBpbXByZXNzb3JhIHBhZHLjby4iCiAgICBQRDMyX0NBTlRfRklORF9QUklOVEVSCQkJIk7jbyDpIHBvc3PtdmVsIGVuY29udHJhciB1bWEgaW1wcmVzc29yYS4iCiAgICBQRDMyX09VVF9PRl9NRU1PUlkJCQkJIk1lbfNyaWEgaW5zdWZpY2llbnRlLiIKICAgIFBEMzJfR0VORVJJQ19FUlJPUgkJCQkiT2NvcnJldSBhbGd1bSBlcnJvLiIKICAgIFBEMzJfRFJJVkVSX1VOS05PV04JCQkJIkRyaXZlciBkZSBpbXByZXNzb3JhIGRlc2NvbmhlY2lkby4iCgogICAgUEQzMl9ERUZBVUxUX1BSSU5URVIJCQkiSW1wcmVzc29yYSBQYWRy4287ICIKICAgIFBEMzJfTlJfT0ZfRE9DVU1FTlRTX0lOX1FVRVVFCQkiRXhpc3RlbSAlZCBkb2N1bWVudG9zIG5hIGZpbGEiCiAgICBQRDMyX1BSSU5UX0FMTF9YX1BBR0VTCQkJIiZUb2RhcyAlZCBw4WdpbmFzIgogICAgUEQzMl9NQVJHSU5TX0lOX0lOQ0hFUwkJCSJNYXJnZW5zIFtwb2xlZ2FkYXNdIgogICAgUEQzMl9NQVJHSU5TX0lOX01JTElNRVRFUlMJCQkiTWFyZ2VucyBbbW1dIgogICAgUEQzMl9NSUxJTUVURVJTCQkJCSJtbSIKCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1JFQURZCQkJIlByb250byIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfUEFVU0VECQkJIlBhdXNhZGE7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfRVJST1IJCQkiRXJybzsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19QRU5ESU5HX0RFTEVUSU9OCSJFeGNsdXPjbyBwZW5kZW50ZTsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19QQVBFUl9KQU0JCSJQYXBlbCBhdG9sYWRvOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1BBUEVSX09VVAkJIlNlbSBwYXBlbDsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19NQU5VQUxfRkVFRAkJIkFsaW1lbnRh5+NvIG1hbnVhbDsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19QQVBFUl9QUk9CTEVNCQkiUHJvYmxlbWFzIGNvbSBvIHBhcGVsOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX09GRkxJTkUJCQkiSW1wcmVzc29yYSBkZXNsaWdhZGE7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfSU9fQUNUSVZFCQkiRS9TIEF0aXZhOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX0JVU1kJCQkiT2N1cGFkYTsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19QUklOVElORwkJIkltcHJpbWluZG87ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfT1VUUFVUX0JJTl9GVUxMCQkiQmFuZGVqYSBkZSBzYe1kYSBlc3ThIGNoZWlhOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX05PVF9BVkFJTEFCTEUJCSJO428gZGlzcG9u7XZlbDsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19XQUlUSU5HCQkJIkVzcGVyYW5kbzsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19QUk9DRVNTSU5HCQkiUHJvY2Vzc2FuZG87ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfSU5JVElBTElaSU5HCQkiSW5pY2lhbGl6YW5kbzsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19XQVJNSU5HX1VQCQkiQXF1ZWNlbmRvOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1RPTkVSX0xPVwkJIlBvdWNvIHRvbmVyOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX05PX1RPTkVSCQkiU2VtIHRvbmVyOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1BBR0VfUFVOVAkJIkxhbudhciBw4WdpbmE7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfVVNFUl9JTlRFUlZFTlRJT04JIkludGVydmVu5+NvIGRvIHVzdeFyaW87ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfT1VUX09GX01FTU9SWQkJIk1lbfNyaWEgaW5zdWZpY2llbnRlOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX0RPT1JfT1BFTgkJIkEgaW1wcmVzc29yYSBlc3ThIGFiZXJ0YTsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19TRVJWRVJfVU5LTk9XTgkJIlNlcnZpZG9yIGRlIGltcHJlc3PjbyBkZXNjb25oZWNpZG87ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfUE9XRVJfU0FWRQkJIk1vZG8gZWNvbvRtaWNvOyAiCn0KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFIC8qIE5vbWVzIGRlIGNvcmVzICovCnsKICAgIElEU19DT0xPUl9CTEFDSyAgICAgIlByZXRvIgogICAgSURTX0NPTE9SX01BUk9PTiAgICAiQ2FzdGFuaG8iCiAgICBJRFNfQ09MT1JfR1JFRU4gICAgICJWZXJkZSIKICAgIElEU19DT0xPUl9PTElWRSAgICAgIlZlcmRlLW9saXZhIgogICAgSURTX0NPTE9SX05BVlkgICAgICAiQXp1bC1tYXJpbmhvIgogICAgSURTX0NPTE9SX1BVUlBMRSAgICAiUm94byIKICAgIElEU19DT0xPUl9URUFMICAgICAgIkF6dWwtcGV0cvNsZW8iCiAgICBJRFNfQ09MT1JfR1JBWSAgICAgICJDaW56YSIKICAgIElEU19DT0xPUl9TSUxWRVIgICAgIlByYXRlYWRvIgogICAgSURTX0NPTE9SX1JFRCAgICAgICAiVmVybWVsaG8iCiAgICBJRFNfQ09MT1JfTElNRSAgICAgICJWZXJkZS1saW3jbyIKICAgIElEU19DT0xPUl9ZRUxMT1cgICAgIkFtYXJlbG8iCiAgICBJRFNfQ09MT1JfQkxVRSAgICAgICJBenVsIgogICAgSURTX0NPTE9SX0ZVQ0hTSUEgICAiRvpjc2lhIgogICAgSURTX0NPTE9SX0FRVUEgICAgICAiQXp1bC1waXNjaW5hIgogICAgSURTX0NPTE9SX1dISVRFICAgICAiQnJhbmNvIgp9Cg==