Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@glimmer/vm

Package Overview
Dependencies
Maintainers
11
Versions
245
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@glimmer/vm - npm Package Compare versions

Comparing version 0.32.3 to 0.32.4

2

dist/commonjs/es2017/lib/opcodes.js
"use strict";
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Bjb2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZtL2xpYi9vcGNvZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBPcCB7XG4gIC8qXG4gICAgRG9jdW1lbnRhdGlvbiBUT0RPOlxuXG4gICAgRG9jdW1lbnQgdGhlIGxvY2FsIHZhcmlhYmxlIGxheW91dCBpbiB0aGUgc3RhY2tcbiAgICBkaWFncmFtIGJlZm9yZS1hbmQtYWZ0ZXIuXG5cbiAgICBEb2N1bWVudCB1cGRhdGluZyBvcGNvZGVzIGVtaXR0aW5nIGZyb20gdW5yZWFjaGFibGVcbiAgICBhcHBlbmQgb3Bjb2RlLlxuXG4gICAgRG9jdW1lbnQgdGhlIGVsZW1lbnQgc3RhY2ssIGJsb2NrIHN0YWNrIGFuZCBMaXN0XG4gICAgYmxvY2sgc3RhY2suXG4gICAqL1xuXG4gIC8qKlxuICAgKiBUaGlzIG9wY29kZSBzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZC5cbiAgICovXG4gIEJ1ZyxcblxuICAvLy8gRVhQUkVTU0lPTlNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFdmFsdWF0ZSBhIEhlbHBlci5cbiAgICogRm9ybWF0OlxuICAgKiAgIChIZWxwZXIgaGVscGVyOiNGdW5jdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cyDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2VcbiAgICovXG4gIEhlbHBlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIHZhcmlhYmxlIHJlcHJlc2VudGVkIGJ5IGEgc3ltYm9sIGZyb21cbiAgICogICB0aGUgdmFsdWUgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoU2V0VmFyaWFibGUgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBTZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIGJsb2NrIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFNldEJsb2NrIHN5bWJvbDp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBTeW1ib2xUYWJsZSwgSGFuZGxlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgU2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIHRoZSBjb250ZW50cyBvZiB0aGUgdmFyaWFibGUgcmVwcmVzZW50ZWQgYnlcbiAgICogICBhIHN5bWJvbCAoYSBwb3NpdGlvbmFsIG9yIG5hbWVkIGFyZ3VtZW50KSBvbnRvXG4gICAqICAgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hTeW1ib2wgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBHZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgZnJvbSB0aGUgdG9wIG9mIHRoZVxuICAgKiAgIHN0YWNrLCBhbmQgcHVzaCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgY29uc3RydWN0ZWRcbiAgICogICBieSBgLmdldChwcm9wZXJ0eSlgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldFByb3BlcnR5IHByb3BlcnR5OiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0UHJvcGVydHksXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCB0aGUgc3BlY2lmaWVkIGJvdW5kIGJsb2NrIG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldEJsb2NrIGJsb2NrOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBJbmxpbmVCbG9ja1xuICAgKi9cbiAgR2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIFRSVUUgb250byB0aGUgc3RhY2sgaWYgdGhlIHNwZWNpZmllZCBibG9ja1xuICAgKiAgIGlzIGJvdW5kIGFuZCBGQUxTRSBpZiBpdCBpcyBub3QuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2sgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIGJvb2xlYW5cbiAgICovXG4gIEhhc0Jsb2NrLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUHVzaCBUUlVFIG9udG8gdGhlIHN0YWNrIGlmIHRoZSBzcGVjaWZpZWQgYmxvY2tcbiAgICogICBpcyBib3VuZCAqYW5kKiBoYXMgYXQgbGVhc3Qgb25lIHNwZWNpZmllZCBmb3JtYWxcbiAgICogICBwYXJhbWV0ZXIsIGFuZCBGQUxTRSBvdGhlcndpc2UuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2tQYXJhbXMgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgKGJvb2xlYW4pXG4gICAqL1xuICBIYXNCbG9ja1BhcmFtcyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBjb3VudCBgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZWBzIG9mZiB0aGUgc3RhY2sgYW5kXG4gICAqICAgY29uc3RydWN0IGEgbmV3IENvbmNhdFJlZmVyZW5jZSBmcm9tIHRoZW0gKGluIHJldmVyc2VcbiAgICogICBvcmRlcikuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29uY2F0IGNvdW50OnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0g4oaSXG4gICAqICAgLi4uLCBDb25jYXRSZWZlcmVuY2VcbiAgICovXG4gIENvbmNhdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFB1c2ggYW4gT2JqZWN0IGNvbnN0YW50IG9udG8gdGhlIHN0YWNrIHRoYXQgaXMgbm90XG4gICAqICAgYSBKYXZhU2NyaXB0IHByaW1pdGl2ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoQ29uc3RhbnQgY29uc3RhbnQ6I09iamVjdClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBPcGFxdWVcbiAgICovXG4gIENvbnN0YW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgV3JhcCBhIEphdmFTY3JpcHQgcHJpbWl0aXZlIGluIGEgcmVmZXJlbmNlIGFuZCBwdXNoIGl0XG4gICAqICAgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaFByaW1pdGl2ZSBjb25zdGFudDojUHJpbWl0aXZlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFByaW1pdGl2ZVxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBUaGUgdHdvIGhpZ2ggYml0cyBvZiB0aGUgY29uc3RhbnQgcmVmZXJlbmNlIGRlc2NyaWJlXG4gICAqICAgdGhlIGtpbmQgb2YgcHJpbWl0aXZlOlxuICAgKlxuICAgKiAgIDAwOiBudW1iZXJcbiAgICogICAwMTogc3RyaW5nXG4gICAqICAgMTA6IHRydWUgfCBmYWxzZSB8IG51bGwgfCB1bmRlZmluZWRcbiAgICovXG4gIFByaW1pdGl2ZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb252ZXJ0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGludG8gYSBwcmltaXRpdmUgcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFByaW1pdGl2ZVJlZmVyZW5jZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFByaW1pdGl2ZSDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8UHJpbWl0aXZlPlxuICAgKi9cbiAgUHJpbWl0aXZlUmVmZXJlbmNlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbnZlcnQgdGhlIHRvcCBvZiB0aGUgc3RhY2sgaW50byBhIG51bWJlci5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChSZWlmeVUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8dTMyPiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8dTMyPiwgdTMyXG4gICAqL1xuICBSZWlmeVUzMixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBEdXBsaWNhdGUgYW5kIHB1c2ggaXRlbSBmcm9tIGFuIG9mZnNldCBpbiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoRHVwIHJlZ2lzdGVyOnUzMiwgb2Zmc2V0OnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIE9wYXF1ZSDihpJcbiAgICogICAuLi4sIE9wYXF1ZSwgT3BhcXVlXG4gICAqL1xuICBEdXAsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUG9wIE4gaXRlbXMgb2ZmIHRoZSBzdGFjayBhbmQgdGhyb3cgYXdheSB0aGUgdmFsdWUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoUG9wKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgT3BhcXVlLCAuLi4sIE9wYXF1ZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFBvcCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBMb2FkIGEgdmFsdWUgaW50byBhIHJlZ2lzdGVyXG4gICAqIEZvcm1hdDpcbiAgICogICAoTG9hZCByZWdpc3Rlcjp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBPcGFxdWUg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBMb2FkLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEZldGNoIGEgdmFsdWUgZnJvbSBhIHJlZ2lzdGVyXG4gICAqIEZvcm1hdDpcbiAgICogICAoRmV0Y2ggcmVnaXN0ZXI6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIE9wYXF1ZVxuICAgKi9cbiAgRmV0Y2gsXG5cbiAgLy8vIFBSRUxVREUgJiBFWElUXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIG5ldyByb290IHNjb3BlIG9udG8gdGhlIHNjb3BlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFJvb3RTY29wZSBzeW1ib2xzOnUzMiBiaW5kQ2FsbGVyU2NvcGU6Ym9vbClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIEEgcm9vdCBzY29wZSBoYXMgbm8gcGFyZW50IHNjb3BlLCBhbmQgdGhlcmVmb3JlIGluaGVyaXRzIG5vIGxleGljYWxcbiAgICogICB2YXJpYWJsZXMuIElmIGBiaW5kQ2FsbGVyU2NvcGVgIGlzIGB0cnVlYCwgdGhlIGN1cnJlbnQgc2NvcGUgcmVtZW1iZXJzXG4gICAqICAgdGhlIGNhbGxlciBzY29wZSAoZm9yIHlpZWxkaW5nIGJsb2NrcykuXG4gICAqL1xuICBSb290U2NvcGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIG5ldyBjaGlsZCBzY29wZSBvbnRvIHRoZSBzY29wZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChDaGlsZFNjb3BlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgQSBjaGlsZCBzY29wZSBpbmhlcml0cyBmcm9tIHRoZSBjdXJyZW50IHBhcmVudCBzY29wZSwgYW5kIHRoZXJlZm9yZVxuICAgKiAgIHNoYXJlcyBpdHMgbGV4aWNhbCB2YXJpYWJsZXMuXG4gICAqL1xuICBDaGlsZFNjb3BlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFBvcCB0aGUgY3VycmVudCBzY29wZSBmcm9tIHRoZSBzY29wZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQb3BTY29wZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBQb3BTY29wZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBSZXR1cm4gdG8gdGhlIHByZXZpb3VzIGZyYW1lLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFJldHVybilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIGFkZHJlc3M6bnVtYmVyIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUmV0dXJuLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFJldHVybiB0byBhIHBsYWNlIGluIHRoZSBwcm9ncmFtIGdpdmVuIGFuIG9mZnNldFxuICAgKiBGb3JtYXQ6XG4gICAqICAoUmV0dXJuVG8gb2Zmc2V0OmkzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAgLi4uIOKGklxuICAgKi9cbiAgUmV0dXJuVG8sXG5cbiAgLy8vIEhUTUxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBcHBlbmQgYSBUZXh0IG5vZGUgd2l0aCB2YWx1ZSBgY29udGVudHNgXG4gICAqIEZvcm1hdDpcbiAgICogICAoVGV4dCBjb250ZW50czojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFRleHQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQXBwZW5kIGEgQ29tbWVudCBub2RlIHdpdGggdmFsdWUgYGNvbnRlbnRzYFxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENvbW1lbnQgY29udGVudHM6I3N0cmluZylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBDb21tZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFwcGVuZCBjb250ZW50IGFzIEhUTUwuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQXBwZW5kSFRNTClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8c3RyaW5nPiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEFwcGVuZEhUTUwsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQXBwZW5kIFNhZmVIVE1MIGFzIEhUTUwuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQXBwZW5kU2FmZUhUTUwpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPFNhZmVIVE1MPiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEFwcGVuZFNhZmVIVE1MLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFwcGVuZCBEb2N1bWVudEZyYWdtZW50LlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEFwcGVuZEZyYWdtZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxEb2N1bWVudEZyYWdtZW50PiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEFwcGVuZERvY3VtZW50RnJhZ21lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQXBwZW5kIE5vZGUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQXBwZW5kRnJhZ21lbnQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPE5vZGU+IOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgQXBwZW5kTm9kZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBcHBlbmQgY29udGVudCBhcyB0ZXh0LlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEFwcGVuZFRleHQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPHN0cmluZz4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBBcHBlbmRUZXh0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IE9wZW4gYSBuZXcgRWxlbWVudCBuYW1lZCBgdGFnYC5cbiAgICogRm9ybWF0OlxuICAgKiAgIChPcGVuRWxlbWVudCB0YWc6I3N0cmluZylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBPcGVuRWxlbWVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIE9wZW4gYSBuZXcgRWxlbWVudCB3aXRoIGEgbmFtZSBvbiB0aGUgc3RhY2sgYW5kIHdpdGggc3BlY2lhbFxuICAgKiAgIG9wZXJhdGlvbnMgcHJvdmlkZWQgb24gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE9wZW5EeW5hbWljRWxlbWVudClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIHN0cmluZywgRWxlbWVudE9wZXJhdGlvbnMg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBPcGVuRHluYW1pY0VsZW1lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQWRkIGFuIGF0dHJpYnV0ZSB0byB0aGUgY3VycmVudCBFbGVtZW50LlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFN0YXRpY0F0dHIgbmFtZTojc3RyaW5nIHZhbHVlOiNzdHJpbmcgbmFtZXNwYWNlOk9wdGlvbjwjc3RyaW5nPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBTdGF0aWNBdHRyLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgQWRkIGFuIGF0dHJpYnV0ZSB0byB0aGUgY3VycmVudCBlbGVtZW50IHVzaW5nIHRoZSB2YWx1ZVxuICAgKiAgIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKER5bmFtaWNBdHRyIG5hbWU6I3N0cmluZyB0cnVzdGluZzpib29sZWFuIG5hbWVzcGFjZTpPcHRpb248I3N0cmluZz4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBJZiBgdHJ1c3RpbmdgIGlzIGZhbHNlLCB0aGUgaG9zdCBtYXkgc2FuaXRpemUgdGhlIGF0dHJpYnV0ZVxuICAgKiAgIGJhc2VkIHVwb24ga25vd24gcmlza3MuXG4gICAqL1xuICBEeW5hbWljQXR0cixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEFkZCBhbiBhdHRyaWJ1dGUgdG8gdGhlIGN1cnJlbnQgZWxlbWVudCB1c2luZyB0aGUgdmFsdWVcbiAgICogICBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChDb21wb25lbnRBdHIgbmFtZTojc3RyaW5nIHRydXN0aW5nOmJvb2xlYW4gbmFtZXNwYWNlOk9wdGlvbjwjc3RyaW5nPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBDb21wb25lbnRBdHRyLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEZpbmlzaCBzZXR0aW5nIGF0dHJpYnV0ZXMgb24gdGhlIGN1cnJlbnQgZWxlbWVudC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChGbHVzaEVsZW1lbnQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRmx1c2hFbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENsb3NlIHRoZSBjdXJyZW50IGVsZW1lbnQuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ2xvc2VFbGVtZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENsb3NlRWxlbWVudCxcblxuICAvLy8gTU9ESUZJRVJcbiAgTW9kaWZpZXIsICAgICAgICAgICAgICAgICAgLy8gKENvbnN0YW50U3RyaW5nLCBDb25zdGFudE90aGVyPE1vZGlmaWVyTWFuYWdlcj4sIENvbnN0YW50RXhwcmVzc2lvbilcblxuICAvLy8gV09STUhPTEVcbiAgUHVzaFJlbW90ZUVsZW1lbnQsICAgICAgICAgLy8gKClcbiAgUG9wUmVtb3RlRWxlbWVudCwgICAgICAgICAgLy8gKClcblxuICAvLy8gRFlOQU1JQyBTQ09QRVxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEJpbmQgc3RhY2sgdmFsdWVzIGFzIGR5bmFtaWMgdmFyaWFibGVzLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEJpbmREeW5hbWljU2NvcGUgbmFtZXM6I0FycmF5PCNzdHJpbmc+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgVGhpcyBpcyB1c2VkIHRvIGV4cG9zZSBgLXdpdGgtZHluYW1pYy12YXJzYCwgYW5kIGlzIGFcbiAgICogICBuaWNoZSBmZWF0dXJlLlxuICAgKi9cbiAgQmluZER5bmFtaWNTY29wZSxcblxuICBQdXNoRHluYW1pY1Njb3BlLCAgICAgICAgICAvLyAoKVxuICBQb3BEeW5hbWljU2NvcGUsICAgICAgICAgICAvLyAoKVxuXG4gIC8vLyBWTVxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbXBpbGUgdGhlIElubGluZUJsb2NrIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENvbXBpbGVCbG9jaylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIENvbXBpbGFibGVCbG9jayDihpJcbiAgICogICAuLi4sIEhhbmRsZVxuICAgKi9cbiAgQ29tcGlsZUJsb2NrLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSBzY29wZSBvbnRvIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoQmxvY2tTY29wZSAjU2NvcGUpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCDihpJcbiAgICogICAuLi4sIFNjb3BlXG4gICAqL1xuICBQdXNoQmxvY2tTY29wZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgc3ltYm9sIHRhYmxlIG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hTeW1ib2xUYWJsZSAjU3ltYm9sVGFibGUpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCDihpJcbiAgICogICAuLi4sIFN5bWJvbFRhYmxlXG4gICAqL1xuICBQdXNoU3ltYm9sVGFibGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRXZhbHVhdGUgdGhlIGhhbmRsZSBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VWaXJ0dWFsKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgSGFuZGxlLCDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEludm9rZVZpcnR1YWwsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRXZhbHVhdGUgdGhlIGhhbmRsZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VTdGF0aWMgaGFuZGxlOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBJbnZva2VTdGF0aWMsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogWWllbGQgdG8gYSBibG9jay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VZaWVsZClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cywgU3ltYm9sVGFibGUsIEhhbmRsZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEludm9rZVlpZWxkLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEp1bXAgdG8gdGhlIHNwZWNpZmllZCBvZmZzZXQuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSnVtcCB0bzp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSnVtcCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEp1bXAgdG8gdGhlIHNwZWNpZmllZCBvZmZzZXQgaWYgdGhlIHZhbHVlIGF0XG4gICAqICAgdGhlIHRvcCBvZiB0aGUgc3RhY2sgaXMgdHJ1ZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChKdW1wSWYgdG86dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEp1bXBJZixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEp1bXAgdG8gdGhlIHNwZWNpZmllZCBvZmZzZXQgaWYgdGhlIHZhbHVlIGF0XG4gICAqICAgdGhlIHRvcCBvZiB0aGUgc3RhY2sgaXMgZmFsc2UuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSnVtcFVubGVzcyB0bzp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSnVtcFVubGVzcyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEp1bXAgdG8gdGhlIHNwZWNpZmllZCBvZmZzZXQgaWYgdGhlIHZhbHVlIGF0XG4gICAqICAgdGhlIHRvcCBvZiB0aGUgc3RhY2sgaXMgdGhlIHNhbWUgYXMgdGhlXG4gICAqICAgY29tcGFyaXNvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChKdW1wRXEgdG86aTMyIGNvbXBhcmlzb246aTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgdTMyIOKGklxuICAgKiAgIC4uLiwgdTMyXG4gICAqL1xuICBKdW1wRXEsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBWYWxpZGF0ZSB0aGF0IHRoZSB2YWx1ZSBhdCB0aGUgdG9wIG9mIHRoZSBzdGFja1xuICAgKiAgIGhhc24ndCBjaGFuZ2VkLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEFzc2VydFNhbWUpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPHUzMj4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPHUzMj5cbiAgICovXG4gIEFzc2VydFNhbWUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIHN0YWNrIGZyYW1lXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEZyYW1lKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAkcmEsICRmcFxuICAgKi9cbiAgUHVzaEZyYW1lLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFBvcCBhIHN0YWNrIGZyYW1lXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEZyYW1lKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgICRyYSwgJGZwIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUG9wRnJhbWUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBTdGFydCB0cmFja2luZyBhIG5ldyBvdXRwdXQgYmxvY2sgdGhhdCBjb3VsZCBjaGFuZ2VcbiAgICogICBpZiBvbmUgb2YgaXRzIGlucHV0cyBjaGFuZ2VzLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEVudGVyIGFyZ3M6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgU29vbiBhZnRlciB0aGlzIG9wY29kZSwgb25lIG9mIEp1bXAsIEp1bXBJZixcbiAgICogICBKdW1wVW5sZXNzLCBvciBKdW1wRXEgd2lsbCBwcm9kdWNlIGFuIHVwZGF0aW5nXG4gICAqICAgYXNzZXJ0aW9uLiBJZiB0aGF0IGFzc2VydGlvbiBmYWlscywgdGhlIGFwcGVuZGluZ1xuICAgKiAgIFZNIHdpbGwgYmUgcmUtZW50ZXJlZCwgYW5kIHRoZSBpbnN0cnVjdGlvbnMgZnJvbSBgZnJvbWBcbiAgICogICB0byBgdG9gIHdpbGwgYmUgZXhlY3V0ZWQuXG4gICAqXG4gICAqICAgVE9ETzogU2F2ZSBhbmQgcmVzdG9yZS5cbiAgICovXG4gIEVudGVyLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgRmluaXNoIHRyYWNraW5nIHRoZSBjdXJyZW50IGJsb2NrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEV4aXQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBUaGlzIGZpbmFsaXplcyB0aGUgdmFsaWRhdG9ycyB0aGF0IHRoZSB1cGRhdGluZ1xuICAgKiAgIGJsb2NrIG11c3QgY2hlY2sgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgaXQncyBzYWZlIHRvXG4gICAqICAgc2tpcCBydW5uaW5nIHRoZSBjb250ZW50cy5cbiAgICovXG4gIEV4aXQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQ29udmVydCB0aGUgdG9wIG9mIHRoZSBzdGFjayBpbnRvIGEgYm9vbGVhbiByZWZlcmVuY2UuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoVG9Cb29sZWFuKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxPcGFxdWU+IOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxib29sPlxuICAgKi9cbiAgVG9Cb29sZWFuLFxuXG4gIC8vLyBMSVNUU1xuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEVudGVyIGEgbGlzdC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChFbnRlckxpc3QgYWRkcmVzczp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBJdGVyYXRvciDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEVudGVyTGlzdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFeGl0IHRoZSBjdXJyZW50IGxpc3QuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRXhpdExpc3QpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRXhpdExpc3QsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBDb252ZXJ0IGFuIG9wZXJhbmQgYW5kIGtleSBpbnRvIGFuIGl0ZXJhdG9yIGFuZFxuICAgKiAgIHByZXNlbmNlIHJlZmVyZW5jZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXRJdGVyYXRvcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIGtleTpzdHJpbmcsIGxpc3Q6VmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi4sIGl0ZXJhdG9yOlJlZmVyZW5jZUl0ZXJhdG9yLCBwcmVzZW50OlByZXNlbmNlUmVmZXJlbmNlXG4gICAqL1xuICBQdXRJdGVyYXRvcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFNldCB1cCB0aGUgc3RhY2sgZm9yIGl0ZXJhdGluZyBmb3IgYSBnaXZlbiBrZXksXG4gICAqICAgb3IganVtcCB0byBgZW5kYCBpZiB0aGVyZSBpcyBub3RoaW5nIGxlZnQgdG9cbiAgICogICBpdGVyYXRlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEl0ZXJhdGUgZW5kOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICBGb3JtIDE6IChzb21ldGhpbmcgdG8gaXRlcmF0ZSlcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlLCBzdHJpbmdcbiAgICogICBGb3JtIDI6IChub3RoaW5nIGxlZnQgdG8gaXRlcmF0ZSlcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIEluIEZvcm0gMSwgdGhlIHN0YWNrIHdpbGwgaGF2ZSAoaW4gcmV2ZXJzZSBvcmRlcik6XG4gICAqXG4gICAqICAgLSB0aGUga2V5LCBhcyBhIHN0cmluZ1xuICAgKiAgIC0gdGhlIGN1cnJlbnQgaXRlcmF0ZWQgdmFsdWVcbiAgICogICAtIHRoZSBtZW1vaXplZCBpdGVyYXRlZCB2YWx1ZVxuICAgKi9cbiAgSXRlcmF0ZSxcblxuICAvLy8gQ09NUE9ORU5UU1xuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFRlc3Qgd2hldGhlciBhIHJlZmVyZW5jZSBjb250YWlucyBhIGNvbXBvbmVudCBkZWZpbml0aW9uLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE1haW4gc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBJbnZvY2F0aW9uLCBDb21wb25lbnREZWZpbml0aW9uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgTWFpbixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBUZXN0IHdoZXRoZXIgYSByZWZlcmVuY2UgY29udGFpbnMgYSBjb21wb25lbnQgZGVmaW5pdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJc0NvbXBvbmVudClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8Ym9vbGVhbj5cbiAgICovXG4gIElzQ29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggdGhlIGNvbnRlbnQgdHlwZSBvbnRvIHRoZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChDb250ZW50VHlwZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxDb250ZW50VHlwZT5cbiAgICovXG4gIENvbnRlbnRUeXBlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEN1cnJ5IGEgY29tcG9uZW50IGRlZmluaXRpb24gZm9yIGEgbGF0ZXIgaW52b2NhdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChDdXJyeUNvbXBvbmVudCB0ZW1wbGF0ZU1ldGE6I0xvY2F0b3IpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHMg4oaSXG4gICAqICAgLi4uLCB7IFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIExvY2F0b3IsIENhcHR1cmVkQXJndW1lbnRzIH1cbiAgICovXG4gIEN1cnJ5Q29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYW4gYXBwcm9wcmlhdGUgY29tcG9uZW50IG1hbmFnZXIgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaENvbXBvbmVudE1hbmFnZXIgI0NvbXBvbmVudFNwZWMpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgeyBDb21wb25lbnREZWZpbml0aW9uLCBDb21wb25lbnRNYW5hZ2VyIH1cbiAgICovXG4gIFB1c2hDb21wb25lbnREZWZpbml0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUHVzaGVzIHRoZSBDb21wb25lbnRJbnN0YW5jZSBvbnRvIHRoZSBzdGFjayB0aGF0IGlzXG4gICAqICAgdXNlZCBkdXJpbmcgdGhlIGludm9rZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoRHluYW1pY0NvbXBvbmVudEluc3RhbmNlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgQ29tcG9uZW50RGVmaW5pdGlvbiDihpJcbiAgICogICAuLi4sIHsgQ29tcG9uZW50RGVmaW5pdGlvbiwgbWFuYWdlcjogbnVsbCwgbGF5b3V0OiBudWxsLCBzdGF0ZTogbnVsbCwgaGFuZGxlOiBudWxsLCB0YWJsZTogbnVsbCB9XG4gICAqL1xuXG4gIFB1c2hEeW5hbWljQ29tcG9uZW50SW5zdGFuY2UsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoZXMgYSBjdXJyaWVkIGNvbXBvbmVudCBkZWZpbml0aW9uIG9uIHRvIHRoZSBzdGFja1xuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hDdXJyaWVkQ29tcG9uZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxPcGFxdWU+IOKGklxuICAgKiAgIC4uLiwgQ29tcG9uZW50RGVmaW5pdGlvblxuICAgKi9cbiAgUHVzaEN1cnJpZWRDb21wb25lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIGEgcmVzb2x2ZWQgY29tcG9uZW50IGRlZmluaXRpb24gb250byB0aGUgc3RhY2tcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChSZXNvbHZlRHluYW1pY0NvbXBvbmVudCB0ZW1wbGF0ZU1ldGE6I0xvY2F0b3IpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPE9wYXF1ZT4g4oaSXG4gICAqICAgLi4uLCBDb21wb25lbnREZWZpbml0aW9uXG4gICAqL1xuICBSZXNvbHZlRHluYW1pY0NvbXBvbmVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgdXNlciByZXByZXNlbnRhdGlvbiBvZiBhcmdzIG9udG8gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hBcmdzIG5hbWVzOiNBcnJheTwjc3RyaW5nPiBwb3NpdGlvbmFsQ291bnQ6dTMyIHN5bnRoZXRpYzojYm9vbGVhbilcbiAgICpcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0gIOKGklxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSwgQXJndW1lbnRzXG4gICAqXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIFRoaXMgYXJndW1lbnRzIG9iamVjdCBpcyBvbmx5IG5lY2Vzc2FyeSB3aGVuIGNhbGxpbmcgaW50b1xuICAgKiAgIHVzZXItc3BlY2lmaWVkIGhvb2tzLiBJdCBpcyBtZWFudCB0byBiZSBpbXBsZW1lbnRlZCBhcyBhXG4gICAqICAgdHJhbnNpZW50IHByb3h5IHRoYXQgcmVhZHMgaW50byB0aGUgc3RhY2sgYXMgbmVlZGVkLlxuICAgKiAgIEhvbGRpbmcgb250byB0aGUgQXJndW1lbnRzIGFmdGVyIHRoZSBjYWxsIGhhcyBjb21wbGV0ZWQgaXNcbiAgICogICBpbGxlZ2FsLlxuICAgKi9cbiAgUHVzaEFyZ3MsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBlbXB0eSBhcmdzIG9udG8gdGhlIHN0YWNrXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRW1wdHlBcmdzKVxuICAgKlxuICAgKiBPcGVyYW5kU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgQXJndW1lbnRzXG4gICAqL1xuICBQdXNoRW1wdHlBcmdzLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFBvcHMgQXJndW1lbnRzIGZyb20gdGhlIHN0YWNrIGFuZCBjbGVhcnMgdGhlIG5leHQgTiBhcmdzLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFBvcEFyZ3MpXG4gICAqXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHMgIOKGklxuICAgKiAgIC4uLlxuICAgKlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogVGhlIGFyZ3VtZW50cyBvYmplY3QgY29udGFpbnMgdGhlIGluZm9ybWF0aW9uIG9mIGhvdyBtYW55IHVzZXJcbiAgICogc3VwcGxpZWQgYXJncyB0aGUgY29tcG9uZW50IHdhcyBpbnZva2VkIHdpdGguIFRvIGNsZWFyIHRoZW0gZnJvbVxuICAgKiB0aGUgc3RhY2sgd2UgbXVzdCBwb3AgaXQgZnJvbSB0aGUgc3RhY2sgYW5kIGNhbGwgYGNsZWFyYCBvbiBpdFxuICAgKiB0byByZW1vdmUgdGhlIGFyZ3VtZW50IHZhbHVlcyBmcm9tIHRoZSBzdGFjay5cbiAgICovXG4gIFBvcEFyZ3MsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogLi4uXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHJlcGFyZUFyZ3Mgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUHJlcGFyZUFyZ3MsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUmVwbGFjZXMgQXJndW1lbnRzIG9uIHRoZSBzdGFjayB3aXRoIENhcHR1cmVkQXJndW1lbnRzXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ2FwdHVyZUFyZ3MpXG4gICAqXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBBcmd1bWVudHMgIOKGklxuICAgKiAgIC4uLiwgQ2FwdHVyZWRBcmd1bWVudHNcbiAgICpcbiAgICogRGVzY3JpcHRpb246XG4gICAqIFRoZSBBcmd1bWVudHMgb2JqZWN0IGlzIG11dGF0ZWQgaW4gcGxhY2UgYmVjYXVzZSBpdCBpcyB1c3VhbGx5IGNvbnN1bWVkIGltbWVkaWF0ZWx5XG4gICAqIGFmdGVyIGJlaW5nIHB1c2hlZCBvbiB0byB0aGUgc3RhY2suIEluIHNvbWUgc2l0dWF0aW9ucywgc3VjaCBhcyB3aXRoIGN1cnJpZWQgY29tcG9uZW50cyxcbiAgICogaW5mb3JtYXRpb24gYWJvdXQgbW9yZSB0aGFuIG9uZSBBcmd1bWVudCBtYXkgbmVlZCB0byBleGlzdCBvbiB0aGUgc3RhY2sgYXQgb25jZS4gSW4gdGhvc2VcbiAgICogY2FzZXMsIHRoZSBDYXB0dXJlQXJncyBpbnN0cnVjdGlvbiBwb3BzIGFuIEFyZ3VtZW50cyBvYmplY3Qgb2ZmIHRoZSBzdGFjayBhbmQgcmVwbGFjZXMgaXRcbiAgICogd2l0aCB0aGUgaW1tdXRhYmxlIENhcHR1cmVkQXJncyBzbmFwc2hvdC5cbiAgICovXG4gIENhcHR1cmVBcmdzLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENyZWF0ZSB0aGUgY29tcG9uZW50IGFuZCBwdXNoIGl0IG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENyZWF0ZUNvbXBvbmVudCBmbGFnczp1MzIgc3RhdGU6cmVnaXN0ZXIpXG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICBGbGFnczpcbiAgICpcbiAgICogICAqIDBiMDAxOiBIYXMgYSBkZWZhdWx0IGJsb2NrXG4gICAqICAgKiAwYjAxMDogSGFzIGFuIGludmVyc2UgYmxvY2tcbiAgICovXG4gIENyZWF0ZUNvbXBvbmVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBSZWdpc3RlciBhIGRlc3RydWN0b3IgZm9yIHRoZSBjdXJyZW50IGNvbXBvbmVudFxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFJlZ2lzdGVyQ29tcG9uZW50RGVzdHJ1Y3RvciBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBSZWdpc3RlckNvbXBvbmVudERlc3RydWN0b3IsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIG5ldyBFbGVtZW50T3BlcmF0aW9ucyBmb3IgdGhlIGN1cnJlbnQgY29tcG9uZW50LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1dENvbXBvbmVudE9wZXJhdGlvbnMpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUHV0Q29tcG9uZW50T3BlcmF0aW9ucyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIHRoZSBjb21wb25lbnQncyBgc2VsZmAgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoR2V0Q29tcG9uZW50U2VsZiBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBHZXRDb21wb25lbnRTZWxmLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggdGhlIGNvbXBvbmVudCdzIGBzZWxmYCBvbnRvIHRoZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChHZXRDb21wb25lbnRUYWdOYW1lIHN0YXRlOnJlZ2lzdGVyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIE9wdGlvbjxzdHJpbmc+XG4gICAqL1xuICBHZXRDb21wb25lbnRUYWdOYW1lLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEdldCB0aGUgY29tcG9uZW50IGxheW91dCBmcm9tIHRoZSBtYW5hZ2VyLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldENvbXBvbmVudExheW91dCBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBQcm9ncmFtU3ltYm9sVGFibGUsIEhhbmRsZVxuICAgKi9cbiAgR2V0Q29tcG9uZW50TGF5b3V0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUG9wdWxhdGUgdGhlIHN0YXRlIHJlZ2lzdGVyIHdpdGggdGhlIGxheW91dCBjdXJyZW50bHlcbiAgICogICBvbiB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUG9wdWxhdGVMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBQcm9ncmFtU3ltYm9sVGFibGUsIEhhbmRsZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFBvcHVsYXRlTGF5b3V0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSB0aGUgbGF5b3V0IHJldHVybmVkIGJ5IHRoZSBtYW5hZ2VyLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEludm9rZUNvbXBvbmVudExheW91dCBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBJbnZva2VDb21wb25lbnRMYXlvdXQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQmVnaW4gYSBuZXcgY2FjaGUgZ3JvdXBcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChCZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgQ29tcG9uZW50TWFuYWdlcjxUPiwgVCDihpJcbiAgICogICAuLi4sIENvbXBvbmVudE1hbmFnZXI8VD4sIFRcbiAgICovXG4gIEJlZ2luQ29tcG9uZW50VHJhbnNhY3Rpb24sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQ29tbWl0IHRoZSBjdXJyZW50IGNhY2hlIGdyb3VwXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tbWl0Q29tcG9uZW50VHJhbnNhY3Rpb24pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgQ29tbWl0Q29tcG9uZW50VHJhbnNhY3Rpb24sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogSW52b2tlIGRpZENyZWF0ZUVsZW1lbnQgb24gdGhlIGN1cnJlbnQgY29tcG9uZW50IG1hbmFnZXJcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEaWRDcmVhdGVFbGVtZW50IHN0YXRlOnJlZ2lzdGVyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIERpZENyZWF0ZUVsZW1lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogSW52b2tlIGRpZFJlbmRlckxheW91dCBvbiB0aGUgY3VycmVudCBjb21wb25lbnQgbWFuYWdlclxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKERpZFJlbmRlckxheW91dCBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRGlkUmVuZGVyTGF5b3V0LFxuXG4gIC8vLyBQQVJUSUFMU1xuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IExvb2t1cCBhbmQgaW52b2tlIGEgcGFydGlhbCB0ZW1wbGF0ZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VQYXJ0aWFsIHRlbXBsYXRlTWV0YTojTG9jYXRvciBzeW1ib2xzOiNBcnJheTwjc3RyaW5nPiBldmFsSW5mbzojQXJyYXk8bnVtYmVyPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8c3RyaW5nPiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEludm9rZVBhcnRpYWwsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBSZXNvbHZlIHt7Zm9vfX0gaW5zaWRlIGEgcGFydGlhbCwgd2hpY2ggY291bGQgYmUgZWl0aGVyIGEgc2VsZi1sb29rdXBcbiAgICogICBvciBhIGxvY2FsIHZhcmlhYmxlIHRoYXQgaXMgaW4tc2NvcGUgZm9yIHRoZSBjYWxsZXIuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmVzb2x2ZU1heWJlTG9jYWwgbG9jYWw6I3N0cmluZylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBSZXNvbHZlTWF5YmVMb2NhbCxcblxuICAvLy8gREVCVUdHRVJcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBY3RpdmF0ZSB0aGUgZGVidWdnZXJcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEZWJ1Z2dlciBzeW1ib2xzOiNBcnJheTxzdHJpbmc+IGV2YWxJbmZvOiNBcnJheTxudW1iZXI+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIERlYnVnZ2VyLFxuXG4gIC8qKiBUaGUgc2l6ZSBvZiB0aGUgb3Bjb2RlIGxpc3QgKi9cbiAgU2l6ZVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Bjb2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZtL2xpYi9vcGNvZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBPcCB7XG4gIC8qXG4gICAgRG9jdW1lbnRhdGlvbiBUT0RPOlxuXG4gICAgRG9jdW1lbnQgdGhlIGxvY2FsIHZhcmlhYmxlIGxheW91dCBpbiB0aGUgc3RhY2tcbiAgICBkaWFncmFtIGJlZm9yZS1hbmQtYWZ0ZXIuXG5cbiAgICBEb2N1bWVudCB1cGRhdGluZyBvcGNvZGVzIGVtaXR0aW5nIGZyb20gdW5yZWFjaGFibGVcbiAgICBhcHBlbmQgb3Bjb2RlLlxuXG4gICAgRG9jdW1lbnQgdGhlIGVsZW1lbnQgc3RhY2ssIGJsb2NrIHN0YWNrIGFuZCBMaXN0XG4gICAgYmxvY2sgc3RhY2suXG4gICAqL1xuXG4gIC8qKlxuICAgKiBUaGlzIG9wY29kZSBzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZC5cbiAgICovXG4gIEJ1ZyxcblxuICAvLy8gRVhQUkVTU0lPTlNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFdmFsdWF0ZSBhIEhlbHBlci5cbiAgICogRm9ybWF0OlxuICAgKiAgIChIZWxwZXIgaGVscGVyOiNGdW5jdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cyDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2VcbiAgICovXG4gIEhlbHBlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIHZhcmlhYmxlIHJlcHJlc2VudGVkIGJ5IGEgc3ltYm9sIGZyb21cbiAgICogICB0aGUgdmFsdWUgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoU2V0VmFyaWFibGUgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBTZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIGJsb2NrIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFNldEJsb2NrIHN5bWJvbDp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBTeW1ib2xUYWJsZSwgSGFuZGxlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgU2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIHRoZSBjb250ZW50cyBvZiB0aGUgdmFyaWFibGUgcmVwcmVzZW50ZWQgYnlcbiAgICogICBhIHN5bWJvbCAoYSBwb3NpdGlvbmFsIG9yIG5hbWVkIGFyZ3VtZW50KSBvbnRvXG4gICAqICAgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hTeW1ib2wgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBHZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgZnJvbSB0aGUgdG9wIG9mIHRoZVxuICAgKiAgIHN0YWNrLCBhbmQgcHVzaCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgY29uc3RydWN0ZWRcbiAgICogICBieSBgLmdldChwcm9wZXJ0eSlgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldFByb3BlcnR5IHByb3BlcnR5OiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0UHJvcGVydHksXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCB0aGUgc3BlY2lmaWVkIGJvdW5kIGJsb2NrIG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldEJsb2NrIGJsb2NrOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBJbmxpbmVCbG9ja1xuICAgKi9cbiAgR2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIFRSVUUgb250byB0aGUgc3RhY2sgaWYgdGhlIHNwZWNpZmllZCBibG9ja1xuICAgKiAgIGlzIGJvdW5kIGFuZCBGQUxTRSBpZiBpdCBpcyBub3QuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2sgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIGJvb2xlYW5cbiAgICovXG4gIEhhc0Jsb2NrLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUHVzaCBUUlVFIG9udG8gdGhlIHN0YWNrIGlmIHRoZSBzcGVjaWZpZWQgYmxvY2tcbiAgICogICBpcyBib3VuZCAqYW5kKiBoYXMgYXQgbGVhc3Qgb25lIHNwZWNpZmllZCBmb3JtYWxcbiAgICogICBwYXJhbWV0ZXIsIGFuZCBGQUxTRSBvdGhlcndpc2UuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2tQYXJhbXMgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgKGJvb2xlYW4pXG4gICAqL1xuICBIYXNCbG9ja1BhcmFtcyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBjb3VudCBgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZWBzIG9mZiB0aGUgc3RhY2sgYW5kXG4gICAqICAgY29uc3RydWN0IGEgbmV3IENvbmNhdFJlZmVyZW5jZSBmcm9tIHRoZW0gKGluIHJldmVyc2VcbiAgICogICBvcmRlcikuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29uY2F0IGNvdW50OnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0g4oaSXG4gICAqICAgLi4uLCBDb25jYXRSZWZlcmVuY2VcbiAgICovXG4gIENvbmNhdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFB1c2ggYW4gT2JqZWN0IGNvbnN0YW50IG9udG8gdGhlIHN0YWNrIHRoYXQgaXMgbm90XG4gICAqICAgYSBKYXZhU2NyaXB0IHByaW1pdGl2ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoQ29uc3RhbnQgY29uc3RhbnQ6I09iamVjdClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBPcGFxdWVcbiAgICovXG4gIENvbnN0YW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgV3JhcCBhIEphdmFTY3JpcHQgcHJpbWl0aXZlIGluIGEgcmVmZXJlbmNlIGFuZCBwdXNoIGl0XG4gICAqICAgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaFByaW1pdGl2ZSBjb25zdGFudDojUHJpbWl0aXZlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFByaW1pdGl2ZVxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBUaGUgdHdvIGhpZ2ggYml0cyBvZiB0aGUgY29uc3RhbnQgcmVmZXJlbmNlIGRlc2NyaWJlXG4gICAqICAgdGhlIGtpbmQgb2YgcHJpbWl0aXZlOlxuICAgKlxuICAgKiAgIDAwOiBudW1iZXJcbiAgICogICAwMTogc3RyaW5nXG4gICAqICAgMTA6IHRydWUgfCBmYWxzZSB8IG51bGwgfCB1bmRlZmluZWRcbiAgICovXG4gIFByaW1pdGl2ZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb252ZXJ0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGludG8gYSBwcmltaXRpdmUgcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFByaW1pdGl2ZVJlZmVyZW5jZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFByaW1pdGl2ZSDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8UHJpbWl0aXZlPlxuICAgKi9cbiAgUHJpbWl0aXZlUmVmZXJlbmNlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IER1cGxpY2F0ZSBhbmQgcHVzaCBpdGVtIGZyb20gYW4gb2Zmc2V0IGluIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChEdXAgcmVnaXN0ZXI6dTMyLCBvZmZzZXQ6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgT3BhcXVlIOKGklxuICAgKiAgIC4uLiwgT3BhcXVlLCBPcGFxdWVcbiAgICovXG4gIER1cCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQb3AgTiBpdGVtcyBvZmYgdGhlIHN0YWNrIGFuZCB0aHJvdyBhd2F5IHRoZSB2YWx1ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQb3ApXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBPcGFxdWUsIC4uLiwgT3BhcXVlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUG9wLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IExvYWQgYSB2YWx1ZSBpbnRvIGEgcmVnaXN0ZXJcbiAgICogRm9ybWF0OlxuICAgKiAgIChMb2FkIHJlZ2lzdGVyOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIE9wYXF1ZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIExvYWQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRmV0Y2ggYSB2YWx1ZSBmcm9tIGEgcmVnaXN0ZXJcbiAgICogRm9ybWF0OlxuICAgKiAgIChGZXRjaCByZWdpc3Rlcjp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgT3BhcXVlXG4gICAqL1xuICBGZXRjaCxcblxuICAvLy8gUFJFTFVERSAmIEVYSVRcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgbmV3IHJvb3Qgc2NvcGUgb250byB0aGUgc2NvcGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUm9vdFNjb3BlIHN5bWJvbHM6dTMyIGJpbmRDYWxsZXJTY29wZTpib29sKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgQSByb290IHNjb3BlIGhhcyBubyBwYXJlbnQgc2NvcGUsIGFuZCB0aGVyZWZvcmUgaW5oZXJpdHMgbm8gbGV4aWNhbFxuICAgKiAgIHZhcmlhYmxlcy4gSWYgYGJpbmRDYWxsZXJTY29wZWAgaXMgYHRydWVgLCB0aGUgY3VycmVudCBzY29wZSByZW1lbWJlcnNcbiAgICogICB0aGUgY2FsbGVyIHNjb3BlIChmb3IgeWllbGRpbmcgYmxvY2tzKS5cbiAgICovXG4gIFJvb3RTY29wZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgbmV3IGNoaWxkIHNjb3BlIG9udG8gdGhlIHNjb3BlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENoaWxkU2NvcGUpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBBIGNoaWxkIHNjb3BlIGluaGVyaXRzIGZyb20gdGhlIGN1cnJlbnQgcGFyZW50IHNjb3BlLCBhbmQgdGhlcmVmb3JlXG4gICAqICAgc2hhcmVzIGl0cyBsZXhpY2FsIHZhcmlhYmxlcy5cbiAgICovXG4gIENoaWxkU2NvcGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUG9wIHRoZSBjdXJyZW50IHNjb3BlIGZyb20gdGhlIHNjb3BlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFBvcFNjb3BlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFBvcFNjb3BlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFJldHVybiB0byB0aGUgcHJldmlvdXMgZnJhbWUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmV0dXJuKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgYWRkcmVzczpudW1iZXIg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBSZXR1cm4sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUmV0dXJuIHRvIGEgcGxhY2UgaW4gdGhlIHByb2dyYW0gZ2l2ZW4gYW4gb2Zmc2V0XG4gICAqIEZvcm1hdDpcbiAgICogIChSZXR1cm5UbyBvZmZzZXQ6aTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgICAuLi4g4oaSXG4gICAqL1xuICBSZXR1cm5UbyxcblxuICAvLy8gSFRNTFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFwcGVuZCBhIFRleHQgbm9kZSB3aXRoIHZhbHVlIGBjb250ZW50c2BcbiAgICogRm9ybWF0OlxuICAgKiAgIChUZXh0IGNvbnRlbnRzOiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgVGV4dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBcHBlbmQgYSBDb21tZW50IG5vZGUgd2l0aCB2YWx1ZSBgY29udGVudHNgXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tbWVudCBjb250ZW50czojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbW1lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQXBwZW5kIGEgRHluYW1pYyBub2RlIGJhc2VkIG9uIC5cbiAgICogRm9ybWF0OlxuICAgKiAgIChEeW5hbWljQ29udGVudCBpc1RydXN0aW5nOmJvb2xlYW4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRHluYW1pY0NvbnRlbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogT3BlbiBhIG5ldyBFbGVtZW50IG5hbWVkIGB0YWdgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE9wZW5FbGVtZW50IHRhZzojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE9wZW5FbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgT3BlbiBhIG5ldyBFbGVtZW50IHdpdGggYSBuYW1lIG9uIHRoZSBzdGFjayBhbmQgd2l0aCBzcGVjaWFsXG4gICAqICAgb3BlcmF0aW9ucyBwcm92aWRlZCBvbiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoT3BlbkR5bmFtaWNFbGVtZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgc3RyaW5nLCBFbGVtZW50T3BlcmF0aW9ucyDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE9wZW5EeW5hbWljRWxlbWVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBZGQgYW4gYXR0cmlidXRlIHRvIHRoZSBjdXJyZW50IEVsZW1lbnQuXG4gICAqIEZvcm1hdDpcbiAgICogICAoU3RhdGljQXR0ciBuYW1lOiNzdHJpbmcgdmFsdWU6I3N0cmluZyBuYW1lc3BhY2U6T3B0aW9uPCNzdHJpbmc+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFN0YXRpY0F0dHIsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBBZGQgYW4gYXR0cmlidXRlIHRvIHRoZSBjdXJyZW50IGVsZW1lbnQgdXNpbmcgdGhlIHZhbHVlXG4gICAqICAgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRHluYW1pY0F0dHIgbmFtZTojc3RyaW5nIHRydXN0aW5nOmJvb2xlYW4gbmFtZXNwYWNlOk9wdGlvbjwjc3RyaW5nPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIElmIGB0cnVzdGluZ2AgaXMgZmFsc2UsIHRoZSBob3N0IG1heSBzYW5pdGl6ZSB0aGUgYXR0cmlidXRlXG4gICAqICAgYmFzZWQgdXBvbiBrbm93biByaXNrcy5cbiAgICovXG4gIER5bmFtaWNBdHRyLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgQWRkIGFuIGF0dHJpYnV0ZSB0byB0aGUgY3VycmVudCBlbGVtZW50IHVzaW5nIHRoZSB2YWx1ZVxuICAgKiAgIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENvbXBvbmVudEF0ciBuYW1lOiNzdHJpbmcgdHJ1c3Rpbmc6Ym9vbGVhbiBuYW1lc3BhY2U6T3B0aW9uPCNzdHJpbmc+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbXBvbmVudEF0dHIsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRmluaXNoIHNldHRpbmcgYXR0cmlidXRlcyBvbiB0aGUgY3VycmVudCBlbGVtZW50LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEZsdXNoRWxlbWVudClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBGbHVzaEVsZW1lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQ2xvc2UgdGhlIGN1cnJlbnQgZWxlbWVudC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChDbG9zZUVsZW1lbnQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgQ2xvc2VFbGVtZW50LFxuXG4gIC8vLyBNT0RJRklFUlxuICBNb2RpZmllciwgICAgICAgICAgICAgICAgICAvLyAoQ29uc3RhbnRTdHJpbmcsIENvbnN0YW50T3RoZXI8TW9kaWZpZXJNYW5hZ2VyPiwgQ29uc3RhbnRFeHByZXNzaW9uKVxuXG4gIC8vLyBXT1JNSE9MRVxuICBQdXNoUmVtb3RlRWxlbWVudCwgICAgICAgICAvLyAoKVxuICBQb3BSZW1vdGVFbGVtZW50LCAgICAgICAgICAvLyAoKVxuXG4gIC8vLyBEWU5BTUlDIFNDT1BFXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQmluZCBzdGFjayB2YWx1ZXMgYXMgZHluYW1pYyB2YXJpYWJsZXMuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQmluZER5bmFtaWNTY29wZSBuYW1lczojQXJyYXk8I3N0cmluZz4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBUaGlzIGlzIHVzZWQgdG8gZXhwb3NlIGAtd2l0aC1keW5hbWljLXZhcnNgLCBhbmQgaXMgYVxuICAgKiAgIG5pY2hlIGZlYXR1cmUuXG4gICAqL1xuICBCaW5kRHluYW1pY1Njb3BlLFxuXG4gIFB1c2hEeW5hbWljU2NvcGUsICAgICAgICAgIC8vICgpXG4gIFBvcER5bmFtaWNTY29wZSwgICAgICAgICAgIC8vICgpXG5cbiAgLy8vIFZNXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQ29tcGlsZSB0aGUgSW5saW5lQmxvY2sgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tcGlsZUJsb2NrKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgQ29tcGlsYWJsZUJsb2NrIOKGklxuICAgKiAgIC4uLiwgSGFuZGxlXG4gICAqL1xuICBDb21waWxlQmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIHNjb3BlIG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hCbG9ja1Njb3BlICNTY29wZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIOKGklxuICAgKiAgIC4uLiwgU2NvcGVcbiAgICovXG4gIFB1c2hCbG9ja1Njb3BlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSBzeW1ib2wgdGFibGUgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaFN5bWJvbFRhYmxlICNTeW1ib2xUYWJsZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIOKGklxuICAgKiAgIC4uLiwgU3ltYm9sVGFibGVcbiAgICovXG4gIFB1c2hTeW1ib2xUYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFdmFsdWF0ZSB0aGUgaGFuZGxlIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEludm9rZVZpcnR1YWwpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBIYW5kbGUsIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlVmlydHVhbCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFdmFsdWF0ZSB0aGUgaGFuZGxlLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEludm9rZVN0YXRpYyBoYW5kbGU6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEludm9rZVN0YXRpYyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBZaWVsZCB0byBhIGJsb2NrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEludm9rZVlpZWxkKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSwgQXJndW1lbnRzLCBTeW1ib2xUYWJsZSwgSGFuZGxlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlWWllbGQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogSnVtcCB0byB0aGUgc3BlY2lmaWVkIG9mZnNldC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChKdW1wIHRvOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBKdW1wLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgSnVtcCB0byB0aGUgc3BlY2lmaWVkIG9mZnNldCBpZiB0aGUgdmFsdWUgYXRcbiAgICogICB0aGUgdG9wIG9mIHRoZSBzdGFjayBpcyB0cnVlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEp1bXBJZiB0bzp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSnVtcElmLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgSnVtcCB0byB0aGUgc3BlY2lmaWVkIG9mZnNldCBpZiB0aGUgdmFsdWUgYXRcbiAgICogICB0aGUgdG9wIG9mIHRoZSBzdGFjayBpcyBmYWxzZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChKdW1wVW5sZXNzIHRvOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBKdW1wVW5sZXNzLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSBzdGFjayBmcmFtZVxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hGcmFtZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgJHJhLCAkZnBcbiAgICovXG4gIFB1c2hGcmFtZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQb3AgYSBzdGFjayBmcmFtZVxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hGcmFtZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAkcmEsICRmcCDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFBvcEZyYW1lLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgU3RhcnQgdHJhY2tpbmcgYSBuZXcgb3V0cHV0IGJsb2NrIHRoYXQgY291bGQgY2hhbmdlXG4gICAqICAgaWYgb25lIG9mIGl0cyBpbnB1dHMgY2hhbmdlcy5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChFbnRlciBhcmdzOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIFNvb24gYWZ0ZXIgdGhpcyBvcGNvZGUsIG9uZSBvZiBKdW1wLCBKdW1wSWYsXG4gICAqICAgb3IgSnVtcFVubGVzcyB3aWxsIHByb2R1Y2UgYW4gdXBkYXRpbmcgYXNzZXJ0aW9uLlxuICAgKiAgIElmIHRoYXQgYXNzZXJ0aW9uIGZhaWxzLCB0aGUgYXBwZW5kaW5nIFZNIHdpbGxcbiAgICogICBiZSByZS1lbnRlcmVkLCBhbmQgdGhlIGluc3RydWN0aW9ucyBmcm9tIGBmcm9tYFxuICAgKiAgIHRvIGB0b2Agd2lsbCBiZSBleGVjdXRlZC5cbiAgICpcbiAgICogICBUT0RPOiBTYXZlIGFuZCByZXN0b3JlLlxuICAgKi9cbiAgRW50ZXIsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBGaW5pc2ggdHJhY2tpbmcgdGhlIGN1cnJlbnQgYmxvY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRXhpdClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIFRoaXMgZmluYWxpemVzIHRoZSB2YWxpZGF0b3JzIHRoYXQgdGhlIHVwZGF0aW5nXG4gICAqICAgYmxvY2sgbXVzdCBjaGVjayB0byBkZXRlcm1pbmUgd2hldGhlciBpdCdzIHNhZmUgdG9cbiAgICogICBza2lwIHJ1bm5pbmcgdGhlIGNvbnRlbnRzLlxuICAgKi9cbiAgRXhpdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb252ZXJ0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGludG8gYSBib29sZWFuIHJlZmVyZW5jZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChUb0Jvb2xlYW4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPE9wYXF1ZT4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPGJvb2w+XG4gICAqL1xuICBUb0Jvb2xlYW4sXG5cbiAgLy8vIExJU1RTXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRW50ZXIgYSBsaXN0LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEVudGVyTGlzdCBhZGRyZXNzOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIEl0ZXJhdG9yIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRW50ZXJMaXN0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEV4aXQgdGhlIGN1cnJlbnQgbGlzdC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChFeGl0TGlzdClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBFeGl0TGlzdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIENvbnZlcnQgYW4gb3BlcmFuZCBhbmQga2V5IGludG8gYW4gaXRlcmF0b3IgYW5kXG4gICAqICAgcHJlc2VuY2UgcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1dEl0ZXJhdG9yKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwga2V5OnN0cmluZywgbGlzdDpWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLiwgaXRlcmF0b3I6UmVmZXJlbmNlSXRlcmF0b3IsIHByZXNlbnQ6UHJlc2VuY2VSZWZlcmVuY2VcbiAgICovXG4gIFB1dEl0ZXJhdG9yLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgU2V0IHVwIHRoZSBzdGFjayBmb3IgaXRlcmF0aW5nIGZvciBhIGdpdmVuIGtleSxcbiAgICogICBvciBqdW1wIHRvIGBlbmRgIGlmIHRoZXJlIGlzIG5vdGhpbmcgbGVmdCB0b1xuICAgKiAgIGl0ZXJhdGUuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSXRlcmF0ZSBlbmQ6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIEZvcm0gMTogKHNvbWV0aGluZyB0byBpdGVyYXRlKVxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIHN0cmluZ1xuICAgKiAgIEZvcm0gMjogKG5vdGhpbmcgbGVmdCB0byBpdGVyYXRlKVxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgSW4gRm9ybSAxLCB0aGUgc3RhY2sgd2lsbCBoYXZlIChpbiByZXZlcnNlIG9yZGVyKTpcbiAgICpcbiAgICogICAtIHRoZSBrZXksIGFzIGEgc3RyaW5nXG4gICAqICAgLSB0aGUgY3VycmVudCBpdGVyYXRlZCB2YWx1ZVxuICAgKiAgIC0gdGhlIG1lbW9pemVkIGl0ZXJhdGVkIHZhbHVlXG4gICAqL1xuICBJdGVyYXRlLFxuXG4gIC8vLyBDT01QT05FTlRTXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogVGVzdCB3aGV0aGVyIGEgcmVmZXJlbmNlIGNvbnRhaW5zIGEgY29tcG9uZW50IGRlZmluaXRpb24uXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoTWFpbiBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIEludm9jYXRpb24sIENvbXBvbmVudERlZmluaXRpb24g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBNYWluLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFRlc3Qgd2hldGhlciBhIHJlZmVyZW5jZSBjb250YWlucyBhIGNvbXBvbmVudCBkZWZpbml0aW9uLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKElzQ29tcG9uZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxPcGFxdWU+IOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxib29sZWFuPlxuICAgKi9cbiAgSXNDb21wb25lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQ3VycnkgYSBjb21wb25lbnQgZGVmaW5pdGlvbiBmb3IgYSBsYXRlciBpbnZvY2F0aW9uLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEN1cnJ5Q29tcG9uZW50IHRlbXBsYXRlTWV0YTojVGVtcGxhdGVNZXRhKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSwgQXJndW1lbnRzIOKGklxuICAgKiAgIC4uLiwgeyBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlLCBUZW1wbGF0ZU1ldGEsIENhcHR1cmVkQXJndW1lbnRzIH1cbiAgICovXG4gIEN1cnJ5Q29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYW4gYXBwcm9wcmlhdGUgY29tcG9uZW50IG1hbmFnZXIgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaENvbXBvbmVudE1hbmFnZXIgI0NvbXBvbmVudFNwZWMpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgeyBDb21wb25lbnREZWZpbml0aW9uLCBDb21wb25lbnRNYW5hZ2VyIH1cbiAgICovXG4gIFB1c2hDb21wb25lbnREZWZpbml0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUHVzaGVzIHRoZSBDb21wb25lbnRJbnN0YW5jZSBvbnRvIHRoZSBzdGFjayB0aGF0IGlzXG4gICAqICAgdXNlZCBkdXJpbmcgdGhlIGludm9rZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoRHluYW1pY0NvbXBvbmVudEluc3RhbmNlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgQ29tcG9uZW50RGVmaW5pdGlvbiDihpJcbiAgICogICAuLi4sIHsgQ29tcG9uZW50RGVmaW5pdGlvbiwgbWFuYWdlcjogbnVsbCwgbGF5b3V0OiBudWxsLCBzdGF0ZTogbnVsbCwgaGFuZGxlOiBudWxsLCB0YWJsZTogbnVsbCB9XG4gICAqL1xuXG4gIFB1c2hEeW5hbWljQ29tcG9uZW50SW5zdGFuY2UsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoZXMgYSBjdXJyaWVkIGNvbXBvbmVudCBkZWZpbml0aW9uIG9uIHRvIHRoZSBzdGFja1xuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hDdXJyaWVkQ29tcG9uZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxPcGFxdWU+IOKGklxuICAgKiAgIC4uLiwgQ29tcG9uZW50RGVmaW5pdGlvblxuICAgKi9cbiAgUHVzaEN1cnJpZWRDb21wb25lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIGEgcmVzb2x2ZWQgY29tcG9uZW50IGRlZmluaXRpb24gb250byB0aGUgc3RhY2tcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChSZXNvbHZlRHluYW1pY0NvbXBvbmVudCB0ZW1wbGF0ZU1ldGE6I1RlbXBsYXRlTWV0YSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiDihpJcbiAgICogICAuLi4sIENvbXBvbmVudERlZmluaXRpb25cbiAgICovXG4gIFJlc29sdmVEeW5hbWljQ29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSB1c2VyIHJlcHJlc2VudGF0aW9uIG9mIGFyZ3Mgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEFyZ3MgbmFtZXM6I0FycmF5PCNzdHJpbmc+IHBvc2l0aW9uYWxDb3VudDp1MzIgc3ludGhldGljOiNib29sZWFuKVxuICAgKlxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSAg4oaSXG4gICAqICAgLi4uLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHNcbiAgICpcbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgVGhpcyBhcmd1bWVudHMgb2JqZWN0IGlzIG9ubHkgbmVjZXNzYXJ5IHdoZW4gY2FsbGluZyBpbnRvXG4gICAqICAgdXNlci1zcGVjaWZpZWQgaG9va3MuIEl0IGlzIG1lYW50IHRvIGJlIGltcGxlbWVudGVkIGFzIGFcbiAgICogICB0cmFuc2llbnQgcHJveHkgdGhhdCByZWFkcyBpbnRvIHRoZSBzdGFjayBhcyBuZWVkZWQuXG4gICAqICAgSG9sZGluZyBvbnRvIHRoZSBBcmd1bWVudHMgYWZ0ZXIgdGhlIGNhbGwgaGFzIGNvbXBsZXRlZCBpc1xuICAgKiAgIGlsbGVnYWwuXG4gICAqL1xuICBQdXNoQXJncyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQb3BzIEFyZ3VtZW50cyBmcm9tIHRoZSBzdGFjayBhbmQgY2xlYXJzIHRoZSBuZXh0IE4gYXJncy5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQb3BBcmdzKVxuICAgKlxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSwgQXJndW1lbnRzICDihpJcbiAgICogICAuLi5cbiAgICpcbiAgICogRGVzY3JpcHRpb246XG4gICAqIFRoZSBhcmd1bWVudHMgb2JqZWN0IGNvbnRhaW5zIHRoZSBpbmZvcm1hdGlvbiBvZiBob3cgbWFueSB1c2VyXG4gICAqIHN1cHBsaWVkIGFyZ3MgdGhlIGNvbXBvbmVudCB3YXMgaW52b2tlZCB3aXRoLiBUbyBjbGVhciB0aGVtIGZyb21cbiAgICogdGhlIHN0YWNrIHdlIG11c3QgcG9wIGl0IGZyb20gdGhlIHN0YWNrIGFuZCBjYWxsIGBjbGVhcmAgb24gaXRcbiAgICogdG8gcmVtb3ZlIHRoZSBhcmd1bWVudCB2YWx1ZXMgZnJvbSB0aGUgc3RhY2suXG4gICAqL1xuICBQb3BBcmdzLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IC4uLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFByZXBhcmVBcmdzIHN0YXRlOnJlZ2lzdGVyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFByZXBhcmVBcmdzLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFJlcGxhY2VzIEFyZ3VtZW50cyBvbiB0aGUgc3RhY2sgd2l0aCBDYXB0dXJlZEFyZ3VtZW50c1xuICAgKiBGb3JtYXQ6XG4gICAqICAgKENhcHR1cmVBcmdzKVxuICAgKlxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgQXJndW1lbnRzICDihpJcbiAgICogICAuLi4sIENhcHR1cmVkQXJndW1lbnRzXG4gICAqXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiBUaGUgQXJndW1lbnRzIG9iamVjdCBpcyBtdXRhdGVkIGluIHBsYWNlIGJlY2F1c2UgaXQgaXMgdXN1YWxseSBjb25zdW1lZCBpbW1lZGlhdGVseVxuICAgKiBhZnRlciBiZWluZyBwdXNoZWQgb24gdG8gdGhlIHN0YWNrLiBJbiBzb21lIHNpdHVhdGlvbnMsIHN1Y2ggYXMgd2l0aCBjdXJyaWVkIGNvbXBvbmVudHMsXG4gICAqIGluZm9ybWF0aW9uIGFib3V0IG1vcmUgdGhhbiBvbmUgQXJndW1lbnQgbWF5IG5lZWQgdG8gZXhpc3Qgb24gdGhlIHN0YWNrIGF0IG9uY2UuIEluIHRob3NlXG4gICAqIGNhc2VzLCB0aGUgQ2FwdHVyZUFyZ3MgaW5zdHJ1Y3Rpb24gcG9wcyBhbiBBcmd1bWVudHMgb2JqZWN0IG9mZiB0aGUgc3RhY2sgYW5kIHJlcGxhY2VzIGl0XG4gICAqIHdpdGggdGhlIGltbXV0YWJsZSBDYXB0dXJlZEFyZ3Mgc25hcHNob3QuXG4gICAqL1xuICBDYXB0dXJlQXJncyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDcmVhdGUgdGhlIGNvbXBvbmVudCBhbmQgcHVzaCBpdCBvbnRvIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChDcmVhdGVDb21wb25lbnQgZmxhZ3M6dTMyIHN0YXRlOnJlZ2lzdGVyKVxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgRmxhZ3M6XG4gICAqXG4gICAqICAgKiAwYjAwMTogSGFzIGEgZGVmYXVsdCBibG9ja1xuICAgKiAgICogMGIwMTA6IEhhcyBhbiBpbnZlcnNlIGJsb2NrXG4gICAqL1xuICBDcmVhdGVDb21wb25lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUmVnaXN0ZXIgYSBkZXN0cnVjdG9yIGZvciB0aGUgY3VycmVudCBjb21wb25lbnRcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChSZWdpc3RlckNvbXBvbmVudERlc3RydWN0b3Igc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUmVnaXN0ZXJDb21wb25lbnREZXN0cnVjdG9yLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSBuZXcgRWxlbWVudE9wZXJhdGlvbnMgZm9yIHRoZSBjdXJyZW50IGNvbXBvbmVudC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXRDb21wb25lbnRPcGVyYXRpb25zKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFB1dENvbXBvbmVudE9wZXJhdGlvbnMsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCB0aGUgY29tcG9uZW50J3MgYHNlbGZgIG9udG8gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldENvbXBvbmVudFNlbGYgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0Q29tcG9uZW50U2VsZixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIHRoZSBjb21wb25lbnQncyBgc2VsZmAgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoR2V0Q29tcG9uZW50VGFnTmFtZSBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBPcHRpb248c3RyaW5nPlxuICAgKi9cbiAgR2V0Q29tcG9uZW50VGFnTmFtZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBHZXQgdGhlIGNvbXBvbmVudCBsYXlvdXQgZnJvbSB0aGUgbWFuYWdlci5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChHZXRDb21wb25lbnRMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgUHJvZ3JhbVN5bWJvbFRhYmxlLCBIYW5kbGVcbiAgICovXG4gIEdldENvbXBvbmVudExheW91dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcHVsYXRlIHRoZSBzdGF0ZSByZWdpc3RlciB3aXRoIHRoZSBsYXlvdXQgY3VycmVudGx5XG4gICAqICAgb24gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFBvcHVsYXRlTGF5b3V0IHN0YXRlOnJlZ2lzdGVyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgUHJvZ3JhbVN5bWJvbFRhYmxlLCBIYW5kbGUg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBQb3B1bGF0ZUxheW91dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBJbnZva2UgdGhlIGxheW91dCByZXR1cm5lZCBieSB0aGUgbWFuYWdlci5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VDb21wb25lbnRMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlQ29tcG9uZW50TGF5b3V0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEJlZ2luIGEgbmV3IGNhY2hlIGdyb3VwXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQmVnaW5Db21wb25lbnRUcmFuc2FjdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIENvbXBvbmVudE1hbmFnZXI8VD4sIFQg4oaSXG4gICAqICAgLi4uLCBDb21wb25lbnRNYW5hZ2VyPFQ+LCBUXG4gICAqL1xuICBCZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbW1pdCB0aGUgY3VycmVudCBjYWNoZSBncm91cFxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSBkaWRDcmVhdGVFbGVtZW50IG9uIHRoZSBjdXJyZW50IGNvbXBvbmVudCBtYW5hZ2VyXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRGlkQ3JlYXRlRWxlbWVudCBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBEaWRDcmVhdGVFbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSBkaWRSZW5kZXJMYXlvdXQgb24gdGhlIGN1cnJlbnQgY29tcG9uZW50IG1hbmFnZXJcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEaWRSZW5kZXJMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCDihpJcbiAgICogICAuLi5cbiAgICovXG4gIERpZFJlbmRlckxheW91dCxcblxuICAvLy8gUEFSVElBTFNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBMb29rdXAgYW5kIGludm9rZSBhIHBhcnRpYWwgdGVtcGxhdGUuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlUGFydGlhbCB0ZW1wbGF0ZU1ldGE6I1RlbXBsYXRlTWV0YSBzeW1ib2xzOiNBcnJheTwjc3RyaW5nPiBldmFsSW5mbzojQXJyYXk8bnVtYmVyPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8c3RyaW5nPiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEludm9rZVBhcnRpYWwsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBSZXNvbHZlIHt7Zm9vfX0gaW5zaWRlIGEgcGFydGlhbCwgd2hpY2ggY291bGQgYmUgZWl0aGVyIGEgc2VsZi1sb29rdXBcbiAgICogICBvciBhIGxvY2FsIHZhcmlhYmxlIHRoYXQgaXMgaW4tc2NvcGUgZm9yIHRoZSBjYWxsZXIuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmVzb2x2ZU1heWJlTG9jYWwgbG9jYWw6I3N0cmluZylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBSZXNvbHZlTWF5YmVMb2NhbCxcblxuICAvLy8gREVCVUdHRVJcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBY3RpdmF0ZSB0aGUgZGVidWdnZXJcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEZWJ1Z2dlciBzeW1ib2xzOiNBcnJheTxzdHJpbmc+IGV2YWxJbmZvOiNBcnJheTxudW1iZXI+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIERlYnVnZ2VyLFxuXG4gIC8qKiBUaGUgc2l6ZSBvZiB0aGUgb3Bjb2RlIGxpc3QgKi9cbiAgU2l6ZVxufVxuIl19
"use strict";
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Bjb2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZtL2xpYi9vcGNvZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBPcCB7XG4gIC8qXG4gICAgRG9jdW1lbnRhdGlvbiBUT0RPOlxuXG4gICAgRG9jdW1lbnQgdGhlIGxvY2FsIHZhcmlhYmxlIGxheW91dCBpbiB0aGUgc3RhY2tcbiAgICBkaWFncmFtIGJlZm9yZS1hbmQtYWZ0ZXIuXG5cbiAgICBEb2N1bWVudCB1cGRhdGluZyBvcGNvZGVzIGVtaXR0aW5nIGZyb20gdW5yZWFjaGFibGVcbiAgICBhcHBlbmQgb3Bjb2RlLlxuXG4gICAgRG9jdW1lbnQgdGhlIGVsZW1lbnQgc3RhY2ssIGJsb2NrIHN0YWNrIGFuZCBMaXN0XG4gICAgYmxvY2sgc3RhY2suXG4gICAqL1xuXG4gIC8qKlxuICAgKiBUaGlzIG9wY29kZSBzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZC5cbiAgICovXG4gIEJ1ZyxcblxuICAvLy8gRVhQUkVTU0lPTlNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFdmFsdWF0ZSBhIEhlbHBlci5cbiAgICogRm9ybWF0OlxuICAgKiAgIChIZWxwZXIgaGVscGVyOiNGdW5jdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cyDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2VcbiAgICovXG4gIEhlbHBlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIHZhcmlhYmxlIHJlcHJlc2VudGVkIGJ5IGEgc3ltYm9sIGZyb21cbiAgICogICB0aGUgdmFsdWUgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoU2V0VmFyaWFibGUgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBTZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIGJsb2NrIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFNldEJsb2NrIHN5bWJvbDp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBTeW1ib2xUYWJsZSwgSGFuZGxlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgU2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIHRoZSBjb250ZW50cyBvZiB0aGUgdmFyaWFibGUgcmVwcmVzZW50ZWQgYnlcbiAgICogICBhIHN5bWJvbCAoYSBwb3NpdGlvbmFsIG9yIG5hbWVkIGFyZ3VtZW50KSBvbnRvXG4gICAqICAgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hTeW1ib2wgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBHZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgZnJvbSB0aGUgdG9wIG9mIHRoZVxuICAgKiAgIHN0YWNrLCBhbmQgcHVzaCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgY29uc3RydWN0ZWRcbiAgICogICBieSBgLmdldChwcm9wZXJ0eSlgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldFByb3BlcnR5IHByb3BlcnR5OiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0UHJvcGVydHksXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCB0aGUgc3BlY2lmaWVkIGJvdW5kIGJsb2NrIG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldEJsb2NrIGJsb2NrOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBJbmxpbmVCbG9ja1xuICAgKi9cbiAgR2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIFRSVUUgb250byB0aGUgc3RhY2sgaWYgdGhlIHNwZWNpZmllZCBibG9ja1xuICAgKiAgIGlzIGJvdW5kIGFuZCBGQUxTRSBpZiBpdCBpcyBub3QuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2sgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIGJvb2xlYW5cbiAgICovXG4gIEhhc0Jsb2NrLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUHVzaCBUUlVFIG9udG8gdGhlIHN0YWNrIGlmIHRoZSBzcGVjaWZpZWQgYmxvY2tcbiAgICogICBpcyBib3VuZCAqYW5kKiBoYXMgYXQgbGVhc3Qgb25lIHNwZWNpZmllZCBmb3JtYWxcbiAgICogICBwYXJhbWV0ZXIsIGFuZCBGQUxTRSBvdGhlcndpc2UuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2tQYXJhbXMgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgKGJvb2xlYW4pXG4gICAqL1xuICBIYXNCbG9ja1BhcmFtcyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBjb3VudCBgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZWBzIG9mZiB0aGUgc3RhY2sgYW5kXG4gICAqICAgY29uc3RydWN0IGEgbmV3IENvbmNhdFJlZmVyZW5jZSBmcm9tIHRoZW0gKGluIHJldmVyc2VcbiAgICogICBvcmRlcikuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29uY2F0IGNvdW50OnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0g4oaSXG4gICAqICAgLi4uLCBDb25jYXRSZWZlcmVuY2VcbiAgICovXG4gIENvbmNhdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFB1c2ggYW4gT2JqZWN0IGNvbnN0YW50IG9udG8gdGhlIHN0YWNrIHRoYXQgaXMgbm90XG4gICAqICAgYSBKYXZhU2NyaXB0IHByaW1pdGl2ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoQ29uc3RhbnQgY29uc3RhbnQ6I09iamVjdClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBPcGFxdWVcbiAgICovXG4gIENvbnN0YW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgV3JhcCBhIEphdmFTY3JpcHQgcHJpbWl0aXZlIGluIGEgcmVmZXJlbmNlIGFuZCBwdXNoIGl0XG4gICAqICAgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaFByaW1pdGl2ZSBjb25zdGFudDojUHJpbWl0aXZlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFByaW1pdGl2ZVxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBUaGUgdHdvIGhpZ2ggYml0cyBvZiB0aGUgY29uc3RhbnQgcmVmZXJlbmNlIGRlc2NyaWJlXG4gICAqICAgdGhlIGtpbmQgb2YgcHJpbWl0aXZlOlxuICAgKlxuICAgKiAgIDAwOiBudW1iZXJcbiAgICogICAwMTogc3RyaW5nXG4gICAqICAgMTA6IHRydWUgfCBmYWxzZSB8IG51bGwgfCB1bmRlZmluZWRcbiAgICovXG4gIFByaW1pdGl2ZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb252ZXJ0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGludG8gYSBwcmltaXRpdmUgcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFByaW1pdGl2ZVJlZmVyZW5jZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFByaW1pdGl2ZSDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8UHJpbWl0aXZlPlxuICAgKi9cbiAgUHJpbWl0aXZlUmVmZXJlbmNlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbnZlcnQgdGhlIHRvcCBvZiB0aGUgc3RhY2sgaW50byBhIG51bWJlci5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChSZWlmeVUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8dTMyPiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8dTMyPiwgdTMyXG4gICAqL1xuICBSZWlmeVUzMixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBEdXBsaWNhdGUgYW5kIHB1c2ggaXRlbSBmcm9tIGFuIG9mZnNldCBpbiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoRHVwIHJlZ2lzdGVyOnUzMiwgb2Zmc2V0OnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIE9wYXF1ZSDihpJcbiAgICogICAuLi4sIE9wYXF1ZSwgT3BhcXVlXG4gICAqL1xuICBEdXAsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUG9wIE4gaXRlbXMgb2ZmIHRoZSBzdGFjayBhbmQgdGhyb3cgYXdheSB0aGUgdmFsdWUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoUG9wKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgT3BhcXVlLCAuLi4sIE9wYXF1ZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFBvcCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBMb2FkIGEgdmFsdWUgaW50byBhIHJlZ2lzdGVyXG4gICAqIEZvcm1hdDpcbiAgICogICAoTG9hZCByZWdpc3Rlcjp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBPcGFxdWUg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBMb2FkLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEZldGNoIGEgdmFsdWUgZnJvbSBhIHJlZ2lzdGVyXG4gICAqIEZvcm1hdDpcbiAgICogICAoRmV0Y2ggcmVnaXN0ZXI6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIE9wYXF1ZVxuICAgKi9cbiAgRmV0Y2gsXG5cbiAgLy8vIFBSRUxVREUgJiBFWElUXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIG5ldyByb290IHNjb3BlIG9udG8gdGhlIHNjb3BlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFJvb3RTY29wZSBzeW1ib2xzOnUzMiBiaW5kQ2FsbGVyU2NvcGU6Ym9vbClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIEEgcm9vdCBzY29wZSBoYXMgbm8gcGFyZW50IHNjb3BlLCBhbmQgdGhlcmVmb3JlIGluaGVyaXRzIG5vIGxleGljYWxcbiAgICogICB2YXJpYWJsZXMuIElmIGBiaW5kQ2FsbGVyU2NvcGVgIGlzIGB0cnVlYCwgdGhlIGN1cnJlbnQgc2NvcGUgcmVtZW1iZXJzXG4gICAqICAgdGhlIGNhbGxlciBzY29wZSAoZm9yIHlpZWxkaW5nIGJsb2NrcykuXG4gICAqL1xuICBSb290U2NvcGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIG5ldyBjaGlsZCBzY29wZSBvbnRvIHRoZSBzY29wZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChDaGlsZFNjb3BlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgQSBjaGlsZCBzY29wZSBpbmhlcml0cyBmcm9tIHRoZSBjdXJyZW50IHBhcmVudCBzY29wZSwgYW5kIHRoZXJlZm9yZVxuICAgKiAgIHNoYXJlcyBpdHMgbGV4aWNhbCB2YXJpYWJsZXMuXG4gICAqL1xuICBDaGlsZFNjb3BlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFBvcCB0aGUgY3VycmVudCBzY29wZSBmcm9tIHRoZSBzY29wZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQb3BTY29wZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBQb3BTY29wZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBSZXR1cm4gdG8gdGhlIHByZXZpb3VzIGZyYW1lLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFJldHVybilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIGFkZHJlc3M6bnVtYmVyIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUmV0dXJuLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFJldHVybiB0byBhIHBsYWNlIGluIHRoZSBwcm9ncmFtIGdpdmVuIGFuIG9mZnNldFxuICAgKiBGb3JtYXQ6XG4gICAqICAoUmV0dXJuVG8gb2Zmc2V0OmkzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAgLi4uIOKGklxuICAgKi9cbiAgUmV0dXJuVG8sXG5cbiAgLy8vIEhUTUxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBcHBlbmQgYSBUZXh0IG5vZGUgd2l0aCB2YWx1ZSBgY29udGVudHNgXG4gICAqIEZvcm1hdDpcbiAgICogICAoVGV4dCBjb250ZW50czojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFRleHQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQXBwZW5kIGEgQ29tbWVudCBub2RlIHdpdGggdmFsdWUgYGNvbnRlbnRzYFxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENvbW1lbnQgY29udGVudHM6I3N0cmluZylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBDb21tZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFwcGVuZCBjb250ZW50IGFzIEhUTUwuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQXBwZW5kSFRNTClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8c3RyaW5nPiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEFwcGVuZEhUTUwsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQXBwZW5kIFNhZmVIVE1MIGFzIEhUTUwuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQXBwZW5kU2FmZUhUTUwpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPFNhZmVIVE1MPiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEFwcGVuZFNhZmVIVE1MLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFwcGVuZCBEb2N1bWVudEZyYWdtZW50LlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEFwcGVuZEZyYWdtZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxEb2N1bWVudEZyYWdtZW50PiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEFwcGVuZERvY3VtZW50RnJhZ21lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQXBwZW5kIE5vZGUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQXBwZW5kRnJhZ21lbnQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPE5vZGU+IOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgQXBwZW5kTm9kZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBcHBlbmQgY29udGVudCBhcyB0ZXh0LlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEFwcGVuZFRleHQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPHN0cmluZz4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBBcHBlbmRUZXh0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IE9wZW4gYSBuZXcgRWxlbWVudCBuYW1lZCBgdGFnYC5cbiAgICogRm9ybWF0OlxuICAgKiAgIChPcGVuRWxlbWVudCB0YWc6I3N0cmluZylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBPcGVuRWxlbWVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIE9wZW4gYSBuZXcgRWxlbWVudCB3aXRoIGEgbmFtZSBvbiB0aGUgc3RhY2sgYW5kIHdpdGggc3BlY2lhbFxuICAgKiAgIG9wZXJhdGlvbnMgcHJvdmlkZWQgb24gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE9wZW5EeW5hbWljRWxlbWVudClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIHN0cmluZywgRWxlbWVudE9wZXJhdGlvbnMg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBPcGVuRHluYW1pY0VsZW1lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQWRkIGFuIGF0dHJpYnV0ZSB0byB0aGUgY3VycmVudCBFbGVtZW50LlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFN0YXRpY0F0dHIgbmFtZTojc3RyaW5nIHZhbHVlOiNzdHJpbmcgbmFtZXNwYWNlOk9wdGlvbjwjc3RyaW5nPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBTdGF0aWNBdHRyLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgQWRkIGFuIGF0dHJpYnV0ZSB0byB0aGUgY3VycmVudCBlbGVtZW50IHVzaW5nIHRoZSB2YWx1ZVxuICAgKiAgIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKER5bmFtaWNBdHRyIG5hbWU6I3N0cmluZyB0cnVzdGluZzpib29sZWFuIG5hbWVzcGFjZTpPcHRpb248I3N0cmluZz4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBJZiBgdHJ1c3RpbmdgIGlzIGZhbHNlLCB0aGUgaG9zdCBtYXkgc2FuaXRpemUgdGhlIGF0dHJpYnV0ZVxuICAgKiAgIGJhc2VkIHVwb24ga25vd24gcmlza3MuXG4gICAqL1xuICBEeW5hbWljQXR0cixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEFkZCBhbiBhdHRyaWJ1dGUgdG8gdGhlIGN1cnJlbnQgZWxlbWVudCB1c2luZyB0aGUgdmFsdWVcbiAgICogICBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChDb21wb25lbnRBdHIgbmFtZTojc3RyaW5nIHRydXN0aW5nOmJvb2xlYW4gbmFtZXNwYWNlOk9wdGlvbjwjc3RyaW5nPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBDb21wb25lbnRBdHRyLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEZpbmlzaCBzZXR0aW5nIGF0dHJpYnV0ZXMgb24gdGhlIGN1cnJlbnQgZWxlbWVudC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChGbHVzaEVsZW1lbnQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRmx1c2hFbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENsb3NlIHRoZSBjdXJyZW50IGVsZW1lbnQuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ2xvc2VFbGVtZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENsb3NlRWxlbWVudCxcblxuICAvLy8gTU9ESUZJRVJcbiAgTW9kaWZpZXIsICAgICAgICAgICAgICAgICAgLy8gKENvbnN0YW50U3RyaW5nLCBDb25zdGFudE90aGVyPE1vZGlmaWVyTWFuYWdlcj4sIENvbnN0YW50RXhwcmVzc2lvbilcblxuICAvLy8gV09STUhPTEVcbiAgUHVzaFJlbW90ZUVsZW1lbnQsICAgICAgICAgLy8gKClcbiAgUG9wUmVtb3RlRWxlbWVudCwgICAgICAgICAgLy8gKClcblxuICAvLy8gRFlOQU1JQyBTQ09QRVxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEJpbmQgc3RhY2sgdmFsdWVzIGFzIGR5bmFtaWMgdmFyaWFibGVzLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEJpbmREeW5hbWljU2NvcGUgbmFtZXM6I0FycmF5PCNzdHJpbmc+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgVGhpcyBpcyB1c2VkIHRvIGV4cG9zZSBgLXdpdGgtZHluYW1pYy12YXJzYCwgYW5kIGlzIGFcbiAgICogICBuaWNoZSBmZWF0dXJlLlxuICAgKi9cbiAgQmluZER5bmFtaWNTY29wZSxcblxuICBQdXNoRHluYW1pY1Njb3BlLCAgICAgICAgICAvLyAoKVxuICBQb3BEeW5hbWljU2NvcGUsICAgICAgICAgICAvLyAoKVxuXG4gIC8vLyBWTVxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbXBpbGUgdGhlIElubGluZUJsb2NrIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENvbXBpbGVCbG9jaylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIENvbXBpbGFibGVCbG9jayDihpJcbiAgICogICAuLi4sIEhhbmRsZVxuICAgKi9cbiAgQ29tcGlsZUJsb2NrLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSBzY29wZSBvbnRvIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoQmxvY2tTY29wZSAjU2NvcGUpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCDihpJcbiAgICogICAuLi4sIFNjb3BlXG4gICAqL1xuICBQdXNoQmxvY2tTY29wZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgc3ltYm9sIHRhYmxlIG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hTeW1ib2xUYWJsZSAjU3ltYm9sVGFibGUpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCDihpJcbiAgICogICAuLi4sIFN5bWJvbFRhYmxlXG4gICAqL1xuICBQdXNoU3ltYm9sVGFibGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRXZhbHVhdGUgdGhlIGhhbmRsZSBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VWaXJ0dWFsKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgSGFuZGxlLCDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEludm9rZVZpcnR1YWwsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRXZhbHVhdGUgdGhlIGhhbmRsZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VTdGF0aWMgaGFuZGxlOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBJbnZva2VTdGF0aWMsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogWWllbGQgdG8gYSBibG9jay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VZaWVsZClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cywgU3ltYm9sVGFibGUsIEhhbmRsZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEludm9rZVlpZWxkLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEp1bXAgdG8gdGhlIHNwZWNpZmllZCBvZmZzZXQuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSnVtcCB0bzp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSnVtcCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEp1bXAgdG8gdGhlIHNwZWNpZmllZCBvZmZzZXQgaWYgdGhlIHZhbHVlIGF0XG4gICAqICAgdGhlIHRvcCBvZiB0aGUgc3RhY2sgaXMgdHJ1ZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChKdW1wSWYgdG86dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEp1bXBJZixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEp1bXAgdG8gdGhlIHNwZWNpZmllZCBvZmZzZXQgaWYgdGhlIHZhbHVlIGF0XG4gICAqICAgdGhlIHRvcCBvZiB0aGUgc3RhY2sgaXMgZmFsc2UuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSnVtcFVubGVzcyB0bzp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSnVtcFVubGVzcyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEp1bXAgdG8gdGhlIHNwZWNpZmllZCBvZmZzZXQgaWYgdGhlIHZhbHVlIGF0XG4gICAqICAgdGhlIHRvcCBvZiB0aGUgc3RhY2sgaXMgdGhlIHNhbWUgYXMgdGhlXG4gICAqICAgY29tcGFyaXNvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChKdW1wRXEgdG86aTMyIGNvbXBhcmlzb246aTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgdTMyIOKGklxuICAgKiAgIC4uLiwgdTMyXG4gICAqL1xuICBKdW1wRXEsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBWYWxpZGF0ZSB0aGF0IHRoZSB2YWx1ZSBhdCB0aGUgdG9wIG9mIHRoZSBzdGFja1xuICAgKiAgIGhhc24ndCBjaGFuZ2VkLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEFzc2VydFNhbWUpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPHUzMj4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPHUzMj5cbiAgICovXG4gIEFzc2VydFNhbWUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIHN0YWNrIGZyYW1lXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEZyYW1lKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAkcmEsICRmcFxuICAgKi9cbiAgUHVzaEZyYW1lLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFBvcCBhIHN0YWNrIGZyYW1lXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEZyYW1lKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgICRyYSwgJGZwIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUG9wRnJhbWUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBTdGFydCB0cmFja2luZyBhIG5ldyBvdXRwdXQgYmxvY2sgdGhhdCBjb3VsZCBjaGFuZ2VcbiAgICogICBpZiBvbmUgb2YgaXRzIGlucHV0cyBjaGFuZ2VzLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEVudGVyIGFyZ3M6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgU29vbiBhZnRlciB0aGlzIG9wY29kZSwgb25lIG9mIEp1bXAsIEp1bXBJZixcbiAgICogICBKdW1wVW5sZXNzLCBvciBKdW1wRXEgd2lsbCBwcm9kdWNlIGFuIHVwZGF0aW5nXG4gICAqICAgYXNzZXJ0aW9uLiBJZiB0aGF0IGFzc2VydGlvbiBmYWlscywgdGhlIGFwcGVuZGluZ1xuICAgKiAgIFZNIHdpbGwgYmUgcmUtZW50ZXJlZCwgYW5kIHRoZSBpbnN0cnVjdGlvbnMgZnJvbSBgZnJvbWBcbiAgICogICB0byBgdG9gIHdpbGwgYmUgZXhlY3V0ZWQuXG4gICAqXG4gICAqICAgVE9ETzogU2F2ZSBhbmQgcmVzdG9yZS5cbiAgICovXG4gIEVudGVyLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgRmluaXNoIHRyYWNraW5nIHRoZSBjdXJyZW50IGJsb2NrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEV4aXQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBUaGlzIGZpbmFsaXplcyB0aGUgdmFsaWRhdG9ycyB0aGF0IHRoZSB1cGRhdGluZ1xuICAgKiAgIGJsb2NrIG11c3QgY2hlY2sgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgaXQncyBzYWZlIHRvXG4gICAqICAgc2tpcCBydW5uaW5nIHRoZSBjb250ZW50cy5cbiAgICovXG4gIEV4aXQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQ29udmVydCB0aGUgdG9wIG9mIHRoZSBzdGFjayBpbnRvIGEgYm9vbGVhbiByZWZlcmVuY2UuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoVG9Cb29sZWFuKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxPcGFxdWU+IOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxib29sPlxuICAgKi9cbiAgVG9Cb29sZWFuLFxuXG4gIC8vLyBMSVNUU1xuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEVudGVyIGEgbGlzdC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChFbnRlckxpc3QgYWRkcmVzczp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBJdGVyYXRvciDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEVudGVyTGlzdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFeGl0IHRoZSBjdXJyZW50IGxpc3QuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRXhpdExpc3QpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRXhpdExpc3QsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBDb252ZXJ0IGFuIG9wZXJhbmQgYW5kIGtleSBpbnRvIGFuIGl0ZXJhdG9yIGFuZFxuICAgKiAgIHByZXNlbmNlIHJlZmVyZW5jZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXRJdGVyYXRvcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIGtleTpzdHJpbmcsIGxpc3Q6VmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi4sIGl0ZXJhdG9yOlJlZmVyZW5jZUl0ZXJhdG9yLCBwcmVzZW50OlByZXNlbmNlUmVmZXJlbmNlXG4gICAqL1xuICBQdXRJdGVyYXRvcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFNldCB1cCB0aGUgc3RhY2sgZm9yIGl0ZXJhdGluZyBmb3IgYSBnaXZlbiBrZXksXG4gICAqICAgb3IganVtcCB0byBgZW5kYCBpZiB0aGVyZSBpcyBub3RoaW5nIGxlZnQgdG9cbiAgICogICBpdGVyYXRlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEl0ZXJhdGUgZW5kOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICBGb3JtIDE6IChzb21ldGhpbmcgdG8gaXRlcmF0ZSlcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlLCBzdHJpbmdcbiAgICogICBGb3JtIDI6IChub3RoaW5nIGxlZnQgdG8gaXRlcmF0ZSlcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIEluIEZvcm0gMSwgdGhlIHN0YWNrIHdpbGwgaGF2ZSAoaW4gcmV2ZXJzZSBvcmRlcik6XG4gICAqXG4gICAqICAgLSB0aGUga2V5LCBhcyBhIHN0cmluZ1xuICAgKiAgIC0gdGhlIGN1cnJlbnQgaXRlcmF0ZWQgdmFsdWVcbiAgICogICAtIHRoZSBtZW1vaXplZCBpdGVyYXRlZCB2YWx1ZVxuICAgKi9cbiAgSXRlcmF0ZSxcblxuICAvLy8gQ09NUE9ORU5UU1xuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFRlc3Qgd2hldGhlciBhIHJlZmVyZW5jZSBjb250YWlucyBhIGNvbXBvbmVudCBkZWZpbml0aW9uLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE1haW4gc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBJbnZvY2F0aW9uLCBDb21wb25lbnREZWZpbml0aW9uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgTWFpbixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBUZXN0IHdoZXRoZXIgYSByZWZlcmVuY2UgY29udGFpbnMgYSBjb21wb25lbnQgZGVmaW5pdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJc0NvbXBvbmVudClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8Ym9vbGVhbj5cbiAgICovXG4gIElzQ29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggdGhlIGNvbnRlbnQgdHlwZSBvbnRvIHRoZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChDb250ZW50VHlwZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxDb250ZW50VHlwZT5cbiAgICovXG4gIENvbnRlbnRUeXBlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEN1cnJ5IGEgY29tcG9uZW50IGRlZmluaXRpb24gZm9yIGEgbGF0ZXIgaW52b2NhdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChDdXJyeUNvbXBvbmVudCB0ZW1wbGF0ZU1ldGE6I0xvY2F0b3IpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHMg4oaSXG4gICAqICAgLi4uLCB7IFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIExvY2F0b3IsIENhcHR1cmVkQXJndW1lbnRzIH1cbiAgICovXG4gIEN1cnJ5Q29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYW4gYXBwcm9wcmlhdGUgY29tcG9uZW50IG1hbmFnZXIgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaENvbXBvbmVudE1hbmFnZXIgI0NvbXBvbmVudFNwZWMpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgeyBDb21wb25lbnREZWZpbml0aW9uLCBDb21wb25lbnRNYW5hZ2VyIH1cbiAgICovXG4gIFB1c2hDb21wb25lbnREZWZpbml0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUHVzaGVzIHRoZSBDb21wb25lbnRJbnN0YW5jZSBvbnRvIHRoZSBzdGFjayB0aGF0IGlzXG4gICAqICAgdXNlZCBkdXJpbmcgdGhlIGludm9rZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoRHluYW1pY0NvbXBvbmVudEluc3RhbmNlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgQ29tcG9uZW50RGVmaW5pdGlvbiDihpJcbiAgICogICAuLi4sIHsgQ29tcG9uZW50RGVmaW5pdGlvbiwgbWFuYWdlcjogbnVsbCwgbGF5b3V0OiBudWxsLCBzdGF0ZTogbnVsbCwgaGFuZGxlOiBudWxsLCB0YWJsZTogbnVsbCB9XG4gICAqL1xuXG4gIFB1c2hEeW5hbWljQ29tcG9uZW50SW5zdGFuY2UsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoZXMgYSBjdXJyaWVkIGNvbXBvbmVudCBkZWZpbml0aW9uIG9uIHRvIHRoZSBzdGFja1xuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hDdXJyaWVkQ29tcG9uZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxPcGFxdWU+IOKGklxuICAgKiAgIC4uLiwgQ29tcG9uZW50RGVmaW5pdGlvblxuICAgKi9cbiAgUHVzaEN1cnJpZWRDb21wb25lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIGEgcmVzb2x2ZWQgY29tcG9uZW50IGRlZmluaXRpb24gb250byB0aGUgc3RhY2tcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChSZXNvbHZlRHluYW1pY0NvbXBvbmVudCB0ZW1wbGF0ZU1ldGE6I0xvY2F0b3IpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPE9wYXF1ZT4g4oaSXG4gICAqICAgLi4uLCBDb21wb25lbnREZWZpbml0aW9uXG4gICAqL1xuICBSZXNvbHZlRHluYW1pY0NvbXBvbmVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgdXNlciByZXByZXNlbnRhdGlvbiBvZiBhcmdzIG9udG8gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hBcmdzIG5hbWVzOiNBcnJheTwjc3RyaW5nPiBwb3NpdGlvbmFsQ291bnQ6dTMyIHN5bnRoZXRpYzojYm9vbGVhbilcbiAgICpcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0gIOKGklxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSwgQXJndW1lbnRzXG4gICAqXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIFRoaXMgYXJndW1lbnRzIG9iamVjdCBpcyBvbmx5IG5lY2Vzc2FyeSB3aGVuIGNhbGxpbmcgaW50b1xuICAgKiAgIHVzZXItc3BlY2lmaWVkIGhvb2tzLiBJdCBpcyBtZWFudCB0byBiZSBpbXBsZW1lbnRlZCBhcyBhXG4gICAqICAgdHJhbnNpZW50IHByb3h5IHRoYXQgcmVhZHMgaW50byB0aGUgc3RhY2sgYXMgbmVlZGVkLlxuICAgKiAgIEhvbGRpbmcgb250byB0aGUgQXJndW1lbnRzIGFmdGVyIHRoZSBjYWxsIGhhcyBjb21wbGV0ZWQgaXNcbiAgICogICBpbGxlZ2FsLlxuICAgKi9cbiAgUHVzaEFyZ3MsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBlbXB0eSBhcmdzIG9udG8gdGhlIHN0YWNrXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRW1wdHlBcmdzKVxuICAgKlxuICAgKiBPcGVyYW5kU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgQXJndW1lbnRzXG4gICAqL1xuICBQdXNoRW1wdHlBcmdzLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFBvcHMgQXJndW1lbnRzIGZyb20gdGhlIHN0YWNrIGFuZCBjbGVhcnMgdGhlIG5leHQgTiBhcmdzLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFBvcEFyZ3MpXG4gICAqXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHMgIOKGklxuICAgKiAgIC4uLlxuICAgKlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogVGhlIGFyZ3VtZW50cyBvYmplY3QgY29udGFpbnMgdGhlIGluZm9ybWF0aW9uIG9mIGhvdyBtYW55IHVzZXJcbiAgICogc3VwcGxpZWQgYXJncyB0aGUgY29tcG9uZW50IHdhcyBpbnZva2VkIHdpdGguIFRvIGNsZWFyIHRoZW0gZnJvbVxuICAgKiB0aGUgc3RhY2sgd2UgbXVzdCBwb3AgaXQgZnJvbSB0aGUgc3RhY2sgYW5kIGNhbGwgYGNsZWFyYCBvbiBpdFxuICAgKiB0byByZW1vdmUgdGhlIGFyZ3VtZW50IHZhbHVlcyBmcm9tIHRoZSBzdGFjay5cbiAgICovXG4gIFBvcEFyZ3MsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogLi4uXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHJlcGFyZUFyZ3Mgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUHJlcGFyZUFyZ3MsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUmVwbGFjZXMgQXJndW1lbnRzIG9uIHRoZSBzdGFjayB3aXRoIENhcHR1cmVkQXJndW1lbnRzXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ2FwdHVyZUFyZ3MpXG4gICAqXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBBcmd1bWVudHMgIOKGklxuICAgKiAgIC4uLiwgQ2FwdHVyZWRBcmd1bWVudHNcbiAgICpcbiAgICogRGVzY3JpcHRpb246XG4gICAqIFRoZSBBcmd1bWVudHMgb2JqZWN0IGlzIG11dGF0ZWQgaW4gcGxhY2UgYmVjYXVzZSBpdCBpcyB1c3VhbGx5IGNvbnN1bWVkIGltbWVkaWF0ZWx5XG4gICAqIGFmdGVyIGJlaW5nIHB1c2hlZCBvbiB0byB0aGUgc3RhY2suIEluIHNvbWUgc2l0dWF0aW9ucywgc3VjaCBhcyB3aXRoIGN1cnJpZWQgY29tcG9uZW50cyxcbiAgICogaW5mb3JtYXRpb24gYWJvdXQgbW9yZSB0aGFuIG9uZSBBcmd1bWVudCBtYXkgbmVlZCB0byBleGlzdCBvbiB0aGUgc3RhY2sgYXQgb25jZS4gSW4gdGhvc2VcbiAgICogY2FzZXMsIHRoZSBDYXB0dXJlQXJncyBpbnN0cnVjdGlvbiBwb3BzIGFuIEFyZ3VtZW50cyBvYmplY3Qgb2ZmIHRoZSBzdGFjayBhbmQgcmVwbGFjZXMgaXRcbiAgICogd2l0aCB0aGUgaW1tdXRhYmxlIENhcHR1cmVkQXJncyBzbmFwc2hvdC5cbiAgICovXG4gIENhcHR1cmVBcmdzLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENyZWF0ZSB0aGUgY29tcG9uZW50IGFuZCBwdXNoIGl0IG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENyZWF0ZUNvbXBvbmVudCBmbGFnczp1MzIgc3RhdGU6cmVnaXN0ZXIpXG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICBGbGFnczpcbiAgICpcbiAgICogICAqIDBiMDAxOiBIYXMgYSBkZWZhdWx0IGJsb2NrXG4gICAqICAgKiAwYjAxMDogSGFzIGFuIGludmVyc2UgYmxvY2tcbiAgICovXG4gIENyZWF0ZUNvbXBvbmVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBSZWdpc3RlciBhIGRlc3RydWN0b3IgZm9yIHRoZSBjdXJyZW50IGNvbXBvbmVudFxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFJlZ2lzdGVyQ29tcG9uZW50RGVzdHJ1Y3RvciBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBSZWdpc3RlckNvbXBvbmVudERlc3RydWN0b3IsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIG5ldyBFbGVtZW50T3BlcmF0aW9ucyBmb3IgdGhlIGN1cnJlbnQgY29tcG9uZW50LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1dENvbXBvbmVudE9wZXJhdGlvbnMpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUHV0Q29tcG9uZW50T3BlcmF0aW9ucyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIHRoZSBjb21wb25lbnQncyBgc2VsZmAgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoR2V0Q29tcG9uZW50U2VsZiBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBHZXRDb21wb25lbnRTZWxmLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggdGhlIGNvbXBvbmVudCdzIGBzZWxmYCBvbnRvIHRoZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChHZXRDb21wb25lbnRUYWdOYW1lIHN0YXRlOnJlZ2lzdGVyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIE9wdGlvbjxzdHJpbmc+XG4gICAqL1xuICBHZXRDb21wb25lbnRUYWdOYW1lLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEdldCB0aGUgY29tcG9uZW50IGxheW91dCBmcm9tIHRoZSBtYW5hZ2VyLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldENvbXBvbmVudExheW91dCBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBQcm9ncmFtU3ltYm9sVGFibGUsIEhhbmRsZVxuICAgKi9cbiAgR2V0Q29tcG9uZW50TGF5b3V0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUG9wdWxhdGUgdGhlIHN0YXRlIHJlZ2lzdGVyIHdpdGggdGhlIGxheW91dCBjdXJyZW50bHlcbiAgICogICBvbiB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUG9wdWxhdGVMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBQcm9ncmFtU3ltYm9sVGFibGUsIEhhbmRsZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFBvcHVsYXRlTGF5b3V0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSB0aGUgbGF5b3V0IHJldHVybmVkIGJ5IHRoZSBtYW5hZ2VyLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEludm9rZUNvbXBvbmVudExheW91dCBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBJbnZva2VDb21wb25lbnRMYXlvdXQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQmVnaW4gYSBuZXcgY2FjaGUgZ3JvdXBcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChCZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgQ29tcG9uZW50TWFuYWdlcjxUPiwgVCDihpJcbiAgICogICAuLi4sIENvbXBvbmVudE1hbmFnZXI8VD4sIFRcbiAgICovXG4gIEJlZ2luQ29tcG9uZW50VHJhbnNhY3Rpb24sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQ29tbWl0IHRoZSBjdXJyZW50IGNhY2hlIGdyb3VwXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tbWl0Q29tcG9uZW50VHJhbnNhY3Rpb24pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgQ29tbWl0Q29tcG9uZW50VHJhbnNhY3Rpb24sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogSW52b2tlIGRpZENyZWF0ZUVsZW1lbnQgb24gdGhlIGN1cnJlbnQgY29tcG9uZW50IG1hbmFnZXJcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEaWRDcmVhdGVFbGVtZW50IHN0YXRlOnJlZ2lzdGVyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIERpZENyZWF0ZUVsZW1lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogSW52b2tlIGRpZFJlbmRlckxheW91dCBvbiB0aGUgY3VycmVudCBjb21wb25lbnQgbWFuYWdlclxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKERpZFJlbmRlckxheW91dCBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRGlkUmVuZGVyTGF5b3V0LFxuXG4gIC8vLyBQQVJUSUFMU1xuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IExvb2t1cCBhbmQgaW52b2tlIGEgcGFydGlhbCB0ZW1wbGF0ZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VQYXJ0aWFsIHRlbXBsYXRlTWV0YTojTG9jYXRvciBzeW1ib2xzOiNBcnJheTwjc3RyaW5nPiBldmFsSW5mbzojQXJyYXk8bnVtYmVyPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8c3RyaW5nPiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEludm9rZVBhcnRpYWwsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBSZXNvbHZlIHt7Zm9vfX0gaW5zaWRlIGEgcGFydGlhbCwgd2hpY2ggY291bGQgYmUgZWl0aGVyIGEgc2VsZi1sb29rdXBcbiAgICogICBvciBhIGxvY2FsIHZhcmlhYmxlIHRoYXQgaXMgaW4tc2NvcGUgZm9yIHRoZSBjYWxsZXIuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmVzb2x2ZU1heWJlTG9jYWwgbG9jYWw6I3N0cmluZylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBSZXNvbHZlTWF5YmVMb2NhbCxcblxuICAvLy8gREVCVUdHRVJcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBY3RpdmF0ZSB0aGUgZGVidWdnZXJcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEZWJ1Z2dlciBzeW1ib2xzOiNBcnJheTxzdHJpbmc+IGV2YWxJbmZvOiNBcnJheTxudW1iZXI+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIERlYnVnZ2VyLFxuXG4gIC8qKiBUaGUgc2l6ZSBvZiB0aGUgb3Bjb2RlIGxpc3QgKi9cbiAgU2l6ZVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Bjb2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZtL2xpYi9vcGNvZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBPcCB7XG4gIC8qXG4gICAgRG9jdW1lbnRhdGlvbiBUT0RPOlxuXG4gICAgRG9jdW1lbnQgdGhlIGxvY2FsIHZhcmlhYmxlIGxheW91dCBpbiB0aGUgc3RhY2tcbiAgICBkaWFncmFtIGJlZm9yZS1hbmQtYWZ0ZXIuXG5cbiAgICBEb2N1bWVudCB1cGRhdGluZyBvcGNvZGVzIGVtaXR0aW5nIGZyb20gdW5yZWFjaGFibGVcbiAgICBhcHBlbmQgb3Bjb2RlLlxuXG4gICAgRG9jdW1lbnQgdGhlIGVsZW1lbnQgc3RhY2ssIGJsb2NrIHN0YWNrIGFuZCBMaXN0XG4gICAgYmxvY2sgc3RhY2suXG4gICAqL1xuXG4gIC8qKlxuICAgKiBUaGlzIG9wY29kZSBzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZC5cbiAgICovXG4gIEJ1ZyxcblxuICAvLy8gRVhQUkVTU0lPTlNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFdmFsdWF0ZSBhIEhlbHBlci5cbiAgICogRm9ybWF0OlxuICAgKiAgIChIZWxwZXIgaGVscGVyOiNGdW5jdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cyDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2VcbiAgICovXG4gIEhlbHBlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIHZhcmlhYmxlIHJlcHJlc2VudGVkIGJ5IGEgc3ltYm9sIGZyb21cbiAgICogICB0aGUgdmFsdWUgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoU2V0VmFyaWFibGUgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBTZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIGJsb2NrIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFNldEJsb2NrIHN5bWJvbDp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBTeW1ib2xUYWJsZSwgSGFuZGxlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgU2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIHRoZSBjb250ZW50cyBvZiB0aGUgdmFyaWFibGUgcmVwcmVzZW50ZWQgYnlcbiAgICogICBhIHN5bWJvbCAoYSBwb3NpdGlvbmFsIG9yIG5hbWVkIGFyZ3VtZW50KSBvbnRvXG4gICAqICAgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hTeW1ib2wgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBHZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgZnJvbSB0aGUgdG9wIG9mIHRoZVxuICAgKiAgIHN0YWNrLCBhbmQgcHVzaCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgY29uc3RydWN0ZWRcbiAgICogICBieSBgLmdldChwcm9wZXJ0eSlgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldFByb3BlcnR5IHByb3BlcnR5OiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0UHJvcGVydHksXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCB0aGUgc3BlY2lmaWVkIGJvdW5kIGJsb2NrIG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldEJsb2NrIGJsb2NrOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBJbmxpbmVCbG9ja1xuICAgKi9cbiAgR2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIFRSVUUgb250byB0aGUgc3RhY2sgaWYgdGhlIHNwZWNpZmllZCBibG9ja1xuICAgKiAgIGlzIGJvdW5kIGFuZCBGQUxTRSBpZiBpdCBpcyBub3QuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2sgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIGJvb2xlYW5cbiAgICovXG4gIEhhc0Jsb2NrLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUHVzaCBUUlVFIG9udG8gdGhlIHN0YWNrIGlmIHRoZSBzcGVjaWZpZWQgYmxvY2tcbiAgICogICBpcyBib3VuZCAqYW5kKiBoYXMgYXQgbGVhc3Qgb25lIHNwZWNpZmllZCBmb3JtYWxcbiAgICogICBwYXJhbWV0ZXIsIGFuZCBGQUxTRSBvdGhlcndpc2UuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2tQYXJhbXMgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgKGJvb2xlYW4pXG4gICAqL1xuICBIYXNCbG9ja1BhcmFtcyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBjb3VudCBgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZWBzIG9mZiB0aGUgc3RhY2sgYW5kXG4gICAqICAgY29uc3RydWN0IGEgbmV3IENvbmNhdFJlZmVyZW5jZSBmcm9tIHRoZW0gKGluIHJldmVyc2VcbiAgICogICBvcmRlcikuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29uY2F0IGNvdW50OnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0g4oaSXG4gICAqICAgLi4uLCBDb25jYXRSZWZlcmVuY2VcbiAgICovXG4gIENvbmNhdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFB1c2ggYW4gT2JqZWN0IGNvbnN0YW50IG9udG8gdGhlIHN0YWNrIHRoYXQgaXMgbm90XG4gICAqICAgYSBKYXZhU2NyaXB0IHByaW1pdGl2ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoQ29uc3RhbnQgY29uc3RhbnQ6I09iamVjdClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBPcGFxdWVcbiAgICovXG4gIENvbnN0YW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgV3JhcCBhIEphdmFTY3JpcHQgcHJpbWl0aXZlIGluIGEgcmVmZXJlbmNlIGFuZCBwdXNoIGl0XG4gICAqICAgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaFByaW1pdGl2ZSBjb25zdGFudDojUHJpbWl0aXZlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFByaW1pdGl2ZVxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBUaGUgdHdvIGhpZ2ggYml0cyBvZiB0aGUgY29uc3RhbnQgcmVmZXJlbmNlIGRlc2NyaWJlXG4gICAqICAgdGhlIGtpbmQgb2YgcHJpbWl0aXZlOlxuICAgKlxuICAgKiAgIDAwOiBudW1iZXJcbiAgICogICAwMTogc3RyaW5nXG4gICAqICAgMTA6IHRydWUgfCBmYWxzZSB8IG51bGwgfCB1bmRlZmluZWRcbiAgICovXG4gIFByaW1pdGl2ZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb252ZXJ0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGludG8gYSBwcmltaXRpdmUgcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFByaW1pdGl2ZVJlZmVyZW5jZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFByaW1pdGl2ZSDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8UHJpbWl0aXZlPlxuICAgKi9cbiAgUHJpbWl0aXZlUmVmZXJlbmNlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IER1cGxpY2F0ZSBhbmQgcHVzaCBpdGVtIGZyb20gYW4gb2Zmc2V0IGluIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChEdXAgcmVnaXN0ZXI6dTMyLCBvZmZzZXQ6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgT3BhcXVlIOKGklxuICAgKiAgIC4uLiwgT3BhcXVlLCBPcGFxdWVcbiAgICovXG4gIER1cCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQb3AgTiBpdGVtcyBvZmYgdGhlIHN0YWNrIGFuZCB0aHJvdyBhd2F5IHRoZSB2YWx1ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQb3ApXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBPcGFxdWUsIC4uLiwgT3BhcXVlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUG9wLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IExvYWQgYSB2YWx1ZSBpbnRvIGEgcmVnaXN0ZXJcbiAgICogRm9ybWF0OlxuICAgKiAgIChMb2FkIHJlZ2lzdGVyOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIE9wYXF1ZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIExvYWQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRmV0Y2ggYSB2YWx1ZSBmcm9tIGEgcmVnaXN0ZXJcbiAgICogRm9ybWF0OlxuICAgKiAgIChGZXRjaCByZWdpc3Rlcjp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgT3BhcXVlXG4gICAqL1xuICBGZXRjaCxcblxuICAvLy8gUFJFTFVERSAmIEVYSVRcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgbmV3IHJvb3Qgc2NvcGUgb250byB0aGUgc2NvcGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUm9vdFNjb3BlIHN5bWJvbHM6dTMyIGJpbmRDYWxsZXJTY29wZTpib29sKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgQSByb290IHNjb3BlIGhhcyBubyBwYXJlbnQgc2NvcGUsIGFuZCB0aGVyZWZvcmUgaW5oZXJpdHMgbm8gbGV4aWNhbFxuICAgKiAgIHZhcmlhYmxlcy4gSWYgYGJpbmRDYWxsZXJTY29wZWAgaXMgYHRydWVgLCB0aGUgY3VycmVudCBzY29wZSByZW1lbWJlcnNcbiAgICogICB0aGUgY2FsbGVyIHNjb3BlIChmb3IgeWllbGRpbmcgYmxvY2tzKS5cbiAgICovXG4gIFJvb3RTY29wZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgbmV3IGNoaWxkIHNjb3BlIG9udG8gdGhlIHNjb3BlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENoaWxkU2NvcGUpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBBIGNoaWxkIHNjb3BlIGluaGVyaXRzIGZyb20gdGhlIGN1cnJlbnQgcGFyZW50IHNjb3BlLCBhbmQgdGhlcmVmb3JlXG4gICAqICAgc2hhcmVzIGl0cyBsZXhpY2FsIHZhcmlhYmxlcy5cbiAgICovXG4gIENoaWxkU2NvcGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUG9wIHRoZSBjdXJyZW50IHNjb3BlIGZyb20gdGhlIHNjb3BlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFBvcFNjb3BlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFBvcFNjb3BlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFJldHVybiB0byB0aGUgcHJldmlvdXMgZnJhbWUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmV0dXJuKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgYWRkcmVzczpudW1iZXIg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBSZXR1cm4sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUmV0dXJuIHRvIGEgcGxhY2UgaW4gdGhlIHByb2dyYW0gZ2l2ZW4gYW4gb2Zmc2V0XG4gICAqIEZvcm1hdDpcbiAgICogIChSZXR1cm5UbyBvZmZzZXQ6aTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgICAuLi4g4oaSXG4gICAqL1xuICBSZXR1cm5UbyxcblxuICAvLy8gSFRNTFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFwcGVuZCBhIFRleHQgbm9kZSB3aXRoIHZhbHVlIGBjb250ZW50c2BcbiAgICogRm9ybWF0OlxuICAgKiAgIChUZXh0IGNvbnRlbnRzOiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgVGV4dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBcHBlbmQgYSBDb21tZW50IG5vZGUgd2l0aCB2YWx1ZSBgY29udGVudHNgXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tbWVudCBjb250ZW50czojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbW1lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQXBwZW5kIGEgRHluYW1pYyBub2RlIGJhc2VkIG9uIC5cbiAgICogRm9ybWF0OlxuICAgKiAgIChEeW5hbWljQ29udGVudCBpc1RydXN0aW5nOmJvb2xlYW4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRHluYW1pY0NvbnRlbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogT3BlbiBhIG5ldyBFbGVtZW50IG5hbWVkIGB0YWdgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE9wZW5FbGVtZW50IHRhZzojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE9wZW5FbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgT3BlbiBhIG5ldyBFbGVtZW50IHdpdGggYSBuYW1lIG9uIHRoZSBzdGFjayBhbmQgd2l0aCBzcGVjaWFsXG4gICAqICAgb3BlcmF0aW9ucyBwcm92aWRlZCBvbiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoT3BlbkR5bmFtaWNFbGVtZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgc3RyaW5nLCBFbGVtZW50T3BlcmF0aW9ucyDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE9wZW5EeW5hbWljRWxlbWVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBZGQgYW4gYXR0cmlidXRlIHRvIHRoZSBjdXJyZW50IEVsZW1lbnQuXG4gICAqIEZvcm1hdDpcbiAgICogICAoU3RhdGljQXR0ciBuYW1lOiNzdHJpbmcgdmFsdWU6I3N0cmluZyBuYW1lc3BhY2U6T3B0aW9uPCNzdHJpbmc+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFN0YXRpY0F0dHIsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBBZGQgYW4gYXR0cmlidXRlIHRvIHRoZSBjdXJyZW50IGVsZW1lbnQgdXNpbmcgdGhlIHZhbHVlXG4gICAqICAgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRHluYW1pY0F0dHIgbmFtZTojc3RyaW5nIHRydXN0aW5nOmJvb2xlYW4gbmFtZXNwYWNlOk9wdGlvbjwjc3RyaW5nPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIElmIGB0cnVzdGluZ2AgaXMgZmFsc2UsIHRoZSBob3N0IG1heSBzYW5pdGl6ZSB0aGUgYXR0cmlidXRlXG4gICAqICAgYmFzZWQgdXBvbiBrbm93biByaXNrcy5cbiAgICovXG4gIER5bmFtaWNBdHRyLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgQWRkIGFuIGF0dHJpYnV0ZSB0byB0aGUgY3VycmVudCBlbGVtZW50IHVzaW5nIHRoZSB2YWx1ZVxuICAgKiAgIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENvbXBvbmVudEF0ciBuYW1lOiNzdHJpbmcgdHJ1c3Rpbmc6Ym9vbGVhbiBuYW1lc3BhY2U6T3B0aW9uPCNzdHJpbmc+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbXBvbmVudEF0dHIsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRmluaXNoIHNldHRpbmcgYXR0cmlidXRlcyBvbiB0aGUgY3VycmVudCBlbGVtZW50LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEZsdXNoRWxlbWVudClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBGbHVzaEVsZW1lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQ2xvc2UgdGhlIGN1cnJlbnQgZWxlbWVudC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChDbG9zZUVsZW1lbnQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgQ2xvc2VFbGVtZW50LFxuXG4gIC8vLyBNT0RJRklFUlxuICBNb2RpZmllciwgICAgICAgICAgICAgICAgICAvLyAoQ29uc3RhbnRTdHJpbmcsIENvbnN0YW50T3RoZXI8TW9kaWZpZXJNYW5hZ2VyPiwgQ29uc3RhbnRFeHByZXNzaW9uKVxuXG4gIC8vLyBXT1JNSE9MRVxuICBQdXNoUmVtb3RlRWxlbWVudCwgICAgICAgICAvLyAoKVxuICBQb3BSZW1vdGVFbGVtZW50LCAgICAgICAgICAvLyAoKVxuXG4gIC8vLyBEWU5BTUlDIFNDT1BFXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQmluZCBzdGFjayB2YWx1ZXMgYXMgZHluYW1pYyB2YXJpYWJsZXMuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQmluZER5bmFtaWNTY29wZSBuYW1lczojQXJyYXk8I3N0cmluZz4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBUaGlzIGlzIHVzZWQgdG8gZXhwb3NlIGAtd2l0aC1keW5hbWljLXZhcnNgLCBhbmQgaXMgYVxuICAgKiAgIG5pY2hlIGZlYXR1cmUuXG4gICAqL1xuICBCaW5kRHluYW1pY1Njb3BlLFxuXG4gIFB1c2hEeW5hbWljU2NvcGUsICAgICAgICAgIC8vICgpXG4gIFBvcER5bmFtaWNTY29wZSwgICAgICAgICAgIC8vICgpXG5cbiAgLy8vIFZNXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQ29tcGlsZSB0aGUgSW5saW5lQmxvY2sgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tcGlsZUJsb2NrKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgQ29tcGlsYWJsZUJsb2NrIOKGklxuICAgKiAgIC4uLiwgSGFuZGxlXG4gICAqL1xuICBDb21waWxlQmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIHNjb3BlIG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hCbG9ja1Njb3BlICNTY29wZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIOKGklxuICAgKiAgIC4uLiwgU2NvcGVcbiAgICovXG4gIFB1c2hCbG9ja1Njb3BlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSBzeW1ib2wgdGFibGUgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaFN5bWJvbFRhYmxlICNTeW1ib2xUYWJsZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIOKGklxuICAgKiAgIC4uLiwgU3ltYm9sVGFibGVcbiAgICovXG4gIFB1c2hTeW1ib2xUYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFdmFsdWF0ZSB0aGUgaGFuZGxlIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEludm9rZVZpcnR1YWwpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBIYW5kbGUsIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlVmlydHVhbCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFdmFsdWF0ZSB0aGUgaGFuZGxlLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEludm9rZVN0YXRpYyBoYW5kbGU6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEludm9rZVN0YXRpYyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBZaWVsZCB0byBhIGJsb2NrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEludm9rZVlpZWxkKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSwgQXJndW1lbnRzLCBTeW1ib2xUYWJsZSwgSGFuZGxlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlWWllbGQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogSnVtcCB0byB0aGUgc3BlY2lmaWVkIG9mZnNldC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChKdW1wIHRvOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBKdW1wLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgSnVtcCB0byB0aGUgc3BlY2lmaWVkIG9mZnNldCBpZiB0aGUgdmFsdWUgYXRcbiAgICogICB0aGUgdG9wIG9mIHRoZSBzdGFjayBpcyB0cnVlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEp1bXBJZiB0bzp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSnVtcElmLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgSnVtcCB0byB0aGUgc3BlY2lmaWVkIG9mZnNldCBpZiB0aGUgdmFsdWUgYXRcbiAgICogICB0aGUgdG9wIG9mIHRoZSBzdGFjayBpcyBmYWxzZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChKdW1wVW5sZXNzIHRvOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBKdW1wVW5sZXNzLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSBzdGFjayBmcmFtZVxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hGcmFtZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgJHJhLCAkZnBcbiAgICovXG4gIFB1c2hGcmFtZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQb3AgYSBzdGFjayBmcmFtZVxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hGcmFtZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAkcmEsICRmcCDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFBvcEZyYW1lLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgU3RhcnQgdHJhY2tpbmcgYSBuZXcgb3V0cHV0IGJsb2NrIHRoYXQgY291bGQgY2hhbmdlXG4gICAqICAgaWYgb25lIG9mIGl0cyBpbnB1dHMgY2hhbmdlcy5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChFbnRlciBhcmdzOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIFNvb24gYWZ0ZXIgdGhpcyBvcGNvZGUsIG9uZSBvZiBKdW1wLCBKdW1wSWYsXG4gICAqICAgb3IgSnVtcFVubGVzcyB3aWxsIHByb2R1Y2UgYW4gdXBkYXRpbmcgYXNzZXJ0aW9uLlxuICAgKiAgIElmIHRoYXQgYXNzZXJ0aW9uIGZhaWxzLCB0aGUgYXBwZW5kaW5nIFZNIHdpbGxcbiAgICogICBiZSByZS1lbnRlcmVkLCBhbmQgdGhlIGluc3RydWN0aW9ucyBmcm9tIGBmcm9tYFxuICAgKiAgIHRvIGB0b2Agd2lsbCBiZSBleGVjdXRlZC5cbiAgICpcbiAgICogICBUT0RPOiBTYXZlIGFuZCByZXN0b3JlLlxuICAgKi9cbiAgRW50ZXIsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBGaW5pc2ggdHJhY2tpbmcgdGhlIGN1cnJlbnQgYmxvY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRXhpdClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIFRoaXMgZmluYWxpemVzIHRoZSB2YWxpZGF0b3JzIHRoYXQgdGhlIHVwZGF0aW5nXG4gICAqICAgYmxvY2sgbXVzdCBjaGVjayB0byBkZXRlcm1pbmUgd2hldGhlciBpdCdzIHNhZmUgdG9cbiAgICogICBza2lwIHJ1bm5pbmcgdGhlIGNvbnRlbnRzLlxuICAgKi9cbiAgRXhpdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb252ZXJ0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGludG8gYSBib29sZWFuIHJlZmVyZW5jZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChUb0Jvb2xlYW4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPE9wYXF1ZT4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPGJvb2w+XG4gICAqL1xuICBUb0Jvb2xlYW4sXG5cbiAgLy8vIExJU1RTXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRW50ZXIgYSBsaXN0LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEVudGVyTGlzdCBhZGRyZXNzOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIEl0ZXJhdG9yIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRW50ZXJMaXN0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEV4aXQgdGhlIGN1cnJlbnQgbGlzdC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChFeGl0TGlzdClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBFeGl0TGlzdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIENvbnZlcnQgYW4gb3BlcmFuZCBhbmQga2V5IGludG8gYW4gaXRlcmF0b3IgYW5kXG4gICAqICAgcHJlc2VuY2UgcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1dEl0ZXJhdG9yKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwga2V5OnN0cmluZywgbGlzdDpWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLiwgaXRlcmF0b3I6UmVmZXJlbmNlSXRlcmF0b3IsIHByZXNlbnQ6UHJlc2VuY2VSZWZlcmVuY2VcbiAgICovXG4gIFB1dEl0ZXJhdG9yLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgU2V0IHVwIHRoZSBzdGFjayBmb3IgaXRlcmF0aW5nIGZvciBhIGdpdmVuIGtleSxcbiAgICogICBvciBqdW1wIHRvIGBlbmRgIGlmIHRoZXJlIGlzIG5vdGhpbmcgbGVmdCB0b1xuICAgKiAgIGl0ZXJhdGUuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSXRlcmF0ZSBlbmQ6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIEZvcm0gMTogKHNvbWV0aGluZyB0byBpdGVyYXRlKVxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIHN0cmluZ1xuICAgKiAgIEZvcm0gMjogKG5vdGhpbmcgbGVmdCB0byBpdGVyYXRlKVxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgSW4gRm9ybSAxLCB0aGUgc3RhY2sgd2lsbCBoYXZlIChpbiByZXZlcnNlIG9yZGVyKTpcbiAgICpcbiAgICogICAtIHRoZSBrZXksIGFzIGEgc3RyaW5nXG4gICAqICAgLSB0aGUgY3VycmVudCBpdGVyYXRlZCB2YWx1ZVxuICAgKiAgIC0gdGhlIG1lbW9pemVkIGl0ZXJhdGVkIHZhbHVlXG4gICAqL1xuICBJdGVyYXRlLFxuXG4gIC8vLyBDT01QT05FTlRTXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogVGVzdCB3aGV0aGVyIGEgcmVmZXJlbmNlIGNvbnRhaW5zIGEgY29tcG9uZW50IGRlZmluaXRpb24uXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoTWFpbiBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIEludm9jYXRpb24sIENvbXBvbmVudERlZmluaXRpb24g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBNYWluLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFRlc3Qgd2hldGhlciBhIHJlZmVyZW5jZSBjb250YWlucyBhIGNvbXBvbmVudCBkZWZpbml0aW9uLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKElzQ29tcG9uZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxPcGFxdWU+IOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxib29sZWFuPlxuICAgKi9cbiAgSXNDb21wb25lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQ3VycnkgYSBjb21wb25lbnQgZGVmaW5pdGlvbiBmb3IgYSBsYXRlciBpbnZvY2F0aW9uLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEN1cnJ5Q29tcG9uZW50IHRlbXBsYXRlTWV0YTojVGVtcGxhdGVNZXRhKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSwgQXJndW1lbnRzIOKGklxuICAgKiAgIC4uLiwgeyBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlLCBUZW1wbGF0ZU1ldGEsIENhcHR1cmVkQXJndW1lbnRzIH1cbiAgICovXG4gIEN1cnJ5Q29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYW4gYXBwcm9wcmlhdGUgY29tcG9uZW50IG1hbmFnZXIgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaENvbXBvbmVudE1hbmFnZXIgI0NvbXBvbmVudFNwZWMpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgeyBDb21wb25lbnREZWZpbml0aW9uLCBDb21wb25lbnRNYW5hZ2VyIH1cbiAgICovXG4gIFB1c2hDb21wb25lbnREZWZpbml0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUHVzaGVzIHRoZSBDb21wb25lbnRJbnN0YW5jZSBvbnRvIHRoZSBzdGFjayB0aGF0IGlzXG4gICAqICAgdXNlZCBkdXJpbmcgdGhlIGludm9rZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoRHluYW1pY0NvbXBvbmVudEluc3RhbmNlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgQ29tcG9uZW50RGVmaW5pdGlvbiDihpJcbiAgICogICAuLi4sIHsgQ29tcG9uZW50RGVmaW5pdGlvbiwgbWFuYWdlcjogbnVsbCwgbGF5b3V0OiBudWxsLCBzdGF0ZTogbnVsbCwgaGFuZGxlOiBudWxsLCB0YWJsZTogbnVsbCB9XG4gICAqL1xuXG4gIFB1c2hEeW5hbWljQ29tcG9uZW50SW5zdGFuY2UsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoZXMgYSBjdXJyaWVkIGNvbXBvbmVudCBkZWZpbml0aW9uIG9uIHRvIHRoZSBzdGFja1xuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hDdXJyaWVkQ29tcG9uZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxPcGFxdWU+IOKGklxuICAgKiAgIC4uLiwgQ29tcG9uZW50RGVmaW5pdGlvblxuICAgKi9cbiAgUHVzaEN1cnJpZWRDb21wb25lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIGEgcmVzb2x2ZWQgY29tcG9uZW50IGRlZmluaXRpb24gb250byB0aGUgc3RhY2tcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChSZXNvbHZlRHluYW1pY0NvbXBvbmVudCB0ZW1wbGF0ZU1ldGE6I1RlbXBsYXRlTWV0YSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiDihpJcbiAgICogICAuLi4sIENvbXBvbmVudERlZmluaXRpb25cbiAgICovXG4gIFJlc29sdmVEeW5hbWljQ29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSB1c2VyIHJlcHJlc2VudGF0aW9uIG9mIGFyZ3Mgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEFyZ3MgbmFtZXM6I0FycmF5PCNzdHJpbmc+IHBvc2l0aW9uYWxDb3VudDp1MzIgc3ludGhldGljOiNib29sZWFuKVxuICAgKlxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSAg4oaSXG4gICAqICAgLi4uLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHNcbiAgICpcbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgVGhpcyBhcmd1bWVudHMgb2JqZWN0IGlzIG9ubHkgbmVjZXNzYXJ5IHdoZW4gY2FsbGluZyBpbnRvXG4gICAqICAgdXNlci1zcGVjaWZpZWQgaG9va3MuIEl0IGlzIG1lYW50IHRvIGJlIGltcGxlbWVudGVkIGFzIGFcbiAgICogICB0cmFuc2llbnQgcHJveHkgdGhhdCByZWFkcyBpbnRvIHRoZSBzdGFjayBhcyBuZWVkZWQuXG4gICAqICAgSG9sZGluZyBvbnRvIHRoZSBBcmd1bWVudHMgYWZ0ZXIgdGhlIGNhbGwgaGFzIGNvbXBsZXRlZCBpc1xuICAgKiAgIGlsbGVnYWwuXG4gICAqL1xuICBQdXNoQXJncyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQb3BzIEFyZ3VtZW50cyBmcm9tIHRoZSBzdGFjayBhbmQgY2xlYXJzIHRoZSBuZXh0IE4gYXJncy5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQb3BBcmdzKVxuICAgKlxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSwgQXJndW1lbnRzICDihpJcbiAgICogICAuLi5cbiAgICpcbiAgICogRGVzY3JpcHRpb246XG4gICAqIFRoZSBhcmd1bWVudHMgb2JqZWN0IGNvbnRhaW5zIHRoZSBpbmZvcm1hdGlvbiBvZiBob3cgbWFueSB1c2VyXG4gICAqIHN1cHBsaWVkIGFyZ3MgdGhlIGNvbXBvbmVudCB3YXMgaW52b2tlZCB3aXRoLiBUbyBjbGVhciB0aGVtIGZyb21cbiAgICogdGhlIHN0YWNrIHdlIG11c3QgcG9wIGl0IGZyb20gdGhlIHN0YWNrIGFuZCBjYWxsIGBjbGVhcmAgb24gaXRcbiAgICogdG8gcmVtb3ZlIHRoZSBhcmd1bWVudCB2YWx1ZXMgZnJvbSB0aGUgc3RhY2suXG4gICAqL1xuICBQb3BBcmdzLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IC4uLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFByZXBhcmVBcmdzIHN0YXRlOnJlZ2lzdGVyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFByZXBhcmVBcmdzLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFJlcGxhY2VzIEFyZ3VtZW50cyBvbiB0aGUgc3RhY2sgd2l0aCBDYXB0dXJlZEFyZ3VtZW50c1xuICAgKiBGb3JtYXQ6XG4gICAqICAgKENhcHR1cmVBcmdzKVxuICAgKlxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgQXJndW1lbnRzICDihpJcbiAgICogICAuLi4sIENhcHR1cmVkQXJndW1lbnRzXG4gICAqXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiBUaGUgQXJndW1lbnRzIG9iamVjdCBpcyBtdXRhdGVkIGluIHBsYWNlIGJlY2F1c2UgaXQgaXMgdXN1YWxseSBjb25zdW1lZCBpbW1lZGlhdGVseVxuICAgKiBhZnRlciBiZWluZyBwdXNoZWQgb24gdG8gdGhlIHN0YWNrLiBJbiBzb21lIHNpdHVhdGlvbnMsIHN1Y2ggYXMgd2l0aCBjdXJyaWVkIGNvbXBvbmVudHMsXG4gICAqIGluZm9ybWF0aW9uIGFib3V0IG1vcmUgdGhhbiBvbmUgQXJndW1lbnQgbWF5IG5lZWQgdG8gZXhpc3Qgb24gdGhlIHN0YWNrIGF0IG9uY2UuIEluIHRob3NlXG4gICAqIGNhc2VzLCB0aGUgQ2FwdHVyZUFyZ3MgaW5zdHJ1Y3Rpb24gcG9wcyBhbiBBcmd1bWVudHMgb2JqZWN0IG9mZiB0aGUgc3RhY2sgYW5kIHJlcGxhY2VzIGl0XG4gICAqIHdpdGggdGhlIGltbXV0YWJsZSBDYXB0dXJlZEFyZ3Mgc25hcHNob3QuXG4gICAqL1xuICBDYXB0dXJlQXJncyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDcmVhdGUgdGhlIGNvbXBvbmVudCBhbmQgcHVzaCBpdCBvbnRvIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChDcmVhdGVDb21wb25lbnQgZmxhZ3M6dTMyIHN0YXRlOnJlZ2lzdGVyKVxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgRmxhZ3M6XG4gICAqXG4gICAqICAgKiAwYjAwMTogSGFzIGEgZGVmYXVsdCBibG9ja1xuICAgKiAgICogMGIwMTA6IEhhcyBhbiBpbnZlcnNlIGJsb2NrXG4gICAqL1xuICBDcmVhdGVDb21wb25lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUmVnaXN0ZXIgYSBkZXN0cnVjdG9yIGZvciB0aGUgY3VycmVudCBjb21wb25lbnRcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChSZWdpc3RlckNvbXBvbmVudERlc3RydWN0b3Igc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUmVnaXN0ZXJDb21wb25lbnREZXN0cnVjdG9yLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSBuZXcgRWxlbWVudE9wZXJhdGlvbnMgZm9yIHRoZSBjdXJyZW50IGNvbXBvbmVudC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXRDb21wb25lbnRPcGVyYXRpb25zKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFB1dENvbXBvbmVudE9wZXJhdGlvbnMsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCB0aGUgY29tcG9uZW50J3MgYHNlbGZgIG9udG8gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldENvbXBvbmVudFNlbGYgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0Q29tcG9uZW50U2VsZixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIHRoZSBjb21wb25lbnQncyBgc2VsZmAgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoR2V0Q29tcG9uZW50VGFnTmFtZSBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBPcHRpb248c3RyaW5nPlxuICAgKi9cbiAgR2V0Q29tcG9uZW50VGFnTmFtZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBHZXQgdGhlIGNvbXBvbmVudCBsYXlvdXQgZnJvbSB0aGUgbWFuYWdlci5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChHZXRDb21wb25lbnRMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgUHJvZ3JhbVN5bWJvbFRhYmxlLCBIYW5kbGVcbiAgICovXG4gIEdldENvbXBvbmVudExheW91dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcHVsYXRlIHRoZSBzdGF0ZSByZWdpc3RlciB3aXRoIHRoZSBsYXlvdXQgY3VycmVudGx5XG4gICAqICAgb24gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFBvcHVsYXRlTGF5b3V0IHN0YXRlOnJlZ2lzdGVyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgUHJvZ3JhbVN5bWJvbFRhYmxlLCBIYW5kbGUg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBQb3B1bGF0ZUxheW91dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBJbnZva2UgdGhlIGxheW91dCByZXR1cm5lZCBieSB0aGUgbWFuYWdlci5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VDb21wb25lbnRMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlQ29tcG9uZW50TGF5b3V0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEJlZ2luIGEgbmV3IGNhY2hlIGdyb3VwXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQmVnaW5Db21wb25lbnRUcmFuc2FjdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIENvbXBvbmVudE1hbmFnZXI8VD4sIFQg4oaSXG4gICAqICAgLi4uLCBDb21wb25lbnRNYW5hZ2VyPFQ+LCBUXG4gICAqL1xuICBCZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbW1pdCB0aGUgY3VycmVudCBjYWNoZSBncm91cFxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSBkaWRDcmVhdGVFbGVtZW50IG9uIHRoZSBjdXJyZW50IGNvbXBvbmVudCBtYW5hZ2VyXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRGlkQ3JlYXRlRWxlbWVudCBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBEaWRDcmVhdGVFbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSBkaWRSZW5kZXJMYXlvdXQgb24gdGhlIGN1cnJlbnQgY29tcG9uZW50IG1hbmFnZXJcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEaWRSZW5kZXJMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCDihpJcbiAgICogICAuLi5cbiAgICovXG4gIERpZFJlbmRlckxheW91dCxcblxuICAvLy8gUEFSVElBTFNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBMb29rdXAgYW5kIGludm9rZSBhIHBhcnRpYWwgdGVtcGxhdGUuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlUGFydGlhbCB0ZW1wbGF0ZU1ldGE6I1RlbXBsYXRlTWV0YSBzeW1ib2xzOiNBcnJheTwjc3RyaW5nPiBldmFsSW5mbzojQXJyYXk8bnVtYmVyPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8c3RyaW5nPiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEludm9rZVBhcnRpYWwsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBSZXNvbHZlIHt7Zm9vfX0gaW5zaWRlIGEgcGFydGlhbCwgd2hpY2ggY291bGQgYmUgZWl0aGVyIGEgc2VsZi1sb29rdXBcbiAgICogICBvciBhIGxvY2FsIHZhcmlhYmxlIHRoYXQgaXMgaW4tc2NvcGUgZm9yIHRoZSBjYWxsZXIuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmVzb2x2ZU1heWJlTG9jYWwgbG9jYWw6I3N0cmluZylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBSZXNvbHZlTWF5YmVMb2NhbCxcblxuICAvLy8gREVCVUdHRVJcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBY3RpdmF0ZSB0aGUgZGVidWdnZXJcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEZWJ1Z2dlciBzeW1ib2xzOiNBcnJheTxzdHJpbmc+IGV2YWxJbmZvOiNBcnJheTxudW1iZXI+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIERlYnVnZ2VyLFxuXG4gIC8qKiBUaGUgc2l6ZSBvZiB0aGUgb3Bjb2RlIGxpc3QgKi9cbiAgU2l6ZVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Bjb2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZtL2xpYi9vcGNvZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBPcCB7XG4gIC8qXG4gICAgRG9jdW1lbnRhdGlvbiBUT0RPOlxuXG4gICAgRG9jdW1lbnQgdGhlIGxvY2FsIHZhcmlhYmxlIGxheW91dCBpbiB0aGUgc3RhY2tcbiAgICBkaWFncmFtIGJlZm9yZS1hbmQtYWZ0ZXIuXG5cbiAgICBEb2N1bWVudCB1cGRhdGluZyBvcGNvZGVzIGVtaXR0aW5nIGZyb20gdW5yZWFjaGFibGVcbiAgICBhcHBlbmQgb3Bjb2RlLlxuXG4gICAgRG9jdW1lbnQgdGhlIGVsZW1lbnQgc3RhY2ssIGJsb2NrIHN0YWNrIGFuZCBMaXN0XG4gICAgYmxvY2sgc3RhY2suXG4gICAqL1xuXG4gIC8qKlxuICAgKiBUaGlzIG9wY29kZSBzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZC5cbiAgICovXG4gIEJ1ZyxcblxuICAvLy8gRVhQUkVTU0lPTlNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFdmFsdWF0ZSBhIEhlbHBlci5cbiAgICogRm9ybWF0OlxuICAgKiAgIChIZWxwZXIgaGVscGVyOiNGdW5jdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cyDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2VcbiAgICovXG4gIEhlbHBlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIHZhcmlhYmxlIHJlcHJlc2VudGVkIGJ5IGEgc3ltYm9sIGZyb21cbiAgICogICB0aGUgdmFsdWUgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoU2V0VmFyaWFibGUgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBTZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIGJsb2NrIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFNldEJsb2NrIHN5bWJvbDp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBTeW1ib2xUYWJsZSwgSGFuZGxlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgU2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIHRoZSBjb250ZW50cyBvZiB0aGUgdmFyaWFibGUgcmVwcmVzZW50ZWQgYnlcbiAgICogICBhIHN5bWJvbCAoYSBwb3NpdGlvbmFsIG9yIG5hbWVkIGFyZ3VtZW50KSBvbnRvXG4gICAqICAgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hTeW1ib2wgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBHZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgZnJvbSB0aGUgdG9wIG9mIHRoZVxuICAgKiAgIHN0YWNrLCBhbmQgcHVzaCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgY29uc3RydWN0ZWRcbiAgICogICBieSBgLmdldChwcm9wZXJ0eSlgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldFByb3BlcnR5IHByb3BlcnR5OiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0UHJvcGVydHksXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCB0aGUgc3BlY2lmaWVkIGJvdW5kIGJsb2NrIG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldEJsb2NrIGJsb2NrOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBJbmxpbmVCbG9ja1xuICAgKi9cbiAgR2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIFRSVUUgb250byB0aGUgc3RhY2sgaWYgdGhlIHNwZWNpZmllZCBibG9ja1xuICAgKiAgIGlzIGJvdW5kIGFuZCBGQUxTRSBpZiBpdCBpcyBub3QuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2sgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIGJvb2xlYW5cbiAgICovXG4gIEhhc0Jsb2NrLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUHVzaCBUUlVFIG9udG8gdGhlIHN0YWNrIGlmIHRoZSBzcGVjaWZpZWQgYmxvY2tcbiAgICogICBpcyBib3VuZCAqYW5kKiBoYXMgYXQgbGVhc3Qgb25lIHNwZWNpZmllZCBmb3JtYWxcbiAgICogICBwYXJhbWV0ZXIsIGFuZCBGQUxTRSBvdGhlcndpc2UuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2tQYXJhbXMgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgKGJvb2xlYW4pXG4gICAqL1xuICBIYXNCbG9ja1BhcmFtcyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBjb3VudCBgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZWBzIG9mZiB0aGUgc3RhY2sgYW5kXG4gICAqICAgY29uc3RydWN0IGEgbmV3IENvbmNhdFJlZmVyZW5jZSBmcm9tIHRoZW0gKGluIHJldmVyc2VcbiAgICogICBvcmRlcikuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29uY2F0IGNvdW50OnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0g4oaSXG4gICAqICAgLi4uLCBDb25jYXRSZWZlcmVuY2VcbiAgICovXG4gIENvbmNhdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFB1c2ggYW4gT2JqZWN0IGNvbnN0YW50IG9udG8gdGhlIHN0YWNrIHRoYXQgaXMgbm90XG4gICAqICAgYSBKYXZhU2NyaXB0IHByaW1pdGl2ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoQ29uc3RhbnQgY29uc3RhbnQ6I09iamVjdClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBPcGFxdWVcbiAgICovXG4gIENvbnN0YW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgV3JhcCBhIEphdmFTY3JpcHQgcHJpbWl0aXZlIGluIGEgcmVmZXJlbmNlIGFuZCBwdXNoIGl0XG4gICAqICAgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaFByaW1pdGl2ZSBjb25zdGFudDojUHJpbWl0aXZlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFByaW1pdGl2ZVxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBUaGUgdHdvIGhpZ2ggYml0cyBvZiB0aGUgY29uc3RhbnQgcmVmZXJlbmNlIGRlc2NyaWJlXG4gICAqICAgdGhlIGtpbmQgb2YgcHJpbWl0aXZlOlxuICAgKlxuICAgKiAgIDAwOiBudW1iZXJcbiAgICogICAwMTogc3RyaW5nXG4gICAqICAgMTA6IHRydWUgfCBmYWxzZSB8IG51bGwgfCB1bmRlZmluZWRcbiAgICovXG4gIFByaW1pdGl2ZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb252ZXJ0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGludG8gYSBwcmltaXRpdmUgcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFByaW1pdGl2ZVJlZmVyZW5jZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFByaW1pdGl2ZSDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8UHJpbWl0aXZlPlxuICAgKi9cbiAgUHJpbWl0aXZlUmVmZXJlbmNlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbnZlcnQgdGhlIHRvcCBvZiB0aGUgc3RhY2sgaW50byBhIG51bWJlci5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChSZWlmeVUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8dTMyPiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8dTMyPiwgdTMyXG4gICAqL1xuICBSZWlmeVUzMixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBEdXBsaWNhdGUgYW5kIHB1c2ggaXRlbSBmcm9tIGFuIG9mZnNldCBpbiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoRHVwIHJlZ2lzdGVyOnUzMiwgb2Zmc2V0OnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIE9wYXF1ZSDihpJcbiAgICogICAuLi4sIE9wYXF1ZSwgT3BhcXVlXG4gICAqL1xuICBEdXAsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUG9wIE4gaXRlbXMgb2ZmIHRoZSBzdGFjayBhbmQgdGhyb3cgYXdheSB0aGUgdmFsdWUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoUG9wKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgT3BhcXVlLCAuLi4sIE9wYXF1ZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFBvcCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBMb2FkIGEgdmFsdWUgaW50byBhIHJlZ2lzdGVyXG4gICAqIEZvcm1hdDpcbiAgICogICAoTG9hZCByZWdpc3Rlcjp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBPcGFxdWUg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBMb2FkLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEZldGNoIGEgdmFsdWUgZnJvbSBhIHJlZ2lzdGVyXG4gICAqIEZvcm1hdDpcbiAgICogICAoRmV0Y2ggcmVnaXN0ZXI6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIE9wYXF1ZVxuICAgKi9cbiAgRmV0Y2gsXG5cbiAgLy8vIFBSRUxVREUgJiBFWElUXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIG5ldyByb290IHNjb3BlIG9udG8gdGhlIHNjb3BlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFJvb3RTY29wZSBzeW1ib2xzOnUzMiBiaW5kQ2FsbGVyU2NvcGU6Ym9vbClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIEEgcm9vdCBzY29wZSBoYXMgbm8gcGFyZW50IHNjb3BlLCBhbmQgdGhlcmVmb3JlIGluaGVyaXRzIG5vIGxleGljYWxcbiAgICogICB2YXJpYWJsZXMuIElmIGBiaW5kQ2FsbGVyU2NvcGVgIGlzIGB0cnVlYCwgdGhlIGN1cnJlbnQgc2NvcGUgcmVtZW1iZXJzXG4gICAqICAgdGhlIGNhbGxlciBzY29wZSAoZm9yIHlpZWxkaW5nIGJsb2NrcykuXG4gICAqL1xuICBSb290U2NvcGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIG5ldyBjaGlsZCBzY29wZSBvbnRvIHRoZSBzY29wZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChDaGlsZFNjb3BlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgQSBjaGlsZCBzY29wZSBpbmhlcml0cyBmcm9tIHRoZSBjdXJyZW50IHBhcmVudCBzY29wZSwgYW5kIHRoZXJlZm9yZVxuICAgKiAgIHNoYXJlcyBpdHMgbGV4aWNhbCB2YXJpYWJsZXMuXG4gICAqL1xuICBDaGlsZFNjb3BlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFBvcCB0aGUgY3VycmVudCBzY29wZSBmcm9tIHRoZSBzY29wZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQb3BTY29wZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBQb3BTY29wZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBSZXR1cm4gdG8gdGhlIHByZXZpb3VzIGZyYW1lLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFJldHVybilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIGFkZHJlc3M6bnVtYmVyIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUmV0dXJuLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFJldHVybiB0byBhIHBsYWNlIGluIHRoZSBwcm9ncmFtIGdpdmVuIGFuIG9mZnNldFxuICAgKiBGb3JtYXQ6XG4gICAqICAoUmV0dXJuVG8gb2Zmc2V0OmkzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAgLi4uIOKGklxuICAgKi9cbiAgUmV0dXJuVG8sXG5cbiAgLy8vIEhUTUxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBcHBlbmQgYSBUZXh0IG5vZGUgd2l0aCB2YWx1ZSBgY29udGVudHNgXG4gICAqIEZvcm1hdDpcbiAgICogICAoVGV4dCBjb250ZW50czojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFRleHQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQXBwZW5kIGEgQ29tbWVudCBub2RlIHdpdGggdmFsdWUgYGNvbnRlbnRzYFxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENvbW1lbnQgY29udGVudHM6I3N0cmluZylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBDb21tZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFwcGVuZCBjb250ZW50IGFzIEhUTUwuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQXBwZW5kSFRNTClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8c3RyaW5nPiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEFwcGVuZEhUTUwsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQXBwZW5kIFNhZmVIVE1MIGFzIEhUTUwuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQXBwZW5kU2FmZUhUTUwpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPFNhZmVIVE1MPiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEFwcGVuZFNhZmVIVE1MLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFwcGVuZCBEb2N1bWVudEZyYWdtZW50LlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEFwcGVuZEZyYWdtZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxEb2N1bWVudEZyYWdtZW50PiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEFwcGVuZERvY3VtZW50RnJhZ21lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQXBwZW5kIE5vZGUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQXBwZW5kRnJhZ21lbnQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPE5vZGU+IOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgQXBwZW5kTm9kZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBcHBlbmQgY29udGVudCBhcyB0ZXh0LlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEFwcGVuZFRleHQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPHN0cmluZz4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBBcHBlbmRUZXh0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IE9wZW4gYSBuZXcgRWxlbWVudCBuYW1lZCBgdGFnYC5cbiAgICogRm9ybWF0OlxuICAgKiAgIChPcGVuRWxlbWVudCB0YWc6I3N0cmluZylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBPcGVuRWxlbWVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIE9wZW4gYSBuZXcgRWxlbWVudCB3aXRoIGEgbmFtZSBvbiB0aGUgc3RhY2sgYW5kIHdpdGggc3BlY2lhbFxuICAgKiAgIG9wZXJhdGlvbnMgcHJvdmlkZWQgb24gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE9wZW5EeW5hbWljRWxlbWVudClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIHN0cmluZywgRWxlbWVudE9wZXJhdGlvbnMg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBPcGVuRHluYW1pY0VsZW1lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQWRkIGFuIGF0dHJpYnV0ZSB0byB0aGUgY3VycmVudCBFbGVtZW50LlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFN0YXRpY0F0dHIgbmFtZTojc3RyaW5nIHZhbHVlOiNzdHJpbmcgbmFtZXNwYWNlOk9wdGlvbjwjc3RyaW5nPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBTdGF0aWNBdHRyLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgQWRkIGFuIGF0dHJpYnV0ZSB0byB0aGUgY3VycmVudCBlbGVtZW50IHVzaW5nIHRoZSB2YWx1ZVxuICAgKiAgIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKER5bmFtaWNBdHRyIG5hbWU6I3N0cmluZyB0cnVzdGluZzpib29sZWFuIG5hbWVzcGFjZTpPcHRpb248I3N0cmluZz4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBJZiBgdHJ1c3RpbmdgIGlzIGZhbHNlLCB0aGUgaG9zdCBtYXkgc2FuaXRpemUgdGhlIGF0dHJpYnV0ZVxuICAgKiAgIGJhc2VkIHVwb24ga25vd24gcmlza3MuXG4gICAqL1xuICBEeW5hbWljQXR0cixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEFkZCBhbiBhdHRyaWJ1dGUgdG8gdGhlIGN1cnJlbnQgZWxlbWVudCB1c2luZyB0aGUgdmFsdWVcbiAgICogICBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChDb21wb25lbnRBdHIgbmFtZTojc3RyaW5nIHRydXN0aW5nOmJvb2xlYW4gbmFtZXNwYWNlOk9wdGlvbjwjc3RyaW5nPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBDb21wb25lbnRBdHRyLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEZpbmlzaCBzZXR0aW5nIGF0dHJpYnV0ZXMgb24gdGhlIGN1cnJlbnQgZWxlbWVudC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChGbHVzaEVsZW1lbnQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRmx1c2hFbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENsb3NlIHRoZSBjdXJyZW50IGVsZW1lbnQuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ2xvc2VFbGVtZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENsb3NlRWxlbWVudCxcblxuICAvLy8gTU9ESUZJRVJcbiAgTW9kaWZpZXIsICAgICAgICAgICAgICAgICAgLy8gKENvbnN0YW50U3RyaW5nLCBDb25zdGFudE90aGVyPE1vZGlmaWVyTWFuYWdlcj4sIENvbnN0YW50RXhwcmVzc2lvbilcblxuICAvLy8gV09STUhPTEVcbiAgUHVzaFJlbW90ZUVsZW1lbnQsICAgICAgICAgLy8gKClcbiAgUG9wUmVtb3RlRWxlbWVudCwgICAgICAgICAgLy8gKClcblxuICAvLy8gRFlOQU1JQyBTQ09QRVxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEJpbmQgc3RhY2sgdmFsdWVzIGFzIGR5bmFtaWMgdmFyaWFibGVzLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEJpbmREeW5hbWljU2NvcGUgbmFtZXM6I0FycmF5PCNzdHJpbmc+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgVGhpcyBpcyB1c2VkIHRvIGV4cG9zZSBgLXdpdGgtZHluYW1pYy12YXJzYCwgYW5kIGlzIGFcbiAgICogICBuaWNoZSBmZWF0dXJlLlxuICAgKi9cbiAgQmluZER5bmFtaWNTY29wZSxcblxuICBQdXNoRHluYW1pY1Njb3BlLCAgICAgICAgICAvLyAoKVxuICBQb3BEeW5hbWljU2NvcGUsICAgICAgICAgICAvLyAoKVxuXG4gIC8vLyBWTVxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbXBpbGUgdGhlIElubGluZUJsb2NrIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENvbXBpbGVCbG9jaylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIENvbXBpbGFibGVCbG9jayDihpJcbiAgICogICAuLi4sIEhhbmRsZVxuICAgKi9cbiAgQ29tcGlsZUJsb2NrLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSBzY29wZSBvbnRvIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoQmxvY2tTY29wZSAjU2NvcGUpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCDihpJcbiAgICogICAuLi4sIFNjb3BlXG4gICAqL1xuICBQdXNoQmxvY2tTY29wZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgc3ltYm9sIHRhYmxlIG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hTeW1ib2xUYWJsZSAjU3ltYm9sVGFibGUpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCDihpJcbiAgICogICAuLi4sIFN5bWJvbFRhYmxlXG4gICAqL1xuICBQdXNoU3ltYm9sVGFibGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRXZhbHVhdGUgdGhlIGhhbmRsZSBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VWaXJ0dWFsKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgSGFuZGxlLCDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEludm9rZVZpcnR1YWwsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRXZhbHVhdGUgdGhlIGhhbmRsZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VTdGF0aWMgaGFuZGxlOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBJbnZva2VTdGF0aWMsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogWWllbGQgdG8gYSBibG9jay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VZaWVsZClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cywgU3ltYm9sVGFibGUsIEhhbmRsZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEludm9rZVlpZWxkLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEp1bXAgdG8gdGhlIHNwZWNpZmllZCBvZmZzZXQuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSnVtcCB0bzp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSnVtcCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEp1bXAgdG8gdGhlIHNwZWNpZmllZCBvZmZzZXQgaWYgdGhlIHZhbHVlIGF0XG4gICAqICAgdGhlIHRvcCBvZiB0aGUgc3RhY2sgaXMgdHJ1ZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChKdW1wSWYgdG86dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEp1bXBJZixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEp1bXAgdG8gdGhlIHNwZWNpZmllZCBvZmZzZXQgaWYgdGhlIHZhbHVlIGF0XG4gICAqICAgdGhlIHRvcCBvZiB0aGUgc3RhY2sgaXMgZmFsc2UuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSnVtcFVubGVzcyB0bzp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSnVtcFVubGVzcyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEp1bXAgdG8gdGhlIHNwZWNpZmllZCBvZmZzZXQgaWYgdGhlIHZhbHVlIGF0XG4gICAqICAgdGhlIHRvcCBvZiB0aGUgc3RhY2sgaXMgdGhlIHNhbWUgYXMgdGhlXG4gICAqICAgY29tcGFyaXNvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChKdW1wRXEgdG86aTMyIGNvbXBhcmlzb246aTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgdTMyIOKGklxuICAgKiAgIC4uLiwgdTMyXG4gICAqL1xuICBKdW1wRXEsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBWYWxpZGF0ZSB0aGF0IHRoZSB2YWx1ZSBhdCB0aGUgdG9wIG9mIHRoZSBzdGFja1xuICAgKiAgIGhhc24ndCBjaGFuZ2VkLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEFzc2VydFNhbWUpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPHUzMj4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPHUzMj5cbiAgICovXG4gIEFzc2VydFNhbWUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIHN0YWNrIGZyYW1lXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEZyYW1lKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAkcmEsICRmcFxuICAgKi9cbiAgUHVzaEZyYW1lLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFBvcCBhIHN0YWNrIGZyYW1lXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEZyYW1lKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgICRyYSwgJGZwIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUG9wRnJhbWUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBTdGFydCB0cmFja2luZyBhIG5ldyBvdXRwdXQgYmxvY2sgdGhhdCBjb3VsZCBjaGFuZ2VcbiAgICogICBpZiBvbmUgb2YgaXRzIGlucHV0cyBjaGFuZ2VzLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEVudGVyIGFyZ3M6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgU29vbiBhZnRlciB0aGlzIG9wY29kZSwgb25lIG9mIEp1bXAsIEp1bXBJZixcbiAgICogICBKdW1wVW5sZXNzLCBvciBKdW1wRXEgd2lsbCBwcm9kdWNlIGFuIHVwZGF0aW5nXG4gICAqICAgYXNzZXJ0aW9uLiBJZiB0aGF0IGFzc2VydGlvbiBmYWlscywgdGhlIGFwcGVuZGluZ1xuICAgKiAgIFZNIHdpbGwgYmUgcmUtZW50ZXJlZCwgYW5kIHRoZSBpbnN0cnVjdGlvbnMgZnJvbSBgZnJvbWBcbiAgICogICB0byBgdG9gIHdpbGwgYmUgZXhlY3V0ZWQuXG4gICAqXG4gICAqICAgVE9ETzogU2F2ZSBhbmQgcmVzdG9yZS5cbiAgICovXG4gIEVudGVyLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgRmluaXNoIHRyYWNraW5nIHRoZSBjdXJyZW50IGJsb2NrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEV4aXQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBUaGlzIGZpbmFsaXplcyB0aGUgdmFsaWRhdG9ycyB0aGF0IHRoZSB1cGRhdGluZ1xuICAgKiAgIGJsb2NrIG11c3QgY2hlY2sgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgaXQncyBzYWZlIHRvXG4gICAqICAgc2tpcCBydW5uaW5nIHRoZSBjb250ZW50cy5cbiAgICovXG4gIEV4aXQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQ29udmVydCB0aGUgdG9wIG9mIHRoZSBzdGFjayBpbnRvIGEgYm9vbGVhbiByZWZlcmVuY2UuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoVG9Cb29sZWFuKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxPcGFxdWU+IOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxib29sPlxuICAgKi9cbiAgVG9Cb29sZWFuLFxuXG4gIC8vLyBMSVNUU1xuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEVudGVyIGEgbGlzdC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChFbnRlckxpc3QgYWRkcmVzczp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBJdGVyYXRvciDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEVudGVyTGlzdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFeGl0IHRoZSBjdXJyZW50IGxpc3QuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRXhpdExpc3QpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRXhpdExpc3QsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBDb252ZXJ0IGFuIG9wZXJhbmQgYW5kIGtleSBpbnRvIGFuIGl0ZXJhdG9yIGFuZFxuICAgKiAgIHByZXNlbmNlIHJlZmVyZW5jZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXRJdGVyYXRvcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIGtleTpzdHJpbmcsIGxpc3Q6VmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi4sIGl0ZXJhdG9yOlJlZmVyZW5jZUl0ZXJhdG9yLCBwcmVzZW50OlByZXNlbmNlUmVmZXJlbmNlXG4gICAqL1xuICBQdXRJdGVyYXRvcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFNldCB1cCB0aGUgc3RhY2sgZm9yIGl0ZXJhdGluZyBmb3IgYSBnaXZlbiBrZXksXG4gICAqICAgb3IganVtcCB0byBgZW5kYCBpZiB0aGVyZSBpcyBub3RoaW5nIGxlZnQgdG9cbiAgICogICBpdGVyYXRlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEl0ZXJhdGUgZW5kOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICBGb3JtIDE6IChzb21ldGhpbmcgdG8gaXRlcmF0ZSlcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlLCBzdHJpbmdcbiAgICogICBGb3JtIDI6IChub3RoaW5nIGxlZnQgdG8gaXRlcmF0ZSlcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIEluIEZvcm0gMSwgdGhlIHN0YWNrIHdpbGwgaGF2ZSAoaW4gcmV2ZXJzZSBvcmRlcik6XG4gICAqXG4gICAqICAgLSB0aGUga2V5LCBhcyBhIHN0cmluZ1xuICAgKiAgIC0gdGhlIGN1cnJlbnQgaXRlcmF0ZWQgdmFsdWVcbiAgICogICAtIHRoZSBtZW1vaXplZCBpdGVyYXRlZCB2YWx1ZVxuICAgKi9cbiAgSXRlcmF0ZSxcblxuICAvLy8gQ09NUE9ORU5UU1xuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFRlc3Qgd2hldGhlciBhIHJlZmVyZW5jZSBjb250YWlucyBhIGNvbXBvbmVudCBkZWZpbml0aW9uLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE1haW4gc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBJbnZvY2F0aW9uLCBDb21wb25lbnREZWZpbml0aW9uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgTWFpbixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBUZXN0IHdoZXRoZXIgYSByZWZlcmVuY2UgY29udGFpbnMgYSBjb21wb25lbnQgZGVmaW5pdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJc0NvbXBvbmVudClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8Ym9vbGVhbj5cbiAgICovXG4gIElzQ29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggdGhlIGNvbnRlbnQgdHlwZSBvbnRvIHRoZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChDb250ZW50VHlwZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxDb250ZW50VHlwZT5cbiAgICovXG4gIENvbnRlbnRUeXBlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEN1cnJ5IGEgY29tcG9uZW50IGRlZmluaXRpb24gZm9yIGEgbGF0ZXIgaW52b2NhdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChDdXJyeUNvbXBvbmVudCB0ZW1wbGF0ZU1ldGE6I0xvY2F0b3IpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHMg4oaSXG4gICAqICAgLi4uLCB7IFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIExvY2F0b3IsIENhcHR1cmVkQXJndW1lbnRzIH1cbiAgICovXG4gIEN1cnJ5Q29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYW4gYXBwcm9wcmlhdGUgY29tcG9uZW50IG1hbmFnZXIgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaENvbXBvbmVudE1hbmFnZXIgI0NvbXBvbmVudFNwZWMpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgeyBDb21wb25lbnREZWZpbml0aW9uLCBDb21wb25lbnRNYW5hZ2VyIH1cbiAgICovXG4gIFB1c2hDb21wb25lbnREZWZpbml0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUHVzaGVzIHRoZSBDb21wb25lbnRJbnN0YW5jZSBvbnRvIHRoZSBzdGFjayB0aGF0IGlzXG4gICAqICAgdXNlZCBkdXJpbmcgdGhlIGludm9rZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoRHluYW1pY0NvbXBvbmVudEluc3RhbmNlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgQ29tcG9uZW50RGVmaW5pdGlvbiDihpJcbiAgICogICAuLi4sIHsgQ29tcG9uZW50RGVmaW5pdGlvbiwgbWFuYWdlcjogbnVsbCwgbGF5b3V0OiBudWxsLCBzdGF0ZTogbnVsbCwgaGFuZGxlOiBudWxsLCB0YWJsZTogbnVsbCB9XG4gICAqL1xuXG4gIFB1c2hEeW5hbWljQ29tcG9uZW50SW5zdGFuY2UsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoZXMgYSBjdXJyaWVkIGNvbXBvbmVudCBkZWZpbml0aW9uIG9uIHRvIHRoZSBzdGFja1xuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hDdXJyaWVkQ29tcG9uZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxPcGFxdWU+IOKGklxuICAgKiAgIC4uLiwgQ29tcG9uZW50RGVmaW5pdGlvblxuICAgKi9cbiAgUHVzaEN1cnJpZWRDb21wb25lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIGEgcmVzb2x2ZWQgY29tcG9uZW50IGRlZmluaXRpb24gb250byB0aGUgc3RhY2tcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChSZXNvbHZlRHluYW1pY0NvbXBvbmVudCB0ZW1wbGF0ZU1ldGE6I0xvY2F0b3IpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPE9wYXF1ZT4g4oaSXG4gICAqICAgLi4uLCBDb21wb25lbnREZWZpbml0aW9uXG4gICAqL1xuICBSZXNvbHZlRHluYW1pY0NvbXBvbmVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgdXNlciByZXByZXNlbnRhdGlvbiBvZiBhcmdzIG9udG8gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hBcmdzIG5hbWVzOiNBcnJheTwjc3RyaW5nPiBwb3NpdGlvbmFsQ291bnQ6dTMyIHN5bnRoZXRpYzojYm9vbGVhbilcbiAgICpcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0gIOKGklxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSwgQXJndW1lbnRzXG4gICAqXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIFRoaXMgYXJndW1lbnRzIG9iamVjdCBpcyBvbmx5IG5lY2Vzc2FyeSB3aGVuIGNhbGxpbmcgaW50b1xuICAgKiAgIHVzZXItc3BlY2lmaWVkIGhvb2tzLiBJdCBpcyBtZWFudCB0byBiZSBpbXBsZW1lbnRlZCBhcyBhXG4gICAqICAgdHJhbnNpZW50IHByb3h5IHRoYXQgcmVhZHMgaW50byB0aGUgc3RhY2sgYXMgbmVlZGVkLlxuICAgKiAgIEhvbGRpbmcgb250byB0aGUgQXJndW1lbnRzIGFmdGVyIHRoZSBjYWxsIGhhcyBjb21wbGV0ZWQgaXNcbiAgICogICBpbGxlZ2FsLlxuICAgKi9cbiAgUHVzaEFyZ3MsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBlbXB0eSBhcmdzIG9udG8gdGhlIHN0YWNrXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRW1wdHlBcmdzKVxuICAgKlxuICAgKiBPcGVyYW5kU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgQXJndW1lbnRzXG4gICAqL1xuICBQdXNoRW1wdHlBcmdzLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFBvcHMgQXJndW1lbnRzIGZyb20gdGhlIHN0YWNrIGFuZCBjbGVhcnMgdGhlIG5leHQgTiBhcmdzLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFBvcEFyZ3MpXG4gICAqXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHMgIOKGklxuICAgKiAgIC4uLlxuICAgKlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogVGhlIGFyZ3VtZW50cyBvYmplY3QgY29udGFpbnMgdGhlIGluZm9ybWF0aW9uIG9mIGhvdyBtYW55IHVzZXJcbiAgICogc3VwcGxpZWQgYXJncyB0aGUgY29tcG9uZW50IHdhcyBpbnZva2VkIHdpdGguIFRvIGNsZWFyIHRoZW0gZnJvbVxuICAgKiB0aGUgc3RhY2sgd2UgbXVzdCBwb3AgaXQgZnJvbSB0aGUgc3RhY2sgYW5kIGNhbGwgYGNsZWFyYCBvbiBpdFxuICAgKiB0byByZW1vdmUgdGhlIGFyZ3VtZW50IHZhbHVlcyBmcm9tIHRoZSBzdGFjay5cbiAgICovXG4gIFBvcEFyZ3MsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogLi4uXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHJlcGFyZUFyZ3Mgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUHJlcGFyZUFyZ3MsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUmVwbGFjZXMgQXJndW1lbnRzIG9uIHRoZSBzdGFjayB3aXRoIENhcHR1cmVkQXJndW1lbnRzXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ2FwdHVyZUFyZ3MpXG4gICAqXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBBcmd1bWVudHMgIOKGklxuICAgKiAgIC4uLiwgQ2FwdHVyZWRBcmd1bWVudHNcbiAgICpcbiAgICogRGVzY3JpcHRpb246XG4gICAqIFRoZSBBcmd1bWVudHMgb2JqZWN0IGlzIG11dGF0ZWQgaW4gcGxhY2UgYmVjYXVzZSBpdCBpcyB1c3VhbGx5IGNvbnN1bWVkIGltbWVkaWF0ZWx5XG4gICAqIGFmdGVyIGJlaW5nIHB1c2hlZCBvbiB0byB0aGUgc3RhY2suIEluIHNvbWUgc2l0dWF0aW9ucywgc3VjaCBhcyB3aXRoIGN1cnJpZWQgY29tcG9uZW50cyxcbiAgICogaW5mb3JtYXRpb24gYWJvdXQgbW9yZSB0aGFuIG9uZSBBcmd1bWVudCBtYXkgbmVlZCB0byBleGlzdCBvbiB0aGUgc3RhY2sgYXQgb25jZS4gSW4gdGhvc2VcbiAgICogY2FzZXMsIHRoZSBDYXB0dXJlQXJncyBpbnN0cnVjdGlvbiBwb3BzIGFuIEFyZ3VtZW50cyBvYmplY3Qgb2ZmIHRoZSBzdGFjayBhbmQgcmVwbGFjZXMgaXRcbiAgICogd2l0aCB0aGUgaW1tdXRhYmxlIENhcHR1cmVkQXJncyBzbmFwc2hvdC5cbiAgICovXG4gIENhcHR1cmVBcmdzLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENyZWF0ZSB0aGUgY29tcG9uZW50IGFuZCBwdXNoIGl0IG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENyZWF0ZUNvbXBvbmVudCBmbGFnczp1MzIgc3RhdGU6cmVnaXN0ZXIpXG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICBGbGFnczpcbiAgICpcbiAgICogICAqIDBiMDAxOiBIYXMgYSBkZWZhdWx0IGJsb2NrXG4gICAqICAgKiAwYjAxMDogSGFzIGFuIGludmVyc2UgYmxvY2tcbiAgICovXG4gIENyZWF0ZUNvbXBvbmVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBSZWdpc3RlciBhIGRlc3RydWN0b3IgZm9yIHRoZSBjdXJyZW50IGNvbXBvbmVudFxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFJlZ2lzdGVyQ29tcG9uZW50RGVzdHJ1Y3RvciBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBSZWdpc3RlckNvbXBvbmVudERlc3RydWN0b3IsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIG5ldyBFbGVtZW50T3BlcmF0aW9ucyBmb3IgdGhlIGN1cnJlbnQgY29tcG9uZW50LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1dENvbXBvbmVudE9wZXJhdGlvbnMpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUHV0Q29tcG9uZW50T3BlcmF0aW9ucyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIHRoZSBjb21wb25lbnQncyBgc2VsZmAgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoR2V0Q29tcG9uZW50U2VsZiBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBHZXRDb21wb25lbnRTZWxmLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggdGhlIGNvbXBvbmVudCdzIGBzZWxmYCBvbnRvIHRoZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChHZXRDb21wb25lbnRUYWdOYW1lIHN0YXRlOnJlZ2lzdGVyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIE9wdGlvbjxzdHJpbmc+XG4gICAqL1xuICBHZXRDb21wb25lbnRUYWdOYW1lLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEdldCB0aGUgY29tcG9uZW50IGxheW91dCBmcm9tIHRoZSBtYW5hZ2VyLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldENvbXBvbmVudExheW91dCBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBQcm9ncmFtU3ltYm9sVGFibGUsIEhhbmRsZVxuICAgKi9cbiAgR2V0Q29tcG9uZW50TGF5b3V0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUG9wdWxhdGUgdGhlIHN0YXRlIHJlZ2lzdGVyIHdpdGggdGhlIGxheW91dCBjdXJyZW50bHlcbiAgICogICBvbiB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUG9wdWxhdGVMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBQcm9ncmFtU3ltYm9sVGFibGUsIEhhbmRsZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFBvcHVsYXRlTGF5b3V0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSB0aGUgbGF5b3V0IHJldHVybmVkIGJ5IHRoZSBtYW5hZ2VyLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEludm9rZUNvbXBvbmVudExheW91dCBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBJbnZva2VDb21wb25lbnRMYXlvdXQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQmVnaW4gYSBuZXcgY2FjaGUgZ3JvdXBcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChCZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgQ29tcG9uZW50TWFuYWdlcjxUPiwgVCDihpJcbiAgICogICAuLi4sIENvbXBvbmVudE1hbmFnZXI8VD4sIFRcbiAgICovXG4gIEJlZ2luQ29tcG9uZW50VHJhbnNhY3Rpb24sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQ29tbWl0IHRoZSBjdXJyZW50IGNhY2hlIGdyb3VwXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tbWl0Q29tcG9uZW50VHJhbnNhY3Rpb24pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgQ29tbWl0Q29tcG9uZW50VHJhbnNhY3Rpb24sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogSW52b2tlIGRpZENyZWF0ZUVsZW1lbnQgb24gdGhlIGN1cnJlbnQgY29tcG9uZW50IG1hbmFnZXJcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEaWRDcmVhdGVFbGVtZW50IHN0YXRlOnJlZ2lzdGVyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIERpZENyZWF0ZUVsZW1lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogSW52b2tlIGRpZFJlbmRlckxheW91dCBvbiB0aGUgY3VycmVudCBjb21wb25lbnQgbWFuYWdlclxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKERpZFJlbmRlckxheW91dCBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRGlkUmVuZGVyTGF5b3V0LFxuXG4gIC8vLyBQQVJUSUFMU1xuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IExvb2t1cCBhbmQgaW52b2tlIGEgcGFydGlhbCB0ZW1wbGF0ZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VQYXJ0aWFsIHRlbXBsYXRlTWV0YTojTG9jYXRvciBzeW1ib2xzOiNBcnJheTwjc3RyaW5nPiBldmFsSW5mbzojQXJyYXk8bnVtYmVyPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8c3RyaW5nPiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEludm9rZVBhcnRpYWwsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBSZXNvbHZlIHt7Zm9vfX0gaW5zaWRlIGEgcGFydGlhbCwgd2hpY2ggY291bGQgYmUgZWl0aGVyIGEgc2VsZi1sb29rdXBcbiAgICogICBvciBhIGxvY2FsIHZhcmlhYmxlIHRoYXQgaXMgaW4tc2NvcGUgZm9yIHRoZSBjYWxsZXIuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmVzb2x2ZU1heWJlTG9jYWwgbG9jYWw6I3N0cmluZylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBSZXNvbHZlTWF5YmVMb2NhbCxcblxuICAvLy8gREVCVUdHRVJcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBY3RpdmF0ZSB0aGUgZGVidWdnZXJcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEZWJ1Z2dlciBzeW1ib2xzOiNBcnJheTxzdHJpbmc+IGV2YWxJbmZvOiNBcnJheTxudW1iZXI+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIERlYnVnZ2VyLFxuXG4gIC8qKiBUaGUgc2l6ZSBvZiB0aGUgb3Bjb2RlIGxpc3QgKi9cbiAgU2l6ZVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Bjb2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZtL2xpYi9vcGNvZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBPcCB7XG4gIC8qXG4gICAgRG9jdW1lbnRhdGlvbiBUT0RPOlxuXG4gICAgRG9jdW1lbnQgdGhlIGxvY2FsIHZhcmlhYmxlIGxheW91dCBpbiB0aGUgc3RhY2tcbiAgICBkaWFncmFtIGJlZm9yZS1hbmQtYWZ0ZXIuXG5cbiAgICBEb2N1bWVudCB1cGRhdGluZyBvcGNvZGVzIGVtaXR0aW5nIGZyb20gdW5yZWFjaGFibGVcbiAgICBhcHBlbmQgb3Bjb2RlLlxuXG4gICAgRG9jdW1lbnQgdGhlIGVsZW1lbnQgc3RhY2ssIGJsb2NrIHN0YWNrIGFuZCBMaXN0XG4gICAgYmxvY2sgc3RhY2suXG4gICAqL1xuXG4gIC8qKlxuICAgKiBUaGlzIG9wY29kZSBzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZC5cbiAgICovXG4gIEJ1ZyxcblxuICAvLy8gRVhQUkVTU0lPTlNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFdmFsdWF0ZSBhIEhlbHBlci5cbiAgICogRm9ybWF0OlxuICAgKiAgIChIZWxwZXIgaGVscGVyOiNGdW5jdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cyDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2VcbiAgICovXG4gIEhlbHBlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIHZhcmlhYmxlIHJlcHJlc2VudGVkIGJ5IGEgc3ltYm9sIGZyb21cbiAgICogICB0aGUgdmFsdWUgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoU2V0VmFyaWFibGUgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBTZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIGJsb2NrIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFNldEJsb2NrIHN5bWJvbDp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBTeW1ib2xUYWJsZSwgSGFuZGxlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgU2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIHRoZSBjb250ZW50cyBvZiB0aGUgdmFyaWFibGUgcmVwcmVzZW50ZWQgYnlcbiAgICogICBhIHN5bWJvbCAoYSBwb3NpdGlvbmFsIG9yIG5hbWVkIGFyZ3VtZW50KSBvbnRvXG4gICAqICAgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hTeW1ib2wgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBHZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgZnJvbSB0aGUgdG9wIG9mIHRoZVxuICAgKiAgIHN0YWNrLCBhbmQgcHVzaCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgY29uc3RydWN0ZWRcbiAgICogICBieSBgLmdldChwcm9wZXJ0eSlgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldFByb3BlcnR5IHByb3BlcnR5OiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0UHJvcGVydHksXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCB0aGUgc3BlY2lmaWVkIGJvdW5kIGJsb2NrIG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldEJsb2NrIGJsb2NrOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBJbmxpbmVCbG9ja1xuICAgKi9cbiAgR2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIFRSVUUgb250byB0aGUgc3RhY2sgaWYgdGhlIHNwZWNpZmllZCBibG9ja1xuICAgKiAgIGlzIGJvdW5kIGFuZCBGQUxTRSBpZiBpdCBpcyBub3QuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2sgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIGJvb2xlYW5cbiAgICovXG4gIEhhc0Jsb2NrLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUHVzaCBUUlVFIG9udG8gdGhlIHN0YWNrIGlmIHRoZSBzcGVjaWZpZWQgYmxvY2tcbiAgICogICBpcyBib3VuZCAqYW5kKiBoYXMgYXQgbGVhc3Qgb25lIHNwZWNpZmllZCBmb3JtYWxcbiAgICogICBwYXJhbWV0ZXIsIGFuZCBGQUxTRSBvdGhlcndpc2UuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2tQYXJhbXMgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgKGJvb2xlYW4pXG4gICAqL1xuICBIYXNCbG9ja1BhcmFtcyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBjb3VudCBgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZWBzIG9mZiB0aGUgc3RhY2sgYW5kXG4gICAqICAgY29uc3RydWN0IGEgbmV3IENvbmNhdFJlZmVyZW5jZSBmcm9tIHRoZW0gKGluIHJldmVyc2VcbiAgICogICBvcmRlcikuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29uY2F0IGNvdW50OnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0g4oaSXG4gICAqICAgLi4uLCBDb25jYXRSZWZlcmVuY2VcbiAgICovXG4gIENvbmNhdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFB1c2ggYW4gT2JqZWN0IGNvbnN0YW50IG9udG8gdGhlIHN0YWNrIHRoYXQgaXMgbm90XG4gICAqICAgYSBKYXZhU2NyaXB0IHByaW1pdGl2ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoQ29uc3RhbnQgY29uc3RhbnQ6I09iamVjdClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBPcGFxdWVcbiAgICovXG4gIENvbnN0YW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgV3JhcCBhIEphdmFTY3JpcHQgcHJpbWl0aXZlIGluIGEgcmVmZXJlbmNlIGFuZCBwdXNoIGl0XG4gICAqICAgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaFByaW1pdGl2ZSBjb25zdGFudDojUHJpbWl0aXZlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFByaW1pdGl2ZVxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBUaGUgdHdvIGhpZ2ggYml0cyBvZiB0aGUgY29uc3RhbnQgcmVmZXJlbmNlIGRlc2NyaWJlXG4gICAqICAgdGhlIGtpbmQgb2YgcHJpbWl0aXZlOlxuICAgKlxuICAgKiAgIDAwOiBudW1iZXJcbiAgICogICAwMTogc3RyaW5nXG4gICAqICAgMTA6IHRydWUgfCBmYWxzZSB8IG51bGwgfCB1bmRlZmluZWRcbiAgICovXG4gIFByaW1pdGl2ZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb252ZXJ0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGludG8gYSBwcmltaXRpdmUgcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFByaW1pdGl2ZVJlZmVyZW5jZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFByaW1pdGl2ZSDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8UHJpbWl0aXZlPlxuICAgKi9cbiAgUHJpbWl0aXZlUmVmZXJlbmNlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IER1cGxpY2F0ZSBhbmQgcHVzaCBpdGVtIGZyb20gYW4gb2Zmc2V0IGluIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChEdXAgcmVnaXN0ZXI6dTMyLCBvZmZzZXQ6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgT3BhcXVlIOKGklxuICAgKiAgIC4uLiwgT3BhcXVlLCBPcGFxdWVcbiAgICovXG4gIER1cCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQb3AgTiBpdGVtcyBvZmYgdGhlIHN0YWNrIGFuZCB0aHJvdyBhd2F5IHRoZSB2YWx1ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQb3ApXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBPcGFxdWUsIC4uLiwgT3BhcXVlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUG9wLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IExvYWQgYSB2YWx1ZSBpbnRvIGEgcmVnaXN0ZXJcbiAgICogRm9ybWF0OlxuICAgKiAgIChMb2FkIHJlZ2lzdGVyOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIE9wYXF1ZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIExvYWQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRmV0Y2ggYSB2YWx1ZSBmcm9tIGEgcmVnaXN0ZXJcbiAgICogRm9ybWF0OlxuICAgKiAgIChGZXRjaCByZWdpc3Rlcjp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgT3BhcXVlXG4gICAqL1xuICBGZXRjaCxcblxuICAvLy8gUFJFTFVERSAmIEVYSVRcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgbmV3IHJvb3Qgc2NvcGUgb250byB0aGUgc2NvcGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUm9vdFNjb3BlIHN5bWJvbHM6dTMyIGJpbmRDYWxsZXJTY29wZTpib29sKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgQSByb290IHNjb3BlIGhhcyBubyBwYXJlbnQgc2NvcGUsIGFuZCB0aGVyZWZvcmUgaW5oZXJpdHMgbm8gbGV4aWNhbFxuICAgKiAgIHZhcmlhYmxlcy4gSWYgYGJpbmRDYWxsZXJTY29wZWAgaXMgYHRydWVgLCB0aGUgY3VycmVudCBzY29wZSByZW1lbWJlcnNcbiAgICogICB0aGUgY2FsbGVyIHNjb3BlIChmb3IgeWllbGRpbmcgYmxvY2tzKS5cbiAgICovXG4gIFJvb3RTY29wZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgbmV3IGNoaWxkIHNjb3BlIG9udG8gdGhlIHNjb3BlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENoaWxkU2NvcGUpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBBIGNoaWxkIHNjb3BlIGluaGVyaXRzIGZyb20gdGhlIGN1cnJlbnQgcGFyZW50IHNjb3BlLCBhbmQgdGhlcmVmb3JlXG4gICAqICAgc2hhcmVzIGl0cyBsZXhpY2FsIHZhcmlhYmxlcy5cbiAgICovXG4gIENoaWxkU2NvcGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUG9wIHRoZSBjdXJyZW50IHNjb3BlIGZyb20gdGhlIHNjb3BlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFBvcFNjb3BlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFBvcFNjb3BlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFJldHVybiB0byB0aGUgcHJldmlvdXMgZnJhbWUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmV0dXJuKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgYWRkcmVzczpudW1iZXIg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBSZXR1cm4sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUmV0dXJuIHRvIGEgcGxhY2UgaW4gdGhlIHByb2dyYW0gZ2l2ZW4gYW4gb2Zmc2V0XG4gICAqIEZvcm1hdDpcbiAgICogIChSZXR1cm5UbyBvZmZzZXQ6aTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgICAuLi4g4oaSXG4gICAqL1xuICBSZXR1cm5UbyxcblxuICAvLy8gSFRNTFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFwcGVuZCBhIFRleHQgbm9kZSB3aXRoIHZhbHVlIGBjb250ZW50c2BcbiAgICogRm9ybWF0OlxuICAgKiAgIChUZXh0IGNvbnRlbnRzOiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgVGV4dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBcHBlbmQgYSBDb21tZW50IG5vZGUgd2l0aCB2YWx1ZSBgY29udGVudHNgXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tbWVudCBjb250ZW50czojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbW1lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQXBwZW5kIGEgRHluYW1pYyBub2RlIGJhc2VkIG9uIC5cbiAgICogRm9ybWF0OlxuICAgKiAgIChEeW5hbWljQ29udGVudCBpc1RydXN0aW5nOmJvb2xlYW4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRHluYW1pY0NvbnRlbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogT3BlbiBhIG5ldyBFbGVtZW50IG5hbWVkIGB0YWdgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE9wZW5FbGVtZW50IHRhZzojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE9wZW5FbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgT3BlbiBhIG5ldyBFbGVtZW50IHdpdGggYSBuYW1lIG9uIHRoZSBzdGFjayBhbmQgd2l0aCBzcGVjaWFsXG4gICAqICAgb3BlcmF0aW9ucyBwcm92aWRlZCBvbiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoT3BlbkR5bmFtaWNFbGVtZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgc3RyaW5nLCBFbGVtZW50T3BlcmF0aW9ucyDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE9wZW5EeW5hbWljRWxlbWVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBZGQgYW4gYXR0cmlidXRlIHRvIHRoZSBjdXJyZW50IEVsZW1lbnQuXG4gICAqIEZvcm1hdDpcbiAgICogICAoU3RhdGljQXR0ciBuYW1lOiNzdHJpbmcgdmFsdWU6I3N0cmluZyBuYW1lc3BhY2U6T3B0aW9uPCNzdHJpbmc+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFN0YXRpY0F0dHIsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBBZGQgYW4gYXR0cmlidXRlIHRvIHRoZSBjdXJyZW50IGVsZW1lbnQgdXNpbmcgdGhlIHZhbHVlXG4gICAqICAgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRHluYW1pY0F0dHIgbmFtZTojc3RyaW5nIHRydXN0aW5nOmJvb2xlYW4gbmFtZXNwYWNlOk9wdGlvbjwjc3RyaW5nPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIElmIGB0cnVzdGluZ2AgaXMgZmFsc2UsIHRoZSBob3N0IG1heSBzYW5pdGl6ZSB0aGUgYXR0cmlidXRlXG4gICAqICAgYmFzZWQgdXBvbiBrbm93biByaXNrcy5cbiAgICovXG4gIER5bmFtaWNBdHRyLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgQWRkIGFuIGF0dHJpYnV0ZSB0byB0aGUgY3VycmVudCBlbGVtZW50IHVzaW5nIHRoZSB2YWx1ZVxuICAgKiAgIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENvbXBvbmVudEF0ciBuYW1lOiNzdHJpbmcgdHJ1c3Rpbmc6Ym9vbGVhbiBuYW1lc3BhY2U6T3B0aW9uPCNzdHJpbmc+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbXBvbmVudEF0dHIsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRmluaXNoIHNldHRpbmcgYXR0cmlidXRlcyBvbiB0aGUgY3VycmVudCBlbGVtZW50LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEZsdXNoRWxlbWVudClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBGbHVzaEVsZW1lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQ2xvc2UgdGhlIGN1cnJlbnQgZWxlbWVudC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChDbG9zZUVsZW1lbnQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgQ2xvc2VFbGVtZW50LFxuXG4gIC8vLyBNT0RJRklFUlxuICBNb2RpZmllciwgICAgICAgICAgICAgICAgICAvLyAoQ29uc3RhbnRTdHJpbmcsIENvbnN0YW50T3RoZXI8TW9kaWZpZXJNYW5hZ2VyPiwgQ29uc3RhbnRFeHByZXNzaW9uKVxuXG4gIC8vLyBXT1JNSE9MRVxuICBQdXNoUmVtb3RlRWxlbWVudCwgICAgICAgICAvLyAoKVxuICBQb3BSZW1vdGVFbGVtZW50LCAgICAgICAgICAvLyAoKVxuXG4gIC8vLyBEWU5BTUlDIFNDT1BFXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQmluZCBzdGFjayB2YWx1ZXMgYXMgZHluYW1pYyB2YXJpYWJsZXMuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQmluZER5bmFtaWNTY29wZSBuYW1lczojQXJyYXk8I3N0cmluZz4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBUaGlzIGlzIHVzZWQgdG8gZXhwb3NlIGAtd2l0aC1keW5hbWljLXZhcnNgLCBhbmQgaXMgYVxuICAgKiAgIG5pY2hlIGZlYXR1cmUuXG4gICAqL1xuICBCaW5kRHluYW1pY1Njb3BlLFxuXG4gIFB1c2hEeW5hbWljU2NvcGUsICAgICAgICAgIC8vICgpXG4gIFBvcER5bmFtaWNTY29wZSwgICAgICAgICAgIC8vICgpXG5cbiAgLy8vIFZNXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQ29tcGlsZSB0aGUgSW5saW5lQmxvY2sgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tcGlsZUJsb2NrKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgQ29tcGlsYWJsZUJsb2NrIOKGklxuICAgKiAgIC4uLiwgSGFuZGxlXG4gICAqL1xuICBDb21waWxlQmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIHNjb3BlIG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hCbG9ja1Njb3BlICNTY29wZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIOKGklxuICAgKiAgIC4uLiwgU2NvcGVcbiAgICovXG4gIFB1c2hCbG9ja1Njb3BlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSBzeW1ib2wgdGFibGUgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaFN5bWJvbFRhYmxlICNTeW1ib2xUYWJsZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIOKGklxuICAgKiAgIC4uLiwgU3ltYm9sVGFibGVcbiAgICovXG4gIFB1c2hTeW1ib2xUYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFdmFsdWF0ZSB0aGUgaGFuZGxlIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEludm9rZVZpcnR1YWwpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBIYW5kbGUsIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlVmlydHVhbCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFdmFsdWF0ZSB0aGUgaGFuZGxlLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEludm9rZVN0YXRpYyBoYW5kbGU6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEludm9rZVN0YXRpYyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBZaWVsZCB0byBhIGJsb2NrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEludm9rZVlpZWxkKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSwgQXJndW1lbnRzLCBTeW1ib2xUYWJsZSwgSGFuZGxlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlWWllbGQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogSnVtcCB0byB0aGUgc3BlY2lmaWVkIG9mZnNldC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChKdW1wIHRvOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBKdW1wLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgSnVtcCB0byB0aGUgc3BlY2lmaWVkIG9mZnNldCBpZiB0aGUgdmFsdWUgYXRcbiAgICogICB0aGUgdG9wIG9mIHRoZSBzdGFjayBpcyB0cnVlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEp1bXBJZiB0bzp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSnVtcElmLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgSnVtcCB0byB0aGUgc3BlY2lmaWVkIG9mZnNldCBpZiB0aGUgdmFsdWUgYXRcbiAgICogICB0aGUgdG9wIG9mIHRoZSBzdGFjayBpcyBmYWxzZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChKdW1wVW5sZXNzIHRvOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBKdW1wVW5sZXNzLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSBzdGFjayBmcmFtZVxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hGcmFtZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgJHJhLCAkZnBcbiAgICovXG4gIFB1c2hGcmFtZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQb3AgYSBzdGFjayBmcmFtZVxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hGcmFtZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAkcmEsICRmcCDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFBvcEZyYW1lLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgU3RhcnQgdHJhY2tpbmcgYSBuZXcgb3V0cHV0IGJsb2NrIHRoYXQgY291bGQgY2hhbmdlXG4gICAqICAgaWYgb25lIG9mIGl0cyBpbnB1dHMgY2hhbmdlcy5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChFbnRlciBhcmdzOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIFNvb24gYWZ0ZXIgdGhpcyBvcGNvZGUsIG9uZSBvZiBKdW1wLCBKdW1wSWYsXG4gICAqICAgb3IgSnVtcFVubGVzcyB3aWxsIHByb2R1Y2UgYW4gdXBkYXRpbmcgYXNzZXJ0aW9uLlxuICAgKiAgIElmIHRoYXQgYXNzZXJ0aW9uIGZhaWxzLCB0aGUgYXBwZW5kaW5nIFZNIHdpbGxcbiAgICogICBiZSByZS1lbnRlcmVkLCBhbmQgdGhlIGluc3RydWN0aW9ucyBmcm9tIGBmcm9tYFxuICAgKiAgIHRvIGB0b2Agd2lsbCBiZSBleGVjdXRlZC5cbiAgICpcbiAgICogICBUT0RPOiBTYXZlIGFuZCByZXN0b3JlLlxuICAgKi9cbiAgRW50ZXIsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBGaW5pc2ggdHJhY2tpbmcgdGhlIGN1cnJlbnQgYmxvY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRXhpdClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIFRoaXMgZmluYWxpemVzIHRoZSB2YWxpZGF0b3JzIHRoYXQgdGhlIHVwZGF0aW5nXG4gICAqICAgYmxvY2sgbXVzdCBjaGVjayB0byBkZXRlcm1pbmUgd2hldGhlciBpdCdzIHNhZmUgdG9cbiAgICogICBza2lwIHJ1bm5pbmcgdGhlIGNvbnRlbnRzLlxuICAgKi9cbiAgRXhpdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb252ZXJ0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGludG8gYSBib29sZWFuIHJlZmVyZW5jZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChUb0Jvb2xlYW4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPE9wYXF1ZT4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPGJvb2w+XG4gICAqL1xuICBUb0Jvb2xlYW4sXG5cbiAgLy8vIExJU1RTXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRW50ZXIgYSBsaXN0LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEVudGVyTGlzdCBhZGRyZXNzOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIEl0ZXJhdG9yIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRW50ZXJMaXN0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEV4aXQgdGhlIGN1cnJlbnQgbGlzdC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChFeGl0TGlzdClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBFeGl0TGlzdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIENvbnZlcnQgYW4gb3BlcmFuZCBhbmQga2V5IGludG8gYW4gaXRlcmF0b3IgYW5kXG4gICAqICAgcHJlc2VuY2UgcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1dEl0ZXJhdG9yKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwga2V5OnN0cmluZywgbGlzdDpWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLiwgaXRlcmF0b3I6UmVmZXJlbmNlSXRlcmF0b3IsIHByZXNlbnQ6UHJlc2VuY2VSZWZlcmVuY2VcbiAgICovXG4gIFB1dEl0ZXJhdG9yLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgU2V0IHVwIHRoZSBzdGFjayBmb3IgaXRlcmF0aW5nIGZvciBhIGdpdmVuIGtleSxcbiAgICogICBvciBqdW1wIHRvIGBlbmRgIGlmIHRoZXJlIGlzIG5vdGhpbmcgbGVmdCB0b1xuICAgKiAgIGl0ZXJhdGUuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSXRlcmF0ZSBlbmQ6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIEZvcm0gMTogKHNvbWV0aGluZyB0byBpdGVyYXRlKVxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIHN0cmluZ1xuICAgKiAgIEZvcm0gMjogKG5vdGhpbmcgbGVmdCB0byBpdGVyYXRlKVxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgSW4gRm9ybSAxLCB0aGUgc3RhY2sgd2lsbCBoYXZlIChpbiByZXZlcnNlIG9yZGVyKTpcbiAgICpcbiAgICogICAtIHRoZSBrZXksIGFzIGEgc3RyaW5nXG4gICAqICAgLSB0aGUgY3VycmVudCBpdGVyYXRlZCB2YWx1ZVxuICAgKiAgIC0gdGhlIG1lbW9pemVkIGl0ZXJhdGVkIHZhbHVlXG4gICAqL1xuICBJdGVyYXRlLFxuXG4gIC8vLyBDT01QT05FTlRTXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogVGVzdCB3aGV0aGVyIGEgcmVmZXJlbmNlIGNvbnRhaW5zIGEgY29tcG9uZW50IGRlZmluaXRpb24uXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoTWFpbiBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIEludm9jYXRpb24sIENvbXBvbmVudERlZmluaXRpb24g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBNYWluLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFRlc3Qgd2hldGhlciBhIHJlZmVyZW5jZSBjb250YWlucyBhIGNvbXBvbmVudCBkZWZpbml0aW9uLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKElzQ29tcG9uZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxPcGFxdWU+IOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxib29sZWFuPlxuICAgKi9cbiAgSXNDb21wb25lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQ3VycnkgYSBjb21wb25lbnQgZGVmaW5pdGlvbiBmb3IgYSBsYXRlciBpbnZvY2F0aW9uLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEN1cnJ5Q29tcG9uZW50IHRlbXBsYXRlTWV0YTojVGVtcGxhdGVNZXRhKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSwgQXJndW1lbnRzIOKGklxuICAgKiAgIC4uLiwgeyBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlLCBUZW1wbGF0ZU1ldGEsIENhcHR1cmVkQXJndW1lbnRzIH1cbiAgICovXG4gIEN1cnJ5Q29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYW4gYXBwcm9wcmlhdGUgY29tcG9uZW50IG1hbmFnZXIgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaENvbXBvbmVudE1hbmFnZXIgI0NvbXBvbmVudFNwZWMpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgeyBDb21wb25lbnREZWZpbml0aW9uLCBDb21wb25lbnRNYW5hZ2VyIH1cbiAgICovXG4gIFB1c2hDb21wb25lbnREZWZpbml0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUHVzaGVzIHRoZSBDb21wb25lbnRJbnN0YW5jZSBvbnRvIHRoZSBzdGFjayB0aGF0IGlzXG4gICAqICAgdXNlZCBkdXJpbmcgdGhlIGludm9rZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoRHluYW1pY0NvbXBvbmVudEluc3RhbmNlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgQ29tcG9uZW50RGVmaW5pdGlvbiDihpJcbiAgICogICAuLi4sIHsgQ29tcG9uZW50RGVmaW5pdGlvbiwgbWFuYWdlcjogbnVsbCwgbGF5b3V0OiBudWxsLCBzdGF0ZTogbnVsbCwgaGFuZGxlOiBudWxsLCB0YWJsZTogbnVsbCB9XG4gICAqL1xuXG4gIFB1c2hEeW5hbWljQ29tcG9uZW50SW5zdGFuY2UsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoZXMgYSBjdXJyaWVkIGNvbXBvbmVudCBkZWZpbml0aW9uIG9uIHRvIHRoZSBzdGFja1xuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hDdXJyaWVkQ29tcG9uZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxPcGFxdWU+IOKGklxuICAgKiAgIC4uLiwgQ29tcG9uZW50RGVmaW5pdGlvblxuICAgKi9cbiAgUHVzaEN1cnJpZWRDb21wb25lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIGEgcmVzb2x2ZWQgY29tcG9uZW50IGRlZmluaXRpb24gb250byB0aGUgc3RhY2tcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChSZXNvbHZlRHluYW1pY0NvbXBvbmVudCB0ZW1wbGF0ZU1ldGE6I1RlbXBsYXRlTWV0YSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiDihpJcbiAgICogICAuLi4sIENvbXBvbmVudERlZmluaXRpb25cbiAgICovXG4gIFJlc29sdmVEeW5hbWljQ29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSB1c2VyIHJlcHJlc2VudGF0aW9uIG9mIGFyZ3Mgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEFyZ3MgbmFtZXM6I0FycmF5PCNzdHJpbmc+IHBvc2l0aW9uYWxDb3VudDp1MzIgc3ludGhldGljOiNib29sZWFuKVxuICAgKlxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSAg4oaSXG4gICAqICAgLi4uLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHNcbiAgICpcbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgVGhpcyBhcmd1bWVudHMgb2JqZWN0IGlzIG9ubHkgbmVjZXNzYXJ5IHdoZW4gY2FsbGluZyBpbnRvXG4gICAqICAgdXNlci1zcGVjaWZpZWQgaG9va3MuIEl0IGlzIG1lYW50IHRvIGJlIGltcGxlbWVudGVkIGFzIGFcbiAgICogICB0cmFuc2llbnQgcHJveHkgdGhhdCByZWFkcyBpbnRvIHRoZSBzdGFjayBhcyBuZWVkZWQuXG4gICAqICAgSG9sZGluZyBvbnRvIHRoZSBBcmd1bWVudHMgYWZ0ZXIgdGhlIGNhbGwgaGFzIGNvbXBsZXRlZCBpc1xuICAgKiAgIGlsbGVnYWwuXG4gICAqL1xuICBQdXNoQXJncyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQb3BzIEFyZ3VtZW50cyBmcm9tIHRoZSBzdGFjayBhbmQgY2xlYXJzIHRoZSBuZXh0IE4gYXJncy5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQb3BBcmdzKVxuICAgKlxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSwgQXJndW1lbnRzICDihpJcbiAgICogICAuLi5cbiAgICpcbiAgICogRGVzY3JpcHRpb246XG4gICAqIFRoZSBhcmd1bWVudHMgb2JqZWN0IGNvbnRhaW5zIHRoZSBpbmZvcm1hdGlvbiBvZiBob3cgbWFueSB1c2VyXG4gICAqIHN1cHBsaWVkIGFyZ3MgdGhlIGNvbXBvbmVudCB3YXMgaW52b2tlZCB3aXRoLiBUbyBjbGVhciB0aGVtIGZyb21cbiAgICogdGhlIHN0YWNrIHdlIG11c3QgcG9wIGl0IGZyb20gdGhlIHN0YWNrIGFuZCBjYWxsIGBjbGVhcmAgb24gaXRcbiAgICogdG8gcmVtb3ZlIHRoZSBhcmd1bWVudCB2YWx1ZXMgZnJvbSB0aGUgc3RhY2suXG4gICAqL1xuICBQb3BBcmdzLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IC4uLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFByZXBhcmVBcmdzIHN0YXRlOnJlZ2lzdGVyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFByZXBhcmVBcmdzLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFJlcGxhY2VzIEFyZ3VtZW50cyBvbiB0aGUgc3RhY2sgd2l0aCBDYXB0dXJlZEFyZ3VtZW50c1xuICAgKiBGb3JtYXQ6XG4gICAqICAgKENhcHR1cmVBcmdzKVxuICAgKlxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgQXJndW1lbnRzICDihpJcbiAgICogICAuLi4sIENhcHR1cmVkQXJndW1lbnRzXG4gICAqXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiBUaGUgQXJndW1lbnRzIG9iamVjdCBpcyBtdXRhdGVkIGluIHBsYWNlIGJlY2F1c2UgaXQgaXMgdXN1YWxseSBjb25zdW1lZCBpbW1lZGlhdGVseVxuICAgKiBhZnRlciBiZWluZyBwdXNoZWQgb24gdG8gdGhlIHN0YWNrLiBJbiBzb21lIHNpdHVhdGlvbnMsIHN1Y2ggYXMgd2l0aCBjdXJyaWVkIGNvbXBvbmVudHMsXG4gICAqIGluZm9ybWF0aW9uIGFib3V0IG1vcmUgdGhhbiBvbmUgQXJndW1lbnQgbWF5IG5lZWQgdG8gZXhpc3Qgb24gdGhlIHN0YWNrIGF0IG9uY2UuIEluIHRob3NlXG4gICAqIGNhc2VzLCB0aGUgQ2FwdHVyZUFyZ3MgaW5zdHJ1Y3Rpb24gcG9wcyBhbiBBcmd1bWVudHMgb2JqZWN0IG9mZiB0aGUgc3RhY2sgYW5kIHJlcGxhY2VzIGl0XG4gICAqIHdpdGggdGhlIGltbXV0YWJsZSBDYXB0dXJlZEFyZ3Mgc25hcHNob3QuXG4gICAqL1xuICBDYXB0dXJlQXJncyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDcmVhdGUgdGhlIGNvbXBvbmVudCBhbmQgcHVzaCBpdCBvbnRvIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChDcmVhdGVDb21wb25lbnQgZmxhZ3M6dTMyIHN0YXRlOnJlZ2lzdGVyKVxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgRmxhZ3M6XG4gICAqXG4gICAqICAgKiAwYjAwMTogSGFzIGEgZGVmYXVsdCBibG9ja1xuICAgKiAgICogMGIwMTA6IEhhcyBhbiBpbnZlcnNlIGJsb2NrXG4gICAqL1xuICBDcmVhdGVDb21wb25lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUmVnaXN0ZXIgYSBkZXN0cnVjdG9yIGZvciB0aGUgY3VycmVudCBjb21wb25lbnRcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChSZWdpc3RlckNvbXBvbmVudERlc3RydWN0b3Igc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUmVnaXN0ZXJDb21wb25lbnREZXN0cnVjdG9yLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSBuZXcgRWxlbWVudE9wZXJhdGlvbnMgZm9yIHRoZSBjdXJyZW50IGNvbXBvbmVudC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXRDb21wb25lbnRPcGVyYXRpb25zKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFB1dENvbXBvbmVudE9wZXJhdGlvbnMsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCB0aGUgY29tcG9uZW50J3MgYHNlbGZgIG9udG8gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldENvbXBvbmVudFNlbGYgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0Q29tcG9uZW50U2VsZixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIHRoZSBjb21wb25lbnQncyBgc2VsZmAgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoR2V0Q29tcG9uZW50VGFnTmFtZSBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBPcHRpb248c3RyaW5nPlxuICAgKi9cbiAgR2V0Q29tcG9uZW50VGFnTmFtZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBHZXQgdGhlIGNvbXBvbmVudCBsYXlvdXQgZnJvbSB0aGUgbWFuYWdlci5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChHZXRDb21wb25lbnRMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgUHJvZ3JhbVN5bWJvbFRhYmxlLCBIYW5kbGVcbiAgICovXG4gIEdldENvbXBvbmVudExheW91dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcHVsYXRlIHRoZSBzdGF0ZSByZWdpc3RlciB3aXRoIHRoZSBsYXlvdXQgY3VycmVudGx5XG4gICAqICAgb24gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFBvcHVsYXRlTGF5b3V0IHN0YXRlOnJlZ2lzdGVyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgUHJvZ3JhbVN5bWJvbFRhYmxlLCBIYW5kbGUg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBQb3B1bGF0ZUxheW91dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBJbnZva2UgdGhlIGxheW91dCByZXR1cm5lZCBieSB0aGUgbWFuYWdlci5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VDb21wb25lbnRMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlQ29tcG9uZW50TGF5b3V0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEJlZ2luIGEgbmV3IGNhY2hlIGdyb3VwXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQmVnaW5Db21wb25lbnRUcmFuc2FjdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIENvbXBvbmVudE1hbmFnZXI8VD4sIFQg4oaSXG4gICAqICAgLi4uLCBDb21wb25lbnRNYW5hZ2VyPFQ+LCBUXG4gICAqL1xuICBCZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbW1pdCB0aGUgY3VycmVudCBjYWNoZSBncm91cFxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSBkaWRDcmVhdGVFbGVtZW50IG9uIHRoZSBjdXJyZW50IGNvbXBvbmVudCBtYW5hZ2VyXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRGlkQ3JlYXRlRWxlbWVudCBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBEaWRDcmVhdGVFbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSBkaWRSZW5kZXJMYXlvdXQgb24gdGhlIGN1cnJlbnQgY29tcG9uZW50IG1hbmFnZXJcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEaWRSZW5kZXJMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCDihpJcbiAgICogICAuLi5cbiAgICovXG4gIERpZFJlbmRlckxheW91dCxcblxuICAvLy8gUEFSVElBTFNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBMb29rdXAgYW5kIGludm9rZSBhIHBhcnRpYWwgdGVtcGxhdGUuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlUGFydGlhbCB0ZW1wbGF0ZU1ldGE6I1RlbXBsYXRlTWV0YSBzeW1ib2xzOiNBcnJheTwjc3RyaW5nPiBldmFsSW5mbzojQXJyYXk8bnVtYmVyPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8c3RyaW5nPiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEludm9rZVBhcnRpYWwsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBSZXNvbHZlIHt7Zm9vfX0gaW5zaWRlIGEgcGFydGlhbCwgd2hpY2ggY291bGQgYmUgZWl0aGVyIGEgc2VsZi1sb29rdXBcbiAgICogICBvciBhIGxvY2FsIHZhcmlhYmxlIHRoYXQgaXMgaW4tc2NvcGUgZm9yIHRoZSBjYWxsZXIuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmVzb2x2ZU1heWJlTG9jYWwgbG9jYWw6I3N0cmluZylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBSZXNvbHZlTWF5YmVMb2NhbCxcblxuICAvLy8gREVCVUdHRVJcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBY3RpdmF0ZSB0aGUgZGVidWdnZXJcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEZWJ1Z2dlciBzeW1ib2xzOiNBcnJheTxzdHJpbmc+IGV2YWxJbmZvOiNBcnJheTxudW1iZXI+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIERlYnVnZ2VyLFxuXG4gIC8qKiBUaGUgc2l6ZSBvZiB0aGUgb3Bjb2RlIGxpc3QgKi9cbiAgU2l6ZVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Bjb2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZtL2xpYi9vcGNvZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBPcCB7XG4gIC8qXG4gICAgRG9jdW1lbnRhdGlvbiBUT0RPOlxuXG4gICAgRG9jdW1lbnQgdGhlIGxvY2FsIHZhcmlhYmxlIGxheW91dCBpbiB0aGUgc3RhY2tcbiAgICBkaWFncmFtIGJlZm9yZS1hbmQtYWZ0ZXIuXG5cbiAgICBEb2N1bWVudCB1cGRhdGluZyBvcGNvZGVzIGVtaXR0aW5nIGZyb20gdW5yZWFjaGFibGVcbiAgICBhcHBlbmQgb3Bjb2RlLlxuXG4gICAgRG9jdW1lbnQgdGhlIGVsZW1lbnQgc3RhY2ssIGJsb2NrIHN0YWNrIGFuZCBMaXN0XG4gICAgYmxvY2sgc3RhY2suXG4gICAqL1xuXG4gIC8qKlxuICAgKiBUaGlzIG9wY29kZSBzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZC5cbiAgICovXG4gIEJ1ZyxcblxuICAvLy8gRVhQUkVTU0lPTlNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFdmFsdWF0ZSBhIEhlbHBlci5cbiAgICogRm9ybWF0OlxuICAgKiAgIChIZWxwZXIgaGVscGVyOiNGdW5jdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cyDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2VcbiAgICovXG4gIEhlbHBlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIHZhcmlhYmxlIHJlcHJlc2VudGVkIGJ5IGEgc3ltYm9sIGZyb21cbiAgICogICB0aGUgdmFsdWUgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoU2V0VmFyaWFibGUgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBTZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIGJsb2NrIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFNldEJsb2NrIHN5bWJvbDp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBTeW1ib2xUYWJsZSwgSGFuZGxlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgU2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIHRoZSBjb250ZW50cyBvZiB0aGUgdmFyaWFibGUgcmVwcmVzZW50ZWQgYnlcbiAgICogICBhIHN5bWJvbCAoYSBwb3NpdGlvbmFsIG9yIG5hbWVkIGFyZ3VtZW50KSBvbnRvXG4gICAqICAgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hTeW1ib2wgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBHZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgZnJvbSB0aGUgdG9wIG9mIHRoZVxuICAgKiAgIHN0YWNrLCBhbmQgcHVzaCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgY29uc3RydWN0ZWRcbiAgICogICBieSBgLmdldChwcm9wZXJ0eSlgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldFByb3BlcnR5IHByb3BlcnR5OiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0UHJvcGVydHksXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCB0aGUgc3BlY2lmaWVkIGJvdW5kIGJsb2NrIG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldEJsb2NrIGJsb2NrOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBJbmxpbmVCbG9ja1xuICAgKi9cbiAgR2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIFRSVUUgb250byB0aGUgc3RhY2sgaWYgdGhlIHNwZWNpZmllZCBibG9ja1xuICAgKiAgIGlzIGJvdW5kIGFuZCBGQUxTRSBpZiBpdCBpcyBub3QuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2sgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIGJvb2xlYW5cbiAgICovXG4gIEhhc0Jsb2NrLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUHVzaCBUUlVFIG9udG8gdGhlIHN0YWNrIGlmIHRoZSBzcGVjaWZpZWQgYmxvY2tcbiAgICogICBpcyBib3VuZCAqYW5kKiBoYXMgYXQgbGVhc3Qgb25lIHNwZWNpZmllZCBmb3JtYWxcbiAgICogICBwYXJhbWV0ZXIsIGFuZCBGQUxTRSBvdGhlcndpc2UuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2tQYXJhbXMgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgKGJvb2xlYW4pXG4gICAqL1xuICBIYXNCbG9ja1BhcmFtcyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBjb3VudCBgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZWBzIG9mZiB0aGUgc3RhY2sgYW5kXG4gICAqICAgY29uc3RydWN0IGEgbmV3IENvbmNhdFJlZmVyZW5jZSBmcm9tIHRoZW0gKGluIHJldmVyc2VcbiAgICogICBvcmRlcikuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29uY2F0IGNvdW50OnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0g4oaSXG4gICAqICAgLi4uLCBDb25jYXRSZWZlcmVuY2VcbiAgICovXG4gIENvbmNhdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFB1c2ggYW4gT2JqZWN0IGNvbnN0YW50IG9udG8gdGhlIHN0YWNrIHRoYXQgaXMgbm90XG4gICAqICAgYSBKYXZhU2NyaXB0IHByaW1pdGl2ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoQ29uc3RhbnQgY29uc3RhbnQ6I09iamVjdClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBPcGFxdWVcbiAgICovXG4gIENvbnN0YW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgV3JhcCBhIEphdmFTY3JpcHQgcHJpbWl0aXZlIGluIGEgcmVmZXJlbmNlIGFuZCBwdXNoIGl0XG4gICAqICAgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaFByaW1pdGl2ZSBjb25zdGFudDojUHJpbWl0aXZlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFByaW1pdGl2ZVxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBUaGUgdHdvIGhpZ2ggYml0cyBvZiB0aGUgY29uc3RhbnQgcmVmZXJlbmNlIGRlc2NyaWJlXG4gICAqICAgdGhlIGtpbmQgb2YgcHJpbWl0aXZlOlxuICAgKlxuICAgKiAgIDAwOiBudW1iZXJcbiAgICogICAwMTogc3RyaW5nXG4gICAqICAgMTA6IHRydWUgfCBmYWxzZSB8IG51bGwgfCB1bmRlZmluZWRcbiAgICovXG4gIFByaW1pdGl2ZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb252ZXJ0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGludG8gYSBwcmltaXRpdmUgcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFByaW1pdGl2ZVJlZmVyZW5jZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFByaW1pdGl2ZSDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8UHJpbWl0aXZlPlxuICAgKi9cbiAgUHJpbWl0aXZlUmVmZXJlbmNlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbnZlcnQgdGhlIHRvcCBvZiB0aGUgc3RhY2sgaW50byBhIG51bWJlci5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChSZWlmeVUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8dTMyPiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8dTMyPiwgdTMyXG4gICAqL1xuICBSZWlmeVUzMixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBEdXBsaWNhdGUgYW5kIHB1c2ggaXRlbSBmcm9tIGFuIG9mZnNldCBpbiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoRHVwIHJlZ2lzdGVyOnUzMiwgb2Zmc2V0OnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIE9wYXF1ZSDihpJcbiAgICogICAuLi4sIE9wYXF1ZSwgT3BhcXVlXG4gICAqL1xuICBEdXAsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUG9wIE4gaXRlbXMgb2ZmIHRoZSBzdGFjayBhbmQgdGhyb3cgYXdheSB0aGUgdmFsdWUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoUG9wKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgT3BhcXVlLCAuLi4sIE9wYXF1ZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFBvcCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBMb2FkIGEgdmFsdWUgaW50byBhIHJlZ2lzdGVyXG4gICAqIEZvcm1hdDpcbiAgICogICAoTG9hZCByZWdpc3Rlcjp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBPcGFxdWUg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBMb2FkLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEZldGNoIGEgdmFsdWUgZnJvbSBhIHJlZ2lzdGVyXG4gICAqIEZvcm1hdDpcbiAgICogICAoRmV0Y2ggcmVnaXN0ZXI6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIE9wYXF1ZVxuICAgKi9cbiAgRmV0Y2gsXG5cbiAgLy8vIFBSRUxVREUgJiBFWElUXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIG5ldyByb290IHNjb3BlIG9udG8gdGhlIHNjb3BlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFJvb3RTY29wZSBzeW1ib2xzOnUzMiBiaW5kQ2FsbGVyU2NvcGU6Ym9vbClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIEEgcm9vdCBzY29wZSBoYXMgbm8gcGFyZW50IHNjb3BlLCBhbmQgdGhlcmVmb3JlIGluaGVyaXRzIG5vIGxleGljYWxcbiAgICogICB2YXJpYWJsZXMuIElmIGBiaW5kQ2FsbGVyU2NvcGVgIGlzIGB0cnVlYCwgdGhlIGN1cnJlbnQgc2NvcGUgcmVtZW1iZXJzXG4gICAqICAgdGhlIGNhbGxlciBzY29wZSAoZm9yIHlpZWxkaW5nIGJsb2NrcykuXG4gICAqL1xuICBSb290U2NvcGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIG5ldyBjaGlsZCBzY29wZSBvbnRvIHRoZSBzY29wZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChDaGlsZFNjb3BlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgQSBjaGlsZCBzY29wZSBpbmhlcml0cyBmcm9tIHRoZSBjdXJyZW50IHBhcmVudCBzY29wZSwgYW5kIHRoZXJlZm9yZVxuICAgKiAgIHNoYXJlcyBpdHMgbGV4aWNhbCB2YXJpYWJsZXMuXG4gICAqL1xuICBDaGlsZFNjb3BlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFBvcCB0aGUgY3VycmVudCBzY29wZSBmcm9tIHRoZSBzY29wZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQb3BTY29wZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBQb3BTY29wZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBSZXR1cm4gdG8gdGhlIHByZXZpb3VzIGZyYW1lLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFJldHVybilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIGFkZHJlc3M6bnVtYmVyIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUmV0dXJuLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFJldHVybiB0byBhIHBsYWNlIGluIHRoZSBwcm9ncmFtIGdpdmVuIGFuIG9mZnNldFxuICAgKiBGb3JtYXQ6XG4gICAqICAoUmV0dXJuVG8gb2Zmc2V0OmkzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAgLi4uIOKGklxuICAgKi9cbiAgUmV0dXJuVG8sXG5cbiAgLy8vIEhUTUxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBcHBlbmQgYSBUZXh0IG5vZGUgd2l0aCB2YWx1ZSBgY29udGVudHNgXG4gICAqIEZvcm1hdDpcbiAgICogICAoVGV4dCBjb250ZW50czojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFRleHQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQXBwZW5kIGEgQ29tbWVudCBub2RlIHdpdGggdmFsdWUgYGNvbnRlbnRzYFxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENvbW1lbnQgY29udGVudHM6I3N0cmluZylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBDb21tZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFwcGVuZCBjb250ZW50IGFzIEhUTUwuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQXBwZW5kSFRNTClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8c3RyaW5nPiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEFwcGVuZEhUTUwsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQXBwZW5kIFNhZmVIVE1MIGFzIEhUTUwuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQXBwZW5kU2FmZUhUTUwpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPFNhZmVIVE1MPiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEFwcGVuZFNhZmVIVE1MLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFwcGVuZCBEb2N1bWVudEZyYWdtZW50LlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEFwcGVuZEZyYWdtZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxEb2N1bWVudEZyYWdtZW50PiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEFwcGVuZERvY3VtZW50RnJhZ21lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQXBwZW5kIE5vZGUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQXBwZW5kRnJhZ21lbnQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPE5vZGU+IOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgQXBwZW5kTm9kZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBcHBlbmQgY29udGVudCBhcyB0ZXh0LlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEFwcGVuZFRleHQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPHN0cmluZz4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBBcHBlbmRUZXh0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IE9wZW4gYSBuZXcgRWxlbWVudCBuYW1lZCBgdGFnYC5cbiAgICogRm9ybWF0OlxuICAgKiAgIChPcGVuRWxlbWVudCB0YWc6I3N0cmluZylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBPcGVuRWxlbWVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIE9wZW4gYSBuZXcgRWxlbWVudCB3aXRoIGEgbmFtZSBvbiB0aGUgc3RhY2sgYW5kIHdpdGggc3BlY2lhbFxuICAgKiAgIG9wZXJhdGlvbnMgcHJvdmlkZWQgb24gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE9wZW5EeW5hbWljRWxlbWVudClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIHN0cmluZywgRWxlbWVudE9wZXJhdGlvbnMg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBPcGVuRHluYW1pY0VsZW1lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQWRkIGFuIGF0dHJpYnV0ZSB0byB0aGUgY3VycmVudCBFbGVtZW50LlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFN0YXRpY0F0dHIgbmFtZTojc3RyaW5nIHZhbHVlOiNzdHJpbmcgbmFtZXNwYWNlOk9wdGlvbjwjc3RyaW5nPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBTdGF0aWNBdHRyLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgQWRkIGFuIGF0dHJpYnV0ZSB0byB0aGUgY3VycmVudCBlbGVtZW50IHVzaW5nIHRoZSB2YWx1ZVxuICAgKiAgIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKER5bmFtaWNBdHRyIG5hbWU6I3N0cmluZyB0cnVzdGluZzpib29sZWFuIG5hbWVzcGFjZTpPcHRpb248I3N0cmluZz4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBJZiBgdHJ1c3RpbmdgIGlzIGZhbHNlLCB0aGUgaG9zdCBtYXkgc2FuaXRpemUgdGhlIGF0dHJpYnV0ZVxuICAgKiAgIGJhc2VkIHVwb24ga25vd24gcmlza3MuXG4gICAqL1xuICBEeW5hbWljQXR0cixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEFkZCBhbiBhdHRyaWJ1dGUgdG8gdGhlIGN1cnJlbnQgZWxlbWVudCB1c2luZyB0aGUgdmFsdWVcbiAgICogICBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChDb21wb25lbnRBdHIgbmFtZTojc3RyaW5nIHRydXN0aW5nOmJvb2xlYW4gbmFtZXNwYWNlOk9wdGlvbjwjc3RyaW5nPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBDb21wb25lbnRBdHRyLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEZpbmlzaCBzZXR0aW5nIGF0dHJpYnV0ZXMgb24gdGhlIGN1cnJlbnQgZWxlbWVudC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChGbHVzaEVsZW1lbnQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRmx1c2hFbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENsb3NlIHRoZSBjdXJyZW50IGVsZW1lbnQuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ2xvc2VFbGVtZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENsb3NlRWxlbWVudCxcblxuICAvLy8gTU9ESUZJRVJcbiAgTW9kaWZpZXIsICAgICAgICAgICAgICAgICAgLy8gKENvbnN0YW50U3RyaW5nLCBDb25zdGFudE90aGVyPE1vZGlmaWVyTWFuYWdlcj4sIENvbnN0YW50RXhwcmVzc2lvbilcblxuICAvLy8gV09STUhPTEVcbiAgUHVzaFJlbW90ZUVsZW1lbnQsICAgICAgICAgLy8gKClcbiAgUG9wUmVtb3RlRWxlbWVudCwgICAgICAgICAgLy8gKClcblxuICAvLy8gRFlOQU1JQyBTQ09QRVxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEJpbmQgc3RhY2sgdmFsdWVzIGFzIGR5bmFtaWMgdmFyaWFibGVzLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEJpbmREeW5hbWljU2NvcGUgbmFtZXM6I0FycmF5PCNzdHJpbmc+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgVGhpcyBpcyB1c2VkIHRvIGV4cG9zZSBgLXdpdGgtZHluYW1pYy12YXJzYCwgYW5kIGlzIGFcbiAgICogICBuaWNoZSBmZWF0dXJlLlxuICAgKi9cbiAgQmluZER5bmFtaWNTY29wZSxcblxuICBQdXNoRHluYW1pY1Njb3BlLCAgICAgICAgICAvLyAoKVxuICBQb3BEeW5hbWljU2NvcGUsICAgICAgICAgICAvLyAoKVxuXG4gIC8vLyBWTVxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbXBpbGUgdGhlIElubGluZUJsb2NrIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENvbXBpbGVCbG9jaylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIENvbXBpbGFibGVCbG9jayDihpJcbiAgICogICAuLi4sIEhhbmRsZVxuICAgKi9cbiAgQ29tcGlsZUJsb2NrLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSBzY29wZSBvbnRvIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoQmxvY2tTY29wZSAjU2NvcGUpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCDihpJcbiAgICogICAuLi4sIFNjb3BlXG4gICAqL1xuICBQdXNoQmxvY2tTY29wZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgc3ltYm9sIHRhYmxlIG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hTeW1ib2xUYWJsZSAjU3ltYm9sVGFibGUpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCDihpJcbiAgICogICAuLi4sIFN5bWJvbFRhYmxlXG4gICAqL1xuICBQdXNoU3ltYm9sVGFibGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRXZhbHVhdGUgdGhlIGhhbmRsZSBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VWaXJ0dWFsKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgSGFuZGxlLCDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEludm9rZVZpcnR1YWwsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRXZhbHVhdGUgdGhlIGhhbmRsZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VTdGF0aWMgaGFuZGxlOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBJbnZva2VTdGF0aWMsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogWWllbGQgdG8gYSBibG9jay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VZaWVsZClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cywgU3ltYm9sVGFibGUsIEhhbmRsZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEludm9rZVlpZWxkLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEp1bXAgdG8gdGhlIHNwZWNpZmllZCBvZmZzZXQuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSnVtcCB0bzp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSnVtcCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEp1bXAgdG8gdGhlIHNwZWNpZmllZCBvZmZzZXQgaWYgdGhlIHZhbHVlIGF0XG4gICAqICAgdGhlIHRvcCBvZiB0aGUgc3RhY2sgaXMgdHJ1ZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChKdW1wSWYgdG86dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEp1bXBJZixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEp1bXAgdG8gdGhlIHNwZWNpZmllZCBvZmZzZXQgaWYgdGhlIHZhbHVlIGF0XG4gICAqICAgdGhlIHRvcCBvZiB0aGUgc3RhY2sgaXMgZmFsc2UuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSnVtcFVubGVzcyB0bzp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSnVtcFVubGVzcyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEp1bXAgdG8gdGhlIHNwZWNpZmllZCBvZmZzZXQgaWYgdGhlIHZhbHVlIGF0XG4gICAqICAgdGhlIHRvcCBvZiB0aGUgc3RhY2sgaXMgdGhlIHNhbWUgYXMgdGhlXG4gICAqICAgY29tcGFyaXNvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChKdW1wRXEgdG86aTMyIGNvbXBhcmlzb246aTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgdTMyIOKGklxuICAgKiAgIC4uLiwgdTMyXG4gICAqL1xuICBKdW1wRXEsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBWYWxpZGF0ZSB0aGF0IHRoZSB2YWx1ZSBhdCB0aGUgdG9wIG9mIHRoZSBzdGFja1xuICAgKiAgIGhhc24ndCBjaGFuZ2VkLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEFzc2VydFNhbWUpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPHUzMj4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPHUzMj5cbiAgICovXG4gIEFzc2VydFNhbWUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIHN0YWNrIGZyYW1lXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEZyYW1lKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAkcmEsICRmcFxuICAgKi9cbiAgUHVzaEZyYW1lLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFBvcCBhIHN0YWNrIGZyYW1lXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEZyYW1lKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgICRyYSwgJGZwIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUG9wRnJhbWUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBTdGFydCB0cmFja2luZyBhIG5ldyBvdXRwdXQgYmxvY2sgdGhhdCBjb3VsZCBjaGFuZ2VcbiAgICogICBpZiBvbmUgb2YgaXRzIGlucHV0cyBjaGFuZ2VzLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEVudGVyIGFyZ3M6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgU29vbiBhZnRlciB0aGlzIG9wY29kZSwgb25lIG9mIEp1bXAsIEp1bXBJZixcbiAgICogICBKdW1wVW5sZXNzLCBvciBKdW1wRXEgd2lsbCBwcm9kdWNlIGFuIHVwZGF0aW5nXG4gICAqICAgYXNzZXJ0aW9uLiBJZiB0aGF0IGFzc2VydGlvbiBmYWlscywgdGhlIGFwcGVuZGluZ1xuICAgKiAgIFZNIHdpbGwgYmUgcmUtZW50ZXJlZCwgYW5kIHRoZSBpbnN0cnVjdGlvbnMgZnJvbSBgZnJvbWBcbiAgICogICB0byBgdG9gIHdpbGwgYmUgZXhlY3V0ZWQuXG4gICAqXG4gICAqICAgVE9ETzogU2F2ZSBhbmQgcmVzdG9yZS5cbiAgICovXG4gIEVudGVyLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgRmluaXNoIHRyYWNraW5nIHRoZSBjdXJyZW50IGJsb2NrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEV4aXQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBUaGlzIGZpbmFsaXplcyB0aGUgdmFsaWRhdG9ycyB0aGF0IHRoZSB1cGRhdGluZ1xuICAgKiAgIGJsb2NrIG11c3QgY2hlY2sgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgaXQncyBzYWZlIHRvXG4gICAqICAgc2tpcCBydW5uaW5nIHRoZSBjb250ZW50cy5cbiAgICovXG4gIEV4aXQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQ29udmVydCB0aGUgdG9wIG9mIHRoZSBzdGFjayBpbnRvIGEgYm9vbGVhbiByZWZlcmVuY2UuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoVG9Cb29sZWFuKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxPcGFxdWU+IOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxib29sPlxuICAgKi9cbiAgVG9Cb29sZWFuLFxuXG4gIC8vLyBMSVNUU1xuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEVudGVyIGEgbGlzdC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChFbnRlckxpc3QgYWRkcmVzczp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBJdGVyYXRvciDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEVudGVyTGlzdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFeGl0IHRoZSBjdXJyZW50IGxpc3QuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRXhpdExpc3QpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRXhpdExpc3QsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBDb252ZXJ0IGFuIG9wZXJhbmQgYW5kIGtleSBpbnRvIGFuIGl0ZXJhdG9yIGFuZFxuICAgKiAgIHByZXNlbmNlIHJlZmVyZW5jZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXRJdGVyYXRvcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIGtleTpzdHJpbmcsIGxpc3Q6VmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi4sIGl0ZXJhdG9yOlJlZmVyZW5jZUl0ZXJhdG9yLCBwcmVzZW50OlByZXNlbmNlUmVmZXJlbmNlXG4gICAqL1xuICBQdXRJdGVyYXRvcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFNldCB1cCB0aGUgc3RhY2sgZm9yIGl0ZXJhdGluZyBmb3IgYSBnaXZlbiBrZXksXG4gICAqICAgb3IganVtcCB0byBgZW5kYCBpZiB0aGVyZSBpcyBub3RoaW5nIGxlZnQgdG9cbiAgICogICBpdGVyYXRlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEl0ZXJhdGUgZW5kOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICBGb3JtIDE6IChzb21ldGhpbmcgdG8gaXRlcmF0ZSlcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlLCBzdHJpbmdcbiAgICogICBGb3JtIDI6IChub3RoaW5nIGxlZnQgdG8gaXRlcmF0ZSlcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIEluIEZvcm0gMSwgdGhlIHN0YWNrIHdpbGwgaGF2ZSAoaW4gcmV2ZXJzZSBvcmRlcik6XG4gICAqXG4gICAqICAgLSB0aGUga2V5LCBhcyBhIHN0cmluZ1xuICAgKiAgIC0gdGhlIGN1cnJlbnQgaXRlcmF0ZWQgdmFsdWVcbiAgICogICAtIHRoZSBtZW1vaXplZCBpdGVyYXRlZCB2YWx1ZVxuICAgKi9cbiAgSXRlcmF0ZSxcblxuICAvLy8gQ09NUE9ORU5UU1xuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFRlc3Qgd2hldGhlciBhIHJlZmVyZW5jZSBjb250YWlucyBhIGNvbXBvbmVudCBkZWZpbml0aW9uLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE1haW4gc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBJbnZvY2F0aW9uLCBDb21wb25lbnREZWZpbml0aW9uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgTWFpbixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBUZXN0IHdoZXRoZXIgYSByZWZlcmVuY2UgY29udGFpbnMgYSBjb21wb25lbnQgZGVmaW5pdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJc0NvbXBvbmVudClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8Ym9vbGVhbj5cbiAgICovXG4gIElzQ29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggdGhlIGNvbnRlbnQgdHlwZSBvbnRvIHRoZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChDb250ZW50VHlwZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxDb250ZW50VHlwZT5cbiAgICovXG4gIENvbnRlbnRUeXBlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEN1cnJ5IGEgY29tcG9uZW50IGRlZmluaXRpb24gZm9yIGEgbGF0ZXIgaW52b2NhdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChDdXJyeUNvbXBvbmVudCB0ZW1wbGF0ZU1ldGE6I0xvY2F0b3IpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHMg4oaSXG4gICAqICAgLi4uLCB7IFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIExvY2F0b3IsIENhcHR1cmVkQXJndW1lbnRzIH1cbiAgICovXG4gIEN1cnJ5Q29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYW4gYXBwcm9wcmlhdGUgY29tcG9uZW50IG1hbmFnZXIgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaENvbXBvbmVudE1hbmFnZXIgI0NvbXBvbmVudFNwZWMpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgeyBDb21wb25lbnREZWZpbml0aW9uLCBDb21wb25lbnRNYW5hZ2VyIH1cbiAgICovXG4gIFB1c2hDb21wb25lbnREZWZpbml0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUHVzaGVzIHRoZSBDb21wb25lbnRJbnN0YW5jZSBvbnRvIHRoZSBzdGFjayB0aGF0IGlzXG4gICAqICAgdXNlZCBkdXJpbmcgdGhlIGludm9rZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoRHluYW1pY0NvbXBvbmVudEluc3RhbmNlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgQ29tcG9uZW50RGVmaW5pdGlvbiDihpJcbiAgICogICAuLi4sIHsgQ29tcG9uZW50RGVmaW5pdGlvbiwgbWFuYWdlcjogbnVsbCwgbGF5b3V0OiBudWxsLCBzdGF0ZTogbnVsbCwgaGFuZGxlOiBudWxsLCB0YWJsZTogbnVsbCB9XG4gICAqL1xuXG4gIFB1c2hEeW5hbWljQ29tcG9uZW50SW5zdGFuY2UsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoZXMgYSBjdXJyaWVkIGNvbXBvbmVudCBkZWZpbml0aW9uIG9uIHRvIHRoZSBzdGFja1xuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hDdXJyaWVkQ29tcG9uZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxPcGFxdWU+IOKGklxuICAgKiAgIC4uLiwgQ29tcG9uZW50RGVmaW5pdGlvblxuICAgKi9cbiAgUHVzaEN1cnJpZWRDb21wb25lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIGEgcmVzb2x2ZWQgY29tcG9uZW50IGRlZmluaXRpb24gb250byB0aGUgc3RhY2tcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChSZXNvbHZlRHluYW1pY0NvbXBvbmVudCB0ZW1wbGF0ZU1ldGE6I0xvY2F0b3IpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPE9wYXF1ZT4g4oaSXG4gICAqICAgLi4uLCBDb21wb25lbnREZWZpbml0aW9uXG4gICAqL1xuICBSZXNvbHZlRHluYW1pY0NvbXBvbmVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgdXNlciByZXByZXNlbnRhdGlvbiBvZiBhcmdzIG9udG8gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hBcmdzIG5hbWVzOiNBcnJheTwjc3RyaW5nPiBwb3NpdGlvbmFsQ291bnQ6dTMyIHN5bnRoZXRpYzojYm9vbGVhbilcbiAgICpcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0gIOKGklxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSwgQXJndW1lbnRzXG4gICAqXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIFRoaXMgYXJndW1lbnRzIG9iamVjdCBpcyBvbmx5IG5lY2Vzc2FyeSB3aGVuIGNhbGxpbmcgaW50b1xuICAgKiAgIHVzZXItc3BlY2lmaWVkIGhvb2tzLiBJdCBpcyBtZWFudCB0byBiZSBpbXBsZW1lbnRlZCBhcyBhXG4gICAqICAgdHJhbnNpZW50IHByb3h5IHRoYXQgcmVhZHMgaW50byB0aGUgc3RhY2sgYXMgbmVlZGVkLlxuICAgKiAgIEhvbGRpbmcgb250byB0aGUgQXJndW1lbnRzIGFmdGVyIHRoZSBjYWxsIGhhcyBjb21wbGV0ZWQgaXNcbiAgICogICBpbGxlZ2FsLlxuICAgKi9cbiAgUHVzaEFyZ3MsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBlbXB0eSBhcmdzIG9udG8gdGhlIHN0YWNrXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRW1wdHlBcmdzKVxuICAgKlxuICAgKiBPcGVyYW5kU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgQXJndW1lbnRzXG4gICAqL1xuICBQdXNoRW1wdHlBcmdzLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFBvcHMgQXJndW1lbnRzIGZyb20gdGhlIHN0YWNrIGFuZCBjbGVhcnMgdGhlIG5leHQgTiBhcmdzLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFBvcEFyZ3MpXG4gICAqXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHMgIOKGklxuICAgKiAgIC4uLlxuICAgKlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogVGhlIGFyZ3VtZW50cyBvYmplY3QgY29udGFpbnMgdGhlIGluZm9ybWF0aW9uIG9mIGhvdyBtYW55IHVzZXJcbiAgICogc3VwcGxpZWQgYXJncyB0aGUgY29tcG9uZW50IHdhcyBpbnZva2VkIHdpdGguIFRvIGNsZWFyIHRoZW0gZnJvbVxuICAgKiB0aGUgc3RhY2sgd2UgbXVzdCBwb3AgaXQgZnJvbSB0aGUgc3RhY2sgYW5kIGNhbGwgYGNsZWFyYCBvbiBpdFxuICAgKiB0byByZW1vdmUgdGhlIGFyZ3VtZW50IHZhbHVlcyBmcm9tIHRoZSBzdGFjay5cbiAgICovXG4gIFBvcEFyZ3MsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogLi4uXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHJlcGFyZUFyZ3Mgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUHJlcGFyZUFyZ3MsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUmVwbGFjZXMgQXJndW1lbnRzIG9uIHRoZSBzdGFjayB3aXRoIENhcHR1cmVkQXJndW1lbnRzXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ2FwdHVyZUFyZ3MpXG4gICAqXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBBcmd1bWVudHMgIOKGklxuICAgKiAgIC4uLiwgQ2FwdHVyZWRBcmd1bWVudHNcbiAgICpcbiAgICogRGVzY3JpcHRpb246XG4gICAqIFRoZSBBcmd1bWVudHMgb2JqZWN0IGlzIG11dGF0ZWQgaW4gcGxhY2UgYmVjYXVzZSBpdCBpcyB1c3VhbGx5IGNvbnN1bWVkIGltbWVkaWF0ZWx5XG4gICAqIGFmdGVyIGJlaW5nIHB1c2hlZCBvbiB0byB0aGUgc3RhY2suIEluIHNvbWUgc2l0dWF0aW9ucywgc3VjaCBhcyB3aXRoIGN1cnJpZWQgY29tcG9uZW50cyxcbiAgICogaW5mb3JtYXRpb24gYWJvdXQgbW9yZSB0aGFuIG9uZSBBcmd1bWVudCBtYXkgbmVlZCB0byBleGlzdCBvbiB0aGUgc3RhY2sgYXQgb25jZS4gSW4gdGhvc2VcbiAgICogY2FzZXMsIHRoZSBDYXB0dXJlQXJncyBpbnN0cnVjdGlvbiBwb3BzIGFuIEFyZ3VtZW50cyBvYmplY3Qgb2ZmIHRoZSBzdGFjayBhbmQgcmVwbGFjZXMgaXRcbiAgICogd2l0aCB0aGUgaW1tdXRhYmxlIENhcHR1cmVkQXJncyBzbmFwc2hvdC5cbiAgICovXG4gIENhcHR1cmVBcmdzLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENyZWF0ZSB0aGUgY29tcG9uZW50IGFuZCBwdXNoIGl0IG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENyZWF0ZUNvbXBvbmVudCBmbGFnczp1MzIgc3RhdGU6cmVnaXN0ZXIpXG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICBGbGFnczpcbiAgICpcbiAgICogICAqIDBiMDAxOiBIYXMgYSBkZWZhdWx0IGJsb2NrXG4gICAqICAgKiAwYjAxMDogSGFzIGFuIGludmVyc2UgYmxvY2tcbiAgICovXG4gIENyZWF0ZUNvbXBvbmVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBSZWdpc3RlciBhIGRlc3RydWN0b3IgZm9yIHRoZSBjdXJyZW50IGNvbXBvbmVudFxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFJlZ2lzdGVyQ29tcG9uZW50RGVzdHJ1Y3RvciBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBSZWdpc3RlckNvbXBvbmVudERlc3RydWN0b3IsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIG5ldyBFbGVtZW50T3BlcmF0aW9ucyBmb3IgdGhlIGN1cnJlbnQgY29tcG9uZW50LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1dENvbXBvbmVudE9wZXJhdGlvbnMpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUHV0Q29tcG9uZW50T3BlcmF0aW9ucyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIHRoZSBjb21wb25lbnQncyBgc2VsZmAgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoR2V0Q29tcG9uZW50U2VsZiBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBHZXRDb21wb25lbnRTZWxmLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggdGhlIGNvbXBvbmVudCdzIGBzZWxmYCBvbnRvIHRoZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChHZXRDb21wb25lbnRUYWdOYW1lIHN0YXRlOnJlZ2lzdGVyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIE9wdGlvbjxzdHJpbmc+XG4gICAqL1xuICBHZXRDb21wb25lbnRUYWdOYW1lLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEdldCB0aGUgY29tcG9uZW50IGxheW91dCBmcm9tIHRoZSBtYW5hZ2VyLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldENvbXBvbmVudExheW91dCBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBQcm9ncmFtU3ltYm9sVGFibGUsIEhhbmRsZVxuICAgKi9cbiAgR2V0Q29tcG9uZW50TGF5b3V0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUG9wdWxhdGUgdGhlIHN0YXRlIHJlZ2lzdGVyIHdpdGggdGhlIGxheW91dCBjdXJyZW50bHlcbiAgICogICBvbiB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUG9wdWxhdGVMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBQcm9ncmFtU3ltYm9sVGFibGUsIEhhbmRsZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFBvcHVsYXRlTGF5b3V0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSB0aGUgbGF5b3V0IHJldHVybmVkIGJ5IHRoZSBtYW5hZ2VyLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEludm9rZUNvbXBvbmVudExheW91dCBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBJbnZva2VDb21wb25lbnRMYXlvdXQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQmVnaW4gYSBuZXcgY2FjaGUgZ3JvdXBcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChCZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgQ29tcG9uZW50TWFuYWdlcjxUPiwgVCDihpJcbiAgICogICAuLi4sIENvbXBvbmVudE1hbmFnZXI8VD4sIFRcbiAgICovXG4gIEJlZ2luQ29tcG9uZW50VHJhbnNhY3Rpb24sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQ29tbWl0IHRoZSBjdXJyZW50IGNhY2hlIGdyb3VwXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tbWl0Q29tcG9uZW50VHJhbnNhY3Rpb24pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgQ29tbWl0Q29tcG9uZW50VHJhbnNhY3Rpb24sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogSW52b2tlIGRpZENyZWF0ZUVsZW1lbnQgb24gdGhlIGN1cnJlbnQgY29tcG9uZW50IG1hbmFnZXJcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEaWRDcmVhdGVFbGVtZW50IHN0YXRlOnJlZ2lzdGVyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIERpZENyZWF0ZUVsZW1lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogSW52b2tlIGRpZFJlbmRlckxheW91dCBvbiB0aGUgY3VycmVudCBjb21wb25lbnQgbWFuYWdlclxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKERpZFJlbmRlckxheW91dCBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRGlkUmVuZGVyTGF5b3V0LFxuXG4gIC8vLyBQQVJUSUFMU1xuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IExvb2t1cCBhbmQgaW52b2tlIGEgcGFydGlhbCB0ZW1wbGF0ZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VQYXJ0aWFsIHRlbXBsYXRlTWV0YTojTG9jYXRvciBzeW1ib2xzOiNBcnJheTwjc3RyaW5nPiBldmFsSW5mbzojQXJyYXk8bnVtYmVyPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8c3RyaW5nPiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEludm9rZVBhcnRpYWwsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBSZXNvbHZlIHt7Zm9vfX0gaW5zaWRlIGEgcGFydGlhbCwgd2hpY2ggY291bGQgYmUgZWl0aGVyIGEgc2VsZi1sb29rdXBcbiAgICogICBvciBhIGxvY2FsIHZhcmlhYmxlIHRoYXQgaXMgaW4tc2NvcGUgZm9yIHRoZSBjYWxsZXIuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmVzb2x2ZU1heWJlTG9jYWwgbG9jYWw6I3N0cmluZylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBSZXNvbHZlTWF5YmVMb2NhbCxcblxuICAvLy8gREVCVUdHRVJcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBY3RpdmF0ZSB0aGUgZGVidWdnZXJcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEZWJ1Z2dlciBzeW1ib2xzOiNBcnJheTxzdHJpbmc+IGV2YWxJbmZvOiNBcnJheTxudW1iZXI+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIERlYnVnZ2VyLFxuXG4gIC8qKiBUaGUgc2l6ZSBvZiB0aGUgb3Bjb2RlIGxpc3QgKi9cbiAgU2l6ZVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Bjb2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZtL2xpYi9vcGNvZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBPcCB7XG4gIC8qXG4gICAgRG9jdW1lbnRhdGlvbiBUT0RPOlxuXG4gICAgRG9jdW1lbnQgdGhlIGxvY2FsIHZhcmlhYmxlIGxheW91dCBpbiB0aGUgc3RhY2tcbiAgICBkaWFncmFtIGJlZm9yZS1hbmQtYWZ0ZXIuXG5cbiAgICBEb2N1bWVudCB1cGRhdGluZyBvcGNvZGVzIGVtaXR0aW5nIGZyb20gdW5yZWFjaGFibGVcbiAgICBhcHBlbmQgb3Bjb2RlLlxuXG4gICAgRG9jdW1lbnQgdGhlIGVsZW1lbnQgc3RhY2ssIGJsb2NrIHN0YWNrIGFuZCBMaXN0XG4gICAgYmxvY2sgc3RhY2suXG4gICAqL1xuXG4gIC8qKlxuICAgKiBUaGlzIG9wY29kZSBzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZC5cbiAgICovXG4gIEJ1ZyxcblxuICAvLy8gRVhQUkVTU0lPTlNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFdmFsdWF0ZSBhIEhlbHBlci5cbiAgICogRm9ybWF0OlxuICAgKiAgIChIZWxwZXIgaGVscGVyOiNGdW5jdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cyDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2VcbiAgICovXG4gIEhlbHBlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIHZhcmlhYmxlIHJlcHJlc2VudGVkIGJ5IGEgc3ltYm9sIGZyb21cbiAgICogICB0aGUgdmFsdWUgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoU2V0VmFyaWFibGUgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBTZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIGJsb2NrIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFNldEJsb2NrIHN5bWJvbDp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBTeW1ib2xUYWJsZSwgSGFuZGxlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgU2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIHRoZSBjb250ZW50cyBvZiB0aGUgdmFyaWFibGUgcmVwcmVzZW50ZWQgYnlcbiAgICogICBhIHN5bWJvbCAoYSBwb3NpdGlvbmFsIG9yIG5hbWVkIGFyZ3VtZW50KSBvbnRvXG4gICAqICAgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hTeW1ib2wgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBHZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgZnJvbSB0aGUgdG9wIG9mIHRoZVxuICAgKiAgIHN0YWNrLCBhbmQgcHVzaCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgY29uc3RydWN0ZWRcbiAgICogICBieSBgLmdldChwcm9wZXJ0eSlgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldFByb3BlcnR5IHByb3BlcnR5OiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0UHJvcGVydHksXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCB0aGUgc3BlY2lmaWVkIGJvdW5kIGJsb2NrIG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldEJsb2NrIGJsb2NrOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBJbmxpbmVCbG9ja1xuICAgKi9cbiAgR2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIFRSVUUgb250byB0aGUgc3RhY2sgaWYgdGhlIHNwZWNpZmllZCBibG9ja1xuICAgKiAgIGlzIGJvdW5kIGFuZCBGQUxTRSBpZiBpdCBpcyBub3QuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2sgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIGJvb2xlYW5cbiAgICovXG4gIEhhc0Jsb2NrLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUHVzaCBUUlVFIG9udG8gdGhlIHN0YWNrIGlmIHRoZSBzcGVjaWZpZWQgYmxvY2tcbiAgICogICBpcyBib3VuZCAqYW5kKiBoYXMgYXQgbGVhc3Qgb25lIHNwZWNpZmllZCBmb3JtYWxcbiAgICogICBwYXJhbWV0ZXIsIGFuZCBGQUxTRSBvdGhlcndpc2UuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2tQYXJhbXMgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgKGJvb2xlYW4pXG4gICAqL1xuICBIYXNCbG9ja1BhcmFtcyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBjb3VudCBgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZWBzIG9mZiB0aGUgc3RhY2sgYW5kXG4gICAqICAgY29uc3RydWN0IGEgbmV3IENvbmNhdFJlZmVyZW5jZSBmcm9tIHRoZW0gKGluIHJldmVyc2VcbiAgICogICBvcmRlcikuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29uY2F0IGNvdW50OnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0g4oaSXG4gICAqICAgLi4uLCBDb25jYXRSZWZlcmVuY2VcbiAgICovXG4gIENvbmNhdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFB1c2ggYW4gT2JqZWN0IGNvbnN0YW50IG9udG8gdGhlIHN0YWNrIHRoYXQgaXMgbm90XG4gICAqICAgYSBKYXZhU2NyaXB0IHByaW1pdGl2ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoQ29uc3RhbnQgY29uc3RhbnQ6I09iamVjdClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBPcGFxdWVcbiAgICovXG4gIENvbnN0YW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgV3JhcCBhIEphdmFTY3JpcHQgcHJpbWl0aXZlIGluIGEgcmVmZXJlbmNlIGFuZCBwdXNoIGl0XG4gICAqICAgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaFByaW1pdGl2ZSBjb25zdGFudDojUHJpbWl0aXZlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFByaW1pdGl2ZVxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBUaGUgdHdvIGhpZ2ggYml0cyBvZiB0aGUgY29uc3RhbnQgcmVmZXJlbmNlIGRlc2NyaWJlXG4gICAqICAgdGhlIGtpbmQgb2YgcHJpbWl0aXZlOlxuICAgKlxuICAgKiAgIDAwOiBudW1iZXJcbiAgICogICAwMTogc3RyaW5nXG4gICAqICAgMTA6IHRydWUgfCBmYWxzZSB8IG51bGwgfCB1bmRlZmluZWRcbiAgICovXG4gIFByaW1pdGl2ZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb252ZXJ0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGludG8gYSBwcmltaXRpdmUgcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFByaW1pdGl2ZVJlZmVyZW5jZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFByaW1pdGl2ZSDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8UHJpbWl0aXZlPlxuICAgKi9cbiAgUHJpbWl0aXZlUmVmZXJlbmNlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IER1cGxpY2F0ZSBhbmQgcHVzaCBpdGVtIGZyb20gYW4gb2Zmc2V0IGluIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChEdXAgcmVnaXN0ZXI6dTMyLCBvZmZzZXQ6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgT3BhcXVlIOKGklxuICAgKiAgIC4uLiwgT3BhcXVlLCBPcGFxdWVcbiAgICovXG4gIER1cCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQb3AgTiBpdGVtcyBvZmYgdGhlIHN0YWNrIGFuZCB0aHJvdyBhd2F5IHRoZSB2YWx1ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQb3ApXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBPcGFxdWUsIC4uLiwgT3BhcXVlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUG9wLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IExvYWQgYSB2YWx1ZSBpbnRvIGEgcmVnaXN0ZXJcbiAgICogRm9ybWF0OlxuICAgKiAgIChMb2FkIHJlZ2lzdGVyOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIE9wYXF1ZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIExvYWQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRmV0Y2ggYSB2YWx1ZSBmcm9tIGEgcmVnaXN0ZXJcbiAgICogRm9ybWF0OlxuICAgKiAgIChGZXRjaCByZWdpc3Rlcjp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgT3BhcXVlXG4gICAqL1xuICBGZXRjaCxcblxuICAvLy8gUFJFTFVERSAmIEVYSVRcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgbmV3IHJvb3Qgc2NvcGUgb250byB0aGUgc2NvcGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUm9vdFNjb3BlIHN5bWJvbHM6dTMyIGJpbmRDYWxsZXJTY29wZTpib29sKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgQSByb290IHNjb3BlIGhhcyBubyBwYXJlbnQgc2NvcGUsIGFuZCB0aGVyZWZvcmUgaW5oZXJpdHMgbm8gbGV4aWNhbFxuICAgKiAgIHZhcmlhYmxlcy4gSWYgYGJpbmRDYWxsZXJTY29wZWAgaXMgYHRydWVgLCB0aGUgY3VycmVudCBzY29wZSByZW1lbWJlcnNcbiAgICogICB0aGUgY2FsbGVyIHNjb3BlIChmb3IgeWllbGRpbmcgYmxvY2tzKS5cbiAgICovXG4gIFJvb3RTY29wZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgbmV3IGNoaWxkIHNjb3BlIG9udG8gdGhlIHNjb3BlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENoaWxkU2NvcGUpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBBIGNoaWxkIHNjb3BlIGluaGVyaXRzIGZyb20gdGhlIGN1cnJlbnQgcGFyZW50IHNjb3BlLCBhbmQgdGhlcmVmb3JlXG4gICAqICAgc2hhcmVzIGl0cyBsZXhpY2FsIHZhcmlhYmxlcy5cbiAgICovXG4gIENoaWxkU2NvcGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUG9wIHRoZSBjdXJyZW50IHNjb3BlIGZyb20gdGhlIHNjb3BlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFBvcFNjb3BlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFBvcFNjb3BlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFJldHVybiB0byB0aGUgcHJldmlvdXMgZnJhbWUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmV0dXJuKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgYWRkcmVzczpudW1iZXIg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBSZXR1cm4sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUmV0dXJuIHRvIGEgcGxhY2UgaW4gdGhlIHByb2dyYW0gZ2l2ZW4gYW4gb2Zmc2V0XG4gICAqIEZvcm1hdDpcbiAgICogIChSZXR1cm5UbyBvZmZzZXQ6aTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgICAuLi4g4oaSXG4gICAqL1xuICBSZXR1cm5UbyxcblxuICAvLy8gSFRNTFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFwcGVuZCBhIFRleHQgbm9kZSB3aXRoIHZhbHVlIGBjb250ZW50c2BcbiAgICogRm9ybWF0OlxuICAgKiAgIChUZXh0IGNvbnRlbnRzOiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgVGV4dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBcHBlbmQgYSBDb21tZW50IG5vZGUgd2l0aCB2YWx1ZSBgY29udGVudHNgXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tbWVudCBjb250ZW50czojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbW1lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQXBwZW5kIGEgRHluYW1pYyBub2RlIGJhc2VkIG9uIC5cbiAgICogRm9ybWF0OlxuICAgKiAgIChEeW5hbWljQ29udGVudCBpc1RydXN0aW5nOmJvb2xlYW4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRHluYW1pY0NvbnRlbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogT3BlbiBhIG5ldyBFbGVtZW50IG5hbWVkIGB0YWdgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE9wZW5FbGVtZW50IHRhZzojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE9wZW5FbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgT3BlbiBhIG5ldyBFbGVtZW50IHdpdGggYSBuYW1lIG9uIHRoZSBzdGFjayBhbmQgd2l0aCBzcGVjaWFsXG4gICAqICAgb3BlcmF0aW9ucyBwcm92aWRlZCBvbiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoT3BlbkR5bmFtaWNFbGVtZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgc3RyaW5nLCBFbGVtZW50T3BlcmF0aW9ucyDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE9wZW5EeW5hbWljRWxlbWVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBZGQgYW4gYXR0cmlidXRlIHRvIHRoZSBjdXJyZW50IEVsZW1lbnQuXG4gICAqIEZvcm1hdDpcbiAgICogICAoU3RhdGljQXR0ciBuYW1lOiNzdHJpbmcgdmFsdWU6I3N0cmluZyBuYW1lc3BhY2U6T3B0aW9uPCNzdHJpbmc+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFN0YXRpY0F0dHIsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBBZGQgYW4gYXR0cmlidXRlIHRvIHRoZSBjdXJyZW50IGVsZW1lbnQgdXNpbmcgdGhlIHZhbHVlXG4gICAqICAgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRHluYW1pY0F0dHIgbmFtZTojc3RyaW5nIHRydXN0aW5nOmJvb2xlYW4gbmFtZXNwYWNlOk9wdGlvbjwjc3RyaW5nPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIElmIGB0cnVzdGluZ2AgaXMgZmFsc2UsIHRoZSBob3N0IG1heSBzYW5pdGl6ZSB0aGUgYXR0cmlidXRlXG4gICAqICAgYmFzZWQgdXBvbiBrbm93biByaXNrcy5cbiAgICovXG4gIER5bmFtaWNBdHRyLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgQWRkIGFuIGF0dHJpYnV0ZSB0byB0aGUgY3VycmVudCBlbGVtZW50IHVzaW5nIHRoZSB2YWx1ZVxuICAgKiAgIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENvbXBvbmVudEF0ciBuYW1lOiNzdHJpbmcgdHJ1c3Rpbmc6Ym9vbGVhbiBuYW1lc3BhY2U6T3B0aW9uPCNzdHJpbmc+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbXBvbmVudEF0dHIsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRmluaXNoIHNldHRpbmcgYXR0cmlidXRlcyBvbiB0aGUgY3VycmVudCBlbGVtZW50LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEZsdXNoRWxlbWVudClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBGbHVzaEVsZW1lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQ2xvc2UgdGhlIGN1cnJlbnQgZWxlbWVudC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChDbG9zZUVsZW1lbnQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgQ2xvc2VFbGVtZW50LFxuXG4gIC8vLyBNT0RJRklFUlxuICBNb2RpZmllciwgICAgICAgICAgICAgICAgICAvLyAoQ29uc3RhbnRTdHJpbmcsIENvbnN0YW50T3RoZXI8TW9kaWZpZXJNYW5hZ2VyPiwgQ29uc3RhbnRFeHByZXNzaW9uKVxuXG4gIC8vLyBXT1JNSE9MRVxuICBQdXNoUmVtb3RlRWxlbWVudCwgICAgICAgICAvLyAoKVxuICBQb3BSZW1vdGVFbGVtZW50LCAgICAgICAgICAvLyAoKVxuXG4gIC8vLyBEWU5BTUlDIFNDT1BFXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQmluZCBzdGFjayB2YWx1ZXMgYXMgZHluYW1pYyB2YXJpYWJsZXMuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQmluZER5bmFtaWNTY29wZSBuYW1lczojQXJyYXk8I3N0cmluZz4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBUaGlzIGlzIHVzZWQgdG8gZXhwb3NlIGAtd2l0aC1keW5hbWljLXZhcnNgLCBhbmQgaXMgYVxuICAgKiAgIG5pY2hlIGZlYXR1cmUuXG4gICAqL1xuICBCaW5kRHluYW1pY1Njb3BlLFxuXG4gIFB1c2hEeW5hbWljU2NvcGUsICAgICAgICAgIC8vICgpXG4gIFBvcER5bmFtaWNTY29wZSwgICAgICAgICAgIC8vICgpXG5cbiAgLy8vIFZNXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQ29tcGlsZSB0aGUgSW5saW5lQmxvY2sgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tcGlsZUJsb2NrKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgQ29tcGlsYWJsZUJsb2NrIOKGklxuICAgKiAgIC4uLiwgSGFuZGxlXG4gICAqL1xuICBDb21waWxlQmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIHNjb3BlIG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hCbG9ja1Njb3BlICNTY29wZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIOKGklxuICAgKiAgIC4uLiwgU2NvcGVcbiAgICovXG4gIFB1c2hCbG9ja1Njb3BlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSBzeW1ib2wgdGFibGUgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaFN5bWJvbFRhYmxlICNTeW1ib2xUYWJsZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIOKGklxuICAgKiAgIC4uLiwgU3ltYm9sVGFibGVcbiAgICovXG4gIFB1c2hTeW1ib2xUYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFdmFsdWF0ZSB0aGUgaGFuZGxlIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEludm9rZVZpcnR1YWwpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBIYW5kbGUsIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlVmlydHVhbCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFdmFsdWF0ZSB0aGUgaGFuZGxlLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEludm9rZVN0YXRpYyBoYW5kbGU6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEludm9rZVN0YXRpYyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBZaWVsZCB0byBhIGJsb2NrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEludm9rZVlpZWxkKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSwgQXJndW1lbnRzLCBTeW1ib2xUYWJsZSwgSGFuZGxlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlWWllbGQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogSnVtcCB0byB0aGUgc3BlY2lmaWVkIG9mZnNldC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChKdW1wIHRvOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBKdW1wLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgSnVtcCB0byB0aGUgc3BlY2lmaWVkIG9mZnNldCBpZiB0aGUgdmFsdWUgYXRcbiAgICogICB0aGUgdG9wIG9mIHRoZSBzdGFjayBpcyB0cnVlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEp1bXBJZiB0bzp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSnVtcElmLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgSnVtcCB0byB0aGUgc3BlY2lmaWVkIG9mZnNldCBpZiB0aGUgdmFsdWUgYXRcbiAgICogICB0aGUgdG9wIG9mIHRoZSBzdGFjayBpcyBmYWxzZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChKdW1wVW5sZXNzIHRvOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBKdW1wVW5sZXNzLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSBzdGFjayBmcmFtZVxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hGcmFtZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgJHJhLCAkZnBcbiAgICovXG4gIFB1c2hGcmFtZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQb3AgYSBzdGFjayBmcmFtZVxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hGcmFtZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAkcmEsICRmcCDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFBvcEZyYW1lLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgU3RhcnQgdHJhY2tpbmcgYSBuZXcgb3V0cHV0IGJsb2NrIHRoYXQgY291bGQgY2hhbmdlXG4gICAqICAgaWYgb25lIG9mIGl0cyBpbnB1dHMgY2hhbmdlcy5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChFbnRlciBhcmdzOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIFNvb24gYWZ0ZXIgdGhpcyBvcGNvZGUsIG9uZSBvZiBKdW1wLCBKdW1wSWYsXG4gICAqICAgb3IgSnVtcFVubGVzcyB3aWxsIHByb2R1Y2UgYW4gdXBkYXRpbmcgYXNzZXJ0aW9uLlxuICAgKiAgIElmIHRoYXQgYXNzZXJ0aW9uIGZhaWxzLCB0aGUgYXBwZW5kaW5nIFZNIHdpbGxcbiAgICogICBiZSByZS1lbnRlcmVkLCBhbmQgdGhlIGluc3RydWN0aW9ucyBmcm9tIGBmcm9tYFxuICAgKiAgIHRvIGB0b2Agd2lsbCBiZSBleGVjdXRlZC5cbiAgICpcbiAgICogICBUT0RPOiBTYXZlIGFuZCByZXN0b3JlLlxuICAgKi9cbiAgRW50ZXIsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBGaW5pc2ggdHJhY2tpbmcgdGhlIGN1cnJlbnQgYmxvY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRXhpdClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIFRoaXMgZmluYWxpemVzIHRoZSB2YWxpZGF0b3JzIHRoYXQgdGhlIHVwZGF0aW5nXG4gICAqICAgYmxvY2sgbXVzdCBjaGVjayB0byBkZXRlcm1pbmUgd2hldGhlciBpdCdzIHNhZmUgdG9cbiAgICogICBza2lwIHJ1bm5pbmcgdGhlIGNvbnRlbnRzLlxuICAgKi9cbiAgRXhpdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb252ZXJ0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGludG8gYSBib29sZWFuIHJlZmVyZW5jZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChUb0Jvb2xlYW4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPE9wYXF1ZT4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPGJvb2w+XG4gICAqL1xuICBUb0Jvb2xlYW4sXG5cbiAgLy8vIExJU1RTXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRW50ZXIgYSBsaXN0LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEVudGVyTGlzdCBhZGRyZXNzOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIEl0ZXJhdG9yIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRW50ZXJMaXN0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEV4aXQgdGhlIGN1cnJlbnQgbGlzdC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChFeGl0TGlzdClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBFeGl0TGlzdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIENvbnZlcnQgYW4gb3BlcmFuZCBhbmQga2V5IGludG8gYW4gaXRlcmF0b3IgYW5kXG4gICAqICAgcHJlc2VuY2UgcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1dEl0ZXJhdG9yKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwga2V5OnN0cmluZywgbGlzdDpWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLiwgaXRlcmF0b3I6UmVmZXJlbmNlSXRlcmF0b3IsIHByZXNlbnQ6UHJlc2VuY2VSZWZlcmVuY2VcbiAgICovXG4gIFB1dEl0ZXJhdG9yLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgU2V0IHVwIHRoZSBzdGFjayBmb3IgaXRlcmF0aW5nIGZvciBhIGdpdmVuIGtleSxcbiAgICogICBvciBqdW1wIHRvIGBlbmRgIGlmIHRoZXJlIGlzIG5vdGhpbmcgbGVmdCB0b1xuICAgKiAgIGl0ZXJhdGUuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSXRlcmF0ZSBlbmQ6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIEZvcm0gMTogKHNvbWV0aGluZyB0byBpdGVyYXRlKVxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIHN0cmluZ1xuICAgKiAgIEZvcm0gMjogKG5vdGhpbmcgbGVmdCB0byBpdGVyYXRlKVxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgSW4gRm9ybSAxLCB0aGUgc3RhY2sgd2lsbCBoYXZlIChpbiByZXZlcnNlIG9yZGVyKTpcbiAgICpcbiAgICogICAtIHRoZSBrZXksIGFzIGEgc3RyaW5nXG4gICAqICAgLSB0aGUgY3VycmVudCBpdGVyYXRlZCB2YWx1ZVxuICAgKiAgIC0gdGhlIG1lbW9pemVkIGl0ZXJhdGVkIHZhbHVlXG4gICAqL1xuICBJdGVyYXRlLFxuXG4gIC8vLyBDT01QT05FTlRTXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogVGVzdCB3aGV0aGVyIGEgcmVmZXJlbmNlIGNvbnRhaW5zIGEgY29tcG9uZW50IGRlZmluaXRpb24uXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoTWFpbiBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIEludm9jYXRpb24sIENvbXBvbmVudERlZmluaXRpb24g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBNYWluLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFRlc3Qgd2hldGhlciBhIHJlZmVyZW5jZSBjb250YWlucyBhIGNvbXBvbmVudCBkZWZpbml0aW9uLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKElzQ29tcG9uZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxPcGFxdWU+IOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxib29sZWFuPlxuICAgKi9cbiAgSXNDb21wb25lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQ3VycnkgYSBjb21wb25lbnQgZGVmaW5pdGlvbiBmb3IgYSBsYXRlciBpbnZvY2F0aW9uLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEN1cnJ5Q29tcG9uZW50IHRlbXBsYXRlTWV0YTojVGVtcGxhdGVNZXRhKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSwgQXJndW1lbnRzIOKGklxuICAgKiAgIC4uLiwgeyBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlLCBUZW1wbGF0ZU1ldGEsIENhcHR1cmVkQXJndW1lbnRzIH1cbiAgICovXG4gIEN1cnJ5Q29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYW4gYXBwcm9wcmlhdGUgY29tcG9uZW50IG1hbmFnZXIgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaENvbXBvbmVudE1hbmFnZXIgI0NvbXBvbmVudFNwZWMpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgeyBDb21wb25lbnREZWZpbml0aW9uLCBDb21wb25lbnRNYW5hZ2VyIH1cbiAgICovXG4gIFB1c2hDb21wb25lbnREZWZpbml0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUHVzaGVzIHRoZSBDb21wb25lbnRJbnN0YW5jZSBvbnRvIHRoZSBzdGFjayB0aGF0IGlzXG4gICAqICAgdXNlZCBkdXJpbmcgdGhlIGludm9rZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoRHluYW1pY0NvbXBvbmVudEluc3RhbmNlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgQ29tcG9uZW50RGVmaW5pdGlvbiDihpJcbiAgICogICAuLi4sIHsgQ29tcG9uZW50RGVmaW5pdGlvbiwgbWFuYWdlcjogbnVsbCwgbGF5b3V0OiBudWxsLCBzdGF0ZTogbnVsbCwgaGFuZGxlOiBudWxsLCB0YWJsZTogbnVsbCB9XG4gICAqL1xuXG4gIFB1c2hEeW5hbWljQ29tcG9uZW50SW5zdGFuY2UsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoZXMgYSBjdXJyaWVkIGNvbXBvbmVudCBkZWZpbml0aW9uIG9uIHRvIHRoZSBzdGFja1xuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hDdXJyaWVkQ29tcG9uZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxPcGFxdWU+IOKGklxuICAgKiAgIC4uLiwgQ29tcG9uZW50RGVmaW5pdGlvblxuICAgKi9cbiAgUHVzaEN1cnJpZWRDb21wb25lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIGEgcmVzb2x2ZWQgY29tcG9uZW50IGRlZmluaXRpb24gb250byB0aGUgc3RhY2tcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChSZXNvbHZlRHluYW1pY0NvbXBvbmVudCB0ZW1wbGF0ZU1ldGE6I1RlbXBsYXRlTWV0YSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiDihpJcbiAgICogICAuLi4sIENvbXBvbmVudERlZmluaXRpb25cbiAgICovXG4gIFJlc29sdmVEeW5hbWljQ29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSB1c2VyIHJlcHJlc2VudGF0aW9uIG9mIGFyZ3Mgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEFyZ3MgbmFtZXM6I0FycmF5PCNzdHJpbmc+IHBvc2l0aW9uYWxDb3VudDp1MzIgc3ludGhldGljOiNib29sZWFuKVxuICAgKlxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSAg4oaSXG4gICAqICAgLi4uLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHNcbiAgICpcbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgVGhpcyBhcmd1bWVudHMgb2JqZWN0IGlzIG9ubHkgbmVjZXNzYXJ5IHdoZW4gY2FsbGluZyBpbnRvXG4gICAqICAgdXNlci1zcGVjaWZpZWQgaG9va3MuIEl0IGlzIG1lYW50IHRvIGJlIGltcGxlbWVudGVkIGFzIGFcbiAgICogICB0cmFuc2llbnQgcHJveHkgdGhhdCByZWFkcyBpbnRvIHRoZSBzdGFjayBhcyBuZWVkZWQuXG4gICAqICAgSG9sZGluZyBvbnRvIHRoZSBBcmd1bWVudHMgYWZ0ZXIgdGhlIGNhbGwgaGFzIGNvbXBsZXRlZCBpc1xuICAgKiAgIGlsbGVnYWwuXG4gICAqL1xuICBQdXNoQXJncyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQb3BzIEFyZ3VtZW50cyBmcm9tIHRoZSBzdGFjayBhbmQgY2xlYXJzIHRoZSBuZXh0IE4gYXJncy5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQb3BBcmdzKVxuICAgKlxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSwgQXJndW1lbnRzICDihpJcbiAgICogICAuLi5cbiAgICpcbiAgICogRGVzY3JpcHRpb246XG4gICAqIFRoZSBhcmd1bWVudHMgb2JqZWN0IGNvbnRhaW5zIHRoZSBpbmZvcm1hdGlvbiBvZiBob3cgbWFueSB1c2VyXG4gICAqIHN1cHBsaWVkIGFyZ3MgdGhlIGNvbXBvbmVudCB3YXMgaW52b2tlZCB3aXRoLiBUbyBjbGVhciB0aGVtIGZyb21cbiAgICogdGhlIHN0YWNrIHdlIG11c3QgcG9wIGl0IGZyb20gdGhlIHN0YWNrIGFuZCBjYWxsIGBjbGVhcmAgb24gaXRcbiAgICogdG8gcmVtb3ZlIHRoZSBhcmd1bWVudCB2YWx1ZXMgZnJvbSB0aGUgc3RhY2suXG4gICAqL1xuICBQb3BBcmdzLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IC4uLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFByZXBhcmVBcmdzIHN0YXRlOnJlZ2lzdGVyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFByZXBhcmVBcmdzLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFJlcGxhY2VzIEFyZ3VtZW50cyBvbiB0aGUgc3RhY2sgd2l0aCBDYXB0dXJlZEFyZ3VtZW50c1xuICAgKiBGb3JtYXQ6XG4gICAqICAgKENhcHR1cmVBcmdzKVxuICAgKlxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgQXJndW1lbnRzICDihpJcbiAgICogICAuLi4sIENhcHR1cmVkQXJndW1lbnRzXG4gICAqXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiBUaGUgQXJndW1lbnRzIG9iamVjdCBpcyBtdXRhdGVkIGluIHBsYWNlIGJlY2F1c2UgaXQgaXMgdXN1YWxseSBjb25zdW1lZCBpbW1lZGlhdGVseVxuICAgKiBhZnRlciBiZWluZyBwdXNoZWQgb24gdG8gdGhlIHN0YWNrLiBJbiBzb21lIHNpdHVhdGlvbnMsIHN1Y2ggYXMgd2l0aCBjdXJyaWVkIGNvbXBvbmVudHMsXG4gICAqIGluZm9ybWF0aW9uIGFib3V0IG1vcmUgdGhhbiBvbmUgQXJndW1lbnQgbWF5IG5lZWQgdG8gZXhpc3Qgb24gdGhlIHN0YWNrIGF0IG9uY2UuIEluIHRob3NlXG4gICAqIGNhc2VzLCB0aGUgQ2FwdHVyZUFyZ3MgaW5zdHJ1Y3Rpb24gcG9wcyBhbiBBcmd1bWVudHMgb2JqZWN0IG9mZiB0aGUgc3RhY2sgYW5kIHJlcGxhY2VzIGl0XG4gICAqIHdpdGggdGhlIGltbXV0YWJsZSBDYXB0dXJlZEFyZ3Mgc25hcHNob3QuXG4gICAqL1xuICBDYXB0dXJlQXJncyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDcmVhdGUgdGhlIGNvbXBvbmVudCBhbmQgcHVzaCBpdCBvbnRvIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChDcmVhdGVDb21wb25lbnQgZmxhZ3M6dTMyIHN0YXRlOnJlZ2lzdGVyKVxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgRmxhZ3M6XG4gICAqXG4gICAqICAgKiAwYjAwMTogSGFzIGEgZGVmYXVsdCBibG9ja1xuICAgKiAgICogMGIwMTA6IEhhcyBhbiBpbnZlcnNlIGJsb2NrXG4gICAqL1xuICBDcmVhdGVDb21wb25lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUmVnaXN0ZXIgYSBkZXN0cnVjdG9yIGZvciB0aGUgY3VycmVudCBjb21wb25lbnRcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChSZWdpc3RlckNvbXBvbmVudERlc3RydWN0b3Igc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUmVnaXN0ZXJDb21wb25lbnREZXN0cnVjdG9yLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSBuZXcgRWxlbWVudE9wZXJhdGlvbnMgZm9yIHRoZSBjdXJyZW50IGNvbXBvbmVudC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXRDb21wb25lbnRPcGVyYXRpb25zKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFB1dENvbXBvbmVudE9wZXJhdGlvbnMsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCB0aGUgY29tcG9uZW50J3MgYHNlbGZgIG9udG8gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldENvbXBvbmVudFNlbGYgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0Q29tcG9uZW50U2VsZixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIHRoZSBjb21wb25lbnQncyBgc2VsZmAgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoR2V0Q29tcG9uZW50VGFnTmFtZSBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBPcHRpb248c3RyaW5nPlxuICAgKi9cbiAgR2V0Q29tcG9uZW50VGFnTmFtZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBHZXQgdGhlIGNvbXBvbmVudCBsYXlvdXQgZnJvbSB0aGUgbWFuYWdlci5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChHZXRDb21wb25lbnRMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgUHJvZ3JhbVN5bWJvbFRhYmxlLCBIYW5kbGVcbiAgICovXG4gIEdldENvbXBvbmVudExheW91dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcHVsYXRlIHRoZSBzdGF0ZSByZWdpc3RlciB3aXRoIHRoZSBsYXlvdXQgY3VycmVudGx5XG4gICAqICAgb24gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFBvcHVsYXRlTGF5b3V0IHN0YXRlOnJlZ2lzdGVyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgUHJvZ3JhbVN5bWJvbFRhYmxlLCBIYW5kbGUg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBQb3B1bGF0ZUxheW91dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBJbnZva2UgdGhlIGxheW91dCByZXR1cm5lZCBieSB0aGUgbWFuYWdlci5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VDb21wb25lbnRMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlQ29tcG9uZW50TGF5b3V0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEJlZ2luIGEgbmV3IGNhY2hlIGdyb3VwXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQmVnaW5Db21wb25lbnRUcmFuc2FjdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIENvbXBvbmVudE1hbmFnZXI8VD4sIFQg4oaSXG4gICAqICAgLi4uLCBDb21wb25lbnRNYW5hZ2VyPFQ+LCBUXG4gICAqL1xuICBCZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbW1pdCB0aGUgY3VycmVudCBjYWNoZSBncm91cFxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSBkaWRDcmVhdGVFbGVtZW50IG9uIHRoZSBjdXJyZW50IGNvbXBvbmVudCBtYW5hZ2VyXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRGlkQ3JlYXRlRWxlbWVudCBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBEaWRDcmVhdGVFbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSBkaWRSZW5kZXJMYXlvdXQgb24gdGhlIGN1cnJlbnQgY29tcG9uZW50IG1hbmFnZXJcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEaWRSZW5kZXJMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCDihpJcbiAgICogICAuLi5cbiAgICovXG4gIERpZFJlbmRlckxheW91dCxcblxuICAvLy8gUEFSVElBTFNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBMb29rdXAgYW5kIGludm9rZSBhIHBhcnRpYWwgdGVtcGxhdGUuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlUGFydGlhbCB0ZW1wbGF0ZU1ldGE6I1RlbXBsYXRlTWV0YSBzeW1ib2xzOiNBcnJheTwjc3RyaW5nPiBldmFsSW5mbzojQXJyYXk8bnVtYmVyPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8c3RyaW5nPiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEludm9rZVBhcnRpYWwsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBSZXNvbHZlIHt7Zm9vfX0gaW5zaWRlIGEgcGFydGlhbCwgd2hpY2ggY291bGQgYmUgZWl0aGVyIGEgc2VsZi1sb29rdXBcbiAgICogICBvciBhIGxvY2FsIHZhcmlhYmxlIHRoYXQgaXMgaW4tc2NvcGUgZm9yIHRoZSBjYWxsZXIuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmVzb2x2ZU1heWJlTG9jYWwgbG9jYWw6I3N0cmluZylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBSZXNvbHZlTWF5YmVMb2NhbCxcblxuICAvLy8gREVCVUdHRVJcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBY3RpdmF0ZSB0aGUgZGVidWdnZXJcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEZWJ1Z2dlciBzeW1ib2xzOiNBcnJheTxzdHJpbmc+IGV2YWxJbmZvOiNBcnJheTxudW1iZXI+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIERlYnVnZ2VyLFxuXG4gIC8qKiBUaGUgc2l6ZSBvZiB0aGUgb3Bjb2RlIGxpc3QgKi9cbiAgU2l6ZVxufVxuIl19

