QVBBQ0hFIERFUkJZIFNUQVRVUzoKTGFzdCBtb2RpZmllZCBhdCBbJERhdGUkXSBieSAkQXV0aG9yJC4KCldlYiBzaXRlOiBodHRwOi8vZGIuYXBhY2hlLm9yZy9kZXJieS8KClByb2plY3QgU3RhdHVzCgogIERlc2NyaXB0aW9uCgogICJEZXJieSIgYmVnYW4gYXMgYSBzbmFwc2hvdCBvZiB0aGUgSUJNJ3MgQ2xvdWRzY2FwZSBKYXZhIHJlbGF0aW9uYWwgZGF0YWJhc2UuIElCTQogIGNvbnRyaWJ1dGVkIHRoZSBjb2RlIHRvIFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiBhbmQgCiAgYmFzZXMgZnV0dXJlIHZlcnNpb25zIG9mIElCTSBDbG91ZHNjYXBlIG9uIHRoZSBBcGFjaGUtbWFuYWdlZCBjb2RlLgoKICBUbyBwYXJ0aWNpcGF0ZSBpbiBEZXJieSwgeW91IHNob3VsZCBqb2luIHRoZSBtYWlsaW5nIGxpc3QuIEp1c3QgCiAgc2VuZCBhbiBlbXB0eSBtZXNzYWdlIHRvIGRlcmJ5LWRldi1zdWJzY3JpYmVAZGIuYXBhY2hlLm9yZy4KClByb2plY3QgaW5mbwoKICAqIEFzIGEgc3VicHJvamVjdCBvZiB0aGUgQXBhY2hlIERCIHByb2plY3QsIERlcmJ5IGZvbGxvd3MgdGhlIGRpcmVjdGlvbiBvZgogICAgdGhlIEFwYWNoZSBEQiBQTUMuIFNpZ25pZmljYW50IGNvbnRyaWJ1dGlvbnMgb3ZlciBhIHN1c3RhaW5lZAogICAgcGVyaW9kIG9mIHRpbWUgY2FuIGVhcm4gYSBjb250cmlidXRvciBjb21taXQgYWNjZXNzIHRvIHRoZSBjb2RlYmFzZS4KCk9mZmljaWFsIHJlbGVhc2VzOgogKiAxMC4xNS4xLjMgOiBSZWxlYXNlZCAyMDE5LTAzLTExCiAqIDEwLjE0LjIuMCA6IFJlbGVhc2VkIDIwMTgtMDUtMDMKICogMTAuMTQuMS4wIDogUmVsZWFzZWQgMjAxNy0xMC0yMgogKiAxMC4xMy4xLjEgOiBSZWxlYXNlZCAyMDE2LTEwLTI2CiAqIDEwLjEyLjEuMSA6IFJlbGVhc2VkIDIwMTUtMTAtMTEKICogMTAuMTEuMS4xIDogUmVsZWFzZWQgMjAxNC0wOC0yNwogKiAxMC4xMC4yLjAgOiBSZWxlYXNlZCAyMDE0LTA0LTE1CiAqIDEwLjEwLjEuMSA6IFJlbGVhc2VkIDIwMTMtMDQtMTUKICogMTAuOC4zLjAgOiBSZWxlYXNlZCAyMDEyLTExLTE2CiAqIDEwLjkuMS4wIDogUmVsZWFzZWQgMjAxMi0wNi0yNQogKiAxMC44LjIuMiA6IFJlbGVhc2VkIDIwMTEtMTAtMjQKICogMTAuOC4xLjIgOiBSZWxlYXNlZCAyMDExLTA0LTI5CiAqIDEwLjcuMS4xIDogUmVsZWFzZWQgMjAxMC0xMi0xNAogKiAxMC42LjIuMSA6IFJlbGVhc2VkIDIwMTAtMTAtMDYKICogMTAuNi4xLjAgOiBSZWxlYXNlZCAyMDEwLTA1LTE4CiAqIDEwLjUuMy4wIDogUmVsZWFzZWQgMjAwOS0wOC0yMQogKiAxMC41LjIuMCA6IFJlbGVhc2VkIDIwMDktMDctMzAgKERlcHJlY2F0ZWQpCiAqIDEwLjUuMS4xIDogUmVsZWFzZWQgMjAwOS0wNC0yOAogKiAxMC40LjIuMCA6IFJlbGVhc2VkIDIwMDgtMDktMDUKICogMTAuNC4xLjMgOiBSZWxlYXNlZCAyMDA4LTA0LTI0CiAqIDEwLjMuMy4wIDogUmVsZWFzZWQgMjAwOC0wNS0xMgogKiAxMC4zLjIuMSA6IFJlbGVhc2VkIDIwMDctMTItMTAKICogMTAuMy4xLjQgOiBSZWxlYXNlZCAyMDA3LTA4LTEwCiAqIDEwLjIuMi4wIDogUmVsZWFzZWQgMjAwNi0xMi0xOQogKiAxMC4yLjEuNiA6IFJlbGVhc2VkIDIwMDYtMTAtMDIKICogMTAuMS4zLjEgOiBSZWxlYXNlZCAyMDA2LTA2LTMwCiAqIDEwLjEuMi4xIDogUmVsZWFzZWQgMjAwNS0xMS0xOAogKiAxMC4xLjEuMCA6IFJlbGVhc2VkIDIwMDUtMDgtMDMKICogMTAuMC4yLjEgOiBSZWxlYXNlZCAyMDA0LTEyLTA2CgpQRU5ESU5HIElTU1VFUwo9PT09PT09PT09PT09PQoKTm9uZS4KClJFU09MVkVEIElTU1VFUyBTSU5DRSBMQVNUIFNUQVRVUwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCk5vbmUuCgpSRUNFTlQgVk9URVMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpSZWxlYXNlIDEwLjE1LjEuMyB3YXMgYXBwcm92ZWQgYXMgYSByZWxlYXNlIG9uIDIwMTktMDItMjYsIHB1Ymxpc2hlZCBvbiAyMDE5LTAzLTA1LCBhbmQgYW5ub3VuY2VkIG9uIDIwMTktMDMtMTEuClRoZSBjb21tdW5pdHkgdm90ZWQgdG8gc3Vuc2V0IHN1cHBvcnQgZm9yIEphdmEgU0UgOC4gVGhlIHZvdGUgY2xvc2VkIG9uIDIwMTctMDctMDkuClRoZSBjb21tdW5pdHkgdm90ZWQgdG8gc3Vuc2V0IHN1cHBvcnQgZm9yIEphdmEgU0UgNy4gVGhlIHZvdGUgY2xvc2VkIG9uIDIwMTUtMDktMTIuClRoZSBjb21tdW5pdHkgdm90ZWQgdG8gc3Vuc2V0IHN1cHBvcnQgZm9yIEphdmEgU0UgNi4gVGhlIHZvdGUgY2xvc2VkIG9uIDIwMTQtMDktMTUuClJlbGVhc2UgMTAuMTQuMi4wIHdhcyBhcHByb3ZlZCBhcyBhIHJlbGVhc2Ugb24gMjAxOC0wNC0yOSwgcHVibGlzaGVkIG9uIDIwMTgtMDUtMDMsIGFuZCBhbm5vdW5jZWQgb24gMjAxOC0wNS0wNS4KUmVsZWFzZSAxMC4xNC4xLjAgd2FzIGFwcHJvdmVkIGFzIGEgcmVsZWFzZSBvbiAyMDE3LTEwLTExLCBwdWJsaXNoZWQgb24gMjAxNy0xMC0xNCwgYW5kIGFubm91bmNlZCBvbiAyMDE3LTEwLTIyLgpSZWxlYXNlIDEwLjEzLjEuMSB3YXMgYXBwcm92ZWQgYXMgYSByZWxlYXNlIG9uIDIwMTYtMTAtMjQsIHB1Ymxpc2hlZCBvbiAyMDE2LTEwLTI2LCBhbmQgYW5ub3VuY2VkIG9uIDIwMTYtMTAtMjkuClJlbGVhc2UgMTAuMTIuMS4xIHdhcyBhcHByb3ZlZCBhcyBhIHJlbGVhc2Ugb24gMjAxNS0xMC0wNSwgcHVibGlzaGVkIG9uIDIwMTUtMTAtMTAsIGFuZCBhbm5vdW5jZWQgb24gMjAxNS0xMC0xMS4KUmVsZWFzZSAxMC4xMS4xLjEgd2FzIGFwcHJvdmVkIGFzIGEgcmVsZWFzZSBvbiAyMDE0LTA4LTI1LCBwdWJsaXNoZWQgb24gMjAxNC0wOC0yNiwgYW5kIGFubm91bmNlZCBvbiAyMDE0LTA4LTI3LgpSZWxlYXNlIDEwLjEwLjIuMCB3YXMgYXBwcm92ZWQgYXMgYSByZWxlYXNlIG9uIDIwMTQtMDQtMTEsIHB1Ymxpc2hlZCBvbiAyMDE0LTA0LTE1LCBhbmQgYW5ub3VuY2VkIG9uIDIwMTQtMDQtMTcuClJlbGVhc2UgMTAuMTAuMS4xIHdhcyBhcHByb3ZlZCBhcyBhIHJlbGVhc2Ugb24gMjAxMy0wNC0xNSwgcHVibGlzaGVkIG9uIDIwMTMtMDQtMTYsIGFuZCBhbm5vdW5jZWQgb24gMjAxMy0wNC0xNy4KUmVsZWFzZSAxMC44LjMuMCB3YXMgYXBwcm92ZWQgYXMgYSByZWxlYXNlIG9uIDIwMTItMTEtMTYsIHB1Ymxpc2hlZCBvbiAyMDEyLTEyLTEzLCBhbmQgYW5ub3VuY2VkIG9uIDIwMTMtMDEtMzAuClJlbGVhc2UgMTAuOS4xLjAgd2FzIGFwcHJvdmVkIGFzIGEgcmVsZWFzZSBvbiAyMDEyLTA2LTIxLCBwdWJsaXNoZWQgb24gMjAxMi0wNi0yMiwgYW5kIGFubm91bmNlZCBvbiAyMDEyLTA2LTI1LgpSZWxlYXNlIDEwLjguMi4yIHdhcyBhcHByb3ZlZCBhcyBhIHJlbGVhc2Ugb24gMjAxMS0xMC0yNCwgcHVibGlzaGVkIG9uIDIwMTEtMTAtMjQsIGFuZCBhbm5vdW5jZWQgb24gMjAxMS0xMC0yNi4KUmVsZWFzZSAxMC44LjEuMiB3YXMgYXBwcm92ZWQgYXMgYSByZWxlYXNlIG9uIDIwMTEtMDQtMjgsIHB1Ymxpc2hlZCBvbiAyMDExLTA0LTI5LCBhbmQgYW5ub3VuY2VkIG9uIDIwMTEtMDUtMDIuClJlbGVhc2UgMTAuNy4xLjEgd2FzIGFwcHJvdmVkIGFzIGEgcmVsZWFzZSBvbiAyMDEwLTEyLTEzLCBwdWJsaXNoZWQgb24gMjAxMC0xMi0xNCwgYW5kIGFubm91bmNlZCBvbiAyMDEwLTEyLTE1LgpSZWxlYXNlIDEwLjYuMi4xIHdhcyBhcHByb3ZlZCBhcyBhIHJlbGVhc2Ugb24gMjAxMC0xMC0wNiwgcHVibGlzaGVkIG9uIDIwMTAtMTAtMDgsIGFuZCBhbm5vdW5jZWQgb24gMjAxMC0xMC0xMi4KCk9USEVSIE5FV1MKPT09PT09PT09PQoKUkVMRUFTRSBTVEFUVVMKPT09PT09PT09PT09PT0KClRoZSBjb21tdW5pdHkgaXMgd29ya2luZyBvbiBkZXZlbG9wbWVudCBpbiB0aGUgdHJ1bmsuCgoKCgoKUmVmZXJlbmNlczoKIAppdGVtICAgICAgICAgICAgdHlwZSAgICAgIHJlZmVyZW5jZQpTdGF0dXMgZmlsZSAgICAgd3d3ICAgICAgIGh0dHA6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2YvZGIvZGVyYnkvY29kZS90cnVuay9TVEFUVVMKV2Vic2l0ZSAgICAgICAgIHd3dyAgICAgICBodHRwOi8vZGIuYXBhY2hlLm9yZy9kZXJieS8KTWFpbGluZyBsaXN0ICAgIGRldiAgICAgICBkZXJieS1kZXZAZGIuYXBhY2hlLm9yZwpNYWlsaW5nIGxpc3QgICAgdXNlcnMgICAgIGRlcmJ5LXVzZXJAZGIuYXBhY2hlLm9yZwpTb3VyY2UgY29kZSAgICAgU1ZOICAgICAgIC9yZXBvcy9hc2YvZGIvZGVyYnkvY29kZS90cnVuay8KQ29tbWl0dGVycyAgICAgIGp0YSAgICAgICAgICAgICAgICAgIEplYW4gQW5kZXJzb24gKENMQSBvbiBmaWxlKQpDb21taXR0ZXJzICAgICAga2FoYXRsZW4gICAgICAgICAgICAgS251dCBBbmRlcnMgSGF0bGVuIChDTEEgb24gZmlsZSkKQ29tbWl0dGVycyAgICAgIG95dmluZCAgICAgICAgICAgICAgINh5dmluZCBCYWtrc2r4IChDTEEgb24gZmlsZSkKQ29tbWl0dGVycyAgICAgIHNhdGhlZXNoICAgICAgICAgICAgIFNhdGhlZXNoIEJhbmRhcmFtIChDTEEgb24gZmlsZSkKQ29tbWl0dGVycyAgICAgIGpib3luZXMgICAgICAgICAgICAgIEplcmVteSBCb3luZXMgKENMQSBvbiBmaWxlKQpDb21taXR0ZXJzICAgICAgYWJyb3duICAgICAgICAgICAgICAgQXJteSBCcm93biAoQ0xBIG9uIGZpbGUpCkNvbW1pdHRlcnMgICAgICBjb2FyICAgICAgICAgICAgICAgICBLZW4gQ29hciAoQ0xBIG9uIGZpbGUpCkNvbW1pdHRlcnMgICAgICBkamQgICAgICAgICAgICAgICAgICBEYW5pZWwgRGVicnVubmVyIChDTEEgb24gZmlsZSkKQ29tbWl0dGVycyAgICAgIHJoaWxsZWdhcyAgICAgICAgICAgIFJpY2sgSGlsbGVnYXMgKENMQSBvbiBmaWxlKQpDb21taXR0ZXJzICAgICAgYmVybnQgICAgICAgICAgICAgICAgQmVybnQgTS4gSm9obnNlbiAoQ0xBIG9uIGZpbGUpCkNvbW1pdHRlcnMgICAgICBhbmRyZWFzayAgICAgICAgICAgICBBbmRyZWFzIEtvcm5lbGl1c3NlbiAoQ0xBIG9uIGZpbGUpCkNvbW1pdHRlcnMgICAgICBrbWFyc2RlbiAgICAgICAgICAgICBLYXRoZXJpbmUgTWFyc2RlbiAoQ0xBIG9uIGZpbGUpCkNvbW1pdHRlcnMgICAgICBtaWtlbSAgICAgICAgICAgICAgICBNaWtlIE1hdHJpZ2FsaSAoQ0xBIG9uIGZpbGUpCkNvbW1pdHRlcnMgICAgICBtY2ludHlyZSAgICAgICAgICAgICBTYW11ZWwgTWNJbnR5cmUgKENMQSBvbiBmaWxlKQpDb21taXR0ZXJzICAgICAgdG1uayAgICAgICAgICAgICAgICAgVG9tb2hpdG8gTmFrYXlhbWEgKENMQSBvbiBmaWxlKQpDb21taXR0ZXJzICAgICAgYnJ5YW5wZW5kbGV0b24gICAgICAgQnJ5YW4gUGVuZGxldG9uIChDTEEgb24gZmlsZSkKQ29tbWl0dGVycyAgICAgIGZlcm5hbmRhICAgICAgICAgICAgIEZlcm5hbmRhIFBpenpvcm5vIChDTEEgb24gZmlsZSkKQ29tbWl0dGVycyAgICAgIHN1cmVzaHQgICAgICAgICAgICAgIFN1cmVzaCBUaGFsYW1hdGkgKENMQSBvbiBmaWxlKQpDb21taXR0ZXJzICAgICAgZGF2aWR2YyAgICAgICAgICAgICAgRGF2aWQgVmFuIENvdXZlcmluZyAoQ0xBIG9uIGZpbGUpCkNvbW1pdHRlcnMgICAgICBteXJuYXZsICAgICAgICAgICAgICBNeXJuYSBWYW4gTHVudGVyZW4gKENMQSBvbiBmaWxlKQpDb21taXR0ZXJzICAgICAgbWFtdGEgICAgICAgICAgICAgICAgTWFtdGEgU2F0b29yIChDTEEgb24gZmlsZSkKQ29tbWl0dGVycyAgICAgIHNjb3RzbWF0cml4ICAgICAgICAgIExhdXJhIFN0ZXdhcnQgKENMQSBvbiBmaWxlKQpDb21taXR0ZXJzICAgICAga3Jpc3R3YWEgICAgICAgICAgICAgS3Jpc3RpYW4gV2FhZ2FuIChDTEEgb24gZmlsZSkKQ29tbWl0dGVycyAgICAgIGRhZyAgICAgICAgICAgICAgICAgIERhZyBILiBXYW52aWsgKENMQSBvbiBmaWxlKQpDb21taXR0ZXJzICAgICAgb3lzdGVpbmcgICAgICAgICAgICAg2HlzdGVpbiBHcvh2bGVuIChDTEEgb24gZmlsZSkKQ29tbWl0dGVycyAgICAgIGR5cmUgICAgICAgICAgICAgICAgIER5cmUgVGplbGR2b2xsIChDTEEgb24gZmlsZSkKQ29tbWl0dGVycyAgICAgIGNoYWFzZTMgICAgICAgICAgICAgIENhbWlsbGEgSGFhc2UgKENMQSBvbiBmaWxlKQpDb21taXR0ZXJzICAgICAgdm5hcmF5YW5hbiAgICAgICAgICAgViBOYXJheWFuYW4gKENMQSBvbiBmaWxlKQpDb21taXR0ZXJzICAgICAgam9yZ2VubG8gICAgICAgICAgICAgSvhyZ2VuIEz4bGFuZCAoQ0xBIG9uIGZpbGUpCkNvbW1pdHRlcnMgICAgICB0aG9tYW5pZSAgICAgICAgICAgICBUaG9tYXMgTmllbHNlbiAoQ0xBIG9uIGZpbGUpCkNvbW1pdHRlcnMgICAgICBqb2huZW1iICAgICAgICAgICAgICBKb2huIEVtYnJldHNlbiAoQ0xBIG9uIGZpbGUpCkNvbW1pdHRlcnMgICAgICBvbGUgICAgICAgICAgICAgICAgICBPbGUgU29sYmVyZyAoQ0xBIG9uIGZpbGUpCkNvbW1pdHRlcnMgICAgICBsaWx5d2VpICAgICAgICAgICAgICBMaWx5IFdlaSAoQ0xBIG9uIGZpbGUpCkNvbW1pdHRlcnMgICAgICB0aWFnbyAgICAgICAgICAgICAgICBUaWFnbyBFc3BpbmhhIChDTEEgb24gZmlsZSkK