A/MNCkxcrFFjAAAAAAAAAAAGAAAAQAAAAHPwAAAAZAAAWgAAZBEAWgEAZQEAWgIAZQEAZBIAF1oDAGQJAIQAAFoEAGQKAIQAAFoFAGQLAGQMAIQBAFoGAGQLAGQNAIQBAFoHAHkcAGQOAGQPAGwIAFoIAGUHAFoJAGUFAFoKAFduHQAEZQsAawoAcoEAAQEBZQYAWgkAZQQAWgoAbgEAWHhVAGUBAERdTQBaDAB5FwBlCgBlDACDAQBlDQCDAABlDAA8V3GJAARlDgBrCgBy1QABAQFkDgBkDwBsDwBaDwBlDwBqEABkEABlDACDAgABcYkAWHGJAFdbAQBbDABbCgBbBgBbBwBbBQBkDwBTKBMAAABzcAcAAGhhc2hsaWIgbW9kdWxlIC0gQSBjb21tb24gaW50ZXJmYWNlIHRvIG1hbnkgaGFzaCBmdW5jdGlvbnMuCgpuZXcobmFtZSwgc3RyaW5nPScnKSAtIHJldHVybnMgYSBuZXcgaGFzaCBvYmplY3QgaW1wbGVtZW50aW5nIHRoZQogICAgICAgICAgICAgICAgICAgICAgIGdpdmVuIGhhc2ggZnVuY3Rpb247IGluaXRpYWxpemluZyB0aGUgaGFzaAogICAgICAgICAgICAgICAgICAgICAgIHVzaW5nIHRoZSBnaXZlbiBzdHJpbmcgZGF0YS4KCk5hbWVkIGNvbnN0cnVjdG9yIGZ1bmN0aW9ucyBhcmUgYWxzbyBhdmFpbGFibGUsIHRoZXNlIGFyZSBtdWNoIGZhc3Rlcgp0aGFuIHVzaW5nIG5ldygpOgoKbWQ1KCksIHNoYTEoKSwgc2hhMjI0KCksIHNoYTI1NigpLCBzaGEzODQoKSwgYW5kIHNoYTUxMigpCgpNb3JlIGFsZ29yaXRobXMgbWF5IGJlIGF2YWlsYWJsZSBvbiB5b3VyIHBsYXRmb3JtIGJ1dCB0aGUgYWJvdmUgYXJlCmd1YXJhbnRlZWQgdG8gZXhpc3QuCgpOT1RFOiBJZiB5b3Ugd2FudCB0aGUgYWRsZXIzMiBvciBjcmMzMiBoYXNoIGZ1bmN0aW9ucyB0aGV5IGFyZSBhdmFpbGFibGUgaW4KdGhlIHpsaWIgbW9kdWxlLgoKQ2hvb3NlIHlvdXIgaGFzaCBmdW5jdGlvbiB3aXNlbHkuICBTb21lIGhhdmUga25vd24gY29sbGlzaW9uIHdlYWtuZXNzZXMuCnNoYTM4NCBhbmQgc2hhNTEyIHdpbGwgYmUgc2xvdyBvbiAzMiBiaXQgcGxhdGZvcm1zLgoKSGFzaCBvYmplY3RzIGhhdmUgdGhlc2UgbWV0aG9kczoKIC0gdXBkYXRlKGFyZyk6IFVwZGF0ZSB0aGUgaGFzaCBvYmplY3Qgd2l0aCB0aGUgc3RyaW5nIGFyZy4gUmVwZWF0ZWQgY2FsbHMKICAgICAgICAgICAgICAgIGFyZSBlcXVpdmFsZW50IHRvIGEgc2luZ2xlIGNhbGwgd2l0aCB0aGUgY29uY2F0ZW5hdGlvbiBvZiBhbGwKICAgICAgICAgICAgICAgIHRoZSBhcmd1bWVudHMuCiAtIGRpZ2VzdCgpOiAgICBSZXR1cm4gdGhlIGRpZ2VzdCBvZiB0aGUgc3RyaW5ncyBwYXNzZWQgdG8gdGhlIHVwZGF0ZSgpIG1ldGhvZAogICAgICAgICAgICAgICAgc28gZmFyLiBUaGlzIG1heSBjb250YWluIG5vbi1BU0NJSSBjaGFyYWN0ZXJzLCBpbmNsdWRpbmcKICAgICAgICAgICAgICAgIE5VTCBieXRlcy4KIC0gaGV4ZGlnZXN0KCk6IExpa2UgZGlnZXN0KCkgZXhjZXB0IHRoZSBkaWdlc3QgaXMgcmV0dXJuZWQgYXMgYSBzdHJpbmcgb2YKICAgICAgICAgICAgICAgIGRvdWJsZSBsZW5ndGgsIGNvbnRhaW5pbmcgb25seSBoZXhhZGVjaW1hbCBkaWdpdHMuCiAtIGNvcHkoKTogICAgICBSZXR1cm4gYSBjb3B5IChjbG9uZSkgb2YgdGhlIGhhc2ggb2JqZWN0LiBUaGlzIGNhbiBiZSB1c2VkIHRvCiAgICAgICAgICAgICAgICBlZmZpY2llbnRseSBjb21wdXRlIHRoZSBkaWdlc3RzIG9mIHN0cmluZ3MgdGhhdCBzaGFyZSBhIGNvbW1vbgogICAgICAgICAgICAgICAgaW5pdGlhbCBzdWJzdHJpbmcuCgpGb3IgZXhhbXBsZSwgdG8gb2J0YWluIHRoZSBkaWdlc3Qgb2YgdGhlIHN0cmluZyAnTm9ib2R5IGluc3BlY3RzIHRoZQpzcGFtbWlzaCByZXBldGl0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