@@ -17,3 +17,3 @@ import { Op } from "./opcodes";

export declare type DebugBeforeFunction = (opcode: Opcode, vm: VM) => Opaque;
export declare type OperandType = 'handle' | 'i32' | 'to' | 'str' | 'option-str' | 'str-array' | 'array' | 'bool' | 'primitive' | 'table' | 'symbol' | 'block' | 'register' | 'serializable' | 'lazy-constant';
export declare type OperandType = 'handle' | 'i32' | 'str' | 'option-str' | 'str-array' | 'array' | 'bool' | 'primitive' | 'table' | 'symbol' | 'block' | 'register' | 'serializable' | 'lazy-constant';
export interface Operand {

@@ -20,0 +20,0 @@ type: OperandType;

@@ -144,12 +144,2 @@ export declare const enum Op {

/**
* Operation: Convert the top of the stack into a number.
*
* Format:
* (ReifyU32)
* Operand Stack:
* ..., VersionedPathReference<u32> →
* ..., VersionedPathReference<u32>, u32
*/
ReifyU32 = 13,
/**
* Operation: Duplicate and push item from an offset in the stack.

@@ -162,3 +152,3 @@ * Format:

*/
Dup = 14,
Dup = 13,
/**

@@ -172,3 +162,3 @@ * Operation: Pop N items off the stack and throw away the value.

*/
Pop = 15,
Pop = 14,
/**

@@ -182,3 +172,3 @@ * Operation: Load a value into a register

*/
Load = 16,
Load = 15,
/**

@@ -192,3 +182,3 @@ * Operation: Fetch a value from a register

*/
Fetch = 17,
Fetch = 16,
/**

@@ -207,3 +197,3 @@ * Operation: Push a new root scope onto the scope stack.

*/
RootScope = 18,
RootScope = 17,
/**

@@ -221,3 +211,3 @@ * Operation: Push a new child scope onto the scope stack.

*/
ChildScope = 19,
ChildScope = 18,
/**

@@ -231,3 +221,3 @@ * Operation: Pop the current scope from the scope stack.

*/
PopScope = 20,
PopScope = 19,
/**

@@ -241,3 +231,3 @@ * Operation: Return to the previous frame.

*/
Return = 21,
Return = 20,
/**

@@ -250,3 +240,3 @@ * Operation: Return to a place in the program given an offset

*/
ReturnTo = 22,
ReturnTo = 21,
/**

@@ -260,3 +250,3 @@ * Operation: Append a Text node with value `contents`

*/
Text = 23,
Text = 22,
/**

@@ -270,49 +260,13 @@ * Operation: Append a Comment node with value `contents`

*/
Comment = 24,
Comment = 23,
/**
* Operation: Append content as HTML.
* Operation: Append a Dynamic node based on .
* Format:
* (AppendHTML)
* (DynamicContent isTrusting:boolean)
* Operand Stack:
* ..., VersionedPathReference<string> →
* ..., VersionedPathReference →
* ...
*/
AppendHTML = 25,
DynamicContent = 24,
/**
* Operation: Append SafeHTML as HTML.
* Format:
* (AppendSafeHTML)
* Operand Stack:
* ..., VersionedPathReference<SafeHTML> →
* ...
*/
AppendSafeHTML = 26,
/**
* Operation: Append DocumentFragment.
* Format:
* (AppendFragment)
* Operand Stack:
* ..., VersionedPathReference<DocumentFragment> →
* ...
*/
AppendDocumentFragment = 27,
/**
* Operation: Append Node.
* Format:
* (AppendFragment)
* Operand Stack:
* ..., VersionedPathReference<Node> →
* ...
*/
AppendNode = 28,
/**
* Operation: Append content as text.
* Format:
* (AppendText)
* Operand Stack:
* ..., VersionedPathReference<string> →
* ...
*/
AppendText = 29,
/**
* Operation: Open a new Element named `tag`.

@@ -325,3 +279,3 @@ * Format:

*/
OpenElement = 30,
OpenElement = 25,
/**

@@ -337,3 +291,3 @@ * Operation:

*/
OpenDynamicElement = 31,
OpenDynamicElement = 26,
/**

@@ -347,3 +301,3 @@ * Operation: Add an attribute to the current Element.

*/
StaticAttr = 32,
StaticAttr = 27,
/**

@@ -363,3 +317,3 @@ * Operation:

*/
DynamicAttr = 33,
DynamicAttr = 28,
/**

@@ -376,3 +330,3 @@ * Operation:

*/
ComponentAttr = 34,
ComponentAttr = 29,
/**

@@ -387,3 +341,3 @@ * Operation: Finish setting attributes on the current element.

*/
FlushElement = 35,
FlushElement = 30,
/**

@@ -398,6 +352,6 @@ * Operation: Close the current element.

*/
CloseElement = 36,
Modifier = 37,
PushRemoteElement = 38,
PopRemoteElement = 39,
CloseElement = 31,
Modifier = 32,
PushRemoteElement = 33,
PopRemoteElement = 34,
/**

@@ -414,5 +368,5 @@ * Operation: Bind stack values as dynamic variables.

*/
BindDynamicScope = 40,
PushDynamicScope = 41,
PopDynamicScope = 42,
BindDynamicScope = 35,
PushDynamicScope = 36,
PopDynamicScope = 37,
/**

@@ -426,3 +380,3 @@ * Operation: Compile the InlineBlock at the top of the stack.

*/
CompileBlock = 43,
CompileBlock = 38,
/**

@@ -436,3 +390,3 @@ * Operation: Push a scope onto the stack.

*/
PushBlockScope = 44,
PushBlockScope = 39,
/**

@@ -446,3 +400,3 @@ * Operation: Push a symbol table onto the stack.

*/
PushSymbolTable = 45,
PushSymbolTable = 40,
/**

@@ -456,3 +410,3 @@ * Operation: Evaluate the handle at the top of the stack.

*/
InvokeVirtual = 46,
InvokeVirtual = 41,
/**

@@ -466,3 +420,3 @@ * Operation: Evaluate the handle.

*/
InvokeStatic = 47,
InvokeStatic = 42,
/**

@@ -476,3 +430,3 @@ * Operation: Yield to a block.

*/
InvokeYield = 48,
InvokeYield = 43,
/**

@@ -487,3 +441,3 @@ * Operation: Jump to the specified offset.

*/
Jump = 49,
Jump = 44,
/**

@@ -500,3 +454,3 @@ * Operation:

*/
JumpIf = 50,
JumpIf = 45,
/**

@@ -513,29 +467,4 @@ * Operation:

*/
JumpUnless = 51,
JumpUnless = 46,
/**
* Operation:
* Jump to the specified offset if the value at
* the top of the stack is the same as the
* comparison.
*
* Format:
* (JumpEq to:i32 comparison:i32)
* Operand Stack:
* ..., u32 →
* ..., u32
*/
JumpEq = 52,
/**
* Operation:
* Validate that the value at the top of the stack
* hasn't changed.
*
* Format:
* (AssertSame)
* Operand Stack:
* ..., VersionedPathReference<u32> →
* ..., VersionedPathReference<u32>
*/
AssertSame = 53,
/**
* Operation: Push a stack frame

@@ -549,3 +478,3 @@ *

*/
PushFrame = 54,
PushFrame = 47,
/**

@@ -560,3 +489,3 @@ * Operation: Pop a stack frame

*/
PopFrame = 55,
PopFrame = 48,
/**

@@ -574,5 +503,5 @@ * Operation:

* Soon after this opcode, one of Jump, JumpIf,
* JumpUnless, or JumpEq will produce an updating
* assertion. If that assertion fails, the appending
* VM will be re-entered, and the instructions from `from`
* or JumpUnless will produce an updating assertion.
* If that assertion fails, the appending VM will
* be re-entered, and the instructions from `from`
* to `to` will be executed.

@@ -582,3 +511,3 @@ *

*/
Enter = 56,
Enter = 49,
/**

@@ -598,3 +527,3 @@ * Operation:

*/
Exit = 57,
Exit = 50,
/**

@@ -609,3 +538,3 @@ * Operation: Convert the top of the stack into a boolean reference.

*/
ToBoolean = 58,
ToBoolean = 51,
/**

@@ -620,3 +549,3 @@ * Operation: Enter a list.

*/
EnterList = 59,
EnterList = 52,
/**

@@ -631,3 +560,3 @@ * Operation: Exit the current list.

*/
ExitList = 60,
ExitList = 53,
/**

@@ -644,3 +573,3 @@ * Operation:

*/
PutIterator = 61,
PutIterator = 54,
/**

@@ -668,3 +597,3 @@ * Operation:

*/
Iterate = 62,
Iterate = 55,
/**

@@ -679,3 +608,3 @@ * Operation: Test whether a reference contains a component definition.

*/
Main = 63,
Main = 56,
/**

@@ -690,23 +619,13 @@ * Operation: Test whether a reference contains a component definition.

*/
IsComponent = 64,
IsComponent = 57,
/**
* Operation: Push the content type onto the stack.
*
* Format:
* (ContentType)
* Operand Stack:
* ..., VersionedPathReference<Opaque> →
* ..., VersionedPathReference<Opaque>, VersionedPathReference<ContentType>
*/
ContentType = 65,
/**
* Operation: Curry a component definition for a later invocation.
*
* Format:
* (CurryComponent templateMeta:#Locator)
* (CurryComponent templateMeta:#TemplateMeta)
* Operand Stack:
* ..., VersionedPathReference, [VersionedPathReference ...], Arguments →
* ..., { VersionedPathReference, Locator, CapturedArguments }
* ..., { VersionedPathReference, TemplateMeta, CapturedArguments }
*/
CurryComponent = 66,
CurryComponent = 58,
/**

@@ -721,3 +640,3 @@ * Operation: Push an appropriate component manager onto the stack.

*/
PushComponentDefinition = 67,
PushComponentDefinition = 59,
/**

@@ -734,3 +653,3 @@ * Operation:

*/
PushDynamicComponentInstance = 68,
PushDynamicComponentInstance = 60,
/**

@@ -746,3 +665,3 @@ * Operation:

*/
PushCurriedComponent = 69,
PushCurriedComponent = 61,
/**

@@ -753,3 +672,3 @@ * Operation:

* Format:
* (ResolveDynamicComponent templateMeta:#Locator)
* (ResolveDynamicComponent templateMeta:#TemplateMeta)
* Operand Stack:

@@ -759,3 +678,3 @@ * ..., VersionedPathReference<Opaque> →

*/
ResolveDynamicComponent = 70,
ResolveDynamicComponent = 62,
/**

@@ -778,15 +697,4 @@ * Operation: Push a user representation of args onto the stack.

*/
PushArgs = 71,
PushArgs = 63,
/**
* Operation: Push empty args onto the stack
*
* Format:
* (EmptyArgs)
*
* OperandStack:
* ... →
* ..., Arguments
*/
PushEmptyArgs = 72,
/**
* Operation: Pops Arguments from the stack and clears the next N args.

@@ -807,3 +715,3 @@ *

*/
PopArgs = 73,
PopArgs = 64,
/**

@@ -817,3 +725,3 @@ * Operation: ...

*/
PrepareArgs = 74,
PrepareArgs = 65,
/**

@@ -835,3 +743,3 @@ * Operation: Replaces Arguments on the stack with CapturedArguments

*/
CaptureArgs = 75,
CaptureArgs = 66,
/**

@@ -850,3 +758,3 @@ * Operation: Create the component and push it onto the stack.

*/
CreateComponent = 76,
CreateComponent = 67,
/**

@@ -861,3 +769,3 @@ * Operation: Register a destructor for the current component

*/
RegisterComponentDestructor = 77,
RegisterComponentDestructor = 68,
/**

@@ -872,3 +780,3 @@ * Operation: Push a new ElementOperations for the current component.

*/
PutComponentOperations = 78,
PutComponentOperations = 69,
/**

@@ -883,3 +791,3 @@ * Operation: Push the component's `self` onto the stack.

*/
GetComponentSelf = 79,
GetComponentSelf = 70,
/**

@@ -894,3 +802,3 @@ * Operation: Push the component's `self` onto the stack.

*/
GetComponentTagName = 80,
GetComponentTagName = 71,
/**

@@ -905,3 +813,3 @@ * Operation: Get the component layout from the manager.

*/
GetComponentLayout = 81,
GetComponentLayout = 72,
/**

@@ -918,3 +826,3 @@ * Operation:

*/
PopulateLayout = 82,
PopulateLayout = 73,
/**

@@ -929,3 +837,3 @@ * Operation: Invoke the layout returned by the manager.

*/
InvokeComponentLayout = 83,
InvokeComponentLayout = 74,
/**

@@ -940,3 +848,3 @@ * Operation: Begin a new cache group

*/
BeginComponentTransaction = 84,
BeginComponentTransaction = 75,
/**

@@ -951,3 +859,3 @@ * Operation: Commit the current cache group

*/
CommitComponentTransaction = 85,
CommitComponentTransaction = 76,
/**

@@ -962,3 +870,3 @@ * Operation: Invoke didCreateElement on the current component manager

*/
DidCreateElement = 86,
DidCreateElement = 77,
/**

@@ -973,3 +881,3 @@ * Operation: Invoke didRenderLayout on the current component manager

*/
DidRenderLayout = 87,
DidRenderLayout = 78,
/**

@@ -979,3 +887,3 @@ * Operation: Lookup and invoke a partial template.

* Format:
* (InvokePartial templateMeta:#Locator symbols:#Array<#string> evalInfo:#Array<number>)
* (InvokePartial templateMeta:#TemplateMeta symbols:#Array<#string> evalInfo:#Array<number>)
* Operand Stack:

@@ -985,3 +893,3 @@ * ..., VersionedPathReference<string> →

*/
InvokePartial = 88,
InvokePartial = 79,
/**

@@ -998,3 +906,3 @@ * Operation:

*/
ResolveMaybeLocal = 89,
ResolveMaybeLocal = 80,
/**

@@ -1009,5 +917,5 @@ * Operation: Activate the debugger

*/
Debugger = 90,
Debugger = 81,
/** The size of the opcode list */
Size = 91,
Size = 82,
}
{
"name": "@glimmer/vm",
"version": "0.32.3",
"version": "0.32.4",
"repository": "https://github.com/glimmerjs/glimmer-vm/tree/master/packages/@glimmer/vm",
"dependencies": {
"@glimmer/util": "^0.32.3",
"@glimmer/interfaces": "^0.32.3",
"@glimmer/program": "^0.32.3"
"@glimmer/util": "^0.32.4",
"@glimmer/interfaces": "^0.32.4",
"@glimmer/program": "^0.32.4"
},
"devDependencies": {
"@glimmer/debug": "^0.32.3",
"@glimmer/debug": "^0.32.4",
"@types/qunit": "^2.0.31",

@@ -13,0 +13,0 @@ "typescript": "^2.2.0"

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc