LyoKICogQ29weXJpZ2h0IDIwMDQgSWx5YSBLb3JuaXlrbwogKiBDb3B5cmlnaHQgMjAxMCBJZ29yIFBhbGl5Y2h1awogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgojaW5jbHVkZSAic2hyZXNkZWYuaCIKCkxBTkdVQUdFIExBTkdfVUtSQUlOSUFOLCBTVUJMQU5HX0RFRkFVTFQKCk1FTlVfMDAxIE1FTlUKQkVHSU4KCU1FTlVJVEVNICImwuXr6OqzILLq7u3q6CIsCUZDSURNX1NIVklFV19CSUdJQ09OCglNRU5VSVRFTSAiJszg67Mgsuru7eroIiwJRkNJRE1fU0hWSUVXX1NNQUxMSUNPTgoJTUVOVUlURU0gIibR7+jx7uoiLAkJRkNJRE1fU0hWSUVXX0xJU1RWSUVXCglNRU5VSVRFTSAiJs/u5PDu4ej2syIsCQlGQ0lETV9TSFZJRVdfUkVQT1JUVklFVwpFTkQKCi8qCiBzaGVsbHZpZXcgYmFja2dyb3VuZCBtZW51CiovCk1FTlVfMDAyIE1FTlUKQkVHSU4KCVBPUFVQICIiCglCRUdJTgoJICBQT1BVUCAiJsLo4+v/5CIKCSAgQkVHSU4KCSAgICBNRU5VSVRFTSAiJsLl6+jqsyCy6u7t6ugiLAlGQ0lETV9TSFZJRVdfQklHSUNPTgoJICAgIE1FTlVJVEVNICImzODrsyCy6u7t6ugiLAlGQ0lETV9TSFZJRVdfU01BTExJQ09OCgkgICAgTUVOVUlURU0gIibR7+jx7uoiLAkJRkNJRE1fU0hWSUVXX0xJU1RWSUVXCgkgICAgTUVOVUlURU0gIibP7uTw7uHo9rMiLAlGQ0lETV9TSFZJRVdfUkVQT1JUVklFVwoJICBFTkQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIFBPUFVQICLC7+7w/+Tq8+Lg8uggJrLq7u3q6CIKCSAgQkVHSU4KCSAgICBNRU5VSVRFTSAix+AgJs3g5+Lu/iIsCTB4MzAJLyogY29sdW1uIDAgKi8KCSAgICBNRU5VSVRFTSAix+AgJtLo7+7sIiwJMHgzMgkvKiBjb2x1bW4gMiAqLwoJICAgIE1FTlVJVEVNICLH4CAm0O7n7LPw7uwiLAkweDMxCS8qIC4uLiAqLwoJICAgIE1FTlVJVEVNICLH4CAmxODy7v4iLAkweDMzCgkgICAgTUVOVUlURU0gU0VQQVJBVE9SCgkgICAgTUVOVUlURU0gIibA4vLu7ODy6Pft7iIsCUZDSURNX1NIVklFV19BVVRPQVJSQU5HRQoJICBFTkQKCSAgTUVOVUlURU0gIsLo8LPi7f/y6CCy6u7t6ugiLAlGQ0lETV9TSFZJRVdfU05BUFRPR1JJRAoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIs7t7uLo8ugiLAkJRkNJRE1fU0hWSUVXX1JFRlJFU0gKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICLC8fLg4ujy6CIsCQlGQ0lETV9TSFZJRVdfSU5TRVJUCgkgIE1FTlVJVEVNICLC8fLg4ujy6CDP7vHo6+Dt7f8iLAlGQ0lETV9TSFZJRVdfSU5TRVJUTElOSwoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgUE9QVVAgItHy4u7w6PLoIgoJICBCRUdJTgoJICAgIE1FTlVJVEVNICLN7uLgICbS5ergIiwJRkNJRE1fU0hWSUVXX05FV0ZPTERFUgoJICAgIE1FTlVJVEVNICLN7uLlICbP7vHo6+Dt7f8iLAlGQ0lETV9TSFZJRVdfTkVXTElOSwoJICAgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBFTkQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICLC6+Dx8uji7vHysyIsCUZDSURNX1NIVklFV19QUk9QRVJUSUVTCglFTkQKRU5ECgovKgogc2hlbGx2aWV3IGl0ZW0gbWVudQoqLwpNRU5VX1NIVl9GSUxFIE1FTlUKQkVHSU4KCVBPUFVQICIiCglCRUdJTgoJICBNRU5VSVRFTSAiJsLo4fDg8ugiCQlGQ0lETV9TSFZJRVdfT1BFTgoJICBNRU5VSVRFTSAiJs/w7uKz5O3o6iIsCQlGQ0lETV9TSFZJRVdfRVhQTE9SRQoJICBNRU5VSVRFTSAiJsKz5Orw6PLoIiwJCUZDSURNX1NIVklFV19PUEVOCgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBNRU5VSVRFTSAiwugm8LPn4PLoIiwJCUZDSURNX1NIVklFV19DVVQKCSAgTUVOVUlURU0gIibK7u+z/yIsCQlGQ0lETV9TSFZJRVdfQ09QWQoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIibR8uLu8Ojy6CDP7vHo6+Dt7f8iLAlGQ0lETV9TSFZJRVdfQ1JFQVRFTElOSwoJICBNRU5VSVRFTSAiwugm5ODr6PLoIiwJCUZDSURNX1NIVklFV19ERUxFVEUKCSAgTUVOVUlURU0gIs/l8OUm6ezl7fPi4PLoIiwJCUZDSURNX1NIVklFV19SRU5BTUUKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICImwuvg8fLo4u7x8rMiLAlGQ0lETV9TSFZJRVdfUFJPUEVSVElFUwoJRU5ECkVORAoKTUVOVV9DUEFORUwgTUVOVQpCRUdJTgogICAgUE9QVVAgIibU4OnrIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiwibo9bPkIiwgSURNX0NQQU5FTF9FWElUCiAgICBFTkQKCiAgICBQT1BVUCAiJsLo4+v/5CIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIibC5evo6rMgsuru7eroIiwgRkNJRE1fU0hWSUVXX0JJR0lDT04KICAgICAgICBNRU5VSVRFTSAiJszg67Mgsuru7eroIiwgRkNJRE1fU0hWSUVXX1NNQUxMSUNPTgogICAgICAgIE1FTlVJVEVNICIm0e/o8e7qIiwgRkNJRE1fU0hWSUVXX0xJU1RWSUVXCiAgICAgICAgTUVOVUlURU0gIibP7uTw7uHo9rMiLCBGQ0lETV9TSFZJRVdfUkVQT1JUVklFVwogICAgRU5ECgogICAgUE9QVVAgIibE7u/u7O7j4CIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIibP8O4g7+Dt5ev8IOrl8PPi4O3t/y4uLiIsIElETV9DUEFORUxfQUJPVVQKICAgIEVORApFTkQKClNIQlJTRk9SRk9MREVSX01TR0JPWCBESUFMT0cgMTUsIDQwLCAxODgsIDE5MgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUgfCBEU19NT0RBTEZSQU1FIHwgRFNfU0VURk9OVCB8IERTXzNETE9PSwpDQVBUSU9OICLO4+v/5CDk7iDy5eroIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKIERFRlBVU0hCVVRUT04gIk9LIiwgMSwgODAsIDE3NiwgNTAsIDEyLCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICLR6uDx8+Lg8ugiLCAyLCAxMzQsIDE3NiwgNTAsIDEyLCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICIiLCBJRERfVElUTEUsIDQsIDQsIDE4MCwgMTIKIExURVhUICIiLCBJRERfU1RBVFVTLCA0LCAyNSwgMTgwLCAxMgogQ09OVFJPTCAiIiwgSUREX1RSRUVWSUVXLCAiU3lzVHJlZVZpZXczMiIsCiAJVFZTX0hBU0JVVFRPTlMgfCBUVlNfSEFTTElORVMgfCBUVlNfTElORVNBVFJPT1QgfAoJV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwKCTQsIDQwLCAxODAsIDEyMAp9CgpTSE5FV0JSU0ZPUkZPTERFUl9NU0dCT1ggRElBTE9HIDE1LCA0MCwgMjE4LCAxOTYKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VIHwgV1NfU0laRUJPWCB8IERTX01PREFMRlJBTUUgfCBEU19TRVRGT05UIHwgRFNfM0RMT09LCkNBUFRJT04gIs7j6//kIOTuIPLl6ugiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogTFRFWFQgIiIsIElERF9USVRMRSwgMTAsIDgsIDE5OCwgMjQKIExURVhUICIiLCBJRERfU1RBVFVTLCAxMCwgMjUsIDE5OCwgMTIKIExURVhUICLS5ergOiIsIElERF9GT0xERVIsIDEwLCAxNTYsIDQwLCAxMgogQ09OVFJPTCAiIiwgSUREX1RSRUVWSUVXLCAiU3lzVHJlZVZpZXczMiIsCglUVlNfSEFTQlVUVE9OUyB8IFRWU19IQVNMSU5FUyB8IFRWU19MSU5FU0FUUk9PVCB8CglXU19CT1JERVIgfCBXU19UQUJTVE9QLAoJMTIsIDM4LCAxOTQsIDEwNQogRURJVFRFWFQgSUREX0ZPTERFUlRFWFQsIDQ2LCAxNTAsIDE2MCwgMTQsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJsfw7uHo8ugg7e7i8yDy5erzIiwgSUREX01BS0VORVdGT0xERVIsIDEyLCAxNzQsIDcwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDEwMiwgMTc0LCA1MCwgMTQsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gItHq4PHz4uDy6CIsIElEQ0FOQ0VMLCAxNTYsIDE3NCwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKfQoKU0hFTExfWUVTVE9BTExfTVNHQk9YIERJQUxPRyAyMDAsIDEwMCwgMjgwLCA5MApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiz+7is+Tu7Ovl7e3/IgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKICAgIERFRlBVU0hCVVRUT04gIibS4OoiLCBJRFlFUywgMzQsIDY5LCA1MywgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAi0uDqIOTr/yAm4vGz9SIsIElERF9ZRVNUT0FMTCwgOTIsIDY5LCA2NSwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAiJs2zIiwgSUROTywgMTYyLCA2OSwgNTMsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gIibR6uDx8+Lg8ugiLCBJRENBTkNFTCwgMjIwLCA2OSwgNTMsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIElDT04gIiIsIElERF9JQ09OLCAxMCwgMTAsIDE2LCAxNgogICAgTFRFWFQgIiIsIElERF9NRVNTQUdFLCA0MCwgMTAsIDIzOCwgNTIsIDAKfQoKU0hFTExfQUJPVVRfTVNHQk9YIERJQUxPRyAxNSwgNDAsIDIyMCwgMTUyClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLP8O4gJXMiCkZPTlQgMTAsICJNUyBTaGVsbCBEbGciCnsKIERFRlBVU0hCVVRUT04gIk9LIiwgSURPSywgMTUzLCAxMzMsIDYwLCAxMiwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJsuz9uXt57P/IFdpbmUuLi4iLCBJRENfQUJPVVRfTElDRU5TRSwgMTUzLCAxMTMsIDYwLCAxMiwgV1NfVEFCU1RPUAogTElTVEJPWCBJRENfQUJPVVRfTElTVEJPWCwgOCwgNjUsIDEzNywgODIsIExCU19OT1RJRlkgfCBXU19WU0NST0xMIHwgV1NfQk9SREVSCiBJQ09OICIiLCBzdGMxLCAxMCwgMTAsIDMwLCAzMAogTFRFWFQgIiIsIElEQ19BQk9VVF9TVEFUSUNfVEVYVDEsIDQwLCAxMCwgMTcwLCAxMAogTFRFWFQgIiIsIElEQ19BQk9VVF9TVEFUSUNfVEVYVDIsIDQwLCAyMiwgMTcwLCAxMAogTFRFWFQgIs/w4Pb+uiDt4CAlcyIsIElEQ19BQk9VVF9TVEFUSUNfVEVYVDMsIDQyLCAzNCwgMTcwLCAxMAogTFRFWFQgItDu5/Du4e3o6uggV2luZToiLCBJRENfQUJPVVRfV0lORV9URVhULCA4LCA1NSwgMTM3LCAxMAp9CgpTSEVMTF9SVU5fRExHIERJQUxPRyAwLCAwLCAyMjcsIDk1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogSUNPTiAiIiwgMTIyOTcsIDcsIDExLCAxOCwgMjAsIFdTX1ZJU0lCTEUKIExURVhUICLC4uXks/L8ILPsJ/8g7/Du4/Dg7OgsIPLl6ugsIOTu6vPs5e3y8yD36CDw5fHz8PEgsu3y5fDt5fLzLCCzIFdpbmUg4rPk6vDouiC/9S4iLCAxMjI4OSwgMzYsIDExLCAxODIsIDE4CiBMVEVYVCAiJsKz5Orw6PLoOiIsIDEyMzA1LCAzLCAzOSwgMzAsIDEwCiBDT05UUk9MICIiLCAxMjI5OCwgIkNPTUJPQk9YIiwgV1NfVEFCU1RPUCB8IFdTX0dST1VQIHwgV1NfVlNDUk9MTCB8IFdTX1ZJU0lCTEUgfCBDQlNfRElTQUJMRU5PU0NST0xMIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX0RST1BET1dOLCAzNiwgMzcsIDE4MywgMTAwCiBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDYyLCA2MywgNTAsIDE0LCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICLR6uDx8+Lg8ugiLCBJRENBTkNFTCwgMTE2LCA2MywgNTAsIDE0LCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICImzuPr/+QuLi4iLCAxMjI4OCwgMTcwLCA2MywgNTAsIDE0LCBXU19UQUJTVE9QCn0KClNUUklOR1RBQkxFCnsKLyoJY29sdW1ucyBpbiB0aGUgc2hlbGx2aWV3CSovCglJRFNfU0hWX0NPTFVNTjEJCSLU4OnrIgoJSURTX1NIVl9DT0xVTU4yCQki0O7n7LPwIgoJSURTX1NIVl9DT0xVTU4zCQki0ujvIgoJSURTX1NIVl9DT0xVTU40CQkix+yz7eXt7iIKCUlEU19TSFZfQ09MVU1ONQkJIsDy8Ojh8/LoIgoJSURTX1NIVl9DT0xVTU42CQki0O7n7LPwIgoJSURTX1NIVl9DT0xVTU43CQkiwrPr/O3o6SDQ7ufss/AiCglJRFNfU0hWX0NPTFVNTjgJCSKy7Cf/IgoJSURTX1NIVl9DT0xVTU45CQkiyu7s5e3y4PCzIgoJSURTX1NIVl9DT0xVTU4xMAkiwuvg8e3o6iIKCUlEU19TSFZfQ09MVU1OMTEJIsPw8+/gIgoJSURTX1NIVl9DT0xVTU5fREVMRlJPTQkizvDo47Pt4Ov87eUg8O7n7LP55e3t/yIKCUlEU19TSFZfQ09MVU1OX0RFTERBVEUJIsTg8uAg4ujk4Ovl7e3/IgoJSURTX1NIVl9DT0xfRE9DUwkixO7q8+zl7fLoIgoJSURTX1NIVl9DT0xfU1RBVFVTCSLR8uDtIgoJSURTX1NIVl9DT0xfTE9DQVRJT04JItDu5+yz+eXt7f8iCglJRFNfU0hWX0NPTF9NT0RFTAkizO7k5ev8IgoKCS8qIHNwZWNpYWwgZm9sZGVycyAqLwoJSURTX0RFU0tUT1AJCSLQ7uHu9+jpIPHys+siCglJRFNfTVlDT01QVVRFUgkJIsyz6SDK7uzvJ/7y5fAiCglJRFNfUkVDWUNMRUJJTl9GT0xERVJfTkFNRSAgICAgICLK7vjo6iIKCUlEU19DT05UUk9MUEFORUwJIs/g7eXr/CDq5fDz4uDt7f8iCgogICAgICAgIC8qIGNvbnRleHQgbWVudXMgKi8KCUlEU19WSUVXX0xBUkdFCQkiJsLl6+jqsyCy6u7t6ugiCglJRFNfVklFV19TTUFMTAkJIibM4OuzILLq7u3q6CIKCUlEU19WSUVXX0xJU1QJCSIm0e/o8e7qIgoJSURTX1ZJRVdfREVUQUlMUwkiJs/u5PDu4ej2syIKCUlEU19TRUxFQ1QJCSLC6Cbh8ODy6CIKCUlEU19PUEVOCQkiwrMm5Orw6PLoIgoKCUlEU19DUkVBVEVGT0xERVJfREVOSUVEICLN5SDi5ODr7vH/IPHy4u7w6PLoIO3u4vMg8uXq8zogwrPk7O7i4CDzIOTu8fLz77MuIgoJSURTX0NSRUFURUZPTERFUl9DQVBUSU9OICLP7uzo6+rgIO/w6CDx8uLu8OXt7bMg7e7i7r8g8uXq6CIKCUlEU19ERUxFVEVJVEVNX0NBUFRJT04gIs+z5PLi5fDk5uXt7f8g4ujr8/fl7e3/IPTg6evzIgoJSURTX0RFTEVURUZPTERFUl9DQVBUSU9OICLPs+Ty4uXw5Obl7e3/IOLo6/P35e3t/yDy5eroIgoJSURTX0RFTEVURUlURU1fVEVYVCAiwugg4u/l4u3l7bMsIPnuIPXu9+Xy5SDi6Ovz9+jy6CAnJTEnPyIKCUlEU19ERUxFVEVNVUxUSVBMRV9URVhUICLC6CDi7+Xi7eXtsywg+e4g9e735fLlIOLo6/P36PLoIPazICUxIOXr5ezl7fLoKLPiKT8iCglJRFNfREVMRVRFU0VMRUNURURfVEVYVCAiwugg4u/l4u3l7bMsIPnuIPXu9+Xy5SDi6Ovz9+jy6CDu4fDg7bMg5evl7OXt8ug/IgoJSURTX1RSQVNISVRFTV9URVhUICLC6CDi7+Xi7eXtsywg+e4g9e735fLlIOKz5LPx6+Dy6CAnJTEnIOIgyu746Oo/IgoJSURTX1RSQVNIRk9MREVSX1RFWFQgIsLoIOLv5eLt5e2zLCD57iD17vfl8uUg4rPks/Hr4PLoICclMScg8uAg4uXx/CC/vyDi7LPx8iDiIMru+OjqPyIKCUlEU19UUkFTSE1VTFRJUExFX1RFWFQgIsLoIOLv5eLt5e2zLCD57iD17vfl8uUg4rPks/Hr4PLoIPazICUxIOXr5ezl7fLoKLPiKSDiIMru+OjqPyIKCUlEU19DQU5UVFJBU0hfVEVYVCAixevl7OXt8iAnJTEnIO3lIOzu5uUg4fPy6CDis+Sz8evg7ejpIOIgyu746OouIMLo5ODr6PLoIOnu4+4g5+Dss/Hy/CD2/O7j7j8iCglJRFNfT1ZFUldSSVRFRklMRV9URVhUICLW/yDy5ergIOLm5SDss/Hy6PL8IPTg6esg5yCz7OXt5ewgJyUxJy5cblxu1e735fLlIOfg7LPt6PLoIOnu4+4/IgoJSURTX09WRVJXUklURUZJTEVfQ0FQVElPTiAiz7Pk8uLl8OTm5e3t/yDP5fDl5+Dv6PHzINTg6evzIgoJSURTX09WRVJXUklURUZPTERFUl9URVhUICLW/yDy5ergIOLm5SDss/Hy6PL8IPLl6vMg5yCz7OXt5ewgJyUxJy5cblxuIlwKCSAgICAi3+r57iD04Onr6CDiIPLl9rMg7/Do5+3g9+Xt7f8g7OD+8vwg8rMg5iCz7OXt4CD57iD04Onr6CDiXG4iXAoJICAgICLu4fDg7bPpIPLl9rMsIOLu7egg4fPk8/L8IOfg7LPt5e2zLiDC6CDi8eUg+eUg4eDm4Lry5SDv5fDl7LPx8ujy6CD36FxuIlwKCSAgICAi8eru77P+4uDy6CDy5erzPyIKCiAgICAgICAgLyogbWVzc2FnZSBib3ggc3RyaW5ncyAqLwogICAgICAgIElEU19SRVNUQVJUX1RJVExFICAgICAgICLP5fDl5+Di4O3y4Obo8ugiCiAgICAgICAgSURTX1JFU1RBUlRfUFJPTVBUICAgICAgItHo7PPr/uLg8ugg7+Xw5efg4uDt8uDm5e3t/yBXaW5kb3dzPyIKICAgICAgICBJRFNfU0hVVERPV05fVElUTEUgICAgICAiwujs6u3z8ugiCiAgICAgICAgSURTX1NIVVRET1dOX1BST01QVCAgICAgIsfg4uXw+Ojy6CDx5fGz/iDw7uHu8uggV2luZT8iCgogICAgICAgIC8qIFJ1biBGaWxlIGRpYWxvZyAqLwogICAgICAgIElEU19SVU5ETEdfRVJST1IgICAgICAgICAgICLN5ezu5uvo4u4g4rPk7uHw4Ofo8ugg5LPg6+7jIMfg7/Px6iDU4Onr8yAo4u3z8vCz+O3/IO/u7Ojr6uApIgogICAgICAgIElEU19SVU5ETEdfQlJPV1NFX0VSUk9SICAgICLN5ezu5uvo4u4g4rPk7uHw4Ofo8ugg5LPg6+7jIM7j6//kICji7fPy8LP47f8g7+7s6Ovq4CkiCiAgICAgICAgSURTX1JVTkRMR19CUk9XU0VfQ0FQVElPTiAgIs7j6//kIgogICAgICAgIElEU19SVU5ETEdfQlJPV1NFX0ZJTFRFUiAgICLC6Oru7fPi4O2zINTg6evoXDAqLmV4ZVwwwvGzINTg6evoXDAqLipcMFwwIgoKICAgICAgICAvKiBzaGVsbCBmb2xkZXIgcGF0aCBkZWZhdWx0IHZhbHVlcyAqLwoJSURTX1BST0dSQU1TICAgICAgICAgICAgICAgICLD7uvu4u3lIOzl7f5cXM/w7uPw4OzoIgoJSURTX1BFUlNPTkFMICAgICAgICAgICAgICAgICLM7r8g5O7q8+zl7fLoIgoJSURTX0ZBVk9SSVRFUyAgICAgICAgICAgICAgICLO4fDg7eUiCglJRFNfU1RBUlRVUCAgICAgICAgICAgICAgICAgIsPu6+7i7eUg7OXt/lxcz/Du4/Dg7OhcXMDi8u7n4O/z8eoiCglJRFNfUkVDRU5UICAgICAgICAgICAgICAgICAgIs3l5ODi7boiCglJRFNfU0VORFRPICAgICAgICAgICAgICAgICAgIsKz5LPx6+Dy6CIKCUlEU19TVEFSVE1FTlUgICAgICAgICAgICAgICAiw+7r7uLt5SDs5e3+IgoJSURTX01ZTVVTSUMgICAgICAgICAgICAgICAgICLM7v8gzPPn6OrgIgoJSURTX01ZVklERU8gICAgICAgICAgICAgICAgICLM7r8g1LPr/OzoIgoJSURTX0RFU0tUT1BESVJFQ1RPUlkgICAgICAgICLQ7uHu9+jpIPHys+siCglJRFNfTkVUSE9PRCAgICAgICAgICAgICAgICAgIszl8OXm7eUg7vLu9+Xt7f8iCglJRFNfVEVNUExBVEVTICAgICAgICAgICAgICAgItjg4evu7egiCglJRFNfQVBQREFUQSAgICAgICAgICAgICAgICAgIkFwcGxpY2F0aW9uIERhdGEiCglJRFNfUFJJTlRIT09EICAgICAgICAgICAgICAgIs/w6O3y5fDoIgoJSURTX0xPQ0FMX0FQUERBVEEgICAgICAgICAgICJMb2NhbCBTZXR0aW5nc1xcQXBwbGljYXRpb24gRGF0YSIKCUlEU19JTlRFUk5FVF9DQUNIRSAgICAgICAgICAiTG9jYWwgU2V0dGluZ3NcXFRlbXBvcmFyeSBJbnRlcm5ldCBGaWxlcyIKCUlEU19DT09LSUVTICAgICAgICAgICAgICAgICAiQ29va2llcyIKCUlEU19ISVNUT1JZICAgICAgICAgICAgICAgICAiTG9jYWwgU2V0dGluZ3NcXEhpc3RvcnkiCglJRFNfUFJPR1JBTV9GSUxFUyAgICAgICAgICAgIlByb2dyYW0gRmlsZXMiCglJRFNfUFJPR1JBTV9GSUxFU1g4NiAgICAgICAgIlByb2dyYW0gRmlsZXMgKHg4NikiCglJRFNfTVlQSUNUVVJFUyAgICAgICAgICAgICAgIszuvyDM4Ov+7eroIgoJSURTX1BST0dSQU1fRklMRVNfQ09NTU9OICAgICJQcm9ncmFtIEZpbGVzXFxDb21tb24gRmlsZXMiCglJRFNfUFJPR1JBTV9GSUxFU19DT01NT05YODYgIlByb2dyYW0gRmlsZXMgKHg4NilcXENvbW1vbiBGaWxlcyIKCUlEU19DT01NT05fRE9DVU1FTlRTICAgICAgICAixO7q8+zl7fLoIgoJSURTX0FETUlOVE9PTFMgICAgICAgICAgICAgICJTdGFydCBNZW51XFxQcm9ncmFtc1xcQWRtaW5pc3RyYXRpdmUgVG9vbHMiCglJRFNfQ09NTU9OX01VU0lDICAgICAgICAgICAgIszz5+jq4CIKCUlEU19DT01NT05fUElDVFVSRVMgICAgICAgICAizODr/u3q6CIKCUlEU19DT01NT05fVklERU8gICAgICAgICAgICAi1LPr/OzoIgoJSURTX0NEQlVSTl9BUkVBICAgICAgICAgICAgICJMb2NhbCBTZXR0aW5nc1xcQXBwbGljYXRpb24gRGF0YVxcTWljcm9zb2Z0XFxDRCBCdXJuaW5nIgoJSURTX0NPTlRBQ1RTICAgICAgICAgICAgICAgICLK7u3y4Ory6CIKCUlEU19MSU5LUyAgICAgICAgICAgICAgICAgICAiz+7x6Ovg7e3/IgoJSURTX1BIT1RPX0FMQlVNUyAgICAgICAgICAgICLM4Ov+7eroXFzR6+Dp5CDP7urg5+giCglJRFNfUExBWUxJU1RTICAgICAgICAgICAgICAgIszz5+jq4Fxcz+vl6evo8fLoIgoJSURTX1BVQkxJQ19ET1dOTE9BRFMgICAgICAgICLH4OLg7fLg5uXt7f8iCglJRFNfUFVCTElDX0dBTUVfVEFTS1MgICAgICAgIk1pY3Jvc29mdFxcV2luZG93c1xcR2FtZUV4cGxvcmVyIgoJSURTX1BVQkxJQ19MSUJSQVJJRVMgICAgICAgICJNaWNyb3NvZnRcXFdpbmRvd3NcXExpYnJhcmllcyIKCUlEU19QVUJMSUNfUklOR1RPTkVTICAgICAgICAiTWljcm9zb2Z0XFxXaW5kb3dzXFxSaW5ndG9uZXMiCglJRFNfU0FNUExFX01VU0lDICAgICAgICAgICAgIszz5+jq4Fxcz/Do6uvg5OggzPPn6OroIgoJSURTX1NBTVBMRV9QSUNUVVJFUyAgICAgICAgICLM4Ov+7eroXFzP8Ojq6+Dk6CDM4Ov+7eqz4iIKCUlEU19TQU1QTEVfUExBWUxJU1RTICAgICAgICAizPPn6OrgXFzP8Ojq6+Dk6CDP6+Xp6+jx8rPiIgoJSURTX1NBTVBMRV9WSURFT1MgICAgICAgICAgICLUs+v87OhcXM/w6Orr4OToIMKz5OXuIgoJSURTX1NBVkVEX0dBTUVTICAgICAgICAgICAgICLH4eXw5ebl7bMgsuPw6CIKCUlEU19TQVZFRF9TRUFSQ0hFUyAgICAgICAgICAiz+748+roIgoJSURTX1VTRVJfUFJPRklMRVMgICAgICAgICAgICLK7vDo8fLz4uD3syIKCUlEU19DT01NT05fT0VNX0xJTktTICAgICAgICAiT0VNIM/u8ejr4O3t/yIKCUlEU19ET0NVTUVOVFMgICAgICAgICAgICAgICAixO7q8+zl7fLoIgoJSURTX0RPV05MT0FEUyAgICAgICAgICAgICAgICLH4OLg7fLg5uXt7f8iCglJRFNfTE9DQUxfQVBQREFUQV9MT1cgICAgICAgIkFwcERhdGFcXExvY2FsTG93IgoKCUlEU19ORVdGT0xERVIJCSLN7uLgINLl6uAiCgoJSURTX0NQQU5FTF9USVRMRSAgICAgICAgICAgICLP4O3l6/wg6uXw8+Lg7e3/IFdpbmUiCglJRFNfQ1BBTkVMX05BTUUgICAgICAgICAgICAgIrLsJ/8iCglJRFNfQ1BBTkVMX0RFU0NSSVBUSU9OICAgICAgIs7v6PEiCgogICAgICAgIElEU19TSExFWEVDX05PQVNTT0MgICAgICAgICAizeUg8eru7fSz4/Pw7uLg7e4g7/Du4/Dg7OggV2luZG93cyDk6/8g4rPk6vDo8vL/IPTg6euz4iD2/O7j7iDy6O/zLiIKfQoKU1RSSU5HVEFCTEUKewpJRFNfTElDRU5TRV9DQVBUSU9OLCAgICAgICAgICAgICLLs/bl7eez/yBXaW5lIgpJRFNfTElDRU5TRSwKIldpbmUguiDis+v87ejsIM/HOyDi6CDs7ubl8uUg7+746PD+4uDy6CDp7uPuIPLgL+Dh7iBcCufss+3+4uDy6CDn47Pk7e4g8+zu4iBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIFwKTGljZW5zZSwg/+rgIO7v8+Hrs+ru4uDt4CBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IOLl8PGzvyBcCjIuMSDLs/bl7eezvywg9+ggKO3gIOLg+CDw7ufx8+QpIO3u4rP47r8g4uXw8bO/LlxuXG5cCldpbmUg8O7n7+7i8f7k5vO68vzx/yDnIO3g5LO6/iwg+e4g4fPk5SDq7vDo8e3o7CwgXArg6+UgwcXHIMHTxNwt38rI1SDDwNDAzdKyyTsg7eDis/L8IOHl5yDt5e/w/+zo9SDj4PDg7fKz6SD57uTuXArP0M7EwMbTIPfoIM/QyMTA0s3O0dKyIMTL3yDPxcLNyNUg1rLLxckuICDE6OKz8vzx/yBHTlUgXApMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSDk6/8g5OXy4Ov87e6/ILPt9O7w7OD2s78uXG5cblwKwugg7+7i6O3tsyDh8+voIO7y8Ojs4PLoIOru77P+IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgXApMaWNlbnNlIPDg5+7sIOcgV2luZTsg/+r57iDtsywg7eDv6Piz8vwg5O4gRnJlZSBTb2Z0d2FyZSBcCkZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuIgp9Cg==