ZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfcGVwMjYzLnB5IGIvTGliL3Rlc3QvdGVzdF9wZXAyNjMucHkKaW5kZXggMTdhYmJkOC4uMTA2YjNhYiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9wZXAyNjMucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9wZXAyNjMucHkKQEAgLTEsMzggKzEsMzcgQEAKLSMhIC0qLSBjb2Rpbmc6IGtvaTgtciAtKi0NCi0jIFRoaXMgZmlsZSBpcyBtYXJrZWQgYXMgYmluYXJ5IGluIHRoZSBDVlMsIHRvIHByZXZlbnQgTWFjQ1ZTIGZyb20gcmVjb2RpbmcgaXQuDQotDQotaW1wb3J0IHVuaXR0ZXN0DQotZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0DQotDQotY2xhc3MgUEVQMjYzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6DQotDQotICAgIGRlZiB0ZXN0X3BlcDI2MyhzZWxmKToNCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoDQotICAgICAgICAgICAgIvDJ1M/OIi5lbmNvZGUoInV0Zi04IiksDQotICAgICAgICAgICAgYidceGQwXHg5Zlx4ZDBceGI4XHhkMVx4ODJceGQwXHhiZVx4ZDBceGJkJw0KLSAgICAgICAgKQ0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgNCi0gICAgICAgICAgICAiXPAiLmVuY29kZSgidXRmLTgiKSwNCi0gICAgICAgICAgICBiJ1xcXHhkMFx4OWYnDQotICAgICAgICApDQotDQotICAgIGRlZiB0ZXN0X2NvbXBpbGVzdHJpbmcoc2VsZik6DQotICAgICAgICAjIHNlZSAjMTg4Mg0KLSAgICAgICAgYyA9IGNvbXBpbGUoYiJcbiMgY29kaW5nOiB1dGYtOFxudSA9ICdceGMzXHhiMydcbiIsICJkdW1teSIsICJleGVjIikNCi0gICAgICAgIGQgPSB7fQ0KLSAgICAgICAgZXhlYyhjLCBkKQ0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkWyd1J10sICdceGYzJykNCi0NCi0gICAgZGVmIHRlc3RfaXNzdWUyMzAxKHNlbGYpOg0KLSAgICAgICAgdHJ5Og0KLSAgICAgICAgICAgIGNvbXBpbGUoYiIjIGNvZGluZzogY3A5MzJcbnByaW50ICdceDk0XHg0ZSciLCAiZHVtbXkiLCAiZXhlYyIpDQotICAgICAgICBleGNlcHQgU3ludGF4RXJyb3IgYXMgdjoNCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyh2LnRleHQsICJwcmludCAnXHU1ZTc0JyIpDQotICAgICAgICBlbHNlOg0KLSAgICAgICAgICAgIHNlbGYuZmFpbCgpDQotDQotZGVmIHRlc3RfbWFpbigpOg0KLSAgICBzdXBwb3J0LnJ1bl91bml0dGVzdChQRVAyNjNUZXN0KQ0KLQ0KLWlmIF9fbmFtZV9fPT0iX19tYWluX18iOg0KLSAgICB0ZXN0X21haW4oKQ0KKyMhIC0qLSBjb2Rpbmc6IGtvaTgtciAtKi0KKworaW1wb3J0IHVuaXR0ZXN0Citmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKKworY2xhc3MgUEVQMjYzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF9wZXAyNjMoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICAi8MnUz84iLmVuY29kZSgidXRmLTgiKSwKKyAgICAgICAgICAgIGInXHhkMFx4OWZceGQwXHhiOFx4ZDFceDgyXHhkMFx4YmVceGQwXHhiZCcKKyAgICAgICAgKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgIlzwIi5lbmNvZGUoInV0Zi04IiksCisgICAgICAgICAgICBiJ1xcXHhkMFx4OWYnCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X2NvbXBpbGVzdHJpbmcoc2VsZik6CisgICAgICAgICMgc2VlICMxODgyCisgICAgICAgIGMgPSBjb21waWxlKGIiXG4jIGNvZGluZzogdXRmLThcbnUgPSAnXHhjM1x4YjMnXG4iLCAiZHVtbXkiLCAiZXhlYyIpCisgICAgICAgIGQgPSB7fQorICAgICAgICBleGVjKGMsIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZFsndSddLCAnXHhmMycpCisKKyAgICBkZWYgdGVzdF9pc3N1ZTIzMDEoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGNvbXBpbGUoYiIjIGNvZGluZzogY3A5MzJcbnByaW50ICdceDk0XHg0ZSciLCAiZHVtbXkiLCAiZXhlYyIpCisgICAgICAgIGV4Y2VwdCBTeW50YXhFcnJvciBhcyB2OgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHModi50ZXh0LCAicHJpbnQgJ1x1NWU3NCciKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5mYWlsKCkKKworZGVmIHRlc3RfbWFpbigpOgorICAgIHN1cHBvcnQucnVuX3VuaXR0ZXN0KFBFUDI2M1Rlc3QpCisKK2lmIF9fbmFtZV9fPT0iX19tYWluX18iOgorICAgIHRlc3RfbWFpbigpCg==