LyoKICogQ29weXJpZ2h0IDE5OTcgTWlrb2xhaiBaYWxld3NraQogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICovCgovKgogKiBXQVJOSU5HOiBETyBOT1QgQ0hBTkdFIFRIRSBTSVpFIE9GIFRIRSBTVEFOREFSRCBESUFMT0cgVEVNUExBVEVTLgogKi8KCkxBTkdVQUdFIExBTkdfUE9MSVNILCBTVUJMQU5HX0RFRkFVTFQKCi8qIExURVhUICJXeXN3aWV0bCBwbGlraSAmdHlwdToiLCAxMDg5LCA2LCAxMDQsIDkwLCA5ICovCk9QRU5fRklMRSBESUFMT0cgMzYsIDI0LCAyNzksIDEzNApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJPdHfzcnoiCkZPTlQgOCwgIkhlbHYiCkJFR0lOCglMVEVYVCAiJk5hendhIHBsaWt1OiIsIDEwOTAsIDYsIDYsIDc2LCA5LCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19HUk9VUAoJRURJVFRFWFQgMTE1MiwgNiwgMTYsIDkwLCAxMiwgRVNfQVVUT0hTQ1JPTEwgfCBFU19PRU1DT05WRVJUIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAoJTElTVEJPWCAxMTIwLCA2LCAzMiwgOTAsIDY4LCBMQlNfU1RBTkRBUkQgfCBMQlNfT1dORVJEUkFXRklYRUQgfCBMQlNfSEFTU1RSSU5HUyB8IExCU19ESVNBQkxFTk9TQ1JPTEwgfCBXU19UQUJTVE9QCglMVEVYVCAiJkthdGFsb2dpOiIsIC0xLCAxMTAsIDYsIDkyLCA5LCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19HUk9VUAoJQ09OVFJPTCAiIiwgMTA4OCwgIlNUQVRJQyIsIFNTX05PUFJFRklYIHwgV1NfR1JPVVAsIDExMCwgMTgsIDkyLCA5CglMSVNUQk9YIDExMjEsIDExMCwgMzIsIDkyLCA2OCwgTEJTX1NUQU5EQVJEIHwgTEJTX09XTkVSRFJBV0ZJWEVEIHwgTEJTX0hBU1NUUklOR1MgfCBMQlNfRElTQUJMRU5PU0NST0xMIHwgV1NfVEFCU1RPUAoJTFRFWFQgIld5nHdpZXRsIHBsaWtpICZ0eXB1OiIsIDEwODksIDYsIDEwNCwgOTAsIDksIFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQCglDT05UUk9MICIiLCAxMTM2LCAiQ09NQk9CT1giLCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX0FVVE9IU0NST0xMIHwgV1NfQk9SREVSIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AsIDYsIDExNCwgOTAsIDM2CglMVEVYVCAiJlN0YWNqZSBkeXNr83c6IiwgMTA5MSwgMTEwLCAxMDQsIDkyLCA5LCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19HUk9VUAoJQ09OVFJPTCAiIiwgMTEzNywgIkNPTUJPQk9YIiwgQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19TT1JUIHwgQ0JTX0hBU1NUUklOR1MgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCwgMTEwLCAxMTQsIDkyLCA2OAoJQ09OVFJPTCAiT3R383J6IiwgSURPSywgIkJVVFRPTiIsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsIDIxMiwgNiwgNTYsIDE0CglDT05UUk9MICJBbnVsdWoiLCBJRENBTkNFTCwgIkJVVFRPTiIsIEJTX1BVU0hCVVRUT04gfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsIDIxMiwgMjQsIDU2LCAxNAoJQ09OVFJPTCAiJlBvbW9jIiwgMTAzOCwgIkJVVFRPTiIsIEJTX1BVU0hCVVRUT04gfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsIDIxMiwgNDYsIDU2LCAxNAoJQ09OVFJPTCAiVHlsa28gZG8gb2Rjenl0dSIsIDEwNDAsICJCVVRUT04iLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsIDIwOCwgNjgsIDY5LCAxMgpFTkQKLyogUFJJTlQgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMzYsIDI0LCAyNjQsIDEzNCAqLwpTQVZFX0ZJTEUgRElBTE9HIDM2LCAyNCwgMjc4LCAxMzQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiWmFwaXN6IGpha28iCkZPTlQgOCwgIkhlbHYiCkJFR0lOCglMVEVYVCAiJk5hendhIHBsaWt1OiIsIDEwOTAsIDYsIDYsIDc2LCA5LCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19HUk9VUAoJRURJVFRFWFQgMTE1MiwgNiwgMTYsIDkwLCAxMiwgRVNfQVVUT0hTQ1JPTEwgfCBFU19PRU1DT05WRVJUIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAoJTElTVEJPWCAxMTIwLCA2LCAzMiwgOTAsIDY4LCBMQlNfU1RBTkRBUkQgfCBMQlNfT1dORVJEUkFXRklYRUQgfCBMQlNfSEFTU1RSSU5HUyB8IExCU19ESVNBQkxFTk9TQ1JPTEwgfCBXU19UQUJTVE9QCglMVEVYVCAiJkthdGFsb2dpOiIsIC0xLCAxMTAsIDYsIDkyLCA5LCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19HUk9VUAoJQ09OVFJPTCAiIiwgMTA4OCwgIlNUQVRJQyIsIFNTX05PUFJFRklYIHwgV1NfR1JPVVAsIDExMCwgMTgsIDkyLCA5CglMSVNUQk9YIDExMjEsIDExMCwgMzIsIDkyLCA2OCwgTEJTX1NUQU5EQVJEIHwgTEJTX09XTkVSRFJBV0ZJWEVEIHwgTEJTX0hBU1NUUklOR1MgfCBMQlNfRElTQUJMRU5PU0NST0xMIHwgV1NfVEFCU1RPUAoJTFRFWFQgIlBva2F6dWogcGxpa2kgJnR5cHU6IiwgMTA4OSwgNiwgMTA0LCA5MCwgOSwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfR1JPVVAKCUNPTlRST0wgIiIsIDExMzYsICJDT01CT0JPWCIsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfQVVUT0hTQ1JPTEwgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCwgNiwgMTE0LCA5MCwgMzYKCUxURVhUICImU3RhY2plIGR5c2vzdzoiLCAxMDkxLCAxMTAsIDEwNCwgOTIsIDksIFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQCglDT05UUk9MICIiLCAxMTM3LCAiQ09NQk9CT1giLCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX1NPUlQgfCBDQlNfSEFTU1RSSU5HUyB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QLCAxMTAsIDExNCwgOTIsIDY4CglDT05UUk9MICJPayIsIElET0ssICJCVVRUT04iLCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLCAyMTMsIDYsIDU2LCAxNAoJQ09OVFJPTCAiQW51bHVqIiwgSURDQU5DRUwsICJCVVRUT04iLCBCU19QVVNIQlVUVE9OIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLCAyMTMsIDI0LCA1NiwgMTQKCUNPTlRST0wgIiZQb21vYyIsIDEwMzgsICJCVVRUT04iLCBCU19QVVNIQlVUVE9OIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLCAyMTMsIDQ1LCA1NiwgMTQKCUNPTlRST0wgIiZUeWxrbyBkbyBvZGN6eXR1IiwgMTA0MCwgIkJVVFRPTiIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUCwgMjA4LCA2OCwgNjgsIDEyCkVORAovKiBERUZQVVNIQlVUVE9OICJPayIsIElET0ssIDIwNiwgNiwgNTYsIDE0LCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QICovClBSSU5UIERJQUxPRyAzNiwgMjQsIDI2NCwgMTM0ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkRydWt1aiIKRk9OVCA4LCAiSGVsdiIKQkVHSU4KCUxURVhUICImRHJ1a2Fya2E6IiwgMTA4OCwgNiwgNiwgNDAsIDksIFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQCglMVEVYVCAiIiwgMTA4OSwgNjAsIDYsIDE1MCwgOQoJR1JPVVBCT1ggIkRydWt1aiIsIDEwNzIsIDYsIDMwLCAxNjAsIDY1LCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19UQUJTVE9QCglSQURJT0JVVFRPTiAiJldzenlzdGtvIiwgMTA1NiwgMTYsIDQ1LCA2MCwgMTIsIFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX1RBQlNUT1AKCVJBRElPQlVUVE9OICJXJnli83IiLCAxMDU3LCAxNiwgNjAsIDYwLCAxMiwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfVEFCU1RPUAoJUkFESU9CVVRUT04gIiZTdHJvbnkiLCAxMDU4LCAxNiwgNzUsIDYwLCAxMiwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfVEFCU1RPUAoJQ09OVFJPTCAiRHJ1a3VqIiwgSURPSywgIkJVVFRPTiIsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsIDIwNiwgNiwgNTYsIDE0CglDT05UUk9MICJBbnVsdWoiLCBJRENBTkNFTCwgIkJVVFRPTiIsIEJTX1BVU0hCVVRUT04gfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsIDIwNiwgMjQsIDU2LCAxNAoJQ09OVFJPTCAiJlVzdGF3aWVuaWEiLCAxMDI0LCAiQlVUVE9OIiwgQlNfUFVTSEJVVFRPTiB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUCwgMjA2LCA0NiwgNTYsIDE0CglMVEVYVCAiJk9kOiIsIDEwOTAsIDYwLCA3OCwgMzAsIDksIFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQCglMVEVYVCAiJkRvOiIsIDEwOTEsIDEyMCwgNzgsIDMwLCA5LCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19HUk9VUAoJTFRFWFQgIkpha2+c5iAmd3lkcnVrdToiLCAxMDkyLCA2LCAxMDAsIDc2LCA5LCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19HUk9VUAoJQ09OVFJPTCAiIiwgMTEzNiwgIkNPTUJPQk9YIiwgQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19TT1JUIHwgQ0JTX0hBU1NUUklOR1MgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCwgNzEsIDk4LCA5MiwgNjgKCUNPTlRST0wgIkRydWt1aiBkbyBQbGkma3UiLCAxMDQwLCAiQlVUVE9OIiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLCAxNCwgMTE1LCA5NSwgMTIKCUNPTlRST0wgIlNvcnR1aiBrb3BpZSIsIDEwNDEsICJCVVRUT04iLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsIDE4MiwgMTAyLCA1OSwgMTIKRU5ECi8qICAgIFBVU0hCVVRUT04gICAgICAiQW51bHVqIixJRENBTkNFTCwyMTgsMjMsNDAsMTQsV1NfR1JPVVAgKi8KUFJJTlRfU0VUVVAgRElBTE9HIDM2LCAyNCwgMjY0LCAxMzQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiUHJpbnQgU2V0dXAiCkZPTlQgOCwgIkhlbHYiCkJFR0lOCglHUk9VUEJPWCAiRHJ1a2Fya2EiLCAxMDcyLCA2LCAxMCwgMTgwLCA2NSwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfVEFCU1RPUAoJUkFESU9CVVRUT04gIiZEcnVrYXJrYSBkb215nGxuYSIsIDEwNTYsIDE2LCAyMCwgODAsIDEyLCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19UQUJTVE9QCglMVEVYVCAiW25vbmVdIiwgMTA4OCwgMzUsIDM1LCAxMjAsIDkKCVJBRElPQlVUVE9OICImSW5uYSBkcnVrYXJrYSIsIDEwNTcsIDE2LCA1MCwgODAsIDEyLCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19UQUJTVE9QCglDT05UUk9MICIiLCAxMTM2LCAiQ09NQk9CT1giLCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX1NPUlQgfCBDQlNfSEFTU1RSSU5HUyB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QLCAzNSwgNjUsIDE0OSwgNjgKCUNPTlRST0wgIk9rIiwgSURPSywgIkJVVFRPTiIsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsIDIwNiwgNiwgNTYsIDE0CglDT05UUk9MICJBbnVsdWoiLCBJRENBTkNFTCwgIkJVVFRPTiIsIEJTX1BVU0hCVVRUT04gfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsIDIwNiwgMjQsIDU2LCAxNAoJQ09OVFJPTCAiJk9wY2plIiwgMTAyNCwgIkJVVFRPTiIsIEJTX1BVU0hCVVRUT04gfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsIDIwNiwgNDYsIDU2LCAxNAoJR1JPVVBCT1ggIk9yaWVudGFjamEiLCAxMDczLCA2LCA4NSwgMTAwLCA1MCwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfVEFCU1RPUAoJUkFESU9CVVRUT04gIlcgcCZpb25pZSIsIDEwNTgsIDUwLCAxMDAsIDQwLCAxMiwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfVEFCU1RPUAoJUkFESU9CVVRUT04gIlcgcG8memlvbWllIiwgMTA1OSwgNTAsIDExNSwgNDAsIDEyLCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19UQUJTVE9QCglJQ09OICJMQU5EU0NBUCIsIDEwOTcsIDEwLCA5NSwgMzIsIDMyCglJQ09OICJQT1JUUkFJVCIsIDEwOTgsIDEwLCA5NSwgMzIsIDMyCglHUk9VUEJPWCAiUGFwaWVyIiwgMTA3NCwgMTIwLCA4NSwgMTgwLCA1MCwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfVEFCU1RPUAoJTFRFWFQgIiZXaWVsa2+c5iIsIDEwODksIDEzMCwgOTUsIDMwLCA5LCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19HUk9VUAoJTFRFWFQgIiaPcvNks28iLCAxMDkwLCAxMzAsIDExMCwgMzAsIDksIFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQCglDT05UUk9MICIiLCAxMTM3LCAiQ09NQk9CT1giLCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX1NPUlQgfCBDQlNfSEFTU1RSSU5HUyB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QLCAxNTUsIDk1LCA5MiwgNjgKCUNPTlRST0wgIiIsIDExMzgsICJDT01CT0JPWCIsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfU09SVCB8IENCU19IQVNTVFJJTkdTIHwgV1NfQk9SREVSIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AsIDE1NSwgMTEwLCA5MiwgNjgKRU5ECi8qIENPTlRST0wgIiIgLDcxMCwiU1RBVElDIixXU19CT1JERVJ8U1NfU0lNUExFfFdTX1RBQlNUT1B8V1NfR1JPVVAsIDE1Miw0LDExOCwxMTYgKi8KQ0hPT1NFX0ZPTlQgRElBTE9HIDEzLCA1NCwgMjY0LCAxNDcKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiRm9udCIKRk9OVCA4LCAiSGVsdiIKQkVHSU4KCUxURVhUICImQ3pjaW9ua2E6IiwgMTA4OCwgNiwzLDQwLDksIFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQCglDT05UUk9MICIiLCAxMTM2LCAiQ09NQk9CT1giLCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfSEFTU1RSSU5HUyB8IENCU19ESVNBQkxFTk9TQ1JPTEwgfApDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfU09SVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NJTVBMRSwgNiwxMyw5NCw1NAoJTFRFWFQgIlN0JnlsOiIsIDEwODksIDEwOCwzLDQ0LDksIFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQCglDT05UUk9MICIiLCAxMTM3LCAiQ09NQk9CT1giLCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfSEFTU1RSSU5HUyB8IENCU19ESVNBQkxFTk9TQ1JPTEwgfApXU19WU0NST0xMIHwgV1NfVEFCU1RPUCB8IENCU19TSU1QTEUsIDEwOCwxMyw2NCw1NAoJTFRFWFQgIiZSb3ptaWFyOiIsIDEwOTAsIDE3OSwzLDMwLDksIFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQCglDT05UUk9MICIiLCAxMTM4LCAiQ09NQk9CT1giLCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfSEFTU1RSSU5HUyB8IENCU19ESVNBQkxFTk9TQ1JPTEwgfApXU19WU0NST0xMIHwgV1NfVEFCU1RPUCB8IENCU19TSU1QTEUgfCBDQlNfU09SVCwgMTc5LDEzLDMyLDU0CglDT05UUk9MICJPSyIsIElET0ssICJCVVRUT04iLCBXU19HUk9VUCwgMjE4LDYsNDAsMTQKCUNPTlRST0wgIkFudWx1aiIsIElEQ0FOQ0VMLCAiQlVUVE9OIiwgQlNfUFVTSEJVVFRPTiB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUCwgMjE4LDIzLDQwLDE0CglDT05UUk9MICImWmFzdG9zdWoiLCAxMDI2LCAiQlVUVE9OIiwgV1NfR1JPVVAsIDIxOCw0MCw0MCwxNAoJQ09OVFJPTCAiJlBvbW9jIiwgMTAzOCwgIkJVVFRPTiIsIEJTX1BVU0hCVVRUT04gfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsIDIxOCw1Nyw0MCwxNAoJQ09OVFJPTCAiRWZla3R5IHNwZWNpYWxuZSIsIDEwNzIsICJCVVRUT04iLCBCU19HUk9VUEJPWCB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUCwgNiw3Miw4NCwzNAoJQ09OVFJPTCAiUHJ6JmVrcmWcbG9uYSIsIDEwNDAsICJCVVRUT04iLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19UQUJTVE9QLCAxMCwgODIsIDU4LCAxMAoJQ09OVFJPTCAiUCZvZGtyZZxsb25hIiwgMTA0MSwgIkJVVFRPTiIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX1RBQlNUT1AsIDEwLDk0LDUwLDEwCglMVEVYVCAiJktvbG9yOiIsIDEwOTEsIDYsMTEwLDMwLDksIFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQCglDT05UUk9MICIiLCAxMTM5LCAiQ09NQk9CT1giLCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0hBU1NUUklOR1MgfApDQlNfQVVUT0hTQ1JPTEwgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCwgNiwxMjAsODQsMTAwCglDT05UUk9MICJQcnp5a7NhZCIsIDEwNzMsICJCVVRUT04iLCBCU19HUk9VUEJPWCB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUCwgOTgsNzIsMTYwLDQ5CglDT05UUk9MICJBYUJiWXlaelx4QjMiLCBzdGM1LCAiU1RBVElDIiwgU1NfTk9QUkVGSVggfCBOT1QgV1NfVklTSUJMRSwgMTA0LDgxLDE0OSwzNwpFTkQKLyogUFVTSEJVVFRPTiAiJlJlcGxhY2UiLCAxMDI0LCAxNzQsIDIxLCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogKiBQVVNIQlVUVE9OICJSZXBsYWNlICZBbGwiLCAxMDI1LCAxNzQsIDM4LCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogKiBQVVNIQlVUVE9OICJDYW5jZWwiLCAyLCAxNzQsIDU1LCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogKiBQVVNIQlVUVE9OICImSGVscCIsIDEwMzgsIDE3NCwgNzUsIDUwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAqfQogKi8KRklORERMR09SRCBESUFMT0cgMzQsIDI0LCAyNTEsIDYyClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlpuYWpknyIKRk9OVCA4LCAiSGVsdiIKQkVHSU4KCUxURVhUICImWm5hamSfOiIsIC0xLCA0LCA4LCA0MiwgOCwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfR1JPVVAKCUVESVRURVhUIDExNTIsIDQ2LCA3LCAxMzQsIDEyLCBFU19BVVRPSFNDUk9MTCB8IFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAoJQ09OVFJPTCAiVXd6Z2zqZG5paiB0eWxrbyBjYbNlIHd5cmF6eSIsIDEwNDAsICJCVVRUT04iLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsIDQsIDI2LCAxMDcsIDEyCglDT05UUk9MICImVXd6Z2zqZG5pYWogd2llbGtvnOYgbGl0ZXIiLCAxMDQxLCAiQlVUVE9OIiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfVEFCU1RPUCwgNCwgNDIsIDEwNywgMTIKCUdST1VQQk9YICJLaWVydW5layIsIDEwNzIsIDExMywgMjYsIDY4LCAyOAoJQ09OVFJPTCAiVyAmZ1x4RjNyXHhFQSIsIDEwNTYsICJCVVRUT04iLCBCU19BVVRPUkFESU9CVVRUT04gfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsIDExNywgMzgsIDIwLCAxMgoJQ09OVFJPTCAiVyAmZFx4RjNsIiwgMTA1NywgIkJVVFRPTiIsIEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX1RBQlNUT1AsIDE0NCwgMzgsIDMwLCAxMgoJQ09OVFJPTCAiJlpuYWpknyBuYXN06nBueSIsIElET0ssICJCVVRUT04iLCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLCAxODcsIDUsIDYxLCAxNAoJQ09OVFJPTCAiQW51bHVqIiwgSURDQU5DRUwsICJCVVRUT04iLCBCU19QVVNIQlVUVE9OIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLCAxODcsIDIzLCA2MSwgMTQKCUNPTlRST0wgIiZQb21vYyIsIDEwMzgsICJCVVRUT04iLCBCU19QVVNIQlVUVE9OIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLCAxODcsIDQ1LCA2MSwgMTQKRU5EClJFUExBQ0VETEdPUkQgRElBTE9HIDM2LCAyNCwgMjQ1LCA5NApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJaYW1pZfEiCkZPTlQgOCwgIkhlbHYiCkJFR0lOCglMVEVYVCAiJlpuYWpknzoiLCAtMSwgNCwgOSwgNDgsIDgsIFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQCglFRElUVEVYVCAxMTUyLCA1NCwgNywgMTE0LCAxMiwgRVNfQVVUT0hTQ1JPTEwgfCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKCUxURVhUICJaYW5pZfEgJm5hOiIsIC0xLCA0LCAyNiwgNDgsIDgsIFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQCglFRElUVEVYVCAxMTUzLCA1NCwgMjQsIDExNCwgMTIsIEVTX0FVVE9IU0NST0xMIHwgV1NfQk9SREVSIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCglDT05UUk9MICJVd3pnbOpkbmlqICZ0eWxrbyBjYbNlIHd5cmF6eSIsIDEwNDAsICJCVVRUT04iLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsIDUsIDQ2LCAxMDQsIDEyCglDT05UUk9MICImVXd6Z2zqZG5paiB3aWVsa2+c5iBsaXRlciIsIDEwNDEsICJCVVRUT04iLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19UQUJTVE9QLCA1LCA2MiwgOTYsIDEyCglDT05UUk9MICJabmFqZJ8gbmFzdOpwbnkiLCBJRE9LLCAiQlVUVE9OIiwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUCwgMTc0LCA0LCA2NywgMTQKCUNPTlRST0wgIiZaYW1pZfEiLCAxMDI0LCAiQlVUVE9OIiwgQlNfUFVTSEJVVFRPTiB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUCwgMTc0LCAyMSwgNjgsIDE0CglDT05UUk9MICJaYW1pZfEgJndzenlzdGtpZSIsIDEwMjUsICJCVVRUT04iLCBCU19QVVNIQlVUVE9OIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLCAxNzQsIDM4LCA2OCwgMTQKCUNPTlRST0wgIkFudWx1aiIsIElEQ0FOQ0VMLCAiQlVUVE9OIiwgQlNfUFVTSEJVVFRPTiB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUCwgMTc0LCA1NiwgNjgsIDE0CglDT05UUk9MICImUG9tb2MiLCAxMDM4LCAiQlVUVE9OIiwgQlNfUFVTSEJVVFRPTiB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUCwgMTc0LCA3NSwgNjgsIDE0CkVORAoKQ0hPT1NFX0NPTE9SIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDM2LCAyNCwgMzAwLCAxODUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiQ29sb3IiCkZPTlQgOCwgIkhlbHYiCnsKIExURVhUICImUG9kc3Rhd293ZSBrb2xvcnk6IiwgICAxMDg4LCA0LCAgICA0LCAgMTQwLCAxMAogTFRFWFQgIkRvd29sbmUgJmtvbG9yeToiLCAgMTA4OSwgNCwgICAxMDYsIDE0MCwgMTAKIExURVhUICJLb2xvciB8ICBTb2wmaWQiLCAgMTA5MCwgMTUwLCAxNTEsICA0OCwgMTAKIExURVhUICAgIiZDemVyd29ueToiLCA3MjYgLyoxMDk0Ki8sMjQ5LDEyNiwyNCwxMAogRURJVFRFWFQgNzA2LCAyNzUsMTI0LDE4LDEyLCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICAgIiZaaWVsb255OiIsNzI3LyoxMDk1Ki8sMjQ5LDE0MCwyNCwxMAogRURJVFRFWFQgNzA3LCAyNzUsMTM4LDE4LDEyLCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICAgIiZOaWViaWVza2k6Iiw3MjggLyoxMDk2Ki8sMjQ5LDE1NCwyNCwxMAogRURJVFRFWFQgNzA4LCAyNzUsMTUyLDE4LDEyLCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICAiJkh1ZToiICw3MjMgLyoxMDkxKi8sMjAyLDEyNiwyMiwxMAogRURJVFRFWFQgNzAzLCAyMjYsMTI0LDE4LDEyLCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICAiJlNhdDoiICw3MjQgLyoxMDkyKi8sMjAyLDE0MCwyMiwxMAogRURJVFRFWFQgNzA0LCAyMjYsMTM4LDE4LDEyLCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICAiJkx1bToiICw3MjUgLyoxMDkzKi8sMjAyLDE1NCwyMiwxMAogRURJVFRFWFQgNzA1LCAyMjYsMTUyLDE4LDEyLCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIENPTlRST0wgIiIgLDcyMCwiU1RBVElDIixTU19TSU1QTEV8V1NfVEFCU1RPUHxXU19HUk9VUCw0LDE0LDE0MCw4NgogQ09OVFJPTCAiIiAsNzIxLCJTVEFUSUMiLFNTX1NJTVBMRXxXU19UQUJTVE9QfFdTX0dST1VQLDQsMTE2LDE0MCwyOAogQ09OVFJPTCAiIiAsNzEwLCJTVEFUSUMiLFdTX0JPUkRFUnxTU19TSU1QTEV8V1NfVEFCU1RPUHxXU19HUk9VUCwgMTUyLDQsMTE4LDExNgogQ09OVFJPTCAiIiAsNzAyLCJTVEFUSUMiLFNTX1NJTVBMRXxXU19UQUJTVE9QfFdTX0dST1VQLCAyNzgsNCw4LDExNgogQ09OVFJPTCAiIiAsNzA5LCJTVEFUSUMiLFNTX1NJTVBMRXxXU19UQUJTVE9QfFdTX0dST1VQLCAxNTIsMTI0LDQwLDI2CiBERUZQVVNIQlVUVE9OICJPayIsICBJRE9LLCAgNCwgMTY2LCA0NCwgMTQsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkFudWx1aiIsIElEQ0FOQ0VMLCA1MiwgMTY2LCA0NCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiUG9tb2MiLCAxMDM4LDEwMCwxNjYsIDQ0LCAxNAogUFVTSEJVVFRPTiAiJkRvZGFqIGRvIGRvd29sbnljaCIsICAgIDcxMi8qMTAyNCovLCAxNTIsIDE2NiwgMTQyLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJaJmRlZmluaXVqIEtvbG9yID4+IiwgNzE5LyoxMDI1Ki8sICAgNCwgMTUwLCAxNDIsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gICImaSIsNzEzLDMwMCwyMDAsNCwxNCAgIC8qIGp1c3QgYSBkdW1teTogICdpJyBpcyAgbGlrZSAgJmkgIGluICJzb2wmaWQiICAqLwp9Cg==