IyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiMqILDmyKjL+dPQIChDKTIwMTUsINbQ0MvNqNG2ucm33dPQz965q8u+oaMNCiMqIA0KIyogzsS8/sP7s8Y6ICAgICBNYWtlZmlsZQ0KIyogzsS8/rHqyrY6ICAgICBNYWtlZmlsZQ0KIyogxNrI3dWq0qo6ICAgICBNYWtlZmlsZSBvZiBaVEUgbGlicmFyeXMNCiMqIMq508O3vbeoOiAgICAgdm9pZA0KIyogDQojKiDQ3rjEyNXG2iAgICAgICAgsOaxvrrFICAgICAg0N64xLHqvMcgICAgICAgINDeuMTIyyAgICAgICAgICDQ3rjExNrI3Q0KIyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMqIDIwMTkvMDkvMjUgICAgIFYxLjAgICAgICAgIENyZWF0ZSAgICAgICAgICB4eHEgICAgICAgILS0vagNCiMqIA0KIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQoNCiMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQojIGluY2x1ZGUgWlRFIGxpYnJhcnkgbWFrZWZpbGUNCiMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQppbmNsdWRlICQoQ09NTU9OX01LKQ0KDQoNCiMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQojIGxpYnJhcnkNCiMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQpMSUJfU0hBUkVEID0gbGliYXVkaW9taXguc28NCkxJQl9TVEFUSUMgPSBsaWJhdWRpb21peC5hDQoNCk9CSlMgPSBtaXgubyBtaXh0ZXN0Lm8NCkNGTEFHUyArPSAtZw0KTERGTEFHUyArPSAtbHB0aHJlYWQNCg0KIyMjIyMjIyMjIyMjIyNVU0VSIENPTUlaRSBFTkQjIyMjIyMjIyMjIyMjIyMjIyMNCg0KQ0ZMQUdTICs9IC1JJCh6dGVfbGliX3BhdGgpL2xpYmF1ZGlvbWl4L2luY2x1ZGUNCkNGTEFHUyArPSAtSSQoU1RBR0VESVIpL2luY2x1ZGUNCkNGTEFHUyArPSAtSSQoQVBQX0RJUikvaW5jbHVkZQ0KQ0ZMQUdTICs9IC1mUElDDQoNCkxERkxBR1NfU0hBUkVEICs9IC1zaGFyZWQNCg0KDQojKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KIyBjb21wIHRlc3QgYXBwIGFuZCANCiMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCQ0KRVhFQ19taXh0ZXN0ID0gbWl4dGVzdA0KDQoJDQojKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KIyBvYmplY3RzDQojKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KbWl4dGVzdF9PQkpFQ1RTICs9IG1peC5vIG1peHRlc3Qubw0KDQoNCg0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI2ZvciBsaW51eCMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQppZmVxICgkKFYzUEhPTkVfVFlQRSksIEszMTgpDQoJQ0ZMQUdTICs9IC1EX1VTRV83NTIwVjNfUEhPTkVfVFlQRV9LMzE4DQplbmRpZg0KaWZlcSAoJChWM1BIT05FX1RZUEUpLCBDMzFGKQ0KCUNGTEFHUyArPSAtRF9VU0VfNzUyMFYzX1BIT05FX1RZUEVfQzMxRg0KZW5kaWYNCmlmZXEgKCQoVjNQSE9ORV9UWVBFKSwgWFJTRCkNCglDRkxBR1MgKz0gLURfVVNFXzc1MjBWM19QSE9ORV9UWVBFX1hSU0QNCmVuZGlmDQppZmVxICgkKFYzUEhPTkVfVFlQRSksIEZXUCkNCglDRkxBR1MgKz0gLURfVVNFXzc1MjBWM19QSE9ORV9UWVBFX0ZXUA0KZW5kaWYNCmlmZXEgKCQoVjNQSE9ORV9UWVBFKSwgV1RXRCkNCglDRkxBR1MgKz0gLURfVVNFXzc1MjBWM19QSE9ORV9UWVBFX1dUV0QNCmVuZGlmDQoNCg0KDQpDRkxBR1MJKz0gLUkuL2luY2x1ZGUvDQpDRkxBR1MgKz0gLWcgLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbg0KU0hBUkVERkxBRyA6PSAtc2hhcmVkIC1sYw0KTERMSUJTICs9IC1MJChMSUJfRElSKS9saWJ0aW55YWxzYQ0KTERMSUJTICs9IC1sdGlueWFsc2ENCg0KYWxsOiAkKExJQl9TVEFUSUMpICQoTElCX1NIQVJFRCkgJChFWEVDX21peHRlc3QpDQoNCiQoTElCX1NUQVRJQykgOiAkKE9CSlMpDQoJJChBUikgcmNzICQoTElCX1NUQVRJQykgJChPQkpTKQ0KDQokKExJQl9TSEFSRUQpOiAkKE9CSlMpDQoJJChDQykgJChMREZMQUdTKSAkKExERkxBR1NfU0hBUkVEKSAtbyAkQCAkXg0KDQoJDQokKEVYRUNfbWl4dGVzdCk6ICQobWl4dGVzdF9PQkpFQ1RTKQ0KCSQoQ0MpICQoTERGTEFHUykgLW8gJEAgJChtaXh0ZXN0X09CSkVDVFMpIC1XbCwtLXN0YXJ0LWdyb3VwICQoTERMSUJTKSAtV2wsLS1lbmQtZ3JvdXANCgkNCmNsZWFuOg0KCXJtIC1mICQobWl4dGVzdF9PQkpFQ1RTKSAkKGxpYl9PQkpFQ1RTKSAkKExJQl9TSEFSRUQpICQoTElCX1NUQVRJQykgJChFWEVDX21peHRlc3QpICAqLmVsZiAqLmdkYiAqLm8gY29yZQ0KDQpyb21mczoNCgkkKFJPTUZTSU5TVCkgJChMSUJfU0hBUkVEKSAvbGliLyQoTElCX1NIQVJFRCkNCg0KCWNwIC12ICQoRVhFQ19taXh0ZXN0KSAgICAkKEFQUF9ESVIpL3Rlc3RfdG9vbHMvDQoJDQoNCg0K