IyEvYmluL3NoCi4gIiR7c3JjZGlyPS59L2luaXQuc2giOyBwYXRoX3ByZXBlbmRfIC4gLi4vc3JjCgojIFRlc3Qgb2YgR2xhZGUgc3VwcG9ydCwgaW4gcGFydGljdWxhciBJU08tODg1OS0xIHRvIFVURi04IGNvbnZlcnNpb24KIyBhbmQgQVNDSUkgZW50aXRpZXMgKCZsdDsgJmd0OyAmcXVvdDspLgoKY2F0IDw8RU9GID4geGctZ2wtMi1lbXB0eS5nbGFkZQo8P3htbCB2ZXJzaW9uPSIxLjAiPz4KPEdUSy1JbnRlcmZhY2UvPgpFT0YKCjogJHtYR0VUVEVYVD14Z2V0dGV4dH0KJHtYR0VUVEVYVH0gLW8geGctZ2wtMi5wb3QgeGctZ2wtMi1lbXB0eS5nbGFkZSAyPi9kZXYvbnVsbAp0ZXN0ICQ/ID0gMCB8fCB7CiAgZWNobyAiU2tpcHBpbmcgdGVzdDogeGdldHRleHQgd2FzIGJ1aWx0IHdpdGhvdXQgR2xhZGUgc3VwcG9ydCIKICBFeGl0IDc3Cn0KCmNhdCA8PFxFT0YgPiB4Zy1nbC0yLXNpbXBsZS5nbGFkZQo8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+CjxHVEstSW50ZXJmYWNlPgoKCjx3aWRnZXQ+CiAgPGNsYXNzPkd0a1dpbmRvdzwvY2xhc3M+CiAgPG5hbWU+SGVsbG9XaW5kb3c8L25hbWU+CiAgPGJvcmRlcl93aWR0aD41PC9ib3JkZXJfd2lkdGg+CiAgPFNpZ25hbD4KICAgIDxuYW1lPmRlc3Ryb3k8L25hbWU+CiAgICA8aGFuZGxlcj5ndGtfbWFpbl9xdWl0PC9oYW5kbGVyPgogIDwvU2lnbmFsPgogIDx0aXRsZT5IZWxsbzwvdGl0bGU+CiAgPHR5cGU+R1RLX1dJTkRPV19UT1BMRVZFTDwvdHlwZT4KICA8cG9zaXRpb24+R1RLX1dJTl9QT1NfTk9ORTwvcG9zaXRpb24+CiAgPGFsbG93X3Nocmluaz5UcnVlPC9hbGxvd19zaHJpbms+CiAgPGFsbG93X2dyb3c+VHJ1ZTwvYWxsb3dfZ3Jvdz4KICA8YXV0b19zaHJpbms+RmFsc2U8L2F1dG9fc2hyaW5rPgoKICA8d2lkZ2V0PgogICAgPGNsYXNzPkd0a0J1dHRvbjwvY2xhc3M+CiAgICA8bmFtZT5IZWxsbyBXb3JsZDwvbmFtZT4KICAgIDxjYW5fZm9jdXM+VHJ1ZTwvY2FuX2ZvY3VzPgogICAgPFNpZ25hbD4KICAgICAgPG5hbWU+Y2xpY2tlZDwvbmFtZT4KICAgICAgPGhhbmRsZXI+Z3RrX3dpZGdldF9kZXN0cm95PC9oYW5kbGVyPgogICAgICA8b2JqZWN0PkhlbGxvV2luZG93PC9vYmplY3Q+CiAgICA8L1NpZ25hbD4KICAgIDwhLS0gRGVyIPxibGljaGUgUHJvZ3JhbW0tR3J13yAtLT4KICAgIDxsYWJlbD5IZWxsbyBXb3JsZDwvbGFiZWw+CiAgICA8Y29tbWVudHM+VGhpcyAmbHQ7YnV0dG9uJmd0OyBkaXNwbGF5cyAmcXVvdDtIZWxsbyBXb3JsZCZxdW90Oy48L2NvbW1lbnRzPgogIDwvd2lkZ2V0Pgo8L3dpZGdldD4KCjwvR1RLLUludGVyZmFjZT4KRU9GCgo6ICR7WEdFVFRFWFQ9eGdldHRleHR9CiR7WEdFVFRFWFR9IC0tYWRkLWNvbW1lbnRzIC1vIHhnLWdsLTIudG1wIHhnLWdsLTItc2ltcGxlLmdsYWRlICB8fCBFeGl0IDEKZnVuY19maWx0ZXJfUE9UX0NyZWF0aW9uX0RhdGUgeGctZ2wtMi50bXAgeGctZ2wtMi5wb3QKCmNhdCA8PFxFT0YgPiB4Zy1nbC0yLm9rCiMgU09NRSBERVNDUklQVElWRSBUSVRMRS4KIyBDb3B5cmlnaHQgKEMpIFlFQVIgVEhFIFBBQ0tBR0UnUyBDT1BZUklHSFQgSE9MREVSCiMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBzYW1lIGxpY2Vuc2UgYXMgdGhlIFBBQ0tBR0UgcGFja2FnZS4KIyBGSVJTVCBBVVRIT1IgPEVNQUlMQEFERFJFU1M+LCBZRUFSLgojCiMsIGZ1enp5Cm1zZ2lkICIiCm1zZ3N0ciAiIgoiUHJvamVjdC1JZC1WZXJzaW9uOiBQQUNLQUdFIFZFUlNJT05cbiIKIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBcbiIKIlBPLVJldmlzaW9uLURhdGU6IFlFQVItTU8tREEgSE86TUkrWk9ORVxuIgoiTGFzdC1UcmFuc2xhdG9yOiBGVUxMIE5BTUUgPEVNQUlMQEFERFJFU1M+XG4iCiJMYW5ndWFnZS1UZWFtOiBMQU5HVUFHRSA8TExAbGkub3JnPlxuIgoiTGFuZ3VhZ2U6IFxuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOFxuIgoiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgoKIzogeGctZ2wtMi1zaW1wbGUuZ2xhZGU6MTMKbXNnaWQgIkhlbGxvIgptc2dzdHIgIiIKCiMuIERlciDDvGJsaWNoZSBQcm9ncmFtbS1HcnXDnwojOiB4Zy1nbC0yLXNpbXBsZS5nbGFkZTozMAptc2dpZCAiSGVsbG8gV29ybGQiCm1zZ3N0ciAiIgoKIzogeGctZ2wtMi1zaW1wbGUuZ2xhZGU6MzEKbXNnaWQgIlRoaXMgPGJ1dHRvbj4gZGlzcGxheXMgXCJIZWxsbyBXb3JsZFwiLiIKbXNnc3RyICIiCkVPRgoKOiAke0RJRkY9ZGlmZn0KJHtESUZGfSB4Zy1nbC0yLm9rIHhnLWdsLTIucG90CnJlc3VsdD0kPwoKZXhpdCAkcmVzdWx0Cg==