LyogSGV5LCBFbWFjcywgb3BlbiB0aGlzIGZpbGUgd2l0aCAtKi0gY29kaW5nOiBjcDEyNTAgLSotCiAqCiAqIENvcHlyaWdodCAyMDAwIEVyaWMgUG91ZWNoCiAqCiAqIEN6ZWNoIHJlc291cmNlcyBmb3IgTVMgQUNNCiAqIENvcHlyaWdodCAyMDA0IERhdmlkIEtyZWRiYQogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgojaW5jbHVkZSAid2luZWFjbS5oIgoKTEFOR1VBR0UgTEFOR19DWkVDSCwgU1VCTEFOR19ERUZBVUxUCgovKiBDemVjaCBzdHJpbmdzIGluIENQMTI1MCAqLwoKRExHX0FDTUZPUk1BVENIT09TRV9JRCBESUFMT0cgIDEwLCAyMCwgMjI1LCAxMDAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlb9YuxyIHp2dWt1IgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCgogICAgTFRFWFQgICAgICAgICAgICImTuF6ZXY6IiwgLTEsIDUsIDUsIDExNSwgOCwgTk9UIFdTX0dST1VQCgogICAgQ09NQk9CT1ggICAgICAgIElERF9BQ01GT1JNQVRDSE9PU0VfQ01CX0NVU1RPTSwgNSwgMTUsIDExNSwgNjAsCiAgICAgICAgICAgICAgICAgICAgQ0JTX0RST1BET1dOTElTVCB8IENCU19TT1JUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBQVVNIQlVUVE9OICAgICAgIiZVbG+eaXQgamFrbyIsIElERF9BQ01GT1JNQVRDSE9PU0VfQlROX1NFVE5BTUUsIDEyNSwgMTQsIDQ1LCAxNAogICAgUFVTSEJVVFRPTiAgICAgICJPZGViJnJhdCIsIElERF9BQ01GT1JNQVRDSE9PU0VfQlROX0RFTE5BTUUsIDE3NSwgMTQsIDQ1LCAxNAoKICAgIExURVhUICAgICAgICAgICAiJkZvcm3hdDoiLCAtMSwgNSwgNDEsIDQ0LCA4LCBOT1QgV1NfR1JPVVAKCiAgICBDT01CT0JPWCAgICAgICAgSUREX0FDTUZPUk1BVENIT09TRV9DTUJfRk9STUFUVEFHLCA1MCwgMzksIDE3MCwgNjAsCiAgICAgICAgICAgICAgICAgICAgQ0JTX0RST1BET1dOTElTVCB8IENCU19TT1JUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBMVEVYVCAgICAgICAgICAgIiZBdHJpYnV0eToiLCAtMSwgNSwgNTksIDQ0LCA4LCBOT1QgV1NfR1JPVVAKCiAgICBDT01CT0JPWCAgICAgICAgSUREX0FDTUZPUk1BVENIT09TRV9DTUJfRk9STUFULCA1MCwgNTcsIDE3MCwgNjAsCiAgICAgICAgICAgICAgICAgICAgQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCgogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsIElET0ssIDQ4LCA4MCwgNDAsIDE0CiAgICBQVVNIQlVUVE9OICAgICAgIlN0b3JubyIsIElEQ0FOQ0VMLCA5MiwgODAsIDQwLCAxNAogICAgUFVTSEJVVFRPTiAgICAgICJQJm9tb2MiLCBJRERfQUNNRk9STUFUQ0hPT1NFX0JUTl9IRUxQLCAxMzYsIDgwLCA0MCwgMTQKCkVORAo=