LyoKICogUHJvZ3JhbSBNYW5hZ2VyCiAqCiAqIENvcHlyaWdodCAxOTk2IFVscmljaCBTY2htaWQKICogQ29weXJpZ2h0IDIwMDIgU3lsdmFpbiBQZXRyZW9sbGUKICogQ29weXJpZ2h0IDIwMDQgSGVubmluZyBHZXJoYXJkdAogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgovKiBNZW51ICovCgpNQUlOX01FTlUgTUVOVSBMQU5HVUFHRSBMQU5HX0dFUk1BTiwgU1VCTEFOR19ORVVUUkFMCnsKIFBPUFVQICImRGF0ZWkiIHsKICAgTUVOVUlURU0gIiZOZXUuLi4iLCAgICAgICAgICAgICAgUE1fTkVXCiAgIE1FTlVJVEVNICLWJmZmbmVuXHRFaW5nYWJldGFzdGUiLCAgICAgICAgICAgICBQTV9PUEVOCiAgIE1FTlVJVEVNICImVmVyc2NoaWViZW4uLi5cdEY3IiwgICAgICAgICAgICAgUE1fTU9WRSwgICAgICBHUkFZRUQKICAgTUVOVUlURU0gIiZLb3BpZXJlbi4uLlx0RjgiLCAgICAgICAgICAgICBQTV9DT1BZLCAgICAgIEdSQVlFRAogICBNRU5VSVRFTSAiJkz2c2NoZW5cdEVudGYiLCAgICAgICAgICAgUE1fREVMRVRFCiAgIE1FTlVJVEVNICImRWlnZW5zY2hhZnRlbi4uLlx0QWx0K0VpbmdhYmV0YXN0ZSIsICAgICAgIFBNX0FUVFJJQlVURVMKICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgIE1FTlVJVEVNICImQXVzZvxocmVuLi4uIiwgICAgICAgICAgUE1fRVhFQ1VURQogICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgTUVOVUlURU0gIiZQcm9ncmFtbS1NYW5hZ2VyIGJlZW5kZW4uLi4iLCAgICAgICAgICAgICBQTV9FWElUCiB9CiBQT1BVUCAiJk9wdGlvbmVuIiB7CiAgIE1FTlVJVEVNICImQXV0b21hdGlzY2ggYW5vcmRuZW4iLCAgUE1fQVVUT19BUlJBTkdFCiAgIE1FTlVJVEVNICImU3ltYm9sIG5hY2ggUHJvZ3JhbW1zdGFydCIsICAgIFBNX01JTl9PTl9SVU4KICAgTUVOVUlURU0gIiZFaW5zdGVsbHVuZ2VuIGJlaW0gQmVlbmRlbiBzcGVpY2hlcm4iLCBQTV9TQVZFX1NFVFRJTkdTCiB9CiBQT1BVUCAiJkZlbnN0ZXIiIHsKICAgTUVOVUlURU0gItxiZXImbGFwcGVuZFx0VW1zY2hhbHQrRjUiLCAgICAgICBQTV9PVkVSTEFQCiAgIE1FTlVJVEVNICImTmViZW5laW5hbmRlclx0VW1zY2hhbHQrRjQiLCAgUE1fU0lERV9CWV9TSURFCiAgIE1FTlVJVEVNICImU3ltYm9sZSBhbm9yZG5lbiIsICAgICAgIFBNX0FSUkFOR0UKIH0KIApQT1BVUCAiJkhpbGZlIiB7CiAgIE1FTlVJVEVNICImSW5oYWx0IiwgICAgICAgICBQTV9DT05URU5UUwogICBNRU5VSVRFTSAiJlN1Y2hlbi4uLiIsICAgICAgICAgICBQTV9TRUFSQ0gKICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgIE1FTlVJVEVNICJIaWxmZSAmYmVudXR6ZW4iLCAgICAgUE1fSEVMUE9OSEVMUAogICBNRU5VSVRFTSAiJkxlcm5wcm9ncmFtbSIsICAgICAgICAgUE1fVFVUT1JJQUwKICAgTUVOVUlURU0gU0VQQVJBVE9SCgogICBQT1BVUCAiJkluZm8uLi4iIHsKICAgICBNRU5VSVRFTSAiJkxpemVueiIsICAgICAgICBQTV9MSUNFTlNFCiAgICAgTUVOVUlURU0gIiZLRUlORSBHQVJBTlRJRSIsICAgIFBNX05PX1dBUlJBTlRZCiAgICAgTUVOVUlURU0gItwmYmVyIFdJTkUiLCAgICAgUE1fQUJPVVRfV0lORQogICB9CiB9Cn0KCi8qIERpYWxvZyBgTmV3JyAqLwoKRElBTE9HX05FVyBESUFMT0cgMCwgMCwgMTcwLCA2NQpMQU5HVUFHRSBMQU5HX0dFUk1BTiwgU1VCTEFOR19ORVVUUkFMClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIk5ldWVzIFByb2dyYW1tb2JqZWt0Igp7ClJBRElPQlVUVE9OICAgIiIsICAgICAgICAgICAgICAgICBQTV9ORVdfR1JPVVAsICAgIDEwLCAxNSwgIDEwLCAxNQpMVEVYVCAgICAgICAgICJQcm9ncmFtbSZncnVwcGUiLCAgIC0xLCAgICAyMCwgMTgsICA4MCwgOApSQURJT0JVVFRPTiAgICIiLCAgICAgICAgICAgICAgICAgUE1fTkVXX1BST0dSQU0sICAxMCwgMzUsICAxMCwgMTUKTFRFWFQgICAgICAgICAiJlByb2dyYW1tIiwgLTEsICAyMCwgMzgsICA4MCwgOApERUZQVVNIQlVUVE9OICJPSyIsICAgICAgICAgIElET0ssICAgICAgICAgICAxMDUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkFiYnJlY2hlbiIsICAgICAgSURDQU5DRUwsICAgICAgIDEwNSwgMjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJkhpbGZlIiwgICAgICAgIFBNX0hFTFAsICAgICAgICAxMDUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgTW92ZScgKi8KCkRJQUxPR19NT1ZFIERJQUxPRyAwLCAwLCAyNTAsIDY1CkxBTkdVQUdFIExBTkdfR0VSTUFOLCBTVUJMQU5HX05FVVRSQUwKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiUHJvZ3JhbW0gdmVyc2NoaWViZW4iCnsKTFRFWFQgICAgICAgICAiVmVyc2NoaWViZSBQcm9ncmFtbToiLCAgICAtMSwgICAgICAgICAgICA1LCAgNSwgIDkwLCAxNQpMVEVYVCAgICAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgIFBNX1BST0dSQU0sICAgICAgICAgOTUsICA1LCAgOTAsIDE1CkxURVhUICAgICAgICAgIlZvbiBQcm9ncmFtbWdydXBwZToiLCAtMSwgICAgICAgICAgICA1LCAxMywgIDkwLCAxNQpMVEVYVCAgICAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgIFBNX0ZST01fR1JPVVAsICAgICAgOTUsIDEzLCAgOTAsIDE1CkxURVhUICAgICAgICAgIiZpbiBHcnVwcGU6IiwgICBQTV9UT19HUk9VUF9UWFQsICAgICA1LCAyOCwgMTQwLCAxNQpDT01CT0JPWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX1RPX0dST1VQLCAgICAgICAgIDUsIDM4LCAxNDAsIDUwLCBXU19UQUJTVE9QIHwgQ0JTX0RST1BET1dOTElTVApERUZQVVNIQlVUVE9OICJPSyIsICAgICAgICAgICAgICBJRE9LLCAgICAgICAgICAgICAgMTg1LCAgNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICJBYmJyZWNoZW4iLCAgICAgICAgICBJRENBTkNFTCwgICAgICAgICAgMTg1LCAyNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImSGlsZmUiLCAgICAgICAgICAgIFBNX0hFTFAsICAgICAgICAgICAxODUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgQ29weScgKi8KCkRJQUxPR19DT1BZIERJQUxPRyAwLCAwLCAyNTAsIDY1CkxBTkdVQUdFIExBTkdfR0VSTUFOLCBTVUJMQU5HX05FVVRSQUwKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiUHJvZ3JhbW0ga29waWVyZW4iCnsKTFRFWFQgICAgICAgICAiS29waWVyZSBQcm9ncmFtbToiLCAgICAtMSwgICAgICAgICAgICA1LCAgNSwgIDkwLCAxNQpMVEVYVCAgICAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgIFBNX1BST0dSQU0sICAgICAgICAgOTUsICA1LCAgOTAsIDE1CkxURVhUICAgICAgICAgIlZvbiBQcm9ncmFtbWdydXBwZToiLCAtMSwgICAgICAgICAgICA1LCAxMywgIDkwLCAxNQpMVEVYVCAgICAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgIFBNX0ZST01fR1JPVVAsICAgICAgOTUsIDEzLCAgOTAsIDE1CkxURVhUICAgICAgICAgIiZpbiBHcnVwcGU6IiwgICBQTV9UT19HUk9VUF9UWFQsICAgICA1LCAyOCwgMTQwLCAxNQpDT01CT0JPWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX1RPX0dST1VQLCAgICAgICAgIDUsIDM4LCAxNDAsIDUwLCBXU19UQUJTVE9QIHwgQ0JTX0RST1BET1dOTElTVApERUZQVVNIQlVUVE9OICJPSyIsICAgICAgICAgICAgICBJRE9LLCAgICAgICAgICAgICAgMTg1LCAgNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICJBYmJyZWNoZW4iLCAgICAgICAgICBJRENBTkNFTCwgICAgICAgICAgMTg1LCAyNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImSGlsZmUiLCAgICAgICAgICAgIFBNX0hFTFAsICAgICAgICAgICAxODUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgR3JvdXAgYXR0cmlidXRlcycgKi8KCkRJQUxPR19HUk9VUCBESUFMT0cgMCwgMCwgMjMwLCA2NQpMQU5HVUFHRSBMQU5HX0dFUk1BTiwgU1VCTEFOR19ORVVUUkFMClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlByb2dyYW1tZ3J1cHBlbmVpZ2Vuc2NoYWZ0ZW4iCnsKTFRFWFQgICAgICImQmVzY2hyZWlidW5nOiIsIFBNX0RFU0NSSVBUSU9OX1RYVCwgICAwNSwgMTgsICA1MCwgOApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9ERVNDUklQVElPTiwgICAgICAgNjAsIDE4LCAgOTAsIDEyLCBXU19UQUJTVE9QCkxURVhUICAgICAiJkdydXBwZW5kYXRlaToiLCAgICAgICAgUE1fRklMRV9UWFQsICAgICAgICAgIDA1LCAzOCwgIDUwLCA4CkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0ZJTEUsICAgICAgICAgICAgICA2MCwgMzgsICA5MCwgMTIsIFdTX1RBQlNUT1AKREVGUFVTSEJVVFRPTiAiT0siLCAgICAgICAgICAgIElET0ssICAgICAgICAgICAgICAgIDE1NSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQWJicmVjaGVuIiwgICAgICAgIElEQ0FOQ0VMLCAgICAgICAgICAgIDE1NSwgMjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJkhpbGZlIiwgICAgICAgICAgUE1fSEVMUCwgICAgICAgICAgICAgMTU1LCA0NSwgIDYwLCAxNSwgV1NfVEFCU1RPUAp9CgovKiBEaWFsb2cgYFByb2dyYW0gYXR0cmlidXRlcycgKi8KCkRJQUxPR19QUk9HUkFNIERJQUxPRyAwLCAwLCAyNTAsIDEwNQpMQU5HVUFHRSBMQU5HX0dFUk1BTiwgU1VCTEFOR19ORVVUUkFMClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlByb2dyYW1tZWlnZW5zY2hhZnRlbiIKewpMVEVYVCAgICAgICAgICImQmVzY2hyZWlidW5nOiIsICBQTV9ERVNDUklQVElPTl9UWFQsICAgMDUsIDEwLCAgNjAsIDgKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0RFU0NSSVBUSU9OLCAgICAgICA4MCwgMTAsICA5MCwgMTIsIFdTX1RBQlNUT1AKTFRFWFQgICAgICAgICAiJkJlZmVobHMmemVpbGU6IiwgUE1fQ09NTUFORF9MSU5FX1RYVCwgIDA1LCAyNSwgIDYwLCA4CkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9DT01NQU5EX0xJTkUsICAgICAgODAsIDI1LCAgOTAsIDEyLCBXU19UQUJTVE9QCkxURVhUICAgICAgICAgIiZBcmJlaXRzdmVyemVpY2huaXM6IiwgICAgUE1fRElSRUNUT1JZX1RYVCwgICAgIDA1LCA0MCwgIDYwLCA4CkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9ESVJFQ1RPUlksICAgICAgICAgODAsIDQwLCAgOTAsIDEyLCBXU19UQUJTVE9QCkxURVhUICAgICAgICAgIiZUYXN0ZW5rb21iaW5hdGlvbjoiLCAgICAgIFBNX0hPVF9LRVlfVFhULCAgICAgICAwNSwgNTUsICA2MCwgOApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fSE9UX0tFWSwgICAgICAgICAgIDgwLCA1NSwgIDkwLCAxMiwgV1NfVEFCU1RPUApJQ09OICAgICAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fSUNPTiwgICAgICAgICAgICAgIDIwLCA3MApDSEVDS0JPWCAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fU1lNQk9MLCAgICAgICAgICAgIDgwLCA3NSwgIDEwLCAxMCwgV1NfVEFCU1RPUApMVEVYVCAgICAgICAgICJBbHMgU3kmbWJvbCIsICAgICAgIC0xLCAgICAgICAgICAgICA5NSwgNzUsICA3NSwgMTAKREVGUFVTSEJVVFRPTiAiT0siLCAgICAgICAgICAgICAgICAgICBJRE9LLCAgICAgICAgICAgICAgICAxODUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkFiYnJlY2hlbiIsICAgICAgICAgICAgICAgSURDQU5DRUwsICAgICAgICAgICAgMTg1LCAyNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImRHVyY2hzdWNoZW4uLi4iLCAgICAgICAgICAgICAgIFBNX0JST1dTRSwgICAgICAgICAgIDE4NSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQW5kZXJlcyAmU3ltYm9sLi4uIiwgUE1fT1RIRVJfU1lNQk9MLCAgICAgMTg1LCA2NSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImSGlsZmUiLCAgICAgICAgICAgICAgICAgUE1fSEVMUCwgICAgICAgICAgICAgMTg1LCA4NSwgIDYwLCAxNSwgV1NfVEFCU1RPUAp9CgovKiBEaWFsb2cgYFN5bWJvbCcgKi8KCkRJQUxPR19TWU1CT0wgRElBTE9HIDAsIDAsIDIwMCwgODUKTEFOR1VBR0UgTEFOR19HRVJNQU4sIFNVQkxBTkdfTkVVVFJBTApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJTeW1ib2wgYXVzd+RobGVuIgp7CkxURVhUICAgICAiRGF0ZWkmbmFtZToiLCAgICBQTV9JQ09OX0ZJTEVfVFhULCAgICA1LCAxNSwgIDQwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICBQTV9JQ09OX0ZJTEUsICAgICAgIDQ1LCAxNSwgIDg1LCAxMiwgV1NfVEFCU1RPUApMVEVYVCAgICAgIiZBa3R1ZWxsZXMgU3ltYm9sOiIsIFBNX1NZTUJPTF9MSVNUX1RYVCwgIDUsIDMwLCAxMjUsIDEwCkNPTUJPQk9YICAgICAgICAgICAgICAgICAgICAgICAgIFBNX1NZTUJPTF9MSVNULCAgICAgIDUsIDQwLCAxMjUsIDUwLAogICBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgV1NfVEFCU1RPUApERUZQVVNIQlVUVE9OICJPSyIsICAgICAgICAgSURPSywgICAgICAgICAgICAgIDEzNSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQWJicmVjaGVuIiwgICAgIElEQ0FOQ0VMLCAgICAgICAgICAxMzUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZEdXJjaHN1Y2hlbi4uLiIsICAgIFBNX0JST1dTRSwgICAgICAgICAxMzUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZIaWxmZSIsICAgICAgIFBNX0hFTFAsICAgICAgICAgICAxMzUsIDY1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgRXhlY3V0ZScgKi8KCkRJQUxPR19FWEVDVVRFIERJQUxPRyAwLCAwLCAyMDAsIDg1CkxBTkdVQUdFIExBTkdfR0VSTUFOLCBTVUJMQU5HX05FVVRSQUwKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiUHJvZ3JhbW0gYXVzZvxocmVuIgp7CkxURVhUICAgICAiJkJlZmVobHN6ZWlsZToiLCAtMSwgICAwNSwgMTUsIDEyMCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fQ09NTUFORCwgMDUsIDI1LCAxMjAsIDEyLCBXU19UQUJTVE9QCkNIRUNLQk9YICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgIFBNX1NZTUJPTCwgIDA1LCA0NSwgIDEwLCAxMCwgV1NfVEFCU1RPUApMVEVYVCAgICAgICAgICJBbHMgU3kmbWJvbCIsICAgLTEsICAgMjAsIDQ1LCAxMjAsIDEwCkRFRlBVU0hCVVRUT04gIk9LIiwgICAgICAgICAgICAgICBJRE9LLCAgICAgIDEzNSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQWJicmVjaGVuIiwgICAgICAgICAgIElEQ0FOQ0VMLCAgMTM1LCAyNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImRHVyY2hzdWNoZW4uLi4iLCAgICAgICAgICBQTV9CUk9XU0UsIDEzNSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJkhpbGZlIiwgICAgICAgICAgICAgUE1fSEVMUCwgICAxMzUsIDY1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIFN0cmluZ3MgKi8KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFIExBTkdVQUdFIExBTkdfR0VSTUFOLCBTVUJMQU5HX05FVVRSQUwKewpJRFNfUFJPR1JBTV9NQU5BR0VSLAkJIlByb2dyYW1tLU1hbmFnZXIiCklEU19FUlJPUiwJCQkiRkVITEVSIgpJRFNfV0FSTklORywJCQkiQUNIVFVORyIKSURTX0lORk8sCQkJIkluZm9ybWF0aW9uIgpJRFNfREVMRVRFLAkJCSJM9nNjaGVuIgpJRFNfREVMRVRFX0dST1VQX3MsCQkiTPZzY2hlIFByb2dyYW1tZ3J1cHBlIIQlc5M/IgpJRFNfREVMRVRFX1BST0dSQU1fcywJCSJM9nNjaGUgUHJvZ3JhbW0ghCVzkz8iCklEU19OT1RfSU1QTEVNRU5URUQsCQkiTmljaHQgaW1wbGVtZW50aWVydCIKSURTX0ZJTEVfUkVBRF9FUlJPUl9zLAkJIkZlaGxlciBiZWltIExlc2VuIHZvbiCEJXOTLiIKSURTX0ZJTEVfV1JJVEVfRVJST1JfcywJCSJGZWhsZXIgYmVpbSBTY2hyZWliZW4gdm9uIIQlc5MuIgpJRFNfR1JQRklMRV9SRUFEX0VSUk9SX3MsCSJEaWUgUHJvZ3JhbW1ncnVwcGVuZGF0ZWkghCVzkyBrYW5uIG5pY2h0IGdl9mZmbmV0IHdlcmRlbi5cblxTb2xsIHdlaXRlcmhpbiB2ZXJzdWNodCB3ZXJkZW4sIGRpZXNlIERhdGVpIHp1IGxhZGVuPyIKSURTX09VVF9PRl9NRU1PUlksCQkiWnUgd2VuaWcgSGF1cHRzcGVpY2hlci4iCklEU19XSU5IRUxQX0VSUk9SLAkJIktlaW5lIEhpbGZlIHZlcmb8Z2Jhci4iCklEU19VTktOT1dOX0ZFQVRVUkVfcywJCSJVbmJla2FubnRlIEVpZ2Vuc2NoYWZ0IGluICVzIgpJRFNfRklMRV9OT1RfT1ZFUldSSVRURU5fcywJIkRhdGVpIIQlc5MgZXhpc3RpZXJ0LiBTaWUgd2lyZCBuaWNodCD8YmVyc2NocmllYmVuLiIKSURTX1NBVkVfR1JPVVBfQVNfcywJCSJEaWUgUHJvZ3JhbW1ncnVwcGUgd2lyZCBhbHMghCVzkyBnZXNpY2hlcnQsIHVtIGRhcyDcYmVyc2NocmVpYmVuIGRlciBPcmlnaW5hbGRhdGVpIHp1IHZlcmhpbmRlcm4uIgpJRFNfTk9fSE9UX0tFWSwJCQkiS2VpbmUiCklEU19BTExfRklMRVMsCQkJIkFsbGUgRGF0ZWllbiAoKi4qKSIKSURTX1BST0dSQU1TLAkJCSJQcm9ncmFtbWUiCklEU19MSUJSQVJJRVNfRExMLAkJIkJpYmxpb3RoZWtlbiAoKi5kbGwpIgpJRFNfU1lNQk9MX0ZJTEVTLAkJIlN5bWJvbGRhdGVpZW4iCklEU19TWU1CT0xTX0lDTywJCSJTeW1ib2xlICgqLmljbykiCn0KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFIExBTkdVQUdFIExBTkdfR0VSTUFOLCBTVUJMQU5HX05FVVRSQUwKewpJRFNfTElDRU5TRV9DQVBUSU9OLCAgICAgICAgICAgICJMSVpFTloiCklEU19MSUNFTlNFLAoiRGllc2UgQmlibGlvdGhlayBpc3QgZnJlaWUgU29mdHdhcmU7IFNpZSBk/HJmZW4gc2llIHVudGVyIGRlbiBcCkJlZGluZ3VuZ2VuIGRlciBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHdpZSB2b24gZGVyIFwKRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIHZlcvZmZmVudGxpY2h0LCB3ZWl0ZXJ2ZXJ0ZWlsZW4gdW5kL29kZXIgXAptb2RpZml6aWVyZW47IGVudHdlZGVyIGdlbeTfIFZlcnNpb24gMi4xIGRlciBMaXplbnogb2RlciAobmFjaCBcCklocmVyIE9wdGlvbikgamVkZXIgc3DkdGVyZW4gVmVyc2lvbi5cblwKRGllc2UgQmlibGlvdGhlayB3aXJkIGluIGRlciBIb2ZmbnVuZyB3ZWl0ZXJ2ZXJicmVpdGV0LCBkYd8gc2llIFwKbvx0emxpY2ggc2VpbiB3aXJkLCBqZWRvY2ggT0hORSBJUkdFTkRFSU5FIEdBUkFOVElFLCBhdWNoIG9obmUgXApkaWUgaW1wbGl6aWVydGUgR2FyYW50aWUgZGVyIE1BUktUUkVJRkUgb2RlciBkZXIgVkVSV0VOREJBUktFSVQgXApG3FIgRUlORU4gQkVTVElNTVRFTiBaV0VDSy4gTWVociBEZXRhaWxzIGZpbmRlbiBTaWUgaW4gZGVyIFwKR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLlxuXApTaWUgc29sbHRlbiBlaW5lIEtvcGllIGRlciBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgenVzYW1tZW4gXAptaXQgZGllc2VyIEJpYmxpb3RoZWsgZXJoYWx0ZW4gaGFiZW47IGZhbGxzIG5pY2h0LCBzY2hyZWliZW4gU2llIGFuIFwKZGllIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBcCkJvc3RvbiwgTUEgMDIxMTAsIFVTQS4iCgpJRFNfV0FSUkFOVFlfQ0FQVElPTiwgIktFSU5FIEdBUkFOVElFIgpJRFNfV0FSUkFOVFksCiJEaWVzZSBCaWJsaW90aGVrIHdpcmQgaW4gZGVyIEhvZmZudW5nIHdlaXRlcnZlcmJyZWl0ZXQsIGRh3yBzaWUgbvx0emxpY2ggXApzZWluIHdpcmQsIGplZG9jaCBPSE5FIElSR0VOREVJTkUgR0FSQU5USUUsIGF1Y2ggb2huZSBkaWUgaW1wbGl6aWVydGUgR2FyYW50aWUgXApkZXIgTUFSS1RSRUlGRSBvZGVyIGRlciBWRVJXRU5EQkFSS0VJVCBG3FIgRUlORU4gQkVTVElNTVRFTiBaV0VDSy4gTWVociBEZXRhaWxzIFwKZmluZGVuIFNpZSBpbiBkZXIgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiIKfQo=