mirror of https://github.com/tc39/test262.git
1 line
481 KiB
JSON
1 line
481 KiB
JSON
{"testsCollection":{"name":"Chapter - 15.1_The_Global_Object","numTests":"313","tests":[{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMV9BMV9UMSIsCgpwYXRoOiAiMTUuMSIsCgpkZXNjcmlwdGlvbjogIkl0IGlzIG5vdCBwb3NzaWJsZSB0byB1c2UgdGhlIGdsb2JhbCBvYmplY3QgYXMgYSBjb25zdHJ1Y3RvciIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICB0cnkgewogICAgIChmdW5jdGlvbigpIHsKICAgICAgICAgZXZhbCgibmV3IHRoaXM7XHJcbiIpIH0pKCk7CiAgIH0gY2F0Y2ggKF9fZV9fKSB7cmV0dXJuIHRydWUgIC8qIGZhaWx1cmUgaXMgc3VjY2VzcyAqL307CiAgIHJldHVybiBmYWxzZSAvKiBidXQgc3VjY2VzcyBpcyBmYWlsdXJlICovCiB9Cn0pOwoK","id":"S15.1_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMV9BMV9UMiIsCgpwYXRoOiAiMTUuMSIsCgpkZXNjcmlwdGlvbjogIkl0IGlzIG5vdCBwb3NzaWJsZSB0byB1c2UgdGhlIGdsb2JhbCBvYmplY3QgYXMgYSBjb25zdHJ1Y3RvciIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICB0cnkgewogICAgIChmdW5jdGlvbigpIHsKICAgICAgICAgZXZhbCgibmV3IHRoaXMoKTtcclxuIikgfSkoKTsKICAgfSBjYXRjaCAoX19lX18pIHtyZXR1cm4gdHJ1ZSAgLyogZmFpbHVyZSBpcyBzdWNjZXNzICovfTsKICAgcmV0dXJuIGZhbHNlIC8qIGJ1dCBzdWNjZXNzIGlzIGZhaWx1cmUgKi8KIH0KfSk7Cgo=","id":"S15.1_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMV9BMl9UMSIsCgpwYXRoOiAiMTUuMSIsCgpkZXNjcmlwdGlvbjogIkl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbnZva2UgdGhlIGdsb2JhbCBvYmplY3QgYXMgYSBmdW5jdGlvbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICB0cnkgewogICAgIChmdW5jdGlvbigpIHsKICAgICAgICAgZXZhbCgidGhpcygpO1xyXG4iKSB9KSgpOwogICB9IGNhdGNoIChfX2VfXykge3JldHVybiB0cnVlICAvKiBmYWlsdXJlIGlzIHN1Y2Nlc3MgKi99OwogICByZXR1cm4gZmFsc2UgLyogYnV0IHN1Y2Nlc3MgaXMgZmFpbHVyZSAqLwogfQp9KTsKCg==","id":"S15.1_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4xLjFfQTEiLAoKcGF0aDogIjE1LjEuMS4xLCAxMS40LjMsIDE1LjEuMi40LCAxNS4xLjIuNSIsCgpkZXNjcmlwdGlvbjogIlVzZSB0eXBlb2YsIGlzTmFOLCBpc0Zpbml0ZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy8gQ0hFQ0sjMQppZiAodHlwZW9mKE5hTikgIT09ICJudW1iZXIiKSB7CgkkRVJST1IoJyMxOiB0eXBlb2YoTmFOKSA9PT0gIm51bWJlciIuIEFjdHVhbDogJyArICh0eXBlb2YoTmFOKSkpOyAKfQoKLy8gQ0hFQ0sjMgppZiAoaXNOYU4oTmFOKSAhPT0gdHJ1ZSkgewoJJEVSUk9SKCcjMjogTmFOID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChOYU4pKTsgCn0KCi8vIENIRUNLIzMKaWYgKGlzRmluaXRlKE5hTikgIT09IGZhbHNlKSB7CgkkRVJST1IoJyMzOiBOYU4gPT09IE5vdC1hLUZpbml0ZS4gQWN0dWFsOiAnICsgKE5hTikpOyAKfQoKCiB9Cn0pOwoK","id":"S15.1.1.1_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4xLjFfQTMuMSIsCgpwYXRoOiAiMTUuMS4xLjEsIDExLjQuMSIsCgpkZXNjcmlwdGlvbjogIlVzZSBkZWxldGUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vIENIRUNLIzEKaWYgKGRlbGV0ZSBOYU4gIT09IGZhbHNlKSB7CgkkRVJST1IoJyMxOiBkZWxldGUgTmFOID09PSBmYWxzZS4gQWN0dWFsOiAnICsgKGRlbGV0ZSBOYU4pKTsgCQp9CgogfQp9KTsKCg==","id":"S15.1.1.1_A3.1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4xLjFfQTMuMiIsCgpwYXRoOiAiMTUuMS4xLjEsIDEyLjYuNCIsCgpkZXNjcmlwdGlvbjogIlVzZSBmb3ItaW4gc3RhdGVtZW50IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvLyBDSEVDSyMxCmZvciAodmFyIHByb3AgaW4gdGhpcykgewogIGlmIChwcm9wID09PSAiTmFOIikgewoJJEVSUk9SKCcjMTogVGhlIE5hTiBpcyBEb250RW51bScpOwogIH0JIAkKfQoKIH0KfSk7Cgo=","id":"S15.1.1.1_A3.2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4xLjJfQTEiLAoKcGF0aDogIjE1LjEuMS4yLCAxMS40LjMsIDE1LjEuMi40LCAxNS4xLjIuNSIsCgpkZXNjcmlwdGlvbjogIlVzZSB0eXBlb2YsIGlzTmFOLCBpc0Zpbml0ZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy8gQ0hFQ0sjMQppZiAodHlwZW9mKEluZmluaXR5KSAhPT0gIm51bWJlciIpIHsKCSRFUlJPUignIzE6IHR5cGVvZihJbmZpbml0eSkgPT09ICJudW1iZXIiLiBBY3R1YWw6ICcgKyAodHlwZW9mKEluZmluaXR5KSkpOyAKfQoKLy8gQ0hFQ0sjMgppZiAoaXNGaW5pdGUoSW5maW5pdHkpICE9PSBmYWxzZSkgewoJJEVSUk9SKCcjMjogSW5maW5pdHkgPT09IE5vdC1hLUZpbml0ZS4gQWN0dWFsOiAnICsgKEluZmluaXR5KSk7IAp9CgovLyBDSEVDSyMzCmlmIChpc05hTihJbmZpbml0eSkgIT09IGZhbHNlKSB7CgkkRVJST1IoJyMzOiBJbmZpbml0eSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAoSW5maW5pdHkpKTsgCn0KCgovLyBDSEVDSyM0CmlmIChJbmZpbml0eSAhPT0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSB7CgkkRVJST1IoJyM0OiBJbmZpbml0eSA9PT0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLiBBY3R1YWw6ICcgKyAoSW5maW5pdHkpKTsgCn0KCiB9Cn0pOwoK","id":"S15.1.1.2_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4xLjJfQTJfVDIiLAoKcGF0aDogIjE1LjEuMS4yLCAxMS40LjMiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB0eXBlb2YgRnVuY3Rpb25zIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvLyBDSEVDSyMxCnZhciBGaW5pdGUgPSB0cnVlOwppZiAodHlwZW9mKEZpbml0ZSkgIT09ICJib29sZWFuIikgewoJJEVSUk9SKCcjMTogRmluaXRlID0gdHJ1ZTsgdHlwZW9mKE5hTikgPT09ICJib29sZWFuIi4gQWN0dWFsOiAnICsgKHR5cGVvZihOYU4pKSk7IAp9CgogfQp9KTsKCg==","id":"S15.1.1.2_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4xLjJfQTMuMSIsCgpwYXRoOiAiMTUuMS4xLjIsIDExLjQuMSIsCgpkZXNjcmlwdGlvbjogIlVzZSBkZWxldGUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vIENIRUNLIzEKaWYgKGRlbGV0ZSBJbmZpbml0eSAhPT0gZmFsc2UpIHsKCSRFUlJPUignIzE6IGRlbGV0ZSBJbmZpbml0eSA9PT0gZmFsc2UuIEFjdHVhbDogJyArIChkZWxldGUgSW5maW5pdHkpKTsgCn0KCiB9Cn0pOwoK","id":"S15.1.1.2_A3.1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4xLjJfQTMuMiIsCgpwYXRoOiAiMTUuMS4xLjIsIDEyLjYuNCIsCgpkZXNjcmlwdGlvbjogIlVzZSBmb3ItaW4gc3RhdGVtZW50IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvLyBDSEVDSyMxCmZvciAodmFyIHByb3AgaW4gdGhpcykgewogIGlmIChwcm9wID09PSAiSW5maW5pdHkiKSB7CgkkRVJST1IoJyMxOiBUaGUgSW5maW5pdHkgaXMgRG9udEVudW0nKTsKICB9CSAJCn0KCiB9Cn0pOwoK","id":"S15.1.1.2_A3.2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4xLjNfQTEiLAoKcGF0aDogIjE1LjEuMS4zLCAxMS40LjMsIDE1LjEuMi40LCAxNS4xLjIuNSIsCgpkZXNjcmlwdGlvbjogIlVzZSB0eXBlb2YsIGlzTmFOLCBpc0Zpbml0ZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy8gQ0hFQ0sjMQppZiAodHlwZW9mKHVuZGVmaW5lZCkgIT09ICJ1bmRlZmluZWQiKSB7CgkkRVJST1IoJyMxOiB0eXBlb2YodW5kZWZpbmVkKSA9PT0gInVuZGVmaW5lZCIuIEFjdHVhbDogJyArICh0eXBlb2YodW5kZWZpbmVkKSkpOyAKfQoKLy8gQ0hFQ0sjMgppZiAodW5kZWZpbmVkICE9PSB2b2lkIDApIHsKCSRFUlJPUignIzI6IHVuZGVmaW5lZCA9PT0gdm9pZCAwLiBBY3R1YWw6ICcgKyAodW5kZWZpbmVkKSk7IAp9CgovLyBDSEVDSyMzCmlmICh1bmRlZmluZWQgIT09IGV2YWwoInZhciB4IikpIHsKCSRFUlJPUignIzM6IHVuZGVmaW5lZCA9PT0gZXZhbCgidmFyIHgiKS4gQWN0dWFsOiAnICsgKHVuZGVmaW5lZCkpOyAKfQoKIH0KfSk7Cgo=","id":"S15.1.1.3_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4xLjNfQTMuMSIsCgpwYXRoOiAiMTUuMS4xLjMsIDExLjQuMSIsCgpkZXNjcmlwdGlvbjogIlVzZSBkZWxldGUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vIENIRUNLIzEKaWYgKGRlbGV0ZSB1bmRlZmluZWQgIT09IGZhbHNlKSB7CgkkRVJST1IoJyMxOiBkZWxldGUgdW5kZWZpbmVkID09PSBmYWxzZS4gQWN0dWFsOiAnICsgKGRlbGV0ZSB1bmRlZmluZWQpKTsgCn0KCiB9Cn0pOwoK","id":"S15.1.1.3_A3.1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4xLjNfQTMuMiIsCgpwYXRoOiAiMTUuMS4xLjMsIDEyLjYuNCIsCgpkZXNjcmlwdGlvbjogIlVzZSBmb3ItaW4gc3RhdGVtZW50IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvLyBDSEVDSyMxCmZvciAocHJvcCBpbiB0aGlzKSB7CiAgaWYgKHByb3AgPT09ICJ1bmRlZmluZWQiKSB7CgkkRVJST1IoJyMxOiBUaGUgdW5kZWZpbmVkIGlzIERvbnRFbnVtJyk7CiAgfQkgCQp9CgogfQp9KTsKCg==","id":"S15.1.1.3_A3.2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTEuMV9UMSIsCgpwYXRoOiAiMTUuMS4yLjEiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBhbGwgcHJpbWl0aXZlIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKdmFyIHggPSAxOwppZiAoZXZhbCh4KSAhPT0geCkgewogICRFUlJPUignIzE6IHggPSAxOyBldmFsKHgpID09PSB4LiBBY3R1YWw6ICcgKyAoZXZhbCh4KSkpOwp9CgovL0NIRUNLIzIKaWYgKGV2YWwoMSkgIT09IDEpIHsKICAkRVJST1IoJyMyOiBldmFsKDEpID09PSAxLiBBY3R1YWw6ICcgKyAoZXZhbCgxKSkpOwp9CgovL0NIRUNLIzMKaWYgKGV2YWwodHJ1ZSkgIT09IHRydWUpIHsKICAkRVJST1IoJyMzOiBldmFsKHRydWUpID09PSB0cnVlLiBBY3R1YWw6ICcgKyAoZXZhbCh0cnVlKSkpOwp9CgovL0NIRUNLIzQKaWYgKGV2YWwobnVsbCkgIT09IG51bGwpIHsKICAkRVJST1IoJyM0OiBldmFsKG51bGwpID09PSBudWxsLiBBY3R1YWw6ICcgKyAoZXZhbChudWxsKSkpOwp9CgovL0NIRUNLIzUKaWYgKGV2YWwodW5kZWZpbmVkKSAhPT0gdW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjNTogZXZhbCh1bmRlZmluZWQpID09PSB1bmRlZmluZWQuIEFjdHVhbDogJyArIChldmFsKHVuZGVmaW5lZCkpKTsKfSAgICAgICAgCgogfQp9KTsKCg==","id":"S15.1.2.1_A1.1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTEuMV9UMiIsCgpwYXRoOiAiMTUuMS4yLjEiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBhbGwgb2JqZWN0IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKdmFyIHggPSB7fTsKaWYgKGV2YWwoeCkgIT09IHgpIHsKICAkRVJST1IoJyMxOiB4ID0ge307IGV2YWwoeCkgPT09IHguIEFjdHVhbDogJyArIChldmFsKHgpKSk7Cn0KCi8vQ0hFQ0sjMgp4ID0gbmV3IE51bWJlcigxKTsKaWYgKGV2YWwoeCkgIT09IHgpIHsKICAkRVJST1IoJyMyOiB4ID0gbmV3IE51bWJlcigxKTsgZXZhbCh4KSA9PT0geC4gQWN0dWFsOiAnICsgKGV2YWwoeCkpKTsKfQoKLy9DSEVDSyMzCnggPSBuZXcgQm9vbGVhbih0cnVlKTsKaWYgKGV2YWwoeCkgIT09IHgpIHsKICAkRVJST1IoJyMzOiB4ID0gbmV3IEJvb2xlYW4odHJ1ZSk7IGV2YWwoeCkgPT09IHguIEFjdHVhbDogJyArIChldmFsKHgpKSk7Cn0KCi8vQ0hFQ0sjNAp4ID0gbmV3IFN0cmluZygiMSsxIik7CmlmIChldmFsKHgpICE9PSB4KSB7CiAgJEVSUk9SKCcjNDogeCA9IG5ldyBTdHJpbmcoIjEiKTsgZXZhbCh4KSA9PT0geC4gQWN0dWFsOiAnICsgKGV2YWwoeCkpKTsKfSAgICAKCiB9Cn0pOwoK","id":"S15.1.2.1_A1.1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTEuMl9UMSIsCgpwYXRoOiAiMTUuMS4yLjEiLAoKZGVzY3JpcHRpb246ICJldmFsKFwieCA9IDFcIiwgXCJ4ID0gMlwiKSwgeCBlcXVhbCAxLCBub3QgMiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCnZhciB4OwpldmFsKCJ4ID0gMSIsICJ4ID0gMiIpOwppZiAoeCAhPT0gMSkgewogICRFUlJPUignIzE6IGV2YWwoInggPSAxIiwgInggPSAyIik7IHggPT09IDEuIEFjdHVhbDogJyArICh4KSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.1_A1.2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTJfVDEiLAoKcGF0aDogIjE1LjEuMi4xLCAxNiIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGV4ZWN1dGlvbiBvZiBcImV2YWwoXCJ4ID0gMTsgeFxcdTAwMEErK1wiKSwgY2F0Y2ggU3ludGF4RXJyb3JcIiBwYXNzZXMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp2YXIgeDsKdHJ5IHsKICBldmFsKCJ4ID0gMTsgeFx1MDAwQSsrIik7CiAgJEVSUk9SKCcjMS4xOiBldmFsKCJ4ID0gMTsgeFxcdTAwMEErKyIpIG11c3QgdGhyb3cgYSBTeW50YXhFcnJvci4gQWN0dWFsOiAnICsgKGV2YWwoInggPSAxOyB4XHUwMDBBKysiKSkpOwp9IGNhdGNoIChlKSB7CiAgaWYgKChlIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpICE9PSB0cnVlKSB7CiAgICAkRVJST1IoJyMxLjI6IGV2YWwoInggPSAxOyB4XFx1MDAwQSsrIikgbXVzdCB0aHJvdyBhIFN5bnRheEVycm9yLiBBY3R1YWw6ICcgKyAoZSkpOwogIH0gIAp9ICAgCgogfQp9KTsKCg==","id":"S15.1.2.1_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTJfVDIiLAoKcGF0aDogIjE1LjEuMi4xLCAxNiIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGV4ZWN1dGlvbiBvZiBcImV2YWwoXCJ4ID0gMTsgeFxcdTAwMEErK1wiKVwiIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogIHRyeSB7CiAgICAgKGZ1bmN0aW9uKCkgewogICAgICAgICAvL0NIRUNLIzEKdmFyIHg7CmV2YWwoInggPSAxOyB4XHUwMDBBKysiKTsgCiB9KSgpOwogICB9IGNhdGNoIChfX2VfXykge3JldHVybiB0cnVlICAvKiBmYWlsdXJlIGlzIHN1Y2Nlc3MgKi99OwogICByZXR1cm4gZmFsc2UgLyogYnV0IHN1Y2Nlc3MgaXMgZmFpbHVyZSAqLwogfQp9KTsKCg==","id":"S15.1.2.1_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTMuMV9UMSIsCgpwYXRoOiAiMTUuMS4yLjEsIDEyLjQiLAoKZGVzY3JpcHRpb246ICJFeHByZXNzaW9uIHN0YXRlbWVudC4gRXZhbCByZXR1cm4gcHJpbWl0aXZlIHZhbHVlIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgeDsKLy9DSEVDSyMxCmlmIChldmFsKCJ4ID0gMSIpICE9PSAxKSB7CiAgJEVSUk9SKCcjMTogZXZhbCgieCA9IDEiKSA9PT0gMS4gQWN0dWFsOiAnICsgKGV2YWwoInggPSAxIikpKTsKfQoKLy9DSEVDSyMyCmlmIChldmFsKCIxIikgIT09IDEpIHsKICAkRVJST1IoJyMyOiBldmFsKCIxIikgPT09IDEuIEFjdHVhbDogJyArIChldmFsKCIxIikpKTsKfQoKLy9DSEVDSyMzCmlmIChldmFsKCInMSciKSAhPT0gJzEnKSB7CiAgJEVSUk9SKCcjMzogZXZhbCgiXCcxXCciKSA9PT0gXCcxXCcuIEFjdHVhbDogJyArIChldmFsKCInMSciKSkpOwp9CgovL0NIRUNLIzQKeCA9IDE7CmlmIChldmFsKCIrK3giKSAhPT0gMikgewogICRFUlJPUignIzQ6IHggPSAxOyBldmFsKCIrK3giKSA9PT0gMi4gQWN0dWFsOiAnICsgKHgpKTsKfSAgICAgICAgCgogfQp9KTsKCg==","id":"S15.1.2.1_A3.1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTMuMV9UMiIsCgpwYXRoOiAiMTUuMS4yLjEsIDEyLjQiLAoKZGVzY3JpcHRpb246ICJFeHByZXNzaW9uIHN0YXRlbWVudC4gRXZhbCByZXR1cm4gb2JqZWN0IHZhbHVlIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKdmFyIHggPSB7fTsKdmFyIHk7CmlmIChldmFsKCJ5ID0geCIpICE9PSB4KSB7CiAgJEVSUk9SKCcjMTogdmFyIHggPSB7fTsgZXZhbCgieSA9IHgiKSA9PT0geC4gQWN0dWFsOiAnICsgKGV2YWwoInkgPSB4IikpKTsKfSAgICAKCgovL0NIRUNLIzIKaWYgKGV2YWwoIngiKSAhPT0geCkgewogICRFUlJPUignIzI6IHZhciB4ID0ge307IGV2YWwoIngiKSA9PT0geC4gQWN0dWFsOiAnICsgKGV2YWwoIngiKSkpOwp9ICAgIAoKCiB9Cn0pOwoK","id":"S15.1.2.1_A3.1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTMuMl9UMSIsCgpwYXRoOiAiMTUuMS4yLjEsIDEyLjEiLAoKZGVzY3JpcHRpb246ICJCbG9jayBzdGF0ZW1lbnQiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoZXZhbCgie30iKSAhPT0gdW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMTogZXZhbCgie30iKSA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6ICcgKyAoZXZhbCgie30iKSkpOwp9ICAgIAoKIH0KfSk7Cgo=","id":"S15.1.2.1_A3.2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTMuMl9UMiIsCgpwYXRoOiAiMTUuMS4yLjEsIDEyLjIiLAoKZGVzY3JpcHRpb246ICJWYXIgc3RhdGVtZW50IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKGV2YWwoInZhciB4ID0gMSIpICE9PSB1bmRlZmluZWQpIHsKICAkRVJST1IoJyMxOiBldmFsKCJ2YXIgeCA9IDEiKSA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6ICcgKyAoZXZhbCgidmFyIHggPSAxIikpKTsKfSAgICAKCiB9Cn0pOwoK","id":"S15.1.2.1_A3.2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTMuMl9UMyIsCgpwYXRoOiAiMTUuMS4yLjEsIDEyLjMiLAoKZGVzY3JpcHRpb246ICJFbXB0eSBzdGF0ZW1lbnQiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoZXZhbCgiOyIpICE9PSB1bmRlZmluZWQpIHsKICAkRVJST1IoJyMxOiBldmFsKCI7IikgPT09IHVuZGVmaW5lZC4gQWN0dWFsOiAnICsgKGV2YWwoIjsiKSkpOwp9ICAgIAoKIH0KfSk7Cgo=","id":"S15.1.2.1_A3.2_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTMuMl9UNCIsCgpwYXRoOiAiMTUuMS4yLjEsIDEyLjUiLAoKZGVzY3JpcHRpb246ICJJZiBzdGF0ZW1lbnQiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoZXZhbCgiaWYgKGZhbHNlKSA7IikgIT09IHVuZGVmaW5lZCkgewogICRFUlJPUignIzE6IGV2YWwoImlmIChmYWxzZSkgOyIpID09PSB1bmRlZmluZWQuIEFjdHVhbDogJyArIGV2YWwoImlmIChmYWxzZSkgOyIpKTsKfSAgICAKCiB9Cn0pOwoK","id":"S15.1.2.1_A3.2_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTMuMl9UNSIsCgpwYXRoOiAiMTUuMS4yLjEsIDEyLjExIiwKCmRlc2NyaXB0aW9uOiAiU3dpdGNoIHN0YXRlbWVudCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChldmFsKCJzd2l0Y2goMSl7fSIpICE9PSB1bmRlZmluZWQpIHsKICAkRVJST1IoJyMxOiBldmFsKCJzd2l0Y2goMSl7fSIpID09PSB1bmRlZmluZWQuIEFjdHVhbDogJyArIChldmFsKCJzd2l0Y2goMSl7fSIpKSk7Cn0gICAgCgogfQp9KTsKCg==","id":"S15.1.2.1_A3.2_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTMuMl9UNiIsCgpwYXRoOiAiMTUuMS4yLjEsIDEyLjYuMSIsCgpkZXNjcmlwdGlvbjogImRvLXdoaWxlIHN0YXRlbWVudCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChldmFsKCJkbyA7IHdoaWxlKGZhbHNlKSIpICE9PSB1bmRlZmluZWQpIHsKICAkRVJST1IoJyMxOiBldmFsKCJkbyA7IHdoaWxlKGZhbHNlKSIpID09PSB1bmRlZmluZWQuIEFjdHVhbDogJyArIChldmFsKCJkbyA7IHdoaWxlKGZhbHNlKSIpKSk7Cn0gICAgCgogfQp9KTsKCg==","id":"S15.1.2.1_A3.2_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTMuMl9UNyIsCgpwYXRoOiAiMTUuMS4yLjEsIDEyLjYuMiIsCgpkZXNjcmlwdGlvbjogImRvLXdoaWxlIHN0YXRlbWVudCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChldmFsKCJ3aGlsZShmYWxzZSk7IikgIT09IHVuZGVmaW5lZCkgewogICRFUlJPUignIzE6IGV2YWwoIndoaWxlKGZhbHNlKTsiKSA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6ICcgKyAoZXZhbCgid2hpbGUoZmFsc2UpOyIpKSk7Cn0gICAgCgogfQp9KTsKCg==","id":"S15.1.2.1_A3.2_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTMuMl9UOCIsCgpwYXRoOiAiMTUuMS4yLjEsIDEyLjYuMyIsCgpkZXNjcmlwdGlvbjogImZvciBzdGF0ZW1lbnQiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoZXZhbCgiZm9yKGZhbHNlO2ZhbHNlO2ZhbHNlKTsiKSAhPT0gdW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMTogZXZhbCgiZm9yKGZhbHNlO2ZhbHNlO2ZhbHNlKTsiKSA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6ICcgKyAoZXZhbCgiZm9yKGZhbHNlO2ZhbHNlO2ZhbHNlKTsiKSkpOwp9ICAgIAoKIH0KfSk7Cgo=","id":"S15.1.2.1_A3.2_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTMuM19UMSIsCgpwYXRoOiAiMTUuMS4yLjEsIDEyLjciLAoKZGVzY3JpcHRpb246ICJDb250aW51ZSBzdGF0ZW1lbnQiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp0cnkgewogIGV2YWwoImNvbnRpbnVlOyIpOwogICRFUlJPUignIzEuMTogY29udGludWUgbXVzdCB0aHJvdyBTeW50YXhFcnJvci4gQWN0dWFsOiAnICsgKGV2YWwoImNvbnRpbnVlOyIpKSk7Cn0gY2F0Y2goZSkgewogIGlmICgoZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSAhPT0gdHJ1ZSkgewogICAgJEVSUk9SKCcjMS4yOiBjb250aW51ZSBtdXN0IHRocm93IFN5bnRheEVycm9yLiBBY3R1YWwgJyArIChlKSk7CiAgfSAgCn0KCi8vQ0hFQ0sjMgp0cnkgewogIGZvciAodmFyIGkgPSAwOyBpIDw9IDE7IGkrKykgewogICAgZm9yICh2YXIgaiA9IDA7IGogPD0gMTsgaisrKSB7CiAgICAgICBldmFsKCJjb250aW51ZTsiKTsgICAgICAgCiAgICB9CiAgfQogICRFUlJPUignIzIuMTogY29udGludWUgbXVzdCB0aHJvdyBTeW50YXhFcnJvci4gQWN0dWFsOiAnICsgKGV2YWwoImNvbnRpbnVlOyIpKSk7ICAgIAp9IGNhdGNoKGUpIHsKICBpZiAoKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikgIT09IHRydWUpIHsKICAgICRFUlJPUignIzIuMjogY29udGludWUgbXVzdCB0aHJvdyBTeW50YXhFcnJvci4gQWN0dWFsOiAnICsgKGUpKTsKICB9ICAKfSAgICAgIAoKIH0KfSk7Cgo=","id":"S15.1.2.1_A3.3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTMuM19UMiIsCgpwYXRoOiAiMTUuMS4yLjEsIDEyLjgiLAoKZGVzY3JpcHRpb246ICJCcmVhayBzdGF0ZW1lbnQiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp0cnkgewogIGV2YWwoImJyZWFrOyIpOwogICRFUlJPUignIzEuMTogYnJlYWsgbXVzdCB0aHJvdyBTeW50YXhFcnJvci4gQWN0dWFsOiAnICsgKGV2YWwoImJyZWFrOyIpKSk7Cn0gY2F0Y2goZSkgewogIGlmICgoZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSAhPT0gdHJ1ZSkgewogICAgJEVSUk9SKCcjMS4yOiBicmVhayBtdXN0IHRocm93IFN5bnRheEVycm9yLiBBY3R1YWw6ICcgKyAoZSkpOwogIH0gIAp9CgovL0NIRUNLIzIKdHJ5IHsKICBmb3IgKHZhciBpID0gMDsgaSA8PSAxOyBpKyspIHsKICAgIGZvciAodmFyIGogPSAwOyBqIDw9IDE7IGorKykgewogICAgICAgZXZhbCgiYnJlYWs7Iik7CiAgICB9CiAgfQogICRFUlJPUignIzIuMTogYnJlYWsgbXVzdCB0aHJvdyBTeW50YXhFcnJvci4gQWN0dWFsOiAnICsgKGV2YWwoImJyZWFrOyIpKSk7ICAgIAp9IGNhdGNoKGUpIHsKICBpZiAoKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikgIT09IHRydWUpIHsgICAKICAgICRFUlJPUignIzIuMjogYnJlYWsgbXVzdCB0aHJvdyBTeW50YXhFcnJvci4gQWN0dWFsOiAnICsgKGUpKTsKICB9ICAKfSAgICAgIAoKIH0KfSk7Cgo=","id":"S15.1.2.1_A3.3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTMuM19UMyIsCgpwYXRoOiAiMTUuMS4yLjEsIDEyLjkiLAoKZGVzY3JpcHRpb246ICJSZXR1cm4gc3RhdGVtZW50IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKdHJ5IHsKICBldmFsKCJyZXR1cm47Iik7CiAgJEVSUk9SKCcjMS4xOiByZXR1cm4gbXVzdCB0aHJvdyBTeW50YXhFcnJvci4gQWN0dWFsOiAnICsgKGV2YWwoInJldHVybjsiKSkpOwp9IGNhdGNoKGUpIHsKICBpZiAoKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikgIT09IHRydWUpIHsKICAgICRFUlJPUignIzEuMjogcmV0dXJuIG11c3QgdGhyb3cgU3ludGF4RXJyb3IuIEFjdHVhbDogJyArIChlKSk7CiAgfSAgCn0KCi8vQ0hFQ0sjMgoKZnVuY3Rpb24gZigpIHsgIGV2YWwoInJldHVybjsiKTsgfTsKCnRyeSB7CiAgZigpOyAgICAgIAogICRFUlJPUignIzIuMTogcmV0dXJuIG11c3QgdGhyb3cgU3ludGF4RXJyb3IuIEFjdHVhbDogJyArIChmKCkpKTsKfSBjYXRjaChlKSB7CiAgaWYgKChlIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpICE9PSB0cnVlKSB7CiAgICAkRVJST1IoJyMyLjI6IHJldHVybiBtdXN0IHRocm93IFN5bnRheEVycm9yLiBBY3R1YWw6ICcgKyAoZSkpOwogIH0gIAp9ICAgICAgCgogfQp9KTsKCg==","id":"S15.1.2.1_A3.3_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTMuM19UNCIsCgpwYXRoOiAiMTUuMS4yLjEsIDEyLjEzIiwKCmRlc2NyaXB0aW9uOiAiVGhyb3cgc3RhdGVtZW50IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKdHJ5IHsKICBldmFsKCJ0aHJvdyAxOyIpOwogICRFUlJPUignIzEuMTogdGhyb3cgMSBtdXN0IHRocm93IFN5bnRheEVycm9yLiBBY3R1YWw6ICcgKyAoZXZhbCgidGhyb3cgMTsiKSkpOwp9IGNhdGNoKGUpIHsKICBpZiAoZSAhPT0gMSkgewogICAgJEVSUk9SKCcjMS4yOiB0aHJvdyAxIG11c3QgdGhyb3cgU3ludGF4RXJyb3IuIEFjdHVhbDogJyArIChlKSk7CiAgfSAgCn0KCiB9Cn0pOwoK","id":"S15.1.2.1_A3.3_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTQuMSIsCgpwYXRoOiAiMTUuMS4yLjEsIDE1LjIuNC43LCAxMi42LjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgcHJvcGVydHlJc0VudW1lcmFibGUsIGZvci1pbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChldmFsLnByb3BlcnR5SXNFbnVtZXJhYmxlKCdsZW5ndGgnKSAhPT0gZmFsc2UpIHsKICAkRVJST1IoJyMxOiBldmFsLnByb3BlcnR5SXNFbnVtZXJhYmxlKFwnbGVuZ3RoXCcpID09PSBmYWxzZS4gQWN0dWFsOiAnICsgKGV2YWwucHJvcGVydHlJc0VudW1lcmFibGUoJ2xlbmd0aCcpKSk7Cn0KCi8vQ0hFQ0sjMgp2YXIgcmVzdWx0ID0gdHJ1ZTsKZm9yIChwIGluIGV2YWwpewogIGlmIChwID09PSAibGVuZ3RoIikgewogICAgcmVzdWx0ID0gZmFsc2U7CiAgfSAgCn0KCmlmIChyZXN1bHQgIT09IHRydWUpIHsKICAkRVJST1IoJyMyOiByZXN1bHQgPSB0cnVlOyBmb3IgKHAgaW4gZXZhbCkgeyBpZiAocCA9PT0gImxlbmd0aCIpIHJlc3VsdCA9IGZhbHNlOyB9OyAgcmVzdWx0ID09PSB0cnVlOycpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.1_A4.1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTQuMiIsCgpwYXRoOiAiMTUuMS4yLjEsIDE1LjIuNC41LCAxMS40LjEiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgaGFzT3duUHJvcGVydHksIGRlbGV0ZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChldmFsLmhhc093blByb3BlcnR5KCdsZW5ndGgnKSAhPT0gdHJ1ZSkgewogICRGQUlMKCcjMTogZXZhbC5oYXNPd25Qcm9wZXJ0eShcJ2xlbmd0aFwnKSA9PT0gdHJ1ZS4gQWN0dWFsOiAnICsgKGV2YWwuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSk7Cn0KCmRlbGV0ZSBldmFsLmxlbmd0aDsKCi8vQ0hFQ0sjMgppZiAoZXZhbC5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykgIT09IHRydWUpIHsKICAkRVJST1IoJyMyOiBkZWxldGUgZXZhbC5sZW5ndGg7IGV2YWwuaGFzT3duUHJvcGVydHkoXCdsZW5ndGhcJykgPT09IHRydWUuIEFjdHVhbDogJyArIChldmFsLmhhc093blByb3BlcnR5KCdsZW5ndGgnKSkpOwp9CgovL0NIRUNLIzMKaWYgKGV2YWwubGVuZ3RoID09PSB1bmRlZmluZWQpIHsKICAkRVJST1IoJyMzOiBkZWxldGUgZXZhbC5sZW5ndGg7IGV2YWwubGVuZ3RoICE9PSB1bmRlZmluZWQnKTsKfQoKCgoKIH0KfSk7Cgo=","id":"S15.1.2.1_A4.2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTQuMyIsCgpwYXRoOiAiMTUuMS4yLjEiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiB2YXJ5aW5nIHRoZSBsZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp2YXIgeCA9IGV2YWwubGVuZ3RoOwpldmFsLmxlbmd0aCA9IEluZmluaXR5OwppZiAoZXZhbC5sZW5ndGggIT09IHgpIHsKICAkRVJST1IoJyMxOiB4ID0gZXZhbC5sZW5ndGg7IGV2YWwubGVuZ3RoID0gSW5maW5pdHk7IGV2YWwubGVuZ3RoID09PSB4LiBBY3R1YWw6ICcgKyAoZXZhbC5sZW5ndGgpKTsKfQoKCiB9Cn0pOwoK","id":"S15.1.2.1_A4.3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTQuNCIsCgpwYXRoOiAiMTUuMS4yLjEiLAoKZGVzY3JpcHRpb246ICJldmFsLmxlbmd0aCA9PT0gMSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChldmFsLmxlbmd0aCAhPT0gMSkgewogICRFUlJPUignIzE6IGV2YWwubGVuZ3RoID09PSAxLiBBY3R1YWw6ICcgKyAoZXZhbC5sZW5ndGgpKTsKfSAKCgogfQp9KTsKCg==","id":"S15.1.2.1_A4.4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTQuNSIsCgpwYXRoOiAiMTUuMS4yLjEsIDE1LjIuNC43LCAxMi42LjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgcHJvcGVydHlJc0VudW1lcmFibGUsIGZvci1pbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICh0aGlzLnByb3BlcnR5SXNFbnVtZXJhYmxlKCdldmFsJykgIT09IGZhbHNlKSB7CiAgJEVSUk9SKCcjMTogdGhpcy5wcm9wZXJ0eUlzRW51bWVyYWJsZShcJ2V2YWxcJykgPT09IGZhbHNlLiBBY3R1YWw6ICcgKyAodGhpcy5wcm9wZXJ0eUlzRW51bWVyYWJsZSgnZXZhbCcpKSk7Cn0KCi8vQ0hFQ0sjMgp2YXIgcmVzdWx0ID0gdHJ1ZTsKZm9yICh2YXIgcCBpbiB0aGlzKXsKICBpZiAocCA9PT0gImV2YWwiKSB7CiAgICByZXN1bHQgPSBmYWxzZTsKICB9ICAKfQoKaWYgKHJlc3VsdCAhPT0gdHJ1ZSkgewogICRFUlJPUignIzI6IHJlc3VsdCA9IHRydWU7IGZvciAocCBpbiB0aGlzKSB7IGlmIChwID09PSAiZXZhbCIpIHJlc3VsdCA9IGZhbHNlOyB9ICByZXN1bHQgPT09IHRydWU7Jyk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.1_A4.5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTQuNiIsCgpwYXRoOiAiMTUuMS4yLjEiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBldmFsLnByb3RvdHlwZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChldmFsLnByb3RvdHlwZSAhPT0gdW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMTogZXZhbC5wcm90b3R5cGUgPT09IHVuZGVmaW5lZC4gQWN0dWFsOiAnICsgKGV2YWwucHJvdG90eXBlKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.1_A4.6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjFfQTQuNyIsCgpwYXRoOiAiMTUuMS4yLjEsIDExLjIuMiIsCgpkZXNjcmlwdGlvbjogIklmIHByb3BlcnR5IGRvZXMgbm90IGltcGxlbWVudCB0aGUgaW50ZXJuYWwgW1tDb25zdHJ1Y3RdXSBtZXRob2QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCgp0cnkgewogIG5ldyBldmFsKCk7CiAgJEVSUk9SKCcjMS4xOiBuZXcgZXZhbCgpIHRocm93IFR5cGVFcnJvci4gQWN0dWFsOiAnICsgKG5ldyBldmFsKCkpKTsKfSBjYXRjaCAoZSkgewogIGlmICgoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikgIT09IHRydWUpIHsKICAgICRFUlJPUignIzEuMjogbmV3IGV2YWwoKSB0aHJvdyBUeXBlRXJyb3IuIEFjdHVhbDogJyArIChlKSk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.1.2.1_A4.7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTFfVDEiLAoKcGF0aDogIjE1LjEuMi4yLCA5LjgiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBmb3IgYm9vbGVhbiBwcmltaXRpdmUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoIShpc05hTihwYXJzZUludCh0cnVlKSkgJiYgaXNOYU4ocGFyc2VJbnQoIk5hTiIpKSkpIHsKICAkRVJST1IoJyMxOiBwYXJzZUludCh0cnVlKSA9PT0gTm90LWEtTnVtYmVyOyBwYXJzZUludCgiTmFOIikgPT09IE5vdC1hLU51bWJlci4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCJOYU4iKSkpOwp9CgovL0NIRUNLIzIKaWYgKFN0cmluZyhwYXJzZUludChmYWxzZSkpICE9PSAiTmFOIikgewogICRFUlJPUignIzI6IFN0cmluZyhwYXJzZUludChmYWxzZSkpID09PSAiTmFOIi4gQWN0dWFsOiAnICsgKFN0cmluZyhwYXJzZUludChmYWxzZSkpKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.2_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTFfVDIiLAoKcGF0aDogIjE1LjEuMi4yLCA5LjgiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBmb3IgbnVtYmVyIHByaW1pdGl2ZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChwYXJzZUludCgtMSkgIT09IHBhcnNlSW50KCItMSIpKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VJbnQoLTEpID09PSBwYXJzZUludCgiLTEiKS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KC0xKSkpOwp9CgovL0NIRUNLIzIKaWYgKFN0cmluZyhwYXJzZUludChJbmZpbml0eSkpICE9PSAiTmFOIikgewogICRFUlJPUignIzI6IFN0cmluZyhwYXJzZUludChJbmZpbml0eSkpID09PSAiTmFOIi4gQWN0dWFsOiAnICsgKFN0cmluZyhwYXJzZUludChJbmZpbml0eSkpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAoU3RyaW5nKHBhcnNlSW50KE5hTikpICE9PSAiTmFOIikgewogICRFUlJPUignIzM6IFN0cmluZyhwYXJzZUludChOYU4pKSA9PT0gIk5hTiIuIEFjdHVhbDogJyArIChTdHJpbmcocGFyc2VJbnQoTmFOKSkpKTsKfQoKLy9DSEVDSyM0CmlmIChwYXJzZUludCgtMCkgIT09IDApIHsKICAkRVJST1IoJyM0OiBwYXJzZUludCgtMCkgPT09IDAuIEFjdHVhbDogJyArIChwYXJzZUludCgtMCkpKTsKfSBlbHNlIHsKICBpZiAoMSAvIHBhcnNlSW50KC0wKSAhPT0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSB7CiAgICAkRVJST1IoJyM0OiBwYXJzZUludCgtMCkgPT09ICswLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoLTApKSk7CiAgfQp9ICAgIAoKIH0KfSk7Cgo=","id":"S15.1.2.2_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTFfVDMiLAoKcGF0aDogIjE1LjEuMi4yLCA5LjgiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBmb3IgdW5kZWZpbmVkIGFuZCBudWxsIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKCEoaXNOYU4ocGFyc2VJbnQodW5kZWZpbmVkKSkgJiYgaXNOYU4ocGFyc2VJbnQoIk5hTiIpKSkpIHsKICAkRVJST1IoJyMxOiBwYXJzZUludCh1bmRlZmluZWQpID09PSBOb3QtYS1OdW1iZXI7IHBhcnNlSW50KCJOYU4iKSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIk5hTiIpKSk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShpc05hTihwYXJzZUludChudWxsKSkgJiYgaXNOYU4ocGFyc2VJbnQoIk5hTiIpKSkpIHsKICAkRVJST1IoJyMyOiBwYXJzZUludChudWxsKSA9PT0gTm90LWEtTnVtYmVyOyBwYXJzZUludCgiTmFOIikgPT09IE5vdC1hLU51bWJlci4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCJOYU4iKSkpOwp9CgovL0NIRUNLIzMKaWYgKFN0cmluZyhwYXJzZUludCh1bmRlZmluZWQpKSAhPT0gIk5hTiIpIHsKICAkRVJST1IoJyMzOiBTdHJpbmcocGFyc2VJbnQodW5kZWZpbmVkKSkgPT09ICJOYU4iLiBBY3R1YWw6ICcgKyAoU3RyaW5nKHBhcnNlSW50KHVuZGVmaW5lZCkpKSk7Cn0KCi8vQ0hFQ0sjNAppZiAoU3RyaW5nKHBhcnNlSW50KG51bGwpKSAhPT0gIk5hTiIpIHsKICAkRVJST1IoJyM0OiBTdHJpbmcocGFyc2VJbnQobnVsbCkpID09PSAiTmFOIi4gQWN0dWFsOiAnICsgKFN0cmluZyhwYXJzZUludChudWxsKSkpKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.2.2_A1_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTFfVDQiLAoKcGF0aDogIjE1LjEuMi4yLCA5LjgiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBmb3IgQm9vbGVhbiBvYmplY3QiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoIShpc05hTihwYXJzZUludChuZXcgQm9vbGVhbih0cnVlKSkpICYmIGlzTmFOKHBhcnNlSW50KCJOYU4iKSkpKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VJbnQobmV3IEJvb2xlYW4odHJ1ZSkpID09PSBOb3QtYS1OdW1iZXI7IHBhcnNlSW50KCJOYU4iKSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIk5hTiIpKSk7Cn0KCi8vQ0hFQ0sjMgppZiAoU3RyaW5nKHBhcnNlSW50KG5ldyBCb29sZWFuKGZhbHNlKSkpICE9PSAiTmFOIikgewogICRFUlJPUignIzI6IFN0cmluZyhwYXJzZUludChuZXcgQm9vbGVhbihmYWxzZSkpKSA9PT0gIk5hTiIuIEFjdHVhbDogJyArIChTdHJpbmcocGFyc2VJbnQobmV3IEJvb2xlYW4oZmFsc2UpKSkpKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.2.2_A1_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTFfVDUiLAoKcGF0aDogIjE1LjEuMi4yLCA5LjgiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBmb3IgTnVtYmVyIG9iamVjdCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChwYXJzZUludChuZXcgTnVtYmVyKC0xKSkgIT09IHBhcnNlSW50KCItMSIpKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VJbnQobmV3IE51bWJlcigtMSkpID09PSBwYXJzZUludCgiLTEiKS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KG5ldyBOdW1iZXIoLTEpKSkpOwp9CgovL0NIRUNLIzIKaWYgKFN0cmluZyhwYXJzZUludChuZXcgTnVtYmVyKEluZmluaXR5KSkpICE9PSAiTmFOIikgewogICRFUlJPUignIzI6IFN0cmluZyhwYXJzZUludChuZXcgTnVtYmVyKEluZmluaXR5KSkpID09PSAiTmFOIi4gQWN0dWFsOiAnICsgKFN0cmluZyhwYXJzZUludChuZXcgTnVtYmVyKEluZmluaXR5KSkpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAoU3RyaW5nKHBhcnNlSW50KG5ldyBOdW1iZXIoTmFOKSkpICE9PSAiTmFOIikgewogICRFUlJPUignIzM6IFN0cmluZyhwYXJzZUludChuZXcgTnVtYmVyKE5hTikpKSA9PT0gIk5hTiIuIEFjdHVhbDogJyArIChTdHJpbmcocGFyc2VJbnQobmV3IE51bWJlcihOYU4pKSkpKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.2.2_A1_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTFfVDYiLAoKcGF0aDogIjE1LjEuMi4yLCA5LjgiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBmb3IgU3RyaW5nIG9iamVjdCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChwYXJzZUludChuZXcgU3RyaW5nKCItMSIpKSAhPT0gcGFyc2VJbnQoIi0xIikpIHsKICAkRVJST1IoJyMxOiBwYXJzZUludChuZXcgU3RyaW5nKCItMSIpKSA9PT0gcGFyc2VJbnQoIi0xIikuIEFjdHVhbDogJyArIChwYXJzZUludChuZXcgU3RyaW5nKCItMSIpKSkpOwp9CgovL0NIRUNLIzIKaWYgKFN0cmluZyhwYXJzZUludChuZXcgU3RyaW5nKCJJbmZpbml0eSIpKSkgIT09ICJOYU4iKSB7CiAgJEVSUk9SKCcjMjogU3RyaW5nKHBhcnNlSW50KG5ldyBTdHJpbmcoIkluZmluaXR5IikpKSA9PT0gIk5hTiIuIEFjdHVhbDogJyArIChTdHJpbmcocGFyc2VJbnQobmV3IFN0cmluZygiSW5maW5pdHkiKSkpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAoU3RyaW5nKHBhcnNlSW50KG5ldyBTdHJpbmcoIk5hTiIpKSkgIT09ICJOYU4iKSB7CiAgJEVSUk9SKCcjMzogU3RyaW5nKHBhcnNlSW50KG5ldyBTdHJpbmcoIk5hTiIpKSkgPT09ICJOYU4iLiBBY3R1YWw6ICcgKyAoU3RyaW5nKHBhcnNlSW50KG5ldyBTdHJpbmcoIk5hTiIpKSkpKTsKfQoKLy9DSEVDSyM0CmlmIChTdHJpbmcocGFyc2VJbnQobmV3IFN0cmluZygiZmFsc2UiKSkpICE9PSAiTmFOIikgewogICRFUlJPUignIzQ6IFN0cmluZyhwYXJzZUludChuZXcgU3RyaW5nKCJmYWxzZSIpKSkgPT09ICJOYU4iLiBBY3R1YWw6ICcgKyAoU3RyaW5nKHBhcnNlSW50KG5ldyBTdHJpbmcoImZhbHNlIikpKSkpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.2_A1_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTFfVDciLAoKcGF0aDogIjE1LjEuMi4yLCA5LjgsIDguNi4yLjYiLAoKZGVzY3JpcHRpb246ICJJZiBUeXBlKHZhbHVlKSBpcyBPYmplY3QsIGV2YWx1YXRlIFRvUHJpbWl0aXZlKHZhbHVlLCBTdHJpbmcpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4gMX19OwppZiAoaXNOYU4ocGFyc2VJbnQob2JqZWN0KSkgIT09IHRydWUpIHsKICAkRVJST1IoJyMxOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiAxfX07IHBhcnNlSW50KG9iamVjdCkgPT09IE5vdC1hLU51bWJlci4gQWN0dWFsOiAnICsgKHBhcnNlSW50KG9iamVjdCkpKTsKfQoKLy9DSEVDSyMyCnZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuIDF9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIDB9fTsKaWYgKHBhcnNlSW50KG9iamVjdCkgIT09IDApIHsKICAkRVJST1IoJyMyOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiAxfSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiAwfX07IHBhcnNlSW50KG9iamVjdCkgPT09IDAuIEFjdHVhbDogJyArIChwYXJzZUludChvYmplY3QpKSk7Cn0gCgovL0NIRUNLIzMKdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4gMX0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4ge319fTsKaWYgKHBhcnNlSW50KG9iamVjdCkgIT09IDEpIHsKICAkRVJST1IoJyMzOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiAxfSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiB7fX19OyBwYXJzZUludChvYmplY3QpID09PSAxLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQob2JqZWN0KSkpOwp9CgovL0NIRUNLIzQKdHJ5IHsKICB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3Rocm93ICJlcnJvciJ9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIDF9fTsKICBpZiAocGFyc2VJbnQob2JqZWN0KSAhPT0gMSkgewogICAgJEVSUk9SKCcjNC4xOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3Rocm93ICJlcnJvciJ9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIDF9fTsgcGFyc2VJbnQob2JqZWN0KSA9PT0gMS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KG9iamVjdCkpKTsKICB9Cn0KY2F0Y2ggKGUpIHsKICBpZiAoZSA9PT0gImVycm9yIikgewogICAgJEVSUk9SKCcjNC4yOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3Rocm93ICJlcnJvciJ9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIDF9fTsgcGFyc2VJbnQob2JqZWN0KSBub3QgdGhyb3cgImVycm9yIicpOwogIH0gZWxzZSB7CiAgICAkRVJST1IoJyM0LjM6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7dGhyb3cgImVycm9yIn0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4gMX19OyBwYXJzZUludChvYmplY3QpIG5vdCB0aHJvdyBFcnJvci4gQWN0dWFsOiAnICsgKGUpKTsKICB9Cn0KCi8vQ0hFQ0sjNQp2YXIgb2JqZWN0ID0ge3RvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4gMX19OwppZiAocGFyc2VJbnQob2JqZWN0KSAhPT0gMSkgewogICRFUlJPUignIzU6IHZhciBvYmplY3QgPSB7dG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiAxfX07IHBhcnNlSW50KG9iamVjdCkgPT09IDEuIEFjdHVhbDogJyArIChwYXJzZUludChvYmplY3QpKSk7Cn0KCi8vQ0hFQ0sjNgp2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiB7fX0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4gMX19CmlmIChwYXJzZUludChvYmplY3QpICE9PSAxKSB7CiAgJEVSUk9SKCcjNjogdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4ge319LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIDF9fTsgcGFyc2VJbnQob2JqZWN0KSA9PT0gMS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KG9iamVjdCkpKTsKfQoKLy9DSEVDSyM3CnRyeSB7CiAgdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4gMX0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHt0aHJvdyAiZXJyb3IifX07CiAgcGFyc2VJbnQob2JqZWN0KTsKICAkRVJST1IoJyM3LjE6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuIDF9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7dGhyb3cgImVycm9yIn19OyBwYXJzZUludChvYmplY3QpIHRocm93ICJlcnJvciIuIEFjdHVhbDogJyArIChwYXJzZUludChvYmplY3QpKSk7Cn0gIApjYXRjaCAoZSkgewogIGlmIChlICE9PSAiZXJyb3IiKSB7CiAgICAkRVJST1IoJyM3LjI6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuIDF9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7dGhyb3cgImVycm9yIn19OyBwYXJzZUludChvYmplY3QpIHRocm93ICJlcnJvciIuIEFjdHVhbDogJyArIChlKSk7CiAgfSAKfQoKLy9DSEVDSyM4CnRyeSB7CiAgdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4ge319LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIHt9fX07CiAgcGFyc2VJbnQob2JqZWN0KTsKICAkRVJST1IoJyM4LjE6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuIHt9fSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiB7fX19OyBwYXJzZUludChvYmplY3QpIHRocm93IFR5cGVFcnJvci4gQWN0dWFsOiAnICsgKHBhcnNlSW50KG9iamVjdCkpKTsKfSAgCmNhdGNoIChlKSB7CiAgaWYgKChlIGluc3RhbmNlb2YgVHlwZUVycm9yKSAhPT0gdHJ1ZSkgewogICAgJEVSUk9SKCcjOC4yOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiB7fX0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4ge319fTsgcGFyc2VJbnQob2JqZWN0KSB0aHJvdyBUeXBlRXJyb3IuIEFjdHVhbDogJyArIChlKSk7CiAgfSAKfQoKIH0KfSk7Cgo=","id":"S15.1.2.2_A1_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTJfVDEiLAoKcGF0aDogIjE1LjEuMi4yIiwKCmRlc2NyaXB0aW9uOiAiU3RyV2hpdGVTcGFjZUNoYXIgOjogVEFCIChVKzAwMDkpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKHBhcnNlSW50KCJcdTAwMDkxIikgIT09IHBhcnNlSW50KCIxIikpIHsKICAkRVJST1IoJyMxOiBwYXJzZUludCgiXFx1MDAwOTEiKSA9PT0gcGFyc2VJbnQoIjEiKS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCJcdTAwMDkxIikpKTsKfQoKLy9DSEVDSyMyCmlmIChwYXJzZUludCgiXHUwMDA5XHUwMDA5LTEiKSAhPT0gcGFyc2VJbnQoIi0xIikpIHsKICAkRVJST1IoJyMyOiBwYXJzZUludCgiXFx1MDAwOVxcdTAwMDktMSIpID09PSBwYXJzZUludCgiLTEiKS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCJcdTAwMDlcdTAwMDktMSIpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAocGFyc2VJbnQoIgkxIikgIT09IHBhcnNlSW50KCIxIikpIHsKICAkRVJST1IoJyMzOiBwYXJzZUludCgiCTEiKSA9PT0gcGFyc2VJbnQoIjEiKS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIJMSIpKSk7Cn0KCi8vQ0hFQ0sjNAppZiAocGFyc2VJbnQoIgkJCTEiKSAhPT0gcGFyc2VJbnQoIjEiKSkgewogICRFUlJPUignIzQ6IHBhcnNlSW50KCIJCQkxIikgPT09IHBhcnNlSW50KCIxIikuIEFjdHVhbDogJyArIChwYXJzZUludCgiCQkJMSIpKSk7Cn0KCi8vQ0hFQ0sjNQppZiAocGFyc2VJbnQoIgkJCVx1MDAwOQkJCVx1MDAwOS0xIikgIT09IHBhcnNlSW50KCItMSIpKSB7CiAgJEVSUk9SKCcjNTogcGFyc2VJbnQoIgkJCVxcdTAwMDkJCQlcXHUwMDA5LTEiKSA9PT0gcGFyc2VJbnQoIi0xIikuIEFjdHVhbDogJyArIChwYXJzZUludCgiCQkJXHUwMDA5CQkJXHUwMDA5LTEiKSkpOwp9CgovL0NIRUNLIzYKaWYgKGlzTmFOKHBhcnNlSW50KCJcdTAwMDkiKSkgIT09IHRydWUpIHsKICAkRVJST1IoJyM2OiBwYXJzZUludCgiXFx1MDAwOSIpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUludCgiXHUwMDA5IikpKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.2.2_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTJfVDEwIiwKCnBhdGg6ICIxNS4xLjIuMiIsCgpkZXNjcmlwdGlvbjogIlN0cldoaXRlU3BhY2VDaGFyIDo6IFVTUCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMKdmFyIGNvdW50ID0gMDsKdmFyIGVycm9yQ291bnQgPSAwOwp2YXIgdXNwVSA9IFsiXHUxNjgwIiwgIlx1MTgwRSIsICJcdTIwMDAiLCAiXHUyMDAxIiwgIlx1MjAwMiIsICJcdTIwMDMiLCAiXHUyMDA0IiwgIlx1MjAwNSIsICJcdTIwMDYiLCAiXHUyMDA3IiwgIlx1MjAwOCIsICJcdTIwMDkiLCAiXHUyMDBBIiwgIlx1MjAyRiIsICJcdTIwNUYiLCAiXHUzMDAwIl07CnZhciB1c3BTID0gWyIxNjgwIiwgIjE4MEUiLCAiMjAwMCIsICIyMDAxIiwgIjIwMDIiLCAiMjAwMyIsICIyMDA0IiwgIjIwMDUiLCAiMjAwNiIsICIyMDA3IiwgIjIwMDgiLCAiMjAwOSIsICIyMDBBIiwgIjIwMkYiLCAiMjA1RiIsICIzMDAwIl07Cgpmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgdXNwVS5sZW5ndGg7IGluZGV4KyspIHsKICB2YXIgcmVzdWx0ID0gdHJ1ZTsKICBpZiAocGFyc2VJbnQodXNwVVtpbmRleF0gKyAiMSIpICE9PSBwYXJzZUludCgiMSIpKSB7CiAgICAkRVJST1IoJyMxLicgKyAgdXNwU1tpbmRleF0gKyAnICcpOwogICAgcmVzdWx0ID0gZmFsc2U7CiAgfQogICBpZiAocGFyc2VJbnQodXNwVVtpbmRleF0gKyB1c3BVW2luZGV4XSArIHVzcFVbaW5kZXhdICsgIjEiKSAhPT0gcGFyc2VJbnQoIjEiKSkgewogICAgJEVSUk9SKCcjMi4nICsgIHVzcFNbaW5kZXhdICsgJyAnKTsKICAgIHJlc3VsdCA9IGZhbHNlOwogIH0KICBpZiAoaXNOYU4ocGFyc2VJbnQodXNwVVtpbmRleF0pKSAhPT0gdHJ1ZSkgewogICAgJEVSUk9SKCcjMy4nICsgIHVzcFNbaW5kZXhdICsgJyAnKTsKICAgIHJlc3VsdCA9IGZhbHNlOwogIH0KICBpZiAocmVzdWx0ICE9PSB0cnVlKSB7CiAgICAgIGVycm9yQ291bnQrKzsKICB9CiAgY291bnQrKzsKfQoKaWYgKGVycm9yQ291bnQgPiAwKSB7ICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.2_A2_T10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTJfVDIiLAoKcGF0aDogIjE1LjEuMi4yIiwKCmRlc2NyaXB0aW9uOiAiU3RyV2hpdGVTcGFjZUNoYXIgOjogU1AgKFUrMDAyMCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAocGFyc2VJbnQoIlx1MDAyMDEiKSAhPT0gcGFyc2VJbnQoIjEiKSkgewogICRFUlJPUignIzE6IHBhcnNlSW50KCJcXHUwMDIwMSIpID09PSBwYXJzZUludCgiMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIlx1MDAyMDEiKSkpOwp9CgovL0NIRUNLIzIKaWYgKHBhcnNlSW50KCJcdTAwMjBcdTAwMjAtMSIpICE9PSBwYXJzZUludCgiLTEiKSkgewogICRFUlJPUignIzI6IHBhcnNlSW50KCJcXHUwMDIwXFx1MDAyMC0xIikgPT09IHBhcnNlSW50KCItMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIlx1MDAyMFx1MDAyMC0xIikpKTsKfQoKLy9DSEVDSyMzCmlmIChwYXJzZUludCgiIDEiKSAhPT0gcGFyc2VJbnQoIjEiKSkgewogICRFUlJPUignIzM6IHBhcnNlSW50KCIgMSIpID09PSBwYXJzZUludCgiMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIiAxIikpKTsKfQoKLy9DSEVDSyM0CmlmIChwYXJzZUludCgiICAgICAgIDEiKSAhPT0gcGFyc2VJbnQoIjEiKSkgewogICRFUlJPUignIzQ6IHBhcnNlSW50KCIgICAgICAgMSIpID09PSBwYXJzZUludCgiMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIiAgICAgICAxIikpKTsKfQoKLy9DSEVDSyM1CmlmIChwYXJzZUludCgiICAgICAgIFx1MDAyMCAgICAgICBcdTAwMjAtMSIpICE9PSBwYXJzZUludCgiLTEiKSkgewogICRFUlJPUignIzU6IHBhcnNlSW50KCIgICAgICAgXFx1MDAyMCAgICAgICBcXHUwMDIwLTEiKSA9PT0gcGFyc2VJbnQoIi0xIikuIEFjdHVhbDogJyArIChwYXJzZUludCgiICAgICAgIFx1MDAyMCAgICAgICBcdTAwMjAtMSIpKSk7Cn0KCi8vQ0hFQ0sjNgppZiAoaXNOYU4ocGFyc2VJbnQoIlx1MDAyMCIpKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzY6IHBhcnNlSW50KCJcXHUwMDIwIikgPT09IE5vdC1hLU51bWJlci4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCJcdTAwMjAiKSkpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.2_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTJfVDMiLAoKcGF0aDogIjE1LjEuMi4yIiwKCmRlc2NyaXB0aW9uOiAiU3RyV2hpdGVTcGFjZUNoYXIgOjogTkJTQiAoVSswMEEwKSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChwYXJzZUludCgiXHUwMEEwMSIpICE9PSBwYXJzZUludCgiMSIpKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VJbnQoIlxcdTAwQTAxIikgPT09IHBhcnNlSW50KCIxIikuIEFjdHVhbDogJyArIChwYXJzZUludCgiXHUwMEEwMSIpKSk7Cn0KCi8vQ0hFQ0sjMgppZiAocGFyc2VJbnQoIlx1MDBBMFx1MDBBMC0xIikgIT09IHBhcnNlSW50KCItMSIpKSB7CiAgJEVSUk9SKCcjMjogcGFyc2VJbnQoIlxcdTAwQTBcXHUwMEEwLTEiKSA9PT0gcGFyc2VJbnQoIi0xIikuIEFjdHVhbDogJyArIChwYXJzZUludCgiXHUwMEEwXHUwMEEwLTEiKSkpOwp9CgovL0NIRUNLIzMKaWYgKGlzTmFOKHBhcnNlSW50KCJcdTAwQTAiKSkgIT09IHRydWUpIHsKICAkRVJST1IoJyMzOiBwYXJzZUludCgiXFx1MDBBMCIpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUludCgiXHUwMEEwIikpKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.2.2_A2_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTJfVDQiLAoKcGF0aDogIjE1LjEuMi4yIiwKCmRlc2NyaXB0aW9uOiAiU3RyV2hpdGVTcGFjZUNoYXIgOjogRkYgKFUrMDAwQykiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAocGFyc2VJbnQoIlx1MDAwQzEiKSAhPT0gcGFyc2VJbnQoIjEiKSkgewogICRFUlJPUignIzE6IHBhcnNlSW50KCJcXHUwMDBDMSIpID09PSBwYXJzZUludCgiMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIlx1MDAwQzEiKSkpOwp9CgovL0NIRUNLIzIKaWYgKHBhcnNlSW50KCJcdTAwMENcdTAwMEMtMSIpICE9PSBwYXJzZUludCgiLTEiKSkgewogICRFUlJPUignIzI6IHBhcnNlSW50KCJcXHUwMDBDXFx1MDAwQy0xIikgPT09IHBhcnNlSW50KCItMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIlx1MDAwQ1x1MDAwQy0xIikpKTsKfQoKLy9DSEVDSyMzCmlmIChpc05hTihwYXJzZUludCgiXHUwMDBDIikpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMzogcGFyc2VJbnQoIlxcdTAwMEMiKSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIlx1MDAwQyIpKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.2_A2_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTJfVDUiLAoKcGF0aDogIjE1LjEuMi4yIiwKCmRlc2NyaXB0aW9uOiAiU3RyV2hpdGVTcGFjZUNoYXIgOjogVlQgKFUrMDAwQikiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAocGFyc2VJbnQoIlx1MDAwQjEiKSAhPT0gcGFyc2VJbnQoIjEiKSkgewogICRFUlJPUignIzE6IHBhcnNlSW50KCJcXHUwMDBCMSIpID09PSBwYXJzZUludCgiMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIlx1MDAwQjEiKSkpOwp9CgovL0NIRUNLIzIKaWYgKHBhcnNlSW50KCJcdTAwMEJcdTAwMEItMSIpICE9PSBwYXJzZUludCgiLTEiKSkgewogICRFUlJPUignIzI6IHBhcnNlSW50KCJcXHUwMDBCXFx1MDAwQi0xIikgPT09IHBhcnNlSW50KCItMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIlx1MDAwQlx1MDAwQi0xIikpKTsKfQoKLy9DSEVDSyMzCmlmIChpc05hTihwYXJzZUludCgiXHUwMDBCIikpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMzogcGFyc2VJbnQoIlxcdTAwMEIiKSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIlx1MDAwQiIpKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.2_A2_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTJfVDYiLAoKcGF0aDogIjE1LjEuMi4yIiwKCmRlc2NyaXB0aW9uOiAiU3RyV2hpdGVTcGFjZUNoYXIgOjogQ1IgKFUrMDAwRCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAocGFyc2VJbnQoIlx1MDAwRDEiKSAhPT0gcGFyc2VJbnQoIjEiKSkgewogICRFUlJPUignIzE6IHBhcnNlSW50KCJcXHUwMDBEMSIpID09PSBwYXJzZUludCgiMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIlx1MDAwRDEiKSkpOwp9CgovL0NIRUNLIzIKaWYgKHBhcnNlSW50KCJcdTAwMERcdTAwMEQtMSIpICE9PSBwYXJzZUludCgiLTEiKSkgewogICRFUlJPUignIzI6IHBhcnNlSW50KCJcXHUwMDBEXFx1MDAwRC0xIikgPT09IHBhcnNlSW50KCItMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIlx1MDAwRFx1MDAwRC0xIikpKTsKfQoKLy9DSEVDSyMzCmlmIChpc05hTihwYXJzZUludCgiXHUwMDBEIikpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMzogcGFyc2VJbnQoIlxcdTAwMEQiKSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIlx1MDAwRCIpKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.2_A2_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTJfVDciLAoKcGF0aDogIjE1LjEuMi4yIiwKCmRlc2NyaXB0aW9uOiAiU3RyV2hpdGVTcGFjZUNoYXIgOjogTEYgKFUrMDAwQSkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAocGFyc2VJbnQoIlx1MDAwQTEiKSAhPT0gcGFyc2VJbnQoIjEiKSkgewogICRFUlJPUignIzE6IHBhcnNlSW50KCJcXHUwMDBBMSIpID09PSBwYXJzZUludCgiMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIlx1MDAwQTEiKSkpOwp9CgovL0NIRUNLIzIKaWYgKHBhcnNlSW50KCJcdTAwMEFcdTAwMEEtMSIpICE9PSBwYXJzZUludCgiLTEiKSkgewogICRFUlJPUignIzI6IHBhcnNlSW50KCJcXHUwMDBBXFx1MDAwQS0xIikgPT09IHBhcnNlSW50KCItMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIlx1MDAwQVx1MDAwQS0xIikpKTsKfQoKLy9DSEVDSyMzCmlmIChpc05hTihwYXJzZUludCgiXHUwMDBBIikpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMzogcGFyc2VJbnQoIlxcdTAwMEEiKSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIlx1MDAwQSIpKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.2_A2_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTJfVDgiLAoKcGF0aDogIjE1LjEuMi4yIiwKCmRlc2NyaXB0aW9uOiAiU3RyV2hpdGVTcGFjZUNoYXIgOjogTFMgKFUrMjAyOCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAocGFyc2VJbnQoIlx1MjAyODEiKSAhPT0gcGFyc2VJbnQoIjEiKSkgewogICRFUlJPUignIzE6IHBhcnNlSW50KCJcXHUyMDI4MSIpID09PSBwYXJzZUludCgiMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIlx1MjAyODEiKSkpOwp9CgovL0NIRUNLIzIKaWYgKHBhcnNlSW50KCJcdTIwMjhcdTIwMjgtMSIpICE9PSBwYXJzZUludCgiLTEiKSkgewogICRFUlJPUignIzI6IHBhcnNlSW50KCJcXHUyMDI4XFx1MjAyOC0xIikgPT09IHBhcnNlSW50KCItMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIlx1MjAyOFx1MjAyOC0xIikpKTsKfQoKLy9DSEVDSyMzCmlmIChpc05hTihwYXJzZUludCgiXHUyMDI4IikpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMzogcGFyc2VJbnQoIlxcdTIwMjgiKSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIlx1MjAyOCIpKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.2_A2_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTJfVDkiLAoKcGF0aDogIjE1LjEuMi4yIiwKCmRlc2NyaXB0aW9uOiAiU3RyV2hpdGVTcGFjZUNoYXIgOjogUFMgKFUrMjAyOSkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAocGFyc2VJbnQoIlx1MjAyOTEiKSAhPT0gcGFyc2VJbnQoIjEiKSkgewogICRFUlJPUignIzE6IHBhcnNlSW50KCJcXHUyMDI5MSIpID09PSBwYXJzZUludCgiMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIlx1MjAyOTEiKSkpOwp9CgovL0NIRUNLIzIKaWYgKHBhcnNlSW50KCJcdTIwMjlcdTIwMjktMSIpICE9PSBwYXJzZUludCgiLTEiKSkgewogICRFUlJPUignIzI6IHBhcnNlSW50KCJcXHUyMDI5XFx1MjAyOS0xIikgPT09IHBhcnNlSW50KCItMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIlx1MjAyOVx1MjAyOS0xIikpKTsKfQoKLy9DSEVDSyMzCmlmIChpc05hTihwYXJzZUludCgiXHUyMDI5IikpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMzogcGFyc2VJbnQoIlxcdTIwMjkiKSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIlx1MjAyOSIpKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.2_A2_T9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTMuMV9UMSIsCgpwYXRoOiAiMTUuMS4yLjIsIDkuMyIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGZvciBib29sZWFuIHByaW1pdGl2ZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChwYXJzZUludCgiMTEiLCBmYWxzZSkgIT09IHBhcnNlSW50KCIxMSIsIDEwKSkgewogICRFUlJPUignIzE6IHBhcnNlSW50KCIxMSIsIGZhbHNlKSA9PT0gcGFyc2VJbnQoIjExIiwgMTApLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjExIiwgZmFsc2UpKSk7Cn0KCi8vQ0hFQ0sjMgppZiAoaXNOYU4ocGFyc2VJbnQoIjExIiwgdHJ1ZSkpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMjogcGFyc2VJbnQoIjExIiwgdHJ1ZSkgPT09IE5vdC1hLU51bWJlci4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIxMSIsIHRydWUpKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.2_A3.1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTMuMV9UMiIsCgpwYXRoOiAiMTUuMS4yLjIsIDkuMyIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGZvciBzdHJpbmcgcHJpbWl0aXZlIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKHBhcnNlSW50KCIxMSIsICIyIikgIT09IHBhcnNlSW50KCIxMSIsIDIpKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VJbnQoIjExIiwgIjIiKSA9PT0gcGFyc2VJbnQoIjExIiwgMikuIEFjdHVhbDogJyArIChwYXJzZUludCgiMTEiLCAiMiIpKSk7Cn0KCi8vQ0hFQ0sjMgppZiAocGFyc2VJbnQoIjExIiwgIjAiKSAhPT0gcGFyc2VJbnQoIjExIiwgMTApKSB7CiAgJEVSUk9SKCcjMjogcGFyc2VJbnQoIjExIiwgIjAiKSA9PT0gcGFyc2VJbnQoIjExIiwgMTApLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjExIiwgIjAiKSkpOwp9CgovL0NIRUNLIzMKaWYgKHBhcnNlSW50KCIxMSIsICIiKSAhPT0gcGFyc2VJbnQoIjExIiwgMTApKSB7CiAgJEVSUk9SKCcjMzogcGFyc2VJbnQoIjExIiwgIiIpID09PSBwYXJzZUludCgiMTEiLCAxMCkuIEFjdHVhbDogJyArIChwYXJzZUludCgiMTEiLCAiIikpKTsKfQoKCiB9Cn0pOwoK","id":"S15.1.2.2_A3.1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTMuMV9UMyIsCgpwYXRoOiAiMTUuMS4yLjIsIDkuMyIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGZvciB1bmRlZmluZWQgYW5kIG51bGwiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAocGFyc2VJbnQoIjExIiwgdW5kZWZpbmVkKSAhPT0gcGFyc2VJbnQoIjExIiwgMTApKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VJbnQoIjExIiwgdW5kZWZpbmVkKSA9PT0gcGFyc2VJbnQoIjExIiwgMTApLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjExIiwgdW5kZWZpbmVkKSkpOwp9CgovL0NIRUNLIzIKaWYgKHBhcnNlSW50KCIxMSIsIG51bGwpICE9PSBwYXJzZUludCgiMTEiLCAxMCkpIHsKICAkRVJST1IoJyMyOiBwYXJzZUludCgiMTEiLCBudWxsKSA9PT0gcGFyc2VJbnQoIjExIiwgMTApLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjExIiwgbnVsbCkpKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.2.2_A3.1_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTMuMV9UNCIsCgpwYXRoOiAiMTUuMS4yLjIsIDkuMyIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGZvciBCb29sZWFuIG9iamVjdCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChwYXJzZUludCgiMTEiLCBuZXcgQm9vbGVhbihmYWxzZSkpICE9PSBwYXJzZUludCgiMTEiLCBmYWxzZSkpIHsKICAkRVJST1IoJyMxOiBwYXJzZUludCgiMTEiLCBuZXcgQm9vbGVhbihmYWxzZSkpID09PSBwYXJzZUludCgiMTEiLCBmYWxzZSkuIEFjdHVhbDogJyArIChwYXJzZUludCgiMTEiLCBuZXcgQm9vbGVhbihmYWxzZSkpKSk7Cn0KCi8vQ0hFQ0sjMgppZiAoaXNOYU4ocGFyc2VJbnQoIjExIiwgbmV3IEJvb2xlYW4odHJ1ZSkpKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzI6IHBhcnNlSW50KCIxMSIsIG5ldyBCb29sZWFuKHRydWUpKSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjExIiwgbmV3IEJvb2xlYW4odHJ1ZSkpKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.2_A3.1_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTMuMV9UNSIsCgpwYXRoOiAiMTUuMS4yLjIsIDkuMyIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGZvciBOdW1iZXIgb2JqZWN0IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKHBhcnNlSW50KCIxMSIsIG5ldyBOdW1iZXIoMikpICE9PSBwYXJzZUludCgiMTEiLCAyKSkgewogICRFUlJPUignIzE6IHBhcnNlSW50KCIxMSIsIG5ldyBOdW1iZXIoMikpID09PSBwYXJzZUludCgiMTEiLCAyKS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIxMSIsIG5ldyBOdW1iZXIoMikpKSk7Cn0KCi8vQ0hFQ0sjMgppZiAocGFyc2VJbnQoIjExIiwgbmV3IE51bWJlcihJbmZpbml0eSkpICE9PSBwYXJzZUludCgiMTEiLCBJbmZpbml0eSkpIHsKICAkRVJST1IoJyMyOiBwYXJzZUludCgiMTEiLCBuZXcgTnVtYmVyKEluZmluaXR5KSkgPT09IHBhcnNlSW50KCIxMSIsIEluZmluaXR5KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIxMSIsIG5ldyBOdW1iZXIoSW5maW5pdHkpKSkpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.2_A3.1_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTMuMV9UNiIsCgpwYXRoOiAiMTUuMS4yLjIsIDkuMyIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGZvciBTdHJpbmcgb2JqZWN0IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKHBhcnNlSW50KCIxMSIsIG5ldyBTdHJpbmcoIjIiKSkgIT09IHBhcnNlSW50KCIxMSIsIDIpKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VJbnQoIjExIiwgbmV3IFN0cmluZygiMiIpKSA9PT0gcGFyc2VJbnQoIjExIiwgMikuIEFjdHVhbDogJyArIChwYXJzZUludCgiMTEiLCBuZXcgU3RyaW5nKCIyIikpKSk7Cn0KCi8vQ0hFQ0sjMgppZiAocGFyc2VJbnQoIjExIiwgbmV3IFN0cmluZygiSW5maW5pdHkiKSkgIT09IHBhcnNlSW50KCIxMSIsIEluZmluaXR5KSkgewogICRFUlJPUignIzI6IHBhcnNlSW50KCIxMSIsIG5ldyBTdHJpbmcoIkluZmluaXR5IikpID09PSBwYXJzZUludCgiMTEiLCBJbmZpbml0eSkuIEFjdHVhbDogJyArIChwYXJzZUludCgiMTEiLCBuZXcgU3RyaW5nKCJJbmZpbml0eSIpKSkpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.2_A3.1_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTMuMV9UNyIsCgpwYXRoOiAiMTUuMS4yLjIsIDkuMywgOC42LjIuNiIsCgpkZXNjcmlwdGlvbjogIklmIFR5cGUodmFsdWUpIGlzIE9iamVjdCwgZXZhbHVhdGUgVG9QcmltaXRpdmUodmFsdWUsIE51bWJlcikiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiAyfX07CmlmIChwYXJzZUludCgiMTEiLCBvYmplY3QpICE9PSBwYXJzZUludCgiMTEiLCAyKSkgewogICRFUlJPUignIzE6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuIDJ9fTsgcGFyc2VJbnQoIjExIiwgb2JqZWN0KSA9PT0gcGFyc2VJbnQoIjExIiwgMikuIEFjdHVhbDogJyArIChwYXJzZUludCgiMTEiLCBvYmplY3QpKSk7Cn0KCi8vQ0hFQ0sjMgp2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiAyfSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiAxfX07CmlmIChwYXJzZUludCgiMTEiLCBvYmplY3QpICE9PSBwYXJzZUludCgiMTEiLCAyKSkgewogICRFUlJPUignIzI6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuIDJ9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIDF9fTsgcGFyc2VJbnQoIjExIiwgb2JqZWN0KSA9PT0gcGFyc2VJbnQoIjExIiwgMikuIEFjdHVhbDogJyArIChwYXJzZUludCgiMTEiLCBvYmplY3QpKSk7Cn0gCgovL0NIRUNLIzMKdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4gMn0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4ge319fTsKaWYgKHBhcnNlSW50KCIxMSIsIG9iamVjdCkgIT09IHBhcnNlSW50KCIxMSIsIDIpKSB7CiAgJEVSUk9SKCcjMzogdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4gMn0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4ge319fTsgcGFyc2VJbnQoIjExIiwgb2JqZWN0KSA9PT0gcGFyc2VJbnQoIjExIiwgMikuIEFjdHVhbDogJyArIChwYXJzZUludCgiMTEiLCBvYmplY3QpKSk7Cn0KCi8vQ0hFQ0sjNAp0cnkgewogIHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuIDJ9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7dGhyb3cgImVycm9yIn19OwogIGlmIChwYXJzZUludCgiMTEiLCBvYmplY3QpICE9PSBwYXJzZUludCgiMTEiLCAyKSkgewogICAgJEVSUk9SKCcjNC4xOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiAyfSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3Rocm93ICJlcnJvciJ9fTsgcGFyc2VJbnQoIjExIiwgb2JqZWN0KSA9PT0gcGFyc2VJbnQoIjExIiwgMikuIEFjdHVhbDogJyArIChwYXJzZUludCgiMTEiLCBvYmplY3QpKSk7CiAgfQp9CmNhdGNoIChlKSB7CiAgaWYgKGUgPT09ICJlcnJvciIpIHsKICAgICRFUlJPUignIzQuMjogdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4gMn0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHt0aHJvdyAiZXJyb3IifX07IHBhcnNlSW50KCIxMSIsIG9iamVjdCkgbm90IHRocm93ICJlcnJvciInKTsKICB9IGVsc2UgewogICAgJEVSUk9SKCcjNC4zOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiAyfSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3Rocm93ICJlcnJvciJ9fTsgcGFyc2VJbnQoIjExIiwgb2JqZWN0KSBub3QgdGhyb3cgRXJyb3IuIEFjdHVhbDogJyArIChlKSk7CiAgfQp9CgovL0NIRUNLIzUKdmFyIG9iamVjdCA9IHt0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIDJ9fTsKaWYgKHBhcnNlSW50KCIxMSIsIG9iamVjdCkgIT09IHBhcnNlSW50KCIxMSIsIDIpKSB7CiAgJEVSUk9SKCcjNTogdmFyIG9iamVjdCA9IHt0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIDJ9fTsgcGFyc2VJbnQoIjExIiwgb2JqZWN0KSA9PT0gcGFyc2VJbnQoIjExIiwgMikuIEFjdHVhbDogJyArIChwYXJzZUludCgiMTEiLCBvYmplY3QpKSk7Cn0KCi8vQ0hFQ0sjNgp2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiB7fX0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4gMn19CmlmIChwYXJzZUludCgiMTEiLCBvYmplY3QpICE9PSBwYXJzZUludCgiMTEiLCAyKSkgewogICRFUlJPUignIzY6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuIHt9fSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiAyfX07IHBhcnNlSW50KCIxMSIsIG9iamVjdCkgPT09IHBhcnNlSW50KCIxMSIsIDIpLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjExIiwgb2JqZWN0KSkpOwp9CgovL0NIRUNLIzcKdHJ5IHsKICB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3Rocm93ICJlcnJvciJ9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIDJ9fTsKICBwYXJzZUludCgiMTEiLCBvYmplY3QpOwogICRFUlJPUignIzcuMTogdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHt0aHJvdyAiZXJyb3IifSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiAyfX07IHBhcnNlSW50KCIxMSIsIG9iamVjdCkgdGhyb3cgImVycm9yIi4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIxMSIsIG9iamVjdCkpKTsKfSAgCmNhdGNoIChlKSB7CiAgaWYgKGUgIT09ICJlcnJvciIpIHsKICAgICRFUlJPUignIzcuMjogdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHt0aHJvdyAiZXJyb3IifSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiAyfX07IHBhcnNlSW50KCIxMSIsIG9iamVjdCkgdGhyb3cgImVycm9yIi4gQWN0dWFsOiAnICsgKGUpKTsKICB9IAp9CgovL0NIRUNLIzgKdHJ5IHsKICB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiB7fX0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4ge319fTsKICBwYXJzZUludCgiMTEiLCBvYmplY3QpOwogICRFUlJPUignIzguMTogdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4ge319LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIHt9fX07IHBhcnNlSW50KCIxMSIsIG9iamVjdCkgdGhyb3cgVHlwZUVycm9yLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjExIiwgb2JqZWN0KSkpOwp9ICAKY2F0Y2ggKGUpIHsKICBpZiAoKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpICE9PSB0cnVlKSB7CiAgICAkRVJST1IoJyM4LjI6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuIHt9fSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiB7fX19OyBwYXJzZUludCgiMTEiLCBvYmplY3QpIHRocm93IFR5cGVFcnJvci4gQWN0dWFsOiAnICsgKGUpKTsKICB9IAp9CgogfQp9KTsKCg==","id":"S15.1.2.2_A3.1_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTMuMl9UMSIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJJZiByYWRpeCBpcyBOYU4sICswLCAtMCwgK0luZmluaXR5LCAtSW5maW5pdHksIHJldHVybiByYWRpeCA9ICswIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKHBhcnNlSW50KCIxMSIsIE5hTikgIT09IHBhcnNlSW50KCIxMSIsIDEwKSkgewogICRFUlJPUignIzE6IHBhcnNlSW50KCIxMSIsIE5hTikgPT09IHBhcnNlSW50KCIxMSIsIDEwKS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIxMSIsIE5hTikpKTsKfQoKLy9DSEVDSyMyCmlmIChwYXJzZUludCgiMTEiLCArMCkgIT09IHBhcnNlSW50KCIxMSIsIDEwKSkgewogICRFUlJPUignIzI6IHBhcnNlSW50KCIxMSIsICswKSA9PT0gcGFyc2VJbnQoIjExIiwgMTApLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjExIiwgKzApKSk7Cn0KCi8vQ0hFQ0sjMwppZiAocGFyc2VJbnQoIjExIiwgLTApICE9PSBwYXJzZUludCgiMTEiLCAxMCkpIHsKICAkRVJST1IoJyMzOiBwYXJzZUludCgiMTEiLCAtMCkgPT09IHBhcnNlSW50KCIxMSIsIDEwKS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIxMSIsIC0wKSkpOwp9CgovL0NIRUNLIzQKaWYgKHBhcnNlSW50KCIxMSIsIE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkgIT09IHBhcnNlSW50KCIxMSIsIDEwKSkgewogICRFUlJPUignIzQ6IHBhcnNlSW50KCIxMSIsIE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkgPT09IHBhcnNlSW50KCIxMSIsIDEwKS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIxMSIsIE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkpKTsKfQoKLy9DSEVDSyM1CmlmIChwYXJzZUludCgiMTEiLCBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkpICE9PSBwYXJzZUludCgiMTEiLCAxMCkpIHsKICAkRVJST1IoJyM1OiBwYXJzZUludCgiMTEiLCBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkpID09PSBwYXJzZUludCgiMTEiLCAxMCkuIEFjdHVhbDogJyArIChwYXJzZUludCgiMTEiLCBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkpKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.2_A3.2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTMuMl9UMiIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJUb0ludDMyIHVzZSBmbG9vciIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChwYXJzZUludCgiMTEiLCAyLjEpICE9PSBwYXJzZUludCgiMTEiLCAyKSkgewogICRFUlJPUignIzE6IHBhcnNlSW50KCIxMSIsIDIuMSkgPT09IHBhcnNlSW50KCIxMSIsIDIpLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjExIiwgMi4xKSkpOwp9CgovL0NIRUNLIzIKaWYgKHBhcnNlSW50KCIxMSIsIDIuNSkgIT09IHBhcnNlSW50KCIxMSIsIDIpKSB7CiAgJEVSUk9SKCcjMjogcGFyc2VJbnQoIjExIiwgMi41KSA9PT0gcGFyc2VJbnQoIjExIiwgMikuIEFjdHVhbDogJyArIChwYXJzZUludCgiMTEiLCAyLjUpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAocGFyc2VJbnQoIjExIiwgMi45KSAhPT0gcGFyc2VJbnQoIjExIiwgMikpIHsKICAkRVJST1IoJyMzOiBwYXJzZUludCgiMTEiLCAyLjkpID09PSBwYXJzZUludCgiMTEiLCAyKS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIxMSIsIDIuOSkpKTsKfQoKLy9DSEVDSyM0CmlmIChwYXJzZUludCgiMTEiLCAyLjAwMDAwMDAwMDAwMSkgIT09IHBhcnNlSW50KCIxMSIsIDIpKSB7CiAgJEVSUk9SKCcjNDogcGFyc2VJbnQoIjExIiwgMi4wMDAwMDAwMDAwMDEpID09PSBwYXJzZUludCgiMTEiLCAyKS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIxMSIsIDIuMDAwMDAwMDAwMDAxKSkpOwp9CgovL0NIRUNLIzUKaWYgKHBhcnNlSW50KCIxMSIsIDIuOTk5OTk5OTk5OTk5KSAhPT0gcGFyc2VJbnQoIjExIiwgMikpIHsKICAkRVJST1IoJyM1OiBwYXJzZUludCgiMTEiLCAyLjk5OTk5OTk5OTk5OSkgPT09IHBhcnNlSW50KCIxMSIsIDIpLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjExIiwgMi45OTk5OTk5OTk5OTkpKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.2_A3.2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTMuMl9UMyIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJUb0ludDMyIHVzZSBtb2R1bG8iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAocGFyc2VJbnQoIjExIiwgNDI5NDk2NzI5OCkgIT09IHBhcnNlSW50KCIxMSIsIDIpKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VJbnQoIjExIiwgNDI5NDk2NzI5OCkgPT09IHBhcnNlSW50KCIxMSIsIDIpLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjExIiwgNDI5NDk2NzI5OCkpKTsKfQoKLy9DSEVDSyMyCmlmIChwYXJzZUludCgiMTEiLCA0Mjk0OTY3Mjk2KSAhPT0gcGFyc2VJbnQoIjExIiwgMTApKSB7CiAgJEVSUk9SKCcjMjogcGFyc2VJbnQoIjExIiwgNDI5NDk2NzI5NikgPT09IHBhcnNlSW50KCIxMSIsIDEwKS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIxMSIsIDQyOTQ5NjcyOTYpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAoaXNOYU4ocGFyc2VJbnQoIjExIiwgLTIxNDc0ODM2NTApKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzM6IHBhcnNlSW50KCIxMSIsIDIxNDc0ODM2NTApID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUludCgiMTEiLCAyMTQ3NDgzNjUwKSkpOwp9CgovL0NIRUNLIzQKaWYgKHBhcnNlSW50KCIxMSIsIC00Mjk0OTY3Mjk0KSAhPT0gcGFyc2VJbnQoIjExIiwgMikpIHsKICAkRVJST1IoJyM0OiBwYXJzZUludCgiMTEiLCAtNDI5NDk2NzI5NCkgPT09IHBhcnNlSW50KCIxMSIsIDIpLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjExIiwgLTQyOTQ5NjcyOTQpKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.2_A3.2_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTQuMV9UMSIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJSID0gMCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMwCmlmIChwYXJzZUludCgiMCIsIDApICE9PSBwYXJzZUludCgiMCIsIDEwKSkgewogICRFUlJPUignIzA6IHBhcnNlSW50KCIwIiwgMCkgPT09IHBhcnNlSW50KCIwIiwgMTApLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjAiLCAwKSkpOwp9ICAKCi8vQ0hFQ0sjMQppZiAocGFyc2VJbnQoIjEiLCAwKSAhPT0gcGFyc2VJbnQoIjEiLCAxMCkpIHsKICAkRVJST1IoJyMxOiBwYXJzZUludCgiMSIsIDApID09PSBwYXJzZUludCgiMDEiLCAxMCkuIEFjdHVhbDogJyArIChwYXJzZUludCgiMSIsIDApKSk7Cn0gIAoKLy9DSEVDSyMyCmlmIChwYXJzZUludCgiMiIsIDApICE9PSBwYXJzZUludCgiMiIsIDEwKSkgewogICRFUlJPUignIzI6IHBhcnNlSW50KCIyIiwgMCkgPT09IHBhcnNlSW50KCIyIiwgMTApLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjIiLCAwKSkpOwp9ICAKCi8vQ0hFQ0sjMwppZiAocGFyc2VJbnQoIjMiLCAwKSAhPT0gcGFyc2VJbnQoIjMiLCAxMCkpIHsKICAkRVJST1IoJyMzOiBwYXJzZUludCgiMyIsIDApID09PSBwYXJzZUludCgiMyIsIDEwKS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIzIiwgMCkpKTsKfSAKCi8vQ0hFQ0sjNAppZiAocGFyc2VJbnQoIjQiLCAwKSAhPT0gcGFyc2VJbnQoIjQiLCAxMCkpIHsKICAkRVJST1IoJyM0OiBwYXJzZUludCgiNCIsIDApID09PSBwYXJzZUludCg0IiwgMTApLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjQiLCAwKSkpOwp9IAoKLy9DSEVDSyM1CmlmIChwYXJzZUludCgiNSIsIDApICE9PSBwYXJzZUludCgiNSIsIDEwKSkgewogICRFUlJPUignIzU6IHBhcnNlSW50KCI1IiwgMCkgPT09IHBhcnNlSW50KCI1IiwgMTApLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjUiLCAwKSkpOwp9ICAKCi8vQ0hFQ0sjNgppZiAocGFyc2VJbnQoIjYiLCAwKSAhPT0gcGFyc2VJbnQoIjYiLCAxMCkpIHsKICAkRVJST1IoJyM2OiBwYXJzZUludCgiNiIsIDApID09PSBwYXJzZUludCgiNiIsIDEwKS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCI2IiwgMCkpKTsKfSAgCgovL0NIRUNLIzcKaWYgKHBhcnNlSW50KCI3IiwgMCkgIT09IHBhcnNlSW50KCI3IiwgMTApKSB7CiAgJEVSUk9SKCcjNzogcGFyc2VJbnQoIjciLCAwKSA9PT0gcGFyc2VJbnQoIjciLCAxMCkuIEFjdHVhbDogJyArIChwYXJzZUludCgiNyIsIDApKSk7Cn0gIAoKLy9DSEVDSyM4CmlmIChwYXJzZUludCgiOCIsIDApICE9PSBwYXJzZUludCgiOCIsIDEwKSkgewogICRFUlJPUignIzg6IHBhcnNlSW50KCI4IiwgMCkgPT09IHBhcnNlSW50KCI4IiwgMTApLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjgiLCAwKSkpOwp9ICAKCi8vQ0hFQ0sjOQppZiAocGFyc2VJbnQoIjkiLCAwKSAhPT0gcGFyc2VJbnQoIjkiLCAxMCkpIHsKICAkRVJST1IoJyM5OiBwYXJzZUludCgiOSIsIDApID09PSBwYXJzZUludCgiOSIsIDEwKS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCI5IiwgMCkpKTsKfSAgCgovL0NIRUNLIzEwCmlmIChwYXJzZUludCgiMTAiLCAwKSAhPT0gcGFyc2VJbnQoIjEwIiwgMTApKSB7CiAgJEVSUk9SKCcjMTA6IHBhcnNlSW50KCIxMCIsIDApID09PSBwYXJzZUludCgiMTAiLCAxMCkuIEFjdHVhbDogJyArIChwYXJzZUludCgiMTAiLCAwKSkpOwp9ICAKCi8vQ0hFQ0sjMTEKaWYgKHBhcnNlSW50KCIxMSIsIDApICE9PSBwYXJzZUludCgiMTEiLCAxMCkpIHsKICAkRVJST1IoJyMxMTogcGFyc2VJbnQoIjExIiwgMCkgPT09IHBhcnNlSW50KCIxMSIsIDEwKS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIxMSIsIDApKSk7Cn0gIAoKLy9DSEVDSyMxMgppZiAocGFyc2VJbnQoIjk5OTkiLCAwKSAhPT0gcGFyc2VJbnQoIjk5OTkiLCAxMCkpIHsKICAkRVJST1IoJyMxMjogcGFyc2VJbnQoIjk5OTkiLCAwKSA9PT0gcGFyc2VJbnQoIjk5OTkiLCAxMCkuIEFjdHVhbDogJyArIChwYXJzZUludCgiOTk5OSIsIDApKSk7Cn0gIAoKIH0KfSk7Cgo=","id":"S15.1.2.2_A4.1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTQuMV9UMiIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJSID0gdW5kZWZpbmVkIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzAKaWYgKHBhcnNlSW50KCIwIikgIT09IHBhcnNlSW50KCIwIiwgMTApKSB7CiAgJEVSUk9SKCcjMDogcGFyc2VJbnQoIjAiKSA9PT0gcGFyc2VJbnQoIjAiLCAxMCkuIEFjdHVhbDogJyArIChwYXJzZUludCgiMCIpKSk7Cn0gIAoKLy9DSEVDSyMxCmlmIChwYXJzZUludCgiMSIpICE9PSBwYXJzZUludCgiMSIsIDEwKSkgewogICRFUlJPUignIzE6IHBhcnNlSW50KCIxIikgPT09IHBhcnNlSW50KCIwMSIsIDEwKS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIxIikpKTsKfSAgCgovL0NIRUNLIzIKaWYgKHBhcnNlSW50KCIyIikgIT09IHBhcnNlSW50KCIyIiwgMTApKSB7CiAgJEVSUk9SKCcjMjogcGFyc2VJbnQoIjIiKSA9PT0gcGFyc2VJbnQoIjIiLCAxMCkuIEFjdHVhbDogJyArIChwYXJzZUludCgiMiIpKSk7Cn0gIAoKLy9DSEVDSyMzCmlmIChwYXJzZUludCgiMyIpICE9PSBwYXJzZUludCgiMyIsIDEwKSkgewogICRFUlJPUignIzM6IHBhcnNlSW50KCIzIikgPT09IHBhcnNlSW50KCIzIiwgMTApLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjMiKSkpOwp9IAoKLy9DSEVDSyM0CmlmIChwYXJzZUludCgiNCIpICE9PSBwYXJzZUludCgiNCIsIDEwKSkgewogICRFUlJPUignIzQ6IHBhcnNlSW50KCI0IikgPT09IHBhcnNlSW50KDQiLCAxMCkuIEFjdHVhbDogJyArIChwYXJzZUludCgiNCIpKSk7Cn0gCgovL0NIRUNLIzUKaWYgKHBhcnNlSW50KCI1IikgIT09IHBhcnNlSW50KCI1IiwgMTApKSB7CiAgJEVSUk9SKCcjNTogcGFyc2VJbnQoIjUiKSA9PT0gcGFyc2VJbnQoIjUiLCAxMCkuIEFjdHVhbDogJyArIChwYXJzZUludCgiNSIpKSk7Cn0gIAoKLy9DSEVDSyM2CmlmIChwYXJzZUludCgiNiIpICE9PSBwYXJzZUludCgiNiIsIDEwKSkgewogICRFUlJPUignIzY6IHBhcnNlSW50KCI2IikgPT09IHBhcnNlSW50KCI2IiwgMTApLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjYiKSkpOwp9ICAKCi8vQ0hFQ0sjNwppZiAocGFyc2VJbnQoIjciKSAhPT0gcGFyc2VJbnQoIjciLCAxMCkpIHsKICAkRVJST1IoJyM3OiBwYXJzZUludCgiNyIpID09PSBwYXJzZUludCgiNyIsIDEwKS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCI3IikpKTsKfSAgCgovL0NIRUNLIzgKaWYgKHBhcnNlSW50KCI4IikgIT09IHBhcnNlSW50KCI4IiwgMTApKSB7CiAgJEVSUk9SKCcjODogcGFyc2VJbnQoIjgiKSA9PT0gcGFyc2VJbnQoIjgiLCAxMCkuIEFjdHVhbDogJyArIChwYXJzZUludCgiOCIpKSk7Cn0gIAoKLy9DSEVDSyM5CmlmIChwYXJzZUludCgiOSIpICE9PSBwYXJzZUludCgiOSIsIDEwKSkgewogICRFUlJPUignIzk6IHBhcnNlSW50KCI5IikgPT09IHBhcnNlSW50KCI5IiwgMTApLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjkiKSkpOwp9ICAKCi8vQ0hFQ0sjMTAKaWYgKHBhcnNlSW50KCIxMCIpICE9PSBwYXJzZUludCgiMTAiLCAxMCkpIHsKICAkRVJST1IoJyMxMDogcGFyc2VJbnQoIjEwIikgPT09IHBhcnNlSW50KCIxMCIsIDEwKS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIxMCIpKSk7Cn0gIAoKLy9DSEVDSyMxMQppZiAocGFyc2VJbnQoIjExIikgIT09IHBhcnNlSW50KCIxMSIsIDEwKSkgewogICRFUlJPUignIzExOiBwYXJzZUludCgiMTEiKSA9PT0gcGFyc2VJbnQoIjExIiwgMTApLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjExIikpKTsKfSAgCgovL0NIRUNLIzEyCmlmIChwYXJzZUludCgiOTk5OSIpICE9PSBwYXJzZUludCgiOTk5OSIsIDEwKSkgewogICRFUlJPUignIzEyOiBwYXJzZUludCgiOTk5OSIpID09PSBwYXJzZUludCgiOTk5OSIsIDEwKS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCI5OTk5IikpKTsKfSAgCgogfQp9KTsKCg==","id":"S15.1.2.2_A4.1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTQuMl9UMSIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJSID0gMSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMwCmlmIChpc05hTihwYXJzZUludCgiMCIsIDEpKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzA6IHBhcnNlSW50KCIwIiwgMSkgPT09IE5vdC1hLU51bWJlci4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIwIiwgMSkpKTsKfSAgCgovL0NIRUNLIzEKaWYgKGlzTmFOKHBhcnNlSW50KCIxIiwgMSkpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VJbnQoIjEiLCAxKSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjEiLCAxKSkpOwp9ICAKCi8vQ0hFQ0sjMgppZiAoaXNOYU4ocGFyc2VJbnQoIjIiLCAxKSkgIT09IHRydWUpIHsKICAkRVJST1IoJyMyOiBwYXJzZUludCgiMiIsIDEpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUludCgiMiIsIDEpKSk7Cn0gIAoKLy9DSEVDSyMzCmlmIChpc05hTihwYXJzZUludCgiMyIsIDEpKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzM6IHBhcnNlSW50KCIzIiwgMSkgPT09IE5vdC1hLU51bWJlci4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIzIiwgMSkpKTsKfSAKCi8vQ0hFQ0sjNAppZiAoaXNOYU4ocGFyc2VJbnQoIjQiLCAxKSkgIT09IHRydWUpIHsKICAkRVJST1IoJyM0OiBwYXJzZUludCgiNCIsIDEpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUludCgiNCIsIDEpKSk7Cn0gCgovL0NIRUNLIzUKaWYgKGlzTmFOKHBhcnNlSW50KCI1IiwgMSkpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjNTogcGFyc2VJbnQoIjUiLCAxKSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjUiLCAxKSkpOwp9ICAKCi8vQ0hFQ0sjNgppZiAoaXNOYU4ocGFyc2VJbnQoIjYiLCAxKSkgIT09IHRydWUpIHsKICAkRVJST1IoJyM2OiBwYXJzZUludCgiNiIsIDEpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUludCgiNiIsIDEpKSk7Cn0gIAoKLy9DSEVDSyM3CmlmIChpc05hTihwYXJzZUludCgiNyIsIDEpKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzc6IHBhcnNlSW50KCI3IiwgMSkgPT09IE5vdC1hLU51bWJlci4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCI3IiwgMSkpKTsKfSAgCgovL0NIRUNLIzgKaWYgKGlzTmFOKHBhcnNlSW50KCI4IiwgMSkpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjODogcGFyc2VJbnQoIjgiLCAxKSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjgiLCAxKSkpOwp9ICAKCi8vQ0hFQ0sjOQppZiAoaXNOYU4ocGFyc2VJbnQoIjkiLCAxKSkgIT09IHRydWUpIHsKICAkRVJST1IoJyM5OiBwYXJzZUludCgiOSIsIDEpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUludCgiOSIsIDEpKSk7Cn0gIAoKLy9DSEVDSyMxMAppZiAoaXNOYU4ocGFyc2VJbnQoIjEwIiwgMSkpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMTA6IHBhcnNlSW50KCIxMCIsIDEpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUludCgiMTAiLCAxKSkpOwp9ICAKCi8vQ0hFQ0sjMTEKaWYgKGlzTmFOKHBhcnNlSW50KCIxMSIsIDEpKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzExOiBwYXJzZUludCgiMTEiLCAxKSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjExIiwgMSkpKTsKfSAgCgogfQp9KTsKCg==","id":"S15.1.2.2_A4.2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTQuMl9UMiIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJSID0gMzciLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMAppZiAoaXNOYU4ocGFyc2VJbnQoIjAiLCAzNykpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMDogcGFyc2VJbnQoIjAiLCAzNykgPT09IE5vdC1hLU51bWJlci4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIwIiwgMzcpKSk7Cn0gIAoKLy9DSEVDSyMxCmlmIChpc05hTihwYXJzZUludCgiMSIsIDM3KSkgIT09IHRydWUpIHsKICAkRVJST1IoJyMxOiBwYXJzZUludCgiMSIsIDM3KSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjEiLCAzNykpKTsKfSAgCgovL0NIRUNLIzIKaWYgKGlzTmFOKHBhcnNlSW50KCIyIiwgMzcpKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzI6IHBhcnNlSW50KCIyIiwgMzcpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUludCgiMiIsIDM3KSkpOwp9ICAKCi8vQ0hFQ0sjMwppZiAoaXNOYU4ocGFyc2VJbnQoIjMiLCAzNykpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMzogcGFyc2VJbnQoIjMiLCAzNykgPT09IE5vdC1hLU51bWJlci4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIzIiwgMzcpKSk7Cn0gCgovL0NIRUNLIzQKaWYgKGlzTmFOKHBhcnNlSW50KCI0IiwgMzcpKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzQ6IHBhcnNlSW50KCI0IiwgMzcpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUludCgiNCIsIDM3KSkpOwp9IAoKLy9DSEVDSyM1CmlmIChpc05hTihwYXJzZUludCgiNSIsIDM3KSkgIT09IHRydWUpIHsKICAkRVJST1IoJyM1OiBwYXJzZUludCgiNSIsIDM3KSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjUiLCAzNykpKTsKfSAgCgovL0NIRUNLIzYKaWYgKGlzTmFOKHBhcnNlSW50KCI2IiwgMzcpKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzY6IHBhcnNlSW50KCI2IiwgMzcpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUludCgiNiIsIDM3KSkpOwp9ICAKCi8vQ0hFQ0sjNwppZiAoaXNOYU4ocGFyc2VJbnQoIjciLCAzNykpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjNzogcGFyc2VJbnQoIjciLCAzNykgPT09IE5vdC1hLU51bWJlci4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCI3IiwgMzcpKSk7Cn0gIAoKLy9DSEVDSyM4CmlmIChpc05hTihwYXJzZUludCgiOCIsIDM3KSkgIT09IHRydWUpIHsKICAkRVJST1IoJyM4OiBwYXJzZUludCgiOCIsIDM3KSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjgiLCAzNykpKTsKfSAgCgovL0NIRUNLIzkKaWYgKGlzTmFOKHBhcnNlSW50KCI5IiwgMzcpKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzk6IHBhcnNlSW50KCI5IiwgMzcpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUludCgiOSIsIDM3KSkpOwp9ICAKCi8vQ0hFQ0sjMTAKaWYgKGlzTmFOKHBhcnNlSW50KCIxMCIsIDM3KSkgIT09IHRydWUpIHsKICAkRVJST1IoJyMxMDogcGFyc2VJbnQoIjEwIiwgMzcpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUludCgiMTAiLCAzNykpKTsKfSAgCgovL0NIRUNLIzExCmlmIChpc05hTihwYXJzZUludCgiMTEiLCAzNykpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMTE6IHBhcnNlSW50KCIxMSIsIDM3KSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjExIiwgMzcpKSk7Cn0gIAoKIH0KfSk7Cgo=","id":"S15.1.2.2_A4.2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTQuMl9UMyIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3QiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjCnZhciBwb3cgPSAyOwpmb3IgKHZhciBpID0gMTsgaSA8IDMyOyBpKyspIHsgICAKICBpZiAocG93ID4gMzYpIHsgIAogICAgdmFyIHJlcyA9IHRydWU7ICAKICAgIGlmIChpc05hTihwYXJzZUludCgxLCBwb3cpKSAhPT0gdHJ1ZSkgewogICAgICAkRVJST1IoJyMxLicgKyBpICsgJzogSWYgUiA8IDIgb3IgUiA+IDM2LCB0aGVuIHJldHVybiBOYU4nKTsKICAgIH0KICAgIGlmIChpc05hTihwYXJzZUludCgxLCAtcG93KSkgIT09IHRydWUpIHsKICAgICAgJEVSUk9SKCcjMi4nICsgaSArICc6IElmIFIgPCAyIG9yIFIgPiAzNiwgdGhlbiByZXR1cm4gTmFOJyk7CiAgICB9CiAgfQogIHBvdyA9IHBvdyAqIDI7ICAgICAgICAgICAgICAgICAgICAgICAgCn0gICAgCgogfQp9KTsKCg==","id":"S15.1.2.2_A4.2_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTUuMV9UMSIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJFaXRoZXIgUiA9IDgsIG9yIFIgPSAxMCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMKdmFyIHJlczggPSAxOwp2YXIgcmVzMTAgPSAxOwppZiAocGFyc2VJbnQoIjA4IikgIT09IHBhcnNlSW50KCIwOCIsIDgpKSB7CiAgcmVzOCA9IDA7Cn0KaWYgKHBhcnNlSW50KCIwOCIpICE9PSBwYXJzZUludCgiMDgiLCAxMCkpIHsKICByZXMxMCA9IDA7Cn0KaWYgKHBhcnNlSW50KCIwOSIpICE9PSBwYXJzZUludCgiMDkiLCA4KSkgewogIHJlczggPSAwOwp9CmlmIChwYXJzZUludCgiMDkiKSAhPT0gcGFyc2VJbnQoIjA5IiwgMTApKSB7CiAgcmVzMTAgPSAwOwp9CmlmIChwYXJzZUludCgiMDEwIikgIT09IHBhcnNlSW50KCIwMTAiLCA4KSkgewogIHJlczggPSAwOwp9CmlmIChwYXJzZUludCgiMDEwIikgIT09IHBhcnNlSW50KCIwMTAiLCAxMCkpIHsKICByZXMxMCA9IDA7Cn0KaWYgKHJlczggKyByZXMxMCAhPT0gMSkgewogICRFUlJPUignIzE6IElmIHRoZSBsZW5ndGggb2YgUyBpcyBhdCBsZWFzdCAxIGFuZCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIFMgaXMgMCwgdGhlbiBhdCB0aGUgaW1wbGVtZW50YXRpb25cJ3MgZGlzY3JldGlvbiBlaXRoZXIgbGV0IFIgPSA4IG9yIFIgPSAxMCcpOwp9ICAgIAoKIH0KfSk7Cgo=","id":"S15.1.2.2_A5.1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTUuMl9UMSIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICI6IDB4IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzAKaWYgKHBhcnNlSW50KCIweDAiLCAwKSAgIT09IHBhcnNlSW50KCIwIiwgMTYpKSB7CiAgJEVSUk9SKCcjMDogcGFyc2VJbnQoIjB4MCIsIDApID09PSBwYXJzZUludCgiMCIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIweDAiLCAwKSkpOwp9CgovL0NIRUNLIzEKaWYgKHBhcnNlSW50KCIweDEiLCAwKSAgIT09IHBhcnNlSW50KCIxIiwgMTYpKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VJbnQoIjB4MSIsIDApID09PSBwYXJzZUludCgiMSIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIweDEiLCAwKSkpOwp9CgovL0NIRUNLIzIKaWYgKHBhcnNlSW50KCIweDIiLCAwKSAgIT09IHBhcnNlSW50KCIyIiwgMTYpKSB7CiAgJEVSUk9SKCcjMjogcGFyc2VJbnQoIjB4MiIsIDApID09PSBwYXJzZUludCgiMiIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIweDIiLCAwKSkpOwp9CgovL0NIRUNLIzMKaWYgKHBhcnNlSW50KCIweDMiLCAwKSAgIT09IHBhcnNlSW50KCIzIiwgMTYpKSB7CiAgJEVSUk9SKCcjMzogcGFyc2VJbnQoIjB4MyIsIDApID09PSBwYXJzZUludCgiMyIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIweDMiLCAwKSkpOwp9CgovL0NIRUNLIzQKaWYgKHBhcnNlSW50KCIweDQiLCAwKSAgIT09IHBhcnNlSW50KCI0IiwgMTYpKSB7CiAgJEVSUk9SKCcjNDogcGFyc2VJbnQoIjB4NCIsIDApID09PSBwYXJzZUludCgiNCIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIweDQiLCAwKSkpOwp9CgovL0NIRUNLIzUKaWYgKHBhcnNlSW50KCIweDUiLCAwKSAgIT09IHBhcnNlSW50KCI1IiwgMTYpKSB7CiAgJEVSUk9SKCcjNTogcGFyc2VJbnQoIjB4NSIsIDApID09PSBwYXJzZUludCgiNSIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIweDUiLCAwKSkpOwp9CgovL0NIRUNLIzYKaWYgKHBhcnNlSW50KCIweDYiLCAwKSAgIT09IHBhcnNlSW50KCI2IiwgMTYpKSB7CiAgJEVSUk9SKCcjNjogcGFyc2VJbnQoIjB4NiIsIDApID09PSBwYXJzZUludCgiNiIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIweDYiLCAwKSkpOwp9CgovL0NIRUNLIzcKaWYgKHBhcnNlSW50KCIweDciLCAwKSAgIT09IHBhcnNlSW50KCI3IiwgMTYpKSB7CiAgJEVSUk9SKCcjNzogcGFyc2VJbnQoIjB4NyIsIDApID09PSBwYXJzZUludCgiNyIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIweDciLCAwKSkpOwp9CgovL0NIRUNLIzgKaWYgKHBhcnNlSW50KCIweDgiLCAwKSAgIT09IHBhcnNlSW50KCI4IiwgMTYpKSB7CiAgJEVSUk9SKCcjODogcGFyc2VJbnQoIjB4OCIsIDApID09PSBwYXJzZUludCgiOCIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIweDgiLCAwKSkpOwp9CgovL0NIRUNLIzkKaWYgKHBhcnNlSW50KCIweDkiLCAwKSAgIT09IHBhcnNlSW50KCI5IiwgMTYpKSB7CiAgJEVSUk9SKCcjOTogcGFyc2VJbnQoIjB4OSIsIDApID09PSBwYXJzZUludCgiOSIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIweDkiLCAwKSkpOwp9CgovL0NIRUNLI0EKaWYgKHBhcnNlSW50KCIweEEiLCAwKSAgIT09IHBhcnNlSW50KCJBIiwgMTYpKSB7CiAgJEVSUk9SKCcjQTogcGFyc2VJbnQoIjB4QSIsIDApID09PSBwYXJzZUludCgiQSIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIweEEiLCAwKSkpOwp9CgovL0NIRUNLI0IKaWYgKHBhcnNlSW50KCIweEIiLCAwKSAgIT09IHBhcnNlSW50KCJCIiwgMTYpKSB7CiAgJEVSUk9SKCcjQjogcGFyc2VJbnQoIjB4QiIsIDApID09PSBwYXJzZUludCgiQiIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIweEIiLCAwKSkpOwp9CgovL0NIRUNLI0MKaWYgKHBhcnNlSW50KCIweEMiLCAwKSAgIT09IHBhcnNlSW50KCJDIiwgMTYpKSB7CiAgJEVSUk9SKCcjQzogcGFyc2VJbnQoIjB4QyIsIDApID09PSBwYXJzZUludCgiQyIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIweEMiLCAwKSkpOwp9CgovL0NIRUNLI0QKaWYgKHBhcnNlSW50KCIweEQiLCAwKSAgIT09IHBhcnNlSW50KCJEIiwgMTYpKSB7CiAgJEVSUk9SKCcjRDogcGFyc2VJbnQoIjB4RCIsIDApID09PSBwYXJzZUludCgiRCIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIweEQiLCAwKSkpOwp9CgovL0NIRUNLI0UKaWYgKHBhcnNlSW50KCIweEUiLCAwKSAgIT09IHBhcnNlSW50KCJFIiwgMTYpKSB7CiAgJEVSUk9SKCcjRTogcGFyc2VJbnQoIjB4RSIsIDApID09PSBwYXJzZUludCgiRSIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIweEUiLCAwKSkpOwp9CgovL0NIRUNLI0YKaWYgKHBhcnNlSW50KCIweEYiLCAwKSAgIT09IHBhcnNlSW50KCJGIiwgMTYpKSB7CiAgJEVSUk9SKCcjRjogcGFyc2VJbnQoIjB4RiIsIDApID09PSBwYXJzZUludCgiRiIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIweEYiLCAwKSkpOwp9CgovL0NIRUNLI0UKaWYgKHBhcnNlSW50KCIweEUiLCAwKSAgIT09IHBhcnNlSW50KCJFIiwgMTYpKSB7CiAgJEVSUk9SKCcjRTogcGFyc2VJbnQoIjB4RSIsIDApID09PSBwYXJzZUludCgiRSIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIweEUiLCAwKSkpOwp9CgovL0NIRUNLI0FCQ0RFRgppZiAocGFyc2VJbnQoIjB4QUJDREVGIiwgMCkgICE9PSBwYXJzZUludCgiQUJDREVGIiwgMTYpKSB7CiAgJEVSUk9SKCcjQUJDREVGOiBwYXJzZUludCgiMHhBQkNERUYiLCAwKSA9PT0gcGFyc2VJbnQoIkFCQ0RFRiIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIweEFCQ0RFRiIsIDApKSk7Cn0gICAgIAoKIH0KfSk7Cgo=","id":"S15.1.2.2_A5.2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTUuMl9UMiIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICI6IDBYIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzAKaWYgKHBhcnNlSW50KCIwWDAiLCAwKSAgIT09IHBhcnNlSW50KCIwIiwgMTYpKSB7CiAgJEVSUk9SKCcjMDogcGFyc2VJbnQoIjBYMCIsIDApID09PSBwYXJzZUludCgiMCIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIwWDAiLCAwKSkpOwp9CgovL0NIRUNLIzEKaWYgKHBhcnNlSW50KCIwWDEiKSAgIT09IHBhcnNlSW50KCIxIiwgMTYpKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VJbnQoIjBYMSIpID09PSBwYXJzZUludCgiMSIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIwWDEiKSkpOwp9CgovL0NIRUNLIzIKaWYgKHBhcnNlSW50KCIwWDIiKSAgIT09IHBhcnNlSW50KCIyIiwgMTYpKSB7CiAgJEVSUk9SKCcjMjogcGFyc2VJbnQoIjBYMiIpID09PSBwYXJzZUludCgiMiIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIwWDIiKSkpOwp9CgovL0NIRUNLIzMKaWYgKHBhcnNlSW50KCIwWDMiKSAgIT09IHBhcnNlSW50KCIzIiwgMTYpKSB7CiAgJEVSUk9SKCcjMzogcGFyc2VJbnQoIjBYMyIpID09PSBwYXJzZUludCgiMyIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIwWDMiKSkpOwp9CgovL0NIRUNLIzQKaWYgKHBhcnNlSW50KCIwWDQiKSAgIT09IHBhcnNlSW50KCI0IiwgMTYpKSB7CiAgJEVSUk9SKCcjNDogcGFyc2VJbnQoIjBYNCIpID09PSBwYXJzZUludCgiNCIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIwWDQiKSkpOwp9CgovL0NIRUNLIzUKaWYgKHBhcnNlSW50KCIwWDUiKSAgIT09IHBhcnNlSW50KCI1IiwgMTYpKSB7CiAgJEVSUk9SKCcjNTogcGFyc2VJbnQoIjBYNSIpID09PSBwYXJzZUludCgiNSIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIwWDUiKSkpOwp9CgovL0NIRUNLIzYKaWYgKHBhcnNlSW50KCIwWDYiKSAgIT09IHBhcnNlSW50KCI2IiwgMTYpKSB7CiAgJEVSUk9SKCcjNjogcGFyc2VJbnQoIjBYNiIpID09PSBwYXJzZUludCgiNiIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIwWDYiKSkpOwp9CgovL0NIRUNLIzcKaWYgKHBhcnNlSW50KCIwWDciKSAgIT09IHBhcnNlSW50KCI3IiwgMTYpKSB7CiAgJEVSUk9SKCcjNzogcGFyc2VJbnQoIjBYNyIpID09PSBwYXJzZUludCgiNyIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIwWDciKSkpOwp9CgovL0NIRUNLIzgKaWYgKHBhcnNlSW50KCIwWDgiKSAgIT09IHBhcnNlSW50KCI4IiwgMTYpKSB7CiAgJEVSUk9SKCcjODogcGFyc2VJbnQoIjBYOCIpID09PSBwYXJzZUludCgiOCIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIwWDgiKSkpOwp9CgovL0NIRUNLIzkKaWYgKHBhcnNlSW50KCIwWDkiKSAgIT09IHBhcnNlSW50KCI5IiwgMTYpKSB7CiAgJEVSUk9SKCcjOTogcGFyc2VJbnQoIjBYOSIpID09PSBwYXJzZUludCgiOSIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIwWDkiKSkpOwp9CgovL0NIRUNLI0EKaWYgKHBhcnNlSW50KCIwWEEiKSAgIT09IHBhcnNlSW50KCJBIiwgMTYpKSB7CiAgJEVSUk9SKCcjQTogcGFyc2VJbnQoIjBYQSIpID09PSBwYXJzZUludCgiQSIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIwWEEiKSkpOwp9CgovL0NIRUNLI0IKaWYgKHBhcnNlSW50KCIwWEIiKSAgIT09IHBhcnNlSW50KCJCIiwgMTYpKSB7CiAgJEVSUk9SKCcjQjogcGFyc2VJbnQoIjBYQiIpID09PSBwYXJzZUludCgiQiIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIwWEIiKSkpOwp9CgovL0NIRUNLI0MKaWYgKHBhcnNlSW50KCIwWEMiKSAgIT09IHBhcnNlSW50KCJDIiwgMTYpKSB7CiAgJEVSUk9SKCcjQzogcGFyc2VJbnQoIjBYQyIpID09PSBwYXJzZUludCgiQyIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIwWEMiKSkpOwp9CgovL0NIRUNLI0QKaWYgKHBhcnNlSW50KCIwWEQiKSAgIT09IHBhcnNlSW50KCJEIiwgMTYpKSB7CiAgJEVSUk9SKCcjRDogcGFyc2VJbnQoIjBYRCIpID09PSBwYXJzZUludCgiRCIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIwWEQiKSkpOwp9CgovL0NIRUNLI0UKaWYgKHBhcnNlSW50KCIwWEUiKSAgIT09IHBhcnNlSW50KCJFIiwgMTYpKSB7CiAgJEVSUk9SKCcjRTogcGFyc2VJbnQoIjBYRSIpID09PSBwYXJzZUludCgiRSIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIwWEUiKSkpOwp9CgovL0NIRUNLI0YKaWYgKHBhcnNlSW50KCIwWEYiKSAgIT09IHBhcnNlSW50KCJGIiwgMTYpKSB7CiAgJEVSUk9SKCcjRjogcGFyc2VJbnQoIjBYRiIpID09PSBwYXJzZUludCgiRiIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIwWEYiKSkpOwp9CgovL0NIRUNLI0UKaWYgKHBhcnNlSW50KCIwWEUiKSAgIT09IHBhcnNlSW50KCJFIiwgMTYpKSB7CiAgJEVSUk9SKCcjRTogcGFyc2VJbnQoIjBYRSIpID09PSBwYXJzZUludCgiRSIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIwWEUiKSkpOwp9CgovL0NIRUNLI0FCQ0RFRgppZiAocGFyc2VJbnQoIjBYQUJDREVGIikgICE9PSBwYXJzZUludCgiQUJDREVGIiwgMTYpKSB7CiAgJEVSUk9SKCcjQUJDREVGOiBwYXJzZUludCgiMFhBQkNERUYiKSA9PT0gcGFyc2VJbnQoIkFCQ0RFRiIsIDE2KS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIwWEFCQ0RFRiIpKSk7Cn0gICAgIAoKIH0KfSk7Cgo=","id":"S15.1.2.2_A5.2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTYuMV9UMSIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3QuIFIgaW4gWzIsIDM2XSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMKZm9yICh2YXIgaSA9IDI7IGkgPD0gMzY7IGkrKykgewogIGlmIChwYXJzZUludCgiMTAkMSIsIGkpICE9PSBpKSB7CiAgICAkRVJST1IoJyMnICsgaSArJzogaSA9ICcgKyBpICsgJ3BhcnNlSW50KCIxMCQxIiwgaSkgPT09IGkuIEFjdHVhbDogJyArIChwYXJzZUludCgiMTAkMSIsIGkpKSk7CiAgfQp9ICAgIAoKIH0KfSk7Cgo=","id":"S15.1.2.2_A6.1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTYuMV9UMiIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3QuIFJhZGl4LVIgbm90YXRpb24gaW4gWzAuLjksIEEtWl0iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjCnZhciBSX2RpZ2l0ID0gWyIxIiwgIjIiLCAiMyIsICI0IiwgIjUiLCAiNiIsICI3IiwgIjgiLCAiOSIsICJBIiwgIkIiLCAiQyIsICJEIiwgIkUiLCAiRiIsICJHIiwgIkgiLCAiSSIsICJKIiwgIksiLCAiTCIsICJNIiwgIk4iLCAiTyIsICJQIiwgIlEiLCAiUiIsICJTIiwgIlQiLCAiVSIsICJWIiwgIlciLCAiWCIsICJZIiwgIloiXTsKZm9yICh2YXIgaSA9IDI7IGkgPD0gMzY7IGkrKykgewogIGlmIChwYXJzZUludChSX2RpZ2l0W2kgLSAyXSArICIkIiwgaSkgIT09IGkgLSAxKSB7CiAgICAkRVJST1IoJyMnICsgaSArICc6ICcpOwogIH0KfSAgICAKCiB9Cn0pOwoK","id":"S15.1.2.2_A6.1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTYuMV9UMyIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3QuIFJhZGl4LVIgbm90YXRpb24gaW4gWzAuLjksIGEtel0iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjCnZhciBSX2RpZ2l0ID0gWyIxIiwgIjIiLCAiMyIsICI0IiwgIjUiLCAiNiIsICI3IiwgIjgiLCAiOSIsICJhIiwgImIiLCAiYyIsICJkIiwgImUiLCAiZiIsICJnIiwgImgiLCAiaSIsICJqIiwgImsiLCAibCIsICJtIiwgIm4iLCAibyIsICJwIiwgInEiLCAiciIsICJzIiwgInQiLCAidSIsICJ2IiwgInciLCAieCIsICJ5IiwgInoiXTsKZm9yICh2YXIgaSA9IDI7IGkgPD0gMzY7IGkrKykgewogIGlmIChwYXJzZUludChSX2RpZ2l0W2kgLSAyXSArICIkIiwgaSkgIT09IGkgLSAxKSB7CiAgICAkRVJST1IoJyMnICsgaSArICc6ICcpOwogIH0KfSAgICAKCiB9Cn0pOwoK","id":"S15.1.2.2_A6.1_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTYuMV9UNCIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3QuIFJhZGl4LVIgbm90YXRpb24gaW4gWzAuLjksIEEtWl0iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjCnZhciBSX2RpZ2l0ID0gWyIxIiwgIjIiLCAiMyIsICI0IiwgIjUiLCAiNiIsICI3IiwgIjgiLCAiOSIsICJBIiwgIkIiLCAiQyIsICJEIiwgIkUiLCAiRiIsICJHIiwgIkgiLCAiSSIsICJKIiwgIksiLCAiTCIsICJNIiwgIk4iLCAiTyIsICJQIiwgIlEiLCAiUiIsICJTIiwgIlQiLCAiVSIsICJWIiwgIlciLCAiWCIsICJZIiwgIloiXTsKZm9yICh2YXIgaSA9IDI7IGkgPD0gMzU7IGkrKykgewogIGlmIChwYXJzZUludChSX2RpZ2l0W2kgLSAyXSArIFJfZGlnaXRbaSAtIDFdLCBpKSAhPT0gaSAtIDEpIHsKICAgICRFUlJPUignIycgKyBpICsgJzogJyk7CiAgfQp9ICAgIAoKIH0KfSk7Cgo=","id":"S15.1.2.2_A6.1_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTYuMV9UNSIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3QuIFJhZGl4LVIgbm90YXRpb24gaW4gWzAuLjksIGEtel0iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjCnZhciBSX2RpZ2l0ID0gWyIxIiwgIjIiLCAiMyIsICI0IiwgIjUiLCAiNiIsICI3IiwgIjgiLCAiOSIsICJhIiwgImIiLCAiYyIsICJkIiwgImUiLCAiZiIsICJnIiwgImgiLCAiaSIsICJqIiwgImsiLCAibCIsICJtIiwgIm4iLCAibyIsICJwIiwgInEiLCAiciIsICJzIiwgInQiLCAidSIsICJ2IiwgInciLCAieCIsICJ5IiwgInoiXTsKZm9yICh2YXIgaSA9IDI7IGkgPD0gMzU7IGkrKykgewogIGlmIChwYXJzZUludChSX2RpZ2l0W2kgLSAyXSArIFJfZGlnaXRbaSAtIDFdLCBpKSAhPT0gaSAtIDEpIHsKICAgICRFUlJPUignIycgKyBpICsgJzogJyk7CiAgfQp9ICAgIAoKIH0KfSk7Cgo=","id":"S15.1.2.2_A6.1_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTYuMV9UNiIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3QuIFJhZGl4LVIgbm90YXRpb24gaW4gWzAuLjldIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzIKaWYgKHBhcnNlSW50KCIwMTIzNDU2Nzg5IiwgMikgIT09IDEpIHsKICAkRVJST1IoJyMyOiBwYXJzZUludCgiMDEyMzQ1Njc4OSIsIDIpID09PSAxLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjAxMjM0NTY3ODkiLCAyKSkpOwp9ICAKCi8vQ0hFQ0sjMwppZiAocGFyc2VJbnQoIjAxMjM0NTY3ODkwIiwgMykgIT09IDUpIHsKICAkRVJST1IoJyMzOiBwYXJzZUludCgiMDEyMzQ1Njc4OTAiLCAzKSA9PT0gNS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIwMTIzNDU2Nzg5MCIsIDMpKSk7Cn0gCgovL0NIRUNLIzQKaWYgKHBhcnNlSW50KCIwMTIzNDU2Nzg5MCIsIDQpICE9PSAyNykgewogICRFUlJPUignIzQ6IHBhcnNlSW50KCIwMTIzNDU2Nzg5MCIsIDQpID09PSAyNy4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIwMTIzNDU2Nzg5MCIsIDQpKSk7Cn0gCgovL0NIRUNLIzUKaWYgKHBhcnNlSW50KCIwMTIzNDU2Nzg5MCIsIDUpICE9PSAxOTQpIHsKICAkRVJST1IoJyM1OiBwYXJzZUludCgiMDEyMzQ1Njc4OTAiLCA1KSA9PT0gMTk0LiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjAxMjM0NTY3ODkwIiwgNSkpKTsKfSAgCgovL0NIRUNLIzYKaWYgKHBhcnNlSW50KCIwMTIzNDU2Nzg5MCIsIDYpICE9PSAxODY1KSB7CiAgJEVSUk9SKCcjNjogcGFyc2VJbnQoIjAxMjM0NTY3ODkwIiwgNikgPT09IDE4NjUuIEFjdHVhbDogJyArIChwYXJzZUludCgiMDEyMzQ1Njc4OTAiLCA2KSkpOwp9ICAKCi8vQ0hFQ0sjNwppZiAocGFyc2VJbnQoIjAxMjM0NTY3ODkwIiwgNykgIT09IDIyODc1KSB7CiAgJEVSUk9SKCcjNzogcGFyc2VJbnQoIjAxMjM0NTY3ODkwIiwgNykgPT09IDIyODc1LiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjAxMjM0NTY3ODkwIiwgNykpKTsKfSAgCgovL0NIRUNLIzgKaWYgKHBhcnNlSW50KCIwMTIzNDU2Nzg5MCIsIDgpICE9PSAzNDIzOTEpIHsKICAkRVJST1IoJyM4OiBwYXJzZUludCgiMDEyMzQ1Njc4OTAiLCA4KSA9PT0gMzQyMzkxLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjAxMjM0NTY3ODkwIiwgOCkpKTsKfSAgCgovL0NIRUNLIzkKaWYgKHBhcnNlSW50KCIwMTIzNDU2Nzg5MCIsIDkpICE9PSA2MDUzNDQ0KSB7CiAgJEVSUk9SKCcjOTogcGFyc2VJbnQoIjAxMjM0NTY3ODkwIiwgOSkgPT09IDYwNTM0NDQuIEFjdHVhbDogJyArIChwYXJzZUludCgiMDEyMzQ1Njc4OTAiLCA5KSkpOwp9ICAKCi8vQ0hFQ0sjMTAKaWYgKHBhcnNlSW50KCIwMTIzNDU2Nzg5MCIsIDEwKSAhPT0gTnVtYmVyKDEyMzQ1Njc4OTApKSB7CiAgJEVSUk9SKCcjMTA6IHBhcnNlSW50KCIwMTIzNDU2Nzg5MCIsIDEwKSA9PT0gTnVtYmVyKDEyMzQ1Njc4OTApLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjAxMjM0NTY3ODkwIiwgMTApKSk7Cn0gIAoKIH0KfSk7Cgo=","id":"S15.1.2.2_A6.1_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTcuMV9UMSIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3QuIFIgaW4gWzIsIDM2XSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMKZm9yICh2YXIgaSA9IDI7IGkgPD0gMzY7IGkrKykgewogIGlmIChpc05hTihwYXJzZUludCgiJHN0cmluZyIsIGkpKSAhPT0gdHJ1ZSkgewogICAgJEVSUk9SKCcjJyArIGkgKyAnOiBwYXJzZUludCgiJHN0cmluZyIsIGkpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUludCgiJHN0cmluZyIsIGkpKSk7CiAgfQp9ICAgIAoKIH0KfSk7Cgo=","id":"S15.1.2.2_A7.1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTcuMV9UMiIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJ4IGlzIG5vdCBhIHJhZGl4LVIgZGlnaXQiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoaXNOYU4ocGFyc2VJbnQoIiQweCIpKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzE6IHBhcnNlSW50KCIkMHgiKSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIiQweCIpKSk7Cn0KCi8vQ0hFQ0sjMgppZiAoaXNOYU4ocGFyc2VJbnQoIiQwWCIpKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzI6IHBhcnNlSW50KCIkMFgiKSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIiQwWCIpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAoaXNOYU4ocGFyc2VJbnQoIiQkJCIpKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzM6IHBhcnNlSW50KCIkJCQiKSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIiQkJCIpKSk7Cn0KCi8vQ0hFQ0sjNAppZiAoaXNOYU4ocGFyc2VJbnQoIiIpKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzQ6IHBhcnNlSW50KCIiKSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIiIpKSk7Cn0KCi8vQ0hFQ0sjNQppZiAoaXNOYU4ocGFyc2VJbnQoIiAiKSkgIT09IHRydWUpIHsKICAkRVJST1IoJyM1OiBwYXJzZUludCgiICIpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUludCgiICIpKSk7Cn0gICAgICAgICAgCgogfQp9KTsKCg==","id":"S15.1.2.2_A7.1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTcuMl9UMSIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3QuIENoZWNrIGFsZ29yaXRobSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMKdmFyIFJfZGlnaXQxID0gWyIxIiwgIjIiLCAiMyIsICI0IiwgIjUiLCAiNiIsICI3IiwgIjgiLCAiOSIsICJBIiwgIkIiLCAiQyIsICJEIiwgIkUiLCAiRiIsICJHIiwgIkgiLCAiSSIsICJKIiwgIksiLCAiTCIsICJNIiwgIk4iLCAiTyIsICJQIiwgIlEiLCAiUiIsICJTIiwgIlQiLCAiVSIsICJWIiwgIlciLCAiWCIsICJZIiwgIloiXTsKdmFyIFJfZGlnaXQyID0gWyIxIiwgIjIiLCAiMyIsICI0IiwgIjUiLCAiNiIsICI3IiwgIjgiLCAiOSIsICJhIiwgImIiLCAiYyIsICJkIiwgImUiLCAiZiIsICJnIiwgImgiLCAiaSIsICJqIiwgImsiLCAibCIsICJtIiwgIm4iLCAibyIsICJwIiwgInEiLCAiciIsICJzIiwgInQiLCAidSIsICJ2IiwgInciLCAieCIsICJ5IiwgInoiXTsKZm9yICh2YXIgaSA9IDI7IGkgPD0gMzY7IGkrKykgewogIGZvciAodmFyIGogPSAwOyBqIDwgMTA7IGorKykgewogICAgdmFyIHN0ciA9ICIiOyAgCiAgICB2YXIgbnVtID0gMDsKICAgIHZhciBwb3cgPSAxOwogICAgdmFyIGswID0gTWF0aC5tYXgoMiwgaSAtIGopOwogICAgZm9yICh2YXIgayA9IGswOyBrIDw9IGk7IGsrKykgeyAKICAgICAgaWYgKGsgJSAyID09PSAwKSB7ICAKICAgICAgICBzdHIgPSBzdHIgKyBSX2RpZ2l0MVtrIC0gMl07CiAgICAgIH0gZWxzZSB7ICAKICAgICAgICBzdHIgPSBzdHIgKyBSX2RpZ2l0MltrIC0gMl07CiAgICAgIH0KICAgICAgbnVtID0gbnVtICsgKGkgKyAoazAgLSBrKSAtIDEpICogcG93OwogICAgICBwb3cgPSBwb3cgKiBpOyAgIAogICAgfSAgIAogICAgaWYgKHBhcnNlSW50KHN0ciwgaSkgIT09IG51bSkgewogICAgICAkRVJST1IoJyMnICsgaSArICcuJyArIGogKyAnIDogJyk7ICAgICAgCiAgICB9CiAgfSAgCn0gIAoKIH0KfSk7Cgo=","id":"S15.1.2.2_A7.2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTcuMl9UMiIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBhbGdvcml0aG0gZm9yIFIgPSAyIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKHBhcnNlSW50KCIxIiwgMikgICE9PSAxKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VJbnQoIjEiLCAyKSA9PT0gMS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIxIiwgMikpKTsKfQoKLy9DSEVDSyMyCmlmIChwYXJzZUludCgiMTEiLCAyKSAgIT09IDMpIHsKICAkRVJST1IoJyMyOiBwYXJzZUludCgiMTEiLCAyKSA9PT0gMy4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIxMSIsIDIpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAocGFyc2VJbnQoIjExMSIsIDIpICAhPT0gNykgewogICRFUlJPUignIzM6IHBhcnNlSW50KCIxMTEiLCAyKSA9PT0gNy4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIxMTEiLCAyKSkpOwp9CgovL0NIRUNLIzQKaWYgKHBhcnNlSW50KCIxMTExIiwgMikgICE9PSAxNSkgewogICRFUlJPUignIzQ6IHBhcnNlSW50KCIxMTExIiwgMikgPT09IDE1LiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjExMTEiLCAyKSkpOwp9CgovL0NIRUNLIzUKaWYgKHBhcnNlSW50KCIxMTExMSIsIDIpICAhPT0gMzEpIHsKICAkRVJST1IoJyM1OiBwYXJzZUludCgiMTExMTEiLCAyKSA9PT0gMzEuIEFjdHVhbDogJyArIChwYXJzZUludCgiMTExMTEiLCAyKSkpOwp9CgovL0NIRUNLIzYKaWYgKHBhcnNlSW50KCIxMTExMTEiLCAyKSAgIT09IDYzKSB7CiAgJEVSUk9SKCcjNjogcGFyc2VJbnQoIjExMTExMSIsIDIpID09PSA2My4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIxMTExMTEiLCAyKSkpOwp9CgovL0NIRUNLIzcKaWYgKHBhcnNlSW50KCIxMTExMTExIiwgMikgICE9PSAxMjcpIHsKICAkRVJST1IoJyM3OiBwYXJzZUludCgiMTExMTExMSIsIDIpID09PSAxMjcuIEFjdHVhbDogJyArIChwYXJzZUludCgiMTExMTExMSIsIDIpKSk7Cn0KCi8vQ0hFQ0sjOAppZiAocGFyc2VJbnQoIjExMTExMTExIiwgMikgICE9PSAyNTUpIHsKICAkRVJST1IoJyM4OiBwYXJzZUludCgiMTExMTExMTEiLCAyKSA9PT0gMjU1LiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjExMTExMTExIiwgMikpKTsKfQoKLy9DSEVDSyM5CmlmIChwYXJzZUludCgiMTExMTExMTExIiwgMikgICE9PSA1MTEpIHsKICAkRVJST1IoJyM5OiBwYXJzZUludCgiMTExMTExMTExIiwgMikgPT09IDUxMS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIxMTExMTExMTEiLCAyKSkpOwp9CgovL0NIRUNLIzEwCmlmIChwYXJzZUludCgiMTExMTExMTExMSIsIDIpICAhPT0gMTAyMykgewogICRFUlJPUignIzEwOiBwYXJzZUludCgiMTExMTExMTExMSIsIDIpID09PSAxMDIzLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjExMTExMTExMTEiLCAyKSkpOwp9CgovL0NIRUNLIzExCmlmIChwYXJzZUludCgiMTExMTExMTExMTEiLCAyKSAgIT09IDIwNDcpIHsKICAkRVJST1IoJyMxMTogcGFyc2VJbnQoIjExMTExMTExMTExIiwgMikgPT09IDIwNDcuIEFjdHVhbDogJyArIChwYXJzZUludCgiMTExMTExMTExMTEiLCAyKSkpOwp9CgovL0NIRUNLIzEyCmlmIChwYXJzZUludCgiMTExMTExMTExMTExIiwgMikgICE9PSA0MDk1KSB7CiAgJEVSUk9SKCcjMTI6IHBhcnNlSW50KCIxMTExMTExMTExMTEiLCAyKSA9PT0gNDA5NS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIxMTExMTExMTExMTEiLCAyKSkpOwp9CgovL0NIRUNLIzEzCmlmIChwYXJzZUludCgiMTExMTExMTExMTExMSIsIDIpICAhPT0gODE5MSkgewogICRFUlJPUignIzEzOiBwYXJzZUludCgiMTExMTExMTExMTExMSIsIDIpID09PSA4MTkxLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjExMTExMTExMTExMTEiLCAyKSkpOwp9CgovL0NIRUNLIzE0CmlmIChwYXJzZUludCgiMTExMTExMTExMTExMTEiLCAyKSAgIT09IDE2MzgzKSB7CiAgJEVSUk9SKCcjMTQ6IHBhcnNlSW50KCIxMTExMTExMTExMTExMSIsIDIpID09PSAxNjM4My4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIxMTExMTExMTExMTExMSIsIDIpKSk7Cn0KCi8vQ0hFQ0sjMTUKaWYgKHBhcnNlSW50KCIxMTExMTExMTExMTExMTEiLCAyKSAgIT09IDMyNzY3KSB7CiAgJEVSUk9SKCcjMTU6IHBhcnNlSW50KCIxMTExMTExMTExMTExMTEiLCAyKSA9PT0gMzI3NjcuIEFjdHVhbDogJyArIChwYXJzZUludCgiMTExMTExMTExMTExMTExIiwgMikpKTsKfQoKLy9DSEVDSyMxNgppZiAocGFyc2VJbnQoIjExMTExMTExMTExMTExMTEiLCAyKSAgIT09IDY1NTM1KSB7CiAgJEVSUk9SKCcjMTY6IHBhcnNlSW50KCIxMTExMTExMTExMTExMTExIiwgMikgPT09IDY1NTM1LiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjExMTExMTExMTExMTExMTEiLCAyKSkpOwp9CgovL0NIRUNLIzE3CmlmIChwYXJzZUludCgiMTExMTExMTExMTExMTExMTEiLCAyKSAgIT09IDEzMTA3MSkgewogICRFUlJPUignIzE3OiBwYXJzZUludCgiMTExMTExMTExMTExMTExMTEiLCAyKSA9PT0gMTMxMDcxLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjExMTExMTExMTExMTExMTExIiwgMikpKTsKfQoKLy9DSEVDSyMxOAppZiAocGFyc2VJbnQoIjExMTExMTExMTExMTExMTExMSIsIDIpICAhPT0gMjYyMTQzKSB7CiAgJEVSUk9SKCcjMTg6IHBhcnNlSW50KCIxMTExMTExMTExMTExMTExMTEiLCAyKSA9PT0gMjYyMTQzLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjExMTExMTExMTExMTExMTExMSIsIDIpKSk7Cn0KCi8vQ0hFQ0sjMTkKaWYgKHBhcnNlSW50KCIxMTExMTExMTExMTExMTExMTExIiwgMikgICE9PSA1MjQyODcpIHsKICAkRVJST1IoJyMxOTogcGFyc2VJbnQoIjExMTExMTExMTExMTExMTExMTEiLCAyKSA9PT0gNTI0Mjg3LiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjExMTExMTExMTExMTExMTExMTEiLCAyKSkpOwp9CgovL0NIRUNLIzIwCmlmIChwYXJzZUludCgiMTExMTExMTExMTExMTExMTExMTEiLCAyKSAgIT09IDEwNDg1NzUpIHsKICAkRVJST1IoJyMyMDogcGFyc2VJbnQoIjExMTExMTExMTExMTExMTExMTExIiwgMikgPT09IDEwNDg1NzUuIEFjdHVhbDogJyArIChwYXJzZUludCgiMTExMTExMTExMTExMTExMTExMTEiLCAyKSkpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.2_A7.2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTcuMl9UMyIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBhbGdvcml0aG0gZm9yIFIgPSAxNiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChwYXJzZUludCgiMHgxIiwgMTYpICE9PSAxKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VJbnQoIjB4MSIsIDE2KSA9PT0gMS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIweDEiLCAxNikpKTsKfQoKLy9DSEVDSyMyCmlmIChwYXJzZUludCgiMFgxMCIsIDE2KSAhPT0gMTYpIHsKICAkRVJST1IoJyMyOiBwYXJzZUludCgiMFgxMCIsIDE2KSA9PT0gMTYuIEFjdHVhbDogJyArIChwYXJzZUludCgiMFgxMCIsIDE2KSkpOwp9CgovL0NIRUNLIzMKaWYgKHBhcnNlSW50KCIweDEwMCIsIDE2KSAhPT0gMjU2KSB7CiAgJEVSUk9SKCcjMzogcGFyc2VJbnQoIjB4MTAwIiwgMTYpID09PSAyNTYuIEFjdHVhbDogJyArIChwYXJzZUludCgiMHgxMDAiLCAxNikpKTsKfQoKLy9DSEVDSyM0CmlmIChwYXJzZUludCgiMFgxMDAwIiwgMTYpICE9PSA0MDk2KSB7CiAgJEVSUk9SKCcjNDogcGFyc2VJbnQoIjBYMTAwMCIsIDE2KSA9PT0gNDA5Ni4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIwWDEwMDAiLCAxNikpKTsKfQoKLy9DSEVDSyM1CmlmIChwYXJzZUludCgiMHgxMDAwMCIsIDE2KSAhPT0gNjU1MzYpIHsKICAkRVJST1IoJyM1OiBwYXJzZUludCgiMHgxMDAwMCIsIDE2KSA9PT0gNjU1MzYuIEFjdHVhbDogJyArIChwYXJzZUludCgiMHgxMDAwMCIsIDE2KSkpOwp9CgovL0NIRUNLIzYKaWYgKHBhcnNlSW50KCIwWDEwMDAwMCIsIDE2KSAhPT0gMTA0ODU3NikgewogICRFUlJPUignIzY6IHBhcnNlSW50KCJ4MTAwMDAwIiwgMTYpID09PSAxMDQ4NTc2LiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIngxMDAwMDAiLCAxNikpKTsKfQoKLy9DSEVDSyM3CmlmIChwYXJzZUludCgiMHgxMDAwMDAwIiwgMTYpICE9PSAxNjc3NzIxNikgewogICRFUlJPUignIzc6IHBhcnNlSW50KCIweDEwMDAwMDAiLCAxNikgPT09IDE2Nzc3MjE2LiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjB4MTAwMDAwMCIsIDE2KSkpOwp9CgovL0NIRUNLIzgKaWYgKHBhcnNlSW50KCIweDEwMDAwMDAwIiwgMTYpICE9PSAyNjg0MzU0NTYpIHsKICAkRVJST1IoJyM4OiBwYXJzZUludCgiMHgxMDAwMDAwMCIsIDE2KSA9PT0gMjY4NDM1NDU2LiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjB4MTAwMDAwMDAiLCAxNikpKTsKfQoKLy9DSEVDSyM5CmlmIChwYXJzZUludCgiMHgxMDAwMDAwMDAiLCAxNikgIT09IDQyOTQ5NjcyOTYpIHsKICAkRVJST1IoJyM5OiBwYXJzZUludCgiMHgxMDAwMDAwMDAiLCAxNikgPT09IDQyOTQ5NjcyOTYuIEFjdHVhbDogJyArIChwYXJzZUludCgiMHgxMDAwMDAwMDAiLCAxNikpKTsKfQoKLy9DSEVDSyMxMAppZiAocGFyc2VJbnQoIjB4MTAwMDAwMDAwMCIsIDE2KSAhPT0gNjg3MTk0NzY3MzYpIHsKICAkRVJST1IoJyMxMDogcGFyc2VJbnQoIjB4MTAwMDAwMDAwMCIsIDE2KSA9PT0gNjg3MTk0NzY3MzYuIEFjdHVhbDogJyArIChwYXJzZUludCgiMHgxMDAwMDAwMDAwIiwgMTYpKSk7Cn0KCi8vQ0hFQ0sjMTAKaWYgKHBhcnNlSW50KCIweDEwMDAwMDAwMDAwIiwgMTYpICE9PSAxMDk5NTExNjI3Nzc2KSB7CiAgJEVSUk9SKCcjMTA6IHBhcnNlSW50KCIweDEwMDAwMDAwMDAwIiwgMTYpID09PSAxMDk5NTExNjI3Nzc2LiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjB4MTAwMDAwMDAwMDAiLCAxNikpKTsKfQoKLy9DSEVDSyMxMgppZiAocGFyc2VJbnQoIjB4MTAwMDAwMDAwMDAwIiwgMTYpICE9PSAxNzU5MjE4NjA0NDQxNikgewogICRFUlJPUignIzEyOiBwYXJzZUludCgiMHgxMDAwMDAwMDAwMDAiLCAxNikgPT09IDE3NTkyMTg2MDQ0NDE2LiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjB4MTAwMDAwMDAwMDAwIiwgMTYpKSk7Cn0KCi8vQ0hFQ0sjMTMKaWYgKHBhcnNlSW50KCIweDEwMDAwMDAwMDAwMDAiLCAxNikgIT09IDI4MTQ3NDk3NjcxMDY1NikgewogICRFUlJPUignIzEzOiBwYXJzZUludCgiMHgxMDAwMDAwMDAwMDAwIiwgMTYpID09PSAyODE0NzQ5NzY3MTA2NTYuIEFjdHVhbDogJyArIChwYXJzZUludCgiMHgxMDAwMDAwMDAwMDAwIiwgMTYpKSk7Cn0KCi8vQ0hFQ0sjMTQKaWYgKHBhcnNlSW50KCIweDEwMDAwMDAwMDAwMDAwIiwgMTYpICE9PSA0NTAzNTk5NjI3MzcwNDk2KSB7CiAgJEVSUk9SKCcjMTQ6IHBhcnNlSW50KCIweDEwMDAwMDAwMDAwMDAwIiwgMTYpID09PSA0NTAzNTk5NjI3MzcwNDk2LiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjB4MTAwMDAwMDAwMDAwMDAiLCAxNikpKTsKfQoKLy9DSEVDSyMxNQppZiAocGFyc2VJbnQoIjB4MTAwMDAwMDAwMDAwMDAwIiwgMTYpICE9PSA3MjA1NzU5NDAzNzkyNzkzNikgewogICRFUlJPUignIzE1OiBwYXJzZUludCgiMHgxMDAwMDAwMDAwMDAwMDAiLCAxNikgPT09IDcyMDU3NTk0MDM3OTI3OTM2LiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjB4MTAwMDAwMDAwMDAwMDAwIiwgMTYpKSk7Cn0KCi8vQ0hFQ0sjMTYKaWYgKHBhcnNlSW50KCIweDEwMDAwMDAwMDAwMDAwMDAiLCAxNikgIT09IDExNTI5MjE1MDQ2MDY4NDY5NzYpIHsKICAkRVJST1IoJyMxNjogcGFyc2VJbnQoIjB4MTAwMDAwMDAwMDAwMDAwMCIsIDE2KSA9PT0gMTE1MjkyMTUwNDYwNjg0Njk3Ni4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIweDEwMDAwMDAwMDAwMDAwMDAiLCAxNikpKTsKfQoKLy9DSEVDSyMxNwppZiAocGFyc2VJbnQoIjB4MTAwMDAwMDAwMDAwMDAwMDAiLCAxNikgIT09IDE4NDQ2NzQ0MDczNzA5NTUxNjE2KSB7CiAgJEVSUk9SKCcjMTc6IHBhcnNlSW50KCIweDEwMDAwMDAwMDAwMDAwMDAwIiwgMTYpID09PSAxODQ0Njc0NDA3MzcwOTU1MTYxNi4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIweDEwMDAwMDAwMDAwMDAwMDAwIiwgMTYpKSk7Cn0KCi8vQ0hFQ0sjMTgKaWYgKHBhcnNlSW50KCIweDEwMDAwMDAwMDAwMDAwMDAwMCIsIDE2KSAhPT0gMjk1MTQ3OTA1MTc5MzUyODI1ODU2KSB7CiAgJEVSUk9SKCcjMTg6IHBhcnNlSW50KCIweDEwMDAwMDAwMDAwMDAwMDAwMCIsIDE2KSA9PT0gMjk1MTQ3OTA1MTc5MzUyODI1ODU2LiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIjB4MTAwMDAwMDAwMDAwMDAwMDAwIiwgMTYpKSk7Cn0KCi8vQ0hFQ0sjMTkKaWYgKHBhcnNlSW50KCIweDEwMDAwMDAwMDAwMDAwMDAwMDAiLCAxNikgIT09IDQ3MjIzNjY0ODI4Njk2NDUyMTM2OTYpIHsKICAkRVJST1IoJyMxOTogcGFyc2VJbnQoIjB4MTAwMDAwMDAwMDAwMDAwMDAwMCIsIDE2KSA9PT0gNDcyMjM2NjQ4Mjg2OTY0NTIxMzY5Ni4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIweDEwMDAwMDAwMDAwMDAwMDAwMDAiLCAxNikpKTsKfQoKLy9DSEVDSyMyMAppZiAocGFyc2VJbnQoIjB4MTAwMDAwMDAwMDAwMDAwMDAwMDAiLCAxNikgIT09IDc1NTU3ODYzNzI1OTE0MzIzNDE5MTM2KSB7CiAgJEVSUk9SKCcjMjA6IHBhcnNlSW50KCIweDEwMDAwMDAwMDAwMDAwMDAwMDAwIiwgMTYpID09PSA3NTU1Nzg2MzcyNTkxNDMyMzQxOTEzNi4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCIweDEwMDAwMDAwMDAwMDAwMDAwMDAwIiwgMTYpKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.2_A7.2_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTcuM19UMSIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3QuIENoZWNrIGFsZ29yaXRobSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMKdmFyIFJfZGlnaXQxID0gWyIxIiwgIjIiLCAiMyIsICI0IiwgIjUiLCAiNiIsICI3IiwgIjgiLCAiOSIsICJBIiwgIkIiLCAiQyIsICJEIiwgIkUiLCAiRiIsICJHIiwgIkgiLCAiSSIsICJKIiwgIksiLCAiTCIsICJNIiwgIk4iLCAiTyIsICJQIiwgIlEiLCAiUiIsICJTIiwgIlQiLCAiVSIsICJWIiwgIlciLCAiWCIsICJZIiwgIloiXTsKdmFyIFJfZGlnaXQyID0gWyIxIiwgIjIiLCAiMyIsICI0IiwgIjUiLCAiNiIsICI3IiwgIjgiLCAiOSIsICJhIiwgImIiLCAiYyIsICJkIiwgImUiLCAiZiIsICJnIiwgImgiLCAiaSIsICJqIiwgImsiLCAibCIsICJtIiwgIm4iLCAibyIsICJwIiwgInEiLCAiciIsICJzIiwgInQiLCAidSIsICJ2IiwgInciLCAieCIsICJ5IiwgInoiXTsKZm9yICh2YXIgaSA9IDI7IGkgPD0gMzY7IGkrKykgewogIGZvciAodmFyIGogPSAwOyBqIDwgMTA7IGorKykgewogICAgdmFyIHN0ciA9ICIrIjsgIAogICAgdmFyIHNpZ24gPSAxOwogICAgaWYgKGogJSAyICE9PSAwKSB7ICAKICAgICAgICBzdHIgPSAiLSI7CiAgICAgICAgc2lnbj0gLTE7CiAgICB9IAogICAgdmFyIG51bSA9IDA7CiAgICB2YXIgcG93ID0gMTsKICAgIHZhciBrMCA9IE1hdGgubWF4KDIsIGkgLSBqKTsKICAgIGZvciAodmFyIGsgPSBrMDsgayA8PSBpOyBrKyspIHsgCiAgICAgIGlmIChrICUgMiA9PT0gMCkgeyAgCiAgICAgICAgc3RyID0gc3RyICsgUl9kaWdpdDFbayAtIDJdOwogICAgICB9IGVsc2UgeyAgCiAgICAgICAgc3RyID0gc3RyICsgUl9kaWdpdDJbayAtIDJdOwogICAgICB9CiAgICAgIG51bSA9IG51bSArIChpICsgKGswIC0gaykgLSAxKSAqIHBvdzsKICAgICAgcG93ID0gcG93ICogaTsgICAKICAgIH0gICAKICAgIGlmIChwYXJzZUludChzdHIsIGkpICE9PSBudW0gKiBzaWduKSB7CiAgICAgICRFUlJPUignIycgKyBpICsgJy4nICsgaiArICcgOiAnKTsgICAgICAKICAgIH0KICB9ICAKfSAgCgogfQp9KTsKCg==","id":"S15.1.2.2_A7.3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTcuM19UMiIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBhbGdvcml0aG0gZm9yIFIgPSAyIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKHBhcnNlSW50KCItMSIsIDIpICAhPT0gLTEpIHsKICAkRVJST1IoJyMxOiBwYXJzZUludCgiLTEiLCAyKSA9PT0gLTEuIEFjdHVhbDogJyArIChwYXJzZUludCgiLTEiLCAyKSkpOwp9CgovL0NIRUNLIzIKaWYgKHBhcnNlSW50KCItMTEiLCAyKSAgIT09IC0zKSB7CiAgJEVSUk9SKCcjMjogcGFyc2VJbnQoIi0xMSIsIDIpID09PSAtMy4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCItMTEiLCAyKSkpOwp9CgovL0NIRUNLIzMKaWYgKHBhcnNlSW50KCItMTExIiwgMikgICE9PSAtNykgewogICRFUlJPUignIzM6IHBhcnNlSW50KCItMTExIiwgMikgPT09IC03LiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIi0xMTEiLCAyKSkpOwp9CgovL0NIRUNLIzQKaWYgKHBhcnNlSW50KCItMTExMSIsIDIpICAhPT0gLTE1KSB7CiAgJEVSUk9SKCcjNDogcGFyc2VJbnQoIi0xMTExIiwgMikgPT09IC0xNS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCItMTExMSIsIDIpKSk7Cn0KCi8vQ0hFQ0sjNQppZiAocGFyc2VJbnQoIi0xMTExMSIsIDIpICAhPT0gLTMxKSB7CiAgJEVSUk9SKCcjNTogcGFyc2VJbnQoIi0xMTExMSIsIDIpID09PSAtMzEuIEFjdHVhbDogJyArIChwYXJzZUludCgiLTExMTExIiwgMikpKTsKfQoKLy9DSEVDSyM2CmlmIChwYXJzZUludCgiLTExMTExMSIsIDIpICAhPT0gLTYzKSB7CiAgJEVSUk9SKCcjNjogcGFyc2VJbnQoIi0xMTExMTEiLCAyKSA9PT0gLTYzLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIi0xMTExMTEiLCAyKSkpOwp9CgovL0NIRUNLIzcKaWYgKHBhcnNlSW50KCItMTExMTExMSIsIDIpICAhPT0gLTEyNykgewogICRFUlJPUignIzc6IHBhcnNlSW50KCItMTExMTExMSIsIDIpID09PSAtMTI3LiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIi0xMTExMTExIiwgMikpKTsKfQoKLy9DSEVDSyM4CmlmIChwYXJzZUludCgiLTExMTExMTExIiwgMikgICE9PSAtMjU1KSB7CiAgJEVSUk9SKCcjODogcGFyc2VJbnQoIi0xMTExMTExMSIsIDIpID09PSAtMjU1LiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIi0xMTExMTExMSIsIDIpKSk7Cn0KCi8vQ0hFQ0sjOQppZiAocGFyc2VJbnQoIi0xMTExMTExMTEiLCAyKSAgIT09IC01MTEpIHsKICAkRVJST1IoJyM5OiBwYXJzZUludCgiLTExMTExMTExMSIsIDIpID09PSAtNTExLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIi0xMTExMTExMTEiLCAyKSkpOwp9CgovL0NIRUNLIzEwCmlmIChwYXJzZUludCgiLTExMTExMTExMTEiLCAyKSAgIT09IC0xMDIzKSB7CiAgJEVSUk9SKCcjMTA6IHBhcnNlSW50KCItMTExMTExMTExMSIsIDIpID09PSAtMTAyMy4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCItMTExMTExMTExMSIsIDIpKSk7Cn0KCi8vQ0hFQ0sjMTEKaWYgKHBhcnNlSW50KCItMTExMTExMTExMTEiLCAyKSAgIT09IC0yMDQ3KSB7CiAgJEVSUk9SKCcjMTE6IHBhcnNlSW50KCItMTExMTExMTExMTEiLCAyKSA9PT0gLTIwNDcuIEFjdHVhbDogJyArIChwYXJzZUludCgiLTExMTExMTExMTExIiwgMikpKTsKfQoKLy9DSEVDSyMxMgppZiAocGFyc2VJbnQoIi0xMTExMTExMTExMTEiLCAyKSAgIT09IC00MDk1KSB7CiAgJEVSUk9SKCcjMTI6IHBhcnNlSW50KCItMTExMTExMTExMTExIiwgMikgPT09IC00MDk1LiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIi0xMTExMTExMTExMTEiLCAyKSkpOwp9CgovL0NIRUNLIzEzCmlmIChwYXJzZUludCgiLTExMTExMTExMTExMTEiLCAyKSAgIT09IC04MTkxKSB7CiAgJEVSUk9SKCcjMTM6IHBhcnNlSW50KCItMTExMTExMTExMTExMSIsIDIpID09PSAtODE5MS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCItMTExMTExMTExMTExMSIsIDIpKSk7Cn0KCi8vQ0hFQ0sjMTQKaWYgKHBhcnNlSW50KCItMTExMTExMTExMTExMTEiLCAyKSAgIT09IC0xNjM4MykgewogICRFUlJPUignIzE0OiBwYXJzZUludCgiLTExMTExMTExMTExMTExIiwgMikgPT09IC0xNjM4My4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCItMTExMTExMTExMTExMTEiLCAyKSkpOwp9CgovL0NIRUNLIzE1CmlmIChwYXJzZUludCgiLTExMTExMTExMTExMTExMSIsIDIpICAhPT0gLTMyNzY3KSB7CiAgJEVSUk9SKCcjMTU6IHBhcnNlSW50KCItMTExMTExMTExMTExMTExIiwgMikgPT09IC0zMjc2Ny4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCItMTExMTExMTExMTExMTExIiwgMikpKTsKfQoKLy9DSEVDSyMxNgppZiAocGFyc2VJbnQoIi0xMTExMTExMTExMTExMTExIiwgMikgICE9PSAtNjU1MzUpIHsKICAkRVJST1IoJyMxNjogcGFyc2VJbnQoIi0xMTExMTExMTExMTExMTExIiwgMikgPT09IC02NTUzNS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCItMTExMTExMTExMTExMTExMSIsIDIpKSk7Cn0KCi8vQ0hFQ0sjMTcKaWYgKHBhcnNlSW50KCItMTExMTExMTExMTExMTExMTEiLCAyKSAgIT09IC0xMzEwNzEpIHsKICAkRVJST1IoJyMxNzogcGFyc2VJbnQoIi0xMTExMTExMTExMTExMTExMSIsIDIpID09PSAtMTMxMDcxLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIi0xMTExMTExMTExMTExMTExMSIsIDIpKSk7Cn0KCi8vQ0hFQ0sjMTgKaWYgKHBhcnNlSW50KCItMTExMTExMTExMTExMTExMTExIiwgMikgICE9PSAtMjYyMTQzKSB7CiAgJEVSUk9SKCcjMTg6IHBhcnNlSW50KCItMTExMTExMTExMTExMTExMTExIiwgMikgPT09IC0yNjIxNDMuIEFjdHVhbDogJyArIChwYXJzZUludCgiLTExMTExMTExMTExMTExMTExMSIsIDIpKSk7Cn0KCi8vQ0hFQ0sjMTkKaWYgKHBhcnNlSW50KCItMTExMTExMTExMTExMTExMTExMSIsIDIpICAhPT0gLTUyNDI4NykgewogICRFUlJPUignIzE5OiBwYXJzZUludCgiLTExMTExMTExMTExMTExMTExMTEiLCAyKSA9PT0gLTUyNDI4Ny4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCItMTExMTExMTExMTExMTExMTExMSIsIDIpKSk7Cn0KCi8vQ0hFQ0sjMjAKaWYgKHBhcnNlSW50KCItMTExMTExMTExMTExMTExMTExMTEiLCAyKSAgIT09IC0xMDQ4NTc1KSB7CiAgJEVSUk9SKCcjMjA6IHBhcnNlSW50KCItMTExMTExMTExMTExMTExMTExMTEiLCAyKSA9PT0gLTEwNDg1NzUuIEFjdHVhbDogJyArIChwYXJzZUludCgiLTExMTExMTExMTExMTExMTExMTExIiwgMikpKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.2.2_A7.3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTcuM19UMyIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBhbGdvcml0aG0gZm9yIFIgPSAxMCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChwYXJzZUludCgiLTEiLCAxMCkgIT09IC0xKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VJbnQoIi0xIiwgMTApID09PSAtMS4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCItMSIsIDEwKSkpOwp9CgovL0NIRUNLIzIKaWYgKHBhcnNlSW50KCItMTAiLCAxMCkgIT09IC0xMCkgewogICRFUlJPUignIzI6IHBhcnNlSW50KCItMTAiLCAxMCkgPT09IC0xMC4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCItMTAiLCAxMCkpKTsKfQoKLy9DSEVDSyMzCmlmIChwYXJzZUludCgiLTEwMCIsIDEwKSAhPT0gLTEwMCkgewogICRFUlJPUignIzM6IHBhcnNlSW50KCItMTAwIiwgMTApID09PSAtMTAwLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIi0xMDAiLCAxMCkpKTsKfQoKLy9DSEVDSyM0CmlmIChwYXJzZUludCgiLTEwMDAiLCAxMCkgIT09IC0xMDAwKSB7CiAgJEVSUk9SKCcjNDogcGFyc2VJbnQoIi0xMDAwIiwgMTApID09PSAtMTAwMC4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCItMTAwMCIsIDEwKSkpOwp9CgovL0NIRUNLIzUKaWYgKHBhcnNlSW50KCItMTAwMDAiLCAxMCkgIT09IC0xMDAwMCkgewogICRFUlJPUignIzU6IHBhcnNlSW50KCItMTAwMDAiLCAxMCkgPT09IC0xMDAwMC4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCItMTAwMDAiLCAxMCkpKTsKfQoKLy9DSEVDSyM2CmlmIChwYXJzZUludCgiLTEwMDAwMCIsIDEwKSAhPT0gLTEwMDAwMCkgewogICRFUlJPUignIzY6IHBhcnNlSW50KCItMTAwMDAwIiwgMTApID09PSAtMTAwMDAwLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIi0xMDAwMDAiLCAxMCkpKTsKfQoKLy9DSEVDSyM3CmlmIChwYXJzZUludCgiLTEwMDAwMDAiLCAxMCkgIT09IC0xMDAwMDAwKSB7CiAgJEVSUk9SKCcjNzogcGFyc2VJbnQoIi0xMDAwMDAwIiwgMTApID09PSAtMTAwMDAwMC4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCItMTAwMDAwMCIsIDEwKSkpOwp9CgovL0NIRUNLIzgKaWYgKHBhcnNlSW50KCItMTAwMDAwMDAiLCAxMCkgIT09IC0xMDAwMDAwMCkgewogICRFUlJPUignIzg6IHBhcnNlSW50KCItMTAwMDAwMDAiLCAxMCkgPT09IC0xMDAwMDAwMC4gQWN0dWFsOiAnICsgKHBhcnNlSW50KCItMTAwMDAwMDAiLCAxMCkpKTsKfQoKLy9DSEVDSyM5CmlmIChwYXJzZUludCgiLTEwMDAwMDAwMCIsIDEwKSAhPT0gLTEwMDAwMDAwMCkgewogICRFUlJPUignIzk6IHBhcnNlSW50KCItMTAwMDAwMDAwIiwgMTApID09PSAtMTAwMDAwMDAwLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIi0xMDAwMDAwMDAiLCAxMCkpKTsKfQoKLy9DSEVDSyMxMAppZiAocGFyc2VJbnQoIi0xMDAwMDAwMDAwIiwgMTApICE9PSAtMTAwMDAwMDAwMCkgewogICRFUlJPUignIzEwOiBwYXJzZUludCgiLTEwMDAwMDAwMDAiLCAxMCkgPT09IC0xMDAwMDAwMDAwLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIi0xMDAwMDAwMDAwIiwgMTApKSk7Cn0KCi8vQ0hFQ0sjMTAKaWYgKHBhcnNlSW50KCItMTAwMDAwMDAwMDAiLCAxMCkgIT09IC0xMDAwMDAwMDAwMCkgewogICRFUlJPUignIzEwOiBwYXJzZUludCgiLTEwMDAwMDAwMDAwIiwgMTApID09PSAtMTAwMDAwMDAwMDAuIEFjdHVhbDogJyArIChwYXJzZUludCgiLTEwMDAwMDAwMDAwIiwgMTApKSk7Cn0KCi8vQ0hFQ0sjMTIKaWYgKHBhcnNlSW50KCItMTAwMDAwMDAwMDAwIiwgMTApICE9PSAtMTAwMDAwMDAwMDAwKSB7CiAgJEVSUk9SKCcjMTI6IHBhcnNlSW50KCItMTAwMDAwMDAwMDAwIiwgMTApID09PSAtMTAwMDAwMDAwMDAwLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIi0xMDAwMDAwMDAwMDAiLCAxMCkpKTsKfQoKLy9DSEVDSyMxMwppZiAocGFyc2VJbnQoIi0xMDAwMDAwMDAwMDAwIiwgMTApICE9PSAtMTAwMDAwMDAwMDAwMCkgewogICRFUlJPUignIzEzOiBwYXJzZUludCgiLTEwMDAwMDAwMDAwMDAiLCAxMCkgPT09IC0xMDAwMDAwMDAwMDAwLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIi0xMDAwMDAwMDAwMDAwIiwgMTApKSk7Cn0KCi8vQ0hFQ0sjMTQKaWYgKHBhcnNlSW50KCItMTAwMDAwMDAwMDAwMDAiLCAxMCkgIT09IC0xMDAwMDAwMDAwMDAwMCkgewogICRFUlJPUignIzE0OiBwYXJzZUludCgiLTEwMDAwMDAwMDAwMDAwIiwgMTApID09PSAtMTAwMDAwMDAwMDAwMDAuIEFjdHVhbDogJyArIChwYXJzZUludCgiLTEwMDAwMDAwMDAwMDAwIiwgMTApKSk7Cn0KCi8vQ0hFQ0sjMTUKaWYgKHBhcnNlSW50KCItMTAwMDAwMDAwMDAwMDAwIiwgMTApICE9PSAtMTAwMDAwMDAwMDAwMDAwKSB7CiAgJEVSUk9SKCcjMTU6IHBhcnNlSW50KCItMTAwMDAwMDAwMDAwMDAwIiwgMTApID09PSAtMTAwMDAwMDAwMDAwMDAwLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIi0xMDAwMDAwMDAwMDAwMDAiLCAxMCkpKTsKfQoKLy9DSEVDSyMxMAppZiAocGFyc2VJbnQoIi0xMDAwMDAwMDAwMDAwMDAwIiwgMTApICE9PSAtMTAwMDAwMDAwMDAwMDAwMCkgewogICRFUlJPUignIzEwOiBwYXJzZUludCgiLTEwMDAwMDAwMDAwMDAwMDAiLCAxMCkgPT09IC0xMDAwMDAwMDAwMDAwMDAwLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIi0xMDAwMDAwMDAwMDAwMDAwIiwgMTApKSk7Cn0KCi8vQ0hFQ0sjMTcKaWYgKHBhcnNlSW50KCItMTAwMDAwMDAwMDAwMDAwMDAiLCAxMCkgIT09IC0xMDAwMDAwMDAwMDAwMDAwMCkgewogICRFUlJPUignIzE3OiBwYXJzZUludCgiLTEwMDAwMDAwMDAwMDAwMDAwIiwgMTApID09PSAtMTAwMDAwMDAwMDAwMDAwMDAuIEFjdHVhbDogJyArIChwYXJzZUludCgiLTEwMDAwMDAwMDAwMDAwMDAwIiwgMTApKSk7Cn0KCi8vQ0hFQ0sjMTgKaWYgKHBhcnNlSW50KCItMTAwMDAwMDAwMDAwMDAwMDAwIiwgMTApICE9PSAtMTAwMDAwMDAwMDAwMDAwMDAwKSB7CiAgJEVSUk9SKCcjMTg6IHBhcnNlSW50KCItMTAwMDAwMDAwMDAwMDAwMDAwIiwgMTApID09PSAtMTAwMDAwMDAwMDAwMDAwMDAwLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIi0xMDAwMDAwMDAwMDAwMDAwMDAiLCAxMCkpKTsKfQoKLy9DSEVDSyMxOQppZiAocGFyc2VJbnQoIi0xMDAwMDAwMDAwMDAwMDAwMDAwIiwgMTApICE9PSAtMTAwMDAwMDAwMDAwMDAwMDAwMCkgewogICRFUlJPUignIzE5OiBwYXJzZUludCgiLTEwMDAwMDAwMDAwMDAwMDAwMDAiLCAxMCkgPT09IC0xMDAwMDAwMDAwMDAwMDAwMDAwLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQoIi0xMDAwMDAwMDAwMDAwMDAwMDAwIiwgMTApKSk7Cn0KCi8vQ0hFQ0sjMjAKaWYgKHBhcnNlSW50KCItMTAwMDAwMDAwMDAwMDAwMDAwMDAiLCAxMCkgIT09IC0xMDAwMDAwMDAwMDAwMDAwMDAwMCkgewogICRFUlJPUignIzIwOiBwYXJzZUludCgiLTEwMDAwMDAwMDAwMDAwMDAwMDAwIiwgMTApID09PSAtMTAwMDAwMDAwMDAwMDAwMDAwMDAuIEFjdHVhbDogJyArIChwYXJzZUludCgiLTEwMDAwMDAwMDAwMDAwMDAwMDAwIiwgMTApKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.2_A7.3_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTgiLAoKcGF0aDogIjE1LjEuMi4yLCA5LjMuMSIsCgpkZXNjcmlwdGlvbjogIkNvbXBsZXggdGVzdCB3aXRob3V0IGV2YWwiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sKdmFyIGVycm9yQ291bnQgPSAwOwp2YXIgY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8PSA2NTUzNTsgaW5kZXgrKykgeyAgCiAgaWYgKChpbmRleCA8IDB4MDAzMCkgfHwgKGluZGV4ID4gMHgwMDM5KSAmJiAKICAgICAgKGluZGV4IDwgMHgwMDQxKSB8fCAoaW5kZXggPiAweDAwNUEpICYmIAogICAgICAoaW5kZXggPCAweDAwNjEpIHx8IChpbmRleCA+IDB4MDA3QSkpIHsgICAgCiAgICB2YXIgaGV4ID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4KTsKICAgIGlmIChwYXJzZUludCgiMVoiICsgU3RyaW5nLmZyb21DaGFyQ29kZShpbmRleCksIDM2KSAhPT0gNzEpIHsgICAgICAgCiAgICAgIGlmIChpbmRleE8gPT09IDApIHsgCiAgICAgICAgaW5kZXhPID0gaW5kZXg7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKChpbmRleCAtIGluZGV4UCkgIT09IDEpIHsgICAgICAgICAgICAgCiAgICAgICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgICAgIH0gCiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICAgICAgfSAgCiAgICAgICAgICBpbmRleE8gPSBpbmRleDsKICAgICAgICB9ICAgICAgICAgCiAgICAgIH0KICAgICAgaW5kZXhQID0gaW5kZXg7CiAgICAgIGVycm9yQ291bnQrKzsgICAgCiAgICB9ICAgCiAgICBjb3VudCsrOwogIH0gIAp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.2.2_A8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTkuMSIsCgpwYXRoOiAiMTUuMS4yLjIsIDE1LjIuNC43LCAxMi42LjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgcHJvcGVydHlJc0VudW1lcmFibGUsIGZvci1pbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChwYXJzZUludC5wcm9wZXJ0eUlzRW51bWVyYWJsZSgnbGVuZ3RoJykgIT09IGZhbHNlKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VJbnQucHJvcGVydHlJc0VudW1lcmFibGUoXCdsZW5ndGhcJykgPT09IGZhbHNlLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQucHJvcGVydHlJc0VudW1lcmFibGUoJ2xlbmd0aCcpKSk7Cn0KCi8vQ0hFQ0sjMgp2YXIgcmVzdWx0ID0gdHJ1ZTsKZm9yICh2YXIgcCBpbiBwYXJzZUludCl7CiAgaWYgKHAgPT09ICJsZW5ndGgiKSB7CiAgICByZXN1bHQgPSBmYWxzZTsKICB9ICAKfQoKaWYgKHJlc3VsdCAhPT0gdHJ1ZSkgewogICRFUlJPUignIzI6IHJlc3VsdCA9IHRydWU7IGZvciAocCBpbiBwYXJzZUludCkgeyBpZiAocCA9PT0gImxlbmd0aCIpIHJlc3VsdCA9IGZhbHNlOyB9ICByZXN1bHQgPT09IHRydWU7Jyk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.2_A9.1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTkuMiIsCgpwYXRoOiAiMTUuMS4yLjIsIDE1LjIuNC41LCAxMS40LjEiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgaGFzT3duUHJvcGVydHksIGRlbGV0ZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChwYXJzZUludC5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykgIT09IHRydWUpIHsKICAkRkFJTCgnIzE6IHBhcnNlSW50Lmhhc093blByb3BlcnR5KFwnbGVuZ3RoXCcpID09PSB0cnVlLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSk7Cn0KCmRlbGV0ZSBwYXJzZUludC5sZW5ndGg7CgovL0NIRUNLIzIKaWYgKHBhcnNlSW50Lmhhc093blByb3BlcnR5KCdsZW5ndGgnKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzI6IGRlbGV0ZSBwYXJzZUludC5sZW5ndGg7IHBhcnNlSW50Lmhhc093blByb3BlcnR5KFwnbGVuZ3RoXCcpID09PSB0cnVlLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAocGFyc2VJbnQubGVuZ3RoID09PSB1bmRlZmluZWQpIHsKICAkRVJST1IoJyMzOiBkZWxldGUgcGFyc2VJbnQubGVuZ3RoOyBwYXJzZUludC5sZW5ndGggIT09IHVuZGVmaW5lZCcpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.2_A9.2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTkuMyIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiB2YXJ5aW5nIHRoZSBsZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp4ID0gcGFyc2VJbnQubGVuZ3RoOwpwYXJzZUludC5sZW5ndGggPSBJbmZpbml0eTsKaWYgKHBhcnNlSW50Lmxlbmd0aCAhPT0geCkgewogICRFUlJPUignIzE6IHggPSBwYXJzZUludC5sZW5ndGg7IHBhcnNlSW50Lmxlbmd0aCA9IEluZmluaXR5OyBwYXJzZUludC5sZW5ndGggPT09IHguIEFjdHVhbDogJyArIChwYXJzZUludC5sZW5ndGgpKTsKfQoKCiB9Cn0pOwoK","id":"S15.1.2.2_A9.3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTkuNCIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJwYXJzZUludC5sZW5ndGggPT09IDIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAocGFyc2VJbnQubGVuZ3RoICE9PSAyKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VJbnQubGVuZ3RoID09PSAyLiBBY3R1YWw6ICcgKyAocGFyc2VJbnQubGVuZ3RoKSk7Cn0gCgoKIH0KfSk7Cgo=","id":"S15.1.2.2_A9.4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTkuNSIsCgpwYXRoOiAiMTUuMS4yLjIsIDE1LjIuNC43LCAxMi42LjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgcHJvcGVydHlJc0VudW1lcmFibGUsIGZvci1pbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICh0aGlzLnByb3BlcnR5SXNFbnVtZXJhYmxlKCdwYXJzZUludCcpICE9PSBmYWxzZSkgewogICRFUlJPUignIzE6IHRoaXMucHJvcGVydHlJc0VudW1lcmFibGUoXCdwYXJzZUludFwnKSA9PT0gZmFsc2UuIEFjdHVhbDogJyArICh0aGlzLnByb3BlcnR5SXNFbnVtZXJhYmxlKCdwYXJzZUludCcpKSk7Cn0KCi8vQ0hFQ0sjMgp2YXIgcmVzdWx0ID0gdHJ1ZTsKZm9yICh2YXIgcCBpbiB0aGlzKXsKICBpZiAocCA9PT0gInBhcnNlSW50IikgewogICAgcmVzdWx0ID0gZmFsc2U7CiAgfSAgCn0KCmlmIChyZXN1bHQgIT09IHRydWUpIHsKICAkRVJST1IoJyMyOiByZXN1bHQgPSB0cnVlOyBmb3IgKHAgaW4gdGhpcykgeyBpZiAocCA9PT0gInBhcnNlSW50IikgcmVzdWx0ID0gZmFsc2U7IH0gIHJlc3VsdCA9PT0gdHJ1ZTsnKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.2.2_A9.5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTkuNiIsCgpwYXRoOiAiMTUuMS4yLjIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBwYXJzZUludC5wcm90b3R5cGUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAocGFyc2VJbnQucHJvdG90eXBlICE9PSB1bmRlZmluZWQpIHsKICAkRVJST1IoJyMxOiBwYXJzZUludC5wcm90b3R5cGUgPT09IHVuZGVmaW5lZC4gQWN0dWFsOiAnICsgKHBhcnNlSW50LnByb3RvdHlwZSkpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.2_A9.6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjJfQTkuNyIsCgpwYXRoOiAiMTUuMS4yLjIsIDExLjIuMiIsCgpkZXNjcmlwdGlvbjogIklmIHByb3BlcnR5IGRvZXMgbm90IGltcGxlbWVudCB0aGUgaW50ZXJuYWwgW1tDb25zdHJ1Y3RdXSBtZXRob2QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCgp0cnkgewogIG5ldyBwYXJzZUludCgpOwogICRFUlJPUignIzEuMTogbmV3IHBhcnNlSW50KCkgdGhyb3cgVHlwZUVycm9yLiBBY3R1YWw6ICcgKyAobmV3IHBhcnNlSW50KCkpKTsKfSBjYXRjaCAoZSkgewogIGlmICgoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikgIT09IHRydWUpIHsKICAgICRFUlJPUignIzEuMjogbmV3IHBhcnNlSW50KCkgdGhyb3cgVHlwZUVycm9yLiBBY3R1YWw6ICcgKyAoZSkpOwogIH0KfQoKIH0KfSk7Cgo=","id":"S15.1.2.2_A9.7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTFfVDEiLAoKcGF0aDogIjE1LjEuMi4zLCA5LjgiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBmb3IgYm9vbGVhbiBwcmltaXRpdmUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoIShpc05hTihwYXJzZUZsb2F0KHRydWUpKSAmJiBpc05hTihwYXJzZUZsb2F0KCJOYU4iKSkpKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VGbG9hdCh0cnVlKSA9PT0gTm90LWEtTnVtYmVyOyBwYXJzZUZsb2F0KCJOYU4iKSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiTmFOIikpKTsKfQoKLy9DSEVDSyMyCmlmIChTdHJpbmcocGFyc2VGbG9hdChmYWxzZSkpICE9PSAiTmFOIikgewogICRFUlJPUignIzI6IFN0cmluZyhwYXJzZUZsb2F0KGZhbHNlKSkgPT09ICJOYU4iLiBBY3R1YWw6ICcgKyAoU3RyaW5nKHBhcnNlRmxvYXQoZmFsc2UpKSkpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.3_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTFfVDIiLAoKcGF0aDogIjE1LjEuMi4zLCA5LjgiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBmb3IgbnVtYmVyIHByaW1pdGl2ZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChwYXJzZUZsb2F0KC0xLjEpICE9PSBwYXJzZUZsb2F0KCItMS4xIikpIHsKICAkRVJST1IoJyMxOiBwYXJzZUZsb2F0KC0xLjEpID09PSBwYXJzZUZsb2F0KCItMS4xIikuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KC0xLjEpKSk7Cn0KCi8vQ0hFQ0sjMgppZiAocGFyc2VGbG9hdChJbmZpbml0eSkgIT09IHBhcnNlRmxvYXQoIkluZmluaXR5IikpIHsKICAkRVJST1IoJyMyOiBwYXJzZUZsb2F0KEluZmluaXR5KSA9PT0gcGFyc2VGbG9hdCgiSW5maW5pdHkiKS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoSW5maW5pdHkpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAoU3RyaW5nKHBhcnNlRmxvYXQoTmFOKSkgIT09ICJOYU4iKSB7CiAgJEVSUk9SKCcjMzogU3RyaW5nKHBhcnNlRmxvYXQoTmFOKSkgPT09ICJOYU4iLiBBY3R1YWw6ICcgKyAoU3RyaW5nKHBhcnNlRmxvYXQoTmFOKSkpKTsKfQoKLy9DSEVDSyM0CmlmIChwYXJzZUZsb2F0KC4wMWUrMikgIT09IHBhcnNlRmxvYXQoIi4wMWUrMiIpKSB7CiAgJEVSUk9SKCcjNDogcGFyc2VGbG9hdCguMDFlKzIpID09PSBwYXJzZUZsb2F0KCIuMDFlKzIiKS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoLjAxZSsyKSkpOwp9CgovL0NIRUNLIzUKaWYgKHBhcnNlRmxvYXQoLTApICE9PSAwKSB7CiAgJEVSUk9SKCcjNTogcGFyc2VGbG9hdCgtMCkgPT09IDAuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KC0wKSkpOwp9IGVsc2UgewogIGlmICgxIC8gcGFyc2VGbG9hdCgtMCkgIT09IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkgewogICAgJEVSUk9SKCcjNTogcGFyc2VGbG9hdCgtMCkgPT09ICswLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgtMCkpKTsKICB9Cn0gICAgCgogfQp9KTsKCg==","id":"S15.1.2.3_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTFfVDMiLAoKcGF0aDogIjE1LjEuMi4zLCA5LjgiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBmb3IgdW5kZWZpbmVkIGFuZCBudWxsIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKCEoaXNOYU4ocGFyc2VGbG9hdCh1bmRlZmluZWQpKSAmJiBpc05hTihwYXJzZUZsb2F0KCJOYU4iKSkpKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VGbG9hdCh1bmRlZmluZWQpID09PSBOb3QtYS1OdW1iZXI7IHBhcnNlRmxvYXQoIk5hTiIpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCJOYU4iKSkpOwp9CgovL0NIRUNLIzIKaWYgKCEoaXNOYU4ocGFyc2VGbG9hdChudWxsKSkgJiYgaXNOYU4ocGFyc2VGbG9hdCgiTmFOIikpKSkgewogICRFUlJPUignIzI6IHBhcnNlRmxvYXQobnVsbCkgPT09IE5vdC1hLU51bWJlcjsgcGFyc2VGbG9hdCgiTmFOIikgPT09IE5vdC1hLU51bWJlci4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIk5hTiIpKSk7Cn0KCgovL0NIRUNLIzMKaWYgKFN0cmluZyhwYXJzZUZsb2F0KHVuZGVmaW5lZCkpICE9PSAiTmFOIikgewogICRFUlJPUignIzM6IFN0cmluZyhwYXJzZUZsb2F0KHVuZGVmaW5lZCkpID09PSAiTmFOIi4gQWN0dWFsOiAnICsgKFN0cmluZyhwYXJzZUZsb2F0KHVuZGVmaW5lZCkpKSk7Cn0KCi8vQ0hFQ0sjNAppZiAoU3RyaW5nKHBhcnNlRmxvYXQobnVsbCkpICE9PSAiTmFOIikgewogICRFUlJPUignIzQ6IFN0cmluZyhwYXJzZUZsb2F0KG51bGwpKSA9PT0gIk5hTiIuIEFjdHVhbDogJyArIChTdHJpbmcocGFyc2VGbG9hdChudWxsKSkpKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.2.3_A1_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTFfVDQiLAoKcGF0aDogIjE1LjEuMi4zLCA5LjgiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBmb3IgQm9vbGVhbiBvYmplY3QiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoIShpc05hTihwYXJzZUZsb2F0KG5ldyBCb29sZWFuKHRydWUpKSkgJiYgaXNOYU4ocGFyc2VGbG9hdCgiTmFOIikpKSkgewogICRFUlJPUignIzE6IHBhcnNlRmxvYXQobmV3IEJvb2xlYW4odHJ1ZSkpID09PSBOb3QtYS1OdW1iZXI7IHBhcnNlRmxvYXQoIk5hTiIpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCJOYU4iKSkpOwp9CgovL0NIRUNLIzIKaWYgKFN0cmluZyhwYXJzZUZsb2F0KG5ldyBCb29sZWFuKGZhbHNlKSkpICE9PSAiTmFOIikgewogICRFUlJPUignIzI6IFN0cmluZyhwYXJzZUZsb2F0KG5ldyBCb29sZWFuKGZhbHNlKSkpID09PSAiTmFOIi4gQWN0dWFsOiAnICsgKFN0cmluZyhwYXJzZUZsb2F0KG5ldyBCb29sZWFuKGZhbHNlKSkpKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.3_A1_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTFfVDUiLAoKcGF0aDogIjE1LjEuMi4zLCA5LjgiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBmb3IgTnVtYmVyIG9iamVjdCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChwYXJzZUZsb2F0KG5ldyBOdW1iZXIoLTEuMSkpICE9PSBwYXJzZUZsb2F0KCItMS4xIikpIHsKICAkRVJST1IoJyMxOiBwYXJzZUZsb2F0KG5ldyBOdW1iZXIoLTEuMSkpID09PSBwYXJzZUZsb2F0KCItMS4xIikuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KG5ldyBOdW1iZXIoLTEuMSkpKSk7Cn0KCi8vQ0hFQ0sjMgppZiAocGFyc2VGbG9hdChuZXcgTnVtYmVyKEluZmluaXR5KSkgIT09IHBhcnNlRmxvYXQoIkluZmluaXR5IikpIHsKICAkRVJST1IoJyMyOiBwYXJzZUZsb2F0KG5ldyBOdW1iZXIoSW5maW5pdHkpKSA9PT0gcGFyc2VGbG9hdCgiSW5maW5pdHkiKS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQobmV3IE51bWJlcihJbmZpbml0eSkpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAoU3RyaW5nKHBhcnNlRmxvYXQobmV3IE51bWJlcihOYU4pKSkgIT09ICJOYU4iKSB7CiAgJEVSUk9SKCcjMzogU3RyaW5nKHBhcnNlRmxvYXQobmV3IE51bWJlcihOYU4pKSkgPT09ICJOYU4iLiBBY3R1YWw6ICcgKyAoU3RyaW5nKHBhcnNlRmxvYXQobmV3IE51bWJlcihOYU4pKSkpKTsKfQoKLy9DSEVDSyM0CmlmIChwYXJzZUZsb2F0KG5ldyBOdW1iZXIoLjAxZSsyKSkgIT09IHBhcnNlRmxvYXQoIi4wMWUrMiIpKSB7CiAgJEVSUk9SKCcjNDogcGFyc2VGbG9hdChuZXcgTnVtYmVyKC4wMWUrMikpID09PSBwYXJzZUZsb2F0KCIuMDFlKzIiKS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQobmV3IE51bWJlciguMDFlKzIpKSkpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.3_A1_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTFfVDYiLAoKcGF0aDogIjE1LjEuMi4zLCA5LjgiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBmb3IgU3RyaW5nIG9iamVjdCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChwYXJzZUZsb2F0KG5ldyBTdHJpbmcoIi0xLjEiKSkgIT09IHBhcnNlRmxvYXQoIi0xLjEiKSkgewogICRFUlJPUignIzE6IHBhcnNlRmxvYXQobmV3IFN0cmluZygiLTEuMSIpKSA9PT0gcGFyc2VGbG9hdCgiLTEuMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdChuZXcgU3RyaW5nKCItMS4xIikpKSk7Cn0KCi8vQ0hFQ0sjMgppZiAocGFyc2VGbG9hdChuZXcgU3RyaW5nKCJJbmZpbml0eSIpKSAhPT0gcGFyc2VGbG9hdCgiSW5maW5pdHkiKSkgewogICRFUlJPUignIzI6IHBhcnNlRmxvYXQobmV3IFN0cmluZygiSW5maW5pdHkiKSkgPT09IHBhcnNlRmxvYXQoIkluZmluaXR5IikuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KG5ldyBTdHJpbmcoIkluZmluaXR5IikpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAoU3RyaW5nKHBhcnNlRmxvYXQobmV3IFN0cmluZygiTmFOIikpKSAhPT0gIk5hTiIpIHsKICAkRVJST1IoJyMzOiBTdHJpbmcocGFyc2VGbG9hdChuZXcgU3RyaW5nKCJOYU4iKSkpID09PSAiTmFOIi4gQWN0dWFsOiAnICsgKFN0cmluZyhwYXJzZUZsb2F0KG5ldyBTdHJpbmcoIk5hTiIpKSkpKTsKfQoKLy9DSEVDSyM0CmlmIChwYXJzZUZsb2F0KG5ldyBTdHJpbmcoIi4wMWUrMiIpKSAhPT0gcGFyc2VGbG9hdCgiLjAxZSsyIikpIHsKICAkRVJST1IoJyM0OiBwYXJzZUZsb2F0KG5ldyBTdHJpbmcoIi4wMWUrMiIpKSA9PT0gcGFyc2VGbG9hdCgiLjAxZSsyIikuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KG5ldyBTdHJpbmcoIi4wMWUrMiIpKSkpOwp9CgovL0NIRUNLIzUKaWYgKFN0cmluZyhwYXJzZUZsb2F0KG5ldyBTdHJpbmcoImZhbHNlIikpKSAhPT0gIk5hTiIpIHsKICAkRVJST1IoJyM1OiBTdHJpbmcocGFyc2VGbG9hdChuZXcgU3RyaW5nKCJmYWxzZSIpKSkgPT09ICJOYU4iLiBBY3R1YWw6ICcgKyAoU3RyaW5nKHBhcnNlRmxvYXQobmV3IFN0cmluZygiZmFsc2UiKSkpKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.3_A1_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTFfVDciLAoKcGF0aDogIjE1LjEuMi4zLCA5LjgsIDguNi4yLjYiLAoKZGVzY3JpcHRpb246ICJJZiBUeXBlKHZhbHVlKSBpcyBPYmplY3QsIGV2YWx1YXRlIFRvUHJpbWl0aXZlKHZhbHVlLCBTdHJpbmcpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4gMX19OwppZiAoaXNOYU4ocGFyc2VGbG9hdChvYmplY3QpKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzE6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuIDF9fTsgcGFyc2VGbG9hdChvYmplY3QpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KG9iamVjdCkpKTsKfQoKLy9DSEVDSyMyCnZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuIDF9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIDB9fTsKaWYgKHBhcnNlRmxvYXQob2JqZWN0KSAhPT0gMCkgewogICRFUlJPUignIzI6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuIDF9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIDB9fTsgcGFyc2VGbG9hdChvYmplY3QpID09PSAwLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdChvYmplY3QpKSk7Cn0gCgovL0NIRUNLIzMKdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4gMX0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4ge319fTsKaWYgKHBhcnNlRmxvYXQob2JqZWN0KSAhPT0gMSkgewogICRFUlJPUignIzM6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuIDF9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIHt9fX07IHBhcnNlRmxvYXQob2JqZWN0KSA9PT0gMS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQob2JqZWN0KSkpOwp9CgovL0NIRUNLIzQKdHJ5IHsKICB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3Rocm93ICJlcnJvciJ9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIDF9fTsKICBpZiAocGFyc2VGbG9hdChvYmplY3QpICE9PSAxKSB7CiAgICAkRVJST1IoJyM0LjE6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7dGhyb3cgImVycm9yIn0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4gMX19OyBwYXJzZUZsb2F0KG9iamVjdCkgPT09IDEuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KG9iamVjdCkpKTsKICB9Cn0KY2F0Y2ggKGUpIHsKICBpZiAoZSA9PT0gImVycm9yIikgewogICAgJEVSUk9SKCcjNC4yOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3Rocm93ICJlcnJvciJ9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIDF9fTsgcGFyc2VGbG9hdChvYmplY3QpIG5vdCB0aHJvdyAiZXJyb3IiJyk7CiAgfSBlbHNlIHsKICAgICRFUlJPUignIzQuMzogdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHt0aHJvdyAiZXJyb3IifSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiAxfX07IHBhcnNlRmxvYXQob2JqZWN0KSBub3QgdGhyb3cgRXJyb3IuIEFjdHVhbDogJyArIChlKSk7CiAgfQp9CgovL0NIRUNLIzUKdmFyIG9iamVjdCA9IHt0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIDF9fTsKaWYgKHBhcnNlRmxvYXQob2JqZWN0KSAhPT0gMSkgewogICRFUlJPUignIzU6IHZhciBvYmplY3QgPSB7dG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiAxfX07IHBhcnNlRmxvYXQob2JqZWN0KSA9PT0gMS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQob2JqZWN0KSkpOwp9CgovL0NIRUNLIzYKdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4ge319LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIDF9fQppZiAocGFyc2VGbG9hdChvYmplY3QpICE9PSAxKSB7CiAgJEVSUk9SKCcjNjogdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4ge319LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIDF9fTsgcGFyc2VGbG9hdChvYmplY3QpID09PSAxLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdChvYmplY3QpKSk7Cn0KCi8vQ0hFQ0sjNwp0cnkgewogIHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuIDF9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7dGhyb3cgImVycm9yIn19OwogIHBhcnNlRmxvYXQob2JqZWN0KTsKICAkRVJST1IoJyM3LjE6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuIDF9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7dGhyb3cgImVycm9yIn19OyBwYXJzZUZsb2F0KG9iamVjdCkgdGhyb3cgImVycm9yIi4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQob2JqZWN0KSkpOwp9ICAKY2F0Y2ggKGUpIHsKICBpZiAoZSAhPT0gImVycm9yIikgewogICAgJEVSUk9SKCcjNy4yOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiAxfSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3Rocm93ICJlcnJvciJ9fTsgcGFyc2VGbG9hdChvYmplY3QpIHRocm93ICJlcnJvciIuIEFjdHVhbDogJyArIChlKSk7CiAgfSAKfQoKLy9DSEVDSyM4CnRyeSB7CiAgdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4ge319LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIHt9fX07CiAgcGFyc2VGbG9hdChvYmplY3QpOwogICRFUlJPUignIzguMTogdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4ge319LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIHt9fX07IHBhcnNlRmxvYXQob2JqZWN0KSB0aHJvdyBUeXBlRXJyb3IuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KG9iamVjdCkpKTsKfSAgCmNhdGNoIChlKSB7CiAgaWYgKChlIGluc3RhbmNlb2YgVHlwZUVycm9yKSAhPT0gdHJ1ZSkgewogICAgJEVSUk9SKCcjOC4yOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiB7fX0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4ge319fTsgcGFyc2VGbG9hdChvYmplY3QpIHRocm93IFR5cGVFcnJvci4gQWN0dWFsOiAnICsgKGUpKTsKICB9IAp9CgogfQp9KTsKCg==","id":"S15.1.2.3_A1_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTJfVDEiLAoKcGF0aDogIjE1LjEuMi4zIiwKCmRlc2NyaXB0aW9uOiAiU3RyV2hpdGVTcGFjZUNoYXIgOjogVEFCIChVKzAwMDkpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKHBhcnNlRmxvYXQoIlx1MDAwOTEuMSIpICE9PSBwYXJzZUZsb2F0KCIxLjEiKSkgewogICRFUlJPUignIzE6IHBhcnNlRmxvYXQoIlxcdTAwMDkxLjEiKSA9PT0gcGFyc2VGbG9hdCgiMS4xIikuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCJcdTAwMDkxLjEiKSkpOwp9CgovL0NIRUNLIzIKaWYgKHBhcnNlRmxvYXQoIlx1MDAwOVx1MDAwOS0xLjEiKSAhPT0gcGFyc2VGbG9hdCgiLTEuMSIpKSB7CiAgJEVSUk9SKCcjMjogcGFyc2VGbG9hdCgiXFx1MDAwOVxcdTAwMDktMS4xIikgPT09IHBhcnNlRmxvYXQoIi0xLjEiKS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIlx1MDAwOVx1MDAwOS0xLjEiKSkpOwp9CgovL0NIRUNLIzMKaWYgKHBhcnNlRmxvYXQoIgkxLjEiKSAhPT0gcGFyc2VGbG9hdCgiMS4xIikpIHsKICAkRVJST1IoJyMzOiBwYXJzZUZsb2F0KCIJMS4xIikgPT09IHBhcnNlRmxvYXQoIjEuMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiCTEuMSIpKSk7Cn0KCi8vQ0hFQ0sjNAppZiAocGFyc2VGbG9hdCgiCQkJMS4xIikgIT09IHBhcnNlRmxvYXQoIjEuMSIpKSB7CiAgJEVSUk9SKCcjNDogcGFyc2VGbG9hdCgiCQkJMS4xIikgPT09IHBhcnNlRmxvYXQoIjEuMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiCQkJMS4xIikpKTsKfQoKLy9DSEVDSyM1CmlmIChwYXJzZUZsb2F0KCIJCQlcdTAwMDkJCQlcdTAwMDktMS4xIikgIT09IHBhcnNlRmxvYXQoIi0xLjEiKSkgewogICRFUlJPUignIzU6IHBhcnNlRmxvYXQoIgkJCVxcdTAwMDkJCQlcXHUwMDA5LTEuMSIpID09PSBwYXJzZUZsb2F0KCItMS4xIikuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIJCQlcdTAwMDkJCQlcdTAwMDktMS4xIikpKTsKfQoKLy9DSEVDSyM2CmlmIChpc05hTihwYXJzZUZsb2F0KCJcdTAwMDkiKSkgIT09IHRydWUpIHsKICAkRVJST1IoJyM2OiBwYXJzZUZsb2F0KCJcXHUwMDA5IikgPT09IE5vdC1hLU51bWJlci4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIlx1MDAwOSIpKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.3_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTJfVDEwIiwKCnBhdGg6ICIxNS4xLjIuMyIsCgpkZXNjcmlwdGlvbjogIlN0cldoaXRlU3BhY2VDaGFyIDo6IFVTUCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMKdmFyIGNvdW50ID0gMDsKdmFyIGVycm9yQ291bnQgPSAwOwp2YXIgdXNwVSA9IFsiXHUxNjgwIiwgIlx1MTgwRSIsICJcdTIwMDAiLCAiXHUyMDAxIiwgIlx1MjAwMiIsICJcdTIwMDMiLCAiXHUyMDA0IiwgIlx1MjAwNSIsICJcdTIwMDYiLCAiXHUyMDA3IiwgIlx1MjAwOCIsICJcdTIwMDkiLCAiXHUyMDBBIiwgIlx1MjAyRiIsICJcdTIwNUYiLCAiXHUzMDAwIl07CnZhciB1c3BTID0gWyIxNjgwIiwgIjE4MEUiLCAiMjAwMCIsICIyMDAxIiwgIjIwMDIiLCAiMjAwMyIsICIyMDA0IiwgIjIwMDUiLCAiMjAwNiIsICIyMDA3IiwgIjIwMDgiLCAiMjAwOSIsICIyMDBBIiwgIjIwMkYiLCAiMjA1RiIsICIzMDAwIl07CmZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCB1c3BVLmxlbmd0aDsgaW5kZXgrKykgewogIHZhciByZXN1bHQgPSB0cnVlOyAgCiAgaWYgKHBhcnNlRmxvYXQodXNwVVtpbmRleF0gKyAiMS4xIikgIT09IHBhcnNlRmxvYXQoIjEuMSIpKSB7CiAgICAkRVJST1IoJyMxLicgKyAgdXNwU1tpbmRleF0gKyAnICcpOwogICAgcmVzdWx0ID0gZmFsc2U7CiAgfQogICBpZiAocGFyc2VGbG9hdCh1c3BVW2luZGV4XSArIHVzcFVbaW5kZXhdICsgdXNwVVtpbmRleF0gKyAiMS4xIikgIT09IHBhcnNlRmxvYXQoIjEuMSIpKSB7CiAgICAkRVJST1IoJyMyLicgKyAgdXNwU1tpbmRleF0gKyAnICcpOwogICAgcmVzdWx0ID0gZmFsc2U7CiAgfQogIGlmIChpc05hTihwYXJzZUZsb2F0KHVzcFVbaW5kZXhdKSkgIT09IHRydWUpIHsKICAgICRFUlJPUignIzMuJyArICB1c3BTW2luZGV4XSArICcgJyk7CiAgICByZXN1bHQgPSBmYWxzZTsKICB9CiAgaWYgKHJlc3VsdCAhPT0gdHJ1ZSkgewogICAgICBlcnJvckNvdW50Kys7CiAgfQogIGNvdW50Kys7Cn0KCmlmIChlcnJvckNvdW50ID4gMCkgeyAgCiAgJEVSUk9SKCdUb3RhbCBlcnJvcjogJyArIGVycm9yQ291bnQgKyAnIGJhZCBVbmljb2RlIGNoYXJhY3RlciBpbiAnICsgY291bnQpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.3_A2_T10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTJfVDIiLAoKcGF0aDogIjE1LjEuMi4zIiwKCmRlc2NyaXB0aW9uOiAiU3RyV2hpdGVTcGFjZUNoYXIgOjogU1AgKFUrMDAyMCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAocGFyc2VGbG9hdCgiXHUwMDIwMS4xIikgIT09IHBhcnNlRmxvYXQoIjEuMSIpKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VGbG9hdCgiXFx1MDAyMDEuMSIpID09PSBwYXJzZUZsb2F0KCIxLjEiKS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIlx1MDAyMDEuMSIpKSk7Cn0KCi8vQ0hFQ0sjMgppZiAocGFyc2VGbG9hdCgiXHUwMDIwXHUwMDIwLTEuMSIpICE9PSBwYXJzZUZsb2F0KCItMS4xIikpIHsKICAkRVJST1IoJyMyOiBwYXJzZUZsb2F0KCJcXHUwMDIwXFx1MDAyMC0xLjEiKSA9PT0gcGFyc2VGbG9hdCgiLTEuMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiXHUwMDIwXHUwMDIwLTEuMSIpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAocGFyc2VGbG9hdCgiIDEuMSIpICE9PSBwYXJzZUZsb2F0KCIxLjEiKSkgewogICRFUlJPUignIzM6IHBhcnNlRmxvYXQoIiAxLjEiKSA9PT0gcGFyc2VGbG9hdCgiMS4xIikuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIgMS4xIikpKTsKfQoKLy9DSEVDSyM0CmlmIChwYXJzZUZsb2F0KCIgICAgICAgMS4xIikgIT09IHBhcnNlRmxvYXQoIjEuMSIpKSB7CiAgJEVSUk9SKCcjNDogcGFyc2VGbG9hdCgiICAgICAgIDEuMSIpID09PSBwYXJzZUZsb2F0KCIxLjEiKS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIiAgICAgICAxLjEiKSkpOwp9CgovL0NIRUNLIzUKaWYgKHBhcnNlRmxvYXQoIiAgICAgICBcdTAwMjAgICAgICAgXHUwMDIwLTEuMSIpICE9PSBwYXJzZUZsb2F0KCItMS4xIikpIHsKICAkRVJST1IoJyM1OiBwYXJzZUZsb2F0KCIgICAgICAgXFx1MDAyMCAgICAgICBcXHUwMDIwLTEuMSIpID09PSBwYXJzZUZsb2F0KCItMS4xIikuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIgICAgICAgXHUwMDIwICAgICAgIFx1MDAyMC0xLjEiKSkpOwp9CgovL0NIRUNLIzYKaWYgKGlzTmFOKHBhcnNlRmxvYXQoIlx1MDAyMCIpKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzY6IHBhcnNlRmxvYXQoIlxcdTAwMjAiKSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiXHUwMDIwIikpKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.2.3_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTJfVDMiLAoKcGF0aDogIjE1LjEuMi4zIiwKCmRlc2NyaXB0aW9uOiAiU3RyV2hpdGVTcGFjZUNoYXIgOjogTkJTQiAoVSswMEEwKSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChwYXJzZUZsb2F0KCJcdTAwQTAxLjEiKSAhPT0gcGFyc2VGbG9hdCgiMS4xIikpIHsKICAkRVJST1IoJyMxOiBwYXJzZUZsb2F0KCJcXHUwMEEwMS4xIikgPT09IHBhcnNlRmxvYXQoIjEuMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiXHUwMEEwMS4xIikpKTsKfQoKLy9DSEVDSyMyCmlmIChwYXJzZUZsb2F0KCJcdTAwQTBcdTAwQTAtMS4xIikgIT09IHBhcnNlRmxvYXQoIi0xLjEiKSkgewogICRFUlJPUignIzI6IHBhcnNlRmxvYXQoIlxcdTAwQTBcXHUwMEEwLTEuMSIpID09PSBwYXJzZUZsb2F0KCItMS4xIikuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCJcdTAwQTBcdTAwQTAtMS4xIikpKTsKfQoKLy9DSEVDSyMzCmlmIChpc05hTihwYXJzZUZsb2F0KCJcdTAwQTAiKSkgIT09IHRydWUpIHsKICAkRVJST1IoJyMzOiBwYXJzZUZsb2F0KCJcXHUwMEEwIikgPT09IE5vdC1hLU51bWJlci4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIlx1MDBBMCIpKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.3_A2_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTJfVDQiLAoKcGF0aDogIjE1LjEuMi4zIiwKCmRlc2NyaXB0aW9uOiAiU3RyV2hpdGVTcGFjZUNoYXIgOjogRkYgKFUrMDAwQykiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAocGFyc2VGbG9hdCgiXHUwMDBDMS4xIikgIT09IHBhcnNlRmxvYXQoIjEuMSIpKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VGbG9hdCgiXFx1MDAwQzEuMSIpID09PSBwYXJzZUZsb2F0KCIxLjEiKS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIlx1MDAwQzEuMSIpKSk7Cn0KCi8vQ0hFQ0sjMgppZiAocGFyc2VGbG9hdCgiXHUwMDBDXHUwMDBDLTEuMSIpICE9PSBwYXJzZUZsb2F0KCItMS4xIikpIHsKICAkRVJST1IoJyMyOiBwYXJzZUZsb2F0KCJcXHUwMDBDXFx1MDAwQy0xLjEiKSA9PT0gcGFyc2VGbG9hdCgiLTEuMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiXHUwMDBDXHUwMDBDLTEuMSIpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAoaXNOYU4ocGFyc2VGbG9hdCgiXHUwMDBDIikpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMzogcGFyc2VGbG9hdCgiXFx1MDAwQyIpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCJcdTAwMEMiKSkpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.3_A2_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTJfVDUiLAoKcGF0aDogIjE1LjEuMi4zIiwKCmRlc2NyaXB0aW9uOiAiU3RyV2hpdGVTcGFjZUNoYXIgOjogVlQgKFUrMDAwQikiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAocGFyc2VGbG9hdCgiXHUwMDBCMS4xIikgIT09IHBhcnNlRmxvYXQoIjEuMSIpKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VGbG9hdCgiXFx1MDAwQjEuMSIpID09PSBwYXJzZUZsb2F0KCIxLjEiKS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIlx1MDAwQjEuMSIpKSk7Cn0KCi8vQ0hFQ0sjMgppZiAocGFyc2VGbG9hdCgiXHUwMDBCXHUwMDBCLTEuMSIpICE9PSBwYXJzZUZsb2F0KCItMS4xIikpIHsKICAkRVJST1IoJyMyOiBwYXJzZUZsb2F0KCJcXHUwMDBCXFx1MDAwQi0xLjEiKSA9PT0gcGFyc2VGbG9hdCgiLTEuMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiXHUwMDBCXHUwMDBCLTEuMSIpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAoaXNOYU4ocGFyc2VGbG9hdCgiXHUwMDBCIikpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMzogcGFyc2VGbG9hdCgiXFx1MDAwQiIpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCJcdTAwMEIiKSkpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.3_A2_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTJfVDYiLAoKcGF0aDogIjE1LjEuMi4zIiwKCmRlc2NyaXB0aW9uOiAiU3RyV2hpdGVTcGFjZUNoYXIgOjogQ1IgKFUrMDAwRCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAocGFyc2VGbG9hdCgiXHUwMDBEMS4xIikgIT09IHBhcnNlRmxvYXQoIjEuMSIpKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VGbG9hdCgiXFx1MDAwRDEuMSIpID09PSBwYXJzZUZsb2F0KCIxLjEiKS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIlx1MDAwRDEuMSIpKSk7Cn0KCi8vQ0hFQ0sjMgppZiAocGFyc2VGbG9hdCgiXHUwMDBEXHUwMDBELTEuMSIpICE9PSBwYXJzZUZsb2F0KCItMS4xIikpIHsKICAkRVJST1IoJyMyOiBwYXJzZUZsb2F0KCJcXHUwMDBEXFx1MDAwRC0xLjEiKSA9PT0gcGFyc2VGbG9hdCgiLTEuMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiXHUwMDBEXHUwMDBELTEuMSIpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAoaXNOYU4ocGFyc2VGbG9hdCgiXHUwMDBEIikpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMzogcGFyc2VGbG9hdCgiXFx1MDAwRCIpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCJcdTAwMEQiKSkpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.3_A2_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTJfVDciLAoKcGF0aDogIjE1LjEuMi4zIiwKCmRlc2NyaXB0aW9uOiAiU3RyV2hpdGVTcGFjZUNoYXIgOjogTEYgKFUrMDAwQSkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAocGFyc2VGbG9hdCgiXHUwMDBBMS4xIikgIT09IHBhcnNlRmxvYXQoIjEuMSIpKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VGbG9hdCgiXFx1MDAwQTEuMSIpID09PSBwYXJzZUZsb2F0KCIxLjEiKS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIlx1MDAwQTEuMSIpKSk7Cn0KCi8vQ0hFQ0sjMgppZiAocGFyc2VGbG9hdCgiXHUwMDBBXHUwMDBBLTEuMSIpICE9PSBwYXJzZUZsb2F0KCItMS4xIikpIHsKICAkRVJST1IoJyMyOiBwYXJzZUZsb2F0KCJcXHUwMDBBXFx1MDAwQS0xLjEiKSA9PT0gcGFyc2VGbG9hdCgiLTEuMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiXHUwMDBBXHUwMDBBLTEuMSIpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAoaXNOYU4ocGFyc2VGbG9hdCgiXHUwMDBBIikpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMzogcGFyc2VGbG9hdCgiXFx1MDAwQSIpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCJcdTAwMEEiKSkpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.3_A2_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTJfVDgiLAoKcGF0aDogIjE1LjEuMi4zIiwKCmRlc2NyaXB0aW9uOiAiU3RyV2hpdGVTcGFjZUNoYXIgOjogTFMgKFUrMjAyOCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAocGFyc2VGbG9hdCgiXHUyMDI4MS4xIikgIT09IHBhcnNlRmxvYXQoIjEuMSIpKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VGbG9hdCgiXFx1MjAyODEuMSIpID09PSBwYXJzZUZsb2F0KCIxLjEiKS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIlx1MjAyODEuMSIpKSk7Cn0KCi8vQ0hFQ0sjMgppZiAocGFyc2VGbG9hdCgiXHUyMDI4XHUyMDI4LTEuMSIpICE9PSBwYXJzZUZsb2F0KCItMS4xIikpIHsKICAkRVJST1IoJyMyOiBwYXJzZUZsb2F0KCJcXHUyMDI4XFx1MjAyOC0xLjEiKSA9PT0gcGFyc2VGbG9hdCgiLTEuMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiXHUyMDI4XHUyMDI4LTEuMSIpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAoaXNOYU4ocGFyc2VGbG9hdCgiXHUyMDI4IikpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMzogcGFyc2VGbG9hdCgiXFx1MjAyOCIpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCJcdTIwMjgiKSkpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.3_A2_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTJfVDkiLAoKcGF0aDogIjE1LjEuMi4zIiwKCmRlc2NyaXB0aW9uOiAiU3RyV2hpdGVTcGFjZUNoYXIgOjogUFMgKFUrMjAyOSkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAocGFyc2VGbG9hdCgiXHUyMDI5MS4xIikgIT09IHBhcnNlRmxvYXQoIjEuMSIpKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VGbG9hdCgiXFx1MjAyOTEuMSIpID09PSBwYXJzZUZsb2F0KCIxLjEiKS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIlx1MjAyOTEuMSIpKSk7Cn0KCi8vQ0hFQ0sjMgppZiAocGFyc2VGbG9hdCgiXHUyMDI5XHUyMDI5LTEuMSIpICE9PSBwYXJzZUZsb2F0KCItMS4xIikpIHsKICAkRVJST1IoJyMyOiBwYXJzZUZsb2F0KCJcXHUyMDI5XFx1MjAyOS0xLjEiKSA9PT0gcGFyc2VGbG9hdCgiLTEuMSIpLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiXHUyMDI5XHUyMDI5LTEuMSIpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAoaXNOYU4ocGFyc2VGbG9hdCgiXHUyMDI5IikpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMzogcGFyc2VGbG9hdCgiXFx1MjAyOSIpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCJcdTIwMjkiKSkpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.3_A2_T9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTNfVDEiLAoKcGF0aDogIjE1LjEuMi4zLCA5LjMuMSIsCgpkZXNjcmlwdGlvbjogInBhcnNlRmxvYXQoXCJzb21lIHN0cmluZ1wiKSByZXR1cm4gTmFOIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKGlzTmFOKHBhcnNlRmxvYXQoInN0ciIpKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzE6IHBhcnNlRmxvYXQoInN0ciIpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCJzdHIiKSkpOwp9CgovL0NIRUNLIzIKaWYgKGlzTmFOKHBhcnNlRmxvYXQoInMxIikpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMjogcGFyc2VGbG9hdCgiczEiKSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiczEiKSkpOwp9CgovL0NIRUNLIzMKaWYgKGlzTmFOKHBhcnNlRmxvYXQoIiIpKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzM6IHBhcnNlRmxvYXQoIiIpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIiKSkpOwp9CgovL0NIRUNLIzQKaWYgKFN0cmluZyhwYXJzZUZsb2F0KCJzdHIiKSkgIT09ICJOYU4iKSB7CiAgJEVSUk9SKCcjNDogU3RyaW5nKHBhcnNlRmxvYXQoInN0ciIpKSA9PT0gIk5hTiIuIEFjdHVhbDogJyArIChTdHJpbmcocGFyc2VGbG9hdCgic3RyIikpKSk7Cn0KCi8vQ0hFQ0sjNQppZiAoU3RyaW5nKHBhcnNlRmxvYXQoInMxIikpICE9PSAiTmFOIikgewogICRFUlJPUignIzU6IFN0cmluZyhwYXJzZUZsb2F0KCJzMSIpKSA9PT0gIk5hTiIuIEFjdHVhbDogJyArIChTdHJpbmcocGFyc2VGbG9hdCgiczEiKSkpKTsKfQoKLy9DSEVDSyM2CmlmIChTdHJpbmcocGFyc2VGbG9hdCgiIikpICE9PSAiTmFOIikgewogICRFUlJPUignIzY6IFN0cmluZyhwYXJzZUZsb2F0KCIiKSkgPT09ICJOYU4iLiBBY3R1YWw6ICcgKyAoU3RyaW5nKHBhcnNlRmxvYXQoIiIpKSkpOwp9CgovL0NIRUNLIzcKaWYgKFN0cmluZyhwYXJzZUZsb2F0KCIrIikpICE9PSAiTmFOIikgewogICRFUlJPUignIzc6IFN0cmluZyhwYXJzZUZsb2F0KCIrIikpID09PSAiTmFOIi4gQWN0dWFsOiAnICsgKFN0cmluZyhwYXJzZUZsb2F0KCIrIikpKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.3_A3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTNfVDIiLAoKcGF0aDogIjE1LjEuMi4zLCA5LjMuMSIsCgpkZXNjcmlwdGlvbjogInBhcnNlRmxvYXQoXCJ3cm9uZyBudW1iZXIgZm9ybWF0IHdpdGggRXhwb25lbnRJbmRpY2F0b3JcIikgcmV0dXJuIE5hTiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChpc05hTihwYXJzZUZsb2F0KCJlMSIpKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzE6IHBhcnNlRmxvYXQoImUxIikgPT09IE5vdC1hLU51bWJlci4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoImUxIikpKTsKfQoKLy9DSEVDSyMyCmlmIChpc05hTihwYXJzZUZsb2F0KCJlLTEiKSkgIT09IHRydWUpIHsKICAkRVJST1IoJyMyOiBwYXJzZUZsb2F0KCJlLTEiKSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiZS0xIikpKTsKfQoKLy9DSEVDSyMzCmlmIChpc05hTihwYXJzZUZsb2F0KCJFKzEiKSkgIT09IHRydWUpIHsKICAkRVJST1IoJyMzOiBwYXJzZUZsb2F0KCJFKzEiKSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiRSsxIikpKTsKfQoKLy9DSEVDSyM0CmlmIChpc05hTihwYXJzZUZsb2F0KCJFMCIpKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzQ6IHBhcnNlRmxvYXQoIkUwIikgPT09IE5vdC1hLU51bWJlci4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIkUwIikpKTsKfQoKLy9DSEVDSyM1CmlmIChTdHJpbmcocGFyc2VGbG9hdCgiZTEiKSkgIT09ICJOYU4iKSB7CiAgJEVSUk9SKCcjNTogU3RyaW5nKHBhcnNlRmxvYXQoImUxIikpID09PSAiTmFOIi4gQWN0dWFsOiAnICsgKFN0cmluZyhwYXJzZUZsb2F0KCJlMSIpKSkpOwp9CgovL0NIRUNLIzYKaWYgKFN0cmluZyhwYXJzZUZsb2F0KCJlLTEiKSkgIT09ICJOYU4iKSB7CiAgJEVSUk9SKCcjNjogU3RyaW5nKHBhcnNlRmxvYXQoImUtMSIpKSA9PT0gIk5hTiIuIEFjdHVhbDogJyArIChTdHJpbmcocGFyc2VGbG9hdCgiZS0xIikpKSk7Cn0KCi8vQ0hFQ0sjNwppZiAoU3RyaW5nKHBhcnNlRmxvYXQoIkUrMSIpKSAhPT0gIk5hTiIpIHsKICAkRVJST1IoJyM3MzogU3RyaW5nKHBhcnNlRmxvYXQoIkUrMSIpKSA9PT0gIk5hTiIuIEFjdHVhbDogJyArIChTdHJpbmcocGFyc2VGbG9hdCgiRSsxIikpKSk7Cn0KCi8vQ0hFQ0sjOAppZiAoU3RyaW5nKHBhcnNlRmxvYXQoIkUwIikpICE9PSAiTmFOIikgewogICRFUlJPUignIzg6IFN0cmluZyhwYXJzZUZsb2F0KCJFMCIpKSA9PT0gIk5hTiIuIEFjdHVhbDogJyArIChTdHJpbmcocGFyc2VGbG9hdCgiRTAiKSkpKTsKfQoKLy9DSEVDSyM5CmlmIChpc05hTihwYXJzZUZsb2F0KCItLmUtMSIpKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzk6IHBhcnNlRmxvYXQoIi0uZS0xIikgPT09IE5vdC1hLU51bWJlci4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIi0uZS0xIikpKTsKfQoKLy9DSEVDSyMxMAppZiAoaXNOYU4ocGFyc2VGbG9hdCgiLmUxIikpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMTA6IHBhcnNlRmxvYXQoIi5lMSIpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIuZTEiKSkpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.3_A3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTNfVDMiLAoKcGF0aDogIjE1LjEuMi4zLCA5LjMuMSIsCgpkZXNjcmlwdGlvbjogInBhcnNlRmxvYXQoXCJ3cm9uZyBudW1iciBmb3JtYXRcIikgcmV0dXJuIE5hTiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChpc05hTihwYXJzZUZsb2F0KCIueCIpKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzE6IHBhcnNlRmxvYXQoIi54IikgPT09IE5vdC1hLU51bWJlci4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIi54IikpKTsKfQoKLy9DSEVDSyMyCmlmIChpc05hTihwYXJzZUZsb2F0KCIreCIpKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzI6IHBhcnNlRmxvYXQoIit4IikgPT09IE5vdC1hLU51bWJlci4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIit4IikpKTsKfQoKLy9DSEVDSyMzCmlmIChpc05hTihwYXJzZUZsb2F0KCJpbmZpbml0eSIpKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzM6IHBhcnNlRmxvYXQoImluZmluaXR5IikgPT09IE5vdC1hLU51bWJlci4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoImluZmluaXR5IikpKTsKfQoKLy9DSEVDSyM0CmlmIChpc05hTihwYXJzZUZsb2F0KCJBIikpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjNDogcGFyc2VGbG9hdCgiQSIpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCJBIikpKTsKfQoKLy9DSEVDSyM1CmlmIChTdHJpbmcocGFyc2VGbG9hdCgiLnMiKSkgIT09ICJOYU4iKSB7CiAgJEVSUk9SKCcjNTogU3RyaW5nKHBhcnNlRmxvYXQoIi5zIikpID09PSAiTmFOIi4gQWN0dWFsOiAnICsgKFN0cmluZyhwYXJzZUZsb2F0KCIucyIpKSkpOwp9CgovL0NIRUNLIzYKaWYgKFN0cmluZyhwYXJzZUZsb2F0KCIreCIpKSAhPT0gIk5hTiIpIHsKICAkRVJST1IoJyM2OiBTdHJpbmcocGFyc2VGbG9hdCgiK3giKSkgPT09ICJOYU4iLiBBY3R1YWw6ICcgKyAoU3RyaW5nKHBhcnNlRmxvYXQoIit4IikpKSk7Cn0KCi8vQ0hFQ0sjNwppZiAoU3RyaW5nKHBhcnNlRmxvYXQoImluZmluaXR5IikpICE9PSAiTmFOIikgewogICRFUlJPUignIzczOiBTdHJpbmcocGFyc2VGbG9hdCgiaW5maW5pdHkiKSkgPT09ICJOYU4iLiBBY3R1YWw6ICcgKyAoU3RyaW5nKHBhcnNlRmxvYXQoImluZmluaXR5IikpKSk7Cn0KCi8vQ0hFQ0sjOAppZiAoU3RyaW5nKHBhcnNlRmxvYXQoIkEiKSkgIT09ICJOYU4iKSB7CiAgJEVSUk9SKCcjODogU3RyaW5nKHBhcnNlRmxvYXQoIkEiKSkgPT09ICJOYU4iLiBBY3R1YWw6ICcgKyAoU3RyaW5nKHBhcnNlRmxvYXQoIkEiKSkpKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.2.3_A3_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTRfVDEiLAoKcGF0aDogIjE1LjEuMi4zLCA5LjMuMSIsCgpkZXNjcmlwdGlvbjogIlNvbWUgd3JvbmcgbnVtYmVyIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKHBhcnNlRmxvYXQoIjB4IikgIT09IDApIHsKICAkRVJST1IoJyMxOiBwYXJzZUZsb2F0KCIweCIpID09PSAwLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiMHgiKSkpOwp9CgovL0NIRUNLIzIKaWYgKHBhcnNlRmxvYXQoIjExeCIpICE9PSAxMSkgewogICRFUlJPUignIzI6IHBhcnNlRmxvYXQoIjExeCIpID09PSAxMS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIjExeCIpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAocGFyc2VGbG9hdCgiMTFzMSIpICE9PSAxMSkgewogICRFUlJPUignIzM6IHBhcnNlRmxvYXQoIjExczEiKSA9PT0gMTEuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIxMXMxIikpKTsKfQoKLy9DSEVDSyM0CmlmIChwYXJzZUZsb2F0KCIxMS5zMSIpICE9PSAxMSkgewogICRFUlJPUignIzQ6IHBhcnNlRmxvYXQoIjExLnMxIikgPT09IDExLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiMTEuczEiKSkpOwp9CgovL0NIRUNLIzUKaWYgKHBhcnNlRmxvYXQoIi4wczEiKSAhPT0gMCkgewogICRFUlJPUignIzU6IHBhcnNlRmxvYXQoIi4wczEiKSA9PT0gMC4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIi4wczEiKSkpOwp9CgovL0NIRUNLIzYKaWYgKHBhcnNlRmxvYXQoIjEuczEiKSAhPT0gMSkgewogICRFUlJPUignIzY6IHBhcnNlRmxvYXQoIjEuczEiKSA9PT0gMS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIjEuczEiKSkpOwp9CgovL0NIRUNLIzcKaWYgKHBhcnNlRmxvYXQoIjEuLjEiKSAhPT0gMSkgewogICRFUlJPUignIzc6IHBhcnNlRmxvYXQoIjEuLjEiKSA9PT0gMS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIjEuLjEiKSkpOwp9CgovL0NIRUNLIzgKaWYgKHBhcnNlRmxvYXQoIjAuMS4xIikgIT09IDAuMSkgewogICRFUlJPUignIzg6IHBhcnNlRmxvYXQoIjAuMS4xIikgPT09IDAuMS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIjAuMS4xIikpKTsKfQoKLy9DSEVDSyM5CmlmIChwYXJzZUZsb2F0KCIwLiAxIikgIT09IDApIHsKICAkRVJST1IoJyM5OiBwYXJzZUZsb2F0KCIwLiAxIikgPT09IDAuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIwLiAxIikpKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.2.3_A4_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTRfVDIiLAoKcGF0aDogIjE1LjEuMi4zLCA5LjMuMSIsCgpkZXNjcmlwdGlvbjogIldpdGggRXhwb25lbnRJbmRpY2F0b3IiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAocGFyc2VGbG9hdCgiMWV4IikgIT09IDEpIHsKICAkRVJST1IoJyMxOiBwYXJzZUZsb2F0KCIxZXgiKSA9PT0gMS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIjFleCIpKSk7Cn0KCi8vQ0hFQ0sjMgppZiAocGFyc2VGbG9hdCgiMWUteCIpICE9PSAxKSB7CiAgJEVSUk9SKCcjMjogcGFyc2VGbG9hdCgiMWUteCIpID09PSAxLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiMWUteCIpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAocGFyc2VGbG9hdCgiMWUxeCIpICE9PSAxMCkgewogICRFUlJPUignIzM6IHBhcnNlRmxvYXQoIjFlMXgiKSA9PT0gMTAuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIxZTF4IikpKTsKfQoKLy9DSEVDSyM0CmlmIChwYXJzZUZsb2F0KCIxZS0xeCIpICE9PSAwLjEpIHsKICAkRVJST1IoJyM0OiBwYXJzZUZsb2F0KCIxZS0xeCIpID09PSAwLjEuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIxZS0xeCIpKSk7Cn0KCi8vQ0hFQ0sjNQppZiAocGFyc2VGbG9hdCgiMC4xZS0xeCIpICE9PSAwLjAxKSB7CiAgJEVSUk9SKCcjNTogcGFyc2VGbG9hdCgiMC4xZS0xeCIpID09PSAwLjAxLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiMC4xZS0xeCIpKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.3_A4_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTRfVDMiLAoKcGF0aDogIjE1LjEuMi4zLCA5LjMuMSIsCgpkZXNjcmlwdGlvbjogIlN0ckRlY2ltYWxMaXRlcmFsIG5vdCBjb250YWluIEhleEludGVnZXJMaXRlcmFsIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzAKaWYgKHBhcnNlRmxvYXQoIjB4MCIpICE9PSAwKSB7CiAgJEVSUk9SKCcjMDogcGFyc2VGbG9hdCgiMHgwIikgPT09IDAuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIweDAiKSkpOwp9CgovL0NIRUNLIzEKaWYgKHBhcnNlRmxvYXQoIjB4MSIpICE9PSAwKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VGbG9hdCgiMHgxIikgPT09IDAuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIweDEiKSkpOwp9CgovL0NIRUNLIzIKaWYgKHBhcnNlRmxvYXQoIjB4MiIpICE9PSAwKSB7CiAgJEVSUk9SKCcjMjogcGFyc2VGbG9hdCgiMHgyIikgPT09IDAuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIweDIiKSkpOwp9CgovL0NIRUNLIzMKaWYgKHBhcnNlRmxvYXQoIjB4MyIpICE9PSAwKSB7CiAgJEVSUk9SKCcjMzogcGFyc2VGbG9hdCgiMHgzIikgPT09IDAuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIweDMiKSkpOwp9CgovL0NIRUNLIzQKaWYgKHBhcnNlRmxvYXQoIjB4NCIpICE9PSAwKSB7CiAgJEVSUk9SKCcjNDogcGFyc2VGbG9hdCgiMHg0IikgPT09IDAuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIweDQiKSkpOwp9CgovL0NIRUNLIzUKaWYgKHBhcnNlRmxvYXQoIjB4NSIpICE9PSAwKSB7CiAgJEVSUk9SKCcjNTogcGFyc2VGbG9hdCgiMHg1IikgPT09IDAuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIweDUiKSkpOwp9CgovL0NIRUNLIzYKaWYgKHBhcnNlRmxvYXQoIjB4NiIpICE9PSAwKSB7CiAgJEVSUk9SKCcjNjogcGFyc2VGbG9hdCgiMHg2IikgPT09IDAuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIweDYiKSkpOwp9CgovL0NIRUNLIzcKaWYgKHBhcnNlRmxvYXQoIjB4NyIpICE9PSAwKSB7CiAgJEVSUk9SKCcjNzogcGFyc2VGbG9hdCgiMHg3IikgPT09IDAuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIweDciKSkpOwp9CgovL0NIRUNLIzgKaWYgKHBhcnNlRmxvYXQoIjB4OCIpICE9PSAwKSB7CiAgJEVSUk9SKCcjODogcGFyc2VGbG9hdCgiMHg4IikgPT09IDAuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIweDgiKSkpOwp9CgovL0NIRUNLIzkKaWYgKHBhcnNlRmxvYXQoIjB4OSIpICE9PSAwKSB7CiAgJEVSUk9SKCcjOTogcGFyc2VGbG9hdCgiMHg5IikgPT09IDAuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIweDkiKSkpOwp9CgovL0NIRUNLI0EKaWYgKHBhcnNlRmxvYXQoIjB4QSIpICE9PSAwKSB7CiAgJEVSUk9SKCcjQTogcGFyc2VGbG9hdCgiMHhBIikgPT09IDAuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIweEEiKSkpOwp9CgovL0NIRUNLI0IKaWYgKHBhcnNlRmxvYXQoIjB4QiIpICE9PSAwKSB7CiAgJEVSUk9SKCcjQjogcGFyc2VGbG9hdCgiMHhCIikgPT09IDAuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIweEIiKSkpOwp9CgovL0NIRUNLI0MKaWYgKHBhcnNlRmxvYXQoIjB4QyIpICE9PSAwKSB7CiAgJEVSUk9SKCcjQzogcGFyc2VGbG9hdCgiMHhDIikgPT09IDAuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIweEMiKSkpOwp9CgovL0NIRUNLI0QKaWYgKHBhcnNlRmxvYXQoIjB4RCIpICE9PSAwKSB7CiAgJEVSUk9SKCcjRDogcGFyc2VGbG9hdCgiMHhEIikgPT09IDAuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIweEQiKSkpOwp9CgovL0NIRUNLI0UKaWYgKHBhcnNlRmxvYXQoIjB4RSIpICE9PSAwKSB7CiAgJEVSUk9SKCcjRTogcGFyc2VGbG9hdCgiMHhFIikgPT09IDAuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIweEUiKSkpOwp9CgovL0NIRUNLI0YKaWYgKHBhcnNlRmxvYXQoIjB4RiIpICE9PSAwKSB7CiAgJEVSUk9SKCcjRjogcGFyc2VGbG9hdCgiMHhGIikgPT09IDAuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIweEYiKSkpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.3_A4_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTRfVDQiLAoKcGF0aDogIjE1LjEuMi4zLCA5LjMuMSIsCgpkZXNjcmlwdGlvbjogIlwiSW5maW5pdHlcIitcInNvbWUgc3RyaW5nXCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAocGFyc2VGbG9hdCgiSW5maW5pdHkxIikgIT09IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkgewogICRFUlJPUignIzE6IHBhcnNlRmxvYXQoIkluZmluaXR5MSIpID09PSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCJJbmZpbml0eTEiKSkpOwp9CgovL0NIRUNLIzIKaWYgKHBhcnNlRmxvYXQoIkluZmluaXR5eCIpICE9PSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpIHsKICAkRVJST1IoJyMyOiBwYXJzZUZsb2F0KCJJbmZpbml0eXgiKSA9PT0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiSW5maW5pdHl4IikpKTsKfQoKLy9DSEVDSyMzCmlmIChwYXJzZUZsb2F0KCJJbmZpbml0eSsxIikgIT09IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkgewogICRFUlJPUignIzM6IHBhcnNlRmxvYXQoIkluZmluaXR5KzEiKSA9PT0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiSW5maW5pdHkrMSIpKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.3_A4_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTRfVDUiLAoKcGF0aDogIjE1LjEuMi4zLCA5LjMuMSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIERlY2ltYWxEaWdpdHMgLiBEZWNpbWFsRGlnaXRzX29wdCBFeHBvbmVudFBhcnRfb3B0IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKHBhcnNlRmxvYXQoIi0xMS5zdHJpbmciKSAhPT0gLTExKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VGbG9hdCgiLTExLnN0cmluZyIpID09PSAtMTEuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCItMTEuc3RyaW5nIikpKTsKfQoKLy9DSEVDSyMyCmlmIChwYXJzZUZsb2F0KCIwMS5zdHJpbmciKSAhPT0gMSkgewogICRFUlJPUignIzI6IHBhcnNlRmxvYXQoIjAxLnN0cmluZyIpID09PSAxLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiMDEuc3RyaW5nIikpKTsKfQoKLy9DSEVDSyMzCmlmIChwYXJzZUZsb2F0KCIrMTEuMXN0cmluZyIpICE9PSAxMS4xKSB7CiAgJEVSUk9SKCcjMzogcGFyc2VGbG9hdCgiKzExLjFzdHJpbmciKSA9PT0gMTEuMS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIisxMS4xc3RyaW5nIikpKTsKfQoKLy9DSEVDSyM0CmlmIChwYXJzZUZsb2F0KCIwMS4xc3RyaW5nIikgIT09IDEuMSkgewogICRFUlJPUignIzQ6IHBhcnNlRmxvYXQoIjAxLjFzdHJpbmciKSA9PT0gMS4xLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiMDEuMXN0cmluZyIpKSk7Cn0KCi8vQ0hFQ0sjNQppZiAocGFyc2VGbG9hdCgiLTExLmUtMXN0cmluZyIpICE9PSAtMS4xKSB7CiAgJEVSUk9SKCcjNTogcGFyc2VGbG9hdCgiLTExLmUtMXN0cmluZyIpID09PSAtMS4xLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiLTExLmUtMXN0cmluZyIpKSk7Cn0KCi8vQ0hFQ0sjNgppZiAocGFyc2VGbG9hdCgiMDEuZTFzdHJpbmciKSAhPT0gMTApIHsKICAkRVJST1IoJyM2OiBwYXJzZUZsb2F0KCIwMS5lMXN0cmluZyIpID09PSAxMC4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIjAxLmUxc3RyaW5nIikpKTsKfQoKLy9DSEVDSyM3CmlmIChwYXJzZUZsb2F0KCIrMTEuMjJlLTFzdHJpbmciKSAhPT0gMS4xMjIpIHsKICAkRVJST1IoJyM3OiBwYXJzZUZsb2F0KCIrMTEuMjJlLTFzdHJpbmciKSA9PT0gMS4xMjIuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIrMTEuMjJlLTFzdHJpbmciKSkpOwp9CgovL0NIRUNLIzgKaWYgKHBhcnNlRmxvYXQoIjAxLjAxZTFzdHJpbmciKSAhPT0gMTAuMSkgewogICRFUlJPUignIzg6IHBhcnNlRmxvYXQoIjAxLjAxZTFzdHJpbmciKSA9PT0gMTAuMS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIjAxLjAxZTFzdHJpbmciKSkpOwp9CgovL0NIRUNLIzkKaWYgKHBhcnNlRmxvYXQoIjAwMS5zdHJpbmciKSAhPT0gMSkgewogICRFUlJPUignIzk6IHBhcnNlRmxvYXQoIjAwMS5zdHJpbmciKSA9PT0gMS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIjAwMS5zdHJpbmciKSkpOwp9CgovL0NIRUNLIzEwCmlmIChwYXJzZUZsb2F0KCIwMTAuc3RyaW5nIikgIT09IDEwKSB7CiAgJEVSUk9SKCcjMTA6IHBhcnNlRmxvYXQoIjAxMC5zdHJpbmciKSA9PT0gMTAuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIwMTAuc3RyaW5nIikpKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.2.3_A4_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTRfVDYiLAoKcGF0aDogIjE1LjEuMi4zLCA5LjMuMSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIC4gRGVjaW1hbERpZ2l0cyBFeHBvbmVudFBhcnRfb3B0IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKHBhcnNlRmxvYXQoIisuMXN0cmluZyIpICE9PSAwLjEpIHsKICAkRVJST1IoJyMxOiBwYXJzZUZsb2F0KCIrLjFzdHJpbmciKSA9PT0gMC4xLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiKy4xc3RyaW5nIikpKTsKfQoKLy9DSEVDSyMyCmlmIChwYXJzZUZsb2F0KCIuMDFzdHJpbmciKSAhPT0gMC4wMSkgewogICRFUlJPUignIzI6IHBhcnNlRmxvYXQoIi4wMXN0cmluZyIpID09PSAwLjAxLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiLjAxc3RyaW5nIikpKTsKfQoKLy9DSEVDSyMzCmlmIChwYXJzZUZsb2F0KCIrLjIyZS0xc3RyaW5nIikgIT09IDAuMDIyKSB7CiAgJEVSUk9SKCcjMzogcGFyc2VGbG9hdCgiKy4yMmUtMXN0cmluZyIpID09PSAwLjAyMi4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIisuMjJlLTFzdHJpbmciKSkpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.3_A4_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTRfVDciLAoKcGF0aDogIjE1LjEuMi4zLCA5LjMuMSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIERlY2ltYWxEaWdpdHMgRXhwb25lbnRQYXJ0X29wdCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChwYXJzZUZsb2F0KCItMTFzdHJpbmciKSAhPT0gLTExKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VGbG9hdCgiLTExc3RyaW5nIikgPT09IC0xMS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIi0xMXN0cmluZyIpKSk7Cn0KCi8vQ0hFQ0sjMgppZiAocGFyc2VGbG9hdCgiMDFzdHJpbmciKSAhPT0gMSkgewogICRFUlJPUignIzI6IHBhcnNlRmxvYXQoIjAxc3RyaW5nIikgPT09IDEuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIwMXN0cmluZyIpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAocGFyc2VGbG9hdCgiLTExZS0xc3RyaW5nIikgIT09IC0xLjEpIHsKICAkRVJST1IoJyMzOiBwYXJzZUZsb2F0KCItMTFlLTFzdHJpbmciKSA9PT0gLTEuMS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIi0xMWUtMXN0cmluZyIpKSk7Cn0KCi8vQ0hFQ0sjNAppZiAocGFyc2VGbG9hdCgiMDFlMXN0cmluZyIpICE9PSAxMCkgewogICRFUlJPUignIzQ6IHBhcnNlRmxvYXQoIjAxZTFzdHJpbmciKSA9PT0gMTAuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIwMWUxc3RyaW5nIikpKTsKfQoKLy9DSEVDSyM1CmlmIChwYXJzZUZsb2F0KCIwMDFzdHJpbmciKSAhPT0gMSkgewogICRFUlJPUignIzU6IHBhcnNlRmxvYXQoIjAwMXN0cmluZyIpID09PSAxLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiMDAxc3RyaW5nIikpKTsKfQoKLy9DSEVDSyM2CmlmIChwYXJzZUZsb2F0KCIxZTAwMXN0cmluZyIpICE9PSAxMCkgewogICRFUlJPUignIzY6IHBhcnNlRmxvYXQoIjFlMDAxc3RyaW5nIikgPT09IDEwLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiMWUwMDFzdHJpbmciKSkpOwp9CgovL0NIRUNLIzcKaWYgKHBhcnNlRmxvYXQoIjAxMHN0cmluZyIpICE9PSAxMCkgewogICRFUlJPUignIzc6IHBhcnNlRmxvYXQoIjAxMHN0cmluZyIpID09PSAxMC4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIjAxMHN0cmluZyIpKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.3_A4_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTVfVDEiLAoKcGF0aDogIjE1LjEuMi4zLCA5LjMuMSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIEluZmluaXR5IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKHBhcnNlRmxvYXQoIkluZmluaXR5IikgIT09IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkgewogICRFUlJPUignIzE6IHBhcnNlRmxvYXQoIkluZmluaXR5IikgPT09IE51bWJlci5QT1NJVElWRV9JTkZJTklUWS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIkluZmluaXR5IikpKTsKfQoKLy9DSEVDSyMyCmlmIChwYXJzZUZsb2F0KCIrSW5maW5pdHkiKSAhPT0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSB7CiAgJEVSUk9SKCcjMjogcGFyc2VGbG9hdCgiK0luZmluaXR5IikgPT09IE51bWJlci5QT1NJVElWRV9JTkZJTklUWS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIitJbmZpbml0eSIpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAocGFyc2VGbG9hdCgiLUluZmluaXR5IikgIT09IE51bWJlci5ORUdBVElWRV9JTkZJTklUWSkgewogICRFUlJPUignIzM6IHBhcnNlRmxvYXQoIi1JbmZpbml0eSIpID09PSBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCItSW5maW5pdHkiKSkpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.3_A5_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTVfVDIiLAoKcGF0aDogIjE1LjEuMi4zLCA5LjMuMSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIERlY2ltYWxEaWdpdHMgLiBEZWNpbWFsRGlnaXRzX29wdCBFeHBvbmVudFBhcnRfb3B0IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKHBhcnNlRmxvYXQoIi0xMS4iKSAhPT0gLTExKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VGbG9hdCgiLTExLiIpID09PSAtMTEuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCItMTEuIikpKTsKfQoKLy9DSEVDSyMyCmlmIChwYXJzZUZsb2F0KCIwMS4iKSAhPT0gMSkgewogICRFUlJPUignIzI6IHBhcnNlRmxvYXQoIjAxLiIpID09PSAxLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiMDEuIikpKTsKfQoKLy9DSEVDSyMzCmlmIChwYXJzZUZsb2F0KCIrMTEuMSIpICE9PSAxMS4xKSB7CiAgJEVSUk9SKCcjMzogcGFyc2VGbG9hdCgiKzExLjEiKSA9PT0gMTEuMS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIisxMS4xIikpKTsKfQoKLy9DSEVDSyM0CmlmIChwYXJzZUZsb2F0KCIwMS4xIikgIT09IDEuMSkgewogICRFUlJPUignIzQ6IHBhcnNlRmxvYXQoIjAxLjEiKSA9PT0gMS4xLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiMDEuMSIpKSk7Cn0KCi8vQ0hFQ0sjNQppZiAocGFyc2VGbG9hdCgiLTExLmUtMSIpICE9PSAtMS4xKSB7CiAgJEVSUk9SKCcjNTogcGFyc2VGbG9hdCgiLTExLmUtMSIpID09PSAtMS4xLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiLTExLmUtMSIpKSk7Cn0KCi8vQ0hFQ0sjNgppZiAocGFyc2VGbG9hdCgiMDEuZTEiKSAhPT0gMTApIHsKICAkRVJST1IoJyM2OiBwYXJzZUZsb2F0KCIwMS5lMSIpID09PSAxMC4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIjAxLmUxIikpKTsKfQoKLy9DSEVDSyM3CmlmIChwYXJzZUZsb2F0KCIrMTEuMjJlLTEiKSAhPT0gMS4xMjIpIHsKICAkRVJST1IoJyM3OiBwYXJzZUZsb2F0KCIrMTEuMjJlLTEiKSA9PT0gMS4xMjIuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIrMTEuMjJlLTEiKSkpOwp9CgovL0NIRUNLIzgKaWYgKHBhcnNlRmxvYXQoIjAxLjAxZTEiKSAhPT0gMTAuMSkgewogICRFUlJPUignIzg6IHBhcnNlRmxvYXQoIjAxLjAxZTEiKSA9PT0gMTAuMS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIjAxLjAxZTEiKSkpOwp9CgovL0NIRUNLIzkKaWYgKHBhcnNlRmxvYXQoIjAwMS4iKSAhPT0gMSkgewogICRFUlJPUignIzk6IHBhcnNlRmxvYXQoIjAwMS4iKSA9PT0gMS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIjAwMS4iKSkpOwp9CgovL0NIRUNLIzEwCmlmIChwYXJzZUZsb2F0KCIwMTAuIikgIT09IDEwKSB7CiAgJEVSUk9SKCcjMTA6IHBhcnNlRmxvYXQoIjAxMC4iKSA9PT0gMTAuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIwMTAuIikpKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.2.3_A5_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTVfVDMiLAoKcGF0aDogIjE1LjEuMi4zLCA5LjMuMSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIC4gRGVjaW1hbERpZ2l0cyBFeHBvbmVudFBhcnRfb3B0IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKHBhcnNlRmxvYXQoIisuMSIpICE9PSAwLjEpIHsKICAkRVJST1IoJyMxOiBwYXJzZUZsb2F0KCIrLjEiKSA9PT0gMC4xLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiKy4xIikpKTsKfQoKLy9DSEVDSyMyCmlmIChwYXJzZUZsb2F0KCIuMDEiKSAhPT0gMC4wMSkgewogICRFUlJPUignIzI6IHBhcnNlRmxvYXQoIi4wMSIpID09PSAwLjAxLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiLjAxIikpKTsKfQoKLy9DSEVDSyMzCmlmIChwYXJzZUZsb2F0KCIrLjIyZS0xIikgIT09IDAuMDIyKSB7CiAgJEVSUk9SKCcjMzogcGFyc2VGbG9hdCgiKy4yMmUtMSIpID09PSAwLjAyMi4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIisuMjJlLTEiKSkpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.3_A5_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTVfVDQiLAoKcGF0aDogIjE1LjEuMi4zLCA5LjMuMSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIERlY2ltYWxEaWdpdHMgRXhwb25lbnRQYXJ0X29wdCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChwYXJzZUZsb2F0KCItMTEiKSAhPT0gLTExKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VGbG9hdCgiLTExIikgPT09IC0xMS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIi0xMSIpKSk7Cn0KCi8vQ0hFQ0sjMgppZiAocGFyc2VGbG9hdCgiMDEiKSAhPT0gMSkgewogICRFUlJPUignIzI6IHBhcnNlRmxvYXQoIjAxIikgPT09IDEuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIwMSIpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAocGFyc2VGbG9hdCgiLTExZS0xIikgIT09IC0xLjEpIHsKICAkRVJST1IoJyMzOiBwYXJzZUZsb2F0KCItMTFlLTEiKSA9PT0gLTEuMS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIi0xMWUtMSIpKSk7Cn0KCi8vQ0hFQ0sjNAppZiAocGFyc2VGbG9hdCgiMDFlMSIpICE9PSAxMCkgewogICRFUlJPUignIzQ6IHBhcnNlRmxvYXQoIjAxZTEiKSA9PT0gMTAuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0KCIwMWUxIikpKTsKfQoKLy9DSEVDSyM1CmlmIChwYXJzZUZsb2F0KCIwMDEiKSAhPT0gMSkgewogICRFUlJPUignIzU6IHBhcnNlRmxvYXQoIjAwMSIpID09PSAxLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiMDAxIikpKTsKfQoKLy9DSEVDSyM2CmlmIChwYXJzZUZsb2F0KCIxZTAwMSIpICE9PSAxMCkgewogICRFUlJPUignIzY6IHBhcnNlRmxvYXQoIjFlMDAxIikgPT09IDEwLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdCgiMWUwMDEiKSkpOwp9CgovL0NIRUNLIzcKaWYgKHBhcnNlRmxvYXQoIjAxMCIpICE9PSAxMCkgewogICRFUlJPUignIzc6IHBhcnNlRmxvYXQoIjAxMCIpID09PSAxMC4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQoIjAxMCIpKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.3_A5_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTYiLAoKcGF0aDogIjE1LjEuMi4zLCA5LjMuMSIsCgpkZXNjcmlwdGlvbjogIkNvbXBsZXggdGVzdCB3aXRob3V0IGV2YWwiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sKdmFyIGVycm9yQ291bnQgPSAwOwp2YXIgY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8PSA2NTUzNTsgaW5kZXgrKykgeyAgCiAgaWYgKChpbmRleCA8IDB4MDAzMCkgfHwgKGluZGV4ID4gMHgwMDM5KSkgeyAgICAKICAgIHZhciBoZXggPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXgpOwogICAgaWYgKHBhcnNlRmxvYXQoIjAuMWUxIiArIFN0cmluZy5mcm9tQ2hhckNvZGUoaW5kZXgpKSAhPT0gMSkgeyAgICAgICAKICAgICAgaWYgKGluZGV4TyA9PT0gMCkgeyAKICAgICAgICBpbmRleE8gPSBpbmRleDsKICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAoKGluZGV4IC0gaW5kZXhQKSAhPT0gMSkgeyAgICAgICAgICAgICAKICAgICAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICAgICAgfSAKICAgICAgICAgIGVsc2UgewogICAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgICAgICB9ICAKICAgICAgICAgIGluZGV4TyA9IGluZGV4OwogICAgICAgIH0gICAgICAgICAKICAgICAgfQogICAgICBpbmRleFAgPSBpbmRleDsKICAgICAgZXJyb3JDb3VudCsrOyAgICAKICAgIH0gICAKICAgIGNvdW50Kys7CiAgfSAgCn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.2.3_A6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTcuMSIsCgpwYXRoOiAiMTUuMS4yLjMsIDE1LjIuNC43LCAxMi42LjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgcHJvcGVydHlJc0VudW1lcmFibGUsIGZvci1pbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChwYXJzZUZsb2F0LnByb3BlcnR5SXNFbnVtZXJhYmxlKCdsZW5ndGgnKSAhPT0gZmFsc2UpIHsKICAkRVJST1IoJyMxOiBwYXJzZUZsb2F0LnByb3BlcnR5SXNFbnVtZXJhYmxlKFwnbGVuZ3RoXCcpID09PSBmYWxzZS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQucHJvcGVydHlJc0VudW1lcmFibGUoJ2xlbmd0aCcpKSk7Cn0KCi8vQ0hFQ0sjMgp2YXIgcmVzdWx0ID0gdHJ1ZTsKZm9yICh2YXIgcCBpbiBwYXJzZUZsb2F0KXsKICBpZiAocCA9PT0gImxlbmd0aCIpIHsKICAgIHJlc3VsdCA9IGZhbHNlOwogIH0gIAp9CgppZiAocmVzdWx0ICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMjogcmVzdWx0ID0gdHJ1ZTsgZm9yIChwIGluIHBhcnNlRmxvYXQpIHsgaWYgKHAgPT09ICJsZW5ndGgiKSByZXN1bHQgPSBmYWxzZTsgfSAgcmVzdWx0ID09PSB0cnVlOycpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.3_A7.1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTcuMiIsCgpwYXRoOiAiMTUuMS4yLjMsIDE1LjIuNC41LCAxMS40LjEiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgaGFzT3duUHJvcGVydHksIGRlbGV0ZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChwYXJzZUZsb2F0Lmhhc093blByb3BlcnR5KCdsZW5ndGgnKSAhPT0gdHJ1ZSkgewogICRGQUlMKCcjMTogcGFyc2VGbG9hdC5oYXNPd25Qcm9wZXJ0eShcJ2xlbmd0aFwnKSA9PT0gdHJ1ZS4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSk7Cn0KCmRlbGV0ZSBwYXJzZUZsb2F0Lmxlbmd0aDsKCi8vQ0hFQ0sjMgppZiAocGFyc2VGbG9hdC5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykgIT09IHRydWUpIHsKICAkRVJST1IoJyMyOiBkZWxldGUgcGFyc2VGbG9hdC5sZW5ndGg7IHBhcnNlRmxvYXQuaGFzT3duUHJvcGVydHkoXCdsZW5ndGhcJykgPT09IHRydWUuIEFjdHVhbDogJyArIChwYXJzZUZsb2F0Lmhhc093blByb3BlcnR5KCdsZW5ndGgnKSkpOwp9CgovL0NIRUNLIzMKaWYgKHBhcnNlRmxvYXQubGVuZ3RoID09PSB1bmRlZmluZWQpIHsKICAkRVJST1IoJyMzOiBkZWxldGUgcGFyc2VGbG9hdC5sZW5ndGg7IHBhcnNlRmxvYXQubGVuZ3RoICE9PSB1bmRlZmluZWQnKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.2.3_A7.2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTcuMyIsCgpwYXRoOiAiMTUuMS4yLjMiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiB2YXJ5aW5nIHRoZSBsZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp2YXIgeCA9IHBhcnNlRmxvYXQubGVuZ3RoOwpwYXJzZUZsb2F0Lmxlbmd0aCA9IEluZmluaXR5OwppZiAocGFyc2VGbG9hdC5sZW5ndGggIT09IHgpIHsKICAkRVJST1IoJyMxOiB4ID0gcGFyc2VGbG9hdC5sZW5ndGg7IHBhcnNlRmxvYXQubGVuZ3RoID0gSW5maW5pdHk7IHBhcnNlRmxvYXQubGVuZ3RoID09PSB4LiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdC5sZW5ndGgpKTsKfQoKCiB9Cn0pOwoK","id":"S15.1.2.3_A7.3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTcuNCIsCgpwYXRoOiAiMTUuMS4yLjMiLAoKZGVzY3JpcHRpb246ICJwYXJzZUZsb2F0Lmxlbmd0aCA9PT0gMSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChwYXJzZUZsb2F0Lmxlbmd0aCAhPT0gMSkgewogICRFUlJPUignIzE6IHBhcnNlRmxvYXQubGVuZ3RoID09PSAxLiBBY3R1YWw6ICcgKyAocGFyc2VGbG9hdC5sZW5ndGgpKTsKfSAKCgogfQp9KTsKCg==","id":"S15.1.2.3_A7.4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTcuNSIsCgpwYXRoOiAiMTUuMS4yLjMsIDE1LjIuNC43LCAxMi42LjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgcHJvcGVydHlJc0VudW1lcmFibGUsIGZvci1pbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICh0aGlzLnByb3BlcnR5SXNFbnVtZXJhYmxlKCdwYXJzZUZsb2F0JykgIT09IGZhbHNlKSB7CiAgJEVSUk9SKCcjMTp0aGlzLnByb3BlcnR5SXNFbnVtZXJhYmxlKFwncGFyc2VGbG9hdFwnKSA9PT0gZmFsc2UuIEFjdHVhbDogJyArICh0aGlzLnByb3BlcnR5SXNFbnVtZXJhYmxlKCdwYXJzZUZsb2F0JykpKTsKfQoKLy9DSEVDSyMyCnZhciByZXN1bHQgPSB0cnVlOwpmb3IgKHZhciBwIGluIHRoaXMpewogIGlmIChwID09PSAicGFyc2VGbG9hdCIpIHsKICAgIHJlc3VsdCA9IGZhbHNlOwogIH0gIAp9CgppZiAocmVzdWx0ICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMjogcmVzdWx0ID0gdHJ1ZTsgZm9yIChwIGluIHRoaXMpIHsgaWYgKHAgPT09ICJwYXJzZUZsb2F0IikgcmVzdWx0ID0gZmFsc2U7IH0gIHJlc3VsdCA9PT0gdHJ1ZTsnKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.2.3_A7.5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTcuNiIsCgpwYXRoOiAiMTUuMS4yLjMiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBwYXJzZUZsb2F0LnByb3RvdHlwZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChwYXJzZUZsb2F0LnByb3RvdHlwZSAhPT0gdW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMTogcGFyc2VGbG9hdC5wcm90b3R5cGUgPT09IHVuZGVmaW5lZC4gQWN0dWFsOiAnICsgKHBhcnNlRmxvYXQucHJvdG90eXBlKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.3_A7.6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjNfQTcuNyIsCgpwYXRoOiAiMTUuMS4yLjMsIDExLjIuMiIsCgpkZXNjcmlwdGlvbjogIklmIHByb3BlcnR5IGRvZXMgbm90IGltcGxlbWVudCB0aGUgaW50ZXJuYWwgW1tDb25zdHJ1Y3RdXSBtZXRob2QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCgp0cnkgewogIG5ldyBwYXJzZUZsb2F0KCk7CiAgJEVSUk9SKCcjMS4xOiBuZXcgcGFyc2VGbG9hdCgpIHRocm93IFR5cGVFcnJvci4gQWN0dWFsOiAnICsgKG5ldyBwYXJzZUZsb2F0KCkpKTsKfSBjYXRjaCAoZSkgewogIGlmICgoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikgIT09IHRydWUpIHsKICAgICRFUlJPUignIzEuMjogbmV3IHBhcnNlRmxvYXQoKSB0aHJvdyBUeXBlRXJyb3IuIEFjdHVhbDogJyArIChlKSk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.1.2.3_A7.7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjRfQTFfVDEiLAoKcGF0aDogIjE1LjEuMi40IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgYWxsIHByaW1pdGl2ZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy8gQ0hFQ0sjMQppZiAoIShpc05hTihOYU4pID09PSB0cnVlKSkgewoJJEVSUk9SKCcjMTogTmFOID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChOYU4pKTsgCn0KCi8vIENIRUNLIzIKaWYgKCEoaXNOYU4oTnVtYmVyLk5hTikgPT09IHRydWUpKSB7CgkkRVJST1IoJyMyOiBOdW1iZXIuTmFOID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChOdW1iZXIuTmFOKSk7IAp9CgovLyBDSEVDSyMzCmlmICghKGlzTmFOKE51bWJlcih2b2lkIDApKSA9PT0gdHJ1ZSkpIHsKCSRFUlJPUignIzM6IE51bWJlcih2b2lkIDApID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChOdW1iZXIodm9pZCAwKSkpOyAKfQoKLy8gQ0hFQ0sjNAppZiAoIShpc05hTih2b2lkIDApID09PSB0cnVlKSkgewoJJEVSUk9SKCcjNDogdm9pZCAwID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArICh2b2lkIDApKTsgCn0KCi8vIENIRUNLIzUKaWYgKCEoaXNOYU4oInN0cmluZyIpID09PSB0cnVlKSkgewoJJEVSUk9SKCcjNTogInN0cmluZyIgPT09IE5vdC1hLU51bWJlci4gQWN0dWFsOiAnICsgKCJzdHJpbmciKSk7IAp9CgovLyBDSEVDSyM2CmlmIChpc05hTihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpID09PSB0cnVlKSB7CgkkRVJST1IoJyM2OiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkgIT09IE5vdC1hLU51bWJlcicpOyAKfQoKLy8gQ0hFQ0sjNwppZiAoaXNOYU4oTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZKSA9PT0gdHJ1ZSkgewoJJEVSUk9SKCcjNzogTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZICE9PSBOb3QtYS1OdW1iZXInKTsgCn0KCi8vIENIRUNLIzgKaWYgKGlzTmFOKE51bWJlci5NQVhfVkFMVUUpID09PSB0cnVlKSB7CgkkRVJST1IoJyM4OiBOdW1iZXIuTUFYX1ZBTFVFICE9PSBOb3QtYS1OdW1iZXInKTsgCn0KCi8vIENIRUNLIzkKaWYgKGlzTmFOKE51bWJlci5NSU5fVkFMVUUpID09PSB0cnVlKSB7CgkkRVJST1IoJyM5OiBOdW1iZXIuTUlOX1ZBTFVFICE9PSBOb3QtYS1OdW1iZXInKTsgCn0KCi8vIENIRUNLIzEwCmlmIChpc05hTigtMCkgPT09IHRydWUpIHsKCSRFUlJPUignIzEwOiAtMCAhPT0gTm90LWEtTnVtYmVyJyk7IAp9CgovLyBDSEVDSyMxMQppZiAoaXNOYU4odHJ1ZSkgPT09IHRydWUpIHsKICAkRVJST1IoJyMxMTogdHJ1ZSAhPT0gTm90LWEtTnVtYmVyJyk7IAp9CgovLyBDSEVDSyMxMgppZiAoaXNOYU4oIjEiKSA9PT0gdHJ1ZSkgewogICRFUlJPUignIzEyOiAiMSIgIT09IE5vdC1hLU51bWJlcicpOyAKfQoKCgoKCiB9Cn0pOwoK","id":"S15.1.2.4_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjRfQTFfVDIiLAoKcGF0aDogIjE1LjEuMi40IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgYWxsIG9iamVjdCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy8gQ0hFQ0sjMQppZiAoIShpc05hTih7fSkgPT09IHRydWUpKSB7CgkkRVJST1IoJyMxOiB7fSA9PT0gTm90LWEtTnVtYmVyLiBBY3R1YWw6ICcgKyAoe30pKTsgCn0KCi8vIENIRUNLIzIKaWYgKCEoaXNOYU4obmV3IFN0cmluZygic3RyaW5nIikpID09PSB0cnVlKSkgewoJJEVSUk9SKCcjMjogbmV3IFN0cmluZygic3RyaW5nIikgPT09IE5vdC1hLU51bWJlci4gQWN0dWFsOiAnICsgKG5ldyBTdHJpbmcoInN0cmluZyIpKSk7IAp9CgovLyBDSEVDSyMzCmlmIChpc05hTihuZXcgU3RyaW5nKCIxIikpID09PSB0cnVlKSB7CiAgJEVSUk9SKCcjMzogbmV3IFN0cmluZygiMSIpID09PSBOb3QtYS1OdW1iZXIuIEFjdHVhbDogJyArIChuZXcgU3RyaW5nKCIxIikpKTsgCn0KCi8vIENIRUNLIzQKaWYgKGlzTmFOKG5ldyBOdW1iZXIoMSkpID09PSB0cnVlKSB7CgkkRVJST1IoJyM0OiBuZXcgTnVtYmVyKDEpICE9PSBOb3QtYS1OdW1iZXInKTsgCn0KCi8vIENIRUNLIzUKaWYgKCEoaXNOYU4obmV3IE51bWJlcihOYU4pKSA9PT0gdHJ1ZSkpIHsKICAkRVJST1IoJyM1OiBuZXcgTnVtYmVyKE5hTikgPT09IE5vdC1hLU51bWJlci4gQWN0dWFsOiAnICsgKG5ldyBOdW1iZXIoTmFOKSkpOyAKfQoKLy8gQ0hFQ0sjNgppZiAoaXNOYU4obmV3IEJvb2xlYW4odHJ1ZSkpID09PSB0cnVlKSB7CiAgJEVSUk9SKCcjNjogbmV3IEJvb2xlYW4odHJ1ZSkgIT09IE5vdC1hLU51bWJlcicpOyAKfQoKCgoKCiB9Cn0pOwoK","id":"S15.1.2.4_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjRfQTIuMSIsCgpwYXRoOiAiMTUuMS4yLjQsIDE1LjIuNC43LCAxMi42LjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgcHJvcGVydHlJc0VudW1lcmFibGUsIGZvci1pbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChpc05hTi5wcm9wZXJ0eUlzRW51bWVyYWJsZSgnbGVuZ3RoJykgIT09IGZhbHNlKSB7CiAgJEVSUk9SKCcjMTogaXNOYU4ucHJvcGVydHlJc0VudW1lcmFibGUoXCdsZW5ndGhcJykgPT09IGZhbHNlLiBBY3R1YWw6ICcgKyAoaXNOYU4ucHJvcGVydHlJc0VudW1lcmFibGUoJ2xlbmd0aCcpKSk7Cn0KCi8vQ0hFQ0sjMgp2YXIgcmVzdWx0ID0gdHJ1ZTsKZm9yIChwIGluIGlzTmFOKXsKICBpZiAocCA9PT0gImxlbmd0aCIpIHsKICAgIHJlc3VsdCA9IGZhbHNlOwogIH0gIAp9CgppZiAocmVzdWx0ICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMjogcmVzdWx0ID0gdHJ1ZTsgZm9yIChwIGluIGlzTmFOKSB7IGlmIChwID09PSAibGVuZ3RoIikgcmVzdWx0ID0gZmFsc2U7IH0gIHJlc3VsdCA9PT0gdHJ1ZTsnKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.2.4_A2.1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjRfQTIuMiIsCgpwYXRoOiAiMTUuMS4yLjQsIDE1LjIuNC41LCAxMS40LjEiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgaGFzT3duUHJvcGVydHksIGRlbGV0ZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChpc05hTi5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykgIT09IHRydWUpIHsKICAkRkFJTCgnIzE6IGlzTmFOLmhhc093blByb3BlcnR5KFwnbGVuZ3RoXCcpID09PSB0cnVlLiBBY3R1YWw6ICcgKyAoaXNOYU4uaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSk7Cn0KCmRlbGV0ZSBpc05hTi5sZW5ndGg7CgovL0NIRUNLIzIKaWYgKGlzTmFOLmhhc093blByb3BlcnR5KCdsZW5ndGgnKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzI6IGRlbGV0ZSBpc05hTi5sZW5ndGg7IGlzTmFOLmhhc093blByb3BlcnR5KFwnbGVuZ3RoXCcpID09PSB0cnVlLiBBY3R1YWw6ICcgKyAoaXNOYU4uaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAoaXNOYU4ubGVuZ3RoID09PSB1bmRlZmluZWQpIHsKICAkRVJST1IoJyMzOiBkZWxldGUgaXNOYU4ubGVuZ3RoOyBpc05hTi5sZW5ndGggIT09IHVuZGVmaW5lZCcpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.4_A2.2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjRfQTIuMyIsCgpwYXRoOiAiMTUuMS4yLjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiB2YXJ5aW5nIHRoZSBsZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp4ID0gaXNOYU4ubGVuZ3RoOwppc05hTi5sZW5ndGggPSBJbmZpbml0eTsKaWYgKGlzTmFOLmxlbmd0aCAhPT0geCkgewogICRFUlJPUignIzE6IHggPSBpc05hTi5sZW5ndGg7IGlzTmFOLmxlbmd0aCA9IEluZmluaXR5OyBpc05hTi5sZW5ndGggPT09IHguIEFjdHVhbDogJyArIChpc05hTi5sZW5ndGgpKTsKfQoKCiB9Cn0pOwoK","id":"S15.1.2.4_A2.3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjRfQTIuNCIsCgpwYXRoOiAiMTUuMS4yLjQiLAoKZGVzY3JpcHRpb246ICJpc05hTi5sZW5ndGggPT09IDEiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoaXNOYU4ubGVuZ3RoICE9PSAxKSB7CiAgJEVSUk9SKCcjMTogaXNOYU4ubGVuZ3RoID09PSAxLiBBY3R1YWw6ICcgKyAoaXNOYU4ubGVuZ3RoKSk7Cn0gCgoKIH0KfSk7Cgo=","id":"S15.1.2.4_A2.4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjRfQTIuNSIsCgpwYXRoOiAiMTUuMS4yLjQsIDE1LjIuNC43LCAxMi42LjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgcHJvcGVydHlJc0VudW1lcmFibGUsIGZvci1pbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICh0aGlzLnByb3BlcnR5SXNFbnVtZXJhYmxlKCdpc05hTicpICE9PSBmYWxzZSkgewogICRFUlJPUignIzE6IHRoaXMucHJvcGVydHlJc0VudW1lcmFibGUoXCdpc05hTlwnKSA9PT0gZmFsc2UuIEFjdHVhbDogJyArICh0aGlzLnByb3BlcnR5SXNFbnVtZXJhYmxlKCdpc05hTicpKSk7Cn0KCi8vQ0hFQ0sjMgp2YXIgcmVzdWx0ID0gdHJ1ZTsKZm9yIChwIGluIHRoaXMpewogIGlmIChwID09PSAiaXNOYU4iKSB7CiAgICByZXN1bHQgPSBmYWxzZTsKICB9ICAKfQoKaWYgKHJlc3VsdCAhPT0gdHJ1ZSkgewogICRFUlJPUignIzI6IHJlc3VsdCA9IHRydWU7IGZvciAocCBpbiB0aGlzKSB7IGlmIChwID09PSAiaXNOYU4iKSByZXN1bHQgPSBmYWxzZTsgfSAgcmVzdWx0ID09PSB0cnVlOycpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.4_A2.5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjRfQTIuNiIsCgpwYXRoOiAiMTUuMS4yLjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpc05hTi5wcm90b3R5cGUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoaXNOYU4ucHJvdG90eXBlICE9PSB1bmRlZmluZWQpIHsKICAkRVJST1IoJyMxOiBpc05hTi5wcm90b3R5cGUgPT09IHVuZGVmaW5lZC4gQWN0dWFsOiAnICsgKGlzTmFOLnByb3RvdHlwZSkpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.4_A2.6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjRfQTIuNyIsCgpwYXRoOiAiMTUuMS4yLjQsIDExLjIuMiIsCgpkZXNjcmlwdGlvbjogIklmIHByb3BlcnR5IGRvZXMgbm90IGltcGxlbWVudCB0aGUgaW50ZXJuYWwgW1tDb25zdHJ1Y3RdXSBtZXRob2QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCgp0cnkgewogIG5ldyBpc05hTigpOwogICRFUlJPUignIzEuMTogbmV3IGlzTmFOKCkgdGhyb3cgVHlwZUVycm9yLiBBY3R1YWw6ICcgKyAobmV3IGlzTmFOKCkpKTsKfSBjYXRjaCAoZSkgewogIGlmICgoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikgIT09IHRydWUpIHsKICAgICRFUlJPUignIzEuMjogbmV3IGlzTmFOKCkgdGhyb3cgVHlwZUVycm9yLiBBY3R1YWw6ICcgKyAoZSkpOwogIH0KfQoKIH0KfSk7Cgo=","id":"S15.1.2.4_A2.7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjVfQTFfVDEiLAoKcGF0aDogIjE1LjEuMi41IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgYWxsIHByaW1pdGl2ZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy8gQ0hFQ0sjMQppZiAoIShpc0Zpbml0ZShOYU4pID09PSBmYWxzZSkpIHsKICAkRVJST1IoJyMxOiBOYU4gPT09IE5vdC1hLUZpbml0ZS4gQWN0dWFsOiAnICsgKE5hTikpOyAKfQoKLy8gQ0hFQ0sjMgppZiAoIShpc0Zpbml0ZShOdW1iZXIuTmFOKSA9PT0gZmFsc2UpKSB7CiAgJEVSUk9SKCcjMjogTnVtYmVyLk5hTiA9PT0gTm90LWEtRmluaXRlLiBBY3R1YWw6ICcgKyAoTnVtYmVyLk5hTikpOyAKfQoKLy8gQ0hFQ0sjMwppZiAoIShpc0Zpbml0ZShOdW1iZXIodm9pZCAwKSkgPT09IGZhbHNlKSkgewogICRFUlJPUignIzM6IE51bWJlcih2b2lkIDApID09PSBOb3QtYS1GaW5pdGUuIEFjdHVhbDogJyArIChOdW1iZXIodm9pZCAwKSkpOyAKfQoKLy8gQ0hFQ0sjNAppZiAoIShpc0Zpbml0ZSh2b2lkIDApID09PSBmYWxzZSkpIHsKICAkRVJST1IoJyM0OiB2b2lkIDAgPT09IE5vdC1hLUZpbml0ZS4gQWN0dWFsOiAnICsgKHZvaWQgMCkpOyAKfQoKLy8gQ0hFQ0sjNQppZiAoIShpc0Zpbml0ZSgic3RyaW5nIikgPT09IGZhbHNlKSkgewogICRFUlJPUignIzU6ICJzdHJpbmciID09PSBOb3QtYS1GaW5pdGUuIEFjdHVhbDogJyArICgic3RyaW5nIikpOyAKfQoKLy8gQ0hFQ0sjNgppZiAoaXNGaW5pdGUoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSAhPT0gZmFsc2UpIHsKICAkRVJST1IoJyM2OiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkgPT09IE5vdC1hLUZpbml0ZS4gQWN0dWFsOiAnICsgKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkpOyAKfQoKLy8gQ0hFQ0sjNwppZiAoaXNGaW5pdGUoTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZKSAhPT0gZmFsc2UpIHsKICAkRVJST1IoJyM3OiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkgPT09IE5vdC1hLUZpbml0ZS4gQWN0dWFsOiAnICsgKE51bWJlci5ORUdBVElWRV9JTkZJTklUWSkpOyAKfQoKLy8gQ0hFQ0sjOAppZiAoaXNGaW5pdGUoTnVtYmVyLk1BWF9WQUxVRSkgPT09IGZhbHNlKSB7CiAgJEVSUk9SKCcjODogTnVtYmVyLk1BWF9WQUxVRSAhPT0gTm90LWEtRmluaXRlJyk7IAp9CgovLyBDSEVDSyM5CmlmIChpc0Zpbml0ZShOdW1iZXIuTUlOX1ZBTFVFKSA9PT0gZmFsc2UpIHsKICAkRVJST1IoJyM5OiBOdW1iZXIuTUlOX1ZBTFVFICE9PSBOb3QtYS1GaW5pdGUnKTsgCn0KCi8vIENIRUNLIzEwCmlmIChpc0Zpbml0ZSgtMCkgPT09IGZhbHNlKSB7CiAgJEVSUk9SKCcjMTA6IC0wICE9PSBOb3QtYS1GaW5pdGUnKTsgCn0KCi8vIENIRUNLIzExCmlmIChpc0Zpbml0ZShmYWxzZSkgPT09IGZhbHNlKSB7CiAgJEVSUk9SKCcjMTE6IGZhbHNlICE9PSBOb3QtYS1GaW5pdGUnKTsgCn0KCi8vIENIRUNLIzEyCmlmIChpc0Zpbml0ZSgiMSIpID09PSBmYWxzZSkgewogICRFUlJPUignIzEyOiAiMSIgIT09IE5vdC1hLUZpbml0ZScpOyAKfQoKIH0KfSk7Cgo=","id":"S15.1.2.5_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjVfQTFfVDIiLAoKcGF0aDogIjE1LjEuMi41IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgYWxsIG9iamVjdCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy8gQ0hFQ0sjMQppZiAoIShpc0Zpbml0ZSh7fSkgPT09IGZhbHNlKSkgewogICRFUlJPUignIzE6IHt9ID09PSBOb3QtYS1GaW5pdGUuIEFjdHVhbDogJyArICh7fSkpOyAKfQoKLy8gQ0hFQ0sjMgppZiAoIShpc0Zpbml0ZShuZXcgU3RyaW5nKCJzdHJpbmciKSkgPT09IGZhbHNlKSkgewogICRFUlJPUignIzI6IG5ldyBTdHJpbmcoInN0cmluZyIpID09PSBOb3QtYS1GaW5pdGUuIEFjdHVhbDogJyArIChuZXcgU3RyaW5nKCJzdHJpbmciKSkpOyAKfQoKLy8gQ0hFQ0sjMwppZiAoaXNGaW5pdGUobmV3IFN0cmluZygiMSIpKSA9PT0gZmFsc2UpIHsKICAkRVJST1IoJyMzOiBuZXcgU3RyaW5nKCIxIikgPT09IE5vdC1hLUZpbml0ZS4gQWN0dWFsOiAnICsgKG5ldyBTdHJpbmcoIjEiKSkpOyAKfQoKLy8gQ0hFQ0sjNAppZiAoaXNGaW5pdGUobmV3IE51bWJlcigxKSkgPT09IGZhbHNlKSB7CiAgJEVSUk9SKCcjNDogbmV3IE51bWJlcigxKSAhPT0gTm90LWEtRmluaXRlJyk7IAp9CgovLyBDSEVDSyM1CmlmICghKGlzRmluaXRlKG5ldyBOdW1iZXIoTmFOKSkgPT09IGZhbHNlKSkgewogICRFUlJPUignIzU6IG5ldyBOdW1iZXIoTmFOKSA9PT0gTm90LWEtRmluaXRlLiBBY3R1YWw6ICcgKyAobmV3IE51bWJlcihOYU4pKSk7IAp9CgovLyBDSEVDSyM2CmlmIChpc0Zpbml0ZShuZXcgQm9vbGVhbih0cnVlKSkgPT09IGZhbHNlKSB7CiAgJEVSUk9SKCcjNjogbmV3IEJvb2xlYW4odHJ1ZSkgIT09IE5vdC1hLUZpbml0ZScpOyAKfQoKIH0KfSk7Cgo=","id":"S15.1.2.5_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjVfQTIuMSIsCgpwYXRoOiAiMTUuMS4yLjUsIDE1LjIuNC43LCAxMi42LjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgcHJvcGVydHlJc0VudW1lcmFibGUsIGZvci1pbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChpc0Zpbml0ZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgnbGVuZ3RoJykgIT09IGZhbHNlKSB7CiAgJEVSUk9SKCcjMTogaXNGaW5pdGUucHJvcGVydHlJc0VudW1lcmFibGUoXCdsZW5ndGhcJykgPT09IGZhbHNlLiBBY3R1YWw6ICcgKyAoaXNGaW5pdGUucHJvcGVydHlJc0VudW1lcmFibGUoJ2xlbmd0aCcpKSk7Cn0KCi8vQ0hFQ0sjMgp2YXIgcmVzdWx0ID0gdHJ1ZTsKZm9yIChwIGluIGlzRmluaXRlKXsKICBpZiAocCA9PT0gImxlbmd0aCIpIHsKICAgIHJlc3VsdCA9IGZhbHNlOwogIH0gIAp9CgppZiAocmVzdWx0ICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMjogcmVzdWx0ID0gdHJ1ZTsgZm9yIChwIGluIGlzRmluaXRlKSB7IGlmIChwID09PSAibGVuZ3RoIikgcmVzdWx0ID0gZmFsc2U7IH0gIHJlc3VsdCA9PT0gdHJ1ZTsnKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.2.5_A2.1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjVfQTIuMiIsCgpwYXRoOiAiMTUuMS4yLjUsIDE1LjIuNC41LCAxMS40LjEiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgaGFzT3duUHJvcGVydHksIGRlbGV0ZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChpc0Zpbml0ZS5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykgIT09IHRydWUpIHsKICAkRkFJTCgnIzE6IGlzRmluaXRlLmhhc093blByb3BlcnR5KFwnbGVuZ3RoXCcpID09PSB0cnVlLiBBY3R1YWw6ICcgKyAoaXNGaW5pdGUuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSk7Cn0KCmRlbGV0ZSBpc0Zpbml0ZS5sZW5ndGg7CgovL0NIRUNLIzIKaWYgKGlzRmluaXRlLmhhc093blByb3BlcnR5KCdsZW5ndGgnKSAhPT0gdHJ1ZSkgewogICRFUlJPUignIzI6IGRlbGV0ZSBpc0Zpbml0ZS5sZW5ndGg7IGlzRmluaXRlLmhhc093blByb3BlcnR5KFwnbGVuZ3RoXCcpID09PSB0cnVlLiBBY3R1YWw6ICcgKyAoaXNGaW5pdGUuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSk7Cn0KCi8vQ0hFQ0sjMwppZiAoaXNGaW5pdGUubGVuZ3RoID09PSB1bmRlZmluZWQpIHsKICAkRVJST1IoJyMzOiBkZWxldGUgaXNGaW5pdGUubGVuZ3RoOyBpc0Zpbml0ZS5sZW5ndGggIT09IHVuZGVmaW5lZCcpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.5_A2.2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjVfQTIuMyIsCgpwYXRoOiAiMTUuMS4yLjUiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiB2YXJ5aW5nIHRoZSBsZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp4ID0gaXNGaW5pdGUubGVuZ3RoOwppc0Zpbml0ZS5sZW5ndGggPSBJbmZpbml0eTsKaWYgKGlzRmluaXRlLmxlbmd0aCAhPT0geCkgewogICRFUlJPUignIzE6IHggPSBpc0Zpbml0ZS5sZW5ndGg7IGlzRmluaXRlLmxlbmd0aCA9IEluZmluaXR5OyBpc0Zpbml0ZS5sZW5ndGggPT09IHguIEFjdHVhbDogJyArIChpc0Zpbml0ZS5sZW5ndGgpKTsKfQoKCiB9Cn0pOwoK","id":"S15.1.2.5_A2.3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjVfQTIuNCIsCgpwYXRoOiAiMTUuMS4yLjUiLAoKZGVzY3JpcHRpb246ICJpc0Zpbml0ZS5sZW5ndGggPT09IDEiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoaXNGaW5pdGUubGVuZ3RoICE9PSAxKSB7CiAgJEVSUk9SKCcjMTogaXNGaW5pdGUubGVuZ3RoID09PSAxLiBBY3R1YWw6ICcgKyAoaXNGaW5pdGUubGVuZ3RoKSk7Cn0gCgoKIH0KfSk7Cgo=","id":"S15.1.2.5_A2.4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjVfQTIuNSIsCgpwYXRoOiAiMTUuMS4yLjUsIDE1LjIuNC43LCAxMi42LjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgcHJvcGVydHlJc0VudW1lcmFibGUsIGZvci1pbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICh0aGlzLnByb3BlcnR5SXNFbnVtZXJhYmxlKCdpc0Zpbml0ZScpICE9PSBmYWxzZSkgewogICRFUlJPUignIzE6IHRoaXMucHJvcGVydHlJc0VudW1lcmFibGUoXCdpc0Zpbml0ZVwnKSA9PT0gZmFsc2UuIEFjdHVhbDogJyArICh0aGlzLnByb3BlcnR5SXNFbnVtZXJhYmxlKCdpc0Zpbml0ZScpKSk7Cn0KCi8vQ0hFQ0sjMgp2YXIgcmVzdWx0ID0gdHJ1ZTsKZm9yIChwIGluIHRoaXMpewogIGlmIChwID09PSAiaXNGaW5pdGUiKSB7CiAgICByZXN1bHQgPSBmYWxzZTsKICB9ICAKfQoKaWYgKHJlc3VsdCAhPT0gdHJ1ZSkgewogICRFUlJPUignIzI6IHJlc3VsdCA9IHRydWU7IGZvciAocCBpbiB0aGlzKSB7IGlmIChwID09PSAiaXNGaW5pdGUiKSByZXN1bHQgPSBmYWxzZTsgfSAgcmVzdWx0ID09PSB0cnVlOycpOwp9CgogfQp9KTsKCg==","id":"S15.1.2.5_A2.5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjVfQTIuNiIsCgpwYXRoOiAiMTUuMS4yLjUiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpc0Zpbml0LnByb3RvdHlwZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChpc0Zpbml0ZS5wcm90b3R5cGUgIT09IHVuZGVmaW5lZCkgewogICRFUlJPUignIzE6IGlzRmluaXRlLnByb3RvdHlwZSA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6ICcgKyAoaXNGaW5pdGUucHJvdG90eXBlKSk7Cn0KCiB9Cn0pOwoK","id":"S15.1.2.5_A2.6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4yLjVfQTIuNyIsCgpwYXRoOiAiMTUuMS4yLjUsIDExLjIuMiIsCgpkZXNjcmlwdGlvbjogIklmIHByb3BlcnR5IGRvZXMgbm90IGltcGxlbWVudCB0aGUgaW50ZXJuYWwgW1tDb25zdHJ1Y3RdXSBtZXRob2QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCgp0cnkgewogIG5ldyBpc0Zpbml0ZSgpOwogICRFUlJPUignIzEuMTogbmV3IGlzRmluaXRlKCkgdGhyb3cgVHlwZUVycm9yLiBBY3R1YWw6ICcgKyAobmV3IGlzRmluaXRlKCkpKTsKfSBjYXRjaCAoZSkgewogIGlmICgoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikgIT09IHRydWUpIHsKICAgICRFUlJPUignIzEuMjogbmV3IGlzRmluaXRlKCkgdGhyb3cgVHlwZUVycm9yLiBBY3R1YWw6ICcgKyAoZSkpOwogIH0KfQoKIH0KfSk7Cgo=","id":"S15.1.2.5_A2.7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuMTBfVDEiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSwp2YXIgcmVzdWx0ID0gdHJ1ZTsKdmFyIGludGVydmFsID0gW1sweDAwLCAweDI5XSwgWzB4NDAsMHg0MF0sIFsweDQ3LCAweDYwXSwgWzB4NjcsIDB4RkZGRl1dOwpmb3IgKHZhciBpbmRleEkgPSAwOyBpbmRleEkgPCBpbnRlcnZhbC5sZW5ndGg7IGluZGV4SSsrKSB7CiAgZm9yICh2YXIgaW5kZXhKID0gaW50ZXJ2YWxbaW5kZXhJXVswXTsgaW5kZXhKIDw9IGludGVydmFsW2luZGV4SV1bMV07IGluZGV4SisrKSB7CiAgICB0cnkgewogICAgICBkZWNvZGVVUkkoIiVDMCUiICsgU3RyaW5nLmZyb21DaGFyQ29kZShpbmRleEosIGluZGV4SikpOwogICAgICByZXN1bHQgPSBmYWxzZTsgICAgICAKICAgIH0gY2F0Y2ggKGUpIHsgICAKICAgICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpICE9PSB0cnVlKSB7CiAgICAgICAgcmVzdWx0ID0gZmFsc2U7ICAgICAgICAKICAgICAgfQogICAgfSAgICAgIAogIH0gIAp9ICAKCmlmIChyZXN1bHQgIT09IHRydWUpIHsgICAgCiAgJEVSUk9SKCcjMTogSWYgQiA9IDExMHh4eHh4IChuID0gMikgYW5kIChzdHJpbmcuY2hhckF0KGsgKyA0KSBhbmQgIHN0cmluZy5jaGFyQXQoayArIDUpKSBkbyBub3QgcmVwcmVzZW50IGhleGFkZWNpbWFsIGRpZ2l0cywgdGhyb3cgVVJJRXJyb3InKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.1_A1.10_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuMTFfVDEiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cywgc3RyaW5nLmNoYXJBdChrICsgNCkgYW5kIHN0cmluZy5jaGFyQXQoayArIDUpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLCnZhciByZXN1bHQgPSB0cnVlOwp2YXIgaW50ZXJ2YWwgPSBbWzB4MDAsIDB4MjldLCBbMHg0MCwweDQwXSwgWzB4NDcsIDB4NjBdLCBbMHg2NywgMHhGRkZGXV07CmZvciAodmFyIGluZGV4SSA9IDA7IGluZGV4SSA8IGludGVydmFsLmxlbmd0aDsgaW5kZXhJKyspIHsKICBmb3IgKHZhciBpbmRleEogPSBpbnRlcnZhbFtpbmRleEldWzBdOyBpbmRleEogPD0gaW50ZXJ2YWxbaW5kZXhJXVsxXTsgaW5kZXhKKyspIHsKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSSgiJUUwJSIgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGluZGV4SiwgaW5kZXhKKSArICIlQTAiKTsKICAgICAgcmVzdWx0ID0gZmFsc2U7ICAgICAgCiAgICB9IGNhdGNoIChlKSB7ICAgCiAgICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSAhPT0gdHJ1ZSkgewogICAgICAgIHJlc3VsdCA9IGZhbHNlOyAgICAgICAgCiAgICAgIH0KICAgIH0gICAgICAKICB9ICAKfSAgCgppZiAocmVzdWx0ICE9PSB0cnVlKSB7ICAgIAogICRFUlJPUignIzE6IElmIEIgPSAxMTEweHh4eCAobiA9IDMpIGFuZCAoc3RyaW5nLmNoYXJBdChrICsgNCkgYW5kICBzdHJpbmcuY2hhckF0KGsgKyA1KSkgZG8gbm90IHJlcHJlc2VudCBoZXhhZGVjaW1hbCBkaWdpdHMsIHRocm93IFVSSUVycm9yJyk7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.1_A1.11_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuMTFfVDIiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cywgc3RyaW5nLmNoYXJBdChrICsgNykgYW5kIHN0cmluZy5jaGFyQXQoayArIDgpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLCnZhciByZXN1bHQgPSB0cnVlOwp2YXIgaW50ZXJ2YWwgPSBbWzB4MDAsIDB4MjldLCBbMHg0MCwweDQwXSwgWzB4NDcsIDB4NjBdLCBbMHg2NywgMHhGRkZGXV07CmZvciAodmFyIGluZGV4SSA9IDA7IGluZGV4SSA8IGludGVydmFsLmxlbmd0aDsgaW5kZXhJKyspIHsKICBmb3IgKHZhciBpbmRleEogPSBpbnRlcnZhbFtpbmRleEldWzBdOyBpbmRleEogPD0gaW50ZXJ2YWxbaW5kZXhJXVsxXTsgaW5kZXhKKyspIHsKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSSgiJUUwJSIgKyAiJUEwIiArIFN0cmluZy5mcm9tQ2hhckNvZGUoaW5kZXhKLCBpbmRleEopKTsKICAgICAgcmVzdWx0ID0gZmFsc2U7ICAgICAgCiAgICB9IGNhdGNoIChlKSB7ICAgCiAgICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSAhPT0gdHJ1ZSkgewogICAgICAgIHJlc3VsdCA9IGZhbHNlOyAgICAgICAgCiAgICAgIH0KICAgIH0gICAgICAKICB9ICAKfSAgCgppZiAocmVzdWx0ICE9PSB0cnVlKSB7ICAgIAogICRFUlJPUignIzE6IElmIEIgPSAxMTEweHh4eCAobiA9IDMpIGFuZCAoc3RyaW5nLmNoYXJBdChrICsgNykgYW5kICBzdHJpbmcuY2hhckF0KGsgKyA4KSkgZG8gbm90IHJlcHJlc2VudCBoZXhhZGVjaW1hbCBkaWdpdHMsIHRocm93IFVSSUVycm9yJyk7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.1_A1.11_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuMTJfVDEiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cywgc3RyaW5nLmNoYXJBdChrICsgNCkgYW5kIHN0cmluZy5jaGFyQXQoayArIDUpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLCnZhciByZXN1bHQgPSB0cnVlOwp2YXIgaW50ZXJ2YWwgPSBbWzB4MDAsIDB4MjldLCBbMHg0MCwweDQwXSwgWzB4NDcsIDB4NjBdLCBbMHg2NywgMHhGRkZGXV07CmZvciAodmFyIGluZGV4SSA9IDA7IGluZGV4SSA8IGludGVydmFsLmxlbmd0aDsgaW5kZXhJKyspIHsKICBmb3IgKHZhciBpbmRleEogPSBpbnRlcnZhbFtpbmRleEldWzBdOyBpbmRleEogPD0gaW50ZXJ2YWxbaW5kZXhJXVsxXTsgaW5kZXhKKyspIHsKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSSgiJUYwJSIgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGluZGV4SiwgaW5kZXhKKSArICIlQTAlQTAiKTsKICAgICAgcmVzdWx0ID0gZmFsc2U7ICAgICAgCiAgICB9IGNhdGNoIChlKSB7ICAgCiAgICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSAhPT0gdHJ1ZSkgewogICAgICAgIHJlc3VsdCA9IGZhbHNlOyAgICAgICAgCiAgICAgIH0KICAgIH0gICAgICAKICB9ICAKfSAgCgppZiAocmVzdWx0ICE9PSB0cnVlKSB7ICAgIAogICRFUlJPUignIzE6IElmIEIgPSAxMTExMHh4eCAobiA9IDQpIGFuZCAoc3RyaW5nLmNoYXJBdChrICsgNCkgYW5kIHN0cmluZy5jaGFyQXQoayArIDUpKSBkbyBub3QgcmVwcmVzZW50IGhleGFkZWNpbWFsIGRpZ2l0cywgdGhyb3cgVVJJRXJyb3InKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.1_A1.12_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuMTJfVDIiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cywgc3RyaW5nLmNoYXJBdChrICsgNykgYW5kIHN0cmluZy5jaGFyQXQoayArIDcpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLCnZhciByZXN1bHQgPSB0cnVlOwp2YXIgaW50ZXJ2YWwgPSBbWzB4MDAsIDB4MjldLCBbMHg0MCwweDQwXSwgWzB4NDcsIDB4NjBdLCBbMHg2NywgMHhGRkZGXV07CmZvciAodmFyIGluZGV4SSA9IDA7IGluZGV4SSA8IGludGVydmFsLmxlbmd0aDsgaW5kZXhJKyspIHsKICBmb3IgKHZhciBpbmRleEogPSBpbnRlcnZhbFtpbmRleEldWzBdOyBpbmRleEogPD0gaW50ZXJ2YWxbaW5kZXhJXVsxXTsgaW5kZXhKKyspIHsKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSSgiJUYwJSIgKyAiJUEwIiArIFN0cmluZy5mcm9tQ2hhckNvZGUoaW5kZXhKLCBpbmRleEopICsgIiVBMCIpOwogICAgICByZXN1bHQgPSBmYWxzZTsgICAgICAKICAgIH0gY2F0Y2ggKGUpIHsgICAKICAgICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpICE9PSB0cnVlKSB7CiAgICAgICAgcmVzdWx0ID0gZmFsc2U7ICAgICAgICAKICAgICAgfQogICAgfSAgICAgIAogIH0gIAp9ICAKCmlmIChyZXN1bHQgIT09IHRydWUpIHsgICAgCiAgJEVSUk9SKCcjMTogSWYgQiA9IDExMTEweHh4IChuID0gNCkgYW5kIChzdHJpbmcuY2hhckF0KGsgKyA3KSBhbmQgc3RyaW5nLmNoYXJBdChrICsgOCkpIGRvIG5vdCByZXByZXNlbnQgaGV4YWRlY2ltYWwgZGlnaXRzLCB0aHJvdyBVUklFcnJvcicpOwp9CgogfQp9KTsKCg==","id":"S15.1.3.1_A1.12_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuMTJfVDMiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cywgc3RyaW5nLmNoYXJBdChrICsgMTApIGFuZCBzdHJpbmcuY2hhckF0KGsgKyAxMSkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sKdmFyIHJlc3VsdCA9IHRydWU7CnZhciBpbnRlcnZhbCA9IFtbMHgwMCwgMHgyOV0sIFsweDQwLDB4NDBdLCBbMHg0NywgMHg2MF0sIFsweDY3LCAweEZGRkZdXTsKZm9yICh2YXIgaW5kZXhJID0gMDsgaW5kZXhJIDwgaW50ZXJ2YWwubGVuZ3RoOyBpbmRleEkrKykgewogIGZvciAodmFyIGluZGV4SiA9IGludGVydmFsW2luZGV4SV1bMF07IGluZGV4SiA8PSBpbnRlcnZhbFtpbmRleEldWzFdOyBpbmRleEorKykgewogICAgdHJ5IHsKICAgICAgZGVjb2RlVVJJKCIlRjAlIiArICIlQTAlQTAiICsgU3RyaW5nLmZyb21DaGFyQ29kZShpbmRleEosIGluZGV4SikpOwogICAgICByZXN1bHQgPSBmYWxzZTsgICAgICAKICAgIH0gY2F0Y2ggKGUpIHsgICAKICAgICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpICE9PSB0cnVlKSB7CiAgICAgICAgcmVzdWx0ID0gZmFsc2U7ICAgICAgICAKICAgICAgfQogICAgfSAgICAgIAogIH0gIAp9ICAKCmlmIChyZXN1bHQgIT09IHRydWUpIHsgICAgCiAgJEVSUk9SKCcjMTogSWYgQiA9IDExMTEweHh4IChuID0gNCkgYW5kIChzdHJpbmcuY2hhckF0KGsgKyAxMCkgYW5kIHN0cmluZy5jaGFyQXQoayArIDExKSkgZG8gbm90IHJlcHJlc2VudCBoZXhhZGVjaW1hbCBkaWdpdHMsIHRocm93IFVSSUVycm9yJyk7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.1_A1.12_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuMTNfVDEiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cy4gQiA9IFsweEMwIC0gMHhERl0sIEMgPSBbMHgwMCwgMHg3Rl0iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBlcnJvckNvdW50ID0gMDsKdmFyIGNvdW50ID0gMDsKdmFyIGluZGV4UDsKdmFyIGluZGV4TyA9IDA7Cgpmb3IgKHZhciBpbmRleEIgPSAweEMwOyBpbmRleEIgPD0gMHhERjsgaW5kZXhCKyspIHsKICBjb3VudCsrOyAKICB2YXIgaGV4QiA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEIpOyAgCiAgdmFyIHJlc3VsdCA9IHRydWU7CiAgZm9yICh2YXIgaW5kZXhDID0gMHgwMDsgaW5kZXhDIDw9IDB4N0Y7IGluZGV4QysrKSB7CiAgICB2YXIgaGV4QyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEMpOyAgCiAgICB0cnkgewogICAgICBkZWNvZGVVUkkoIiUiICsgaGV4Qi5zdWJzdHJpbmcoMikgKyAiJSIgKyBoZXhDLnN1YnN0cmluZygyKSk7CiAgICB9IGNhdGNoIChlKSB7IAogICAgICBpZiAoKGUgaW5zdGFuY2VvZiBVUklFcnJvcikgPT09IHRydWUpIGNvbnRpbnVlOyAgICAgICAgICAgICAgICAKICAgIH0KICAgIHJlc3VsdCA9IGZhbHNlOwogIH0KICBpZiAocmVzdWx0ICE9PSB0cnVlKSB7CiAgICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgICBpbmRleE8gPSBpbmRleEI7CiAgICB9IGVsc2UgewogICAgICBpZiAoKGluZGV4QiAtIGluZGV4UCkgIT09IDEpIHsgICAgICAgICAgICAgCiAgICAgICAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICAgICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgICAgICAgfSAKICAgICAgICBlbHNlIHsKICAgICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgICAgfSAgCiAgICAgICAgaW5kZXhPID0gaW5kZXhCOwogICAgICB9ICAgICAgICAgCiAgICB9CiAgICBpbmRleFAgPSBpbmRleEI7CiAgICBlcnJvckNvdW50Kys7ICAgICAgIAogIH0KfQoKaWYgKGVycm9yQ291bnQgPiAwKSB7CiAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgfSBlbHNlIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgfSAgICAgCiAgJEVSUk9SKCdUb3RhbCBlcnJvcjogJyArIGVycm9yQ291bnQgKyAnIGJhZCBVbmljb2RlIGNoYXJhY3RlciBpbiAnICsgY291bnQgKyAnICcpOwp9CgpmdW5jdGlvbiBkZWNpbWFsVG9IZXhTdHJpbmcobikgewogIG4gPSBOdW1iZXIobik7CiAgdmFyIGggPSAiIjsKICBmb3IgKHZhciBpID0gMzsgaSA+PSAwOyBpLS0pIHsKICAgIGlmIChuID49IE1hdGgucG93KDE2LCBpKSkgewogICAgICB2YXIgdCA9IE1hdGguZmxvb3IobiAvIE1hdGgucG93KDE2LCBpKSk7CiAgICAgIG4gLT0gdCAqIE1hdGgucG93KDE2LCBpKTsKICAgICAgaWYgKCB0ID49IDEwICkgewogICAgICAgIGlmICggdCA9PSAxMCApIHsgaCArPSAiQSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTEgKSB7IGggKz0gIkIiOyB9CiAgICAgICAgaWYgKCB0ID09IDEyICkgeyBoICs9ICJDIjsgfQogICAgICAgIGlmICggdCA9PSAxMyApIHsgaCArPSAiRCI7IH0KICAgICAgICBpZiAoIHQgPT0gMTQgKSB7IGggKz0gIkUiOyB9CiAgICAgICAgaWYgKCB0ID09IDE1ICkgeyBoICs9ICJGIjsgfQogICAgICB9IGVsc2UgewogICAgICAgIGggKz0gU3RyaW5nKHQpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBoICs9ICIwIjsKICAgIH0KICB9CiAgcmV0dXJuIGg7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.1_A1.13_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuMTNfVDIiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cy4gQiA9IFsweEMwIC0gMHhERl0sIEMgPSBbMHhDMCwgMHhGRl0iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBlcnJvckNvdW50ID0gMDsKdmFyIGNvdW50ID0gMDsKdmFyIGluZGV4UDsKdmFyIGluZGV4TyA9IDA7Cgpmb3IgKHZhciBpbmRleEIgPSAweEMwOyBpbmRleEIgPD0gMHhERjsgaW5kZXhCKyspIHsKICBjb3VudCsrOyAKICB2YXIgaGV4QiA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEIpOyAgCiAgdmFyIHJlc3VsdCA9IHRydWU7CiAgZm9yICh2YXIgaW5kZXhDID0gMHhDMDsgaW5kZXhDIDw9IDB4RkY7IGluZGV4QysrKSB7CiAgICB2YXIgaGV4QyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEMpOyAgCiAgICB0cnkgewogICAgICBkZWNvZGVVUkkoIiUiICsgaGV4Qi5zdWJzdHJpbmcoMikgKyAiJSIgKyBoZXhDLnN1YnN0cmluZygyKSk7CiAgICB9IGNhdGNoIChlKSB7IAogICAgICBpZiAoKGUgaW5zdGFuY2VvZiBVUklFcnJvcikgPT09IHRydWUpIGNvbnRpbnVlOyAgICAgICAgICAgICAgICAKICAgIH0KICAgIHJlc3VsdCA9IGZhbHNlOwogIH0KICBpZiAocmVzdWx0ICE9PSB0cnVlKSB7CiAgICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgICBpbmRleE8gPSBpbmRleEI7CiAgICB9IGVsc2UgewogICAgICBpZiAoKGluZGV4QiAtIGluZGV4UCkgIT09IDEpIHsgICAgICAgICAgICAgCiAgICAgICAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICAgICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgICAgICAgfSAKICAgICAgICBlbHNlIHsKICAgICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgICAgfSAgCiAgICAgICAgaW5kZXhPID0gaW5kZXhCOwogICAgICB9ICAgICAgICAgCiAgICB9CiAgICBpbmRleFAgPSBpbmRleEI7CiAgICBlcnJvckNvdW50Kys7ICAgICAgIAogIH0KfQoKaWYgKGVycm9yQ291bnQgPiAwKSB7CiAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgfSBlbHNlIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgfSAgICAgCiAgJEVSUk9SKCdUb3RhbCBlcnJvcjogJyArIGVycm9yQ291bnQgKyAnIGJhZCBVbmljb2RlIGNoYXJhY3RlciBpbiAnICsgY291bnQgKyAnICcpOwp9CgpmdW5jdGlvbiBkZWNpbWFsVG9IZXhTdHJpbmcobikgewogIG4gPSBOdW1iZXIobik7CiAgdmFyIGggPSAiIjsKICBmb3IgKHZhciBpID0gMzsgaSA+PSAwOyBpLS0pIHsKICAgIGlmIChuID49IE1hdGgucG93KDE2LCBpKSkgewogICAgICB2YXIgdCA9IE1hdGguZmxvb3IobiAvIE1hdGgucG93KDE2LCBpKSk7CiAgICAgIG4gLT0gdCAqIE1hdGgucG93KDE2LCBpKTsKICAgICAgaWYgKCB0ID49IDEwICkgewogICAgICAgIGlmICggdCA9PSAxMCApIHsgaCArPSAiQSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTEgKSB7IGggKz0gIkIiOyB9CiAgICAgICAgaWYgKCB0ID09IDEyICkgeyBoICs9ICJDIjsgfQogICAgICAgIGlmICggdCA9PSAxMyApIHsgaCArPSAiRCI7IH0KICAgICAgICBpZiAoIHQgPT0gMTQgKSB7IGggKz0gIkUiOyB9CiAgICAgICAgaWYgKCB0ID09IDE1ICkgeyBoICs9ICJGIjsgfQogICAgICB9IGVsc2UgewogICAgICAgIGggKz0gU3RyaW5nKHQpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBoICs9ICIwIjsKICAgIH0KICB9CiAgcmV0dXJuIGg7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.1_A1.13_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuMTRfVDEiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cy4gQiA9IFsweEUwIC0gMHhFRl0sIEMgPSBbMHgwMCwgMHg3Rl0iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBlcnJvckNvdW50ID0gMDsKdmFyIGNvdW50ID0gMDsKdmFyIGluZGV4UDsKdmFyIGluZGV4TyA9IDA7Cgpmb3IgKHZhciBpbmRleEIgPSAweEUwOyBpbmRleEIgPD0gMHhFRjsgaW5kZXhCKyspIHsKICBjb3VudCsrOyAKICB2YXIgaGV4QiA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEIpOyAKICB2YXIgcmVzdWx0ID0gdHJ1ZTsKICBmb3IgKHZhciBpbmRleEMgPSAweDAwOyBpbmRleEMgPD0gMHg3RjsgaW5kZXhDKyspIHsKICAgIHZhciBoZXhDID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Qyk7ICAKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSSgiJSIgKyBoZXhCLnN1YnN0cmluZygyKSArICIlIiArIGhleEMuc3Vic3RyaW5nKDIpICsgIiVBMCIpOwogICAgfSBjYXRjaCAoZSkgeyAKICAgICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpID09PSB0cnVlKSBjb250aW51ZTsgICAgICAgICAgICAgICAgCiAgICB9CiAgICByZXN1bHQgPSBmYWxzZTsKICB9CiAgaWYgKHJlc3VsdCAhPT0gdHJ1ZSkgewogICAgaWYgKGluZGV4TyA9PT0gMCkgeyAKICAgICAgaW5kZXhPID0gaW5kZXhCOwogICAgfSBlbHNlIHsKICAgICAgaWYgKChpbmRleEIgLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gCiAgICAgICAgZWxzZSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gIAogICAgICAgIGluZGV4TyA9IGluZGV4QjsKICAgICAgfSAgICAgICAgIAogICAgfQogICAgaW5kZXhQID0gaW5kZXhCOwogICAgZXJyb3JDb3VudCsrOyAgICAgICAKICB9Cn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.1_A1.14_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuMTRfVDIiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cy4gQiA9IFsweEUwIC0gMHhFRl0sIEMgPSBbMHgwMCwgMHg3Rl0iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBlcnJvckNvdW50ID0gMDsKdmFyIGNvdW50ID0gMDsKdmFyIGluZGV4UDsKdmFyIGluZGV4TyA9IDA7Cgpmb3IgKHZhciBpbmRleEIgPSAweEUwOyBpbmRleEIgPD0gMHhFRjsgaW5kZXhCKyspIHsKICBjb3VudCsrOyAKICB2YXIgaGV4QiA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEIpOyAgCiAgdmFyIHJlc3VsdCA9IHRydWU7CiAgZm9yICh2YXIgaW5kZXhDID0gMHgwMDsgaW5kZXhDIDw9IDB4N0Y7IGluZGV4QysrKSB7CiAgICB2YXIgaGV4QyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEMpOyAgCiAgICB0cnkgewogICAgICBkZWNvZGVVUkkoIiUiICsgaGV4Qi5zdWJzdHJpbmcoMikgKyAiJUEwIiArICIlIiArIGhleEMuc3Vic3RyaW5nKDIpKTsKICAgIH0gY2F0Y2ggKGUpIHsgCiAgICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSA9PT0gdHJ1ZSkgY29udGludWU7ICAgICAgICAgICAgICAgIAogICAgfQogICAgcmVzdWx0ID0gZmFsc2U7CiAgfQogIGlmIChyZXN1bHQgIT09IHRydWUpIHsKICAgIGlmIChpbmRleE8gPT09IDApIHsgCiAgICAgIGluZGV4TyA9IGluZGV4QjsKICAgIH0gZWxzZSB7CiAgICAgIGlmICgoaW5kZXhCIC0gaW5kZXhQKSAhPT0gMSkgeyAgICAgICAgICAgICAKICAgICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgICB9IAogICAgICAgIGVsc2UgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICAgICAgICB9ICAKICAgICAgICBpbmRleE8gPSBpbmRleEI7CiAgICAgIH0gICAgICAgICAKICAgIH0KICAgIGluZGV4UCA9IGluZGV4QjsKICAgIGVycm9yQ291bnQrKzsgICAgICAgCiAgfQp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.1_A1.14_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuMTRfVDMiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cy4gQiA9IFsweEUwIC0gMHhFRl0sIEMgPSBbMHhDMCwgMHhGRl0iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBlcnJvckNvdW50ID0gMDsKdmFyIGNvdW50ID0gMDsKdmFyIGluZGV4UDsKdmFyIGluZGV4TyA9IDA7Cgpmb3IgKHZhciBpbmRleEIgPSAweEUwOyBpbmRleEIgPD0gMHhFRjsgaW5kZXhCKyspIHsKICBjb3VudCsrOyAKICB2YXIgaGV4QiA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEIpOyAKICB2YXIgcmVzdWx0ID0gdHJ1ZTsKICBmb3IgKHZhciBpbmRleEMgPSAweEMwOyBpbmRleEMgPD0gMHhGRjsgaW5kZXhDKyspIHsKICAgIHZhciBoZXhDID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Qyk7ICAKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSSgiJSIgKyBoZXhCLnN1YnN0cmluZygyKSArICIlIiArIGhleEMuc3Vic3RyaW5nKDIpICsgIiVBMCIpOwogICAgfSBjYXRjaCAoZSkgeyAKICAgICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpID09PSB0cnVlKSBjb250aW51ZTsgICAgICAgICAgICAgICAgCiAgICB9CiAgICByZXN1bHQgPSBmYWxzZTsKICB9CiAgaWYgKHJlc3VsdCAhPT0gdHJ1ZSkgewogICAgaWYgKGluZGV4TyA9PT0gMCkgeyAKICAgICAgaW5kZXhPID0gaW5kZXhCOwogICAgfSBlbHNlIHsKICAgICAgaWYgKChpbmRleEIgLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gCiAgICAgICAgZWxzZSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gIAogICAgICAgIGluZGV4TyA9IGluZGV4QjsKICAgICAgfSAgICAgICAgIAogICAgfQogICAgaW5kZXhQID0gaW5kZXhCOwogICAgZXJyb3JDb3VudCsrOyAgICAgICAKICB9Cn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.1_A1.14_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuMTRfVDQiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cy4gQiA9IFsweEUwIC0gMHhFRl0sIEMgPSBbMHhDMCwgMHhGRl0iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBlcnJvckNvdW50ID0gMDsKdmFyIGNvdW50ID0gMDsKdmFyIGluZGV4UDsKdmFyIGluZGV4TyA9IDA7Cgpmb3IgKHZhciBpbmRleEIgPSAweEUwOyBpbmRleEIgPD0gMHhFRjsgaW5kZXhCKyspIHsKICBjb3VudCsrOyAKICB2YXIgaGV4QiA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEIpOyAgCiAgdmFyIHJlc3VsdCA9IHRydWU7CiAgZm9yICh2YXIgaW5kZXhDID0gMHhDMDsgaW5kZXhDIDw9IDB4RkY7IGluZGV4QysrKSB7CiAgICB2YXIgaGV4QyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEMpOyAgCiAgICB0cnkgewogICAgICBkZWNvZGVVUkkoIiUiICsgaGV4Qi5zdWJzdHJpbmcoMikgKyAiJUEwIiArICIlIiArIGhleEMuc3Vic3RyaW5nKDIpKTsKICAgIH0gY2F0Y2ggKGUpIHsgCiAgICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSA9PT0gdHJ1ZSkgY29udGludWU7ICAgICAgICAgICAgICAgIAogICAgfQogICAgcmVzdWx0ID0gZmFsc2U7CiAgfQogIGlmIChyZXN1bHQgIT09IHRydWUpIHsKICAgIGlmIChpbmRleE8gPT09IDApIHsgCiAgICAgIGluZGV4TyA9IGluZGV4QjsKICAgIH0gZWxzZSB7CiAgICAgIGlmICgoaW5kZXhCIC0gaW5kZXhQKSAhPT0gMSkgeyAgICAgICAgICAgICAKICAgICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgICB9IAogICAgICAgIGVsc2UgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICAgICAgICB9ICAKICAgICAgICBpbmRleE8gPSBpbmRleEI7CiAgICAgIH0gICAgICAgICAKICAgIH0KICAgIGluZGV4UCA9IGluZGV4QjsKICAgIGVycm9yQ291bnQrKzsgICAgICAgCiAgfQp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.1_A1.14_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuMTVfVDEiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cy4gQiA9IFsweEYwIC0gMHgwRjddLCBDID0gWzB4MDAsIDB4N0ZdIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgZXJyb3JDb3VudCA9IDA7CnZhciBjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwoKZm9yICh2YXIgaW5kZXhCID0gMHhGMDsgaW5kZXhCIDw9IDB4Rjc7IGluZGV4QisrKSB7CiAgY291bnQrKzsgCiAgdmFyIGhleEIgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhCKTsgCiAgdmFyIHJlc3VsdCA9IHRydWU7CiAgZm9yICh2YXIgaW5kZXhDID0gMHgwMDsgaW5kZXhDIDw9IDB4N0Y7IGluZGV4QysrKSB7CiAgICB2YXIgaGV4QyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEMpOyAgCiAgICB0cnkgewogICAgICBkZWNvZGVVUkkoIiUiICsgaGV4Qi5zdWJzdHJpbmcoMikgKyAiJSIgKyBoZXhDLnN1YnN0cmluZygyKSArICIlQTAlQTAiKTsKICAgIH0gY2F0Y2ggKGUpIHsgCiAgICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSA9PT0gdHJ1ZSkgY29udGludWU7ICAgICAgICAgICAgICAgIAogICAgfQogICAgcmVzdWx0ID0gZmFsc2U7CiAgfQogIGlmIChyZXN1bHQgIT09IHRydWUpIHsKICAgIGlmIChpbmRleE8gPT09IDApIHsgCiAgICAgIGluZGV4TyA9IGluZGV4QjsKICAgIH0gZWxzZSB7CiAgICAgIGlmICgoaW5kZXhCIC0gaW5kZXhQKSAhPT0gMSkgeyAgICAgICAgICAgICAKICAgICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgICB9IAogICAgICAgIGVsc2UgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICAgICAgICB9ICAKICAgICAgICBpbmRleE8gPSBpbmRleEI7CiAgICAgIH0gICAgICAgICAKICAgIH0KICAgIGluZGV4UCA9IGluZGV4QjsKICAgIGVycm9yQ291bnQrKzsgICAgICAgCiAgfQp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.1_A1.15_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuMTVfVDIiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cy4gQiA9IFsweEYwIC0gMHgwRjddLCBDID0gWzB4MDAsIDB4N0ZdIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgZXJyb3JDb3VudCA9IDA7CnZhciBjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwoKZm9yICh2YXIgaW5kZXhCID0gMHhGMDsgaW5kZXhCIDw9IDB4Rjc7IGluZGV4QisrKSB7CiAgY291bnQrKzsgCiAgdmFyIGhleEIgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhCKTsgCiAgdmFyIHJlc3VsdCA9IHRydWU7CiAgZm9yICh2YXIgaW5kZXhDID0gMHgwMDsgaW5kZXhDIDw9IDB4N0Y7IGluZGV4QysrKSB7CiAgICB2YXIgaGV4QyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEMpOyAgCiAgICB0cnkgewogICAgICBkZWNvZGVVUkkoIiUiICsgaGV4Qi5zdWJzdHJpbmcoMikgKyAiJUEwIiArICIlIiArIGhleEMuc3Vic3RyaW5nKDIpICsgIiVBMCIpOwogICAgfSBjYXRjaCAoZSkgeyAKICAgICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpID09PSB0cnVlKSBjb250aW51ZTsgICAgICAgICAgICAgICAgCiAgICB9CiAgICByZXN1bHQgPSBmYWxzZTsKICB9CiAgaWYgKHJlc3VsdCAhPT0gdHJ1ZSkgewogICAgaWYgKGluZGV4TyA9PT0gMCkgeyAKICAgICAgaW5kZXhPID0gaW5kZXhCOwogICAgfSBlbHNlIHsKICAgICAgaWYgKChpbmRleEIgLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gCiAgICAgICAgZWxzZSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gIAogICAgICAgIGluZGV4TyA9IGluZGV4QjsKICAgICAgfSAgICAgICAgIAogICAgfQogICAgaW5kZXhQID0gaW5kZXhCOwogICAgZXJyb3JDb3VudCsrOyAgICAgICAKICB9Cn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.1_A1.15_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuMTVfVDMiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cy4gQiA9IFsweEYwIC0gMHgwRjddLCBDID0gWzB4MDAsIDB4N0ZdIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgZXJyb3JDb3VudCA9IDA7CnZhciBjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwoKZm9yICh2YXIgaW5kZXhCID0gMHhGMDsgaW5kZXhCIDw9IDB4Rjc7IGluZGV4QisrKSB7CiAgY291bnQrKzsgCiAgdmFyIGhleEIgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhCKTsgCiAgdmFyIHJlc3VsdCA9IHRydWU7CiAgZm9yICh2YXIgaW5kZXhDID0gMHgwMDsgaW5kZXhDIDw9IDB4N0Y7IGluZGV4QysrKSB7CiAgICB2YXIgaGV4QyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEMpOyAgCiAgICB0cnkgewogICAgICBkZWNvZGVVUkkoIiUiICsgaGV4Qi5zdWJzdHJpbmcoMikgKyAiJUEwJUEwIiArICIlIiArIGhleEMuc3Vic3RyaW5nKDIpKTsKICAgIH0gY2F0Y2ggKGUpIHsgCiAgICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSA9PT0gdHJ1ZSkgY29udGludWU7ICAgICAgICAgICAgICAgIAogICAgfQogICAgcmVzdWx0ID0gZmFsc2U7CiAgfQogIGlmIChyZXN1bHQgIT09IHRydWUpIHsKICAgIGlmIChpbmRleE8gPT09IDApIHsgCiAgICAgIGluZGV4TyA9IGluZGV4QjsKICAgIH0gZWxzZSB7CiAgICAgIGlmICgoaW5kZXhCIC0gaW5kZXhQKSAhPT0gMSkgeyAgICAgICAgICAgICAKICAgICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgICB9IAogICAgICAgIGVsc2UgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICAgICAgICB9ICAKICAgICAgICBpbmRleE8gPSBpbmRleEI7CiAgICAgIH0gICAgICAgICAKICAgIH0KICAgIGluZGV4UCA9IGluZGV4QjsKICAgIGVycm9yQ291bnQrKzsgICAgICAgCiAgfQp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.1_A1.15_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuMTVfVDQiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cy4gQiA9IFsweEYwIC0gMHgwRjddLCBDID0gWzB4QzAsIDB4RkZdIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgZXJyb3JDb3VudCA9IDA7CnZhciBjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwoKZm9yICh2YXIgaW5kZXhCID0gMHhGMDsgaW5kZXhCIDw9IDB4Rjc7IGluZGV4QisrKSB7CiAgY291bnQrKzsgCiAgdmFyIGhleEIgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhCKTsgCiAgdmFyIHJlc3VsdCA9IHRydWU7CiAgZm9yICh2YXIgaW5kZXhDID0gMHhDMDsgaW5kZXhDIDw9IDB4RkY7IGluZGV4QysrKSB7CiAgICB2YXIgaGV4QyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEMpOyAgCiAgICB0cnkgewogICAgICBkZWNvZGVVUkkoIiUiICsgaGV4Qi5zdWJzdHJpbmcoMikgKyAiJSIgKyBoZXhDLnN1YnN0cmluZygyKSArICIlQTAlQTAiKTsKICAgIH0gY2F0Y2ggKGUpIHsgCiAgICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSA9PT0gdHJ1ZSkgY29udGludWU7ICAgICAgICAgICAgICAgIAogICAgfQogICAgcmVzdWx0ID0gZmFsc2U7CiAgfQogIGlmIChyZXN1bHQgIT09IHRydWUpIHsKICAgIGlmIChpbmRleE8gPT09IDApIHsgCiAgICAgIGluZGV4TyA9IGluZGV4QjsKICAgIH0gZWxzZSB7CiAgICAgIGlmICgoaW5kZXhCIC0gaW5kZXhQKSAhPT0gMSkgeyAgICAgICAgICAgICAKICAgICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgICB9IAogICAgICAgIGVsc2UgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICAgICAgICB9ICAKICAgICAgICBpbmRleE8gPSBpbmRleEI7CiAgICAgIH0gICAgICAgICAKICAgIH0KICAgIGluZGV4UCA9IGluZGV4QjsKICAgIGVycm9yQ291bnQrKzsgICAgICAgCiAgfQp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.1_A1.15_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuMTVfVDUiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cy4gQiA9IFsweEYwIC0gMHgwRjddLCBDID0gWzB4QzAsIDB4RkZdIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgZXJyb3JDb3VudCA9IDA7CnZhciBjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwoKZm9yICh2YXIgaW5kZXhCID0gMHhGMDsgaW5kZXhCIDw9IDB4Rjc7IGluZGV4QisrKSB7CiAgY291bnQrKzsgCiAgdmFyIGhleEIgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhCKTsgCiAgdmFyIHJlc3VsdCA9IHRydWU7CiAgZm9yICh2YXIgaW5kZXhDID0gMHhDMDsgaW5kZXhDIDw9IDB4RkY7IGluZGV4QysrKSB7CiAgICB2YXIgaGV4QyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEMpOyAgCiAgICB0cnkgewogICAgICBkZWNvZGVVUkkoIiUiICsgaGV4Qi5zdWJzdHJpbmcoMikgKyAiJUEwIiArICIlIiArIGhleEMuc3Vic3RyaW5nKDIpICsgIiVBMCIpOwogICAgfSBjYXRjaCAoZSkgeyAKICAgICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpID09PSB0cnVlKSBjb250aW51ZTsgICAgICAgICAgICAgICAgCiAgICB9CiAgICByZXN1bHQgPSBmYWxzZTsKICB9CiAgaWYgKHJlc3VsdCAhPT0gdHJ1ZSkgewogICAgaWYgKGluZGV4TyA9PT0gMCkgeyAKICAgICAgaW5kZXhPID0gaW5kZXhCOwogICAgfSBlbHNlIHsKICAgICAgaWYgKChpbmRleEIgLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gCiAgICAgICAgZWxzZSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gIAogICAgICAgIGluZGV4TyA9IGluZGV4QjsKICAgICAgfSAgICAgICAgIAogICAgfQogICAgaW5kZXhQID0gaW5kZXhCOwogICAgZXJyb3JDb3VudCsrOyAgICAgICAKICB9Cn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.1_A1.15_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuMTVfVDYiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cy4gQiA9IFsweEYwIC0gMHgwRjddLCBDID0gWzB4QzAsIDB4RkZdIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgZXJyb3JDb3VudCA9IDA7CnZhciBjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwoKZm9yICh2YXIgaW5kZXhCID0gMHhGMDsgaW5kZXhCIDw9IDB4Rjc7IGluZGV4QisrKSB7CiAgY291bnQrKzsgCiAgdmFyIGhleEIgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhCKTsgCiAgdmFyIHJlc3VsdCA9IHRydWU7CiAgZm9yICh2YXIgaW5kZXhDID0gMHhDMDsgaW5kZXhDIDw9IDB4RkY7IGluZGV4QysrKSB7CiAgICB2YXIgaGV4QyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEMpOyAgCiAgICB0cnkgewogICAgICBkZWNvZGVVUkkoIiUiICsgaGV4Qi5zdWJzdHJpbmcoMikgKyAiJUEwJUEwIiArICIlIiArIGhleEMuc3Vic3RyaW5nKDIpKTsKICAgIH0gY2F0Y2ggKGUpIHsgCiAgICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSA9PT0gdHJ1ZSkgY29udGludWU7ICAgICAgICAgICAgICAgIAogICAgfQogICAgcmVzdWx0ID0gZmFsc2U7CiAgfQogIGlmIChyZXN1bHQgIT09IHRydWUpIHsKICAgIGlmIChpbmRleE8gPT09IDApIHsgCiAgICAgIGluZGV4TyA9IGluZGV4QjsKICAgIH0gZWxzZSB7CiAgICAgIGlmICgoaW5kZXhCIC0gaW5kZXhQKSAhPT0gMSkgeyAgICAgICAgICAgICAKICAgICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgICB9IAogICAgICAgIGVsc2UgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICAgICAgICB9ICAKICAgICAgICBpbmRleE8gPSBpbmRleEI7CiAgICAgIH0gICAgICAgICAKICAgIH0KICAgIGluZGV4UCA9IGluZGV4QjsKICAgIGVycm9yQ291bnQrKzsgICAgICAgCiAgfQp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.1_A1.15_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuMV9UMSIsCgpwYXRoOiAiMTUuMS4zLjEiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgcmVzdWx0ID0gdHJ1ZTsKCi8vQ0hFQ0sjMQp0cnkgewogIGRlY29kZVVSSSgiJSIpOwogIHJlc3VsdCA9IGZhbHNlOwp9IGNhdGNoKGUpIHsKICBpZiAoKGUgaW5zdGFuY2VvZiBVUklFcnJvcikgIT09IHRydWUpIHsKICAgIHJlc3VsdCA9IGZhbHNlOwogIH0KfQoKLy9DSEVDSyMyCnRyeSB7CiAgZGVjb2RlVVJJKCIlQSIpOwogIHJlc3VsdCA9IGZhbHNlOwp9IGNhdGNoKGUpIHsKICBpZiAoKGUgaW5zdGFuY2VvZiBVUklFcnJvcikgIT09IHRydWUpIHsKICAgIHJlc3VsdCA9IGZhbHNlOwogIH0KfQoKLy9DSEVDSyMzCnRyeSB7CiAgZGVjb2RlVVJJKCIlMSIpOwogIHJlc3VsdCA9IGZhbHNlOwp9IGNhdGNoKGUpIHsKICBpZiAoKGUgaW5zdGFuY2VvZiBVUklFcnJvcikgIT09IHRydWUpIHsKICAgIHJlc3VsdCA9IGZhbHNlOwogIH0KfQoKLy9DSEVDSyM0CnRyeSB7CiAgZGVjb2RlVVJJKCIlICIpOwogIHJlc3VsdCA9IGZhbHNlOwp9IGNhdGNoKGUpIHsKICBpZiAoKGUgaW5zdGFuY2VvZiBVUklFcnJvcikgIT09IHRydWUpIHsKICAgIHJlc3VsdCA9IGZhbHNlOwogIH0KfQoKaWYgKHJlc3VsdCAhPT0gdHJ1ZSkgewogICRFUlJPUignIzE6IElmIHN0cmluZy5jaGFyQXQoaykgZXF1YWwgIiUiIGFuZCBrICsgMiA+PSBzdHJpbmcubGVuZ3RoLCB0aHJvdyBVUklFcnJvcicpOwp9CgoKCgogfQp9KTsKCg==","id":"S15.1.3.1_A1.1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuMl9UMSIsCgpwYXRoOiAiMTUuMS4zLjEiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLCnZhciByZXN1bHQgPSB0cnVlOwp2YXIgaW50ZXJ2YWwgPSBbWzB4MDAsIDB4MjldLCBbMHg0MCwweDQwXSwgWzB4NDcsIDB4NjBdLCBbMHg2NywgMHhGRkZGXV07CmZvciAodmFyIGluZGV4SSA9IDA7IGluZGV4SSA8IGludGVydmFsLmxlbmd0aDsgaW5kZXhJKyspIHsKICBmb3IgKHZhciBpbmRleEogPSBpbnRlcnZhbFtpbmRleEldWzBdOyBpbmRleEogPD0gaW50ZXJ2YWxbaW5kZXhJXVsxXTsgaW5kZXhKKyspIHsKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSSgiJSIgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGluZGV4SikgKyAiMSIpOwogICAgICByZXN1bHQgPSBmYWxzZTsKICAgIH0gY2F0Y2ggKGUpIHsgICAKICAgICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpICE9PSB0cnVlKSB7CiAgICAgICAgcmVzdWx0ID0gZmFsc2U7CiAgICAgIH0KICAgIH0gICAgCiAgfSAgCn0gIAoKaWYgKHJlc3VsdCAhPT0gdHJ1ZSkgeyAgICAKICAkRVJST1IoJyMxOiBJZiBzdHJpbmcuY2hhckF0KGsrMSkgZG9lcyBub3QgcmVwcmVzZW50IGhleGFkZWNpbWFsIGRpZ2l0cywgdGhyb3cgVVJJRXJyb3InKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.1_A1.2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuMl9UMiIsCgpwYXRoOiAiMTUuMS4zLjEiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLCnZhciByZXN1bHQgPSB0cnVlOwp2YXIgaW50ZXJ2YWwgPSBbWzB4MDAsIDB4MjldLCBbMHg0MCwweDQwXSwgWzB4NDcsIDB4NjBdLCBbMHg2NywgMHhGRkZGXV07CmZvciAodmFyIGluZGV4SSA9IDA7IGluZGV4SSA8IGludGVydmFsLmxlbmd0aDsgaW5kZXhJKyspIHsKICBmb3IgKHZhciBpbmRleEogPSBpbnRlcnZhbFtpbmRleEldWzBdOyBpbmRleEogPD0gaW50ZXJ2YWxbaW5kZXhJXVsxXTsgaW5kZXhKKyspIHsKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSSgiJSIgKyAiMSIgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGluZGV4SikpOwogICAgICByZXN1bHQgPSBmYWxzZTsKICAgIH0gY2F0Y2ggKGUpIHsgICAKICAgICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpICE9PSB0cnVlKSB7CiAgICAgICAgcmVzdWx0ID0gZmFsc2U7CiAgICAgIH0KICAgIH0gICAgICAKICB9ICAKfSAgCgppZiAocmVzdWx0ICE9PSB0cnVlKSB7ICAgIAogICRFUlJPUignIzE6IElmIHN0cmluZy5jaGFyQXQoaysyKSBkb2VzIG5vdCByZXByZXNlbnQgaGV4YWRlY2ltYWwgZGlnaXRzLCB0aHJvdyBVUklFcnJvcicpOwp9CgogfQp9KTsKCg==","id":"S15.1.3.1_A1.2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuM19UMSIsCgpwYXRoOiAiMTUuMS4zLjEiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLiBCID0gMTB4eHh4eHggLT4gQiBpbiBbMHg4MCAtIDB4QkZdIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgZXJyb3JDb3VudCA9IDA7CnZhciBjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwoKZm9yICh2YXIgaW5kZXggPSAweDgwOyBpbmRleCA8PSAweEJGOyBpbmRleCsrKSB7CiAgY291bnQrKzsgCiAgdmFyIGhleCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleCk7CiAgdHJ5IHsKICAgIGRlY29kZVVSSSgiJSIgKyBoZXguc3Vic3RyaW5nKDIpKTsKICB9IGNhdGNoIChlKSB7IAogICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpID09PSB0cnVlKSBjb250aW51ZTsgICAgICAgICAgICAgICAgCiAgfQogIGlmIChpbmRleE8gPT09IDApIHsgCiAgICBpbmRleE8gPSBpbmRleDsKICB9IGVsc2UgewogICAgaWYgKChpbmRleCAtIGluZGV4UCkgIT09IDEpIHsgICAgICAgICAgICAgCiAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICB9IAogICAgICBlbHNlIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICAgICAgfSAgCiAgICAgIGluZGV4TyA9IGluZGV4OwogICAgfSAgICAgICAgIAogIH0KICBpbmRleFAgPSBpbmRleDsKICBlcnJvckNvdW50Kys7ICAgICAgIAp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.1_A1.3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuM19UMiIsCgpwYXRoOiAiMTUuMS4zLjEiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLiBCID0gMTExMTF4eHggLT4gQiBpbiBbMHhGOCAtIDB4RkZdIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgZXJyb3JDb3VudCA9IDA7CnZhciBjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwoKZm9yICh2YXIgaW5kZXggPSAweEY4OyBpbmRleCA8PSAweEZGOyBpbmRleCsrKSB7CiAgY291bnQrKzsgCiAgdmFyIGhleCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleCk7CiAgdHJ5IHsKICAgIGRlY29kZVVSSSgiJSIgKyBoZXguc3Vic3RyaW5nKDIpKTsKICB9IGNhdGNoIChlKSB7IAogICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpID09PSB0cnVlKSBjb250aW51ZTsgICAgICAgICAgICAgICAgCiAgfQogIGlmIChpbmRleE8gPT09IDApIHsgCiAgICBpbmRleE8gPSBpbmRleDsKICB9IGVsc2UgewogICAgaWYgKChpbmRleCAtIGluZGV4UCkgIT09IDEpIHsgICAgICAgICAgICAgCiAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICB9IAogICAgICBlbHNlIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICAgICAgfSAgCiAgICAgIGluZGV4TyA9IGluZGV4OwogICAgfSAgICAgICAgIAogIH0KICBpbmRleFAgPSBpbmRleDsKICBlcnJvckNvdW50Kys7ICAgICAgIAp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.1_A1.3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuNF9UMSIsCgpwYXRoOiAiMTUuMS4zLjEiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLiBCID0gWzB4QzAgLSAweERGXSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGVycm9yQ291bnQgPSAwOwp2YXIgY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmZvciAodmFyIGluZGV4ID0gMHhDMDsgaW5kZXggPD0gMHhERjsgaW5kZXgrKykgewogIGNvdW50Kys7IAogIHZhciBzdHIgPSAiIjsKICB2YXIgcmVzdWx0ID0gdHJ1ZTsKICBmb3IgKHZhciBsZW4gPSAwOyBsZW4gPCAzOyBsZW4rKykgewogICAgdmFyIGhleCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleCk7CiAgICB0cnkgewogICAgICBkZWNvZGVVUkkoIiUiICsgaGV4LnN1YnN0cmluZygyKSArIHN0cik7ICAgICAgCiAgICB9IGNhdGNoIChlKSB7IAogICAgICBpZiAoKGUgaW5zdGFuY2VvZiBVUklFcnJvcikgPT09IHRydWUpIGNvbnRpbnVlOyAgICAgICAgICAgICAgICAKICAgIH0KICAgIHJlc3VsdCA9IGZhbHNlOwogICAgc3RyID0gc3RyICsgIjEiOwogIH0KICBpZiAocmVzdWx0ICE9PSB0cnVlKSB7CiAgICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgICBpbmRleE8gPSBpbmRleDsKICAgIH0gZWxzZSB7CiAgICAgIGlmICgoaW5kZXggLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gCiAgICAgICAgZWxzZSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gIAogICAgICAgIGluZGV4TyA9IGluZGV4OwogICAgICB9ICAgICAgICAgCiAgICB9CiAgICBpbmRleFAgPSBpbmRleDsKICAgIGVycm9yQ291bnQrKzsgICAgICAKICB9IAp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.1_A1.4_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuNV9UMSIsCgpwYXRoOiAiMTUuMS4zLjEiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLiBCID0gWzB4RTAgLSAweEVGXSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGVycm9yQ291bnQgPSAwOwp2YXIgY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmZvciAodmFyIGluZGV4ID0gMHhFMDsgaW5kZXggPD0gMHhFRjsgaW5kZXgrKykgewogIGNvdW50Kys7IAogIHZhciBzdHIgPSAiIjsKICB2YXIgcmVzdWx0ID0gdHJ1ZTsKICBmb3IgKHZhciBsZW4gPSAwOyBsZW4gPCA2OyBsZW4rKykgewogICAgdmFyIGhleCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleCk7CiAgICB0cnkgewogICAgICBkZWNvZGVVUkkoIiUiICsgaGV4LnN1YnN0cmluZygyKSArIHN0cik7ICAgICAgCiAgICB9IGNhdGNoIChlKSB7IAogICAgICBpZiAoKGUgaW5zdGFuY2VvZiBVUklFcnJvcikgPT09IHRydWUpIGNvbnRpbnVlOyAgICAgICAgICAgICAgICAKICAgIH0KICAgIHJlc3VsdCA9IGZhbHNlOwogICAgc3RyID0gc3RyICsgIjEiOwogIH0KICBpZiAocmVzdWx0ICE9PSB0cnVlKSB7CiAgICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgICBpbmRleE8gPSBpbmRleDsKICAgIH0gZWxzZSB7CiAgICAgIGlmICgoaW5kZXggLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gCiAgICAgICAgZWxzZSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gIAogICAgICAgIGluZGV4TyA9IGluZGV4OwogICAgICB9ICAgICAgICAgCiAgICB9CiAgICBpbmRleFAgPSBpbmRleDsKICAgIGVycm9yQ291bnQrKzsgICAgICAKICB9IAp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.1_A1.5_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuNl9UMSIsCgpwYXRoOiAiMTUuMS4zLjEiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLiBCID0gWzB4RjAgLSAweEY3XSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGVycm9yQ291bnQgPSAwOwp2YXIgY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmZvciAodmFyIGluZGV4ID0gMHhGMDsgaW5kZXggPD0gMHhGNzsgaW5kZXgrKykgewogIGNvdW50Kys7IAogIHZhciBzdHIgPSAiIjsKICB2YXIgcmVzdWx0ID0gdHJ1ZTsKICBmb3IgKHZhciBsZW4gPSAwOyBsZW4gPCA5OyBsZW4rKykgewogICAgdmFyIGhleCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleCk7CiAgICB0cnkgewogICAgICBkZWNvZGVVUkkoIiUiICsgaGV4LnN1YnN0cmluZygyKSArIHN0cik7ICAgICAgCiAgICB9IGNhdGNoIChlKSB7IAogICAgICBpZiAoKGUgaW5zdGFuY2VvZiBVUklFcnJvcikgPT09IHRydWUpIGNvbnRpbnVlOyAgICAgICAgICAgICAgICAKICAgIH0KICAgIHJlc3VsdCA9IGZhbHNlOwogICAgc3RyID0gc3RyICsgIjEiOwogIH0KICBpZiAocmVzdWx0ICE9PSB0cnVlKSB7CiAgICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgICBpbmRleE8gPSBpbmRleDsKICAgIH0gZWxzZSB7CiAgICAgIGlmICgoaW5kZXggLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gCiAgICAgICAgZWxzZSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gIAogICAgICAgIGluZGV4TyA9IGluZGV4OwogICAgICB9ICAgICAgICAgCiAgICB9CiAgICBpbmRleFAgPSBpbmRleDsKICAgIGVycm9yQ291bnQrKzsgICAgICAKICB9IAp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.1_A1.6_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuN19UMSIsCgpwYXRoOiAiMTUuMS4zLjEiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLiBCID0gWzB4QzAgLSAweERGXSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGVycm9yQ291bnQgPSAwOwp2YXIgY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmZvciAodmFyIGluZGV4ID0gMHhDMDsgaW5kZXggPD0gMHhERjsgaW5kZXgrKykgewogIGNvdW50Kys7IAogIHZhciBoZXggPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXgpOwogIHRyeSB7CiAgICBkZWNvZGVVUkkoIiUiICsgaGV4LnN1YnN0cmluZygyKSArICIxMTEiKTsKICB9IGNhdGNoIChlKSB7IAogICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpID09PSB0cnVlKSBjb250aW51ZTsgICAgICAgICAgICAgICAgCiAgfQogIGlmIChpbmRleE8gPT09IDApIHsgCiAgICBpbmRleE8gPSBpbmRleDsKICB9IGVsc2UgewogICAgaWYgKChpbmRleCAtIGluZGV4UCkgIT09IDEpIHsgICAgICAgICAgICAgCiAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICB9IAogICAgICBlbHNlIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICAgICAgfSAgCiAgICAgIGluZGV4TyA9IGluZGV4OwogICAgfSAgICAgICAgIAogIH0KICBpbmRleFAgPSBpbmRleDsKICBlcnJvckNvdW50Kys7ICAgICAgIAp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.1_A1.7_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuOF9UMSIsCgpwYXRoOiAiMTUuMS4zLjEiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLiBCID0gWzB4RTAgLSAweEVGXSwiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBlcnJvckNvdW50ID0gMDsKdmFyIGNvdW50ID0gMDsKdmFyIGluZGV4UDsKdmFyIGluZGV4TyA9IDA7Cgpmb3IgKHZhciBpbmRleCA9IDB4RTA7IGluZGV4IDw9IDB4RUY7IGluZGV4KyspIHsKICBjb3VudCsrOyAKICB2YXIgaGV4ID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4KTsKICB0cnkgewogICAgZGVjb2RlVVJJKCIlIiArIGhleC5zdWJzdHJpbmcoMikgKyAiMTExJUEwIik7CiAgfSBjYXRjaCAoZSkgeyAKICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSA9PT0gdHJ1ZSkgY29udGludWU7ICAgICAgICAgICAgICAgIAogIH0KICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgaW5kZXhPID0gaW5kZXg7CiAgfSBlbHNlIHsKICAgIGlmICgoaW5kZXggLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgfSAKICAgICAgZWxzZSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgIH0gIAogICAgICBpbmRleE8gPSBpbmRleDsKICAgIH0gICAgICAgICAKICB9CiAgaW5kZXhQID0gaW5kZXg7CiAgZXJyb3JDb3VudCsrOyAgICAgICAKfQoKaWYgKGVycm9yQ291bnQgPiAwKSB7CiAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgfSBlbHNlIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgfSAgICAgCiAgJEVSUk9SKCdUb3RhbCBlcnJvcjogJyArIGVycm9yQ291bnQgKyAnIGJhZCBVbmljb2RlIGNoYXJhY3RlciBpbiAnICsgY291bnQgKyAnICcpOwp9CgpmdW5jdGlvbiBkZWNpbWFsVG9IZXhTdHJpbmcobikgewogIG4gPSBOdW1iZXIobik7CiAgdmFyIGggPSAiIjsKICBmb3IgKHZhciBpID0gMzsgaSA+PSAwOyBpLS0pIHsKICAgIGlmIChuID49IE1hdGgucG93KDE2LCBpKSkgewogICAgICB2YXIgdCA9IE1hdGguZmxvb3IobiAvIE1hdGgucG93KDE2LCBpKSk7CiAgICAgIG4gLT0gdCAqIE1hdGgucG93KDE2LCBpKTsKICAgICAgaWYgKCB0ID49IDEwICkgewogICAgICAgIGlmICggdCA9PSAxMCApIHsgaCArPSAiQSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTEgKSB7IGggKz0gIkIiOyB9CiAgICAgICAgaWYgKCB0ID09IDEyICkgeyBoICs9ICJDIjsgfQogICAgICAgIGlmICggdCA9PSAxMyApIHsgaCArPSAiRCI7IH0KICAgICAgICBpZiAoIHQgPT0gMTQgKSB7IGggKz0gIkUiOyB9CiAgICAgICAgaWYgKCB0ID09IDE1ICkgeyBoICs9ICJGIjsgfQogICAgICB9IGVsc2UgewogICAgICAgIGggKz0gU3RyaW5nKHQpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBoICs9ICIwIjsKICAgIH0KICB9CiAgcmV0dXJuIGg7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.1_A1.8_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuOF9UMiIsCgpwYXRoOiAiMTUuMS4zLjEiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLiBCID0gWzB4RTAgLSAweEVGXSwiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBlcnJvckNvdW50ID0gMDsKdmFyIGNvdW50ID0gMDsKdmFyIGluZGV4UDsKdmFyIGluZGV4TyA9IDA7Cgpmb3IgKHZhciBpbmRleCA9IDB4RTA7IGluZGV4IDw9IDB4RUY7IGluZGV4KyspIHsKICBjb3VudCsrOyAKICB2YXIgaGV4ID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4KTsKICB0cnkgewogICAgZGVjb2RlVVJJKCIlIiArIGhleC5zdWJzdHJpbmcoMikgKyAiJUEwMTExIik7CiAgfSBjYXRjaCAoZSkgeyAKICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSA9PT0gdHJ1ZSkgY29udGludWU7ICAgICAgICAgICAgICAgIAogIH0KICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgaW5kZXhPID0gaW5kZXg7CiAgfSBlbHNlIHsKICAgIGlmICgoaW5kZXggLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgfSAKICAgICAgZWxzZSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgIH0gIAogICAgICBpbmRleE8gPSBpbmRleDsKICAgIH0gICAgICAgICAKICB9CiAgaW5kZXhQID0gaW5kZXg7CiAgZXJyb3JDb3VudCsrOyAgICAgICAKfQoKaWYgKGVycm9yQ291bnQgPiAwKSB7CiAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgfSBlbHNlIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgfSAgICAgCiAgJEVSUk9SKCdUb3RhbCBlcnJvcjogJyArIGVycm9yQ291bnQgKyAnIGJhZCBVbmljb2RlIGNoYXJhY3RlciBpbiAnICsgY291bnQgKyAnICcpOwp9CgpmdW5jdGlvbiBkZWNpbWFsVG9IZXhTdHJpbmcobikgewogIG4gPSBOdW1iZXIobik7CiAgdmFyIGggPSAiIjsKICBmb3IgKHZhciBpID0gMzsgaSA+PSAwOyBpLS0pIHsKICAgIGlmIChuID49IE1hdGgucG93KDE2LCBpKSkgewogICAgICB2YXIgdCA9IE1hdGguZmxvb3IobiAvIE1hdGgucG93KDE2LCBpKSk7CiAgICAgIG4gLT0gdCAqIE1hdGgucG93KDE2LCBpKTsKICAgICAgaWYgKCB0ID49IDEwICkgewogICAgICAgIGlmICggdCA9PSAxMCApIHsgaCArPSAiQSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTEgKSB7IGggKz0gIkIiOyB9CiAgICAgICAgaWYgKCB0ID09IDEyICkgeyBoICs9ICJDIjsgfQogICAgICAgIGlmICggdCA9PSAxMyApIHsgaCArPSAiRCI7IH0KICAgICAgICBpZiAoIHQgPT0gMTQgKSB7IGggKz0gIkUiOyB9CiAgICAgICAgaWYgKCB0ID09IDE1ICkgeyBoICs9ICJGIjsgfQogICAgICB9IGVsc2UgewogICAgICAgIGggKz0gU3RyaW5nKHQpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBoICs9ICIwIjsKICAgIH0KICB9CiAgcmV0dXJuIGg7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.1_A1.8_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuOV9UMSIsCgpwYXRoOiAiMTUuMS4zLjEiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLiBCID0gWzB4RjAgLSAweDBGN10sIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgZXJyb3JDb3VudCA9IDA7CnZhciBjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwoKZm9yICh2YXIgaW5kZXggPSAweEYwOyBpbmRleCA8PSAweEY3OyBpbmRleCsrKSB7CiAgY291bnQrKzsgCiAgdmFyIGhleCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleCk7CiAgdHJ5IHsKICAgIGRlY29kZVVSSSgiJSIgKyBoZXguc3Vic3RyaW5nKDIpICsgIjExMSVBMCVBMCIpOwogIH0gY2F0Y2ggKGUpIHsgCiAgICBpZiAoKGUgaW5zdGFuY2VvZiBVUklFcnJvcikgPT09IHRydWUpIGNvbnRpbnVlOyAgICAgICAgICAgICAgICAKICB9CiAgaWYgKGluZGV4TyA9PT0gMCkgeyAKICAgIGluZGV4TyA9IGluZGV4OwogIH0gZWxzZSB7CiAgICBpZiAoKGluZGV4IC0gaW5kZXhQKSAhPT0gMSkgeyAgICAgICAgICAgICAKICAgICAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgICAgIH0gCiAgICAgIGVsc2UgewogICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICB9ICAKICAgICAgaW5kZXhPID0gaW5kZXg7CiAgICB9ICAgICAgICAgCiAgfQogIGluZGV4UCA9IGluZGV4OwogIGVycm9yQ291bnQrKzsgICAgICAgCn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.1_A1.9_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuOV9UMiIsCgpwYXRoOiAiMTUuMS4zLjEiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLiBCID0gWzB4RjAgLSAweDBGN10sIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgZXJyb3JDb3VudCA9IDA7CnZhciBjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwoKZm9yICh2YXIgaW5kZXggPSAweEYwOyBpbmRleCA8PSAweEY3OyBpbmRleCsrKSB7CiAgY291bnQrKzsgCiAgdmFyIGhleCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleCk7CiAgdHJ5IHsKICAgIGRlY29kZVVSSSgiJSIgKyBoZXguc3Vic3RyaW5nKDIpICsgIiVBMDExMSVBMCIpOwogIH0gY2F0Y2ggKGUpIHsgCiAgICBpZiAoKGUgaW5zdGFuY2VvZiBVUklFcnJvcikgPT09IHRydWUpIGNvbnRpbnVlOyAgICAgICAgICAgICAgICAKICB9CiAgaWYgKGluZGV4TyA9PT0gMCkgeyAKICAgIGluZGV4TyA9IGluZGV4OwogIH0gZWxzZSB7CiAgICBpZiAoKGluZGV4IC0gaW5kZXhQKSAhPT0gMSkgeyAgICAgICAgICAgICAKICAgICAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgICAgIH0gCiAgICAgIGVsc2UgewogICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICB9ICAKICAgICAgaW5kZXhPID0gaW5kZXg7CiAgICB9ICAgICAgICAgCiAgfQogIGluZGV4UCA9IGluZGV4OwogIGVycm9yQ291bnQrKzsgICAgICAgCn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.1_A1.9_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTEuOV9UMyIsCgpwYXRoOiAiMTUuMS4zLjEiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLiBCID0gWzB4RjAgLSAweDBGN10sIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgZXJyb3JDb3VudCA9IDA7CnZhciBjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwoKZm9yICh2YXIgaW5kZXggPSAweEYwOyBpbmRleCA8PSAweEY3OyBpbmRleCsrKSB7CiAgY291bnQrKzsgCiAgdmFyIGhleCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleCk7CiAgdHJ5IHsKICAgIGRlY29kZVVSSSgiJSIgKyBoZXguc3Vic3RyaW5nKDIpICsgIiVBMCVBMDExMSIpOwogIH0gY2F0Y2ggKGUpIHsgCiAgICBpZiAoKGUgaW5zdGFuY2VvZiBVUklFcnJvcikgPT09IHRydWUpIGNvbnRpbnVlOyAgICAgICAgICAgICAgICAKICB9CiAgaWYgKGluZGV4TyA9PT0gMCkgeyAKICAgIGluZGV4TyA9IGluZGV4OwogIH0gZWxzZSB7CiAgICBpZiAoKGluZGV4IC0gaW5kZXhQKSAhPT0gMSkgeyAgICAgICAgICAgICAKICAgICAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgICAgIH0gCiAgICAgIGVsc2UgewogICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICB9ICAKICAgICAgaW5kZXhPID0gaW5kZXg7CiAgICB9ICAgICAgICAgCiAgfQogIGluZGV4UCA9IGluZGV4OwogIGVycm9yQ291bnQrKzsgICAgICAgCn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.1_A1.9_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTIuMV9UMSIsCgpwYXRoOiAiMTUuMS4zLjEiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLCnZhciBlcnJvckNvdW50ID0gMDsKdmFyIGNvdW50ID0gMDsKZm9yICh2YXIgaW5kZXhJID0gMDsgaW5kZXhJIDw9IDY1NTM1OyBpbmRleEkrKykgewogIGlmIChpbmRleEkgIT09IDB4MjUpIHsKICAgIHZhciBoZXggPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhJKTsKICAgIHRyeSB7ICAgIAogICAgICB2YXIgc3RyID0gU3RyaW5nLmZyb21DaGFyQ29kZShpbmRleEkpOwogICAgICBpZiAoZGVjb2RlVVJJKHN0cikgIT09IHN0cikgeyAgICAKICAgICAgICAkRVJST1IoJyMnICsgaGV4ICsgJyAnKTsKICAgICAgICBlcnJvckNvdW50Kys7CiAgICAgIH0gICAgCiAgICB9IGNhdGNoIChlKXsKICAgICAgJEVSUk9SKCcjJyArIGhleCArICcgJyk7CiAgICAgIGVycm9yQ291bnQrKzsKICAgIH0gCiAgICBjb3VudCsrOwogIH0KfSAgCgppZiAoZXJyb3JDb3VudCA+IDApIHsgICAgCiAgJEVSUk9SKCdUb3RhbCBlcnJvcjogJyArIGVycm9yQ291bnQgKyAnIGJhZCBVbmljb2RlIGNoYXJhY3RlciBpbiAnICsgY291bnQpOwp9CgpmdW5jdGlvbiBkZWNpbWFsVG9IZXhTdHJpbmcobikgewogIG4gPSBOdW1iZXIobik7CiAgdmFyIGggPSAiIjsKICBmb3IgKHZhciBpID0gMzsgaSA+PSAwOyBpLS0pIHsKICAgIGlmIChuID49IE1hdGgucG93KDE2LCBpKSkgewogICAgICB2YXIgdCA9IE1hdGguZmxvb3IobiAvIE1hdGgucG93KDE2LCBpKSk7CiAgICAgIG4gLT0gdCAqIE1hdGgucG93KDE2LCBpKTsKICAgICAgaWYgKCB0ID49IDEwICkgewogICAgICAgIGlmICggdCA9PSAxMCApIHsgaCArPSAiQSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTEgKSB7IGggKz0gIkIiOyB9CiAgICAgICAgaWYgKCB0ID09IDEyICkgeyBoICs9ICJDIjsgfQogICAgICAgIGlmICggdCA9PSAxMyApIHsgaCArPSAiRCI7IH0KICAgICAgICBpZiAoIHQgPT0gMTQgKSB7IGggKz0gIkUiOyB9CiAgICAgICAgaWYgKCB0ID09IDE1ICkgeyBoICs9ICJGIjsgfQogICAgICB9IGVsc2UgewogICAgICAgIGggKz0gU3RyaW5nKHQpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBoICs9ICIwIjsKICAgIH0KICB9CiAgcmV0dXJuIGg7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.1_A2.1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTIuMl9UMSIsCgpwYXRoOiAiMTUuMS4zLjEiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1c2UgUkZDIDM2MjkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBlcnJvckNvdW50ID0gMDsKdmFyIGNvdW50ID0gMDsKdmFyIGluZGV4UDsKdmFyIGluZGV4TyA9IDA7CnZhciB1cmlSZXNlcnZlZCA9IFsiOyIsICIvIiwgIj8iLCAiOiIsICJAIiwgIiYiLCAiPSIsICIrIiwgIiQiLCAiLCJdOwpsOgpmb3IgKHZhciBpbmRleEIxID0gMHgwMDsgaW5kZXhCMSA8PSAweDdGOyBpbmRleEIxKyspIHsgICAgICAgCiAgY291bnQrKzsKICB2YXIgaGV4QjEgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhCMSk7ICAKICB2YXIgaW5kZXggPSBpbmRleEIxOyAgCiAgdHJ5IHsKICAgIHZhciBoZXggPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGluZGV4KTsKICAgIGZvciAoaW5kZXhDID0gMDsgaW5kZXhDIDwgdXJpUmVzZXJ2ZWQubGVuZ3RoOyBpbmRleEMrKykgeyAgICAKICAgICAgaWYgKGhleCA9PT0gdXJpUmVzZXJ2ZWRbaW5kZXhDXSkgY29udGludWUgbDsgICAgICAgIAogICAgfSAKICAgIGlmIChoZXggPT09ICIjIikgY29udGludWUgbDsKICAgIGlmIChkZWNvZGVVUkkoIiUiICsgaGV4QjEuc3Vic3RyaW5nKDIpKSA9PT0gaGV4KSBjb250aW51ZTsKICB9IGNhdGNoIChlKSB7fSAgIAogIGlmIChpbmRleE8gPT09IDApIHsgCiAgICBpbmRleE8gPSBpbmRleDsKICB9IGVsc2UgewogICAgaWYgKChpbmRleCAtIGluZGV4UCkgIT09IDEpIHsgICAgICAgICAgICAgCiAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICB9IAogICAgICBlbHNlIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICAgICAgfSAgCiAgICAgIGluZGV4TyA9IGluZGV4OwogICAgfSAgICAgICAgIAogIH0KICBpbmRleFAgPSBpbmRleDsKICBlcnJvckNvdW50Kys7ICAgICAgICAgCn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.1_A2.2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTIuM19UMSIsCgpwYXRoOiAiMTUuMS4zLjEiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1c2UgUkZDIDM2MjkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBlcnJvckNvdW50ID0gMDsKdmFyIGNvdW50ID0gMDsKdmFyIGluZGV4UDsKdmFyIGluZGV4TyA9IDA7Cgpmb3IgKHZhciBpbmRleEIxID0gMHhDMjsgaW5kZXhCMSA8PSAweERGOyBpbmRleEIxKyspIHsgICAgIAogIHZhciBoZXhCMSA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEIxKTsKICBmb3IgKHZhciBpbmRleEIyID0gMHg4MDsgaW5kZXhCMiA8PSAweEJGOyBpbmRleEIyKyspIHsKICAgIGNvdW50Kys7CiAgICB2YXIgaGV4QjIgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhCMik7CiAgICB2YXIgaW5kZXggPSAoaW5kZXhCMSAmIDB4MUYpICogMHg0MCArIChpbmRleEIyICYgMHgzRik7ICAKICAgIHRyeSB7CiAgICAgIGlmIChkZWNvZGVVUkkoIiUiICsgaGV4QjEuc3Vic3RyaW5nKDIpICsgIiUiICsgaGV4QjIuc3Vic3RyaW5nKDIpKSA9PT0gU3RyaW5nLmZyb21DaGFyQ29kZShpbmRleCkpIGNvbnRpbnVlOwogICAgfSBjYXRjaCAoZSkge30gICAKICAgIGlmIChpbmRleE8gPT09IDApIHsgCiAgICAgIGluZGV4TyA9IGluZGV4OwogICAgfSBlbHNlIHsKICAgICAgaWYgKChpbmRleCAtIGluZGV4UCkgIT09IDEpIHsgICAgICAgICAgICAgCiAgICAgICAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICAgICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgICAgICAgfSAKICAgICAgICBlbHNlIHsKICAgICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgICAgfSAgCiAgICAgICAgaW5kZXhPID0gaW5kZXg7CiAgICAgIH0gICAgICAgICAKICAgIH0KICAgIGluZGV4UCA9IGluZGV4OwogICAgZXJyb3JDb3VudCsrOyAgICAgICAKICB9Cn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.1_A2.3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTIuNF9UMSIsCgpwYXRoOiAiMTUuMS4zLjEiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1c2UgUkZDIDM2MjkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBlcnJvckNvdW50ID0gMDsKdmFyIGNvdW50ID0gMDsKdmFyIGluZGV4UDsKdmFyIGluZGV4TyA9IDA7Cgpmb3IgKHZhciBpbmRleEIxID0gMHhFMDsgaW5kZXhCMSA8PSAweEVGOyBpbmRleEIxKyspIHsgICAgIAogIHZhciBoZXhCMSA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEIxKTsKICBmb3IgKHZhciBpbmRleEIyID0gMHg4MDsgaW5kZXhCMiA8PSAweEJGOyBpbmRleEIyKyspIHsKICAgIGlmICgoaW5kZXhCMSA9PT0gMHhFMCkgJiYgKGluZGV4QjIgPD0gMHg5RikpIGNvbnRpbnVlOwogICAgaWYgKChpbmRleEIxID09PSAweEVEKSAmJiAoMHhBMCA8PSBpbmRleEIyKSkgY29udGludWU7ICAgICAgICAgCiAgICB2YXIgaGV4QjIgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhCMik7CiAgICBmb3IgKHZhciBpbmRleEIzID0gMHg4MDsgaW5kZXhCMyA8PSAweEJGOyBpbmRleEIzKyspIHsKICAgICAgY291bnQrKzsKICAgICAgdmFyIGhleEIzID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4QjMpOwogICAgICB2YXIgaW5kZXggPSAoaW5kZXhCMSAmIDB4MEYpICogMHgxMDAwICsgKGluZGV4QjIgJiAweDNGKSAqIDB4NDAgKyAoaW5kZXhCMyAmIDB4M0YpOyAgCiAgICAgIHRyeSB7CiAgICAgICAgaWYgKGRlY29kZVVSSSgiJSIgKyBoZXhCMS5zdWJzdHJpbmcoMikgKyAiJSIgKyBoZXhCMi5zdWJzdHJpbmcoMikgKyAiJSIgKyBoZXhCMy5zdWJzdHJpbmcoMikpID09PSBTdHJpbmcuZnJvbUNoYXJDb2RlKGluZGV4KSkgY29udGludWU7ICAgICAgICAKICAgICAgfSBjYXRjaCAoZSkge30gICAKICAgICAgaWYgKGluZGV4TyA9PT0gMCkgeyAKICAgICAgICBpbmRleE8gPSBpbmRleDsKICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAoKGluZGV4IC0gaW5kZXhQKSAhPT0gMSkgeyAgICAgICAgICAgICAKICAgICAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICAgICAgfSAKICAgICAgICAgIGVsc2UgewogICAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgICAgICB9ICAKICAgICAgICAgIGluZGV4TyA9IGluZGV4OwogICAgICAgIH0gICAgICAgICAKICAgICAgfQogICAgICBpbmRleFAgPSBpbmRleDsKICAgICAgZXJyb3JDb3VudCsrOyAgCiAgICB9ICAgICAKICB9Cn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.1_A2.4_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTIuNV9UMSIsCgpwYXRoOiAiMTUuMS4zLjEiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1c2UgUkZDIDM2MjkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBlcnJvckNvdW50ID0gMDsKdmFyIGNvdW50ID0gMDsKdmFyIGluZGV4UDsKdmFyIGluZGV4TyA9IDA7Cgpmb3IgKHZhciBpbmRleEIxID0gMHhGMDsgaW5kZXhCMSA8PSAweEY0OyBpbmRleEIxKyspIHsgICAgIAogIHZhciBoZXhCMSA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEIxKTsKICBmb3IgKHZhciBpbmRleEIyID0gMHg4MDsgaW5kZXhCMiA8PSAweEJGOyBpbmRleEIyKyspIHsKICAgIGlmICgoaW5kZXhCMSA9PT0gMHhGMCkgJiYgKGluZGV4QjIgPD0gMHg5RikpIGNvbnRpbnVlOyAgICAgICAgICAgIAogICAgaWYgKChpbmRleEIxID09PSAweEY0KSAmJiAoaW5kZXhCMiA+PSAweDkwKSkgY29udGludWU7CiAgICB2YXIgaGV4QjIgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhCMik7CiAgICBmb3IgKHZhciBpbmRleEIzID0gMHg4MDsgaW5kZXhCMyA8PSAweEJGOyBpbmRleEIzKyspIHsKICAgICAgdmFyIGhleEIzID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4QjMpOwogICAgICBmb3IgKHZhciBpbmRleEI0ID0gMHg4MDsgaW5kZXhCNCA8PSAweEJGOyBpbmRleEI0KyspIHsKICAgICAgICB2YXIgaGV4QjQgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhCNCk7CiAgICAgICAgY291bnQrKzsKICAgICAgICB2YXIgaW5kZXggPSAoaW5kZXhCMSAmIDB4MDcpICogMHg0MDAwMCArIChpbmRleEIyICYgMHgzRikgKiAweDEwMDAgKyAoaW5kZXhCMyAmIDB4M0YpICogMHg0MCArIChpbmRleEI0ICYgMHgzRik7CiAgICAgICAgdmFyIEwgPSAoKGluZGV4IC0gMHgxMDAwMCkgJiAweDAzRkYpICsgMHhEQzAwOwogICAgICAgIHZhciBIID0gKCgoaW5kZXggLSAweDEwMDAwKSA+PiAxMCkgJiAweDAzRkYpICsgMHhEODAwOyAgCiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChkZWNvZGVVUkkoIiUiICsgaGV4QjEuc3Vic3RyaW5nKDMpICsgIiUiICsgaGV4QjIuc3Vic3RyaW5nKDMpICsgIiUiICsgaGV4QjMuc3Vic3RyaW5nKDMpICsgIiUiICsgaGV4QjQuc3Vic3RyaW5nKDMpKSA9PT0gU3RyaW5nLmZyb21DaGFyQ29kZShIKSArIFN0cmluZy5mcm9tQ2hhckNvZGUoTCkpIGNvbnRpbnVlOyAgICAgICAgCiAgICAgICAgfSBjYXRjaCAoZSkge30gICAKICAgICAgICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgICAgICAgaW5kZXhPID0gaW5kZXg7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGlmICgoaW5kZXggLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICAgICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgICAgICAgfSAKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgICAgICAgIH0gIAogICAgICAgICAgICBpbmRleE8gPSBpbmRleDsKICAgICAgICAgIH0gICAgICAgICAKICAgICAgICB9CiAgICAgICAgaW5kZXhQID0gaW5kZXg7CiAgICAgICAgZXJyb3JDb3VudCsrOyAgCiAgICAgIH0KICAgIH0gICAgIAogIH0KfQoKaWYgKGVycm9yQ291bnQgPiAwKSB7CiAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgfSBlbHNlIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgfSAgICAgCiAgJEVSUk9SKCdUb3RhbCBlcnJvcjogJyArIGVycm9yQ291bnQgKyAnIGJhZCBVbmljb2RlIGNoYXJhY3RlciBpbiAnICsgY291bnQgKyAnICcpOwp9CgpmdW5jdGlvbiBkZWNpbWFsVG9IZXhTdHJpbmcobikgewogIG4gPSBOdW1iZXIobik7CiAgdmFyIGggPSAiIjsKICBmb3IgKHZhciBpID0gNDsgaSA+PSAwOyBpLS0pIHsKICAgIGlmIChuID49IE1hdGgucG93KDE2LCBpKSkgewogICAgICB2YXIgdCA9IE1hdGguZmxvb3IobiAvIE1hdGgucG93KDE2LCBpKSk7CiAgICAgIG4gLT0gdCAqIE1hdGgucG93KDE2LCBpKTsKICAgICAgaWYgKCB0ID49IDEwICkgewogICAgICAgIGlmICggdCA9PSAxMCApIHsgaCArPSAiQSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTEgKSB7IGggKz0gIkIiOyB9CiAgICAgICAgaWYgKCB0ID09IDEyICkgeyBoICs9ICJDIjsgfQogICAgICAgIGlmICggdCA9PSAxMyApIHsgaCArPSAiRCI7IH0KICAgICAgICBpZiAoIHQgPT0gMTQgKSB7IGggKz0gIkUiOyB9CiAgICAgICAgaWYgKCB0ID09IDE1ICkgeyBoICs9ICJGIjsgfQogICAgICB9IGVsc2UgewogICAgICAgIGggKz0gU3RyaW5nKHQpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBoICs9ICIwIjsKICAgIH0KICB9CiAgcmV0dXJuIGg7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.1_A2.5_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTNfVDEiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgYWxsIGNoYXJhY3RlciBpbiByZXNlcnZlZFVSSVNldC4gSGV4RGlnaXQgaW4gWzAuLjksIEEuLkZdIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKGRlY29kZVVSSSgiJTNCIikgIT09ICIlM0IiKSB7CiAgJEVSUk9SKCcjMTogZGVjb2RlVVJJKCIlM0IiKSBlcXVhbCAiJTNCIiwgbm90ICI7IicpOwp9CgovL0NIRUNLIzIKaWYgKGRlY29kZVVSSSgiJTJGIikgIT09ICIlMkYiKSB7CiAgJEVSUk9SKCcjMjogZGVjb2RlVVJJKCIlMkYiKSBlcXVhbCAiJTJGIiwgbm90ICIvIicpOwp9CgovL0NIRUNLIzMKaWYgKGRlY29kZVVSSSgiJTNGIikgIT09ICIlM0YiKSB7CiAgJEVSUk9SKCcjMzogZGVjb2RlVVJJKCIlM0YiKSBlcXVhbCAiJTNGIiwgbm90ICI/IicpOwp9CgovL0NIRUNLIzQKaWYgKGRlY29kZVVSSSgiJTNBIikgIT09ICIlM0EiKSB7CiAgJEVSUk9SKCcjNDogZGVjb2RlVVJJKCIlM0EiKSBlcXVhbCAiJTNBIiwgbm90ICI6IicpOwp9CgovL0NIRUNLIzUKaWYgKGRlY29kZVVSSSgiJTQwIikgIT09ICIlNDAiKSB7CiAgJEVSUk9SKCcjNTogZGVjb2RlVVJJKCIlNDAiKSBlcXVhbCAiJTQwIiwgbm90ICJAIicpOwp9CgovL0NIRUNLIzYKaWYgKGRlY29kZVVSSSgiJTI2IikgIT09ICIlMjYiKSB7CiAgJEVSUk9SKCcjNjogZGVjb2RlVVJJKCIlMjYiKSBlcXVhbCAiJTI2Iiwgbm90ICImIicpOwp9CgovL0NIRUNLIzcKaWYgKGRlY29kZVVSSSgiJTNEIikgIT09ICIlM0QiKSB7CiAgJEVSUk9SKCcjNy4xOiBkZWNvZGVVUkkoIiUzRCIpIGVxdWFsICIlM0QiLCBub3QgIj0iJyk7Cn0KCi8vQ0hFQ0sjOAppZiAoZGVjb2RlVVJJKCIlMkIiKSAhPT0gIiUyQiIpIHsKICAkRVJST1IoJyM4LjE6IGRlY29kZVVSSSgiJTJCIikgZXF1YWwgIiUyQiIsIG5vdCAiKyInKTsKfQoKLy9DSEVDSyM5CmlmIChkZWNvZGVVUkkoIiUyNCIpICE9PSAiJTI0IikgewogICRFUlJPUignIzk6IGRlY29kZVVSSSgiJTI0IikgZXF1YWwgIiUyNCIsIG5vdCAiJCInKTsKfQoKLy9DSEVDSyMxMAppZiAoZGVjb2RlVVJJKCIlMkMiKSAhPT0gIiUyQyIpIHsKICAkRVJST1IoJyMxMDogZGVjb2RlVVJJKCIlMkMiKSBlcXVhbCAiJTJDIiwgbm90ICIsIicpOwp9CgovL0NIRUNLIzExCmlmIChkZWNvZGVVUkkoIiUyMyIpICE9PSAiJTIzIikgewogICRFUlJPUignIzExOiBkZWNvZGVVUkkoIiUyMyIpIGVxdWFsICIlMjMiLCBub3QgIiMiJyk7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.1_A3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTNfVDIiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgYWxsIGNoYXJhY3RlciBpbiByZXNlcnZlZFVSSVNldC4gSGV4RGlnaXQgaW4gWzAuLjksIGEuLmZdIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKGRlY29kZVVSSSgiJTNiIikgIT09ICIlM2IiKSB7CiAgJEVSUk9SKCcjMTogZGVjb2RlVVJJKCIlM2IiKSBlcXVhbCAiJTNiIiwgbm90ICI7IiBvciAiJTNCIicpOwp9CgovL0NIRUNLIzIKaWYgKGRlY29kZVVSSSgiJTJmIikgIT09ICIlMmYiKSB7CiAgJEVSUk9SKCcjMjogZGVjb2RlVVJJKCIlMmYiKSBlcXVhbCAiJTJmIiwgbm90ICIvIiBvciAiJTJGIicpOwp9CgovL0NIRUNLIzMKaWYgKGRlY29kZVVSSSgiJTNmIikgIT09ICIlM2YiKSB7CiAgJEVSUk9SKCcjMzogZGVjb2RlVVJJKCIlM2YiKSBlcXVhbCAiJTNmIiwgbm90ICI/IiBvciAiJTNGIicpOwp9CgovL0NIRUNLIzQKaWYgKGRlY29kZVVSSSgiJTNhIikgIT09ICIlM2EiKSB7CiAgJEVSUk9SKCcjNDogZGVjb2RlVVJJKCIlM2EiKSBlcXVhbCAiJTNhIiwgbm90ICI6IiBvciAiJTNBIicpOwp9CgovL0NIRUNLIzUKaWYgKGRlY29kZVVSSSgiJTQwIikgIT09ICIlNDAiKSB7CiAgJEVSUk9SKCcjNTogZGVjb2RlVVJJKCIlNDAiKSBlcXVhbCAiJTQwIiwgbm90ICJAIicpOwp9CgovL0NIRUNLIzYKaWYgKGRlY29kZVVSSSgiJTI2IikgIT09ICIlMjYiKSB7CiAgJEVSUk9SKCcjNjogZGVjb2RlVVJJKCIlMjYiKSBlcXVhbCAiJTI2Iiwgbm90ICImIicpOwp9CgovL0NIRUNLIzcKaWYgKGRlY29kZVVSSSgiJTNkIikgIT09ICIlM2QiKSB7CiAgJEVSUk9SKCcjNy4xOiBkZWNvZGVVUkkoIiUzZCIpIGVxdWFsICIlM2QiLCBub3QgIj0iIG9yICIlM0QiJyk7Cn0KCi8vQ0hFQ0sjOAppZiAoZGVjb2RlVVJJKCIlMmIiKSAhPT0gIiUyYiIpIHsKICAkRVJST1IoJyM4LjE6IGRlY29kZVVSSSgiJTJiIikgZXF1YWwgIiUyYiIsIG5vdCAiKyIgb3IgIiUyQiInKTsKfQoKLy9DSEVDSyM5CmlmIChkZWNvZGVVUkkoIiUyNCIpICE9PSAiJTI0IikgewogICRFUlJPUignIzk6IGRlY29kZVVSSSgiJTI0IikgZXF1YWwgIiUyNCIsIG5vdCAiJCInKTsKfQoKLy9DSEVDSyMxMAppZiAoZGVjb2RlVVJJKCIlMmMiKSAhPT0gIiUyYyIpIHsKICAkRVJST1IoJyMxMDogZGVjb2RlVVJJKCIlMmMiKSBlcXVhbCAiJTJjIiwgbm90ICIsIiBvciAiJTJDIicpOwp9CgovL0NIRUNLIzExCmlmIChkZWNvZGVVUkkoIiUyMyIpICE9PSAiJTIzIikgewogICRFUlJPUignIzExOiBkZWNvZGVVUkkoIiUyMyIpIGVxdWFsICIlMjMiLCBub3QgIiMiJyk7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.1_A3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTNfVDMiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKGRlY29kZVVSSSgiJTNCJTJGJTNGJTNBJTQwJTI2JTNEJTJCJTI0JTJDJTIzIikgIT09ICIlM0IlMkYlM0YlM0ElNDAlMjYlM0QlMkIlMjQlMkMlMjMiKSB7CiAgJEVSUk9SKCcjMTogZGVjb2RlVVJJKCIlM0IlMkYlM0YlM0ElNDAlMjYlM0QlMkIlMjQlMkMlMjMiKSBlcXVhbCAiJTNCJTJGJTNGJTNBJTQwJTI2JTNEJTJCJTI0JTJDJTIzIiwgbm90ICI7Lz86QCY9KyQsIyInKTsKfQoKLy9DSEVDSyMyCmlmIChkZWNvZGVVUkkoIiUzYiUyZiUzZiUzYSU0MCUyNiUzZCUyYiUyNCUyYyUyMyIpICE9PSAiJTNiJTJmJTNmJTNhJTQwJTI2JTNkJTJiJTI0JTJjJTIzIikgewogICRFUlJPUignIzI6IGRlY29kZVVSSSgiJTNiJTJmJTNmJTNhJTQwJTI2JTNkJTJiJTI0JTJjJTIzIikgZXF1YWwgIiUzYiUyZiUzZiUzYSU0MCUyNiUzZCUyYiUyNCUyYyUyMyIsIG5vdCAiOy8/OkAmPSskLCMiIG9yICIlM0IlMkYlM0YlM0ElNDAlMjYlM0QlMkIlMjQlMkMlMjMiJyk7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.1_A3_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTRfVDEiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgRU5HTElTSCBBTFBIQUJFVCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChkZWNvZGVVUkkoImh0dHA6Ly91bmlwcm8ucnUvMDEyMzQ1Njc4OSIpICE9PSAiaHR0cDovL3VuaXByby5ydS8wMTIzNDU2Nzg5IikgewogICRFUlJPUignIzE6IGh0dHA6Ly91bmlwcm8ucnUvMDEyMzQ1Njc4OScpOwp9CgovL0NIRUNLIzIKaWYgKGRlY29kZVVSSSgiJTQxJTQyJTQzJTQ0JTQ1JTQ2JTQ3JTQ4JTQ5JTRBJTRCJTRDJTREJTRFJTRGJTUwJTUxJTUyJTUzJTU0JTU1JTU2JTU3JTU4JTU5JTVBIikgIT09ICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiIpIHsKICAkRVJST1IoJyMyOiBBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicpOwp9CgovL0NIRUNLIzMKaWYgKGRlY29kZVVSSSgiJTYxJTYyJTYzJTY0JTY1JTY2JTY3JTY4JTY5JTZBJTZCJTZDJTZEJTZFJTZGJTcwJTcxJTcyJTczJTc0JTc1JTc2JTc3JTc4JTc5JTdBIikgIT09ICJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpIHsKICAkRVJST1IoJyMzOiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicpOwp9CgogfQp9KTsKCg==","id":"S15.1.3.1_A4_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTRfVDIiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgUlVTU0lBTiBBTFBIQUJFVCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChkZWNvZGVVUkkoImh0dHA6Ly9ydS53aWtpcGVkaWEub3JnL3dpa2kvJWQwJWFlJUQwJWJkJUQwJUI4JUQwJUJBJUQwJUJFJUQwJUI0IikgIT09ICJodHRwOi8vcnUud2lraXBlZGlhLm9yZy93aWtpL9Cu0L3QuNC60L7QtCIpIHsKICAkRVJST1IoJyMxOiBodHRwOi8vcnUud2lraXBlZGlhLm9yZy93aWtpL9Cu0L3QuNC60L7QtCcpOwp9CgovL0NIRUNLIzIKaWYgKGRlY29kZVVSSSgiaHR0cDovL3J1Lndpa2lwZWRpYS5vcmcvd2lraS8lRDAlQUUlRDAlQkQlRDAlQjglRDAlQkElRDAlQkUlRDAlQjQjJUQwJUExJUQxJTgxJUQxJThCJUQwJUJCJUQwJUJBJUQwJUI4IikgIT09ICJodHRwOi8vcnUud2lraXBlZGlhLm9yZy93aWtpL9Cu0L3QuNC60L7QtCPQodGB0YvQu9C60LgiKSB7CiAgJEVSUk9SKCcjMjogaHR0cDovL3J1Lndpa2lwZWRpYS5vcmcvd2lraS/QrtC90LjQutC+0LQj0KHRgdGL0LvQutC4Jyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZGVjb2RlVVJJKCJodHRwOi8vcnUud2lraXBlZGlhLm9yZy93aWtpLyVEMCVBRSVEMCVCRCVEMCVCOCVEMCVCQSVEMCVCRSVEMCVCNCUyMyVEMCU5MiVEMCVCNSVEMSU4MCVEMSU4MSVEMCVCOCVEMCVCOCUyMCVEMCVBRSVEMCVCRCVEMCVCOCVEMCVCQSVEMCVCRSVEMCVCNCVEMCVCMCIpICE9PSAiaHR0cDovL3J1Lndpa2lwZWRpYS5vcmcvd2lraS/QrtC90LjQutC+0LQlMjPQktC10YDRgdC40Lgg0K7QvdC40LrQvtC00LAiKSB7CiAgJEVSUk9SKCcjMzogaHR0cDovL3J1Lndpa2lwZWRpYS5vcmcvd2lraS/QrtC90LjQutC+0LQlMjPQktC10YDRgdC40Lgg0K7QvdC40LrQvtC00LAnKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.1_A4_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTRfVDMiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgVVJMIHdpdGggTGluZSBUZXJtaW5hdG9yIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKGRlY29kZVVSSSgiaHR0cDovL3VuaXByby5ydS8lMEFhYm91dCIpICE9PSAiaHR0cDovL3VuaXByby5ydS9cbmFib3V0IikgewogICRFUlJPUignIzE6IGh0dHA6Ly91bmlwcm8ucnUvJUEwYWJvdXQnKTsKfQoKLy9DSEVDSyMyCmlmIChkZWNvZGVVUkkoImh0dHA6Ly91bmlwcm8ucnUvJTBCYWJvdXQiKSAhPT0gImh0dHA6Ly91bmlwcm8ucnUvXHZhYm91dCIpIHsKICAkRVJST1IoJyMyOiBodHRwOi8vdW5pcHJvLnJ1LyUwQmFib3V0Jyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZGVjb2RlVVJJKCJodHRwOi8vdW5pcHJvLnJ1LyUwQ2Fib3V0IikgIT09ICJodHRwOi8vdW5pcHJvLnJ1L1xmYWJvdXQiKSB7CiAgJEVSUk9SKCcjMzogaHR0cDovL3VuaXByby5ydS8lMENhYm91dCcpOwp9CgovL0NIRUNLIzQKaWYgKGRlY29kZVVSSSgiaHR0cDovL3VuaXByby5ydS8lMERhYm91dCIpICE9PSAiaHR0cDovL3VuaXByby5ydS9ccmFib3V0IikgewogICRFUlJPUignIzQ6IGh0dHA6Ly91bmlwcm8ucnUvJTBEYWJvdXQnKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.1_A4_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTRfVDQiLAoKcGF0aDogIjE1LjEuMy4xIiwKCmRlc2NyaXB0aW9uOiAiVGVzdCBzb21lIHVybCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChkZWNvZGVVUkkoIiIpICE9PSAiIikgewogICRFUlJPUignIzE6ICIiJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoZGVjb2RlVVJJKCJodHRwOiUyZiUyRnVuaXByby5ydSIpICE9PSAiaHR0cDolMmYlMkZ1bmlwcm8ucnUiKSB7CiAgJEVSUk9SKCcjMjogaHR0cDolMmYlMkZ1bmlwcm8ucnUnKTsKfQoKLy9DSEVDSyMzCmlmIChkZWNvZGVVUkkoImh0dHA6Ly93d3cuZ29vZ2xlLnJ1L3N1cHBvcnQvam9icy9iaW4vc3RhdGljLnB5JTNGcGFnZSUzZHdoeS1ydS5odG1sJTI2c2lkJTNEbGl2ZWFuZHdvcmsiKSAhPT0gImh0dHA6Ly93d3cuZ29vZ2xlLnJ1L3N1cHBvcnQvam9icy9iaW4vc3RhdGljLnB5JTNGcGFnZSUzZHdoeS1ydS5odG1sJTI2c2lkJTNEbGl2ZWFuZHdvcmsiKSB7CiAgJEVSUk9SKCcjMzogaHR0cDovL3d3dy5nb29nbGUucnUvc3VwcG9ydC9qb2JzL2Jpbi9zdGF0aWMucHklM0ZwYWdlJTNkd2h5LXJ1Lmh0bWwlMjZzaWQlM0RsaXZlYW5kd29yayInKTsKfSAgICAgICAgICAgCgovL0NIRUNLJTIzNAppZiAoZGVjb2RlVVJJKCJodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1VURi04JTIzRGVzY3JpcHRpb24iKSAhPT0gImh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVVRGLTglMjNEZXNjcmlwdGlvbiIpIHsKICAkRVJST1IoJyUyMzQ6IGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVVRGLTglMjNEZXNjcmlwdGlvbicpOwp9CgogfQp9KTsKCg==","id":"S15.1.3.1_A4_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTUuMSIsCgpwYXRoOiAiMTUuMS4zLjEsIDE1LjIuNC43LCAxMi42LjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgcHJvcGVydHlJc0VudW1lcmFibGUsIGZvci1pbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChkZWNvZGVVUkkucHJvcGVydHlJc0VudW1lcmFibGUoJ2xlbmd0aCcpICE9PSBmYWxzZSkgewogICRFUlJPUignIzE6IGRlY29kZVVSSS5wcm9wZXJ0eUlzRW51bWVyYWJsZShcJ2xlbmd0aFwnKSA9PT0gZmFsc2UuIEFjdHVhbDogJyArIChkZWNvZGVVUkkucHJvcGVydHlJc0VudW1lcmFibGUoJ2xlbmd0aCcpKSk7Cn0KCi8vQ0hFQ0sjMgpyZXN1bHQgPSB0cnVlOwpmb3IgKHAgaW4gZGVjb2RlVVJJKXsKICBpZiAocCA9PT0gImxlbmd0aCIpIHsKICAgIHJlc3VsdCA9IGZhbHNlOwogIH0gIAp9CgppZiAocmVzdWx0ICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMjogcmVzdWx0ID0gdHJ1ZTsgZm9yIChwIGluIGRlY29kZVVSSSkgeyBpZiAocCA9PT0gImxlbmd0aCIpIHJlc3VsdCA9IGZhbHNlOyB9ICByZXN1bHQgPT09IHRydWU7Jyk7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.1_A5.1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTUuMiIsCgpwYXRoOiAiMTUuMS4zLjEsIDE1LjIuNC41LCAxMS40LjEiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgaGFzT3duUHJvcGVydHksIGRlbGV0ZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChkZWNvZGVVUkkuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpICE9PSB0cnVlKSB7CiAgJEZBSUwoJyMxOiBkZWNvZGVVUkkuaGFzT3duUHJvcGVydHkoXCdsZW5ndGhcJykgPT09IHRydWUuIEFjdHVhbDogJyArIChkZWNvZGVVUkkuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSk7Cn0KCmRlbGV0ZSBkZWNvZGVVUkkubGVuZ3RoOwoKLy9DSEVDSyMyCmlmIChkZWNvZGVVUkkuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMjogZGVsZXRlIGRlY29kZVVSSS5sZW5ndGg7IGRlY29kZVVSSS5oYXNPd25Qcm9wZXJ0eShcJ2xlbmd0aFwnKSA9PT0gdHJ1ZS4gQWN0dWFsOiAnICsgKGRlY29kZVVSSS5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKTsKfQoKLy9DSEVDSyMzCmlmIChkZWNvZGVVUkkubGVuZ3RoID09PSB1bmRlZmluZWQpIHsKICAkRVJST1IoJyMzOiBkZWxldGUgZGVjb2RlVVJJLmxlbmd0aDsgZGVjb2RlVVJJLmxlbmd0aCAhPT0gdW5kZWZpbmVkJyk7Cn0KCgoKCiB9Cn0pOwoK","id":"S15.1.3.1_A5.2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTUuMyIsCgpwYXRoOiAiMTUuMS4zLjEiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiB2YXJ5aW5nIHRoZSBsZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp2YXIgeCA9IGRlY29kZVVSSS5sZW5ndGg7CmRlY29kZVVSSS5sZW5ndGggPSBJbmZpbml0eTsKaWYgKGRlY29kZVVSSS5sZW5ndGggIT09IHgpIHsKICAkRVJST1IoJyMxOiB4ID0gZGVjb2RlVVJJLmxlbmd0aDsgZGVjb2RlVVJJLmxlbmd0aCA9IEluZmluaXR5OyBkZWNvZGVVUkkubGVuZ3RoID09PSB4LiBBY3R1YWw6ICcgKyAoZGVjb2RlVVJJLmxlbmd0aCkpOwp9CgoKIH0KfSk7Cgo=","id":"S15.1.3.1_A5.3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTUuNCIsCgpwYXRoOiAiMTUuMS4zLjEiLAoKZGVzY3JpcHRpb246ICJkZWNvZGVVUkkubGVuZ3RoID09PSAxIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKGRlY29kZVVSSS5sZW5ndGggIT09IDEpIHsKICAkRVJST1IoJyMxOiBkZWNvZGVVUkkubGVuZ3RoID09PSAxLiBBY3R1YWw6ICcgKyAoZGVjb2RlVVJJLmxlbmd0aCkpOwp9IAoKCiB9Cn0pOwoK","id":"S15.1.3.1_A5.4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTUuNSIsCgpwYXRoOiAiMTUuMS4zLjEsIDE1LjIuNC43LCAxMi42LjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgcHJvcGVydHlJc0VudW1lcmFibGUsIGZvci1pbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICh0aGlzLnByb3BlcnR5SXNFbnVtZXJhYmxlKCdkZWNvZGVVUkknKSAhPT0gZmFsc2UpIHsKICAkRVJST1IoJyMxOiB0aGlzLnByb3BlcnR5SXNFbnVtZXJhYmxlKFwnZGVjb2RlVVJJXCcpID09PSBmYWxzZS4gQWN0dWFsOiAnICsgKHRoaXMucHJvcGVydHlJc0VudW1lcmFibGUoJ2RlY29kZVVSSScpKSk7Cn0KCi8vQ0hFQ0sjMgpyZXN1bHQgPSB0cnVlOwpmb3IgKHAgaW4gdGhpcyl7CiAgaWYgKHAgPT09ICJkZWNvZGVVUkkiKSB7CiAgICByZXN1bHQgPSBmYWxzZTsKICB9ICAKfQoKaWYgKHJlc3VsdCAhPT0gdHJ1ZSkgewogICRFUlJPUignIzI6IHJlc3VsdCA9IHRydWU7IGZvciAocCBpbiB0aGlzKSB7IGlmIChwID09PSAiZGVjb2RlVVJJIikgcmVzdWx0ID0gZmFsc2U7IH0gIHJlc3VsdCA9PT0gdHJ1ZTsnKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.1_A5.5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTUuNiIsCgpwYXRoOiAiMTUuMS4zLjEiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBkZWNvZGVVUkkucHJvdG90eXBlIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKGRlY29kZVVSSS5wcm90b3R5cGUgIT09IHVuZGVmaW5lZCkgewogICRFUlJPUignIzE6IGRlY29kZVVSSS5wcm90b3R5cGUgPT09IHVuZGVmaW5lZC4gQWN0dWFsOiAnICsgKGRlY29kZVVSSS5wcm90b3R5cGUpKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.1_A5.6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTUuNyIsCgpwYXRoOiAiMTUuMS4zLjEsIDExLjIuMiIsCgpkZXNjcmlwdGlvbjogIklmIHByb3BlcnR5IGRvZXMgbm90IGltcGxlbWVudCB0aGUgaW50ZXJuYWwgW1tDb25zdHJ1Y3RdXSBtZXRob2QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCgp0cnkgewogIG5ldyBkZWNvZGVVUkkoKTsKICAkRVJST1IoJyMxLjE6IG5ldyBkZWNvZGVVUkkoKSB0aHJvdyBUeXBlRXJyb3IuIEFjdHVhbDogJyArIChuZXcgZGVjb2RlVVJJKCkpKTsKfSBjYXRjaCAoZSkgewogIGlmICgoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikgIT09IHRydWUpIHsKICAgICRFUlJPUignIzEuMjogbmV3IGRlY29kZVVSSSgpIHRocm93IFR5cGVFcnJvci4gQWN0dWFsOiAnICsgKGUpKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.1.3.1_A5.7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjFfQTZfVDEiLAoKcGF0aDogIjE1LjEuMy4xLCA5LjgsIDguNi4yLjYiLAoKZGVzY3JpcHRpb246ICJJZiBUeXBlKHZhbHVlKSBpcyBPYmplY3QsIGV2YWx1YXRlIFRvUHJpbWl0aXZlKHZhbHVlLCBTdHJpbmcpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4gIiU1RSJ9fTsKaWYgKGRlY29kZVVSSShvYmplY3QpICE9PSAiW29iamVjdCBPYmplY3RdIikgewogICRFUlJPUignIzE6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuICIlNUUifX07IGRlY29kZVVSSShvYmplY3QpID09PSBbb2JqZWN0IE9iamVjdF0uIEFjdHVhbDogJyArIChkZWNvZGVVUkkob2JqZWN0KSkpOwp9CgovL0NIRUNLIzIKdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4gIiJ9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuICIlNUUifX07CmlmIChkZWNvZGVVUkkob2JqZWN0KSAhPT0gIl4iKSB7CiAgJEVSUk9SKCcjMjogdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4gIiJ9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuICIlNUUifX07IGRlY29kZVVSSShvYmplY3QpID09PSAiXiIuIEFjdHVhbDogJyArIChkZWNvZGVVUkkob2JqZWN0KSkpOwp9IAoKLy9DSEVDSyMzCnZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuICIlNUUifSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiB7fX19OwppZiAoZGVjb2RlVVJJKG9iamVjdCkgIT09ICJeIikgewogICRFUlJPUignIzM6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuICIlNUUifSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiB7fX19OyBkZWNvZGVVUkkob2JqZWN0KSA9PT0gIl4iLiBBY3R1YWw6ICcgKyAoZGVjb2RlVVJJKG9iamVjdCkpKTsKfQoKLy9DSEVDSyM0CnRyeSB7CiAgdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHt0aHJvdyAiZXJyb3IifSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiAiJTVFIn19OwogIGlmIChkZWNvZGVVUkkob2JqZWN0KSAhPT0gIl4iKSB7CiAgICAkRVJST1IoJyM0LjE6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7dGhyb3cgImVycm9yIn0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4gIiU1RSJ9fTsgZGVjb2RlVVJJKG9iamVjdCkgPT09ICJeIi4gQWN0dWFsOiAnICsgKGRlY29kZVVSSShvYmplY3QpKSk7CiAgfQp9CmNhdGNoIChlKSB7CiAgaWYgKGUgPT09ICJlcnJvciIpIHsKICAgICRFUlJPUignIzQuMjogdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHt0aHJvdyAiZXJyb3IifSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiAiJTVFIn19OyBkZWNvZGVVUkkob2JqZWN0KSBub3QgdGhyb3cgImVycm9yIicpOwogIH0gZWxzZSB7CiAgICAkRVJST1IoJyM0LjM6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7dGhyb3cgImVycm9yIn0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4gIiU1RSJ9fTsgZGVjb2RlVVJJKG9iamVjdCkgbm90IHRocm93IEVycm9yLiBBY3R1YWw6ICcgKyAoZSkpOwogIH0KfQoKLy9DSEVDSyM1CnZhciBvYmplY3QgPSB7dG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiAiJTVFIn19OwppZiAoZGVjb2RlVVJJKG9iamVjdCkgIT09ICJeIikgewogICRFUlJPUignIzU6IHZhciBvYmplY3QgPSB7dG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiAiJTVFIn19OyBkZWNvZGVVUkkob2JqZWN0KSA9PT0gIl4iLiBBY3R1YWw6ICcgKyAoZGVjb2RlVVJJKG9iamVjdCkpKTsKfQoKLy9DSEVDSyM2CnZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuIHt9fSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiAiJTVFIn19CmlmIChkZWNvZGVVUkkob2JqZWN0KSAhPT0gIl4iKSB7CiAgJEVSUk9SKCcjNjogdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4ge319LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuICIlNUUifX07IGRlY29kZVVSSShvYmplY3QpID09PSAiXiIuIEFjdHVhbDogJyArIChkZWNvZGVVUkkob2JqZWN0KSkpOwp9CgovL0NIRUNLIzcKdHJ5IHsKICB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiAiJTVFIn0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHt0aHJvdyAiZXJyb3IifX07CiAgZGVjb2RlVVJJKG9iamVjdCk7CiAgJEVSUk9SKCcjNy4xOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiAiJTVFIn0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHt0aHJvdyAiZXJyb3IifX07IGRlY29kZVVSSShvYmplY3QpIHRocm93ICJlcnJvciIuIEFjdHVhbDogJyArIChkZWNvZGVVUkkob2JqZWN0KSkpOwp9ICAKY2F0Y2ggKGUpIHsKICBpZiAoZSAhPT0gImVycm9yIikgewogICAgJEVSUk9SKCcjNy4yOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiAiJTVFIn0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHt0aHJvdyAiZXJyb3IifX07IGRlY29kZVVSSShvYmplY3QpIHRocm93ICJlcnJvciIuIEFjdHVhbDogJyArIChlKSk7CiAgfSAKfQoKLy9DSEVDSyM4CnRyeSB7CiAgdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4ge319LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIHt9fX07CiAgZGVjb2RlVVJJKG9iamVjdCk7CiAgJEVSUk9SKCcjOC4xOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiB7fX0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4ge319fTsgZGVjb2RlVVJJKG9iamVjdCkgdGhyb3cgVHlwZUVycm9yLiBBY3R1YWw6ICcgKyAoZGVjb2RlVVJJKG9iamVjdCkpKTsKfSAgCmNhdGNoIChlKSB7CiAgaWYgKChlIGluc3RhbmNlb2YgVHlwZUVycm9yKSAhPT0gdHJ1ZSkgewogICAgJEVSUk9SKCcjOC4yOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiB7fX0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4ge319fTsgZGVjb2RlVVJJKG9iamVjdCkgdGhyb3cgVHlwZUVycm9yLiBBY3R1YWw6ICcgKyAoZSkpOwogIH0gCn0KCiB9Cn0pOwoK","id":"S15.1.3.1_A6_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuMTBfVDEiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSwpyZXN1bHQgPSB0cnVlOwp2YXIgaW50ZXJ2YWwgPSBbWzB4MDAsIDB4MjldLCBbMHg0MCwweDQwXSwgWzB4NDcsIDB4NjBdLCBbMHg2NywgMHhGRkZGXV07CmZvciAoaW5kZXhJID0gMDsgaW5kZXhJIDwgaW50ZXJ2YWwubGVuZ3RoOyBpbmRleEkrKykgewogIGZvciAoaW5kZXhKID0gaW50ZXJ2YWxbaW5kZXhJXVswXTsgaW5kZXhKIDw9IGludGVydmFsW2luZGV4SV1bMV07IGluZGV4SisrKSB7CiAgICB0cnkgewogICAgICBkZWNvZGVVUklDb21wb25lbnQoIiVDMCUiICsgU3RyaW5nLmZyb21DaGFyQ29kZShpbmRleEosIGluZGV4SikpOwogICAgICByZXN1bHQgPSBmYWxzZTsgICAgICAKICAgIH0gY2F0Y2ggKGUpIHsgICAKICAgICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpICE9PSB0cnVlKSB7CiAgICAgICAgcmVzdWx0ID0gZmFsc2U7ICAgICAgICAKICAgICAgfQogICAgfSAgICAgIAogIH0gIAp9ICAKCmlmIChyZXN1bHQgIT09IHRydWUpIHsgICAgCiAgJEVSUk9SKCcjMTogSWYgQiA9IDExMHh4eHh4IChuID0gMikgYW5kIChzdHJpbmcuY2hhckF0KGsgKyA0KSBhbmQgIHN0cmluZy5jaGFyQXQoayArIDUpKSBkbyBub3QgcmVwcmVzZW50IGhleGFkZWNpbWFsIGRpZ2l0cywgdGhyb3cgVVJJRXJyb3InKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.2_A1.10_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuMTFfVDEiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cywgc3RyaW5nLmNoYXJBdChrICsgNCkgYW5kIHN0cmluZy5jaGFyQXQoayArIDUpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLCnJlc3VsdCA9IHRydWU7CnZhciBpbnRlcnZhbCA9IFtbMHgwMCwgMHgyOV0sIFsweDQwLDB4NDBdLCBbMHg0NywgMHg2MF0sIFsweDY3LCAweEZGRkZdXTsKZm9yIChpbmRleEkgPSAwOyBpbmRleEkgPCBpbnRlcnZhbC5sZW5ndGg7IGluZGV4SSsrKSB7CiAgZm9yIChpbmRleEogPSBpbnRlcnZhbFtpbmRleEldWzBdOyBpbmRleEogPD0gaW50ZXJ2YWxbaW5kZXhJXVsxXTsgaW5kZXhKKyspIHsKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSUNvbXBvbmVudCgiJUUwJSIgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGluZGV4SiwgaW5kZXhKKSArICIlQTAiKTsKICAgICAgcmVzdWx0ID0gZmFsc2U7ICAgICAgCiAgICB9IGNhdGNoIChlKSB7ICAgCiAgICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSAhPT0gdHJ1ZSkgewogICAgICAgIHJlc3VsdCA9IGZhbHNlOyAgICAgICAgCiAgICAgIH0KICAgIH0gICAgICAKICB9ICAKfSAgCgppZiAocmVzdWx0ICE9PSB0cnVlKSB7ICAgIAogICRFUlJPUignIzE6IElmIEIgPSAxMTEweHh4eCAobiA9IDMpIGFuZCAoc3RyaW5nLmNoYXJBdChrICsgNCkgYW5kICBzdHJpbmcuY2hhckF0KGsgKyA1KSkgZG8gbm90IHJlcHJlc2VudCBoZXhhZGVjaW1hbCBkaWdpdHMsIHRocm93IFVSSUVycm9yJyk7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.2_A1.11_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuMTFfVDIiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cywgc3RyaW5nLmNoYXJBdChrICsgNykgYW5kIHN0cmluZy5jaGFyQXQoayArIDgpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLCnJlc3VsdCA9IHRydWU7CnZhciBpbnRlcnZhbCA9IFtbMHgwMCwgMHgyOV0sIFsweDQwLDB4NDBdLCBbMHg0NywgMHg2MF0sIFsweDY3LCAweEZGRkZdXTsKZm9yIChpbmRleEkgPSAwOyBpbmRleEkgPCBpbnRlcnZhbC5sZW5ndGg7IGluZGV4SSsrKSB7CiAgZm9yIChpbmRleEogPSBpbnRlcnZhbFtpbmRleEldWzBdOyBpbmRleEogPD0gaW50ZXJ2YWxbaW5kZXhJXVsxXTsgaW5kZXhKKyspIHsKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSUNvbXBvbmVudCgiJUUwJSIgKyAiJUEwIiArIFN0cmluZy5mcm9tQ2hhckNvZGUoaW5kZXhKLCBpbmRleEopKTsKICAgICAgcmVzdWx0ID0gZmFsc2U7ICAgICAgCiAgICB9IGNhdGNoIChlKSB7ICAgCiAgICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSAhPT0gdHJ1ZSkgewogICAgICAgIHJlc3VsdCA9IGZhbHNlOyAgICAgICAgCiAgICAgIH0KICAgIH0gICAgICAKICB9ICAKfSAgCgppZiAocmVzdWx0ICE9PSB0cnVlKSB7ICAgIAogICRFUlJPUignIzE6IElmIEIgPSAxMTEweHh4eCAobiA9IDMpIGFuZCAoc3RyaW5nLmNoYXJBdChrICsgNykgYW5kICBzdHJpbmcuY2hhckF0KGsgKyA4KSkgZG8gbm90IHJlcHJlc2VudCBoZXhhZGVjaW1hbCBkaWdpdHMsIHRocm93IFVSSUVycm9yJyk7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.2_A1.11_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuMTJfVDEiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cywgc3RyaW5nLmNoYXJBdChrICsgNCkgYW5kIHN0cmluZy5jaGFyQXQoayArIDUpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLCnJlc3VsdCA9IHRydWU7CnZhciBpbnRlcnZhbCA9IFtbMHgwMCwgMHgyOV0sIFsweDQwLDB4NDBdLCBbMHg0NywgMHg2MF0sIFsweDY3LCAweEZGRkZdXTsKZm9yIChpbmRleEkgPSAwOyBpbmRleEkgPCBpbnRlcnZhbC5sZW5ndGg7IGluZGV4SSsrKSB7CiAgZm9yIChpbmRleEogPSBpbnRlcnZhbFtpbmRleEldWzBdOyBpbmRleEogPD0gaW50ZXJ2YWxbaW5kZXhJXVsxXTsgaW5kZXhKKyspIHsKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSUNvbXBvbmVudCgiJUYwJSIgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGluZGV4SiwgaW5kZXhKKSArICIlQTAlQTAiKTsKICAgICAgcmVzdWx0ID0gZmFsc2U7ICAgICAgCiAgICB9IGNhdGNoIChlKSB7ICAgCiAgICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSAhPT0gdHJ1ZSkgewogICAgICAgIHJlc3VsdCA9IGZhbHNlOyAgICAgICAgCiAgICAgIH0KICAgIH0gICAgICAKICB9ICAKfSAgCgppZiAocmVzdWx0ICE9PSB0cnVlKSB7ICAgIAogICRFUlJPUignIzE6IElmIEIgPSAxMTExMHh4eCAobiA9IDQpIGFuZCAoc3RyaW5nLmNoYXJBdChrICsgNCkgYW5kIHN0cmluZy5jaGFyQXQoayArIDUpKSBkbyBub3QgcmVwcmVzZW50IGhleGFkZWNpbWFsIGRpZ2l0cywgdGhyb3cgVVJJRXJyb3InKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.2_A1.12_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuMTJfVDIiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cywgc3RyaW5nLmNoYXJBdChrICsgNykgYW5kIHN0cmluZy5jaGFyQXQoayArIDcpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLCnJlc3VsdCA9IHRydWU7CnZhciBpbnRlcnZhbCA9IFtbMHgwMCwgMHgyOV0sIFsweDQwLDB4NDBdLCBbMHg0NywgMHg2MF0sIFsweDY3LCAweEZGRkZdXTsKZm9yIChpbmRleEkgPSAwOyBpbmRleEkgPCBpbnRlcnZhbC5sZW5ndGg7IGluZGV4SSsrKSB7CiAgZm9yIChpbmRleEogPSBpbnRlcnZhbFtpbmRleEldWzBdOyBpbmRleEogPD0gaW50ZXJ2YWxbaW5kZXhJXVsxXTsgaW5kZXhKKyspIHsKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSUNvbXBvbmVudCgiJUYwJSIgKyAiJUEwIiArIFN0cmluZy5mcm9tQ2hhckNvZGUoaW5kZXhKLCBpbmRleEopICsgIiVBMCIpOwogICAgICByZXN1bHQgPSBmYWxzZTsgICAgICAKICAgIH0gY2F0Y2ggKGUpIHsgICAKICAgICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpICE9PSB0cnVlKSB7CiAgICAgICAgcmVzdWx0ID0gZmFsc2U7ICAgICAgICAKICAgICAgfQogICAgfSAgICAgIAogIH0gIAp9ICAKCmlmIChyZXN1bHQgIT09IHRydWUpIHsgICAgCiAgJEVSUk9SKCcjMTogSWYgQiA9IDExMTEweHh4IChuID0gNCkgYW5kIChzdHJpbmcuY2hhckF0KGsgKyA3KSBhbmQgc3RyaW5nLmNoYXJBdChrICsgOCkpIGRvIG5vdCByZXByZXNlbnQgaGV4YWRlY2ltYWwgZGlnaXRzLCB0aHJvdyBVUklFcnJvcicpOwp9CgogfQp9KTsKCg==","id":"S15.1.3.2_A1.12_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuMTJfVDMiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cywgc3RyaW5nLmNoYXJBdChrICsgMTApIGFuZCBzdHJpbmcuY2hhckF0KGsgKyAxMSkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sKcmVzdWx0ID0gdHJ1ZTsKdmFyIGludGVydmFsID0gW1sweDAwLCAweDI5XSwgWzB4NDAsMHg0MF0sIFsweDQ3LCAweDYwXSwgWzB4NjcsIDB4RkZGRl1dOwpmb3IgKGluZGV4SSA9IDA7IGluZGV4SSA8IGludGVydmFsLmxlbmd0aDsgaW5kZXhJKyspIHsKICBmb3IgKGluZGV4SiA9IGludGVydmFsW2luZGV4SV1bMF07IGluZGV4SiA8PSBpbnRlcnZhbFtpbmRleEldWzFdOyBpbmRleEorKykgewogICAgdHJ5IHsKICAgICAgZGVjb2RlVVJJQ29tcG9uZW50KCIlRjAlIiArICIlQTAlQTAiICsgU3RyaW5nLmZyb21DaGFyQ29kZShpbmRleEosIGluZGV4SikpOwogICAgICByZXN1bHQgPSBmYWxzZTsgICAgICAKICAgIH0gY2F0Y2ggKGUpIHsgICAKICAgICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpICE9PSB0cnVlKSB7CiAgICAgICAgcmVzdWx0ID0gZmFsc2U7ICAgICAgICAKICAgICAgfQogICAgfSAgICAgIAogIH0gIAp9ICAKCmlmIChyZXN1bHQgIT09IHRydWUpIHsgICAgCiAgJEVSUk9SKCcjMTogSWYgQiA9IDExMTEweHh4IChuID0gNCkgYW5kIChzdHJpbmcuY2hhckF0KGsgKyAxMCkgYW5kIHN0cmluZy5jaGFyQXQoayArIDExKSkgZG8gbm90IHJlcHJlc2VudCBoZXhhZGVjaW1hbCBkaWdpdHMsIHRocm93IFVSSUVycm9yJyk7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.2_A1.12_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuMTNfVDEiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cy4gQiA9IFsweEMwIC0gMHhERl0sIEMgPSBbMHgwMCwgMHg3Rl0iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGVycm9yQ291bnQgPSAwOwpjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwoKZm9yIChpbmRleEIgPSAweEMwOyBpbmRleEIgPD0gMHhERjsgaW5kZXhCKyspIHsKICBjb3VudCsrOyAKICBoZXhCID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Qik7ICAKICByZXN1bHQgPSB0cnVlOwogIGZvciAoaW5kZXhDID0gMHgwMDsgaW5kZXhDIDw9IDB4N0Y7IGluZGV4QysrKSB7CiAgICBoZXhDID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Qyk7ICAKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSUNvbXBvbmVudCgiJSIgKyBoZXhCLnN1YnN0cmluZygyKSArICIlIiArIGhleEMuc3Vic3RyaW5nKDIpKTsKICAgIH0gY2F0Y2ggKGUpIHsgCiAgICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSA9PT0gdHJ1ZSkgY29udGludWU7ICAgICAgICAgICAgICAgIAogICAgfQogICAgcmVzdWx0ID0gZmFsc2U7CiAgfQogIGlmIChyZXN1bHQgIT09IHRydWUpIHsKICAgIGlmIChpbmRleE8gPT09IDApIHsgCiAgICAgIGluZGV4TyA9IGluZGV4QjsKICAgIH0gZWxzZSB7CiAgICAgIGlmICgoaW5kZXhCIC0gaW5kZXhQKSAhPT0gMSkgeyAgICAgICAgICAgICAKICAgICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgICB9IAogICAgICAgIGVsc2UgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICAgICAgICB9ICAKICAgICAgICBpbmRleE8gPSBpbmRleEI7CiAgICAgIH0gICAgICAgICAKICAgIH0KICAgIGluZGV4UCA9IGluZGV4QjsKICAgIGVycm9yQ291bnQrKzsgICAgICAgCiAgfQp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.2_A1.13_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuMTNfVDIiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cy4gQiA9IFsweEMwIC0gMHhERl0sIEMgPSBbMHhDMCwgMHhGRl0iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGVycm9yQ291bnQgPSAwOwpjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwoKZm9yIChpbmRleEIgPSAweEMwOyBpbmRleEIgPD0gMHhERjsgaW5kZXhCKyspIHsKICBjb3VudCsrOyAKICBoZXhCID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Qik7ICAKICByZXN1bHQgPSB0cnVlOwogIGZvciAoaW5kZXhDID0gMHhDMDsgaW5kZXhDIDw9IDB4RkY7IGluZGV4QysrKSB7CiAgICBoZXhDID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Qyk7ICAKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSUNvbXBvbmVudCgiJSIgKyBoZXhCLnN1YnN0cmluZygyKSArICIlIiArIGhleEMuc3Vic3RyaW5nKDIpKTsKICAgIH0gY2F0Y2ggKGUpIHsgCiAgICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSA9PT0gdHJ1ZSkgY29udGludWU7ICAgICAgICAgICAgICAgIAogICAgfQogICAgcmVzdWx0ID0gZmFsc2U7CiAgfQogIGlmIChyZXN1bHQgIT09IHRydWUpIHsKICAgIGlmIChpbmRleE8gPT09IDApIHsgCiAgICAgIGluZGV4TyA9IGluZGV4QjsKICAgIH0gZWxzZSB7CiAgICAgIGlmICgoaW5kZXhCIC0gaW5kZXhQKSAhPT0gMSkgeyAgICAgICAgICAgICAKICAgICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgICB9IAogICAgICAgIGVsc2UgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICAgICAgICB9ICAKICAgICAgICBpbmRleE8gPSBpbmRleEI7CiAgICAgIH0gICAgICAgICAKICAgIH0KICAgIGluZGV4UCA9IGluZGV4QjsKICAgIGVycm9yQ291bnQrKzsgICAgICAgCiAgfQp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.2_A1.13_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuMTRfVDEiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cy4gQiA9IFsweEUwIC0gMHhFRl0sIEMgPSBbMHgwMCwgMHg3Rl0iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGVycm9yQ291bnQgPSAwOwpjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwoKZm9yIChpbmRleEIgPSAweEUwOyBpbmRleEIgPD0gMHhFRjsgaW5kZXhCKyspIHsKICBjb3VudCsrOyAKICBoZXhCID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Qik7IAogIHJlc3VsdCA9IHRydWU7CiAgZm9yIChpbmRleEMgPSAweDAwOyBpbmRleEMgPD0gMHg3RjsgaW5kZXhDKyspIHsKICAgIGhleEMgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhDKTsgIAogICAgdHJ5IHsKICAgICAgZGVjb2RlVVJJQ29tcG9uZW50KCIlIiArIGhleEIuc3Vic3RyaW5nKDIpICsgIiUiICsgaGV4Qy5zdWJzdHJpbmcoMikgKyAiJUEwIik7CiAgICB9IGNhdGNoIChlKSB7IAogICAgICBpZiAoKGUgaW5zdGFuY2VvZiBVUklFcnJvcikgPT09IHRydWUpIGNvbnRpbnVlOyAgICAgICAgICAgICAgICAKICAgIH0KICAgIHJlc3VsdCA9IGZhbHNlOwogIH0KICBpZiAocmVzdWx0ICE9PSB0cnVlKSB7CiAgICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgICBpbmRleE8gPSBpbmRleEI7CiAgICB9IGVsc2UgewogICAgICBpZiAoKGluZGV4QiAtIGluZGV4UCkgIT09IDEpIHsgICAgICAgICAgICAgCiAgICAgICAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICAgICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgICAgICAgfSAKICAgICAgICBlbHNlIHsKICAgICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgICAgfSAgCiAgICAgICAgaW5kZXhPID0gaW5kZXhCOwogICAgICB9ICAgICAgICAgCiAgICB9CiAgICBpbmRleFAgPSBpbmRleEI7CiAgICBlcnJvckNvdW50Kys7ICAgICAgIAogIH0KfQoKaWYgKGVycm9yQ291bnQgPiAwKSB7CiAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgfSBlbHNlIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgfSAgICAgCiAgJEVSUk9SKCdUb3RhbCBlcnJvcjogJyArIGVycm9yQ291bnQgKyAnIGJhZCBVbmljb2RlIGNoYXJhY3RlciBpbiAnICsgY291bnQgKyAnICcpOwp9CgpmdW5jdGlvbiBkZWNpbWFsVG9IZXhTdHJpbmcobikgewogIG4gPSBOdW1iZXIobik7CiAgdmFyIGggPSAiIjsKICBmb3IgKHZhciBpID0gMzsgaSA+PSAwOyBpLS0pIHsKICAgIGlmIChuID49IE1hdGgucG93KDE2LCBpKSkgewogICAgICB2YXIgdCA9IE1hdGguZmxvb3IobiAvIE1hdGgucG93KDE2LCBpKSk7CiAgICAgIG4gLT0gdCAqIE1hdGgucG93KDE2LCBpKTsKICAgICAgaWYgKCB0ID49IDEwICkgewogICAgICAgIGlmICggdCA9PSAxMCApIHsgaCArPSAiQSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTEgKSB7IGggKz0gIkIiOyB9CiAgICAgICAgaWYgKCB0ID09IDEyICkgeyBoICs9ICJDIjsgfQogICAgICAgIGlmICggdCA9PSAxMyApIHsgaCArPSAiRCI7IH0KICAgICAgICBpZiAoIHQgPT0gMTQgKSB7IGggKz0gIkUiOyB9CiAgICAgICAgaWYgKCB0ID09IDE1ICkgeyBoICs9ICJGIjsgfQogICAgICB9IGVsc2UgewogICAgICAgIGggKz0gU3RyaW5nKHQpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBoICs9ICIwIjsKICAgIH0KICB9CiAgcmV0dXJuIGg7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.2_A1.14_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuMTRfVDIiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cy4gQiA9IFsweEUwIC0gMHhFRl0sIEMgPSBbMHgwMCwgMHg3Rl0iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGVycm9yQ291bnQgPSAwOwpjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwoKZm9yIChpbmRleEIgPSAweEUwOyBpbmRleEIgPD0gMHhFRjsgaW5kZXhCKyspIHsKICBjb3VudCsrOyAKICBoZXhCID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Qik7ICAKICByZXN1bHQgPSB0cnVlOwogIGZvciAoaW5kZXhDID0gMHgwMDsgaW5kZXhDIDw9IDB4N0Y7IGluZGV4QysrKSB7CiAgICBoZXhDID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Qyk7ICAKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSUNvbXBvbmVudCgiJSIgKyBoZXhCLnN1YnN0cmluZygyKSArICIlQTAiICsgIiUiICsgaGV4Qy5zdWJzdHJpbmcoMikpOwogICAgfSBjYXRjaCAoZSkgeyAKICAgICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpID09PSB0cnVlKSBjb250aW51ZTsgICAgICAgICAgICAgICAgCiAgICB9CiAgICByZXN1bHQgPSBmYWxzZTsKICB9CiAgaWYgKHJlc3VsdCAhPT0gdHJ1ZSkgewogICAgaWYgKGluZGV4TyA9PT0gMCkgeyAKICAgICAgaW5kZXhPID0gaW5kZXhCOwogICAgfSBlbHNlIHsKICAgICAgaWYgKChpbmRleEIgLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gCiAgICAgICAgZWxzZSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gIAogICAgICAgIGluZGV4TyA9IGluZGV4QjsKICAgICAgfSAgICAgICAgIAogICAgfQogICAgaW5kZXhQID0gaW5kZXhCOwogICAgZXJyb3JDb3VudCsrOyAgICAgICAKICB9Cn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.2_A1.14_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuMTRfVDMiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cy4gQiA9IFsweEUwIC0gMHhFRl0sIEMgPSBbMHhDMCwgMHhGRl0iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGVycm9yQ291bnQgPSAwOwpjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwoKZm9yIChpbmRleEIgPSAweEUwOyBpbmRleEIgPD0gMHhFRjsgaW5kZXhCKyspIHsKICBjb3VudCsrOyAKICBoZXhCID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Qik7IAogIHJlc3VsdCA9IHRydWU7CiAgZm9yIChpbmRleEMgPSAweEMwOyBpbmRleEMgPD0gMHhGRjsgaW5kZXhDKyspIHsKICAgIGhleEMgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhDKTsgIAogICAgdHJ5IHsKICAgICAgZGVjb2RlVVJJQ29tcG9uZW50KCIlIiArIGhleEIuc3Vic3RyaW5nKDIpICsgIiUiICsgaGV4Qy5zdWJzdHJpbmcoMikgKyAiJUEwIik7CiAgICB9IGNhdGNoIChlKSB7IAogICAgICBpZiAoKGUgaW5zdGFuY2VvZiBVUklFcnJvcikgPT09IHRydWUpIGNvbnRpbnVlOyAgICAgICAgICAgICAgICAKICAgIH0KICAgIHJlc3VsdCA9IGZhbHNlOwogIH0KICBpZiAocmVzdWx0ICE9PSB0cnVlKSB7CiAgICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgICBpbmRleE8gPSBpbmRleEI7CiAgICB9IGVsc2UgewogICAgICBpZiAoKGluZGV4QiAtIGluZGV4UCkgIT09IDEpIHsgICAgICAgICAgICAgCiAgICAgICAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICAgICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgICAgICAgfSAKICAgICAgICBlbHNlIHsKICAgICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgICAgfSAgCiAgICAgICAgaW5kZXhPID0gaW5kZXhCOwogICAgICB9ICAgICAgICAgCiAgICB9CiAgICBpbmRleFAgPSBpbmRleEI7CiAgICBlcnJvckNvdW50Kys7ICAgICAgIAogIH0KfQoKaWYgKGVycm9yQ291bnQgPiAwKSB7CiAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgfSBlbHNlIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgfSAgICAgCiAgJEVSUk9SKCdUb3RhbCBlcnJvcjogJyArIGVycm9yQ291bnQgKyAnIGJhZCBVbmljb2RlIGNoYXJhY3RlciBpbiAnICsgY291bnQgKyAnICcpOwp9CgpmdW5jdGlvbiBkZWNpbWFsVG9IZXhTdHJpbmcobikgewogIG4gPSBOdW1iZXIobik7CiAgdmFyIGggPSAiIjsKICBmb3IgKHZhciBpID0gMzsgaSA+PSAwOyBpLS0pIHsKICAgIGlmIChuID49IE1hdGgucG93KDE2LCBpKSkgewogICAgICB2YXIgdCA9IE1hdGguZmxvb3IobiAvIE1hdGgucG93KDE2LCBpKSk7CiAgICAgIG4gLT0gdCAqIE1hdGgucG93KDE2LCBpKTsKICAgICAgaWYgKCB0ID49IDEwICkgewogICAgICAgIGlmICggdCA9PSAxMCApIHsgaCArPSAiQSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTEgKSB7IGggKz0gIkIiOyB9CiAgICAgICAgaWYgKCB0ID09IDEyICkgeyBoICs9ICJDIjsgfQogICAgICAgIGlmICggdCA9PSAxMyApIHsgaCArPSAiRCI7IH0KICAgICAgICBpZiAoIHQgPT0gMTQgKSB7IGggKz0gIkUiOyB9CiAgICAgICAgaWYgKCB0ID09IDE1ICkgeyBoICs9ICJGIjsgfQogICAgICB9IGVsc2UgewogICAgICAgIGggKz0gU3RyaW5nKHQpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBoICs9ICIwIjsKICAgIH0KICB9CiAgcmV0dXJuIGg7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.2_A1.14_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuMTRfVDQiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cy4gQiA9IFsweEUwIC0gMHhFRl0sIEMgPSBbMHhDMCwgMHhGRl0iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGVycm9yQ291bnQgPSAwOwpjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwoKZm9yIChpbmRleEIgPSAweEUwOyBpbmRleEIgPD0gMHhFRjsgaW5kZXhCKyspIHsKICBjb3VudCsrOyAKICBoZXhCID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Qik7ICAKICByZXN1bHQgPSB0cnVlOwogIGZvciAoaW5kZXhDID0gMHhDMDsgaW5kZXhDIDw9IDB4RkY7IGluZGV4QysrKSB7CiAgICBoZXhDID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Qyk7ICAKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSUNvbXBvbmVudCgiJSIgKyBoZXhCLnN1YnN0cmluZygyKSArICIlQTAiICsgIiUiICsgaGV4Qy5zdWJzdHJpbmcoMikpOwogICAgfSBjYXRjaCAoZSkgeyAKICAgICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpID09PSB0cnVlKSBjb250aW51ZTsgICAgICAgICAgICAgICAgCiAgICB9CiAgICByZXN1bHQgPSBmYWxzZTsKICB9CiAgaWYgKHJlc3VsdCAhPT0gdHJ1ZSkgewogICAgaWYgKGluZGV4TyA9PT0gMCkgeyAKICAgICAgaW5kZXhPID0gaW5kZXhCOwogICAgfSBlbHNlIHsKICAgICAgaWYgKChpbmRleEIgLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gCiAgICAgICAgZWxzZSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gIAogICAgICAgIGluZGV4TyA9IGluZGV4QjsKICAgICAgfSAgICAgICAgIAogICAgfQogICAgaW5kZXhQID0gaW5kZXhCOwogICAgZXJyb3JDb3VudCsrOyAgICAgICAKICB9Cn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.2_A1.14_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuMTVfVDEiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cy4gQiA9IFsweEYwIC0gMHgwRjddLCBDID0gWzB4MDAsIDB4N0ZdIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBlcnJvckNvdW50ID0gMDsKY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmZvciAoaW5kZXhCID0gMHhGMDsgaW5kZXhCIDw9IDB4Rjc7IGluZGV4QisrKSB7CiAgY291bnQrKzsgCiAgaGV4QiA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEIpOyAKICByZXN1bHQgPSB0cnVlOwogIGZvciAoaW5kZXhDID0gMHgwMDsgaW5kZXhDIDw9IDB4N0Y7IGluZGV4QysrKSB7CiAgICBoZXhDID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Qyk7ICAKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSUNvbXBvbmVudCgiJSIgKyBoZXhCLnN1YnN0cmluZygyKSArICIlIiArIGhleEMuc3Vic3RyaW5nKDIpICsgIiVBMCVBMCIpOwogICAgfSBjYXRjaCAoZSkgeyAKICAgICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpID09PSB0cnVlKSBjb250aW51ZTsgICAgICAgICAgICAgICAgCiAgICB9CiAgICByZXN1bHQgPSBmYWxzZTsKICB9CiAgaWYgKHJlc3VsdCAhPT0gdHJ1ZSkgewogICAgaWYgKGluZGV4TyA9PT0gMCkgeyAKICAgICAgaW5kZXhPID0gaW5kZXhCOwogICAgfSBlbHNlIHsKICAgICAgaWYgKChpbmRleEIgLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gCiAgICAgICAgZWxzZSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gIAogICAgICAgIGluZGV4TyA9IGluZGV4QjsKICAgICAgfSAgICAgICAgIAogICAgfQogICAgaW5kZXhQID0gaW5kZXhCOwogICAgZXJyb3JDb3VudCsrOyAgICAgICAKICB9Cn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.2_A1.15_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuMTVfVDIiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cy4gQiA9IFsweEYwIC0gMHgwRjddLCBDID0gWzB4MDAsIDB4N0ZdIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBlcnJvckNvdW50ID0gMDsKY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmZvciAoaW5kZXhCID0gMHhGMDsgaW5kZXhCIDw9IDB4Rjc7IGluZGV4QisrKSB7CiAgY291bnQrKzsgCiAgaGV4QiA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEIpOyAKICByZXN1bHQgPSB0cnVlOwogIGZvciAoaW5kZXhDID0gMHgwMDsgaW5kZXhDIDw9IDB4N0Y7IGluZGV4QysrKSB7CiAgICBoZXhDID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Qyk7ICAKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSUNvbXBvbmVudCgiJSIgKyBoZXhCLnN1YnN0cmluZygyKSArICIlQTAiICsgIiUiICsgaGV4Qy5zdWJzdHJpbmcoMikgKyAiJUEwIik7CiAgICB9IGNhdGNoIChlKSB7IAogICAgICBpZiAoKGUgaW5zdGFuY2VvZiBVUklFcnJvcikgPT09IHRydWUpIGNvbnRpbnVlOyAgICAgICAgICAgICAgICAKICAgIH0KICAgIHJlc3VsdCA9IGZhbHNlOwogIH0KICBpZiAocmVzdWx0ICE9PSB0cnVlKSB7CiAgICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgICBpbmRleE8gPSBpbmRleEI7CiAgICB9IGVsc2UgewogICAgICBpZiAoKGluZGV4QiAtIGluZGV4UCkgIT09IDEpIHsgICAgICAgICAgICAgCiAgICAgICAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICAgICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgICAgICAgfSAKICAgICAgICBlbHNlIHsKICAgICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgICAgfSAgCiAgICAgICAgaW5kZXhPID0gaW5kZXhCOwogICAgICB9ICAgICAgICAgCiAgICB9CiAgICBpbmRleFAgPSBpbmRleEI7CiAgICBlcnJvckNvdW50Kys7ICAgICAgIAogIH0KfQoKaWYgKGVycm9yQ291bnQgPiAwKSB7CiAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgfSBlbHNlIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgfSAgICAgCiAgJEVSUk9SKCdUb3RhbCBlcnJvcjogJyArIGVycm9yQ291bnQgKyAnIGJhZCBVbmljb2RlIGNoYXJhY3RlciBpbiAnICsgY291bnQgKyAnICcpOwp9CgpmdW5jdGlvbiBkZWNpbWFsVG9IZXhTdHJpbmcobikgewogIG4gPSBOdW1iZXIobik7CiAgdmFyIGggPSAiIjsKICBmb3IgKHZhciBpID0gMzsgaSA+PSAwOyBpLS0pIHsKICAgIGlmIChuID49IE1hdGgucG93KDE2LCBpKSkgewogICAgICB2YXIgdCA9IE1hdGguZmxvb3IobiAvIE1hdGgucG93KDE2LCBpKSk7CiAgICAgIG4gLT0gdCAqIE1hdGgucG93KDE2LCBpKTsKICAgICAgaWYgKCB0ID49IDEwICkgewogICAgICAgIGlmICggdCA9PSAxMCApIHsgaCArPSAiQSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTEgKSB7IGggKz0gIkIiOyB9CiAgICAgICAgaWYgKCB0ID09IDEyICkgeyBoICs9ICJDIjsgfQogICAgICAgIGlmICggdCA9PSAxMyApIHsgaCArPSAiRCI7IH0KICAgICAgICBpZiAoIHQgPT0gMTQgKSB7IGggKz0gIkUiOyB9CiAgICAgICAgaWYgKCB0ID09IDE1ICkgeyBoICs9ICJGIjsgfQogICAgICB9IGVsc2UgewogICAgICAgIGggKz0gU3RyaW5nKHQpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBoICs9ICIwIjsKICAgIH0KICB9CiAgcmV0dXJuIGg7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.2_A1.15_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuMTVfVDMiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cy4gQiA9IFsweEYwIC0gMHgwRjddLCBDID0gWzB4MDAsIDB4N0ZdIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBlcnJvckNvdW50ID0gMDsKY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmZvciAoaW5kZXhCID0gMHhGMDsgaW5kZXhCIDw9IDB4Rjc7IGluZGV4QisrKSB7CiAgY291bnQrKzsgCiAgaGV4QiA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEIpOyAKICByZXN1bHQgPSB0cnVlOwogIGZvciAoaW5kZXhDID0gMHgwMDsgaW5kZXhDIDw9IDB4N0Y7IGluZGV4QysrKSB7CiAgICBoZXhDID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Qyk7ICAKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSUNvbXBvbmVudCgiJSIgKyBoZXhCLnN1YnN0cmluZygyKSArICIlQTAlQTAiICsgIiUiICsgaGV4Qy5zdWJzdHJpbmcoMikpOwogICAgfSBjYXRjaCAoZSkgeyAKICAgICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpID09PSB0cnVlKSBjb250aW51ZTsgICAgICAgICAgICAgICAgCiAgICB9CiAgICByZXN1bHQgPSBmYWxzZTsKICB9CiAgaWYgKHJlc3VsdCAhPT0gdHJ1ZSkgewogICAgaWYgKGluZGV4TyA9PT0gMCkgeyAKICAgICAgaW5kZXhPID0gaW5kZXhCOwogICAgfSBlbHNlIHsKICAgICAgaWYgKChpbmRleEIgLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gCiAgICAgICAgZWxzZSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gIAogICAgICAgIGluZGV4TyA9IGluZGV4QjsKICAgICAgfSAgICAgICAgIAogICAgfQogICAgaW5kZXhQID0gaW5kZXhCOwogICAgZXJyb3JDb3VudCsrOyAgICAgICAKICB9Cn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.2_A1.15_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuMTVfVDQiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cy4gQiA9IFsweEYwIC0gMHgwRjddLCBDID0gWzB4QzAsIDB4RkZdIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBlcnJvckNvdW50ID0gMDsKY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmZvciAoaW5kZXhCID0gMHhGMDsgaW5kZXhCIDw9IDB4Rjc7IGluZGV4QisrKSB7CiAgY291bnQrKzsgCiAgaGV4QiA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEIpOyAKICByZXN1bHQgPSB0cnVlOwogIGZvciAoaW5kZXhDID0gMHhDMDsgaW5kZXhDIDw9IDB4RkY7IGluZGV4QysrKSB7CiAgICBoZXhDID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Qyk7ICAKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSUNvbXBvbmVudCgiJSIgKyBoZXhCLnN1YnN0cmluZygyKSArICIlIiArIGhleEMuc3Vic3RyaW5nKDIpICsgIiVBMCVBMCIpOwogICAgfSBjYXRjaCAoZSkgeyAKICAgICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpID09PSB0cnVlKSBjb250aW51ZTsgICAgICAgICAgICAgICAgCiAgICB9CiAgICByZXN1bHQgPSBmYWxzZTsKICB9CiAgaWYgKHJlc3VsdCAhPT0gdHJ1ZSkgewogICAgaWYgKGluZGV4TyA9PT0gMCkgeyAKICAgICAgaW5kZXhPID0gaW5kZXhCOwogICAgfSBlbHNlIHsKICAgICAgaWYgKChpbmRleEIgLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gCiAgICAgICAgZWxzZSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gIAogICAgICAgIGluZGV4TyA9IGluZGV4QjsKICAgICAgfSAgICAgICAgIAogICAgfQogICAgaW5kZXhQID0gaW5kZXhCOwogICAgZXJyb3JDb3VudCsrOyAgICAgICAKICB9Cn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.2_A1.15_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuMTVfVDUiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cy4gQiA9IFsweEYwIC0gMHgwRjddLCBDID0gWzB4QzAsIDB4RkZdIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBlcnJvckNvdW50ID0gMDsKY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmZvciAoaW5kZXhCID0gMHhGMDsgaW5kZXhCIDw9IDB4Rjc7IGluZGV4QisrKSB7CiAgY291bnQrKzsgCiAgaGV4QiA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEIpOyAKICByZXN1bHQgPSB0cnVlOwogIGZvciAoaW5kZXhDID0gMHhDMDsgaW5kZXhDIDw9IDB4RkY7IGluZGV4QysrKSB7CiAgICBoZXhDID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Qyk7ICAKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSUNvbXBvbmVudCgiJSIgKyBoZXhCLnN1YnN0cmluZygyKSArICIlQTAiICsgIiUiICsgaGV4Qy5zdWJzdHJpbmcoMikgKyAiJUEwIik7CiAgICB9IGNhdGNoIChlKSB7IAogICAgICBpZiAoKGUgaW5zdGFuY2VvZiBVUklFcnJvcikgPT09IHRydWUpIGNvbnRpbnVlOyAgICAgICAgICAgICAgICAKICAgIH0KICAgIHJlc3VsdCA9IGZhbHNlOwogIH0KICBpZiAocmVzdWx0ICE9PSB0cnVlKSB7CiAgICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgICBpbmRleE8gPSBpbmRleEI7CiAgICB9IGVsc2UgewogICAgICBpZiAoKGluZGV4QiAtIGluZGV4UCkgIT09IDEpIHsgICAgICAgICAgICAgCiAgICAgICAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICAgICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgICAgICAgfSAKICAgICAgICBlbHNlIHsKICAgICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgICAgfSAgCiAgICAgICAgaW5kZXhPID0gaW5kZXhCOwogICAgICB9ICAgICAgICAgCiAgICB9CiAgICBpbmRleFAgPSBpbmRleEI7CiAgICBlcnJvckNvdW50Kys7ICAgICAgIAogIH0KfQoKaWYgKGVycm9yQ291bnQgPiAwKSB7CiAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgfSBlbHNlIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgfSAgICAgCiAgJEVSUk9SKCdUb3RhbCBlcnJvcjogJyArIGVycm9yQ291bnQgKyAnIGJhZCBVbmljb2RlIGNoYXJhY3RlciBpbiAnICsgY291bnQgKyAnICcpOwp9CgpmdW5jdGlvbiBkZWNpbWFsVG9IZXhTdHJpbmcobikgewogIG4gPSBOdW1iZXIobik7CiAgdmFyIGggPSAiIjsKICBmb3IgKHZhciBpID0gMzsgaSA+PSAwOyBpLS0pIHsKICAgIGlmIChuID49IE1hdGgucG93KDE2LCBpKSkgewogICAgICB2YXIgdCA9IE1hdGguZmxvb3IobiAvIE1hdGgucG93KDE2LCBpKSk7CiAgICAgIG4gLT0gdCAqIE1hdGgucG93KDE2LCBpKTsKICAgICAgaWYgKCB0ID49IDEwICkgewogICAgICAgIGlmICggdCA9PSAxMCApIHsgaCArPSAiQSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTEgKSB7IGggKz0gIkIiOyB9CiAgICAgICAgaWYgKCB0ID09IDEyICkgeyBoICs9ICJDIjsgfQogICAgICAgIGlmICggdCA9PSAxMyApIHsgaCArPSAiRCI7IH0KICAgICAgICBpZiAoIHQgPT0gMTQgKSB7IGggKz0gIkUiOyB9CiAgICAgICAgaWYgKCB0ID09IDE1ICkgeyBoICs9ICJGIjsgfQogICAgICB9IGVsc2UgewogICAgICAgIGggKz0gU3RyaW5nKHQpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBoICs9ICIwIjsKICAgIH0KICB9CiAgcmV0dXJuIGg7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.2_A1.15_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuMTVfVDYiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0cy4gQiA9IFsweEYwIC0gMHgwRjddLCBDID0gWzB4QzAsIDB4RkZdIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBlcnJvckNvdW50ID0gMDsKY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmZvciAoaW5kZXhCID0gMHhGMDsgaW5kZXhCIDw9IDB4Rjc7IGluZGV4QisrKSB7CiAgY291bnQrKzsgCiAgaGV4QiA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEIpOyAKICByZXN1bHQgPSB0cnVlOwogIGZvciAoaW5kZXhDID0gMHhDMDsgaW5kZXhDIDw9IDB4RkY7IGluZGV4QysrKSB7CiAgICBoZXhDID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Qyk7ICAKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSUNvbXBvbmVudCgiJSIgKyBoZXhCLnN1YnN0cmluZygyKSArICIlQTAlQTAiICsgIiUiICsgaGV4Qy5zdWJzdHJpbmcoMikpOwogICAgfSBjYXRjaCAoZSkgeyAKICAgICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpID09PSB0cnVlKSBjb250aW51ZTsgICAgICAgICAgICAgICAgCiAgICB9CiAgICByZXN1bHQgPSBmYWxzZTsKICB9CiAgaWYgKHJlc3VsdCAhPT0gdHJ1ZSkgewogICAgaWYgKGluZGV4TyA9PT0gMCkgeyAKICAgICAgaW5kZXhPID0gaW5kZXhCOwogICAgfSBlbHNlIHsKICAgICAgaWYgKChpbmRleEIgLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gCiAgICAgICAgZWxzZSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gIAogICAgICAgIGluZGV4TyA9IGluZGV4QjsKICAgICAgfSAgICAgICAgIAogICAgfQogICAgaW5kZXhQID0gaW5kZXhCOwogICAgZXJyb3JDb3VudCsrOyAgICAgICAKICB9Cn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.2_A1.15_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuMV9UMSIsCgpwYXRoOiAiMTUuMS4zLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICByZXN1bHQgPSB0cnVlOwoKLy9DSEVDSyMxCnRyeSB7CiAgZGVjb2RlVVJJQ29tcG9uZW50KCIlIik7CiAgcmVzdWx0ID0gZmFsc2U7Cn0gY2F0Y2goZSkgewogIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSAhPT0gdHJ1ZSkgewogICAgcmVzdWx0ID0gZmFsc2U7CiAgfQp9CgovL0NIRUNLIzIKdHJ5IHsKICBkZWNvZGVVUklDb21wb25lbnQoIiVBIik7CiAgcmVzdWx0ID0gZmFsc2U7Cn0gY2F0Y2goZSkgewogIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSAhPT0gdHJ1ZSkgewogICAgcmVzdWx0ID0gZmFsc2U7CiAgfQp9CgovL0NIRUNLIzMKdHJ5IHsKICBkZWNvZGVVUklDb21wb25lbnQoIiUxIik7CiAgcmVzdWx0ID0gZmFsc2U7Cn0gY2F0Y2goZSkgewogIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSAhPT0gdHJ1ZSkgewogICAgcmVzdWx0ID0gZmFsc2U7CiAgfQp9CgovL0NIRUNLIzQKdHJ5IHsKICBkZWNvZGVVUklDb21wb25lbnQoIiUgIik7CiAgcmVzdWx0ID0gZmFsc2U7Cn0gY2F0Y2goZSkgewogIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSAhPT0gdHJ1ZSkgewogICAgcmVzdWx0ID0gZmFsc2U7CiAgfQp9CgppZiAocmVzdWx0ICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMTogSWYgc3RyaW5nLmNoYXJBdChrKSBlcXVhbCAiJSIgYW5kIGsgKyAyID49IHN0cmluZy5sZW5ndGgsIHRocm93IFVSSUVycm9yJyk7Cn0KCgoKCiB9Cn0pOwoK","id":"S15.1.3.2_A1.1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuMl9UMSIsCgpwYXRoOiAiMTUuMS4zLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLCnJlc3VsdCA9IHRydWU7CnZhciBpbnRlcnZhbCA9IFtbMHgwMCwgMHgyOV0sIFsweDQwLDB4NDBdLCBbMHg0NywgMHg2MF0sIFsweDY3LCAweEZGRkZdXTsKZm9yIChpbmRleEkgPSAwOyBpbmRleEkgPCBpbnRlcnZhbC5sZW5ndGg7IGluZGV4SSsrKSB7CiAgZm9yIChpbmRleEogPSBpbnRlcnZhbFtpbmRleEldWzBdOyBpbmRleEogPD0gaW50ZXJ2YWxbaW5kZXhJXVsxXTsgaW5kZXhKKyspIHsKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSUNvbXBvbmVudCgiJSIgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGluZGV4SikgKyAiMSIpOwogICAgICByZXN1bHQgPSBmYWxzZTsKICAgIH0gY2F0Y2ggKGUpIHsgICAKICAgICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpICE9PSB0cnVlKSB7CiAgICAgICAgcmVzdWx0ID0gZmFsc2U7CiAgICAgIH0KICAgIH0gICAgCiAgfSAgCn0gIAoKaWYgKHJlc3VsdCAhPT0gdHJ1ZSkgeyAgICAKICAkRVJST1IoJyMxOiBJZiBzdHJpbmcuY2hhckF0KGsrMSkgZG9lcyBub3QgcmVwcmVzZW50IGhleGFkZWNpbWFsIGRpZ2l0cywgdGhyb3cgVVJJRXJyb3InKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.2_A1.2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuMl9UMiIsCgpwYXRoOiAiMTUuMS4zLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLCnJlc3VsdCA9IHRydWU7CnZhciBpbnRlcnZhbCA9IFtbMHgwMCwgMHgyOV0sIFsweDQwLDB4NDBdLCBbMHg0NywgMHg2MF0sIFsweDY3LCAweEZGRkZdXTsKZm9yIChpbmRleEkgPSAwOyBpbmRleEkgPCBpbnRlcnZhbC5sZW5ndGg7IGluZGV4SSsrKSB7CiAgZm9yIChpbmRleEogPSBpbnRlcnZhbFtpbmRleEldWzBdOyBpbmRleEogPD0gaW50ZXJ2YWxbaW5kZXhJXVsxXTsgaW5kZXhKKyspIHsKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSUNvbXBvbmVudCgiJSIgKyAiMSIgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGluZGV4SikpOwogICAgICByZXN1bHQgPSBmYWxzZTsKICAgIH0gY2F0Y2ggKGUpIHsgICAKICAgICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpICE9PSB0cnVlKSB7CiAgICAgICAgcmVzdWx0ID0gZmFsc2U7CiAgICAgIH0KICAgIH0gICAgICAKICB9ICAKfSAgCgppZiAocmVzdWx0ICE9PSB0cnVlKSB7ICAgIAogICRFUlJPUignIzE6IElmIHN0cmluZy5jaGFyQXQoaysyKSBkb2VzIG5vdCByZXByZXNlbnQgaGV4YWRlY2ltYWwgZGlnaXRzLCB0aHJvdyBVUklFcnJvcicpOwp9CgogfQp9KTsKCg==","id":"S15.1.3.2_A1.2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuM19UMSIsCgpwYXRoOiAiMTUuMS4zLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLiBCID0gMTB4eHh4eHggLT4gQiBpbiBbMHg4MCAtIDB4QkZdIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBlcnJvckNvdW50ID0gMDsKY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmZvciAoaW5kZXggPSAweDgwOyBpbmRleCA8PSAweEJGOyBpbmRleCsrKSB7CiAgY291bnQrKzsgCiAgaGV4ID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4KTsKICB0cnkgewogICAgZGVjb2RlVVJJQ29tcG9uZW50KCIlIiArIGhleC5zdWJzdHJpbmcoMikpOwogIH0gY2F0Y2ggKGUpIHsgCiAgICBpZiAoKGUgaW5zdGFuY2VvZiBVUklFcnJvcikgPT09IHRydWUpIGNvbnRpbnVlOyAgICAgICAgICAgICAgICAKICB9CiAgaWYgKGluZGV4TyA9PT0gMCkgeyAKICAgIGluZGV4TyA9IGluZGV4OwogIH0gZWxzZSB7CiAgICBpZiAoKGluZGV4IC0gaW5kZXhQKSAhPT0gMSkgeyAgICAgICAgICAgICAKICAgICAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgICAgIH0gCiAgICAgIGVsc2UgewogICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICB9ICAKICAgICAgaW5kZXhPID0gaW5kZXg7CiAgICB9ICAgICAgICAgCiAgfQogIGluZGV4UCA9IGluZGV4OwogIGVycm9yQ291bnQrKzsgICAgICAgCn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.2_A1.3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuM19UMiIsCgpwYXRoOiAiMTUuMS4zLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLiBCID0gMTExMTF4eHggLT4gQiBpbiBbMHhGOCAtIDB4RkZdIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBlcnJvckNvdW50ID0gMDsKY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmZvciAoaW5kZXggPSAweEY4OyBpbmRleCA8PSAweEZGOyBpbmRleCsrKSB7CiAgY291bnQrKzsgCiAgaGV4ID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4KTsKICB0cnkgewogICAgZGVjb2RlVVJJQ29tcG9uZW50KCIlIiArIGhleC5zdWJzdHJpbmcoMikpOwogIH0gY2F0Y2ggKGUpIHsgCiAgICBpZiAoKGUgaW5zdGFuY2VvZiBVUklFcnJvcikgPT09IHRydWUpIGNvbnRpbnVlOyAgICAgICAgICAgICAgICAKICB9CiAgaWYgKGluZGV4TyA9PT0gMCkgeyAKICAgIGluZGV4TyA9IGluZGV4OwogIH0gZWxzZSB7CiAgICBpZiAoKGluZGV4IC0gaW5kZXhQKSAhPT0gMSkgeyAgICAgICAgICAgICAKICAgICAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgICAgIH0gCiAgICAgIGVsc2UgewogICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICB9ICAKICAgICAgaW5kZXhPID0gaW5kZXg7CiAgICB9ICAgICAgICAgCiAgfQogIGluZGV4UCA9IGluZGV4OwogIGVycm9yQ291bnQrKzsgICAgICAgCn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.2_A1.3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuNF9UMSIsCgpwYXRoOiAiMTUuMS4zLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLiBCID0gWzB4QzAgLSAweERGXSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZXJyb3JDb3VudCA9IDA7CmNvdW50ID0gMDsKdmFyIGluZGV4UDsKdmFyIGluZGV4TyA9IDA7Cgpmb3IgKGluZGV4ID0gMHhDMDsgaW5kZXggPD0gMHhERjsgaW5kZXgrKykgewogIGNvdW50Kys7IAogIHN0ciA9ICIiOwogIHJlc3VsdCA9IHRydWU7CiAgZm9yIChsZW4gPSAwOyBsZW4gPCAzOyBsZW4rKykgewogICAgaGV4ID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4KTsKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSUNvbXBvbmVudCgiJSIgKyBoZXguc3Vic3RyaW5nKDIpICsgc3RyKTsgICAgICAKICAgIH0gY2F0Y2ggKGUpIHsgCiAgICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSA9PT0gdHJ1ZSkgY29udGludWU7ICAgICAgICAgICAgICAgIAogICAgfQogICAgcmVzdWx0ID0gZmFsc2U7CiAgICBzdHIgPSBzdHIgKyAiMSI7CiAgfQogIGlmIChyZXN1bHQgIT09IHRydWUpIHsKICAgIGlmIChpbmRleE8gPT09IDApIHsgCiAgICAgIGluZGV4TyA9IGluZGV4OwogICAgfSBlbHNlIHsKICAgICAgaWYgKChpbmRleCAtIGluZGV4UCkgIT09IDEpIHsgICAgICAgICAgICAgCiAgICAgICAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICAgICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgICAgICAgfSAKICAgICAgICBlbHNlIHsKICAgICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgICAgfSAgCiAgICAgICAgaW5kZXhPID0gaW5kZXg7CiAgICAgIH0gICAgICAgICAKICAgIH0KICAgIGluZGV4UCA9IGluZGV4OwogICAgZXJyb3JDb3VudCsrOyAgICAgIAogIH0gCn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.2_A1.4_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuNV9UMSIsCgpwYXRoOiAiMTUuMS4zLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLiBCID0gWzB4RTAgLSAweEVGXSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZXJyb3JDb3VudCA9IDA7CmNvdW50ID0gMDsKdmFyIGluZGV4UDsKdmFyIGluZGV4TyA9IDA7Cgpmb3IgKGluZGV4ID0gMHhFMDsgaW5kZXggPD0gMHhFRjsgaW5kZXgrKykgewogIGNvdW50Kys7IAogIHN0ciA9ICIiOwogIHJlc3VsdCA9IHRydWU7CiAgZm9yIChsZW4gPSAwOyBsZW4gPCA2OyBsZW4rKykgewogICAgaGV4ID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4KTsKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSUNvbXBvbmVudCgiJSIgKyBoZXguc3Vic3RyaW5nKDIpICsgc3RyKTsgICAgICAKICAgIH0gY2F0Y2ggKGUpIHsgCiAgICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSA9PT0gdHJ1ZSkgY29udGludWU7ICAgICAgICAgICAgICAgIAogICAgfQogICAgcmVzdWx0ID0gZmFsc2U7CiAgICBzdHIgPSBzdHIgKyAiMSI7CiAgfQogIGlmIChyZXN1bHQgIT09IHRydWUpIHsKICAgIGlmIChpbmRleE8gPT09IDApIHsgCiAgICAgIGluZGV4TyA9IGluZGV4OwogICAgfSBlbHNlIHsKICAgICAgaWYgKChpbmRleCAtIGluZGV4UCkgIT09IDEpIHsgICAgICAgICAgICAgCiAgICAgICAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICAgICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgICAgICAgfSAKICAgICAgICBlbHNlIHsKICAgICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgICAgfSAgCiAgICAgICAgaW5kZXhPID0gaW5kZXg7CiAgICAgIH0gICAgICAgICAKICAgIH0KICAgIGluZGV4UCA9IGluZGV4OwogICAgZXJyb3JDb3VudCsrOyAgICAgIAogIH0gCn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.2_A1.5_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuNl9UMSIsCgpwYXRoOiAiMTUuMS4zLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLiBCID0gWzB4RjAgLSAweEY3XSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZXJyb3JDb3VudCA9IDA7CmNvdW50ID0gMDsKdmFyIGluZGV4UDsKdmFyIGluZGV4TyA9IDA7Cgpmb3IgKGluZGV4ID0gMHhGMDsgaW5kZXggPD0gMHhGNzsgaW5kZXgrKykgewogIGNvdW50Kys7IAogIHN0ciA9ICIiOwogIHJlc3VsdCA9IHRydWU7CiAgZm9yIChsZW4gPSAwOyBsZW4gPCA5OyBsZW4rKykgewogICAgaGV4ID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4KTsKICAgIHRyeSB7CiAgICAgIGRlY29kZVVSSUNvbXBvbmVudCgiJSIgKyBoZXguc3Vic3RyaW5nKDIpICsgc3RyKTsgICAgICAKICAgIH0gY2F0Y2ggKGUpIHsgCiAgICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSA9PT0gdHJ1ZSkgY29udGludWU7ICAgICAgICAgICAgICAgIAogICAgfQogICAgcmVzdWx0ID0gZmFsc2U7CiAgICBzdHIgPSBzdHIgKyAiMSI7CiAgfQogIGlmIChyZXN1bHQgIT09IHRydWUpIHsKICAgIGlmIChpbmRleE8gPT09IDApIHsgCiAgICAgIGluZGV4TyA9IGluZGV4OwogICAgfSBlbHNlIHsKICAgICAgaWYgKChpbmRleCAtIGluZGV4UCkgIT09IDEpIHsgICAgICAgICAgICAgCiAgICAgICAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICAgICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgICAgICAgfSAKICAgICAgICBlbHNlIHsKICAgICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgICAgfSAgCiAgICAgICAgaW5kZXhPID0gaW5kZXg7CiAgICAgIH0gICAgICAgICAKICAgIH0KICAgIGluZGV4UCA9IGluZGV4OwogICAgZXJyb3JDb3VudCsrOyAgICAgIAogIH0gCn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.2_A1.6_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuN19UMSIsCgpwYXRoOiAiMTUuMS4zLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLiBCID0gWzB4QzAgLSAweERGXSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZXJyb3JDb3VudCA9IDA7CmNvdW50ID0gMDsKdmFyIGluZGV4UDsKdmFyIGluZGV4TyA9IDA7Cgpmb3IgKGluZGV4ID0gMHhDMDsgaW5kZXggPD0gMHhERjsgaW5kZXgrKykgewogIGNvdW50Kys7IAogIGhleCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleCk7CiAgdHJ5IHsKICAgIGRlY29kZVVSSUNvbXBvbmVudCgiJSIgKyBoZXguc3Vic3RyaW5nKDIpICsgIjExMSIpOwogIH0gY2F0Y2ggKGUpIHsgCiAgICBpZiAoKGUgaW5zdGFuY2VvZiBVUklFcnJvcikgPT09IHRydWUpIGNvbnRpbnVlOyAgICAgICAgICAgICAgICAKICB9CiAgaWYgKGluZGV4TyA9PT0gMCkgeyAKICAgIGluZGV4TyA9IGluZGV4OwogIH0gZWxzZSB7CiAgICBpZiAoKGluZGV4IC0gaW5kZXhQKSAhPT0gMSkgeyAgICAgICAgICAgICAKICAgICAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgICAgIH0gCiAgICAgIGVsc2UgewogICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICB9ICAKICAgICAgaW5kZXhPID0gaW5kZXg7CiAgICB9ICAgICAgICAgCiAgfQogIGluZGV4UCA9IGluZGV4OwogIGVycm9yQ291bnQrKzsgICAgICAgCn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.2_A1.7_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuOF9UMSIsCgpwYXRoOiAiMTUuMS4zLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLiBCID0gWzB4RTAgLSAweEVGXSwiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGVycm9yQ291bnQgPSAwOwpjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwoKZm9yIChpbmRleCA9IDB4RTA7IGluZGV4IDw9IDB4RUY7IGluZGV4KyspIHsKICBjb3VudCsrOyAKICBoZXggPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXgpOwogIHRyeSB7CiAgICBkZWNvZGVVUklDb21wb25lbnQoIiUiICsgaGV4LnN1YnN0cmluZygyKSArICIxMTElQTAiKTsKICB9IGNhdGNoIChlKSB7IAogICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpID09PSB0cnVlKSBjb250aW51ZTsgICAgICAgICAgICAgICAgCiAgfQogIGlmIChpbmRleE8gPT09IDApIHsgCiAgICBpbmRleE8gPSBpbmRleDsKICB9IGVsc2UgewogICAgaWYgKChpbmRleCAtIGluZGV4UCkgIT09IDEpIHsgICAgICAgICAgICAgCiAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICB9IAogICAgICBlbHNlIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICAgICAgfSAgCiAgICAgIGluZGV4TyA9IGluZGV4OwogICAgfSAgICAgICAgIAogIH0KICBpbmRleFAgPSBpbmRleDsKICBlcnJvckNvdW50Kys7ICAgICAgIAp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.2_A1.8_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuOF9UMiIsCgpwYXRoOiAiMTUuMS4zLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLiBCID0gWzB4RTAgLSAweEVGXSwiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGVycm9yQ291bnQgPSAwOwpjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwoKZm9yIChpbmRleCA9IDB4RTA7IGluZGV4IDw9IDB4RUY7IGluZGV4KyspIHsKICBjb3VudCsrOyAKICBoZXggPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXgpOwogIHRyeSB7CiAgICBkZWNvZGVVUklDb21wb25lbnQoIiUiICsgaGV4LnN1YnN0cmluZygyKSArICIlQTAxMTEiKTsKICB9IGNhdGNoIChlKSB7IAogICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpID09PSB0cnVlKSBjb250aW51ZTsgICAgICAgICAgICAgICAgCiAgfQogIGlmIChpbmRleE8gPT09IDApIHsgCiAgICBpbmRleE8gPSBpbmRleDsKICB9IGVsc2UgewogICAgaWYgKChpbmRleCAtIGluZGV4UCkgIT09IDEpIHsgICAgICAgICAgICAgCiAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICB9IAogICAgICBlbHNlIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICAgICAgfSAgCiAgICAgIGluZGV4TyA9IGluZGV4OwogICAgfSAgICAgICAgIAogIH0KICBpbmRleFAgPSBpbmRleDsKICBlcnJvckNvdW50Kys7ICAgICAgIAp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.2_A1.8_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuOV9UMSIsCgpwYXRoOiAiMTUuMS4zLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLiBCID0gWzB4RjAgLSAweDBGN10sIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBlcnJvckNvdW50ID0gMDsKY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmZvciAoaW5kZXggPSAweEYwOyBpbmRleCA8PSAweEY3OyBpbmRleCsrKSB7CiAgY291bnQrKzsgCiAgaGV4ID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4KTsKICB0cnkgewogICAgZGVjb2RlVVJJQ29tcG9uZW50KCIlIiArIGhleC5zdWJzdHJpbmcoMikgKyAiMTExJUEwJUEwIik7CiAgfSBjYXRjaCAoZSkgeyAKICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSA9PT0gdHJ1ZSkgY29udGludWU7ICAgICAgICAgICAgICAgIAogIH0KICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgaW5kZXhPID0gaW5kZXg7CiAgfSBlbHNlIHsKICAgIGlmICgoaW5kZXggLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgfSAKICAgICAgZWxzZSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgIH0gIAogICAgICBpbmRleE8gPSBpbmRleDsKICAgIH0gICAgICAgICAKICB9CiAgaW5kZXhQID0gaW5kZXg7CiAgZXJyb3JDb3VudCsrOyAgICAgICAKfQoKaWYgKGVycm9yQ291bnQgPiAwKSB7CiAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgfSBlbHNlIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgfSAgICAgCiAgJEVSUk9SKCdUb3RhbCBlcnJvcjogJyArIGVycm9yQ291bnQgKyAnIGJhZCBVbmljb2RlIGNoYXJhY3RlciBpbiAnICsgY291bnQgKyAnICcpOwp9CgpmdW5jdGlvbiBkZWNpbWFsVG9IZXhTdHJpbmcobikgewogIG4gPSBOdW1iZXIobik7CiAgdmFyIGggPSAiIjsKICBmb3IgKHZhciBpID0gMzsgaSA+PSAwOyBpLS0pIHsKICAgIGlmIChuID49IE1hdGgucG93KDE2LCBpKSkgewogICAgICB2YXIgdCA9IE1hdGguZmxvb3IobiAvIE1hdGgucG93KDE2LCBpKSk7CiAgICAgIG4gLT0gdCAqIE1hdGgucG93KDE2LCBpKTsKICAgICAgaWYgKCB0ID49IDEwICkgewogICAgICAgIGlmICggdCA9PSAxMCApIHsgaCArPSAiQSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTEgKSB7IGggKz0gIkIiOyB9CiAgICAgICAgaWYgKCB0ID09IDEyICkgeyBoICs9ICJDIjsgfQogICAgICAgIGlmICggdCA9PSAxMyApIHsgaCArPSAiRCI7IH0KICAgICAgICBpZiAoIHQgPT0gMTQgKSB7IGggKz0gIkUiOyB9CiAgICAgICAgaWYgKCB0ID09IDE1ICkgeyBoICs9ICJGIjsgfQogICAgICB9IGVsc2UgewogICAgICAgIGggKz0gU3RyaW5nKHQpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBoICs9ICIwIjsKICAgIH0KICB9CiAgcmV0dXJuIGg7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.2_A1.9_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuOV9UMiIsCgpwYXRoOiAiMTUuMS4zLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLiBCID0gWzB4RjAgLSAweDBGN10sIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBlcnJvckNvdW50ID0gMDsKY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmZvciAoaW5kZXggPSAweEYwOyBpbmRleCA8PSAweEY3OyBpbmRleCsrKSB7CiAgY291bnQrKzsgCiAgaGV4ID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4KTsKICB0cnkgewogICAgZGVjb2RlVVJJQ29tcG9uZW50KCIlIiArIGhleC5zdWJzdHJpbmcoMikgKyAiJUEwMTExJUEwIik7CiAgfSBjYXRjaCAoZSkgeyAKICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSA9PT0gdHJ1ZSkgY29udGludWU7ICAgICAgICAgICAgICAgIAogIH0KICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgaW5kZXhPID0gaW5kZXg7CiAgfSBlbHNlIHsKICAgIGlmICgoaW5kZXggLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgfSAKICAgICAgZWxzZSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgIH0gIAogICAgICBpbmRleE8gPSBpbmRleDsKICAgIH0gICAgICAgICAKICB9CiAgaW5kZXhQID0gaW5kZXg7CiAgZXJyb3JDb3VudCsrOyAgICAgICAKfQoKaWYgKGVycm9yQ291bnQgPiAwKSB7CiAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgfSBlbHNlIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgfSAgICAgCiAgJEVSUk9SKCdUb3RhbCBlcnJvcjogJyArIGVycm9yQ291bnQgKyAnIGJhZCBVbmljb2RlIGNoYXJhY3RlciBpbiAnICsgY291bnQgKyAnICcpOwp9CgpmdW5jdGlvbiBkZWNpbWFsVG9IZXhTdHJpbmcobikgewogIG4gPSBOdW1iZXIobik7CiAgdmFyIGggPSAiIjsKICBmb3IgKHZhciBpID0gMzsgaSA+PSAwOyBpLS0pIHsKICAgIGlmIChuID49IE1hdGgucG93KDE2LCBpKSkgewogICAgICB2YXIgdCA9IE1hdGguZmxvb3IobiAvIE1hdGgucG93KDE2LCBpKSk7CiAgICAgIG4gLT0gdCAqIE1hdGgucG93KDE2LCBpKTsKICAgICAgaWYgKCB0ID49IDEwICkgewogICAgICAgIGlmICggdCA9PSAxMCApIHsgaCArPSAiQSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTEgKSB7IGggKz0gIkIiOyB9CiAgICAgICAgaWYgKCB0ID09IDEyICkgeyBoICs9ICJDIjsgfQogICAgICAgIGlmICggdCA9PSAxMyApIHsgaCArPSAiRCI7IH0KICAgICAgICBpZiAoIHQgPT0gMTQgKSB7IGggKz0gIkUiOyB9CiAgICAgICAgaWYgKCB0ID09IDE1ICkgeyBoICs9ICJGIjsgfQogICAgICB9IGVsc2UgewogICAgICAgIGggKz0gU3RyaW5nKHQpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBoICs9ICIwIjsKICAgIH0KICB9CiAgcmV0dXJuIGg7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.2_A1.9_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTEuOV9UMyIsCgpwYXRoOiAiMTUuMS4zLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLiBCID0gWzB4RjAgLSAweDBGN10sIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBlcnJvckNvdW50ID0gMDsKY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmZvciAoaW5kZXggPSAweEYwOyBpbmRleCA8PSAweEY3OyBpbmRleCsrKSB7CiAgY291bnQrKzsgCiAgaGV4ID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4KTsKICB0cnkgewogICAgZGVjb2RlVVJJQ29tcG9uZW50KCIlIiArIGhleC5zdWJzdHJpbmcoMikgKyAiJUEwJUEwMTExIik7CiAgfSBjYXRjaCAoZSkgeyAKICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSA9PT0gdHJ1ZSkgY29udGludWU7ICAgICAgICAgICAgICAgIAogIH0KICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgaW5kZXhPID0gaW5kZXg7CiAgfSBlbHNlIHsKICAgIGlmICgoaW5kZXggLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgfSAKICAgICAgZWxzZSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgIH0gIAogICAgICBpbmRleE8gPSBpbmRleDsKICAgIH0gICAgICAgICAKICB9CiAgaW5kZXhQID0gaW5kZXg7CiAgZXJyb3JDb3VudCsrOyAgICAgICAKfQoKaWYgKGVycm9yQ291bnQgPiAwKSB7CiAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgfSBlbHNlIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgfSAgICAgCiAgJEVSUk9SKCdUb3RhbCBlcnJvcjogJyArIGVycm9yQ291bnQgKyAnIGJhZCBVbmljb2RlIGNoYXJhY3RlciBpbiAnICsgY291bnQgKyAnICcpOwp9CgpmdW5jdGlvbiBkZWNpbWFsVG9IZXhTdHJpbmcobikgewogIG4gPSBOdW1iZXIobik7CiAgdmFyIGggPSAiIjsKICBmb3IgKHZhciBpID0gMzsgaSA+PSAwOyBpLS0pIHsKICAgIGlmIChuID49IE1hdGgucG93KDE2LCBpKSkgewogICAgICB2YXIgdCA9IE1hdGguZmxvb3IobiAvIE1hdGgucG93KDE2LCBpKSk7CiAgICAgIG4gLT0gdCAqIE1hdGgucG93KDE2LCBpKTsKICAgICAgaWYgKCB0ID49IDEwICkgewogICAgICAgIGlmICggdCA9PSAxMCApIHsgaCArPSAiQSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTEgKSB7IGggKz0gIkIiOyB9CiAgICAgICAgaWYgKCB0ID09IDEyICkgeyBoICs9ICJDIjsgfQogICAgICAgIGlmICggdCA9PSAxMyApIHsgaCArPSAiRCI7IH0KICAgICAgICBpZiAoIHQgPT0gMTQgKSB7IGggKz0gIkUiOyB9CiAgICAgICAgaWYgKCB0ID09IDE1ICkgeyBoICs9ICJGIjsgfQogICAgICB9IGVsc2UgewogICAgICAgIGggKz0gU3RyaW5nKHQpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBoICs9ICIwIjsKICAgIH0KICB9CiAgcmV0dXJuIGg7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.2_A1.9_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTIuMV9UMSIsCgpwYXRoOiAiMTUuMS4zLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLCmVycm9yQ291bnQgPSAwOwpjb3VudCA9IDA7CmZvciAoaW5kZXhJID0gMDsgaW5kZXhJIDw9IDY1NTM1OyBpbmRleEkrKykgewogIGlmIChpbmRleEkgIT09IDB4MjUpIHsKICAgIGhleCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEkpOwogICAgdHJ5IHsgICAgCiAgICAgIHZhciBzdHIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGluZGV4SSk7CiAgICAgIGlmIChkZWNvZGVVUklDb21wb25lbnQoc3RyKSAhPT0gc3RyKSB7ICAgIAogICAgICAgICRFUlJPUignIycgKyBoZXggKyAnICcpOwogICAgICAgIGVycm9yQ291bnQrKzsKICAgICAgfSAgICAKICAgIH0gY2F0Y2ggKGUpewogICAgICAkRVJST1IoJyMnICsgaGV4ICsgJyAnKTsKICAgICAgZXJyb3JDb3VudCsrOwogICAgfSAKICAgIGNvdW50Kys7CiAgfQp9ICAKCmlmIChlcnJvckNvdW50ID4gMCkgeyAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.2_A2.1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTIuMl9UMSIsCgpwYXRoOiAiMTUuMS4zLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1c2UgUkZDIDM2MjkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGVycm9yQ291bnQgPSAwOwpjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwpmb3IgKGluZGV4QjEgPSAweDAwOyBpbmRleEIxIDw9IDB4N0Y7IGluZGV4QjErKykgeyAgICAgICAKICBjb3VudCsrOwogIHZhciBoZXhCMSA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEIxKTsgIAogIHZhciBpbmRleCA9IGluZGV4QjE7ICAKICB0cnkgewogICAgaGV4ID0gU3RyaW5nLmZyb21DaGFyQ29kZShpbmRleCk7CiAgICBpZiAoZGVjb2RlVVJJQ29tcG9uZW50KCIlIiArIGhleEIxLnN1YnN0cmluZygyKSkgPT09IGhleCkgY29udGludWU7CiAgfSBjYXRjaCAoZSkge30gICAKICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgaW5kZXhPID0gaW5kZXg7CiAgfSBlbHNlIHsKICAgIGlmICgoaW5kZXggLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgfSAKICAgICAgZWxzZSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgIH0gIAogICAgICBpbmRleE8gPSBpbmRleDsKICAgIH0gICAgICAgICAKICB9CiAgaW5kZXhQID0gaW5kZXg7CiAgZXJyb3JDb3VudCsrOyAgICAgICAgIAp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.2_A2.2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTIuM19UMSIsCgpwYXRoOiAiMTUuMS4zLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1c2UgUkZDIDM2MjkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGVycm9yQ291bnQgPSAwOwpjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwoKZm9yIChpbmRleEIxID0gMHhDMjsgaW5kZXhCMSA8PSAweERGOyBpbmRleEIxKyspIHsgICAgIAogIHZhciBoZXhCMSA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEIxKTsKICBmb3IgKGluZGV4QjIgPSAweDgwOyBpbmRleEIyIDw9IDB4QkY7IGluZGV4QjIrKykgewogICAgY291bnQrKzsKICAgIHZhciBoZXhCMiA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEIyKTsKICAgIHZhciBpbmRleCA9IChpbmRleEIxICYgMHgxRikgKiAweDQwICsgKGluZGV4QjIgJiAweDNGKTsgIAogICAgdHJ5IHsKICAgICAgaWYgKGRlY29kZVVSSUNvbXBvbmVudCgiJSIgKyBoZXhCMS5zdWJzdHJpbmcoMikgKyAiJSIgKyBoZXhCMi5zdWJzdHJpbmcoMikpID09PSBTdHJpbmcuZnJvbUNoYXJDb2RlKGluZGV4KSkgY29udGludWU7CiAgICB9IGNhdGNoIChlKSB7fSAgIAogICAgaWYgKGluZGV4TyA9PT0gMCkgeyAKICAgICAgaW5kZXhPID0gaW5kZXg7CiAgICB9IGVsc2UgewogICAgICBpZiAoKGluZGV4IC0gaW5kZXhQKSAhPT0gMSkgeyAgICAgICAgICAgICAKICAgICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgICB9IAogICAgICAgIGVsc2UgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICAgICAgICB9ICAKICAgICAgICBpbmRleE8gPSBpbmRleDsKICAgICAgfSAgICAgICAgIAogICAgfQogICAgaW5kZXhQID0gaW5kZXg7CiAgICBlcnJvckNvdW50Kys7ICAgICAgIAogIH0KfQoKaWYgKGVycm9yQ291bnQgPiAwKSB7CiAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgfSBlbHNlIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgfSAgICAgCiAgJEVSUk9SKCdUb3RhbCBlcnJvcjogJyArIGVycm9yQ291bnQgKyAnIGJhZCBVbmljb2RlIGNoYXJhY3RlciBpbiAnICsgY291bnQgKyAnICcpOwp9CgpmdW5jdGlvbiBkZWNpbWFsVG9IZXhTdHJpbmcobikgewogIG4gPSBOdW1iZXIobik7CiAgdmFyIGggPSAiIjsKICBmb3IgKHZhciBpID0gMzsgaSA+PSAwOyBpLS0pIHsKICAgIGlmIChuID49IE1hdGgucG93KDE2LCBpKSkgewogICAgICB2YXIgdCA9IE1hdGguZmxvb3IobiAvIE1hdGgucG93KDE2LCBpKSk7CiAgICAgIG4gLT0gdCAqIE1hdGgucG93KDE2LCBpKTsKICAgICAgaWYgKCB0ID49IDEwICkgewogICAgICAgIGlmICggdCA9PSAxMCApIHsgaCArPSAiQSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTEgKSB7IGggKz0gIkIiOyB9CiAgICAgICAgaWYgKCB0ID09IDEyICkgeyBoICs9ICJDIjsgfQogICAgICAgIGlmICggdCA9PSAxMyApIHsgaCArPSAiRCI7IH0KICAgICAgICBpZiAoIHQgPT0gMTQgKSB7IGggKz0gIkUiOyB9CiAgICAgICAgaWYgKCB0ID09IDE1ICkgeyBoICs9ICJGIjsgfQogICAgICB9IGVsc2UgewogICAgICAgIGggKz0gU3RyaW5nKHQpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBoICs9ICIwIjsKICAgIH0KICB9CiAgcmV0dXJuIGg7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.2_A2.3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTIuNF9UMSIsCgpwYXRoOiAiMTUuMS4zLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1c2UgUkZDIDM2MjkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGVycm9yQ291bnQgPSAwOwpjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwoKZm9yIChpbmRleEIxID0gMHhFMDsgaW5kZXhCMSA8PSAweEVGOyBpbmRleEIxKyspIHsgICAgIAogIHZhciBoZXhCMSA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEIxKTsKICBmb3IgKGluZGV4QjIgPSAweDgwOyBpbmRleEIyIDw9IDB4QkY7IGluZGV4QjIrKykgewogICAgaWYgKChpbmRleEIxID09PSAweEUwKSAmJiAoaW5kZXhCMiA8PSAweDlGKSkgY29udGludWU7CiAgICBpZiAoKGluZGV4QjEgPT09IDB4RUQpICYmICgweEEwIDw9IGluZGV4QjIpKSBjb250aW51ZTsgICAgICAgICAKICAgIHZhciBoZXhCMiA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEIyKTsKICAgIGZvciAoaW5kZXhCMyA9IDB4ODA7IGluZGV4QjMgPD0gMHhCRjsgaW5kZXhCMysrKSB7CiAgICAgIGNvdW50Kys7CiAgICAgIHZhciBoZXhCMyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEIzKTsKICAgICAgdmFyIGluZGV4ID0gKGluZGV4QjEgJiAweDBGKSAqIDB4MTAwMCArIChpbmRleEIyICYgMHgzRikgKiAweDQwICsgKGluZGV4QjMgJiAweDNGKTsgIAogICAgICB0cnkgewogICAgICAgIGlmIChkZWNvZGVVUklDb21wb25lbnQoIiUiICsgaGV4QjEuc3Vic3RyaW5nKDIpICsgIiUiICsgaGV4QjIuc3Vic3RyaW5nKDIpICsgIiUiICsgaGV4QjMuc3Vic3RyaW5nKDIpKSA9PT0gU3RyaW5nLmZyb21DaGFyQ29kZShpbmRleCkpIGNvbnRpbnVlOyAgICAgICAgCiAgICAgIH0gY2F0Y2ggKGUpIHt9ICAgCiAgICAgIGlmIChpbmRleE8gPT09IDApIHsgCiAgICAgICAgaW5kZXhPID0gaW5kZXg7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKChpbmRleCAtIGluZGV4UCkgIT09IDEpIHsgICAgICAgICAgICAgCiAgICAgICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgICAgIH0gCiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICAgICAgfSAgCiAgICAgICAgICBpbmRleE8gPSBpbmRleDsKICAgICAgICB9ICAgICAgICAgCiAgICAgIH0KICAgICAgaW5kZXhQID0gaW5kZXg7CiAgICAgIGVycm9yQ291bnQrKzsgIAogICAgfSAgICAgCiAgfQp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.2_A2.4_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTIuNV9UMSIsCgpwYXRoOiAiMTUuMS4zLjIiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1c2UgUkZDIDM2MjkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGVycm9yQ291bnQgPSAwOwpjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwoKZm9yIChpbmRleEIxID0gMHhGMDsgaW5kZXhCMSA8PSAweEY0OyBpbmRleEIxKyspIHsgICAgIAogIHZhciBoZXhCMSA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEIxKTsKICBmb3IgKGluZGV4QjIgPSAweDgwOyBpbmRleEIyIDw9IDB4QkY7IGluZGV4QjIrKykgewogICAgaWYgKChpbmRleEIxID09PSAweEYwKSAmJiAoaW5kZXhCMiA8PSAweDlGKSkgY29udGludWU7ICAgICAgICAgICAgCiAgICBpZiAoKGluZGV4QjEgPT09IDB4RjQpICYmIChpbmRleEIyID49IDB4OTApKSBjb250aW51ZTsKICAgIHZhciBoZXhCMiA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEIyKTsKICAgIGZvciAoaW5kZXhCMyA9IDB4ODA7IGluZGV4QjMgPD0gMHhCRjsgaW5kZXhCMysrKSB7CiAgICAgIHZhciBoZXhCMyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleEIzKTsKICAgICAgZm9yIChpbmRleEI0ID0gMHg4MDsgaW5kZXhCNCA8PSAweEJGOyBpbmRleEI0KyspIHsKICAgICAgICB2YXIgaGV4QjQgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhCNCk7CiAgICAgICAgY291bnQrKzsKICAgICAgICB2YXIgaW5kZXggPSAoaW5kZXhCMSAmIDB4MDcpICogMHg0MDAwMCArIChpbmRleEIyICYgMHgzRikgKiAweDEwMDAgKyAoaW5kZXhCMyAmIDB4M0YpICogMHg0MCArIChpbmRleEI0ICYgMHgzRik7CiAgICAgICAgdmFyIEwgPSAoKGluZGV4IC0gMHgxMDAwMCkgJiAweDAzRkYpICsgMHhEQzAwOwogICAgICAgIHZhciBIID0gKCgoaW5kZXggLSAweDEwMDAwKSA+PiAxMCkgJiAweDAzRkYpICsgMHhEODAwOyAgCiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChkZWNvZGVVUklDb21wb25lbnQoIiUiICsgaGV4QjEuc3Vic3RyaW5nKDMpICsgIiUiICsgaGV4QjIuc3Vic3RyaW5nKDMpICsgIiUiICsgaGV4QjMuc3Vic3RyaW5nKDMpICsgIiUiICsgaGV4QjQuc3Vic3RyaW5nKDMpKSA9PT0gU3RyaW5nLmZyb21DaGFyQ29kZShIKSArIFN0cmluZy5mcm9tQ2hhckNvZGUoTCkpIGNvbnRpbnVlOyAgICAgICAgCiAgICAgICAgfSBjYXRjaCAoZSkge30gICAKICAgICAgICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgICAgICAgaW5kZXhPID0gaW5kZXg7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGlmICgoaW5kZXggLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICAgICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgICAgICAgfSAKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgICAgICAgIH0gIAogICAgICAgICAgICBpbmRleE8gPSBpbmRleDsKICAgICAgICAgIH0gICAgICAgICAKICAgICAgICB9CiAgICAgICAgaW5kZXhQID0gaW5kZXg7CiAgICAgICAgZXJyb3JDb3VudCsrOyAgCiAgICAgIH0KICAgIH0gICAgIAogIH0KfQoKaWYgKGVycm9yQ291bnQgPiAwKSB7CiAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgfSBlbHNlIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgfSAgICAgCiAgJEVSUk9SKCdUb3RhbCBlcnJvcjogJyArIGVycm9yQ291bnQgKyAnIGJhZCBVbmljb2RlIGNoYXJhY3RlciBpbiAnICsgY291bnQgKyAnICcpOwp9CgpmdW5jdGlvbiBkZWNpbWFsVG9IZXhTdHJpbmcobikgewogIG4gPSBOdW1iZXIobik7CiAgdmFyIGggPSAiIjsKICBmb3IgKHZhciBpID0gNDsgaSA+PSAwOyBpLS0pIHsKICAgIGlmIChuID49IE1hdGgucG93KDE2LCBpKSkgewogICAgICB2YXIgdCA9IE1hdGguZmxvb3IobiAvIE1hdGgucG93KDE2LCBpKSk7CiAgICAgIG4gLT0gdCAqIE1hdGgucG93KDE2LCBpKTsKICAgICAgaWYgKCB0ID49IDEwICkgewogICAgICAgIGlmICggdCA9PSAxMCApIHsgaCArPSAiQSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTEgKSB7IGggKz0gIkIiOyB9CiAgICAgICAgaWYgKCB0ID09IDEyICkgeyBoICs9ICJDIjsgfQogICAgICAgIGlmICggdCA9PSAxMyApIHsgaCArPSAiRCI7IH0KICAgICAgICBpZiAoIHQgPT0gMTQgKSB7IGggKz0gIkUiOyB9CiAgICAgICAgaWYgKCB0ID09IDE1ICkgeyBoICs9ICJGIjsgfQogICAgICB9IGVsc2UgewogICAgICAgIGggKz0gU3RyaW5nKHQpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBoICs9ICIwIjsKICAgIH0KICB9CiAgcmV0dXJuIGg7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.2_A2.5_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTNfVDEiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAidXJpUmVzZXJ2ZWQgYW5kIFwiI1wiIG5vdCBpbiByZXNlcnZlZFVSSUNvbXBvbmVudFNldC4gSGV4RGlnaXQgaW4gWzAuLjksIEEuLkZdIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKGRlY29kZVVSSUNvbXBvbmVudCgiJTNCIikgIT09ICI7IikgewogICRFUlJPUignIzE6IGRlY29kZVVSSUNvbXBvbmVudCgiJTNCIikgZXF1YWwgIjsiLCBub3QgIiUzQiInKTsKfQoKLy9DSEVDSyMyCmlmIChkZWNvZGVVUklDb21wb25lbnQoIiUyRiIpICE9PSAiLyIpIHsKICAkRVJST1IoJyMyOiBkZWNvZGVVUklDb21wb25lbnQoIiUyRiIpIGVxdWFsICIvIiwgbm90ICIlMkYiJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZGVjb2RlVVJJQ29tcG9uZW50KCIlM0YiKSAhPT0gIj8iKSB7CiAgJEVSUk9SKCcjMzogZGVjb2RlVVJJQ29tcG9uZW50KCIlM0YiKSBlcXVhbCAiPyIsIG5vdCAiJTNGIicpOwp9CgovL0NIRUNLIzQKaWYgKGRlY29kZVVSSUNvbXBvbmVudCgiJTNBIikgIT09ICI6IikgewogICRFUlJPUignIzQ6IGRlY29kZVVSSUNvbXBvbmVudCgiJTNBIikgZXF1YWwgIjoiLCBub3QgIiUzQSInKTsKfQoKLy9DSEVDSyM1CmlmIChkZWNvZGVVUklDb21wb25lbnQoIiU0MCIpICE9PSAiQCIpIHsKICAkRVJST1IoJyM1OiBkZWNvZGVVUklDb21wb25lbnQoIiU0MCIpIGVxdWFsICJAIiwgbm90ICIlNDAiJyk7Cn0KCi8vQ0hFQ0sjNgppZiAoZGVjb2RlVVJJQ29tcG9uZW50KCIlMjYiKSAhPT0gIiYiKSB7CiAgJEVSUk9SKCcjNjogZGVjb2RlVVJJQ29tcG9uZW50KCIlMjYiKSBlcXVhbCAiJiIsIG5vdCAiJTI2IicpOwp9CgovL0NIRUNLIzcKaWYgKGRlY29kZVVSSUNvbXBvbmVudCgiJTNEIikgIT09ICI9IikgewogICRFUlJPUignIzcuMTogZGVjb2RlVVJJQ29tcG9uZW50KCIlM0QiKSBlcXVhbCAiPSIsIG5vdCAiJTNEIicpOwp9CgovL0NIRUNLIzgKaWYgKGRlY29kZVVSSUNvbXBvbmVudCgiJTJCIikgIT09ICIrIikgewogICRFUlJPUignIzguMTogZGVjb2RlVVJJQ29tcG9uZW50KCIlMkIiKSBlcXVhbCAiKyIsIG5vdCAiJTJCIicpOwp9CgovL0NIRUNLIzkKaWYgKGRlY29kZVVSSUNvbXBvbmVudCgiJTI0IikgIT09ICIkIikgewogICRFUlJPUignIzk6IGRlY29kZVVSSUNvbXBvbmVudCgiJTI0IikgZXF1YWwgIiQiLCBub3QgIiUyNCInKTsKfQoKLy9DSEVDSyMxMAppZiAoZGVjb2RlVVJJQ29tcG9uZW50KCIlMkMiKSAhPT0gIiwiKSB7CiAgJEVSUk9SKCcjMTA6IGRlY29kZVVSSUNvbXBvbmVudCgiJTJDIikgZXF1YWwgIiwiLCBub3QgIiUyQyInKTsKfQoKLy9DSEVDSyMxMQppZiAoZGVjb2RlVVJJQ29tcG9uZW50KCIlMjMiKSAhPT0gIiMiKSB7CiAgJEVSUk9SKCcjMTE6IGRlY29kZVVSSUNvbXBvbmVudCgiJTIzIikgZXF1YWwgIiMiLCBub3QgIiUyMyInKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.2_A3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTNfVDIiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAidXJpUmVzZXJ2ZWQgYW5kIFwiI1wiIG5vdCBpbiByZXNlcnZlZFVSSUNvbXBvbmVudFNldC4gSGV4RGlnaXQgaW4gWzAuLjksIGEuLmZdIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKGRlY29kZVVSSUNvbXBvbmVudCgiJTNiIikgIT09ICI7IikgewogICRFUlJPUignIzE6IGRlY29kZVVSSUNvbXBvbmVudCgiJTNiIikgZXF1YWwgIjsiLCBub3QgIiUzQiIgb3IgIiUzYiInKTsKfQoKLy9DSEVDSyMyCmlmIChkZWNvZGVVUklDb21wb25lbnQoIiUyZiIpICE9PSAiLyIpIHsKICAkRVJST1IoJyMyOiBkZWNvZGVVUklDb21wb25lbnQoIiUyZiIpIGVxdWFsICIvIiwgbm90ICIlMkYiIG9yICIlMmYiJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZGVjb2RlVVJJQ29tcG9uZW50KCIlM2YiKSAhPT0gIj8iKSB7CiAgJEVSUk9SKCcjMzogZGVjb2RlVVJJQ29tcG9uZW50KCIlM2YiKSBlcXVhbCAiPyIsIG5vdCAiJTNGIiBvciAiJTNmIicpOwp9CgovL0NIRUNLIzQKaWYgKGRlY29kZVVSSUNvbXBvbmVudCgiJTNhIikgIT09ICI6IikgewogICRFUlJPUignIzQ6IGRlY29kZVVSSUNvbXBvbmVudCgiJTNhIikgZXF1YWwgIjoiLCBub3QgIiUzQSIgb3IgIiUzYSInKTsKfQoKLy9DSEVDSyM1CmlmIChkZWNvZGVVUklDb21wb25lbnQoIiU0MCIpICE9PSAiQCIpIHsKICAkRVJST1IoJyM1OiBkZWNvZGVVUklDb21wb25lbnQoIiU0MCIpIGVxdWFsICJAIiwgbm90ICIlNDAiJyk7Cn0KCi8vQ0hFQ0sjNgppZiAoZGVjb2RlVVJJQ29tcG9uZW50KCIlMjYiKSAhPT0gIiYiKSB7CiAgJEVSUk9SKCcjNjogZGVjb2RlVVJJQ29tcG9uZW50KCIlMjYiKSBlcXVhbCAiJiIsIG5vdCAiJTI2IicpOwp9CgovL0NIRUNLIzcKaWYgKGRlY29kZVVSSUNvbXBvbmVudCgiJTNkIikgIT09ICI9IikgewogICRFUlJPUignIzcuMTogZGVjb2RlVVJJQ29tcG9uZW50KCIlM2QiKSBlcXVhbCAiPSIsIG5vdCAiJTNEIiBvciAiJTNkIicpOwp9CgovL0NIRUNLIzgKaWYgKGRlY29kZVVSSUNvbXBvbmVudCgiJTJiIikgIT09ICIrIikgewogICRFUlJPUignIzguMTogZGVjb2RlVVJJQ29tcG9uZW50KCIlMmIiKSBlcXVhbCAiKyIsIG5vdCAiJTJCIiBvciAiJTJiIicpOwp9CgovL0NIRUNLIzkKaWYgKGRlY29kZVVSSUNvbXBvbmVudCgiJTI0IikgIT09ICIkIikgewogICRFUlJPUignIzk6IGRlY29kZVVSSUNvbXBvbmVudCgiJTI0IikgZXF1YWwgIiQiLCBub3QgIiUyNCInKTsKfQoKLy9DSEVDSyMxMAppZiAoZGVjb2RlVVJJQ29tcG9uZW50KCIlMmMiKSAhPT0gIiwiKSB7CiAgJEVSUk9SKCcjMTA6IGRlY29kZVVSSUNvbXBvbmVudCgiJTJjIikgZXF1YWwgIiwiLCBub3QgIiUyQyIgb3IgIiUyYyInKTsKfQoKLy9DSEVDSyMxMQppZiAoZGVjb2RlVVJJQ29tcG9uZW50KCIlMjMiKSAhPT0gIiMiKSB7CiAgJEVSUk9SKCcjMTE6IGRlY29kZVVSSUNvbXBvbmVudCgiJTIzIikgZXF1YWwgIiMiLCBub3QgIiUyMyInKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.2_A3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTNfVDMiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ29tcGxleCB0ZXN0IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKGRlY29kZVVSSUNvbXBvbmVudCgiJTNCJTJGJTNGJTNBJTQwJTI2JTNEJTJCJTI0JTJDJTIzIikgIT09ICI7Lz86QCY9KyQsIyIpIHsKICAkRVJST1IoJyMxOiBkZWNvZGVVUklDb21wb25lbnQoIiUzQiUyRiUzRiUzQSU0MCUyNiUzRCUyQiUyNCUyQyUyMyIpIGVxdWFsICI7Lz86QCY9KyQsIyIsIG5vdCAiJTNCJTJGJTNGJTNBJTQwJTI2JTNEJTJCJTI0JTJDJTIzIicpOwp9CgovL0NIRUNLIzIKaWYgKGRlY29kZVVSSUNvbXBvbmVudCgiJTNiJTJmJTNmJTNhJTQwJTI2JTNkJTJiJTI0JTJjJTIzIikgIT09ICI7Lz86QCY9KyQsIyIpIHsKICAkRVJST1IoJyMyOiBkZWNvZGVVUklDb21wb25lbnQoIiUzYiUyZiUzZiUzYSU0MCUyNiUzZCUyYiUyNCUyYyUyMyIpIGVxdWFsICI7Lz86QCY9KyQsIyIgb3IgIiUzQiUyRiUzRiUzQSU0MCUyNiUzRCUyQiUyNCUyQyUyMyIsIG5vdCAiJTNiJTJmJTNmJTNhJTQwJTI2JTNkJTJiJTI0JTJjJTIzIicpOwp9CgogfQp9KTsKCg==","id":"S15.1.3.2_A3_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTRfVDEiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgRU5HTElTSCBBTFBIQUJFVCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChkZWNvZGVVUklDb21wb25lbnQoImh0dHA6Ly91bmlwcm8ucnUvMDEyMzQ1Njc4OSIpICE9PSAiaHR0cDovL3VuaXByby5ydS8wMTIzNDU2Nzg5IikgewogICRFUlJPUignIzE6IGh0dHA6Ly91bmlwcm8ucnUvMDEyMzQ1Njc4OScpOwp9CgovL0NIRUNLIzIKaWYgKGRlY29kZVVSSUNvbXBvbmVudCgiJTQxJTQyJTQzJTQ0JTQ1JTQ2JTQ3JTQ4JTQ5JTRBJTRCJTRDJTREJTRFJTRGJTUwJTUxJTUyJTUzJTU0JTU1JTU2JTU3JTU4JTU5JTVBIikgIT09ICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiIpIHsKICAkRVJST1IoJyMyOiBBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicpOwp9CgovL0NIRUNLIzMKaWYgKGRlY29kZVVSSUNvbXBvbmVudCgiJTYxJTYyJTYzJTY0JTY1JTY2JTY3JTY4JTY5JTZBJTZCJTZDJTZEJTZFJTZGJTcwJTcxJTcyJTczJTc0JTc1JTc2JTc3JTc4JTc5JTdBIikgIT09ICJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpIHsKICAkRVJST1IoJyMzOiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicpOwp9CgogfQp9KTsKCg==","id":"S15.1.3.2_A4_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTRfVDIiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgUlVTU0lBTiBBTFBIQUJFVCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChkZWNvZGVVUklDb21wb25lbnQoImh0dHA6Ly9ydS53aWtpcGVkaWEub3JnL3dpa2kvJWQwJWFlJUQwJWJkJUQwJUI4JUQwJUJBJUQwJUJFJUQwJUI0IikgIT09ICJodHRwOi8vcnUud2lraXBlZGlhLm9yZy93aWtpL9Cu0L3QuNC60L7QtCIpIHsKICAkRVJST1IoJyMxOiBodHRwOi8vcnUud2lraXBlZGlhLm9yZy93aWtpL9Cu0L3QuNC60L7QtCcpOwp9CgovL0NIRUNLIzIKaWYgKGRlY29kZVVSSUNvbXBvbmVudCgiaHR0cDovL3J1Lndpa2lwZWRpYS5vcmcvd2lraS8lRDAlQUUlRDAlQkQlRDAlQjglRDAlQkElRDAlQkUlRDAlQjQjJUQwJUExJUQxJTgxJUQxJThCJUQwJUJCJUQwJUJBJUQwJUI4IikgIT09ICJodHRwOi8vcnUud2lraXBlZGlhLm9yZy93aWtpL9Cu0L3QuNC60L7QtCPQodGB0YvQu9C60LgiKSB7CiAgJEVSUk9SKCcjMjogaHR0cDovL3J1Lndpa2lwZWRpYS5vcmcvd2lraS/QrtC90LjQutC+0LQj0KHRgdGL0LvQutC4Jyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZGVjb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vcnUud2lraXBlZGlhLm9yZy93aWtpLyVEMCVBRSVEMCVCRCVEMCVCOCVEMCVCQSVEMCVCRSVEMCVCNCUyMyVEMCU5MiVEMCVCNSVEMSU4MCVEMSU4MSVEMCVCOCVEMCVCOCUyMCVEMCVBRSVEMCVCRCVEMCVCOCVEMCVCQSVEMCVCRSVEMCVCNCVEMCVCMCIpICE9PSAiaHR0cDovL3J1Lndpa2lwZWRpYS5vcmcvd2lraS/QrtC90LjQutC+0LQj0JLQtdGA0YHQuNC4INCu0L3QuNC60L7QtNCwIikgewogICRFUlJPUignIzM6IGh0dHA6Ly9ydS53aWtpcGVkaWEub3JnL3dpa2kv0K7QvdC40LrQvtC0JTIz0JLQtdGA0YHQuNC4INCu0L3QuNC60L7QtNCwJyk7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.2_A4_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTRfVDMiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgVVJMIHdpdGggTGluZSBUZXJtaW5hdG9yIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKGRlY29kZVVSSUNvbXBvbmVudCgiaHR0cDovL3VuaXByby5ydS8lMEFhYm91dCIpICE9PSAiaHR0cDovL3VuaXByby5ydS9cbmFib3V0IikgewogICRFUlJPUignIzE6IGh0dHA6Ly91bmlwcm8ucnUvJUEwYWJvdXQnKTsKfQoKLy9DSEVDSyMyCmlmIChkZWNvZGVVUklDb21wb25lbnQoImh0dHA6Ly91bmlwcm8ucnUvJTBCYWJvdXQiKSAhPT0gImh0dHA6Ly91bmlwcm8ucnUvXHZhYm91dCIpIHsKICAkRVJST1IoJyMyOiBodHRwOi8vdW5pcHJvLnJ1LyUwQmFib3V0Jyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZGVjb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vdW5pcHJvLnJ1LyUwQ2Fib3V0IikgIT09ICJodHRwOi8vdW5pcHJvLnJ1L1xmYWJvdXQiKSB7CiAgJEVSUk9SKCcjMzogaHR0cDovL3VuaXByby5ydS8lMENhYm91dCcpOwp9CgovL0NIRUNLIzQKaWYgKGRlY29kZVVSSUNvbXBvbmVudCgiaHR0cDovL3VuaXByby5ydS8lMERhYm91dCIpICE9PSAiaHR0cDovL3VuaXByby5ydS9ccmFib3V0IikgewogICRFUlJPUignIzQ6IGh0dHA6Ly91bmlwcm8ucnUvJTBEYWJvdXQnKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.2_A4_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTRfVDQiLAoKcGF0aDogIjE1LjEuMy4yIiwKCmRlc2NyaXB0aW9uOiAiVGVzdCBzb21lIHVybCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChkZWNvZGVVUklDb21wb25lbnQoIiIpICE9PSAiIikgewogICRFUlJPUignIzE6ICIiJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoZGVjb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vdW5pcHJvLnJ1IikgIT09ICJodHRwOi8vdW5pcHJvLnJ1IikgewogICRFUlJPUignIzI6IGh0dHA6Ly91bmlwcm8ucnUnKTsKfQoKLy9DSEVDSyMzCmlmIChkZWNvZGVVUklDb21wb25lbnQoImh0dHA6JTJmJTJGd3d3Lmdvb2dsZS5ydS9zdXBwb3J0L2pvYnMvYmluL3N0YXRpYy5weSUzRnBhZ2UlM2R3aHktcnUuaHRtbCUyNnNpZCUzRGxpdmVhbmR3b3JrIikgIT09ICJodHRwOi8vd3d3Lmdvb2dsZS5ydS9zdXBwb3J0L2pvYnMvYmluL3N0YXRpYy5weT9wYWdlPXdoeS1ydS5odG1sJnNpZD1saXZlYW5kd29yayIpIHsKICAkRVJST1IoJyMzOiBodHRwOiUyZiUyRnd3dy5nb29nbGUucnUvc3VwcG9ydC9qb2JzL2Jpbi9zdGF0aWMucHklM0ZwYWdlM2R3aHktcnUuaHRtbCUyNnNpZDNEbGl2ZWFuZHdvcmsiJyk7Cn0gICAgICAgICAgIAoKLy9DSEVDSyM0CmlmIChkZWNvZGVVUklDb21wb25lbnQoImh0dHA6JTJGJTJGZW4ud2lraXBlZGlhLm9yZy93aWtpL1VURi04JTIzRGVzY3JpcHRpb24iKSAhPT0gImh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVVRGLTgjRGVzY3JpcHRpb24iKSB7CiAgJEVSUk9SKCcjNDogaHR0cDolMkYlMkZlbi53aWtpcGVkaWEub3JnL3dpa2kvVVRGLTglMjNEZXNjcmlwdGlvbicpOwp9CgogfQp9KTsKCg==","id":"S15.1.3.2_A4_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTUuMSIsCgpwYXRoOiAiMTUuMS4zLjIsIDE1LjIuNC43LCAxMi42LjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgcHJvcGVydHlJc0VudW1lcmFibGUsIGZvci1pbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChkZWNvZGVVUklDb21wb25lbnQucHJvcGVydHlJc0VudW1lcmFibGUoJ2xlbmd0aCcpICE9PSBmYWxzZSkgewogICRFUlJPUignIzE6IGRlY29kZVVSSUNvbXBvbmVudC5wcm9wZXJ0eUlzRW51bWVyYWJsZShcJ2xlbmd0aFwnKSA9PT0gZmFsc2UuIEFjdHVhbDogJyArIChkZWNvZGVVUklDb21wb25lbnQucHJvcGVydHlJc0VudW1lcmFibGUoJ2xlbmd0aCcpKSk7Cn0KCi8vQ0hFQ0sjMgpyZXN1bHQgPSB0cnVlOwpmb3IgKHAgaW4gZGVjb2RlVVJJQ29tcG9uZW50KXsKICBpZiAocCA9PT0gImxlbmd0aCIpIHsKICAgIHJlc3VsdCA9IGZhbHNlOwogIH0gIAp9CgppZiAocmVzdWx0ICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMjogcmVzdWx0ID0gdHJ1ZTsgZm9yIChwIGluIGRlY29kZVVSSUNvbXBvbmVudCkgeyBpZiAocCA9PT0gImxlbmd0aCIpIHJlc3VsdCA9IGZhbHNlOyB9ICByZXN1bHQgPT09IHRydWU7Jyk7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.2_A5.1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTUuMiIsCgpwYXRoOiAiMTUuMS4zLjIsIDE1LjIuNC41LCAxMS40LjEiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgaGFzT3duUHJvcGVydHksIGRlbGV0ZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChkZWNvZGVVUklDb21wb25lbnQuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpICE9PSB0cnVlKSB7CiAgJEZBSUwoJyMxOiBkZWNvZGVVUklDb21wb25lbnQuaGFzT3duUHJvcGVydHkoXCdsZW5ndGhcJykgPT09IHRydWUuIEFjdHVhbDogJyArIChkZWNvZGVVUklDb21wb25lbnQuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSk7Cn0KCmRlbGV0ZSBkZWNvZGVVUklDb21wb25lbnQubGVuZ3RoOwoKLy9DSEVDSyMyCmlmIChkZWNvZGVVUklDb21wb25lbnQuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMjogZGVsZXRlIGRlY29kZVVSSUNvbXBvbmVudC5sZW5ndGg7IGRlY29kZVVSSUNvbXBvbmVudC5oYXNPd25Qcm9wZXJ0eShcJ2xlbmd0aFwnKSA9PT0gdHJ1ZS4gQWN0dWFsOiAnICsgKGRlY29kZVVSSUNvbXBvbmVudC5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKTsKfQoKLy9DSEVDSyMzCmlmIChkZWNvZGVVUklDb21wb25lbnQubGVuZ3RoID09PSB1bmRlZmluZWQpIHsKICAkRVJST1IoJyMzOiBkZWxldGUgZGVjb2RlVVJJQ29tcG9uZW50Lmxlbmd0aDsgZGVjb2RlVVJJQ29tcG9uZW50Lmxlbmd0aCAhPT0gdW5kZWZpbmVkJyk7Cn0KCgoKCiB9Cn0pOwoK","id":"S15.1.3.2_A5.2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTUuMyIsCgpwYXRoOiAiMTUuMS4zLjIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiB2YXJ5aW5nIHRoZSBsZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp4ID0gZGVjb2RlVVJJQ29tcG9uZW50Lmxlbmd0aDsKZGVjb2RlVVJJQ29tcG9uZW50Lmxlbmd0aCA9IEluZmluaXR5OwppZiAoZGVjb2RlVVJJQ29tcG9uZW50Lmxlbmd0aCAhPT0geCkgewogICRFUlJPUignIzE6IHggPSBkZWNvZGVVUklDb21wb25lbnQubGVuZ3RoOyBkZWNvZGVVUklDb21wb25lbnQubGVuZ3RoID0gSW5maW5pdHk7IGRlY29kZVVSSUNvbXBvbmVudC5sZW5ndGggPT09IHguIEFjdHVhbDogJyArIChkZWNvZGVVUklDb21wb25lbnQubGVuZ3RoKSk7Cn0KCgogfQp9KTsKCg==","id":"S15.1.3.2_A5.3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTUuNCIsCgpwYXRoOiAiMTUuMS4zLjIiLAoKZGVzY3JpcHRpb246ICJkZWNvZGVVUklDb21wb25lbnQubGVuZ3RoID09PSAxIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKGRlY29kZVVSSUNvbXBvbmVudC5sZW5ndGggIT09IDEpIHsKICAkRVJST1IoJyMxOiBkZWNvZGVVUklDb21wb25lbnQubGVuZ3RoID09PSAxLiBBY3R1YWw6ICcgKyAoZGVjb2RlVVJJQ29tcG9uZW50Lmxlbmd0aCkpOwp9IAoKCiB9Cn0pOwoK","id":"S15.1.3.2_A5.4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTUuNSIsCgpwYXRoOiAiMTUuMS4zLjIsIDE1LjIuNC43LCAxMi42LjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgcHJvcGVydHlJc0VudW1lcmFibGUsIGZvci1pbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICh0aGlzLnByb3BlcnR5SXNFbnVtZXJhYmxlKCdkZWNvZGVVUklDb21wb25lbnQnKSAhPT0gZmFsc2UpIHsKICAkRVJST1IoJyMxOiB0aGlzLnByb3BlcnR5SXNFbnVtZXJhYmxlKFwnZGVjb2RlVVJJQ29tcG9uZW50XCcpID09PSBmYWxzZS4gQWN0dWFsOiAnICsgKHRoaXMucHJvcGVydHlJc0VudW1lcmFibGUoJ2RlY29kZVVSSUNvbXBvbmVudCcpKSk7Cn0KCi8vQ0hFQ0sjMgpyZXN1bHQgPSB0cnVlOwpmb3IgKHAgaW4gdGhpcyl7CiAgaWYgKHAgPT09ICJkZWNvZGVVUklDb21wb25lbnQiKSB7CiAgICByZXN1bHQgPSBmYWxzZTsKICB9ICAKfQoKaWYgKHJlc3VsdCAhPT0gdHJ1ZSkgewogICRFUlJPUignIzI6IHJlc3VsdCA9IHRydWU7IGZvciAocCBpbiB0aGlzKSB7IGlmIChwID09PSAiZGVjb2RlVVJJQ29tcG9uZW50IikgcmVzdWx0ID0gZmFsc2U7IH0gIHJlc3VsdCA9PT0gdHJ1ZTsnKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.2_A5.5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTUuNiIsCgpwYXRoOiAiMTUuMS4zLjIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBkZWNvZGVVUklDb21wb25lbnQucHJvdG90eXBlIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKGRlY29kZVVSSUNvbXBvbmVudC5wcm90b3R5cGUgIT09IHVuZGVmaW5lZCkgewogICRFUlJPUignIzE6IGRlY29kZVVSSUNvbXBvbmVudC5wcm90b3R5cGUgPT09IHVuZGVmaW5lZC4gQWN0dWFsOiAnICsgKGRlY29kZVVSSUNvbXBvbmVudC5wcm90b3R5cGUpKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.2_A5.6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTUuNyIsCgpwYXRoOiAiMTUuMS4zLjIsIDExLjIuMiIsCgpkZXNjcmlwdGlvbjogIklmIHByb3BlcnR5IGRvZXMgbm90IGltcGxlbWVudCB0aGUgaW50ZXJuYWwgW1tDb25zdHJ1Y3RdXSBtZXRob2QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCgp0cnkgewogIG5ldyBkZWNvZGVVUklDb21wb25lbnQoKTsKICAkRVJST1IoJyMxLjE6IG5ldyBkZWNvZGVVUklDb21wb25lbnQoKSB0aHJvdyBUeXBlRXJyb3IuIEFjdHVhbDogJyArIChuZXcgZGVjb2RlVVJJQ29tcG9uZW50KCkpKTsKfSBjYXRjaCAoZSkgewogIGlmICgoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikgIT09IHRydWUpIHsKICAgICRFUlJPUignIzEuMjogbmV3IGRlY29kZVVSSUNvbXBvbmVudCgpIHRocm93IFR5cGVFcnJvci4gQWN0dWFsOiAnICsgKGUpKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.1.3.2_A5.7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjJfQTZfVDEiLAoKcGF0aDogIjE1LjEuMy4yLCA5LjgsIDguNi4yLjYiLAoKZGVzY3JpcHRpb246ICJJZiBUeXBlKHZhbHVlKSBpcyBPYmplY3QsIGV2YWx1YXRlIFRvUHJpbWl0aXZlKHZhbHVlLCBTdHJpbmcpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4gIiU1RSJ9fTsKaWYgKGRlY29kZVVSSUNvbXBvbmVudChvYmplY3QpICE9PSAiW29iamVjdCBPYmplY3RdIikgewogICRFUlJPUignIzE6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuICIlNUUifX07IGRlY29kZVVSSUNvbXBvbmVudChvYmplY3QpID09PSBbb2JqZWN0IE9iamVjdF0uIEFjdHVhbDogJyArIChkZWNvZGVVUklDb21wb25lbnQob2JqZWN0KSkpOwp9CgovL0NIRUNLIzIKdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4gIiJ9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuICIlNUUifX07CmlmIChkZWNvZGVVUklDb21wb25lbnQob2JqZWN0KSAhPT0gIl4iKSB7CiAgJEVSUk9SKCcjMjogdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4gIiJ9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuICIlNUUifX07IGRlY29kZVVSSUNvbXBvbmVudChvYmplY3QpID09PSAiXiIuIEFjdHVhbDogJyArIChkZWNvZGVVUklDb21wb25lbnQob2JqZWN0KSkpOwp9IAoKLy9DSEVDSyMzCnZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuICIlNUUifSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiB7fX19OwppZiAoZGVjb2RlVVJJQ29tcG9uZW50KG9iamVjdCkgIT09ICJeIikgewogICRFUlJPUignIzM6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuICIlNUUifSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiB7fX19OyBkZWNvZGVVUklDb21wb25lbnQob2JqZWN0KSA9PT0gIl4iLiBBY3R1YWw6ICcgKyAoZGVjb2RlVVJJQ29tcG9uZW50KG9iamVjdCkpKTsKfQoKLy9DSEVDSyM0CnRyeSB7CiAgdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHt0aHJvdyAiZXJyb3IifSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiAiJTVFIn19OwogIGlmIChkZWNvZGVVUklDb21wb25lbnQob2JqZWN0KSAhPT0gIl4iKSB7CiAgICAkRVJST1IoJyM0LjE6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7dGhyb3cgImVycm9yIn0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4gIiU1RSJ9fTsgZGVjb2RlVVJJQ29tcG9uZW50KG9iamVjdCkgPT09ICJeIi4gQWN0dWFsOiAnICsgKGRlY29kZVVSSUNvbXBvbmVudChvYmplY3QpKSk7CiAgfQp9CmNhdGNoIChlKSB7CiAgaWYgKGUgPT09ICJlcnJvciIpIHsKICAgICRFUlJPUignIzQuMjogdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHt0aHJvdyAiZXJyb3IifSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiAiJTVFIn19OyBkZWNvZGVVUklDb21wb25lbnQob2JqZWN0KSBub3QgdGhyb3cgImVycm9yIicpOwogIH0gZWxzZSB7CiAgICAkRVJST1IoJyM0LjM6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7dGhyb3cgImVycm9yIn0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4gIiU1RSJ9fTsgZGVjb2RlVVJJQ29tcG9uZW50KG9iamVjdCkgbm90IHRocm93IEVycm9yLiBBY3R1YWw6ICcgKyAoZSkpOwogIH0KfQoKLy9DSEVDSyM1CnZhciBvYmplY3QgPSB7dG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiAiJTVFIn19OwppZiAoZGVjb2RlVVJJQ29tcG9uZW50KG9iamVjdCkgIT09ICJeIikgewogICRFUlJPUignIzU6IHZhciBvYmplY3QgPSB7dG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiAiJTVFIn19OyBkZWNvZGVVUklDb21wb25lbnQob2JqZWN0KSA9PT0gIl4iLiBBY3R1YWw6ICcgKyAoZGVjb2RlVVJJQ29tcG9uZW50KG9iamVjdCkpKTsKfQoKLy9DSEVDSyM2CnZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuIHt9fSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiAiJTVFIn19CmlmIChkZWNvZGVVUklDb21wb25lbnQob2JqZWN0KSAhPT0gIl4iKSB7CiAgJEVSUk9SKCcjNjogdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4ge319LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuICIlNUUifX07IGRlY29kZVVSSUNvbXBvbmVudChvYmplY3QpID09PSAiXiIuIEFjdHVhbDogJyArIChkZWNvZGVVUklDb21wb25lbnQob2JqZWN0KSkpOwp9CgovL0NIRUNLIzcKdHJ5IHsKICB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiAiJTVFIn0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHt0aHJvdyAiZXJyb3IifX07CiAgZGVjb2RlVVJJQ29tcG9uZW50KG9iamVjdCk7CiAgJEVSUk9SKCcjNy4xOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiAiJTVFIn0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHt0aHJvdyAiZXJyb3IifX07IGRlY29kZVVSSUNvbXBvbmVudChvYmplY3QpIHRocm93ICJlcnJvciIuIEFjdHVhbDogJyArIChkZWNvZGVVUklDb21wb25lbnQob2JqZWN0KSkpOwp9ICAKY2F0Y2ggKGUpIHsKICBpZiAoZSAhPT0gImVycm9yIikgewogICAgJEVSUk9SKCcjNy4yOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiAiJTVFIn0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHt0aHJvdyAiZXJyb3IifX07IGRlY29kZVVSSUNvbXBvbmVudChvYmplY3QpIHRocm93ICJlcnJvciIuIEFjdHVhbDogJyArIChlKSk7CiAgfSAKfQoKLy9DSEVDSyM4CnRyeSB7CiAgdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4ge319LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIHt9fX07CiAgZGVjb2RlVVJJQ29tcG9uZW50KG9iamVjdCk7CiAgJEVSUk9SKCcjOC4xOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiB7fX0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4ge319fTsgZGVjb2RlVVJJQ29tcG9uZW50KG9iamVjdCkgdGhyb3cgVHlwZUVycm9yLiBBY3R1YWw6ICcgKyAoZGVjb2RlVVJJQ29tcG9uZW50KG9iamVjdCkpKTsKfSAgCmNhdGNoIChlKSB7CiAgaWYgKChlIGluc3RhbmNlb2YgVHlwZUVycm9yKSAhPT0gdHJ1ZSkgewogICAgJEVSUk9SKCcjOC4yOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiB7fX0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4ge319fTsgZGVjb2RlVVJJQ29tcG9uZW50KG9iamVjdCkgdGhyb3cgVHlwZUVycm9yLiBBY3R1YWw6ICcgKyAoZSkpOwogIH0gCn0KCiB9Cn0pOwoK","id":"S15.1.3.2_A6_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTEuMV9UMSIsCgpwYXRoOiAiMTUuMS4zLjMiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBlcnJvckNvdW50ID0gMDsKY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmZvciAoaW5kZXggPSAweERDMDA7IGluZGV4IDw9IDB4REZGRjsgaW5kZXgrKykgewogIGNvdW50Kys7IAogIGhleCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleCk7CiAgdHJ5IHsKICAgIGVuY29kZVVSSShTdHJpbmcuZnJvbUNoYXJDb2RlKGluZGV4KSk7CiAgfSBjYXRjaCAoZSkgeyAKICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSA9PT0gdHJ1ZSkgY29udGludWU7ICAgICAgICAgICAgICAgIAogIH0KICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgaW5kZXhPID0gaW5kZXg7CiAgfSBlbHNlIHsKICAgIGlmICgoaW5kZXggLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgfSAKICAgICAgZWxzZSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgIH0gIAogICAgICBpbmRleE8gPSBpbmRleDsKICAgIH0gICAgICAgICAKICB9CiAgaW5kZXhQID0gaW5kZXg7CiAgZXJyb3JDb3VudCsrOyAgICAgICAKfQoKaWYgKGVycm9yQ291bnQgPiAwKSB7CiAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgfSBlbHNlIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgfSAgICAgCiAgJEVSUk9SKCdUb3RhbCBlcnJvcjogJyArIGVycm9yQ291bnQgKyAnIGJhZCBVbmljb2RlIGNoYXJhY3RlciBpbiAnICsgY291bnQgKyAnICcpOwp9CgpmdW5jdGlvbiBkZWNpbWFsVG9IZXhTdHJpbmcobikgewogIG4gPSBOdW1iZXIobik7CiAgdmFyIGggPSAiIjsKICBmb3IgKHZhciBpID0gMzsgaSA+PSAwOyBpLS0pIHsKICAgIGlmIChuID49IE1hdGgucG93KDE2LCBpKSkgewogICAgICB2YXIgdCA9IE1hdGguZmxvb3IobiAvIE1hdGgucG93KDE2LCBpKSk7CiAgICAgIG4gLT0gdCAqIE1hdGgucG93KDE2LCBpKTsKICAgICAgaWYgKCB0ID49IDEwICkgewogICAgICAgIGlmICggdCA9PSAxMCApIHsgaCArPSAiQSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTEgKSB7IGggKz0gIkIiOyB9CiAgICAgICAgaWYgKCB0ID09IDEyICkgeyBoICs9ICJDIjsgfQogICAgICAgIGlmICggdCA9PSAxMyApIHsgaCArPSAiRCI7IH0KICAgICAgICBpZiAoIHQgPT0gMTQgKSB7IGggKz0gIkUiOyB9CiAgICAgICAgaWYgKCB0ID09IDE1ICkgeyBoICs9ICJGIjsgfQogICAgICB9IGVsc2UgewogICAgICAgIGggKz0gU3RyaW5nKHQpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBoICs9ICIwIjsKICAgIH0KICB9CiAgcmV0dXJuIGg7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.3_A1.1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTEuMV9UMiIsCgpwYXRoOiAiMTUuMS4zLjMiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBlcnJvckNvdW50ID0gMDsKY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmZvciAoaW5kZXggPSAweERDMDA7IGluZGV4IDw9IDB4REZGRjsgaW5kZXgrKykgeyAKICBjb3VudCsrOyAKICBoZXggPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXgpOwogIHRyeSB7CiAgICBlbmNvZGVVUkkoU3RyaW5nLmZyb21DaGFyQ29kZShpbmRleCwgMHgwMDQxKSk7CiAgfSBjYXRjaCAoZSkgeyAKICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSA9PT0gdHJ1ZSkgY29udGludWU7ICAgICAgICAgICAgICAgIAogIH0KICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgaW5kZXhPID0gaW5kZXg7CiAgfSBlbHNlIHsKICAgIGlmICgoaW5kZXggLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgfSAKICAgICAgZWxzZSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgIH0gIAogICAgICBpbmRleE8gPSBpbmRleDsKICAgIH0gICAgICAgICAKICB9CiAgaW5kZXhQID0gaW5kZXg7CiAgZXJyb3JDb3VudCsrOyAgICAKfQoKaWYgKGVycm9yQ291bnQgPiAwKSB7CiAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgfSBlbHNlIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgfSAgICAgCiAgJEVSUk9SKCdUb3RhbCBlcnJvcjogJyArIGVycm9yQ291bnQgKyAnIGJhZCBVbmljb2RlIGNoYXJhY3RlciBpbiAnICsgY291bnQgKyAnICcpOwp9CgpmdW5jdGlvbiBkZWNpbWFsVG9IZXhTdHJpbmcobikgewogIG4gPSBOdW1iZXIobik7CiAgdmFyIGggPSAiIjsKICBmb3IgKHZhciBpID0gMzsgaSA+PSAwOyBpLS0pIHsKICAgIGlmIChuID49IE1hdGgucG93KDE2LCBpKSkgewogICAgICB2YXIgdCA9IE1hdGguZmxvb3IobiAvIE1hdGgucG93KDE2LCBpKSk7CiAgICAgIG4gLT0gdCAqIE1hdGgucG93KDE2LCBpKTsKICAgICAgaWYgKCB0ID49IDEwICkgewogICAgICAgIGlmICggdCA9PSAxMCApIHsgaCArPSAiQSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTEgKSB7IGggKz0gIkIiOyB9CiAgICAgICAgaWYgKCB0ID09IDEyICkgeyBoICs9ICJDIjsgfQogICAgICAgIGlmICggdCA9PSAxMyApIHsgaCArPSAiRCI7IH0KICAgICAgICBpZiAoIHQgPT0gMTQgKSB7IGggKz0gIkUiOyB9CiAgICAgICAgaWYgKCB0ID09IDE1ICkgeyBoICs9ICJGIjsgfQogICAgICB9IGVsc2UgewogICAgICAgIGggKz0gU3RyaW5nKHQpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBoICs9ICIwIjsKICAgIH0KICB9CiAgcmV0dXJuIGg7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.3_A1.1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTEuMl9UMSIsCgpwYXRoOiAiMTUuMS4zLjMiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBlcnJvckNvdW50ID0gMDsKY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmZvciAoaW5kZXggPSAweEQ4MDA7IGluZGV4IDw9IDB4REJGRjsgaW5kZXgrKykgewogIGNvdW50Kys7ICAgCiAgaGV4ID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4KTsKICB0cnkgewogICAgZW5jb2RlVVJJKFN0cmluZy5mcm9tQ2hhckNvZGUoaW5kZXgpKTsKICB9IGNhdGNoIChlKSB7IAogICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpID09PSB0cnVlKSBjb250aW51ZTsgICAgICAgICAgICAgICAgCiAgfQogIGlmIChpbmRleE8gPT09IDApIHsgCiAgICBpbmRleE8gPSBpbmRleDsKICB9IGVsc2UgewogICAgaWYgKChpbmRleCAtIGluZGV4UCkgIT09IDEpIHsgICAgICAgICAgICAgCiAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICB9IAogICAgICBlbHNlIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICAgICAgfSAgCiAgICAgIGluZGV4TyA9IGluZGV4OwogICAgfSAgICAgICAgIAogIH0KICBpbmRleFAgPSBpbmRleDsKICBlcnJvckNvdW50Kys7ICAgIAp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.3_A1.2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTEuMl9UMiIsCgpwYXRoOiAiMTUuMS4zLjMiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBlcnJvckNvdW50ID0gMDsKY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmZvciAoaW5kZXggPSAweEQ4MDA7IGluZGV4IDw9IDB4REJGRjsgaW5kZXgrKykgeyAKICBjb3VudCsrOyAKICBoZXggPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXgpOwogIHRyeSB7CiAgICBlbmNvZGVVUkkoU3RyaW5nLmZyb21DaGFyQ29kZSgweDAwNDEsIGluZGV4KSk7CiAgfSBjYXRjaCAoZSkgeyAKICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSA9PT0gdHJ1ZSkgY29udGludWU7ICAgICAgICAgICAgICAgIAogIH0KICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgaW5kZXhPID0gaW5kZXg7CiAgfSBlbHNlIHsKICAgIGlmICgoaW5kZXggLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgfSAKICAgICAgZWxzZSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgIH0gIAogICAgICBpbmRleE8gPSBpbmRleDsKICAgIH0gICAgICAgICAKICB9CiAgaW5kZXhQID0gaW5kZXg7CiAgZXJyb3JDb3VudCsrOyAgICAgIAp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.3_A1.2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTEuM19UMSIsCgpwYXRoOiAiMTUuMS4zLjMiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCBzdHJpbmcuY2hhckF0KGsrMSkgaW4gWzB4MDAwMCwgMHhEN0ZGLCAweEQ4MDAsIDB4REJGRSwgMHhEQkZGLCAweEUwMDAsIDB4RkZGRl0iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGNoYXJzID0gWzB4MDAwMCwgMHhEN0ZGLCAweEQ4MDAsIDB4REJGRSwgMHhEQkZGLCAweEUwMDAsIDB4RkZGRl07CmVycm9yQ291bnQgPSAwOwpjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwoKZm9yIChpbmRleCA9IDB4RDgwMDsgaW5kZXggPD0gMHhEQkZGOyBpbmRleCsrKSB7CiAgY291bnQrKzsgCiAgcmVzID0gdHJ1ZTsKICBmb3IgKGluZGV4QyA9IDA7IGluZGV4QyA8IGNoYXJzLmxlbmd0aDsgaW5kZXhDKyspIHsgIAogICAgaGV4ID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4KTsKICAgIHRyeSB7CiAgICAgIGVuY29kZVVSSShTdHJpbmcuZnJvbUNoYXJDb2RlKGluZGV4LCBjaGFyc1tpbmRleENdKSk7ICAgIAogICAgfSBjYXRjaCAoZSkgeyAKICAgICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpID09PSB0cnVlKSBjb250aW51ZTsKICAgIH0KICAgIHJlcyA9IGZhbHNlOwogIH0KICBpZiAocmVzICE9PSB0cnVlKSB7CiAgICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgICBpbmRleE8gPSBpbmRleDsKICAgIH0gZWxzZSB7CiAgICAgIGlmICgoaW5kZXggLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gCiAgICAgICAgZWxzZSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gIAogICAgICAgIGluZGV4TyA9IGluZGV4OwogICAgICB9ICAgICAgICAgCiAgICB9CiAgICBpbmRleFAgPSBpbmRleDsKICAgIGVycm9yQ291bnQrKzsgICAgCiAgfSAgCn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.3_A1.3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTIuMV9UMSIsCgpwYXRoOiAiMTUuMS4zLjMiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1c2UgUkZDIDM2MjkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHVyaVJlc2VydmVkID0gWyI7IiwgIi8iLCAiPyIsICI6IiwgIkAiLCAiJiIsICI9IiwgIisiLCAiJCIsICIsIl07CnVyaVVuZXNjYXBlZCA9IFsiLSIsICJfIiwgIi4iLCAiISIsICJ+IiwgIioiLCAiJyIsICIoIiwgIikiLCAiQSIsICJCIiwgIkMiLCAiRCIsICJFIiwgIkYiLCAiRyIsICJIIiwgIkkiLCAiSiIsICJLIiwgIkwiLCAiTSIsICJOIiwgIk8iLCAiUCIsICJRIiwgIlIiLCAiUyIsICJUIiwgIlUiLCAiViIsICJXIiwgIlgiLCAiWSIsICJaIiwgImEiLCAiYiIsICJjIiwgImQiLCAiZSIsICJmIiwgImciLCAiaCIsICJpIiwgImoiLCAiayIsICJsIiwgIm0iLCAibiIsICJvIiwgInAiLCAicSIsICJyIiwgInMiLCAidCIsICJ1IiwgInYiLCAidyIsICJ4IiwgInkiLCAieiIsICIwIiwgIjEiLCAiMiIsICIzIiwgIjQiLCAiNSIsICI2IiwgIjciLCAiOCIsICI5Il07IAplcnJvckNvdW50ID0gMDsKY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmwgOiAKZm9yIChpbmRleCA9IDB4MDAwMDsgaW5kZXggPD0gMHgwMDdGOyBpbmRleCsrKSB7CiAgY291bnQrKzsKICBzdHIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGluZGV4KTsKICBmb3IgKGluZGV4QyA9IDA7IGluZGV4QyA8IHVyaVJlc2VydmVkLmxlbmd0aDsgaW5kZXhDKyspIHsgICAgCiAgICBpZiAodXJpUmVzZXJ2ZWRbaW5kZXhDXSA9PT0gc3RyKSBjb250aW51ZSBsOwogIH0KICAgZm9yIChpbmRleEMgPSAwOyBpbmRleEMgPCB1cmlVbmVzY2FwZWQubGVuZ3RoOyBpbmRleEMrKykgewogICAgaWYgKHVyaVVuZXNjYXBlZFtpbmRleENdID09PSBzdHIpIGNvbnRpbnVlIGw7CiAgfSAgICAKICBpZiAoIiMiID09PSBzdHIpIGNvbnRpbnVlIGw7IAogIHRyeSB7CiAgICBpZiAoZW5jb2RlVVJJKHN0cikudG9VcHBlckNhc2UoKSA9PT0gIiUiICsgZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4KS5zdWJzdHJpbmcoMikpIGNvbnRpbnVlIGw7IAogIH0gY2F0Y2goZSkge30gICAgIAogIGlmIChpbmRleE8gPT09IDApIHsgCiAgICBpbmRleE8gPSBpbmRleDsKICB9IGVsc2UgewogICAgaWYgKChpbmRleCAtIGluZGV4UCkgIT09IDEpIHsgICAgICAgICAgICAgCiAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICB9IAogICAgICBlbHNlIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICAgICAgfSAgCiAgICAgIGluZGV4TyA9IGluZGV4OwogICAgfSAgICAgICAgIAogIH0KICBpbmRleFAgPSBpbmRleDsKICBlcnJvckNvdW50Kys7ICAgICAKfQoKaWYgKGVycm9yQ291bnQgPiAwKSB7CiAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgfSBlbHNlIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgfSAgICAgCiAgJEVSUk9SKCdUb3RhbCBlcnJvcjogJyArIGVycm9yQ291bnQgKyAnIGJhZCBVbmljb2RlIGNoYXJhY3RlciBpbiAnICsgY291bnQgKyAnICcpOwp9CgpmdW5jdGlvbiBkZWNpbWFsVG9IZXhTdHJpbmcobikgewogIG4gPSBOdW1iZXIobik7CiAgdmFyIGggPSAiIjsKICBmb3IgKHZhciBpID0gMzsgaSA+PSAwOyBpLS0pIHsKICAgIGlmIChuID49IE1hdGgucG93KDE2LCBpKSkgewogICAgICB2YXIgdCA9IE1hdGguZmxvb3IobiAvIE1hdGgucG93KDE2LCBpKSk7CiAgICAgIG4gLT0gdCAqIE1hdGgucG93KDE2LCBpKTsKICAgICAgaWYgKCB0ID49IDEwICkgewogICAgICAgIGlmICggdCA9PSAxMCApIHsgaCArPSAiQSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTEgKSB7IGggKz0gIkIiOyB9CiAgICAgICAgaWYgKCB0ID09IDEyICkgeyBoICs9ICJDIjsgfQogICAgICAgIGlmICggdCA9PSAxMyApIHsgaCArPSAiRCI7IH0KICAgICAgICBpZiAoIHQgPT0gMTQgKSB7IGggKz0gIkUiOyB9CiAgICAgICAgaWYgKCB0ID09IDE1ICkgeyBoICs9ICJGIjsgfQogICAgICB9IGVsc2UgewogICAgICAgIGggKz0gU3RyaW5nKHQpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBoICs9ICIwIjsKICAgIH0KICB9CiAgcmV0dXJuIGg7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.3_A2.1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTIuMl9UMSIsCgpwYXRoOiAiMTUuMS4zLjMiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1c2UgUkZDIDM2MjkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGVycm9yQ291bnQgPSAwOwpjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOyAKbDoKZm9yIChpbmRleCA9IDB4MDA4MDsgaW5kZXggPD0gMHgwN0ZGOyBpbmRleCsrKSB7CiAgY291bnQrKzsgIAogIGhleDEgPSBkZWNpbWFsVG9IZXhTdHJpbmcoMHgwMDgwICsgKGluZGV4ICYgMHgwMDNGKSkuc3Vic3RyaW5nKDIpOwogIGhleDIgPSBkZWNpbWFsVG9IZXhTdHJpbmcoMHgwMEMwICsgKGluZGV4ICYgMHgwN0MwKSAvIDB4MDA0MCkuc3Vic3RyaW5nKDIpOyAgICAKICBzdHIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGluZGV4KTsKICB0cnkgewogICAgaWYgKGVuY29kZVVSSShzdHIpLnRvVXBwZXJDYXNlKCkgPT09ICIlIiArIGhleDIgKyAiJSIgKyBoZXgxKSBjb250aW51ZTsKICB9IGNhdGNoKGUpIHt9ICAKICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgaW5kZXhPID0gaW5kZXg7CiAgfSBlbHNlIHsKICAgIGlmICgoaW5kZXggLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgfSAKICAgICAgZWxzZSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgIH0gIAogICAgICBpbmRleE8gPSBpbmRleDsKICAgIH0gICAgICAgICAKICB9CiAgaW5kZXhQID0gaW5kZXg7CiAgZXJyb3JDb3VudCsrOyAgICAKfQoKaWYgKGVycm9yQ291bnQgPiAwKSB7CiAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgfSBlbHNlIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgfSAgICAgCiAgJEVSUk9SKCdUb3RhbCBlcnJvcjogJyArIGVycm9yQ291bnQgKyAnIGJhZCBVbmljb2RlIGNoYXJhY3RlciBpbiAnICsgY291bnQgKyAnICcpOwp9CgpmdW5jdGlvbiBkZWNpbWFsVG9IZXhTdHJpbmcobikgewogIG4gPSBOdW1iZXIobik7CiAgdmFyIGggPSAiIjsKICBmb3IgKHZhciBpID0gMzsgaSA+PSAwOyBpLS0pIHsKICAgIGlmIChuID49IE1hdGgucG93KDE2LCBpKSkgewogICAgICB2YXIgdCA9IE1hdGguZmxvb3IobiAvIE1hdGgucG93KDE2LCBpKSk7CiAgICAgIG4gLT0gdCAqIE1hdGgucG93KDE2LCBpKTsKICAgICAgaWYgKCB0ID49IDEwICkgewogICAgICAgIGlmICggdCA9PSAxMCApIHsgaCArPSAiQSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTEgKSB7IGggKz0gIkIiOyB9CiAgICAgICAgaWYgKCB0ID09IDEyICkgeyBoICs9ICJDIjsgfQogICAgICAgIGlmICggdCA9PSAxMyApIHsgaCArPSAiRCI7IH0KICAgICAgICBpZiAoIHQgPT0gMTQgKSB7IGggKz0gIkUiOyB9CiAgICAgICAgaWYgKCB0ID09IDE1ICkgeyBoICs9ICJGIjsgfQogICAgICB9IGVsc2UgewogICAgICAgIGggKz0gU3RyaW5nKHQpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBoICs9ICIwIjsKICAgIH0KICB9CiAgcmV0dXJuIGg7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.3_A2.2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTIuM19UMSIsCgpwYXRoOiAiMTUuMS4zLjMiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1c2UgUkZDIDM2MjkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGVycm9yQ291bnQgPSAwOwpjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOyAKZm9yIChpbmRleCA9IDB4MDgwMDsgaW5kZXggPD0gMHhEN0ZGOyBpbmRleCsrKSB7CiAgY291bnQrKzsgCiAgaGV4MSA9IGRlY2ltYWxUb0hleFN0cmluZygweDAwODAgKyAoaW5kZXggJiAweDAwM0YpKS5zdWJzdHJpbmcoMik7CiAgaGV4MiA9IGRlY2ltYWxUb0hleFN0cmluZygweDAwODAgKyAoaW5kZXggJiAweDBGQzApIC8gMHgwMDQwKS5zdWJzdHJpbmcoMik7CiAgaGV4MyA9IGRlY2ltYWxUb0hleFN0cmluZygweDAwRTAgKyAoaW5kZXggJiAweEYwMDApIC8gMHgxMDAwKS5zdWJzdHJpbmcoMik7CiAgc3RyID0gU3RyaW5nLmZyb21DaGFyQ29kZShpbmRleCk7CiAgdHJ5IHsKICAgIGlmIChlbmNvZGVVUkkoc3RyKS50b1VwcGVyQ2FzZSgpID09PSAiJSIgKyBoZXgzICsgIiUiICsgaGV4MiArICIlIiArIGhleDEpIGNvbnRpbnVlOwogIH0gY2F0Y2goZSkge30gICAgICAKICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgaW5kZXhPID0gaW5kZXg7CiAgfSBlbHNlIHsKICAgIGlmICgoaW5kZXggLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgfSAKICAgICAgZWxzZSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgIH0gIAogICAgICBpbmRleE8gPSBpbmRleDsKICAgIH0gICAgICAgICAKICB9CiAgaW5kZXhQID0gaW5kZXg7CiAgZXJyb3JDb3VudCsrOyAgICAKfSAKCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.3_A2.3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTIuNF9UMSIsCgpwYXRoOiAiMTUuMS4zLjMiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1c2UgUkZDIDM2MjksIHN0cmluZy5jaGFyQXQoaysxKSBpbiBbMHhEQzAwLCAweERERkYsIDB4REZGRl0iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGNoYXJzID0gWzB4REMwMCwgMHhEREZGLCAweERGRkZdOyAKZXJyb3JDb3VudCA9IDA7CmNvdW50ID0gMDsKdmFyIGluZGV4UDsKdmFyIGluZGV4TyA9IDA7IApmb3IgKGluZGV4ID0gMHhEODAwOyBpbmRleCA8PSAweERCRkY7IGluZGV4KyspIHsKICByZXMgPSB0cnVlOwogIGZvciAoaW5kZXhDID0gMDsgaW5kZXhDIDwgY2hhcnMubGVuZ3RoOyBpbmRleEMrKykgewogICAgaW5kZXgxID0gKGluZGV4IC0gMHhEODAwKSAqIDB4NDAwICsgKGNoYXJzW2luZGV4Q10gLSAweERDMDApICsgMHgxMDAwMDsgCiAgICBoZXgxID0gZGVjaW1hbFRvSGV4U3RyaW5nKDB4MDA4MCArIChpbmRleDEgJiAweDAwM0YpKS5zdWJzdHJpbmcoMik7CiAgICBoZXgyID0gZGVjaW1hbFRvSGV4U3RyaW5nKDB4MDA4MCArIChpbmRleDEgJiAweDBGQzApIC8gMHgwMDQwKS5zdWJzdHJpbmcoMik7CiAgICBoZXgzID0gZGVjaW1hbFRvSGV4U3RyaW5nKDB4MDA4MCArIChpbmRleDEgJiAweDNGMDAwKSAvIDB4MTAwMCkuc3Vic3RyaW5nKDIpOwogICAgaGV4NCA9IGRlY2ltYWxUb0hleFN0cmluZygweDAwRjAgKyAoaW5kZXgxICYgMHgxQzAwMDApIC8gMHg0MDAwMCkuc3Vic3RyaW5nKDIpOwogICAgc3RyID0gU3RyaW5nLmZyb21DaGFyQ29kZShpbmRleCwgY2hhcnNbaW5kZXhDXSk7CiAgICB0cnkgewogICAgICBpZiAoZW5jb2RlVVJJKHN0cikudG9VcHBlckNhc2UoKSAhPT0gIiUiICsgaGV4NCArICIlIiArIGhleDMgKyAiJSIgKyBoZXgyICsgIiUiICsgaGV4MSkgewogICAgICAgIHJlcyA9IGZhbHNlOwogICAgICB9CiAgICB9IGNhdGNoKGUpIHtyZXMgPSBmYWxzZX0gICAgCiAgfQogIGlmIChyZXMgIT09IHRydWUpIHsgIAogICAgaWYgKGluZGV4TyA9PT0gMCkgeyAKICAgICAgaW5kZXhPID0gaW5kZXg7CiAgICB9IGVsc2UgewogICAgICBpZiAoKGluZGV4IC0gaW5kZXhQKSAhPT0gMSkgeyAgICAgICAgICAgICAKICAgICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgICB9IAogICAgICAgIGVsc2UgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICAgICAgICB9ICAKICAgICAgICBpbmRleE8gPSBpbmRleDsKICAgICAgfSAgICAgICAgIAogICAgfQogICAgaW5kZXhQID0gaW5kZXg7CiAgICBlcnJvckNvdW50Kys7ICAgIAogIH0KICBjb3VudCsrOyAgCn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.3_A2.4_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTIuNF9UMiIsCgpwYXRoOiAiMTUuMS4zLjMiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1c2UgUkZDIDM2MjksIHN0cmluZy5jaGFyQXQoaykgaW4gWzB4RDgwMCwgMHhEQkZGLCAweEQ5RkZdIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBjaGFycyA9IFsweEQ4MDAsIDB4REJGRiwgMHhEOUZGXTsgCmVycm9yQ291bnQgPSAwOwpjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOyAKZm9yIChpbmRleCA9IDB4REMwMDsgaW5kZXggPD0gMHhERkZGOyBpbmRleCsrKSB7CiAgcmVzID0gdHJ1ZTsKICBmb3IgKGluZGV4QyA9IDA7IGluZGV4QyA8IGNoYXJzLmxlbmd0aDsgaW5kZXhDKyspIHsKICAgIGluZGV4MSA9IChjaGFyc1tpbmRleENdIC0gMHhEODAwKSAqIDB4NDAwICsgKGluZGV4IC0gMHhEQzAwKSArIDB4MTAwMDA7IAogICAgaGV4MSA9IGRlY2ltYWxUb0hleFN0cmluZygweDAwODAgKyAoaW5kZXgxICYgMHgwMDNGKSkuc3Vic3RyaW5nKDIpOwogICAgaGV4MiA9IGRlY2ltYWxUb0hleFN0cmluZygweDAwODAgKyAoaW5kZXgxICYgMHgwRkMwKSAvIDB4MDA0MCkuc3Vic3RyaW5nKDIpOwogICAgaGV4MyA9IGRlY2ltYWxUb0hleFN0cmluZygweDAwODAgKyAoaW5kZXgxICYgMHgzRjAwMCkgLyAweDEwMDApLnN1YnN0cmluZygyKTsKICAgIGhleDQgPSBkZWNpbWFsVG9IZXhTdHJpbmcoMHgwMEYwICsgKGluZGV4MSAmIDB4MUMwMDAwKSAvIDB4NDAwMDApLnN1YnN0cmluZygyKTsKICAgIHN0ciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoY2hhcnNbaW5kZXhDXSwgaW5kZXgpOwogICAgdHJ5IHsKICAgICAgaWYgKGVuY29kZVVSSShzdHIpLnRvVXBwZXJDYXNlKCkgIT09ICIlIiArIGhleDQgKyAiJSIgKyBoZXgzICsgIiUiICsgaGV4MiArICIlIiArIGhleDEpIHsKICAgICAgICByZXMgPSBmYWxzZTsKICAgICAgfQogICAgfSBjYXRjaChlKSB7cmVzID0gZmFsc2V9ICAgIAogIH0KICBpZiAocmVzICE9PSB0cnVlKSB7ICAKICAgIGlmIChpbmRleE8gPT09IDApIHsgCiAgICAgIGluZGV4TyA9IGluZGV4OwogICAgfSBlbHNlIHsKICAgICAgaWYgKChpbmRleCAtIGluZGV4UCkgIT09IDEpIHsgICAgICAgICAgICAgCiAgICAgICAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICAgICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgICAgICAgfSAKICAgICAgICBlbHNlIHsKICAgICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgICAgfSAgCiAgICAgICAgaW5kZXhPID0gaW5kZXg7CiAgICAgIH0gICAgICAgICAKICAgIH0KICAgIGluZGV4UCA9IGluZGV4OwogICAgZXJyb3JDb3VudCsrOyAgICAKICB9CiAgY291bnQrKzsgIAp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.3_A2.4_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTIuNV9UMSIsCgpwYXRoOiAiMTUuMS4zLjMiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1c2UgUkZDIDM2MjkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGVycm9yQ291bnQgPSAwOwpjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOyAKZm9yIChpbmRleCA9IDB4RTAwMDsgaW5kZXggPD0gMHhGRkZGOyBpbmRleCsrKSB7CiAgY291bnQrKzsgIAogIGhleDEgPSBkZWNpbWFsVG9IZXhTdHJpbmcoMHgwMDgwICsgKGluZGV4ICYgMHgwMDNGKSkuc3Vic3RyaW5nKDIpOwogIGhleDIgPSBkZWNpbWFsVG9IZXhTdHJpbmcoMHgwMDgwICsgKGluZGV4ICYgMHgwRkMwKSAvIDB4MDA0MCkuc3Vic3RyaW5nKDIpOwogIGhleDMgPSBkZWNpbWFsVG9IZXhTdHJpbmcoMHgwMEUwICsgKGluZGV4ICYgMHhGMDAwKSAvIDB4MTAwMCkuc3Vic3RyaW5nKDIpOwogIHN0ciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoaW5kZXgpOwogIHRyeSB7CiAgICBpZiAoZW5jb2RlVVJJKHN0cikudG9VcHBlckNhc2UoKSA9PT0gIiUiICsgaGV4MyArICIlIiArIGhleDIgKyAiJSIgKyBoZXgxKSBjb250aW51ZTsKICB9IGNhdGNoKGUpIHt9ICAgICAgCiAgaWYgKGluZGV4TyA9PT0gMCkgeyAKICAgIGluZGV4TyA9IGluZGV4OwogIH0gZWxzZSB7CiAgICBpZiAoKGluZGV4IC0gaW5kZXhQKSAhPT0gMSkgeyAgICAgICAgICAgICAKICAgICAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgICAgIH0gCiAgICAgIGVsc2UgewogICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICB9ICAKICAgICAgaW5kZXhPID0gaW5kZXg7CiAgICB9ICAgICAgICAgCiAgfQogIGluZGV4UCA9IGluZGV4OwogIGVycm9yQ291bnQrKzsgICAgCn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.3_A2.5_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTMuMV9UMSIsCgpwYXRoOiAiMTUuMS4zLjMiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB1cmlSZXNlcnZlZCA9IFsiOyIsICIvIiwgIj8iLCAiOiIsICJAIiwgIiYiLCAiPSIsICIrIiwgIiQiLCAiLCJdOwpmb3IgKGluZGV4QyA9IDA7IGluZGV4QyA8IHVyaVJlc2VydmVkLmxlbmd0aDsgaW5kZXhDKyspIHsKICB2YXIgc3RyID0gdXJpUmVzZXJ2ZWRbaW5kZXhDXTsgICAgCiAgaWYgKGVuY29kZVVSSShzdHIpICE9PSBzdHIpIHsKICAgICRFUlJPUignIycgKyAoaW5kZXhDICsgMSkgKyAnOiB1bmVzY2FwZWRVUklTZXQgY29udGFpbmluZycgKyBzdHIpOwogIH0gIAp9CgogfQp9KTsKCg==","id":"S15.1.3.3_A3.1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTMuMl9UMSIsCgpwYXRoOiAiMTUuMS4zLjMiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1cmlVbmVzY2FwZWQgOjogdXJpQWxwaGEiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHVyaUFscGhhID0gWyJBIiwgIkIiLCAiQyIsICJEIiwgIkUiLCAiRiIsICJHIiwgIkgiLCAiSSIsICJKIiwgIksiLCAiTCIsICJNIiwgIk4iLCAiTyIsICJQIiwgIlEiLCAiUiIsICJTIiwgIlQiLCAiVSIsICJWIiwgIlciLCAiWCIsICJZIiwgIloiLCAiYSIsICJiIiwgImMiLCAiZCIsICJlIiwgImYiLCAiZyIsICJoIiwgImkiLCAiaiIsICJrIiwgImwiLCAibSIsICJuIiwgIm8iLCAicCIsICJxIiwgInIiLCAicyIsICJ0IiwgInUiLCAidiIsICJ3IiwgIngiLCAieSIsICJ6Il07CmZvciAoaW5kZXhDID0gMDsgaW5kZXhDIDwgdXJpQWxwaGEubGVuZ3RoOyBpbmRleEMrKykgewogIHZhciBzdHIgPSB1cmlBbHBoYVtpbmRleENdOyAgICAKICBpZiAoZW5jb2RlVVJJKHN0cikgIT09IHN0cikgewogICAgJEVSUk9SKCcjJyArIChpbmRleEMgKyAxKSArICc6IHVuZXNjYXBlZFVSSVNldCBjb250YWluaW5nICcgKyBzdHIpOwogIH0gIAp9CgogfQp9KTsKCg==","id":"S15.1.3.3_A3.2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTMuMl9UMiIsCgpwYXRoOiAiMTUuMS4zLjMiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1cmlVbmVzY2FwZWQgOjogRGVjaW1hbERpZ2l0IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBEZWNpbWFsRGlnaXQgPSBbIjAiLCAiMSIsICIyIiwgIjMiLCAiNCIsICI1IiwgIjYiLCAiNyIsICI4IiwgIjkiXTsKZm9yIChpbmRleEMgPSAwOyBpbmRleEMgPCBEZWNpbWFsRGlnaXQubGVuZ3RoOyBpbmRleEMrKykgewogIHZhciBzdHIgPSBEZWNpbWFsRGlnaXRbaW5kZXhDXTsgICAgCiAgaWYgKGVuY29kZVVSSShzdHIpICE9PSBzdHIpIHsKICAgICRFUlJPUignIycgKyAoaW5kZXhDICsgMSkgKyAnOiB1bmVzY2FwZWRVUklTZXQgY29udGFpbmluZycgKyBzdHIpOwogIH0gIAp9CgogfQp9KTsKCg==","id":"S15.1.3.3_A3.2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTMuMl9UMyIsCgpwYXRoOiAiMTUuMS4zLjMiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1cmlVbmVzY2FwZWQgOjogdXJpTWFyayIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdXJpTWFyayA9IFsiLSIsICJfIiwgIi4iLCAiISIsICJ+IiwgIioiLCAiJyIsICIoIiwgIikiXTsKZm9yIChpbmRleEMgPSAwOyBpbmRleEMgPCB1cmlNYXJrLmxlbmd0aDsgaW5kZXhDKyspIHsKICB2YXIgc3RyID0gdXJpTWFya1tpbmRleENdOyAgICAKICBpZiAoZW5jb2RlVVJJKHN0cikgIT09IHN0cikgewogICAgJEVSUk9SKCcjJyArIChpbmRleEMgKyAxKSArICc6IHVuZXNjYXBlZFVSSVNldCBjb250YWluaW5nJyArIHN0cik7CiAgfSAgCn0KCiB9Cn0pOwoK","id":"S15.1.3.3_A3.2_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTMuM19UMSIsCgpwYXRoOiAiMTUuMS4zLjMiLAoKZGVzY3JpcHRpb246ICJlbmNvZGVVUkkoXCIjXCIpID09PSBcIiNcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgaWYgKGVuY29kZVVSSSgiIyIpICE9PSAiIyIpIHsKICAkRVJST1IoJyMxOiB1bmVzY2FwZWRVUklTZXQgY29udGFpbmluZyAiIyInKTsKfSAgCgogfQp9KTsKCg==","id":"S15.1.3.3_A3.3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTRfVDEiLAoKcGF0aDogIjE1LjEuMy4zIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgRU5HTElTSCBBTFBIQUJFVCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChlbmNvZGVVUkkoImh0dHA6Ly91bmlwcm8ucnUvMDEyMzQ1Njc4OSIpICE9PSAiaHR0cDovL3VuaXByby5ydS8wMTIzNDU2Nzg5IikgewogICRFUlJPUignIzE6IGh0dHA6Ly91bmlwcm8ucnUvMDEyMzQ1Njc4OScpOwp9CgovL0NIRUNLIzIKaWYgKGVuY29kZVVSSSgiYUFiQmNDZERlRWZGZ0doSGlJakprS2xMbU1uTm9PcFBxUXJSc1N0VHVVdlZ3V3hYeVl6WiIpICE9PSAiYUFiQmNDZERlRWZGZ0doSGlJakprS2xMbU1uTm9PcFBxUXJSc1N0VHVVdlZ3V3hYeVl6WiIpIHsKICAkRVJST1IoJyMyOiBhQWJCY0NkRGVFZkZnR2hIaUlqSmtLbExtTW5Ob09wUHFRclJzU3RUdVV2VndXeFh5WXpaJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZW5jb2RlVVJJKCJhQV9iQi1jQy5kRCFlRX5mRipnRydoSChpSSlqSjtrSy9sTD9tTTpuTkBvTyZwUD1xUStyUiRzUyx0VDl1VTh2Vjd3VzZ4WDV5WTR6WiIpICE9PSAiYUFfYkItY0MuZEQhZUV+ZkYqZ0cnaEgoaUkpako7a0svbEw/bU06bk5Ab08mcFA9cVErclIkc1MsdFQ5dVU4dlY3d1c2eFg1eVk0eloiKSB7CiAgJEVSUk9SKCcjMzogJyk7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.3_A4_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTRfVDIiLAoKcGF0aDogIjE1LjEuMy4zIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgUlVTU0lBTiBBTFBIQUJFVCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICgoZW5jb2RlVVJJKCJodHRwOi8vcnUud2lraXBlZGlhLm9yZy93aWtpL9Cu0L3QuNC60L7QtCIpICE9PSAiaHR0cDovL3J1Lndpa2lwZWRpYS5vcmcvd2lraS8lRDAlQUUlRDAlQkQlRDAlQjglRDAlQkElRDAlQkUlRDAlQjQiKSAmJiAoZW5jb2RlVVJJKCJodHRwOi8vcnUud2lraXBlZGlhLm9yZy93aWtpL9Cu0L3QuNC60L7QtCIpICE9PSAiaHR0cDovL3J1Lndpa2lwZWRpYS5vcmcvd2lraS8iICsgIiVEMCVBRSVEMCVCRCVEMCVCOCVEMCVCQSVEMCVCRSVEMCVCNCIudG9Mb3dlckNhc2UoKSkpIHsKICAkRVJST1IoJyMxOiBodHRwOi8vcnUud2lraXBlZGlhLm9yZy93aWtpL9Cu0L3QuNC60L7QtCcpOwp9CgovL0NIRUNLIzIKaWYgKChlbmNvZGVVUkkoImh0dHA6Ly9ydS53aWtpcGVkaWEub3JnL3dpa2kv0K7QvdC40LrQvtC0I9Ch0YHRi9C70LrQuCIpICE9PSAiaHR0cDovL3J1Lndpa2lwZWRpYS5vcmcvd2lraS8lRDAlQUUlRDAlQkQlRDAlQjglRDAlQkElRDAlQkUlRDAlQjQjJUQwJUExJUQxJTgxJUQxJThCJUQwJUJCJUQwJUJBJUQwJUI4IikgJiYgKGVuY29kZVVSSSgiaHR0cDovL3J1Lndpa2lwZWRpYS5vcmcvd2lraS/QrtC90LjQutC+0LQj0KHRgdGL0LvQutC4IikgIT09ICJodHRwOi8vcnUud2lraXBlZGlhLm9yZy93aWtpLyIgKyAiJUQwJUFFJUQwJUJEJUQwJUI4JUQwJUJBJUQwJUJFJUQwJUI0IyVEMCVBMSVEMSU4MSVEMSU4QiVEMCVCQiVEMCVCQSVEMCVCOCIudG9Mb3dlckNhc2UoKSkpIHsKICAkRVJST1IoJyMyOiBodHRwOi8vcnUud2lraXBlZGlhLm9yZy93aWtpL9Cu0L3QuNC60L7QtCPQodGB0YvQu9C60LgnKTsKfQoKLy9DSEVDSyMzCmlmICgoZW5jb2RlVVJJKCJodHRwOi8vcnUud2lraXBlZGlhLm9yZy93aWtpL9Cu0L3QuNC60L7QtCPQktC10YDRgdC40Lgg0K7QvdC40LrQvtC00LAiKSAhPT0gImh0dHA6Ly9ydS53aWtpcGVkaWEub3JnL3dpa2kvJUQwJUFFJUQwJUJEJUQwJUI4JUQwJUJBJUQwJUJFJUQwJUI0IyVEMCU5MiVEMCVCNSVEMSU4MCVEMSU4MSVEMCVCOCVEMCVCOCUyMCVEMCVBRSVEMCVCRCVEMCVCOCVEMCVCQSVEMCVCRSVEMCVCNCVEMCVCMCIpICYmICgoZW5jb2RlVVJJKCJodHRwOi8vcnUud2lraXBlZGlhLm9yZy93aWtpL9Cu0L3QuNC60L7QtCPQktC10YDRgdC40Lgg0K7QvdC40LrQvtC00LAiKSAhPT0gImh0dHA6Ly9ydS53aWtpcGVkaWEub3JnL3dpa2kvIiArICIlRDAlQUUlRDAlQkQlRDAlQjglRDAlQkElRDAlQkUlRDAlQjQjJUQwJTkyJUQwJUI1JUQxJTgwJUQxJTgxJUQwJUI4JUQwJUI4JTIwJUQwJUFFJUQwJUJEJUQwJUI4JUQwJUJBJUQwJUJFJUQwJUI0JUQwJUIwIi50b0xvd2VyQ2FzZSgpKSkpIHsKICAkRVJST1IoJyMzOiBodHRwOi8vcnUud2lraXBlZGlhLm9yZy93aWtpL9Cu0L3QuNC60L7QtCPQktC10YDRgdC40Lgg0K7QvdC40LrQvtC00LAnKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.3_A4_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTRfVDMiLAoKcGF0aDogIjE1LjEuMy4zIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgVVJMIHdpdGggTGluZSBUZXJtaW5hdG9yIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKChlbmNvZGVVUkkoImh0dHA6Ly91bmlwcm8ucnUvXG5hYm91dCIpICE9PSAiaHR0cDovL3VuaXByby5ydS8lMEFhYm91dCIpICYmIGVuY29kZVVSSSgiaHR0cDovL3VuaXByby5ydS9cbmFib3V0IikgIT09ICJodHRwOi8vdW5pcHJvLnJ1LyUwYWFib3V0IikgewogICRFUlJPUignIzE6IGh0dHA6Ly91bmlwcm8ucnUvXFxuYWJvdXQnKTsKfQoKLy9DSEVDSyMyCmlmICgoZW5jb2RlVVJJKCJodHRwOi8vdW5pcHJvLnJ1L1x2YWJvdXQiKSAhPT0gImh0dHA6Ly91bmlwcm8ucnUvJTBCYWJvdXQiKSAmJiBlbmNvZGVVUkkoImh0dHA6Ly91bmlwcm8ucnUvXHZhYm91dCIpICE9PSAiaHR0cDovL3VuaXByby5ydS8lMGJhYm91dCIpIHsKICAkRVJST1IoJyMyOiBodHRwOi8vdW5pcHJvLnJ1L1xcdmFib3V0Jyk7Cn0KCi8vQ0hFQ0sjMwppZiAoKGVuY29kZVVSSSgiaHR0cDovL3VuaXByby5ydS9cZmFib3V0IikgIT09ICJodHRwOi8vdW5pcHJvLnJ1LyUwQ2Fib3V0IikgJiYgZW5jb2RlVVJJKCJodHRwOi8vdW5pcHJvLnJ1L1xmYWJvdXQiKSAhPT0gImh0dHA6Ly91bmlwcm8ucnUvJTBjYWJvdXQiKSB7CiAgJEVSUk9SKCcjMzogaHR0cDovL3VuaXByby5ydS9cXGZhYm91dCcpOwp9CgovL0NIRUNLIzQKaWYgKChlbmNvZGVVUkkoImh0dHA6Ly91bmlwcm8ucnUvXHJhYm91dCIpICE9PSAiaHR0cDovL3VuaXByby5ydS8lMERhYm91dCIpICYmIGVuY29kZVVSSSgiaHR0cDovL3VuaXByby5ydS9ccmFib3V0IikgIT09ICJodHRwOi8vdW5pcHJvLnJ1LyUwZGFib3V0IikgewogICRFUlJPUignIzQ6IGh0dHA6Ly91bmlwcm8ucnUvXFxyYWJvdXQnKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.3_A4_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTRfVDQiLAoKcGF0aDogIjE1LjEuMy4zIiwKCmRlc2NyaXB0aW9uOiAiVGVzdCBzb21lIHVybCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChlbmNvZGVVUkkoIiIpICE9PSAiIikgewogICRFUlJPUignIzE6ICIiJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoZW5jb2RlVVJJKCJodHRwOi8vdW5pcHJvLnJ1IikgIT09ICJodHRwOi8vdW5pcHJvLnJ1IikgewogICRFUlJPUignIzI6IGh0dHA6Ly91bmlwcm8ucnUnKTsKfQoKLy9DSEVDSyMzCmlmIChlbmNvZGVVUkkoImh0dHA6Ly93d3cuZ29vZ2xlLnJ1L3N1cHBvcnQvam9icy9iaW4vc3RhdGljLnB5P3BhZ2U9d2h5LXJ1Lmh0bWwmc2lkPWxpdmVhbmR3b3JrIikgIT09ICJodHRwOi8vd3d3Lmdvb2dsZS5ydS9zdXBwb3J0L2pvYnMvYmluL3N0YXRpYy5weT9wYWdlPXdoeS1ydS5odG1sJnNpZD1saXZlYW5kd29yayIpIHsKICAkRVJST1IoJyMzOiBodHRwOi8vd3d3Lmdvb2dsZS5ydS9zdXBwb3J0L2pvYnMvYmluL3N0YXRpYy5weT9wYWdlPXdoeS1ydS5odG1sJnNpZD1saXZlYW5kd29yayInKTsKfSAgICAgICAgICAgCgovL0NIRUNLIzQKaWYgKGVuY29kZVVSSSgiaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9VVEYtOCNEZXNjcmlwdGlvbiIpICE9PSAiaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9VVEYtOCNEZXNjcmlwdGlvbiIpIHsKICAkRVJST1IoJyM0OiBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1VURi04I0Rlc2NyaXB0aW9uJyk7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.3_A4_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTUuMSIsCgpwYXRoOiAiMTUuMS4zLjMsIDE1LjIuNC43LCAxMi42LjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgcHJvcGVydHlJc0VudW1lcmFibGUsIGZvci1pbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChlbmNvZGVVUkkucHJvcGVydHlJc0VudW1lcmFibGUoJ2xlbmd0aCcpICE9PSBmYWxzZSkgewogICRFUlJPUignIzE6IGVuY29kZVVSSS5wcm9wZXJ0eUlzRW51bWVyYWJsZShcJ2xlbmd0aFwnKSA9PT0gZmFsc2UuIEFjdHVhbDogJyArIChlbmNvZGVVUkkucHJvcGVydHlJc0VudW1lcmFibGUoJ2xlbmd0aCcpKSk7Cn0KCi8vQ0hFQ0sjMgpyZXN1bHQgPSB0cnVlOwpmb3IgKHAgaW4gZW5jb2RlVVJJKXsKICBpZiAocCA9PT0gImxlbmd0aCIpIHsKICAgIHJlc3VsdCA9IGZhbHNlOwogIH0gIAp9CgppZiAocmVzdWx0ICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMjogcmVzdWx0ID0gdHJ1ZTsgZm9yIChwIGluIGVuY29kZVVSSSkgeyBpZiAocCA9PT0gImxlbmd0aCIpIHJlc3VsdCA9IGZhbHNlOyB9ICByZXN1bHQgPT09IHRydWU7Jyk7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.3_A5.1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTUuMiIsCgpwYXRoOiAiMTUuMS4zLjMsIDE1LjIuNC41LCAxMS40LjEiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgaGFzT3duUHJvcGVydHksIGRlbGV0ZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChlbmNvZGVVUkkuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpICE9PSB0cnVlKSB7CiAgJEZBSUwoJyMxOiBlbmNvZGVVUkkuaGFzT3duUHJvcGVydHkoXCdsZW5ndGhcJykgPT09IHRydWUuIEFjdHVhbDogJyArIChlbmNvZGVVUkkuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSk7Cn0KCmRlbGV0ZSBlbmNvZGVVUkkubGVuZ3RoOwoKLy9DSEVDSyMyCmlmIChlbmNvZGVVUkkuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMjogZGVsZXRlIGVuY29kZVVSSS5sZW5ndGg7IGVuY29kZVVSSS5oYXNPd25Qcm9wZXJ0eShcJ2xlbmd0aFwnKSA9PT0gdHJ1ZS4gQWN0dWFsOiAnICsgKGVuY29kZVVSSS5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKTsKfQoKLy9DSEVDSyMzCmlmIChlbmNvZGVVUkkubGVuZ3RoID09PSB1bmRlZmluZWQpIHsKICAkRVJST1IoJyMzOiBkZWxldGUgZW5jb2RlVVJJLmxlbmd0aDsgZW5jb2RlVVJJLmxlbmd0aCAhPT0gdW5kZWZpbmVkJyk7Cn0KCgoKCiB9Cn0pOwoK","id":"S15.1.3.3_A5.2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTUuMyIsCgpwYXRoOiAiMTUuMS4zLjMiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiB2YXJ5aW5nIHRoZSBsZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp4ID0gZW5jb2RlVVJJLmxlbmd0aDsKZW5jb2RlVVJJLmxlbmd0aCA9IEluZmluaXR5OwppZiAoZW5jb2RlVVJJLmxlbmd0aCAhPT0geCkgewogICRFUlJPUignIzE6IHggPSBlbmNvZGVVUkkubGVuZ3RoOyBlbmNvZGVVUkkubGVuZ3RoID0gSW5maW5pdHk7IGVuY29kZVVSSS5sZW5ndGggPT09IHguIEFjdHVhbDogJyArIChlbmNvZGVVUkkubGVuZ3RoKSk7Cn0KCgogfQp9KTsKCg==","id":"S15.1.3.3_A5.3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTUuNCIsCgpwYXRoOiAiMTUuMS4zLjMiLAoKZGVzY3JpcHRpb246ICJlbmNvZGVVUkkubGVuZ3RoID09PSAxIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKGVuY29kZVVSSS5sZW5ndGggIT09IDEpIHsKICAkRVJST1IoJyMxOiBlbmNvZGVVUkkubGVuZ3RoID09PSAxLiBBY3R1YWw6ICcgKyAoZW5jb2RlVVJJLmxlbmd0aCkpOwp9IAoKCiB9Cn0pOwoK","id":"S15.1.3.3_A5.4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTUuNSIsCgpwYXRoOiAiMTUuMS4zLjMsIDE1LjIuNC43LCAxMi42LjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgcHJvcGVydHlJc0VudW1lcmFibGUsIGZvci1pbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICh0aGlzLnByb3BlcnR5SXNFbnVtZXJhYmxlKCdlbmNvZGVVUkknKSAhPT0gZmFsc2UpIHsKICAkRVJST1IoJyMxOiB0aGlzLnByb3BlcnR5SXNFbnVtZXJhYmxlKFwnZW5jb2RlVVJJXCcpID09PSBmYWxzZS4gQWN0dWFsOiAnICsgKHRoaXMucHJvcGVydHlJc0VudW1lcmFibGUoJ2VuY29kZVVSSScpKSk7Cn0KCi8vQ0hFQ0sjMgpyZXN1bHQgPSB0cnVlOwpmb3IgKHAgaW4gdGhpcyl7CiAgaWYgKHAgPT09ICJlbmNvZGVVUkkiKSB7CiAgICByZXN1bHQgPSBmYWxzZTsKICB9ICAKfQoKaWYgKHJlc3VsdCAhPT0gdHJ1ZSkgewogICRFUlJPUignIzI6IHJlc3VsdCA9IHRydWU7IGZvciAocCBpbiB0aGlzKSB7IGlmIChwID09PSAiZW5jb2RlVVJJIikgcmVzdWx0ID0gZmFsc2U7IH0gIHJlc3VsdCA9PT0gdHJ1ZTsnKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.3_A5.5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTUuNiIsCgpwYXRoOiAiMTUuMS4zLjMiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBlbmNvZGVVUkkucHJvdG90eXBlIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKGVuY29kZVVSSS5wcm90b3R5cGUgIT09IHVuZGVmaW5lZCkgewogICRFUlJPUignIzE6IGVuY29kZVVSSS5wcm90b3R5cGUgPT09IHVuZGVmaW5lZC4gQWN0dWFsOiAnICsgKGVuY29kZVVSSS5wcm90b3R5cGUpKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.3_A5.6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTUuNyIsCgpwYXRoOiAiMTUuMS4zLjMsIDExLjIuMiIsCgpkZXNjcmlwdGlvbjogIklmIHByb3BlcnR5IGRvZXMgbm90IGltcGxlbWVudCB0aGUgaW50ZXJuYWwgW1tDb25zdHJ1Y3RdXSBtZXRob2QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCgp0cnkgewogIG5ldyBlbmNvZGVVUkkoKTsKICAkRVJST1IoJyMxLjE6IG5ldyBlbmNvZGVVUkkoKSB0aHJvdyBUeXBlRXJyb3IuIEFjdHVhbDogJyArIChuZXcgZW5jb2RlVVJJKCkpKTsKfSBjYXRjaCAoZSkgewogIGlmICgoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikgIT09IHRydWUpIHsKICAgICRFUlJPUignIzEuMjogbmV3IGVuY29kZVVSSSgpIHRocm93IFR5cGVFcnJvci4gQWN0dWFsOiAnICsgKGUpKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.1.3.3_A5.7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjNfQTZfVDEiLAoKcGF0aDogIjE1LjEuMy4zLCA5LjgsIDguNi4yLjYiLAoKZGVzY3JpcHRpb246ICJJZiBUeXBlKHZhbHVlKSBpcyBPYmplY3QsIGV2YWx1YXRlIFRvUHJpbWl0aXZlKHZhbHVlLCBTdHJpbmcpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4gIl4ifX07CmlmIChlbmNvZGVVUkkob2JqZWN0KSAhPT0gIiU1Qm9iamVjdCUyME9iamVjdCU1RCIpIHsKICAkRVJST1IoJyMxOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiAiXiJ9fTsgZW5jb2RlVVJJKG9iamVjdCkgPT09ICU1Qm9iamVjdCUyME9iamVjdCU1RC4gQWN0dWFsOiAnICsgKGVuY29kZVVSSShvYmplY3QpKSk7Cn0KCi8vQ0hFQ0sjMgp2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiAiIn0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4gIl4ifX07CmlmIChlbmNvZGVVUkkob2JqZWN0KSAhPT0gIiU1RSIpIHsKICAkRVJST1IoJyMyOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiAiIn0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4gIl4ifX07IGVuY29kZVVSSShvYmplY3QpID09PSAiJTVFIi4gQWN0dWFsOiAnICsgKGVuY29kZVVSSShvYmplY3QpKSk7Cn0gCgovL0NIRUNLIzMKdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4gIl4ifSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiB7fX19OwppZiAoZW5jb2RlVVJJKG9iamVjdCkgIT09ICIlNUUiKSB7CiAgJEVSUk9SKCcjMzogdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4gIl4ifSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiB7fX19OyBlbmNvZGVVUkkob2JqZWN0KSA9PT0gIiU1RSIuIEFjdHVhbDogJyArIChlbmNvZGVVUkkob2JqZWN0KSkpOwp9CgovL0NIRUNLIzQKdHJ5IHsKICB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3Rocm93ICJlcnJvciJ9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuICJeIn19OwogIGlmIChlbmNvZGVVUkkob2JqZWN0KSAhPT0gIiU1RSIpIHsKICAgICRFUlJPUignIzQuMTogdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHt0aHJvdyAiZXJyb3IifSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiAiXiJ9fTsgZW5jb2RlVVJJKG9iamVjdCkgPT09ICIlNUUiLiBBY3R1YWw6ICcgKyAoZW5jb2RlVVJJKG9iamVjdCkpKTsKICB9Cn0KY2F0Y2ggKGUpIHsKICBpZiAoZSA9PT0gImVycm9yIikgewogICAgJEVSUk9SKCcjNC4yOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3Rocm93ICJlcnJvciJ9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuICJeIn19OyBlbmNvZGVVUkkob2JqZWN0KSBub3QgdGhyb3cgImVycm9yIicpOwogIH0gZWxzZSB7CiAgICAkRVJST1IoJyM0LjM6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7dGhyb3cgImVycm9yIn0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4gIl4ifX07IGVuY29kZVVSSShvYmplY3QpIG5vdCB0aHJvdyBFcnJvci4gQWN0dWFsOiAnICsgKGUpKTsKICB9Cn0KCi8vQ0hFQ0sjNQp2YXIgb2JqZWN0ID0ge3RvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4gIl4ifX07CmlmIChlbmNvZGVVUkkob2JqZWN0KSAhPT0gIiU1RSIpIHsKICAkRVJST1IoJyM1OiB2YXIgb2JqZWN0ID0ge3RvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4gIl4ifX07IGVuY29kZVVSSShvYmplY3QpID09PSAiJTVFIi4gQWN0dWFsOiAnICsgKGVuY29kZVVSSShvYmplY3QpKSk7Cn0KCi8vQ0hFQ0sjNgp2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiB7fX0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4gIl4ifX0KaWYgKGVuY29kZVVSSShvYmplY3QpICE9PSAiJTVFIikgewogICRFUlJPUignIzY6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuIHt9fSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiAiXiJ9fTsgZW5jb2RlVVJJKG9iamVjdCkgPT09ICIlNUUiLiBBY3R1YWw6ICcgKyAoZW5jb2RlVVJJKG9iamVjdCkpKTsKfQoKLy9DSEVDSyM3CnRyeSB7CiAgdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4gIl4ifSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3Rocm93ICJlcnJvciJ9fTsKICBlbmNvZGVVUkkob2JqZWN0KTsKICAkRVJST1IoJyM3LjE6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuICJeIn0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHt0aHJvdyAiZXJyb3IifX07IGVuY29kZVVSSShvYmplY3QpIHRocm93ICJlcnJvciIuIEFjdHVhbDogJyArIChlbmNvZGVVUkkob2JqZWN0KSkpOwp9ICAKY2F0Y2ggKGUpIHsKICBpZiAoZSAhPT0gImVycm9yIikgewogICAgJEVSUk9SKCcjNy4yOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiAiXiJ9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7dGhyb3cgImVycm9yIn19OyBlbmNvZGVVUkkob2JqZWN0KSB0aHJvdyAiZXJyb3IiLiBBY3R1YWw6ICcgKyAoZSkpOwogIH0gCn0KCi8vQ0hFQ0sjOAp0cnkgewogIHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuIHt9fSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiB7fX19OwogIGVuY29kZVVSSShvYmplY3QpOwogICRFUlJPUignIzguMTogdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4ge319LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIHt9fX07IGVuY29kZVVSSShvYmplY3QpIHRocm93IFR5cGVFcnJvci4gQWN0dWFsOiAnICsgKGVuY29kZVVSSShvYmplY3QpKSk7Cn0gIApjYXRjaCAoZSkgewogIGlmICgoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikgIT09IHRydWUpIHsKICAgICRFUlJPUignIzguMjogdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4ge319LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIHt9fX07IGVuY29kZVVSSShvYmplY3QpIHRocm93IFR5cGVFcnJvci4gQWN0dWFsOiAnICsgKGUpKTsKICB9IAp9CgogfQp9KTsKCg==","id":"S15.1.3.3_A6_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTEuMV9UMSIsCgpwYXRoOiAiMTUuMS4zLjQiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBlcnJvckNvdW50ID0gMDsKY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmZvciAoaW5kZXggPSAweERDMDA7IGluZGV4IDw9IDB4REZGRjsgaW5kZXgrKykgewogIGNvdW50Kys7IAogIGhleCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleCk7CiAgdHJ5IHsKICAgIGVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcuZnJvbUNoYXJDb2RlKGluZGV4KSk7CiAgfSBjYXRjaCAoZSkgeyAKICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSA9PT0gdHJ1ZSkgY29udGludWU7ICAgICAgICAgICAgICAgIAogIH0KICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgaW5kZXhPID0gaW5kZXg7CiAgfSBlbHNlIHsKICAgIGlmICgoaW5kZXggLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgfSAKICAgICAgZWxzZSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgIH0gIAogICAgICBpbmRleE8gPSBpbmRleDsKICAgIH0gICAgICAgICAKICB9CiAgaW5kZXhQID0gaW5kZXg7CiAgZXJyb3JDb3VudCsrOyAgICAgICAKfQoKaWYgKGVycm9yQ291bnQgPiAwKSB7CiAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgfSBlbHNlIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgfSAgICAgCiAgJEVSUk9SKCdUb3RhbCBlcnJvcjogJyArIGVycm9yQ291bnQgKyAnIGJhZCBVbmljb2RlIGNoYXJhY3RlciBpbiAnICsgY291bnQgKyAnICcpOwp9CgpmdW5jdGlvbiBkZWNpbWFsVG9IZXhTdHJpbmcobikgewogIG4gPSBOdW1iZXIobik7CiAgdmFyIGggPSAiIjsKICBmb3IgKHZhciBpID0gMzsgaSA+PSAwOyBpLS0pIHsKICAgIGlmIChuID49IE1hdGgucG93KDE2LCBpKSkgewogICAgICB2YXIgdCA9IE1hdGguZmxvb3IobiAvIE1hdGgucG93KDE2LCBpKSk7CiAgICAgIG4gLT0gdCAqIE1hdGgucG93KDE2LCBpKTsKICAgICAgaWYgKCB0ID49IDEwICkgewogICAgICAgIGlmICggdCA9PSAxMCApIHsgaCArPSAiQSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTEgKSB7IGggKz0gIkIiOyB9CiAgICAgICAgaWYgKCB0ID09IDEyICkgeyBoICs9ICJDIjsgfQogICAgICAgIGlmICggdCA9PSAxMyApIHsgaCArPSAiRCI7IH0KICAgICAgICBpZiAoIHQgPT0gMTQgKSB7IGggKz0gIkUiOyB9CiAgICAgICAgaWYgKCB0ID09IDE1ICkgeyBoICs9ICJGIjsgfQogICAgICB9IGVsc2UgewogICAgICAgIGggKz0gU3RyaW5nKHQpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBoICs9ICIwIjsKICAgIH0KICB9CiAgcmV0dXJuIGg7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.4_A1.1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTEuMV9UMiIsCgpwYXRoOiAiMTUuMS4zLjQiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBlcnJvckNvdW50ID0gMDsKY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmZvciAoaW5kZXggPSAweERDMDA7IGluZGV4IDw9IDB4REZGRjsgaW5kZXgrKykgeyAKICBjb3VudCsrOyAKICBoZXggPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXgpOwogIHRyeSB7CiAgICBlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nLmZyb21DaGFyQ29kZShpbmRleCwgMHgwMDQxKSk7CiAgfSBjYXRjaCAoZSkgeyAKICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSA9PT0gdHJ1ZSkgY29udGludWU7ICAgICAgICAgICAgICAgIAogIH0KICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgaW5kZXhPID0gaW5kZXg7CiAgfSBlbHNlIHsKICAgIGlmICgoaW5kZXggLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgfSAKICAgICAgZWxzZSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgIH0gIAogICAgICBpbmRleE8gPSBpbmRleDsKICAgIH0gICAgICAgICAKICB9CiAgaW5kZXhQID0gaW5kZXg7CiAgZXJyb3JDb3VudCsrOyAgICAKfQoKaWYgKGVycm9yQ291bnQgPiAwKSB7CiAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgfSBlbHNlIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgfSAgICAgCiAgJEVSUk9SKCdUb3RhbCBlcnJvcjogJyArIGVycm9yQ291bnQgKyAnIGJhZCBVbmljb2RlIGNoYXJhY3RlciBpbiAnICsgY291bnQgKyAnICcpOwp9CgpmdW5jdGlvbiBkZWNpbWFsVG9IZXhTdHJpbmcobikgewogIG4gPSBOdW1iZXIobik7CiAgdmFyIGggPSAiIjsKICBmb3IgKHZhciBpID0gMzsgaSA+PSAwOyBpLS0pIHsKICAgIGlmIChuID49IE1hdGgucG93KDE2LCBpKSkgewogICAgICB2YXIgdCA9IE1hdGguZmxvb3IobiAvIE1hdGgucG93KDE2LCBpKSk7CiAgICAgIG4gLT0gdCAqIE1hdGgucG93KDE2LCBpKTsKICAgICAgaWYgKCB0ID49IDEwICkgewogICAgICAgIGlmICggdCA9PSAxMCApIHsgaCArPSAiQSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTEgKSB7IGggKz0gIkIiOyB9CiAgICAgICAgaWYgKCB0ID09IDEyICkgeyBoICs9ICJDIjsgfQogICAgICAgIGlmICggdCA9PSAxMyApIHsgaCArPSAiRCI7IH0KICAgICAgICBpZiAoIHQgPT0gMTQgKSB7IGggKz0gIkUiOyB9CiAgICAgICAgaWYgKCB0ID09IDE1ICkgeyBoICs9ICJGIjsgfQogICAgICB9IGVsc2UgewogICAgICAgIGggKz0gU3RyaW5nKHQpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBoICs9ICIwIjsKICAgIH0KICB9CiAgcmV0dXJuIGg7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.4_A1.1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTEuMl9UMSIsCgpwYXRoOiAiMTUuMS4zLjQiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBlcnJvckNvdW50ID0gMDsKY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmZvciAoaW5kZXggPSAweEQ4MDA7IGluZGV4IDw9IDB4REJGRjsgaW5kZXgrKykgewogIGNvdW50Kys7ICAgCiAgaGV4ID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4KTsKICB0cnkgewogICAgZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZy5mcm9tQ2hhckNvZGUoaW5kZXgpKTsKICB9IGNhdGNoIChlKSB7IAogICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpID09PSB0cnVlKSBjb250aW51ZTsgICAgICAgICAgICAgICAgCiAgfQogIGlmIChpbmRleE8gPT09IDApIHsgCiAgICBpbmRleE8gPSBpbmRleDsKICB9IGVsc2UgewogICAgaWYgKChpbmRleCAtIGluZGV4UCkgIT09IDEpIHsgICAgICAgICAgICAgCiAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICB9IAogICAgICBlbHNlIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICAgICAgfSAgCiAgICAgIGluZGV4TyA9IGluZGV4OwogICAgfSAgICAgICAgIAogIH0KICBpbmRleFAgPSBpbmRleDsKICBlcnJvckNvdW50Kys7ICAgIAp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.4_A1.2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTEuMl9UMiIsCgpwYXRoOiAiMTUuMS4zLjQiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBlcnJvckNvdW50ID0gMDsKY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmZvciAoaW5kZXggPSAweEQ4MDA7IGluZGV4IDw9IDB4REJGRjsgaW5kZXgrKykgeyAKICBjb3VudCsrOyAKICBoZXggPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXgpOwogIHRyeSB7CiAgICBlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nLmZyb21DaGFyQ29kZSgweDAwNDEsIGluZGV4KSk7CiAgfSBjYXRjaCAoZSkgeyAKICAgIGlmICgoZSBpbnN0YW5jZW9mIFVSSUVycm9yKSA9PT0gdHJ1ZSkgY29udGludWU7ICAgICAgICAgICAgICAgIAogIH0KICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgaW5kZXhPID0gaW5kZXg7CiAgfSBlbHNlIHsKICAgIGlmICgoaW5kZXggLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgfSAKICAgICAgZWxzZSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgIH0gIAogICAgICBpbmRleE8gPSBpbmRleDsKICAgIH0gICAgICAgICAKICB9CiAgaW5kZXhQID0gaW5kZXg7CiAgZXJyb3JDb3VudCsrOyAgICAgIAp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.4_A1.2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTEuM19UMSIsCgpwYXRoOiAiMTUuMS4zLjQiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCBzdHJpbmcuY2hhckF0KGsrMSkgaW4gWzB4MDAwMCwgMHhEN0ZGLCAweEQ4MDAsIDB4REJGRSwgMHhEQkZGLCAweEUwMDAsIDB4RkZGRl0iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGNoYXJzID0gWzB4MDAwMCwgMHhEN0ZGLCAweEQ4MDAsIDB4REJGRSwgMHhEQkZGLCAweEUwMDAsIDB4RkZGRl07CmVycm9yQ291bnQgPSAwOwpjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOwoKZm9yIChpbmRleCA9IDB4RDgwMDsgaW5kZXggPD0gMHhEQkZGOyBpbmRleCsrKSB7CiAgY291bnQrKzsgCiAgcmVzID0gdHJ1ZTsKICBmb3IgKGluZGV4QyA9IDA7IGluZGV4QyA8IGNoYXJzLmxlbmd0aDsgaW5kZXhDKyspIHsgIAogICAgaGV4ID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4KTsKICAgIHRyeSB7CiAgICAgIGVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcuZnJvbUNoYXJDb2RlKGluZGV4LCBjaGFyc1tpbmRleENdKSk7ICAgIAogICAgfSBjYXRjaCAoZSkgeyAKICAgICAgaWYgKChlIGluc3RhbmNlb2YgVVJJRXJyb3IpID09PSB0cnVlKSBjb250aW51ZTsKICAgIH0KICAgIHJlcyA9IGZhbHNlOwogIH0KICBpZiAocmVzICE9PSB0cnVlKSB7CiAgICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgICBpbmRleE8gPSBpbmRleDsKICAgIH0gZWxzZSB7CiAgICAgIGlmICgoaW5kZXggLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICAgIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gCiAgICAgICAgZWxzZSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICAgIH0gIAogICAgICAgIGluZGV4TyA9IGluZGV4OwogICAgICB9ICAgICAgICAgCiAgICB9CiAgICBpbmRleFAgPSBpbmRleDsKICAgIGVycm9yQ291bnQrKzsgICAgCiAgfSAgCn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.4_A1.3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTIuMV9UMSIsCgpwYXRoOiAiMTUuMS4zLjQiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1c2UgUkZDIDM2MjkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHVyaVVuZXNjYXBlZCA9IFsiLSIsICJfIiwgIi4iLCAiISIsICJ+IiwgIioiLCAiJyIsICIoIiwgIikiLCAiQSIsICJCIiwgIkMiLCAiRCIsICJFIiwgIkYiLCAiRyIsICJIIiwgIkkiLCAiSiIsICJLIiwgIkwiLCAiTSIsICJOIiwgIk8iLCAiUCIsICJRIiwgIlIiLCAiUyIsICJUIiwgIlUiLCAiViIsICJXIiwgIlgiLCAiWSIsICJaIiwgImEiLCAiYiIsICJjIiwgImQiLCAiZSIsICJmIiwgImciLCAiaCIsICJpIiwgImoiLCAiayIsICJsIiwgIm0iLCAibiIsICJvIiwgInAiLCAicSIsICJyIiwgInMiLCAidCIsICJ1IiwgInYiLCAidyIsICJ4IiwgInkiLCAieiIsICIwIiwgIjEiLCAiMiIsICIzIiwgIjQiLCAiNSIsICI2IiwgIjciLCAiOCIsICI5Il07IAplcnJvckNvdW50ID0gMDsKY291bnQgPSAwOwp2YXIgaW5kZXhQOwp2YXIgaW5kZXhPID0gMDsKCmwgOiAKZm9yIChpbmRleCA9IDB4MDAwMDsgaW5kZXggPD0gMHgwMDdGOyBpbmRleCsrKSB7CiAgY291bnQrKzsKICBzdHIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGluZGV4KTsKICAgIGZvciAoaW5kZXhDID0gMDsgaW5kZXhDIDwgdXJpVW5lc2NhcGVkLmxlbmd0aDsgaW5kZXhDKyspIHsKICAgIGlmICh1cmlVbmVzY2FwZWRbaW5kZXhDXSA9PT0gc3RyKSBjb250aW51ZSBsOwogIH0gICAgCiAgdHJ5IHsKICAgIGlmIChlbmNvZGVVUklDb21wb25lbnQoc3RyKS50b1VwcGVyQ2FzZSgpID09PSAiJSIgKyBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXgpLnN1YnN0cmluZygyKSkgY29udGludWUgbDsgCiAgfSBjYXRjaChlKSB7fSAgICAgCiAgaWYgKGluZGV4TyA9PT0gMCkgeyAKICAgIGluZGV4TyA9IGluZGV4OwogIH0gZWxzZSB7CiAgICBpZiAoKGluZGV4IC0gaW5kZXhQKSAhPT0gMSkgeyAgICAgICAgICAgICAKICAgICAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgICAgIH0gCiAgICAgIGVsc2UgewogICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICB9ICAKICAgICAgaW5kZXhPID0gaW5kZXg7CiAgICB9ICAgICAgICAgCiAgfQogIGluZGV4UCA9IGluZGV4OwogIGVycm9yQ291bnQrKzsgICAgIAp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.4_A2.1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTIuMl9UMSIsCgpwYXRoOiAiMTUuMS4zLjQiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1c2UgUkZDIDM2MjkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGVycm9yQ291bnQgPSAwOwpjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOyAKbDoKZm9yIChpbmRleCA9IDB4MDA4MDsgaW5kZXggPD0gMHgwN0ZGOyBpbmRleCsrKSB7CiAgY291bnQrKzsgIAogIGhleDEgPSBkZWNpbWFsVG9IZXhTdHJpbmcoMHgwMDgwICsgKGluZGV4ICYgMHgwMDNGKSkuc3Vic3RyaW5nKDIpOwogIGhleDIgPSBkZWNpbWFsVG9IZXhTdHJpbmcoMHgwMEMwICsgKGluZGV4ICYgMHgwN0MwKSAvIDB4MDA0MCkuc3Vic3RyaW5nKDIpOyAgICAKICBzdHIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGluZGV4KTsKICB0cnkgewogICAgaWYgKGVuY29kZVVSSUNvbXBvbmVudChzdHIpLnRvVXBwZXJDYXNlKCkgPT09ICIlIiArIGhleDIgKyAiJSIgKyBoZXgxKSBjb250aW51ZTsKICB9IGNhdGNoKGUpIHt9ICAKICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgaW5kZXhPID0gaW5kZXg7CiAgfSBlbHNlIHsKICAgIGlmICgoaW5kZXggLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgfSAKICAgICAgZWxzZSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgIH0gIAogICAgICBpbmRleE8gPSBpbmRleDsKICAgIH0gICAgICAgICAKICB9CiAgaW5kZXhQID0gaW5kZXg7CiAgZXJyb3JDb3VudCsrOyAgICAKfQoKaWYgKGVycm9yQ291bnQgPiAwKSB7CiAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgfSBlbHNlIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgfSAgICAgCiAgJEVSUk9SKCdUb3RhbCBlcnJvcjogJyArIGVycm9yQ291bnQgKyAnIGJhZCBVbmljb2RlIGNoYXJhY3RlciBpbiAnICsgY291bnQgKyAnICcpOwp9CgpmdW5jdGlvbiBkZWNpbWFsVG9IZXhTdHJpbmcobikgewogIG4gPSBOdW1iZXIobik7CiAgdmFyIGggPSAiIjsKICBmb3IgKHZhciBpID0gMzsgaSA+PSAwOyBpLS0pIHsKICAgIGlmIChuID49IE1hdGgucG93KDE2LCBpKSkgewogICAgICB2YXIgdCA9IE1hdGguZmxvb3IobiAvIE1hdGgucG93KDE2LCBpKSk7CiAgICAgIG4gLT0gdCAqIE1hdGgucG93KDE2LCBpKTsKICAgICAgaWYgKCB0ID49IDEwICkgewogICAgICAgIGlmICggdCA9PSAxMCApIHsgaCArPSAiQSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTEgKSB7IGggKz0gIkIiOyB9CiAgICAgICAgaWYgKCB0ID09IDEyICkgeyBoICs9ICJDIjsgfQogICAgICAgIGlmICggdCA9PSAxMyApIHsgaCArPSAiRCI7IH0KICAgICAgICBpZiAoIHQgPT0gMTQgKSB7IGggKz0gIkUiOyB9CiAgICAgICAgaWYgKCB0ID09IDE1ICkgeyBoICs9ICJGIjsgfQogICAgICB9IGVsc2UgewogICAgICAgIGggKz0gU3RyaW5nKHQpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBoICs9ICIwIjsKICAgIH0KICB9CiAgcmV0dXJuIGg7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.4_A2.2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTIuM19UMSIsCgpwYXRoOiAiMTUuMS4zLjQiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1c2UgUkZDIDM2MjkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGVycm9yQ291bnQgPSAwOwpjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOyAKZm9yIChpbmRleCA9IDB4MDgwMDsgaW5kZXggPD0gMHhEN0ZGOyBpbmRleCsrKSB7CiAgY291bnQrKzsgCiAgaGV4MSA9IGRlY2ltYWxUb0hleFN0cmluZygweDAwODAgKyAoaW5kZXggJiAweDAwM0YpKS5zdWJzdHJpbmcoMik7CiAgaGV4MiA9IGRlY2ltYWxUb0hleFN0cmluZygweDAwODAgKyAoaW5kZXggJiAweDBGQzApIC8gMHgwMDQwKS5zdWJzdHJpbmcoMik7CiAgaGV4MyA9IGRlY2ltYWxUb0hleFN0cmluZygweDAwRTAgKyAoaW5kZXggJiAweEYwMDApIC8gMHgxMDAwKS5zdWJzdHJpbmcoMik7CiAgc3RyID0gU3RyaW5nLmZyb21DaGFyQ29kZShpbmRleCk7CiAgdHJ5IHsKICAgIGlmIChlbmNvZGVVUklDb21wb25lbnQoc3RyKS50b1VwcGVyQ2FzZSgpID09PSAiJSIgKyBoZXgzICsgIiUiICsgaGV4MiArICIlIiArIGhleDEpIGNvbnRpbnVlOwogIH0gY2F0Y2goZSkge30gICAgICAKICBpZiAoaW5kZXhPID09PSAwKSB7IAogICAgaW5kZXhPID0gaW5kZXg7CiAgfSBlbHNlIHsKICAgIGlmICgoaW5kZXggLSBpbmRleFApICE9PSAxKSB7ICAgICAgICAgICAgIAogICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgfSAKICAgICAgZWxzZSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgIH0gIAogICAgICBpbmRleE8gPSBpbmRleDsKICAgIH0gICAgICAgICAKICB9CiAgaW5kZXhQID0gaW5kZXg7CiAgZXJyb3JDb3VudCsrOyAgICAKfSAKCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.4_A2.3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTIuNF9UMSIsCgpwYXRoOiAiMTUuMS4zLjQiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1c2UgUkZDIDM2MjksIHN0cmluZy5jaGFyQXQoaysxKSBpbiBbMHhEQzAwLCAweERERkYsIDB4REZGRl0iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGNoYXJzID0gWzB4REMwMCwgMHhEREZGLCAweERGRkZdOyAKZXJyb3JDb3VudCA9IDA7CmNvdW50ID0gMDsKdmFyIGluZGV4UDsKdmFyIGluZGV4TyA9IDA7IApmb3IgKGluZGV4ID0gMHhEODAwOyBpbmRleCA8PSAweERCRkY7IGluZGV4KyspIHsKICByZXMgPSB0cnVlOwogIGZvciAoaW5kZXhDID0gMDsgaW5kZXhDIDwgY2hhcnMubGVuZ3RoOyBpbmRleEMrKykgewogICAgaW5kZXgxID0gKGluZGV4IC0gMHhEODAwKSAqIDB4NDAwICsgKGNoYXJzW2luZGV4Q10gLSAweERDMDApICsgMHgxMDAwMDsgCiAgICBoZXgxID0gZGVjaW1hbFRvSGV4U3RyaW5nKDB4MDA4MCArIChpbmRleDEgJiAweDAwM0YpKS5zdWJzdHJpbmcoMik7CiAgICBoZXgyID0gZGVjaW1hbFRvSGV4U3RyaW5nKDB4MDA4MCArIChpbmRleDEgJiAweDBGQzApIC8gMHgwMDQwKS5zdWJzdHJpbmcoMik7CiAgICBoZXgzID0gZGVjaW1hbFRvSGV4U3RyaW5nKDB4MDA4MCArIChpbmRleDEgJiAweDNGMDAwKSAvIDB4MTAwMCkuc3Vic3RyaW5nKDIpOwogICAgaGV4NCA9IGRlY2ltYWxUb0hleFN0cmluZygweDAwRjAgKyAoaW5kZXgxICYgMHgxQzAwMDApIC8gMHg0MDAwMCkuc3Vic3RyaW5nKDIpOwogICAgc3RyID0gU3RyaW5nLmZyb21DaGFyQ29kZShpbmRleCwgY2hhcnNbaW5kZXhDXSk7CiAgICB0cnkgewogICAgICBpZiAoZW5jb2RlVVJJQ29tcG9uZW50KHN0cikudG9VcHBlckNhc2UoKSAhPT0gIiUiICsgaGV4NCArICIlIiArIGhleDMgKyAiJSIgKyBoZXgyICsgIiUiICsgaGV4MSkgewogICAgICAgIHJlcyA9IGZhbHNlOwogICAgICB9CiAgICB9IGNhdGNoKGUpIHtyZXMgPSBmYWxzZX0gICAgCiAgfQogIGlmIChyZXMgIT09IHRydWUpIHsgIAogICAgaWYgKGluZGV4TyA9PT0gMCkgeyAKICAgICAgaW5kZXhPID0gaW5kZXg7CiAgICB9IGVsc2UgewogICAgICBpZiAoKGluZGV4IC0gaW5kZXhQKSAhPT0gMSkgeyAgICAgICAgICAgICAKICAgICAgICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgICAgICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICAgICAgICB9IAogICAgICAgIGVsc2UgewogICAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICAgICAgICB9ICAKICAgICAgICBpbmRleE8gPSBpbmRleDsKICAgICAgfSAgICAgICAgIAogICAgfQogICAgaW5kZXhQID0gaW5kZXg7CiAgICBlcnJvckNvdW50Kys7ICAgIAogIH0KICBjb3VudCsrOyAgCn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.4_A2.4_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTIuNF9UMiIsCgpwYXRoOiAiMTUuMS4zLjQiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1c2UgUkZDIDM2MjksIHN0cmluZy5jaGFyQXQoaykgaW4gWzB4RDgwMCwgMHhEQkZGLCAweEQ5RkZdIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBjaGFycyA9IFsweEQ4MDAsIDB4REJGRiwgMHhEOUZGXTsgCmVycm9yQ291bnQgPSAwOwpjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOyAKZm9yIChpbmRleCA9IDB4REMwMDsgaW5kZXggPD0gMHhERkZGOyBpbmRleCsrKSB7CiAgcmVzID0gdHJ1ZTsKICBmb3IgKGluZGV4QyA9IDA7IGluZGV4QyA8IGNoYXJzLmxlbmd0aDsgaW5kZXhDKyspIHsKICAgIGluZGV4MSA9IChjaGFyc1tpbmRleENdIC0gMHhEODAwKSAqIDB4NDAwICsgKGluZGV4IC0gMHhEQzAwKSArIDB4MTAwMDA7IAogICAgaGV4MSA9IGRlY2ltYWxUb0hleFN0cmluZygweDAwODAgKyAoaW5kZXgxICYgMHgwMDNGKSkuc3Vic3RyaW5nKDIpOwogICAgaGV4MiA9IGRlY2ltYWxUb0hleFN0cmluZygweDAwODAgKyAoaW5kZXgxICYgMHgwRkMwKSAvIDB4MDA0MCkuc3Vic3RyaW5nKDIpOwogICAgaGV4MyA9IGRlY2ltYWxUb0hleFN0cmluZygweDAwODAgKyAoaW5kZXgxICYgMHgzRjAwMCkgLyAweDEwMDApLnN1YnN0cmluZygyKTsKICAgIGhleDQgPSBkZWNpbWFsVG9IZXhTdHJpbmcoMHgwMEYwICsgKGluZGV4MSAmIDB4MUMwMDAwKSAvIDB4NDAwMDApLnN1YnN0cmluZygyKTsKICAgIHN0ciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoY2hhcnNbaW5kZXhDXSwgaW5kZXgpOwogICAgdHJ5IHsKICAgICAgaWYgKGVuY29kZVVSSUNvbXBvbmVudChzdHIpLnRvVXBwZXJDYXNlKCkgIT09ICIlIiArIGhleDQgKyAiJSIgKyBoZXgzICsgIiUiICsgaGV4MiArICIlIiArIGhleDEpIHsKICAgICAgICByZXMgPSBmYWxzZTsKICAgICAgfQogICAgfSBjYXRjaChlKSB7cmVzID0gZmFsc2V9ICAgIAogIH0KICBpZiAocmVzICE9PSB0cnVlKSB7ICAKICAgIGlmIChpbmRleE8gPT09IDApIHsgCiAgICAgIGluZGV4TyA9IGluZGV4OwogICAgfSBlbHNlIHsKICAgICAgaWYgKChpbmRleCAtIGluZGV4UCkgIT09IDEpIHsgICAgICAgICAgICAgCiAgICAgICAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICAgICAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgICAgICAgdmFyIGhleE8gPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhPKTsKICAgICAgICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgICAgICAgfSAKICAgICAgICBlbHNlIHsKICAgICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgICAkRVJST1IoJyMnICsgaGV4UCArICcgJyk7CiAgICAgICAgfSAgCiAgICAgICAgaW5kZXhPID0gaW5kZXg7CiAgICAgIH0gICAgICAgICAKICAgIH0KICAgIGluZGV4UCA9IGluZGV4OwogICAgZXJyb3JDb3VudCsrOyAgICAKICB9CiAgY291bnQrKzsgIAp9CgppZiAoZXJyb3JDb3VudCA+IDApIHsKICBpZiAoKGluZGV4UCAtIGluZGV4TykgIT09IDApIHsKICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgJEVSUk9SKCcjJyArIGhleE8gKyAnLScgKyBoZXhQICsgJyAnKTsKICB9IGVsc2UgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICRFUlJPUignIycgKyBoZXhQICsgJyAnKTsKICB9ICAgICAKICAkRVJST1IoJ1RvdGFsIGVycm9yOiAnICsgZXJyb3JDb3VudCArICcgYmFkIFVuaWNvZGUgY2hhcmFjdGVyIGluICcgKyBjb3VudCArICcgJyk7Cn0KCmZ1bmN0aW9uIGRlY2ltYWxUb0hleFN0cmluZyhuKSB7CiAgbiA9IE51bWJlcihuKTsKICB2YXIgaCA9ICIiOwogIGZvciAodmFyIGkgPSAzOyBpID49IDA7IGktLSkgewogICAgaWYgKG4gPj0gTWF0aC5wb3coMTYsIGkpKSB7CiAgICAgIHZhciB0ID0gTWF0aC5mbG9vcihuIC8gTWF0aC5wb3coMTYsIGkpKTsKICAgICAgbiAtPSB0ICogTWF0aC5wb3coMTYsIGkpOwogICAgICBpZiAoIHQgPj0gMTAgKSB7CiAgICAgICAgaWYgKCB0ID09IDEwICkgeyBoICs9ICJBIjsgfQogICAgICAgIGlmICggdCA9PSAxMSApIHsgaCArPSAiQiI7IH0KICAgICAgICBpZiAoIHQgPT0gMTIgKSB7IGggKz0gIkMiOyB9CiAgICAgICAgaWYgKCB0ID09IDEzICkgeyBoICs9ICJEIjsgfQogICAgICAgIGlmICggdCA9PSAxNCApIHsgaCArPSAiRSI7IH0KICAgICAgICBpZiAoIHQgPT0gMTUgKSB7IGggKz0gIkYiOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaCArPSBTdHJpbmcodCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGggKz0gIjAiOwogICAgfQogIH0KICByZXR1cm4gaDsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.4_A2.4_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTIuNV9UMSIsCgpwYXRoOiAiMTUuMS4zLjQiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1c2UgUkZDIDM2MjkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGVycm9yQ291bnQgPSAwOwpjb3VudCA9IDA7CnZhciBpbmRleFA7CnZhciBpbmRleE8gPSAwOyAKZm9yIChpbmRleCA9IDB4RTAwMDsgaW5kZXggPD0gMHhGRkZGOyBpbmRleCsrKSB7CiAgY291bnQrKzsgIAogIGhleDEgPSBkZWNpbWFsVG9IZXhTdHJpbmcoMHgwMDgwICsgKGluZGV4ICYgMHgwMDNGKSkuc3Vic3RyaW5nKDIpOwogIGhleDIgPSBkZWNpbWFsVG9IZXhTdHJpbmcoMHgwMDgwICsgKGluZGV4ICYgMHgwRkMwKSAvIDB4MDA0MCkuc3Vic3RyaW5nKDIpOwogIGhleDMgPSBkZWNpbWFsVG9IZXhTdHJpbmcoMHgwMEUwICsgKGluZGV4ICYgMHhGMDAwKSAvIDB4MTAwMCkuc3Vic3RyaW5nKDIpOwogIHN0ciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoaW5kZXgpOwogIHRyeSB7CiAgICBpZiAoZW5jb2RlVVJJQ29tcG9uZW50KHN0cikudG9VcHBlckNhc2UoKSA9PT0gIiUiICsgaGV4MyArICIlIiArIGhleDIgKyAiJSIgKyBoZXgxKSBjb250aW51ZTsKICB9IGNhdGNoKGUpIHt9ICAgICAgCiAgaWYgKGluZGV4TyA9PT0gMCkgeyAKICAgIGluZGV4TyA9IGluZGV4OwogIH0gZWxzZSB7CiAgICBpZiAoKGluZGV4IC0gaW5kZXhQKSAhPT0gMSkgeyAgICAgICAgICAgICAKICAgICAgaWYgKChpbmRleFAgLSBpbmRleE8pICE9PSAwKSB7CiAgICAgICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgICAgICB2YXIgaGV4TyA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleE8pOwogICAgICAgICRFUlJPUignIycgKyBoZXhPICsgJy0nICsgaGV4UCArICcgJyk7CiAgICAgIH0gCiAgICAgIGVsc2UgewogICAgICAgIHZhciBoZXhQID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4UCk7CiAgICAgICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogICAgICB9ICAKICAgICAgaW5kZXhPID0gaW5kZXg7CiAgICB9ICAgICAgICAgCiAgfQogIGluZGV4UCA9IGluZGV4OwogIGVycm9yQ291bnQrKzsgICAgCn0KCmlmIChlcnJvckNvdW50ID4gMCkgewogIGlmICgoaW5kZXhQIC0gaW5kZXhPKSAhPT0gMCkgewogICAgdmFyIGhleFAgPSBkZWNpbWFsVG9IZXhTdHJpbmcoaW5kZXhQKTsKICAgIHZhciBoZXhPID0gZGVjaW1hbFRvSGV4U3RyaW5nKGluZGV4Tyk7CiAgICAkRVJST1IoJyMnICsgaGV4TyArICctJyArIGhleFAgKyAnICcpOwogIH0gZWxzZSB7CiAgICB2YXIgaGV4UCA9IGRlY2ltYWxUb0hleFN0cmluZyhpbmRleFApOwogICAgJEVSUk9SKCcjJyArIGhleFAgKyAnICcpOwogIH0gICAgIAogICRFUlJPUignVG90YWwgZXJyb3I6ICcgKyBlcnJvckNvdW50ICsgJyBiYWQgVW5pY29kZSBjaGFyYWN0ZXIgaW4gJyArIGNvdW50ICsgJyAnKTsKfQoKZnVuY3Rpb24gZGVjaW1hbFRvSGV4U3RyaW5nKG4pIHsKICBuID0gTnVtYmVyKG4pOwogIHZhciBoID0gIiI7CiAgZm9yICh2YXIgaSA9IDM7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAobiA+PSBNYXRoLnBvdygxNiwgaSkpIHsKICAgICAgdmFyIHQgPSBNYXRoLmZsb29yKG4gLyBNYXRoLnBvdygxNiwgaSkpOwogICAgICBuIC09IHQgKiBNYXRoLnBvdygxNiwgaSk7CiAgICAgIGlmICggdCA+PSAxMCApIHsKICAgICAgICBpZiAoIHQgPT0gMTAgKSB7IGggKz0gIkEiOyB9CiAgICAgICAgaWYgKCB0ID09IDExICkgeyBoICs9ICJCIjsgfQogICAgICAgIGlmICggdCA9PSAxMiApIHsgaCArPSAiQyI7IH0KICAgICAgICBpZiAoIHQgPT0gMTMgKSB7IGggKz0gIkQiOyB9CiAgICAgICAgaWYgKCB0ID09IDE0ICkgeyBoICs9ICJFIjsgfQogICAgICAgIGlmICggdCA9PSAxNSApIHsgaCArPSAiRiI7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IFN0cmluZyh0KTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgaCArPSAiMCI7CiAgICB9CiAgfQogIHJldHVybiBoOwp9CgogfQp9KTsKCg==","id":"S15.1.3.4_A2.5_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTMuMV9UMSIsCgpwYXRoOiAiMTUuMS4zLjQiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB1cmlSZXNlcnZlZCA9IFsiJTNCIiwgIiUyRiIsICIlM0YiLCAiJTNBIiwgIiU0MCIsICIlMjYiLCAiJTNEIiwgIiUyQiIsICIlMjQiLCAiJTJDIl07CnVyaVJlc2VydmVkXyA9IFsiOyIsICIvIiwgIj8iLCAiOiIsICJAIiwgIiYiLCAiPSIsICIrIiwgIiQiLCAiLCJdOyAgICAgICAgICAgICAgICAgIApmb3IgKGluZGV4QyA9IDA7IGluZGV4QyA8IDEwOyBpbmRleEMrKykgeyAgICAKICB2YXIgc3RyID0gdXJpUmVzZXJ2ZWRfW2luZGV4Q107CiAgaWYgKGVuY29kZVVSSUNvbXBvbmVudChzdHIpICE9PSB1cmlSZXNlcnZlZFtpbmRleENdKSB7CiAgICAkRVJST1IoJyMnICsgKGluZGV4QyArIDEpICsgJzogdW5lc2NhcGVkVVJJQ29tcG9uZW50U2V0IG5vdCBjb250YWluaW5nJyArIHN0cik7CiAgfSAgCn0KCiB9Cn0pOwoK","id":"S15.1.3.4_A3.1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTMuMl9UMSIsCgpwYXRoOiAiMTUuMS4zLjQiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1cmlVbmVzY2FwZWQgOjogdXJpQWxwaGEiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHVyaUFscGhhID0gWyJBIiwgIkIiLCAiQyIsICJEIiwgIkUiLCAiRiIsICJHIiwgIkgiLCAiSSIsICJKIiwgIksiLCAiTCIsICJNIiwgIk4iLCAiTyIsICJQIiwgIlEiLCAiUiIsICJTIiwgIlQiLCAiVSIsICJWIiwgIlciLCAiWCIsICJZIiwgIloiLCAiYSIsICJiIiwgImMiLCAiZCIsICJlIiwgImYiLCAiZyIsICJoIiwgImkiLCAiaiIsICJrIiwgImwiLCAibSIsICJuIiwgIm8iLCAicCIsICJxIiwgInIiLCAicyIsICJ0IiwgInUiLCAidiIsICJ3IiwgIngiLCAieSIsICJ6Il07CmZvciAoaW5kZXhDID0gMDsgaW5kZXhDIDwgdXJpQWxwaGEubGVuZ3RoOyBpbmRleEMrKykgewogIHZhciBzdHIgPSB1cmlBbHBoYVtpbmRleENdOyAgICAKICBpZiAoZW5jb2RlVVJJQ29tcG9uZW50KHN0cikgIT09IHN0cikgewogICAgJEVSUk9SKCcjJyArIChpbmRleEMgKyAxKSArICc6IHVuZXNjYXBlZFVSSVNldCBjb250YWluaW5nICcgKyBzdHIpOwogIH0gIAp9CgogfQp9KTsKCg==","id":"S15.1.3.4_A3.2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTMuMl9UMiIsCgpwYXRoOiAiMTUuMS4zLjQiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1cmlVbmVzY2FwZWQgOjogRGVjaW1hbERpZ2l0IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBEZWNpbWFsRGlnaXQgPSBbIjAiLCAiMSIsICIyIiwgIjMiLCAiNCIsICI1IiwgIjYiLCAiNyIsICI4IiwgIjkiXTsKZm9yIChpbmRleEMgPSAwOyBpbmRleEMgPCBEZWNpbWFsRGlnaXQubGVuZ3RoOyBpbmRleEMrKykgewogIHZhciBzdHIgPSBEZWNpbWFsRGlnaXRbaW5kZXhDXTsgICAgCiAgaWYgKGVuY29kZVVSSUNvbXBvbmVudChzdHIpICE9PSBzdHIpIHsKICAgICRFUlJPUignIycgKyAoaW5kZXhDICsgMSkgKyAnOiB1bmVzY2FwZWRVUklTZXQgY29udGFpbmluZycgKyBzdHIpOwogIH0gIAp9CgogfQp9KTsKCg==","id":"S15.1.3.4_A3.2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTMuMl9UMyIsCgpwYXRoOiAiMTUuMS4zLjQiLAoKZGVzY3JpcHRpb246ICJDb21wbGV4IHRlc3RzLCB1cmlVbmVzY2FwZWQgOjogdXJpTWFyayIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdXJpTWFyayA9IFsiLSIsICJfIiwgIi4iLCAiISIsICJ+IiwgIioiLCAiJyIsICIoIiwgIikiXTsKZm9yIChpbmRleEMgPSAwOyBpbmRleEMgPCB1cmlNYXJrLmxlbmd0aDsgaW5kZXhDKyspIHsKICB2YXIgc3RyID0gdXJpTWFya1tpbmRleENdOyAgICAKICBpZiAoZW5jb2RlVVJJQ29tcG9uZW50KHN0cikgIT09IHN0cikgewogICAgJEVSUk9SKCcjJyArIChpbmRleEMgKyAxKSArICc6IHVuZXNjYXBlZFVSSVNldCBjb250YWluaW5nJyArIHN0cik7CiAgfSAgCn0KCiB9Cn0pOwoK","id":"S15.1.3.4_A3.2_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTMuM19UMSIsCgpwYXRoOiAiMTUuMS4zLjQiLAoKZGVzY3JpcHRpb246ICJlbmNvZGVVUklDb21wb25lbnQoXCIjXCIpID09PSBcIiUyM1wiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBpZiAoZW5jb2RlVVJJQ29tcG9uZW50KCIjIikgIT09ICIlMjMiKSB7CiAgJEVSUk9SKCcjMTogdW5lc2NhcGVkVVJJQ29tcG9uZW50U2V0IG5vdCBjb250YWluaW5nICIlMjMiJyk7Cn0gIAoKIH0KfSk7Cgo=","id":"S15.1.3.4_A3.3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTRfVDEiLAoKcGF0aDogIjE1LjEuMy40IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgRU5HTElTSCBBTFBIQUJFVCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChlbmNvZGVVUklDb21wb25lbnQoImh0dHA6Ly91bmlwcm8ucnUvMDEyMzQ1Njc4OSIpICE9PSAiaHR0cCUzQSUyRiUyRnVuaXByby5ydSUyRjAxMjM0NTY3ODkiKSB7CiAgJEVSUk9SKCcjMTogaHR0cDovL3VuaXByby5ydS8wMTIzNDU2Nzg5Jyk7Cn0KCi8vQ0hFQ0sjMgppZiAoZW5jb2RlVVJJQ29tcG9uZW50KCJhQWJCY0NkRGVFZkZnR2hIaUlqSmtLbExtTW5Ob09wUHFRclJzU3RUdVV2VndXeFh5WXpaIikgIT09ICJhQWJCY0NkRGVFZkZnR2hIaUlqSmtLbExtTW5Ob09wUHFRclJzU3RUdVV2VndXeFh5WXpaIikgewogICRFUlJPUignIzI6IGFBYkJjQ2REZUVmRmdHaEhpSWpKa0tsTG1Nbk5vT3BQcVFyUnNTdFR1VXZWd1d4WHlZelonKTsKfQoKLy9DSEVDSyMzCmlmIChlbmNvZGVVUklDb21wb25lbnQoIjsvPzpAJj0rJCwiKSAhPT0gIiUzQiUyRiUzRiUzQSU0MCUyNiUzRCUyQiUyNCUyQyIpIHsKICAkRVJST1IoJyMzOiAnKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.4_A4_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTRfVDIiLAoKcGF0aDogIjE1LjEuMy40IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgUlVTU0lBTiBBTFBIQUJFVCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICgoZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vcnUud2lraXBlZGlhLm9yZy93aWtpL9Cu0L3QuNC60L7QtCIpICE9PSAiaHR0cCUzQSUyRiUyRnJ1Lndpa2lwZWRpYS5vcmclMkZ3aWtpJTJGJUQwJUFFJUQwJUJEJUQwJUI4JUQwJUJBJUQwJUJFJUQwJUI0IikgJiYgKGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovL3J1Lndpa2lwZWRpYS5vcmcvd2lraS/QrtC90LjQutC+0LQiKSAhPT0gImh0dHAlM0ElMkYlMkZydS53aWtpcGVkaWEub3JnJTJGd2lraSUyRiIgKyAiJUQwJUFFJUQwJUJEJUQwJUI4JUQwJUJBJUQwJUJFJUQwJUI0Ii50b0xvd2VyQ2FzZSgpKSkgewogICRFUlJPUignIzE6IGh0dHA6Ly9ydS53aWtpcGVkaWEub3JnL3dpa2kv0K7QvdC40LrQvtC0Jyk7Cn0KCi8vQ0hFQ0sjMgppZiAoKGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovL3J1Lndpa2lwZWRpYS5vcmcvd2lraS/QrtC90LjQutC+0LQj0KHRgdGL0LvQutC4IikgIT09ICJodHRwJTNBJTJGJTJGcnUud2lraXBlZGlhLm9yZyUyRndpa2klMkYlRDAlQUUlRDAlQkQlRDAlQjglRDAlQkElRDAlQkUlRDAlQjQlMjMlRDAlQTElRDElODElRDElOEIlRDAlQkIlRDAlQkElRDAlQjgiKSAmJiAoZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vcnUud2lraXBlZGlhLm9yZy93aWtpL9Cu0L3QuNC60L7QtCPQodGB0YvQu9C60LgiKSAhPT0gImh0dHAlM0ElMkYlMkZydS53aWtpcGVkaWEub3JnJTJGd2lraSUyRiIgKyAiJUQwJUFFJUQwJUJEJUQwJUI4JUQwJUJBJUQwJUJFJUQwJUI0JTIzJUQwJUExJUQxJTgxJUQxJThCJUQwJUJCJUQwJUJBJUQwJUI4Ii50b0xvd2VyQ2FzZSgpKSkgewogICRFUlJPUignIzI6IGh0dHA6Ly9ydS53aWtpcGVkaWEub3JnL3dpa2kv0K7QvdC40LrQvtC0I9Ch0YHRi9C70LrQuCcpOwp9CgovL0NIRUNLIzMKaWYgKChlbmNvZGVVUklDb21wb25lbnQoImh0dHA6Ly9ydS53aWtpcGVkaWEub3JnL3dpa2kv0K7QvdC40LrQvtC0I9CS0LXRgNGB0LjQuCDQrtC90LjQutC+0LTQsCIpICE9PSAiaHR0cCUzQSUyRiUyRnJ1Lndpa2lwZWRpYS5vcmclMkZ3aWtpJTJGJUQwJUFFJUQwJUJEJUQwJUI4JUQwJUJBJUQwJUJFJUQwJUI0JTIzJUQwJTkyJUQwJUI1JUQxJTgwJUQxJTgxJUQwJUI4JUQwJUI4JTIwJUQwJUFFJUQwJUJEJUQwJUI4JUQwJUJBJUQwJUJFJUQwJUI0JUQwJUIwIikgJiYgKChlbmNvZGVVUklDb21wb25lbnQoImh0dHA6Ly9ydS53aWtpcGVkaWEub3JnL3dpa2kv0K7QvdC40LrQvtC0JTIz0JLQtdGA0YHQuNC4INCu0L3QuNC60L7QtNCwIikgIT09ICJodHRwJTNBJTJGJTJGcnUud2lraXBlZGlhLm9yZyUyRndpa2klMkYiICsgIiVEMCVBRSVEMCVCRCVEMCVCOCVEMCVCQSVEMCVCRSVEMCVCNCMlRDAlOTIlRDAlQjUlRDElODAlRDElODElRDAlQjglRDAlQjglMjAlRDAlQUUlRDAlQkQlRDAlQjglRDAlQkElRDAlQkUlRDAlQjQlRDAlQjAiLnRvTG93ZXJDYXNlKCkpKSkgewogICRFUlJPUignIzM6IGh0dHA6Ly9ydS53aWtpcGVkaWEub3JnL3dpa2kv0K7QvdC40LrQvtC0I9CS0LXRgNGB0LjQuCDQrtC90LjQutC+0LTQsCcpOwp9CgogfQp9KTsKCg==","id":"S15.1.3.4_A4_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTRfVDMiLAoKcGF0aDogIjE1LjEuMy40IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgVVJMIHdpdGggTGluZSBUZXJtaW5hdG9yIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKChlbmNvZGVVUklDb21wb25lbnQoImh0dHA6Ly91bmlwcm8ucnUvXG5hYm91dCIpICE9PSAiaHR0cCUzQSUyRiUyRnVuaXByby5ydSUyRiUwQWFib3V0IikgJiYgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vdW5pcHJvLnJ1L1xuYWJvdXQiKSAhPT0gImh0dHAlM0ElMkYlMkZ1bmlwcm8ucnUlMkYlMGFhYm91dCIpIHsKICAkRVJST1IoJyMxOiBodHRwOi8vdW5pcHJvLnJ1L1xcbmFib3V0Jyk7Cn0KCi8vQ0hFQ0sjMgppZiAoKGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovL3VuaXByby5ydS9cdmFib3V0IikgIT09ICJodHRwJTNBJTJGJTJGdW5pcHJvLnJ1JTJGJTBCYWJvdXQiKSAmJiBlbmNvZGVVUklDb21wb25lbnQoImh0dHA6Ly91bmlwcm8ucnUvXHZhYm91dCIpICE9PSAiaHR0cCUzQSUyRiUyRnVuaXByby5ydSUyRiUwYmFib3V0IikgewogICRFUlJPUignIzI6IGh0dHA6Ly91bmlwcm8ucnUvXFx2YWJvdXQnKTsKfQoKLy9DSEVDSyMzCmlmICgoZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vdW5pcHJvLnJ1L1xmYWJvdXQiKSAhPT0gImh0dHAlM0ElMkYlMkZ1bmlwcm8ucnUlMkYlMENhYm91dCIpICYmIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovL3VuaXByby5ydS9cZmFib3V0IikgIT09ICJodHRwJTNBJTJGJTJGdW5pcHJvLnJ1JTJGJTBjYWJvdXQiKSB7CiAgJEVSUk9SKCcjMzogaHR0cDovL3VuaXByby5ydS9cXGZhYm91dCcpOwp9CgovL0NIRUNLIzQKaWYgKChlbmNvZGVVUklDb21wb25lbnQoImh0dHA6Ly91bmlwcm8ucnUvXHJhYm91dCIpICE9PSAiaHR0cCUzQSUyRiUyRnVuaXByby5ydSUyRiUwRGFib3V0IikgJiYgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vdW5pcHJvLnJ1L1xyYWJvdXQiKSAhPT0gImh0dHAlM0ElMkYlMkZ1bmlwcm8ucnUlMkYlMGRhYm91dCIpIHsKICAkRVJST1IoJyM0OiBodHRwOi8vdW5pcHJvLnJ1L1xccmFib3V0Jyk7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.4_A4_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTRfVDQiLAoKcGF0aDogIjE1LjEuMy40IiwKCmRlc2NyaXB0aW9uOiAiVGVzdCBzb21lIHVybCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChlbmNvZGVVUklDb21wb25lbnQoIiIpICE9PSAiIikgewogICRFUlJPUignIzE6ICIiJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vdW5pcHJvLnJ1IikgIT09ICJodHRwJTNBJTJGJTJGdW5pcHJvLnJ1IikgewogICRFUlJPUignIzI6IGh0dHA6Ly91bmlwcm8ucnUnKTsKfQoKLy9DSEVDSyMzCmlmIChlbmNvZGVVUklDb21wb25lbnQoImh0dHA6Ly93d3cuZ29vZ2xlLnJ1L3N1cHBvcnQvam9icy9iaW4vc3RhdGljLnB5P3BhZ2U9d2h5LXJ1Lmh0bWwmc2lkPWxpdmVhbmR3b3JrIikgIT09ICJodHRwJTNBJTJGJTJGd3d3Lmdvb2dsZS5ydSUyRnN1cHBvcnQlMkZqb2JzJTJGYmluJTJGc3RhdGljLnB5JTNGcGFnZSUzRHdoeS1ydS5odG1sJTI2c2lkJTNEbGl2ZWFuZHdvcmsiKSB7CiAgJEVSUk9SKCcjMzogaHR0cDovL3d3dy5nb29nbGUucnUvc3VwcG9ydC9qb2JzL2Jpbi9zdGF0aWMucHk/cGFnZT13aHktcnUuaHRtbCZzaWQ9bGl2ZWFuZHdvcmsiJyk7Cn0gICAgICAgICAgIAoKLy9DSEVDSyM0CmlmIChlbmNvZGVVUklDb21wb25lbnQoImh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVVRGLTgjRGVzY3JpcHRpb24iKSAhPT0gImh0dHAlM0ElMkYlMkZlbi53aWtpcGVkaWEub3JnJTJGd2lraSUyRlVURi04JTIzRGVzY3JpcHRpb24iKSB7CiAgJEVSUk9SKCcjNDogaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9VVEYtOCNEZXNjcmlwdGlvbicpOwp9CgogfQp9KTsKCg==","id":"S15.1.3.4_A4_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTUuMSIsCgpwYXRoOiAiMTUuMS4zLjQsIDE1LjIuNC43LCAxMi42LjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgcHJvcGVydHlJc0VudW1lcmFibGUsIGZvci1pbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChlbmNvZGVVUklDb21wb25lbnQucHJvcGVydHlJc0VudW1lcmFibGUoJ2xlbmd0aCcpICE9PSBmYWxzZSkgewogICRFUlJPUignIzE6IGVuY29kZVVSSUNvbXBvbmVudC5wcm9wZXJ0eUlzRW51bWVyYWJsZShcJ2xlbmd0aFwnKSA9PT0gZmFsc2UuIEFjdHVhbDogJyArIChlbmNvZGVVUklDb21wb25lbnQucHJvcGVydHlJc0VudW1lcmFibGUoJ2xlbmd0aCcpKSk7Cn0KCi8vQ0hFQ0sjMgpyZXN1bHQgPSB0cnVlOwpmb3IgKHAgaW4gZW5jb2RlVVJJQ29tcG9uZW50KXsKICBpZiAocCA9PT0gImxlbmd0aCIpIHsKICAgIHJlc3VsdCA9IGZhbHNlOwogIH0gIAp9CgppZiAocmVzdWx0ICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMjogcmVzdWx0ID0gdHJ1ZTsgZm9yIChwIGluIGVuY29kZVVSSUNvbXBvbmVudCkgeyBpZiAocCA9PT0gImxlbmd0aCIpIHJlc3VsdCA9IGZhbHNlOyB9ICByZXN1bHQgPT09IHRydWU7Jyk7Cn0KCiB9Cn0pOwoK","id":"S15.1.3.4_A5.1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTUuMiIsCgpwYXRoOiAiMTUuMS4zLjQsIDE1LjIuNC41LCAxMS40LjEiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgaGFzT3duUHJvcGVydHksIGRlbGV0ZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmIChlbmNvZGVVUklDb21wb25lbnQuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpICE9PSB0cnVlKSB7CiAgJEZBSUwoJyMxOiBlbmNvZGVVUklDb21wb25lbnQuaGFzT3duUHJvcGVydHkoXCdsZW5ndGhcJykgPT09IHRydWUuIEFjdHVhbDogJyArIChlbmNvZGVVUklDb21wb25lbnQuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSk7Cn0KCmRlbGV0ZSBlbmNvZGVVUklDb21wb25lbnQubGVuZ3RoOwoKLy9DSEVDSyMyCmlmIChlbmNvZGVVUklDb21wb25lbnQuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpICE9PSB0cnVlKSB7CiAgJEVSUk9SKCcjMjogZGVsZXRlIGVuY29kZVVSSUNvbXBvbmVudC5sZW5ndGg7IGVuY29kZVVSSUNvbXBvbmVudC5oYXNPd25Qcm9wZXJ0eShcJ2xlbmd0aFwnKSA9PT0gdHJ1ZS4gQWN0dWFsOiAnICsgKGVuY29kZVVSSUNvbXBvbmVudC5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKTsKfQoKLy9DSEVDSyMzCmlmIChlbmNvZGVVUklDb21wb25lbnQubGVuZ3RoID09PSB1bmRlZmluZWQpIHsKICAkRVJST1IoJyMzOiBkZWxldGUgZW5jb2RlVVJJQ29tcG9uZW50Lmxlbmd0aDsgZW5jb2RlVVJJQ29tcG9uZW50Lmxlbmd0aCAhPT0gdW5kZWZpbmVkJyk7Cn0KCgoKCiB9Cn0pOwoK","id":"S15.1.3.4_A5.2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTUuMyIsCgpwYXRoOiAiMTUuMS4zLjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiB2YXJ5aW5nIHRoZSBsZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp4ID0gZW5jb2RlVVJJQ29tcG9uZW50Lmxlbmd0aDsKZW5jb2RlVVJJQ29tcG9uZW50Lmxlbmd0aCA9IEluZmluaXR5OwppZiAoZW5jb2RlVVJJQ29tcG9uZW50Lmxlbmd0aCAhPT0geCkgewogICRFUlJPUignIzE6IHggPSBlbmNvZGVVUklDb21wb25lbnQubGVuZ3RoOyBlbmNvZGVVUklDb21wb25lbnQubGVuZ3RoID0gSW5maW5pdHk7IGVuY29kZVVSSUNvbXBvbmVudC5sZW5ndGggPT09IHguIEFjdHVhbDogJyArIChlbmNvZGVVUklDb21wb25lbnQubGVuZ3RoKSk7Cn0KCgogfQp9KTsKCg==","id":"S15.1.3.4_A5.3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTUuNCIsCgpwYXRoOiAiMTUuMS4zLjQiLAoKZGVzY3JpcHRpb246ICJlbmNvZGVVUklDb21wb25lbnQubGVuZ3RoID09PSAxIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKGVuY29kZVVSSUNvbXBvbmVudC5sZW5ndGggIT09IDEpIHsKICAkRVJST1IoJyMxOiBlbmNvZGVVUklDb21wb25lbnQubGVuZ3RoID09PSAxLiBBY3R1YWw6ICcgKyAoZW5jb2RlVVJJQ29tcG9uZW50Lmxlbmd0aCkpOwp9IAoKCiB9Cn0pOwoK","id":"S15.1.3.4_A5.4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTUuNSIsCgpwYXRoOiAiMTUuMS4zLjQsIDE1LjIuNC43LCAxMi42LjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB1c2UgcHJvcGVydHlJc0VudW1lcmFibGUsIGZvci1pbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICh0aGlzLnByb3BlcnR5SXNFbnVtZXJhYmxlKCdlbmNvZGVVUklDb21wb25lbnQnKSAhPT0gZmFsc2UpIHsKICAkRVJST1IoJyMxOiB0aGlzLnByb3BlcnR5SXNFbnVtZXJhYmxlKFwnZW5jb2RlVVJJQ29tcG9uZW50XCcpID09PSBmYWxzZS4gQWN0dWFsOiAnICsgKHRoaXMucHJvcGVydHlJc0VudW1lcmFibGUoJ2VuY29kZVVSSUNvbXBvbmVudCcpKSk7Cn0KCi8vQ0hFQ0sjMgpyZXN1bHQgPSB0cnVlOwpmb3IgKHAgaW4gdGhpcyl7CiAgaWYgKHAgPT09ICJlbmNvZGVVUklDb21wb25lbnQiKSB7CiAgICByZXN1bHQgPSBmYWxzZTsKICB9ICAKfQoKaWYgKHJlc3VsdCAhPT0gdHJ1ZSkgewogICRFUlJPUignIzI6IHJlc3VsdCA9IHRydWU7IGZvciAocCBpbiB0aGlzKSB7IGlmIChwID09PSAiZW5jb2RlVVJJQ29tcG9uZW50IikgcmVzdWx0ID0gZmFsc2U7IH0gIHJlc3VsdCA9PT0gdHJ1ZTsnKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.4_A5.5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTUuNiIsCgpwYXRoOiAiMTUuMS4zLjQiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBlbmNvZGVVUklDb21wb25lbnQucHJvdG90eXBlIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKGVuY29kZVVSSUNvbXBvbmVudC5wcm90b3R5cGUgIT09IHVuZGVmaW5lZCkgewogICRFUlJPUignIzE6IGVuY29kZVVSSUNvbXBvbmVudC5wcm90b3R5cGUgPT09IHVuZGVmaW5lZC4gQWN0dWFsOiAnICsgKGVuY29kZVVSSUNvbXBvbmVudC5wcm90b3R5cGUpKTsKfQoKIH0KfSk7Cgo=","id":"S15.1.3.4_A5.6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTUuNyIsCgpwYXRoOiAiMTUuMS4zLjQsIDExLjIuMiIsCgpkZXNjcmlwdGlvbjogIklmIHByb3BlcnR5IGRvZXMgbm90IGltcGxlbWVudCB0aGUgaW50ZXJuYWwgW1tDb25zdHJ1Y3RdXSBtZXRob2QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCgp0cnkgewogIG5ldyBlbmNvZGVVUklDb21wb25lbnQoKTsKICAkRVJST1IoJyMxLjE6IG5ldyBlbmNvZGVVUklDb21wb25lbnQoKSB0aHJvdyBUeXBlRXJyb3IuIEFjdHVhbDogJyArIChuZXcgZW5jb2RlVVJJQ29tcG9uZW50KCkpKTsKfSBjYXRjaCAoZSkgewogIGlmICgoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikgIT09IHRydWUpIHsKICAgICRFUlJPUignIzEuMjogbmV3IGVuY29kZVVSSUNvbXBvbmVudCgpIHRocm93IFR5cGVFcnJvci4gQWN0dWFsOiAnICsgKGUpKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.1.3.4_A5.7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMS4zLjRfQTZfVDEiLAoKcGF0aDogIjE1LjEuMy40LCA5LjgsIDguNi4yLjYiLAoKZGVzY3JpcHRpb246ICJJZiBUeXBlKHZhbHVlKSBpcyBPYmplY3QsIGV2YWx1YXRlIFRvUHJpbWl0aXZlKHZhbHVlLCBTdHJpbmcpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4gIl4ifX07CmlmIChlbmNvZGVVUklDb21wb25lbnQob2JqZWN0KSAhPT0gIiU1Qm9iamVjdCUyME9iamVjdCU1RCIpIHsKICAkRVJST1IoJyMxOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiAiXiJ9fTsgZW5jb2RlVVJJQ29tcG9uZW50KG9iamVjdCkgPT09ICU1Qm9iamVjdCUyME9iamVjdCU1RC4gQWN0dWFsOiAnICsgKGVuY29kZVVSSUNvbXBvbmVudChvYmplY3QpKSk7Cn0KCi8vQ0hFQ0sjMgp2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiAiIn0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4gIl4ifX07CmlmIChlbmNvZGVVUklDb21wb25lbnQob2JqZWN0KSAhPT0gIiU1RSIpIHsKICAkRVJST1IoJyMyOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiAiIn0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4gIl4ifX07IGVuY29kZVVSSUNvbXBvbmVudChvYmplY3QpID09PSAiJTVFIi4gQWN0dWFsOiAnICsgKGVuY29kZVVSSUNvbXBvbmVudChvYmplY3QpKSk7Cn0gCgovL0NIRUNLIzMKdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4gIl4ifSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiB7fX19OwppZiAoZW5jb2RlVVJJQ29tcG9uZW50KG9iamVjdCkgIT09ICIlNUUiKSB7CiAgJEVSUk9SKCcjMzogdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4gIl4ifSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiB7fX19OyBlbmNvZGVVUklDb21wb25lbnQob2JqZWN0KSA9PT0gIiU1RSIuIEFjdHVhbDogJyArIChlbmNvZGVVUklDb21wb25lbnQob2JqZWN0KSkpOwp9CgovL0NIRUNLIzQKdHJ5IHsKICB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3Rocm93ICJlcnJvciJ9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuICJeIn19OwogIGlmIChlbmNvZGVVUklDb21wb25lbnQob2JqZWN0KSAhPT0gIiU1RSIpIHsKICAgICRFUlJPUignIzQuMTogdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHt0aHJvdyAiZXJyb3IifSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiAiXiJ9fTsgZW5jb2RlVVJJQ29tcG9uZW50KG9iamVjdCkgPT09ICIlNUUiLiBBY3R1YWw6ICcgKyAoZW5jb2RlVVJJQ29tcG9uZW50KG9iamVjdCkpKTsKICB9Cn0KY2F0Y2ggKGUpIHsKICBpZiAoZSA9PT0gImVycm9yIikgewogICAgJEVSUk9SKCcjNC4yOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3Rocm93ICJlcnJvciJ9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuICJeIn19OyBlbmNvZGVVUklDb21wb25lbnQob2JqZWN0KSBub3QgdGhyb3cgImVycm9yIicpOwogIH0gZWxzZSB7CiAgICAkRVJST1IoJyM0LjM6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7dGhyb3cgImVycm9yIn0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4gIl4ifX07IGVuY29kZVVSSUNvbXBvbmVudChvYmplY3QpIG5vdCB0aHJvdyBFcnJvci4gQWN0dWFsOiAnICsgKGUpKTsKICB9Cn0KCi8vQ0hFQ0sjNQp2YXIgb2JqZWN0ID0ge3RvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4gIl4ifX07CmlmIChlbmNvZGVVUklDb21wb25lbnQob2JqZWN0KSAhPT0gIiU1RSIpIHsKICAkRVJST1IoJyM1OiB2YXIgb2JqZWN0ID0ge3RvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4gIl4ifX07IGVuY29kZVVSSUNvbXBvbmVudChvYmplY3QpID09PSAiJTVFIi4gQWN0dWFsOiAnICsgKGVuY29kZVVSSUNvbXBvbmVudChvYmplY3QpKSk7Cn0KCi8vQ0hFQ0sjNgp2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiB7fX0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtyZXR1cm4gIl4ifX0KaWYgKGVuY29kZVVSSUNvbXBvbmVudChvYmplY3QpICE9PSAiJTVFIikgewogICRFUlJPUignIzY6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuIHt9fSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiAiXiJ9fTsgZW5jb2RlVVJJQ29tcG9uZW50KG9iamVjdCkgPT09ICIlNUUiLiBBY3R1YWw6ICcgKyAoZW5jb2RlVVJJQ29tcG9uZW50KG9iamVjdCkpKTsKfQoKLy9DSEVDSyM3CnRyeSB7CiAgdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4gIl4ifSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3Rocm93ICJlcnJvciJ9fTsKICBlbmNvZGVVUklDb21wb25lbnQob2JqZWN0KTsKICAkRVJST1IoJyM3LjE6IHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuICJeIn0sIHRvU3RyaW5nOiBmdW5jdGlvbigpIHt0aHJvdyAiZXJyb3IifX07IGVuY29kZVVSSUNvbXBvbmVudChvYmplY3QpIHRocm93ICJlcnJvciIuIEFjdHVhbDogJyArIChlbmNvZGVVUklDb21wb25lbnQob2JqZWN0KSkpOwp9ICAKY2F0Y2ggKGUpIHsKICBpZiAoZSAhPT0gImVycm9yIikgewogICAgJEVSUk9SKCcjNy4yOiB2YXIgb2JqZWN0ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkge3JldHVybiAiXiJ9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7dGhyb3cgImVycm9yIn19OyBlbmNvZGVVUklDb21wb25lbnQob2JqZWN0KSB0aHJvdyAiZXJyb3IiLiBBY3R1YWw6ICcgKyAoZSkpOwogIH0gCn0KCi8vQ0hFQ0sjOAp0cnkgewogIHZhciBvYmplY3QgPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7cmV0dXJuIHt9fSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiB7fX19OwogIGVuY29kZVVSSUNvbXBvbmVudChvYmplY3QpOwogICRFUlJPUignIzguMTogdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4ge319LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIHt9fX07IGVuY29kZVVSSUNvbXBvbmVudChvYmplY3QpIHRocm93IFR5cGVFcnJvci4gQWN0dWFsOiAnICsgKGVuY29kZVVSSUNvbXBvbmVudChvYmplY3QpKSk7Cn0gIApjYXRjaCAoZSkgewogIGlmICgoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikgIT09IHRydWUpIHsKICAgICRFUlJPUignIzguMjogdmFyIG9iamVjdCA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHtyZXR1cm4ge319LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuIHt9fX07IGVuY29kZVVSSUNvbXBvbmVudChvYmplY3QpIHRocm93IFR5cGVFcnJvci4gQWN0dWFsOiAnICsgKGUpKTsKICB9IAp9CgogfQp9KTsKCg==","id":"S15.1.3.4_A6_T1"}]}} |