LyoKICogUmVnZWRpdCByZXNvdXJjZXMKICoKICogQ29weXJpZ2h0IDIwMDIgUm9iZXJ0IERpY2tlbnNvbgogKiBDb3B5cmlnaHQgMjAwNSBNaWtlIE1jQ29ybWFjawogKiBDb3B5cmlnaHQgMjAwNyBZdW5Tb25nIEh3YW5nKGh5czU0NUBkcmVhbXdpei5jb20pCgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgovKiBLb3JlYW4gcmVzb3VyY2VzICovCgpMQU5HVUFHRSBMQU5HX0tPUkVBTiwgU1VCTEFOR19ORVVUUkFMCgovKgogKiBNZW51CiAqLwoKSURSX1JFR0VESVRfTUVOVSBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAit7nB9r26xq64rigmUikiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICK3ucH2vbrGrriuIMbEwM8gsKHBrr/AseIoJkkpLi4uIiwgICAgSURfUkVHSVNUUllfSU1QT1JUUkVHSVNUUllGSUxFCiAgICAgICAgTUVOVUlURU0gIre5wfa9usauuK4gxsTAzyCzu7q4s7ux4igmRSkuLi4iLCAgICBJRF9SRUdJU1RSWV9FWFBPUlRSRUdJU1RSWUZJTEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiv/iw3SC3ucH2vbrGrriuIL+ssOEoJkMpLi4uIiwgSURfUkVHSVNUUllfQ09OTkVDVE5FVFdPUktSRUdJU1RSWSwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIr/4sN0gt7nB9r26xq64riC/rLDhILL3seIoJkQpLi4uIiwgSURfUkVHSVNUUllfRElTQ09OTkVDVE5FVFdPUktSRUdJU1RSWSwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIsDOvOIoJlApXHRDdHJsK1AiLCAgICAgICAgICAgICBJRF9SRUdJU1RSWV9QUklOVCwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIrOhs7ux4igmWCkiLCAgICAgICAgICAgICAgICAgICBJRF9SRUdJU1RSWV9FWElUCiAgICBFTkQKICAgIFBPUFVQICLG7cH9KCZFKSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIrz2waQoJk0pIiwgICAgICAgICAgICAgICAgICAgICBJRF9FRElUX01PRElGWQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIFBPUFVQICK79bfOILi4temx4igmTikiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIibFsCgmSykiLCAgICAgICAgICAgICAgICAgSURfRURJVF9ORVdfS0VZCiAgICAgICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgICAgICBNRU5VSVRFTSAiua7A2r+tILCqKCZTKSIsICAgICAgICAgICAgSURfRURJVF9ORVdfU1RSSU5HVkFMVUUKICAgICAgICAgICAgTUVOVUlURU0gIsDMwfiwqigmQikiLCAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0JJTkFSWVZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICJEV09SRCCwqigmRCkiLCAgICAgICAgICAgICBJRF9FRElUX05FV19EV09SRFZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICK02cHfILmuwNq/rSCwqigmTSkiLCAgICAgICBJRF9FRElUX05FV19NVUxUSV9TVFJJTkdWQUxVRQogICAgICAgIEVORAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICK76MGmKCZEKVx0RGVsIiwgICAgICAgICAgICAgICAgSURfRURJVF9ERUxFVEUKICAgICAgICBNRU5VSVRFTSAiwMy4pyC52bLZseIoJlIpXHRGMiIsICAgICAgICAgIElEX0VESVRfUkVOQU1FCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIsWwIMDMuKcgurm75ygmQykiLCAgICAgICAgICAgICBJRF9FRElUX0NPUFlLRVlOQU1FCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIsOjseIoJkYpXHRDdHJsK0YiLCAgICAgICAgICAgICBJRF9FRElUX0ZJTkQsIEdSQVlFRAogICAgICAgIE1FTlVJVEVNICK02cC9IMOjseIoJngpXHRGMyIsICAgICAgICAgICAgSURfRURJVF9GSU5ETkVYVCwgR1JBWUVECiAgICBFTkQKICAgIFBPUFVQICK6uLHiKCZWKSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIrvzxcIgx6Wx4sHZKCZCKSIsICAgICAgICAgICAgICBJRF9WSUVXX1NUQVRVU0JBUgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICKzqrSpseIoJkwpIiwgICAgICAgICAgICAgICAgICAgSURfVklFV19TUExJVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICK79bfOILDtxKcoJlIpXHRGNSIsICAgICAgICAgICAgSURfVklFV19SRUZSRVNICiAgICBFTkQKICAgIFBPUFVQICLB8bDcIMOjseIoJkYpIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiwfGw3CDDo7HiIMPfsKEoJkEpLi4uIiwgICAgICAgICAgIElEX0ZBVk9SSVRFU19BRERUT0ZBVk9SSVRFUwogICAgICAgIE1FTlVJVEVNICLB8bDcIMOjseIgwaawxSgmUikuLi4iLCAgICAgICAgICAgSURfRkFWT1JJVEVTX1JFTU9WRUZBVk9SSVRFCiAgICBFTkQKICAgIFBPUFVQICK1tb/yuLsoJkgpIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAitbW/8ri7IMfXuPEoJkgpXHRGMSIsICAgICAgICAgIElEX0hFTFBfSEVMUFRPUElDUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICK3ucH2vbrGrriuIMbtwf2x4iDBpLq4KCZBKSIsICAgSURfSEVMUF9BQk9VVAogICAgRU5ECkVORAoKSURSX1BPUFVQX01FTlVTIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICBQT1BVUCAiIgogIEJFR0lOCglNRU5VSVRFTSAivPbBpCgmTSkiLCAgICAgICAgICAgICAgICAgICAgIElEX0VESVRfTU9ESUZZCglNRU5VSVRFTSAiwMzB+LCqILDtxKGx4iIsICAgICAgICAgICAgICAgIElEX0VESVRfTU9ESUZZX0JJTgoJTUVOVUlURU0gU0VQQVJBVE9SCglNRU5VSVRFTSAiu+jBpigmRClcdERlbCIsICAgICAgICAgICAgICAgIElEX0VESVRfREVMRVRFCglNRU5VSVRFTSAiwMy4pyC52bLZseIoJlIpIiwgICAgICAgICAgICAgIElEX0VESVRfUkVOQU1FCiAgRU5ECiAgUE9QVVAgIiIKICBCRUdJTgogICAgICAgIFBPUFVQICK79bfOILi4temx4igmTikiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIibFsCgmSykiLCAgICAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0tFWQogICAgICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICAgICAgTUVOVUlURU0gIrmuwNq/rSCwqigmUykiLCAgICAgICAgICAgIElEX0VESVRfTkVXX1NUUklOR1ZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICLAzMH4sKooJkIpIiwgICAgICAgICAgICAgICBJRF9FRElUX05FV19CSU5BUllWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiRFdPUkQgsKooJkQpIiwgICAgICAgICAgICAgSURfRURJVF9ORVdfRFdPUkRWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAitNnB3yC5rsDav60gsKooJk0pIiwgICAgICAgSURfRURJVF9ORVdfTVVMVElfU1RSSU5HVkFMVUUKICAgICAgICBFTkQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiu+jBpigmRClcdERlbCIsICAgICAgICAgICAgICAgIElEX0VESVRfREVMRVRFCiAgICAgICAgTUVOVUlURU0gIsDMuKcgudmy2bHiKCZSKVx0RjIiLCAgICAgICAgICBJRF9FRElUX1JFTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICKzu7q4s7ux4igmRSkuLi4iLCAgICAgICAgICAgSURfRURJVF9FWFBPUlQKICAgICAgICBNRU5VSVRFTSAixbAgwMy4pyC6ubvnKCZDKSIsICAgICAgICAgICAgIElEX0VESVRfQ09QWUtFWU5BTUUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiw6Ox4igmRilcdEN0cmwrRiIsICAgICAgICAgICAgIElEX0VESVRfRklORCwgR1JBWUVECiAgRU5ECkVORAoKCi8qCiAqIERpYWxvZwogKi8KCklERF9BRERGQVZPUklURSBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjEwLCA1NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiwfGw3CDDo7HiIMPfsKEiCkZPTlQgOSwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAiwMy4pzoiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTAogICAgREVGUFVTSEJVVFRPTiAgICLIrsDOIixJRE9LLDE0MCwzOCwzMCwxMyxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICLD67zSIixJRENBTkNFTCwxNzUsMzgsMzAsMTMsIFdTX0dST1VQCkVORAoKSUREX0RFTEZBVk9SSVRFIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDkwClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLB8bDcIMOjseIgwaawxSIKRk9OVCA5LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICLAzLinOiIsSURDX1NUQVRJQyw1LDUsMTE5LDgKICAgIExJU1RCT1ggICAgICAgICBJRENfTkFNRV9MSVNULDUsMTUsMjAwLDUyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgTEJTX1NPUlQgfCBMQlNfTk9JTlRFR1JBTEhFSUdIVCB8IFdTX1ZTQ1JPTEwKICAgIERFRlBVU0hCVVRUT04gICAiyK7AziIsSURPSywxNDAsNzEsMzAsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAiw+u80iIsSURDQU5DRUwsMTc1LDcxLDMwLDE0LCBXU19HUk9VUApFTkQKCklERF9FRElUX1NUUklORyBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjEwLCA3NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiua7A2r+tIMbtwf0iCkZPTlQgOSwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAisKogwMy4pzoiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTHwgV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICAgICAisKogtaXAzMXNOiIsSURDX1NUQVRJQyw1LDMwLDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX0RBVEEsNSw0MCwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTAogICAgREVGUFVTSEJVVFRPTiAgICLIrsDOIixJRE9LLDE0MCw1OCwzMCwxNCxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICLD67zSIixJRENBTkNFTCwxNzUsNTgsMzAsMTQsV1NfR1JPVVAKRU5ECgpJRERfRURJVF9EV09SRCBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjEwLCAxMDAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IERTX05PSURMRU1TRyB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkRXT1JEIMbtwf0iCkZPTlQgOSwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAisKogwMy4pzoiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTHwgV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICAgICAisKogtaXAzMXNOiIsSURDX1NUQVRJQyw1LDMwLDkwLDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfREFUQSw1LDQwLDkwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBHUk9VUEJPWCAgICAgICAgIrTcwKciLCBJRENfRFdPUkRfQkFTRSwgMTIwLCAzMCwgODUsIDM3LCBCU19HUk9VUEJPWAogICAgQVVUT1JBRElPQlVUVE9OICIxNiDB+Lz2IiwgSURDX0RXT1JEX0hFWCwgMTMwLCA0MCwgNjAsIDEwLCBXU19UQUJTVE9QCiAgICBBVVRPUkFESU9CVVRUT04gIjEwIMH4vPYiLCBJRENfRFdPUkRfREVDLCAxMzAsIDUyLCA2MCwgMTAsIFdTX1RBQlNUT1AKICAgIERFRlBVU0hCVVRUT04gICAiyK7AziIsSURPSywxNDAsNzcsMzAsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAiw+u80iIsSURDQU5DRUwsMTc1LDc3LDMwLDE0LFdTX0dST1VQCkVORAoKSUREX0VESVRfQklOQVJZIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDEwMApTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfTk9JRExFTVNHIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiwMzB+CCwqiDG7cH9IgpGT05UIDksICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIrCqIMDMuKc6IixJRENfU1RBVElDLDUsNSwxMTksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9OQU1FLDUsMTUsMjAwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgRVNfQVVUT0hTQ1JPTEx8IFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAgICAgIrCqILWlwMzFzToiLElEQ19TVEFUSUMsNSwzMCw5MCw4CiAgICBDT05UUk9MICAgICAgICAgIiIsSURDX1ZBTFVFX0RBVEEsIkhleEVkaXQiLFdTX1RBQlNUT1AsNCw0MCwxNjAsNDAKICAgIERFRlBVU0hCVVRUT04gICAiyK7AziIsSURPSywxNDAsODEsMzAsMTUsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAiw+u80iIsSURDQU5DRUwsMTc1LDgwLDMwLDE1LFdTX0dST1VQCkVORAoKSUREX0VESVRfTVVMVElfU1RSSU5HIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDE3NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAitNnB3yC5rsDav60gxu3B/SIKRk9OVCA5LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICKwqiDAzLinOiIsSURDX1NUQVRJQyw1LDUsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfTkFNRSw1LDE1LDIwMCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IEVTX0FVVE9IU0NST0xMfCBXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICKwqiC1pcDMxc06IixJRENfU1RBVElDLDUsMzAsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfREFUQSw1LDQwLDIwMCwxMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBXU19IU0NST0xMIHwgV1NfVlNDUk9MTCB8IEVTX01VTFRJTElORSB8IEVTX1dBTlRSRVRVUk4KICAgIERFRlBVU0hCVVRUT04gICAiyK7AziIsSURPSywxNDAsMTU4LDMwLDEzLFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIsPrvNIiLElEQ0FOQ0VMLDE3NSwxNTgsMzAsMTMsV1NfR1JPVVAKRU5ECgpJRERfRklORCBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjEwLCA4NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiw6Ox4iIKRk9OVCA5LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICLDo7HiOiIsSURDX1NUQVRJQyw1LDcsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfTkFNRSw0MCw1LDEyNSwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IEVTX0FVVE9IU0NST0xMCiAgICBMVEVYVCAgICAgICAgICAgIsOjseIgv8m8xzoiLElEQ19TVEFUSUMsNSwgMjIsIDExOSwgOAogICAgQ0hFQ0tCT1ggICAgICAgICLFsCIsIElEQ19GSU5EX0tFWVMsIDUsIDM0LCA5MCwgMTAsIFdTX1RBQlNUT1AgfCBXU19HUk9VUCB8IEJTX0FVVE9DSEVDS0JPWAogICAgQ0hFQ0tCT1ggICAgICAgICKwqiDAzLinIiwgSURDX0ZJTkRfVkFMVUVTLCA1LCA0NiwgOTAsIDEwLCBXU19UQUJTVE9QIHwgQlNfQVVUT0NIRUNLQk9YCiAgICBDSEVDS0JPWCAgICAgICAgIrCqILO7v+siLCBJRENfRklORF9DT05URU5ULCA1LCA1OCwgOTAsIDEwLCBXU19UQUJTVE9QIHwgQlNfQVVUT0NIRUNLQk9YCiAgICBDSEVDS0JPWCAgICAgICAgIr/PwPzH0SC03L7uuLggw6Ox4iIsIElEQ19GSU5EX1dIT0xFLCA1LCA3MCwgOTAsIDEwLCBXU19UQUJTVE9QIHwgQlNfQVVUT0NIRUNLQk9YCiAgICBERUZQVVNIQlVUVE9OICAgIsOjseIiLElET0ssMTc1LDMsMzAsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAitN2x4iIsSURDQU5DRUwsMTc1LDIyLDMwLDExLCBXU19HUk9VUApFTkQKCklERF9FWFBPUlRfVEVNUExBVEUgRElBTE9HIERJU0NBUkRBQkxFICA1MCwgNTAsIDI3OCwgNTQKU1RZTEUgRFNfM0RMT09LIHwgRFNfQ09OVFJPTCB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0NMSVBTSUJMSU5HUyB8CldTX0JPUkRFUgpGT05UIDksICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIre5wfa9usauuK4gutK3r7/AseIiLCBJRENfRVhQT1JUX0JBU0UsIDYsIDYsIDI2NiwgNDIsIFdTX0dST1VQCiAgICBBVVRPUkFESU9CVVRUT04gIrjwtc4oJkEpIiwgSURDX0VYUE9SVF9BTEwsIDEyLCAxNSwgMjQ0LCAxMgogICAgQVVUT1JBRElPQlVUVE9OICK8scXDtcggus660Li4KCZFKToiLCBJRENfRVhQT1JUX1NFTEVDVEVELCAxMiwgMzAsIDcwLCAxMgogICAgRURJVFRFWFQgICAgICAgIElEQ19FWFBPUlRfUEFUSCwgODIsIDMwLCAxODQsIDEyCkVORAoKLyoKICogU3RyaW5nIFRhYmxlCiAqLwoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19MSVNUX0NPTFVNTl9OQU1FICAgICLAzLinIgogICAgSURTX0xJU1RfQ09MVU1OX1RZUEUgICAgIsG+t/kiCiAgICBJRFNfTElTVF9DT0xVTU5fREFUQSAgICAitaXAzMXNIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfQVBQX1RJVExFICAgICAgICAgICAit7nB9r26xq64riDG7cH9seIiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEX1JFR0lTVFJZX01FTlUgICAgICAgICK48LXnILe5wfa9usauuK4gwNu+9yC47bfJIMb3x9QiCiAgICBJRF9FRElUX01FTlUgICAgICAgICAgICAixbDAxyCwqiDG7cH9ILjtt8kgxvfH1CIKICAgIElEX1ZJRVdfTUVOVSAgICAgICAgICAgICK3ucH2vbrGrriuIMOiILvnv+vA2iDBpMDHx8+0wiC47bfJIMb3x9QiCiAgICBJRF9GQVZPUklURVNfTUVOVSAgICAgICAiwNrB1iC757/rx8+0wiDFsCDBorHZx8+0wiC47bfJIMb3x9QiCiAgICBJRF9IRUxQX01FTlUgICAgICAgICAgICAit7nB9r26xq64riDG7cH9seIgwaS6uL/NILW1v/K4uyC6uL+pwda0wiC47bfJIMb3x9QiCiAgICBJRF9FRElUX05FV19NRU5VICAgICAgICAiu/UgxbCzqiCwqiC4uLXltMIguO23ySDG98fUIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9FRElUX01PRElGWSAgICAgICAgICAisKogtaXAzMW4ILDtxKGx4iIKICAgIElEX0VESVRfTkVXX0tFWSAgICAgICAgICK79SDFsCC09cfPseIiCiAgICBJRF9FRElUX05FV19TVFJJTkdWQUxVRSAiu/Ugua7A2r+tILCqILT1x8+x4iIKICAgIElEX0VESVRfTkVXX0JJTkFSWVZBTFVFICK79SC52cDMs8q4riCwqiC09cfPseIiCiAgICBJRF9FRElUX05FV19EV09SRFZBTFVFICAiu/UgtPW67SC/9rXlILCqILT1x8+x4iIKICAgIElEX0VESVRfTkVXX01VTFRJX1NUUklOR1ZBTFVFICK79SC02cHfILmuwNq/rSCwqiC09cfPseIiCiAgICBJRF9SRUdJU1RSWV9JTVBPUlRSRUdJU1RSWUZJTEUgIsXYvbrGriDGxMDPwLsgt7nB9r26xq64rr+hILOiv/az1rHiIgogICAgSURfUkVHSVNUUllfRVhQT1JUUkVHSVNUUllGSUxFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAit7nB9r26xq64rsDHIMD8us6zqiDAz7rOutDAuyDF2L26xq4gxsTAz7fOILO7urizu7HiIgogICAgSURfUkVHSVNUUllfQ09OTkVDVE5FVFdPUktSRUdJU1RSWQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIr/4sN0gxMTHu8XNwMcgt7nB9r26xq64riC/rLDhIgogICAgSURfUkVHSVNUUllfRElTQ09OTkVDVE5FVFdPUktSRUdJU1RSWQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIr/4sN0gxMTHu8XNwMcgt7nB9r26xq64riC/rLDhIMfYwaYiCiAgICBJRF9SRUdJU1RSWV9QUklOVCAgICAgICAit7nB9r26xq64riDA/LrOs6ogus660CDAzrzix8+x4iIKLyogICAgSURfSEVMUF9IRUxQVE9QSUNTICAgICAgIre5wfa9usauuK4gxu3B/bHiILW1v/K4uyC/rbHiIiAqLwogICAgSURfSEVMUF9BQk9VVCAgICAgICAgICAgIseusde4siDBpLq4LLn2wa8sIMD6wNuxxyC6uL+pwdax4iIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURfUkVHSVNUUllfRVhJVCAgICAgICAgIre5wfa9usauuK4gxu3B/bHiILOqsKGx4iIKICAgIElEX0ZBVk9SSVRFU19BRERUT0ZBVk9SSVRFUyAiwfGw3CDDo7HiILjxt8+/oSDFsCC09cfPseIiCiAgICBJRF9GQVZPUklURVNfUkVNT1ZFRkFWT1JJVEUgIsHxsNwgw6Ox4iC48bfPv6EgxbAgwfa/7LHiIgogICAgSURfVklFV19TVEFUVVNCQVIgICAgICAgIrvzxcK52SC6uL+pwdawxbOqILz7seKx4iIKICAgIElEX1ZJRVdfU1BMSVQgICAgICAgICAgICK1ziDGssC7ILOqtKm0wiDAp8ShILnZstmx4iIKICAgIElEX1ZJRVdfUkVGUkVTSCAgICAgICAgICLDoiC02b3DIMDQseIiCiAgICBJRF9FRElUX0RFTEVURSAgICAgICAgICAiwMwgvL28xyDB9r/sseIiCiAgICBJRF9FRElUX1JFTkFNRSAgICAgICAgICAiwMwgvL28xyDAzLinudmy2bHiIgogICAgSURfRURJVF9DT1BZS0VZTkFNRSAgICAgIryxxcO1yCDFsMDHIMDMuKfAuyDFrLizuri15b+hILq5u+ciCiAgICBJRF9FRElUX0ZJTkQgICAgICAgICAgICAixbAssKrAzLOqILWlwMzFuL+hvK0gxdi9usauILmuwNq/rSDDo7HiIgogICAgSURfRURJVF9GSU5ETkVYVCAgICAgICAgIsDMwPwgw6Ox4r+hvK0gwfbBpLXIILmuwNq/rbfOILTZvcMgw6Ox4iIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0VSUk9SCQkgICAgIr+ht68iCiAgICBJRFNfQkFEX0tFWQkJICAgICLFsCAnJXMnuKYgwfrAx8fSILz2IL74vcC0z7TZIgogICAgSURTX0JBRF9WQUxVRSAgICAgICAgICAgIrCqICclcye4piDB+sDHx9IgvPYgvvi9wLTPtNkiCiAgICBJRFNfVU5TVVBQT1JURURfVFlQRSAgICAiwMwgxbjA1CAoJWxkKcDHIMWwuKYgsO3EpSC89iC++L3AtM+02SIKICAgIElEU19UT09fQklHX1ZBTFVFICAgICAgICKwqsDMILPKuasgxa60z7TZICglbGQpIgogICAgSURTX0RFTEVURV9CT1hfVElUTEUgICAgIrCqIMH2v+yx4iDIrsDOIgogICAgSURTX0RFTEVURV9CT1hfVEVYVCAgICAgIrTnvcXAuiDAzCCwqiAnJXMnwLsgwaS4u7fOIMH2v+yw2r3AtM+x7j8iCiAgICBJRFNfTkVXS0VZICAgICAgICAgICAgICAiu/UgxbAgIyVkIgogICAgSURTX05FV1ZBTFVFICAgICAgICAgICAgIrv1ILCqICMlZCIKICAgIElEU19OT1RGT1VORCAgICAgICAgICAgICInJXMnwLsgw6PAuyC89iC++L3AtM+02SIKRU5ECgoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgSURTX0ZJTEVESUFMT0dfSU1QT1JUX1RJVExFICAgIre5wMzB9r26xq4gxsTAzyC60revv8Cx4iIKICAgSURTX0ZJTEVESUFMT0dfRVhQT1JUX1RJVExFICAgIre5wfa9usauuK4gxsTAzyCzu7q4s7ux4iIKICAgSURTX0ZJTEVESUFMT0dfRklMVEVSICAgICAgICAgIre5wfa9usauuK4gxsTAz1wwKi5yZWdcMFdpbjl4L05UNCC3ucH2vbrGrriuIMbEwM8gKFJFR0VESVQ0KVwwKi5yZWdcMLjwtecgxsTAzyAoKi4qKVwwKi4qXDBcMCIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICBJRFNfUkVHSVNUUllfUk9PVF9OQU1FICAgICAgICAgICAis7sgxMTHu8XNIgogICBJRFNfUkVHSVNUUllfREVGQVVMVF9WQUxVRSAgICAgICAiKLHiurspIgogICBJRFNfUkVHSVNUUllfVkFMVUVfTk9UX1NFVCAgICAgICAiKLCqwMwgwaTH2MH2wfYgvsrAvSkiCiAgIElEU19SRUdJU1RSWV9WQUxVRV9DQU5UX0RJU1BMQVkgICIosKrAuyC6uL+pIMHZvPYgvvjAvSkiCiAgIElEU19SRUdJU1RSWV9VTktOT1dOX1RZUEUgICAgICAgICIovssgvPYgvvi0wiAlZCkiCkVORAoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCgovKgogKiBURVhUSU5DTFVERQogKi8KCjEgVEVYVElOQ0xVREUgRElTQ0FSREFCTEUKQkVHSU4KICAgICJyZXNvdXJjZS5oXDAiCkVORAoKCgovKgogKiBTdHJpbmcgVGFibGUKICovCgovKgogKlNUUklOR1RBQkxFIERJU0NBUkRBQkxFCiAqQkVHSU4KICogICAgSURfSEVMUF9IRUxQVE9QSUNTICAgICAgIre5wfa9usauuK4gxu3B/bHiILW1v/K4uyC/rbHiLiIKICogICAgSURfSEVMUF9BQk9VVCAgICAgICAgICAgIseusde4siDBpLq4LLn2wa8sIMD6wNuxxyC6uL+pwdax4i4iCiAqRU5ECiAqLwoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwo=