gh-151942: Fix all Sphinx nitpicks in the Python 2.6 What's New (#154550)
StanFromIreland <[email protected]> Thu, 30 Jul 2026 15:19:52 -0400 (EDT)
| Newsgroups | gmane.comp.python.cvs |
|---|---|
| Message-ID | <[email protected]> |
aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi9jcHl0aG9uL2NvbW1pdC80MzIwYmJlOTI0YTU0Mjgy NmFmNTk4Y2NkOWNkYjZjNWJiMjk4YWJlDQpjb21taXQ6IDQzMjBiYmU5MjRhNTQyODI2YWY1OThj Y2Q5Y2RiNmM1YmIyOThhYmUNCmJyYW5jaDogbWFpbg0KYXV0aG9yOiBTdGFuIFVsYnJ5Y2ggPHN0 YW5AcHl0aG9uLm9yZz4NCmNvbW1pdHRlcjogU3RhbkZyb21JcmVsYW5kIDxzdGFuQHB5dGhvbi5v cmc+DQpkYXRlOiAyMDI2LTA3LTMwVDE5OjE3OjQ5Wg0Kc3VtbWFyeToNCg0KZ2gtMTUxOTQyOiBG aXggYWxsIFNwaGlueCBuaXRwaWNrcyBpbiB0aGUgUHl0aG9uIDIuNiBXaGF0J3MgTmV3ICgjMTU0 NTUwKQ0KDQpmaWxlczoNCk0gRG9jL3Rvb2xzLy5uaXRpZ25vcmUNCk0gRG9jL3doYXRzbmV3LzIu Ni5yc3QNCg0KZGlmZiAtLWdpdCBhL0RvYy90b29scy8ubml0aWdub3JlIGIvRG9jL3Rvb2xzLy5u aXRpZ25vcmUNCmluZGV4IDZhNGFiOWY1YWEzYmY2NS4uOTc2Y2MzYjJhNTI4MmQ4IDEwMDY0NA0K LS0tIGEvRG9jL3Rvb2xzLy5uaXRpZ25vcmUNCisrKyBiL0RvYy90b29scy8ubml0aWdub3JlDQpA QCAtMjksNCArMjksMyBAQCBEb2MvbGlicmFyeS94bWwuc2F4LnJlYWRlci5yc3QNCiBEb2MvbGli cmFyeS94bWwuc2F4LnJzdA0KIERvYy9saWJyYXJ5L3htbHJwYy5jbGllbnQucnN0DQogRG9jL2xp YnJhcnkveG1scnBjLnNlcnZlci5yc3QNCi1Eb2Mvd2hhdHNuZXcvMi42LnJzdA0KZGlmZiAtLWdp dCBhL0RvYy93aGF0c25ldy8yLjYucnN0IGIvRG9jL3doYXRzbmV3LzIuNi5yc3QNCmluZGV4IGUx ZjcyYjZjNGE2YzkyYy4uM2Y0NjQ1ZDJiNWI0ODMwIDEwMDY0NA0KLS0tIGEvRG9jL3doYXRzbmV3 LzIuNi5yc3QNCisrKyBiL0RvYy93aGF0c25ldy8yLjYucnN0DQpAQCAtMTAxLDEwICsxMDEsMTAg QEAgdG8gYnJlYWssIHRoZXkndmUgYmVlbiBiYWNrcG9ydGVkIHRvIDIuNiBhbmQgYXJlIGRlc2Ny aWJlZCBpbiB0aGlzDQogZG9jdW1lbnQgaW4gdGhlIGFwcHJvcHJpYXRlIHBsYWNlLiAgU29tZSBv ZiB0aGUgMy4wLWRlcml2ZWQgZmVhdHVyZXMNCiBhcmU6DQogDQotKiBBIDptZXRoOmBfX2NvbXBs ZXhfX2AgbWV0aG9kIGZvciBjb252ZXJ0aW5nIG9iamVjdHMgdG8gYSBjb21wbGV4IG51bWJlci4N CisqIEEgOm1ldGg6YH5vYmplY3QuX19jb21wbGV4X19gIG1ldGhvZCBmb3IgY29udmVydGluZyBv YmplY3RzIHRvIGEgY29tcGxleCBudW1iZXIuDQogKiBBbHRlcm5hdGUgc3ludGF4IGZvciBjYXRj aGluZyBleGNlcHRpb25zOiBgYGV4Y2VwdCBUeXBlRXJyb3IgYXMgZXhjYGAuDQogKiBUaGUgYWRk aXRpb24gb2YgOmZ1bmM6YGZ1bmN0b29scy5yZWR1Y2VgIGFzIGEgc3lub255bSBmb3IgdGhlIGJ1 aWx0LWluDQotICA6ZnVuYzpgcmVkdWNlYCBmdW5jdGlvbi4NCisgIDpmdW5jOmAhcmVkdWNlYCBm dW5jdGlvbi4NCiANCiBQeXRob24gMy4wIGFkZHMgc2V2ZXJhbCBuZXcgYnVpbHQtaW4gZnVuY3Rp b25zIGFuZCBjaGFuZ2VzIHRoZQ0KIHNlbWFudGljcyBvZiBzb21lIGV4aXN0aW5nIGJ1aWx0aW5z LiAgRnVuY3Rpb25zIHRoYXQgYXJlIG5ldyBpbiAzLjANCkBAIC0xMTQ1LDcgKzExNDUsNyBAQCBj b25zdHJhaW50cyB1cG9uIHRoZSBtZW1vcnkgcmV0dXJuZWQuICBTb21lIGV4YW1wbGVzIGFyZToN CiANCiAqIDpjOm1hY3JvOmBQeUJVRl9XUklUQUJMRWAgaW5kaWNhdGVzIHRoYXQgdGhlIG1lbW9y eSBtdXN0IGJlIHdyaXRhYmxlLg0KIA0KLSogOmM6bWFjcm86YFB5QlVGX0xPQ0tgIHJlcXVlc3Rz IGEgcmVhZC1vbmx5IG9yIGV4Y2x1c2l2ZSBsb2NrIG9uIHRoZSBtZW1vcnkuDQorKiA6YzptYWNy bzpgIVB5QlVGX0xPQ0tgIHJlcXVlc3RzIGEgcmVhZC1vbmx5IG9yIGV4Y2x1c2l2ZSBsb2NrIG9u IHRoZSBtZW1vcnkuDQogDQogKiA6YzptYWNybzpgUHlCVUZfQ19DT05USUdVT1VTYCBhbmQgOmM6 bWFjcm86YFB5QlVGX0ZfQ09OVElHVU9VU2ANCiAgIHJlcXVlc3RzIGEgQy1jb250aWd1b3VzIChs YXN0IGRpbWVuc2lvbiB2YXJpZXMgdGhlIGZhc3Rlc3QpIG9yDQpAQCAtMTMzOSw3ICsxMzM5LDcg QEAgYnVpbHRpbiByZXR1cm5zIHRoZSBiaW5hcnkgcmVwcmVzZW50YXRpb24gZm9yIGEgbnVtYmVy OjoNCiAgICAgPj4+IGJpbigxNzMpDQogICAgICcwYjEwMTAxMTAxJw0KIA0KLVRoZSA6ZnVuYzpg aW50YCBhbmQgOmZ1bmM6YGxvbmdgIGJ1aWx0aW5zIHdpbGwgbm93IGFjY2VwdCB0aGUgIjBvIg0K K1RoZSA6ZnVuYzpgaW50YCBhbmQgOmZ1bmM6YCFsb25nYCBidWlsdGlucyB3aWxsIG5vdyBhY2Nl cHQgdGhlICIwbyINCiBhbmQgIjBiIiBwcmVmaXhlcyB3aGVuIGJhc2UtOCBvciBiYXNlLTIgYXJl IHJlcXVlc3RlZCwgb3Igd2hlbiB0aGUNCiAqYmFzZSogYXJndW1lbnQgaXMgemVybyAoc2lnbmFs bGluZyB0aGF0IHRoZSBiYXNlIHVzZWQgc2hvdWxkIGJlDQogZGV0ZXJtaW5lZCBmcm9tIHRoZSBz dHJpbmcpOjoNCkBAIC0xMzkyLDM1ICsxMzkyLDM2IEBAIFRoaXMgaXMgZXF1aXZhbGVudCB0bzo6 DQogLi4gX3BlcC0zMTQxOg0KIA0KIFBFUCAzMTQxOiBBIFR5cGUgSGllcmFyY2h5IGZvciBOdW1i ZXJzDQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIA0KIFB5dGhvbiAz LjAgYWRkcyBzZXZlcmFsIGFic3RyYWN0IGJhc2UgY2xhc3NlcyBmb3IgbnVtZXJpYyB0eXBlcw0K IGluc3BpcmVkIGJ5IFNjaGVtZSdzIG51bWVyaWMgdG93ZXIuICBUaGVzZSBjbGFzc2VzIHdlcmUg YmFja3BvcnRlZCB0bw0KIDIuNiBhcyB0aGUgOm1vZDpgbnVtYmVyc2AgbW9kdWxlLg0KIA0KLVRo ZSBtb3N0IGdlbmVyYWwgQUJDIGlzIDpjbGFzczpgTnVtYmVyYC4gIEl0IGRlZmluZXMgbm8gb3Bl cmF0aW9ucyBhdA0KK1RoZSBtb3N0IGdlbmVyYWwgQUJDIGlzIDpjbGFzczpgfm51bWJlcnMuTnVt YmVyYC4gIEl0IGRlZmluZXMgbm8gb3BlcmF0aW9ucyBhdA0KIGFsbCwgYW5kIG9ubHkgZXhpc3Rz IHRvIGFsbG93IGNoZWNraW5nIGlmIGFuIG9iamVjdCBpcyBhIG51bWJlciBieQ0KIGRvaW5nIGBg aXNpbnN0YW5jZShvYmosIE51bWJlcilgYC4NCiANCi06Y2xhc3M6YENvbXBsZXhgIGlzIGEgc3Vi Y2xhc3Mgb2YgOmNsYXNzOmBOdW1iZXJgLiAgQ29tcGxleCBudW1iZXJzDQorOmNsYXNzOmB+bnVt YmVycy5Db21wbGV4YCBpcyBhIHN1YmNsYXNzIG9mIDpjbGFzczpgfm51bWJlcnMuTnVtYmVyYC4g IENvbXBsZXggbnVtYmVycw0KIGNhbiB1bmRlcmdvIHRoZSBiYXNpYyBvcGVyYXRpb25zIG9mIGFk ZGl0aW9uLCBzdWJ0cmFjdGlvbiwNCiBtdWx0aXBsaWNhdGlvbiwgZGl2aXNpb24sIGFuZCBleHBv bmVudGlhdGlvbiwgYW5kIHlvdSBjYW4gcmV0cmlldmUgdGhlDQogcmVhbCBhbmQgaW1hZ2luYXJ5 IHBhcnRzIGFuZCBvYnRhaW4gYSBudW1iZXIncyBjb25qdWdhdGUuICBQeXRob24ncyBidWlsdC1p bg0KLWNvbXBsZXggdHlwZSBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiA6Y2xhc3M6YENvbXBsZXhg Lg0KK2NvbXBsZXggdHlwZSBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiA6Y2xhc3M6YH5udW1iZXJz LkNvbXBsZXhgLg0KIA0KLTpjbGFzczpgUmVhbGAgZnVydGhlciBkZXJpdmVzIGZyb20gOmNsYXNz OmBDb21wbGV4YCwgYW5kIGFkZHMNCi1vcGVyYXRpb25zIHRoYXQgb25seSB3b3JrIG9uIHJlYWwg bnVtYmVyczogOmZ1bmM6YGZsb29yYCwgOmZ1bmM6YHRydW5jYCwNCis6Y2xhc3M6YH5udW1iZXJz LlJlYWxgIGZ1cnRoZXIgZGVyaXZlcyBmcm9tIDpjbGFzczpgfm51bWJlcnMuQ29tcGxleGAsIGFu ZCBhZGRzDQorb3BlcmF0aW9ucyB0aGF0IG9ubHkgd29yayBvbiByZWFsIG51bWJlcnM6IDpmdW5j OmB+bWF0aC5mbG9vcmAsIDpmdW5jOmB+bWF0aC50cnVuY2AsDQogcm91bmRpbmcsIHRha2luZyB0 aGUgcmVtYWluZGVyIG1vZCBOLCBmbG9vciBkaXZpc2lvbiwNCiBhbmQgY29tcGFyaXNvbnMuDQog DQotOmNsYXNzOmBSYXRpb25hbGAgbnVtYmVycyBkZXJpdmUgZnJvbSA6Y2xhc3M6YFJlYWxgLCBo YXZlDQotOmF0dHI6YG51bWVyYXRvcmAgYW5kIDphdHRyOmBkZW5vbWluYXRvcmAgcHJvcGVydGll cywgYW5kIGNhbiBiZQ0KKzpjbGFzczpgfm51bWJlcnMuUmF0aW9uYWxgIG51bWJlcnMgZGVyaXZl IGZyb20gOmNsYXNzOmB+bnVtYmVycy5SZWFsYCwgaGF2ZQ0KKzphdHRyOmB+bnVtYmVycy5SYXRp b25hbC5udW1lcmF0b3JgIGFuZCA6YXR0cjpgfm51bWJlcnMuUmF0aW9uYWwuZGVub21pbmF0b3Jg DQorcHJvcGVydGllcywgYW5kIGNhbiBiZQ0KIGNvbnZlcnRlZCB0byBmbG9hdHMuICBQeXRob24g Mi42IGFkZHMgYSBzaW1wbGUgcmF0aW9uYWwtbnVtYmVyIGNsYXNzLA0KLTpjbGFzczpgRnJhY3Rp b25gLCBpbiB0aGUgOm1vZDpgZnJhY3Rpb25zYCBtb2R1bGUuICAoSXQncyBjYWxsZWQNCi06Y2xh c3M6YEZyYWN0aW9uYCBpbnN0ZWFkIG9mIDpjbGFzczpgUmF0aW9uYWxgIHRvIGF2b2lkDQorOmNs YXNzOmB+ZnJhY3Rpb25zLkZyYWN0aW9uYCwgaW4gdGhlIDptb2Q6YGZyYWN0aW9uc2AgbW9kdWxl LiAgKEl0J3MgY2FsbGVkDQorOmNsYXNzOmB+ZnJhY3Rpb25zLkZyYWN0aW9uYCBpbnN0ZWFkIG9m IGBgUmF0aW9uYWxgYCB0byBhdm9pZA0KIGEgbmFtZSBjbGFzaCB3aXRoIDpjbGFzczpgbnVtYmVy cy5SYXRpb25hbGAuKQ0KIA0KLTpjbGFzczpgSW50ZWdyYWxgIG51bWJlcnMgZGVyaXZlIGZyb20g OmNsYXNzOmBSYXRpb25hbGAsIGFuZA0KKzpjbGFzczpgfm51bWJlcnMuSW50ZWdyYWxgIG51bWJl cnMgZGVyaXZlIGZyb20gOmNsYXNzOmB+bnVtYmVycy5SYXRpb25hbGAsIGFuZA0KIGNhbiBiZSBz aGlmdGVkIGxlZnQgYW5kIHJpZ2h0IHdpdGggYGA8PGBgIGFuZCBgYD4+YGAsDQogY29tYmluZWQg dXNpbmcgYml0d2lzZSBvcGVyYXRpb25zIHN1Y2ggYXMgYGAmYGAgYW5kIGBgfGBgLA0KIGFuZCBj YW4gYmUgdXNlZCBhcyBhcnJheSBpbmRleGVzIGFuZCBzbGljZSBib3VuZGFyaWVzLg0KQEAgLTE0 MjksNyArMTQzMCw3IEBAIEluIFB5dGhvbiAzLjAsIHRoZSBQRVAgc2xpZ2h0bHkgcmVkZWZpbmVz IHRoZSBleGlzdGluZyBidWlsdGlucw0KIDpmdW5jOmByb3VuZGAsIDpmdW5jOmBtYXRoLmZsb29y YCwgOmZ1bmM6YG1hdGguY2VpbGAsIGFuZCBhZGRzIGEgbmV3DQogb25lLCA6ZnVuYzpgbWF0aC50 cnVuY2AsIHRoYXQncyBiZWVuIGJhY2twb3J0ZWQgdG8gUHl0aG9uIDIuNi4NCiA6ZnVuYzpgbWF0 aC50cnVuY2Agcm91bmRzIHRvd2FyZCB6ZXJvLCByZXR1cm5pbmcgdGhlIGNsb3Nlc3QNCi06Y2xh c3M6YEludGVncmFsYCB0aGF0J3MgYmV0d2VlbiB0aGUgZnVuY3Rpb24ncyBhcmd1bWVudCBhbmQg emVyby4NCis6Y2xhc3M6YH5udW1iZXJzLkludGVncmFsYCB0aGF0J3MgYmV0d2VlbiB0aGUgZnVu Y3Rpb24ncyBhcmd1bWVudCBhbmQgemVyby4NCiANCiAuLiBzZWVhbHNvOjoNCiANCkBAIC0xNDQy LDcgKzE0NDMsNyBAQCBvbmUsIDpmdW5jOmBtYXRoLnRydW5jYCwgdGhhdCdzIGJlZW4gYmFja3Bv cnRlZCB0byBQeXRob24gMi42Lg0KIA0KIA0KIFRoZSA6bW9kOmBmcmFjdGlvbnNgIE1vZHVsZQ0K LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogDQogVG8gZmlsbCBvdXQgdGhlIGhpZXJhcmNoeSBv ZiBudW1lcmljIHR5cGVzLCB0aGUgOm1vZDpgZnJhY3Rpb25zYA0KIG1vZHVsZSBwcm92aWRlcyBh IHJhdGlvbmFsLW51bWJlciBjbGFzcy4gIFJhdGlvbmFsIG51bWJlcnMgc3RvcmUgdGhlaXINCkBA IC0xNDUwLDcgKzE0NTEsNyBAQCB2YWx1ZXMgYXMgYSBudW1lcmF0b3IgYW5kIGRlbm9taW5hdG9y IGZvcm1pbmcgYSBmcmFjdGlvbiwgYW5kIGNhbg0KIGV4YWN0bHkgcmVwcmVzZW50IG51bWJlcnMg c3VjaCBhcyBgYDIvM2BgIHRoYXQgZmxvYXRpbmctcG9pbnQgbnVtYmVycw0KIGNhbiBvbmx5IGFw cHJveGltYXRlLg0KIA0KLVRoZSA6Y2xhc3M6YEZyYWN0aW9uYCBjb25zdHJ1Y3RvciB0YWtlcyB0 d28gOmNsYXNzOmBJbnRlZ3JhbGAgdmFsdWVzDQorVGhlIDpjbGFzczpgfmZyYWN0aW9ucy5GcmFj dGlvbmAgY29uc3RydWN0b3IgdGFrZXMgdHdvIDpjbGFzczpgfm51bWJlcnMuSW50ZWdyYWxgIHZh bHVlcw0KIHRoYXQgd2lsbCBiZSB0aGUgbnVtZXJhdG9yIGFuZCBkZW5vbWluYXRvciBvZiB0aGUg cmVzdWx0aW5nIGZyYWN0aW9uLiA6Og0KIA0KICAgICA+Pj4gZnJvbSBmcmFjdGlvbnMgaW1wb3J0 IEZyYWN0aW9uDQpAQCAtMTQ2NCw3ICsxNDY1LDcgQEAgdGhhdCB3aWxsIGJlIHRoZSBudW1lcmF0 b3IgYW5kIGRlbm9taW5hdG9yIG9mIHRoZSByZXN1bHRpbmcgZnJhY3Rpb24uIDo6DQogICAgIEZy YWN0aW9uKDUsIDMpDQogDQogRm9yIGNvbnZlcnRpbmcgZmxvYXRpbmctcG9pbnQgbnVtYmVycyB0 byByYXRpb25hbHMsDQotdGhlIGZsb2F0IHR5cGUgbm93IGhhcyBhbiA6bWV0aDpgYXNfaW50ZWdl cl9yYXRpb2AgbWV0aG9kIHRoYXQgcmV0dXJucw0KK3RoZSBmbG9hdCB0eXBlIG5vdyBoYXMgYW4g Om1ldGg6YH5mbG9hdC5hc19pbnRlZ2VyX3JhdGlvYCBtZXRob2QgdGhhdCByZXR1cm5zDQogdGhl IG51bWVyYXRvciBhbmQgZGVub21pbmF0b3IgZm9yIGEgZnJhY3Rpb24gdGhhdCBldmFsdWF0ZXMg dG8gdGhlIHNhbWUNCiBmbG9hdGluZy1wb2ludCB2YWx1ZTo6DQogDQpAQCAtMTQ5OSw3ICsxNTAw LDcgQEAgU29tZSBzbWFsbGVyIGNoYW5nZXMgbWFkZSB0byB0aGUgY29yZSBQeXRob24gbGFuZ3Vh Z2UgYXJlOg0KICAgOmlzc3VlOmAxNzM5NDY4YC4pDQogDQogKiBUaGUgOmZ1bmM6YGhhc2F0dHJg IGZ1bmN0aW9uIHdhcyBjYXRjaGluZyBhbmQgaWdub3JpbmcgYWxsIGVycm9ycywNCi0gIHVuZGVy IHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhleSBtZWFudCBhIDptZXRoOmBfX2dldGF0dHJfX2AgbWV0 aG9kDQorICB1bmRlciB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoZXkgbWVhbnQgYSA6bWV0aDpgfm9i amVjdC5fX2dldGF0dHJfX2AgbWV0aG9kDQogICB3YXMgZmFpbGluZyBzb21laG93IGFuZCB0aGUg cmV0dXJuIHZhbHVlIG9mIDpmdW5jOmBoYXNhdHRyYCB3b3VsZA0KICAgdGhlcmVmb3JlIGJlIGBg RmFsc2VgYC4gIFRoaXMgbG9naWMgc2hvdWxkbid0IGJlIGFwcGxpZWQgdG8NCiAgIDpleGM6YEtl eWJvYXJkSW50ZXJydXB0YCBhbmQgOmV4YzpgU3lzdGVtRXhpdGAsIGhvd2V2ZXI7IFB5dGhvbiAy LjYNCkBAIC0xNTg2LDEwICsxNTg3LDEwIEBAIFNvbWUgc21hbGxlciBjaGFuZ2VzIG1hZGUgdG8g dGhlIGNvcmUgUHl0aG9uIGxhbmd1YWdlIGFyZToNCiAgICAgICAgICAgICBzZWxmLl94ID0gdmFs dWUgLyAyDQogDQogKiBTZXZlcmFsIG1ldGhvZHMgb2YgdGhlIGJ1aWx0LWluIHNldCB0eXBlcyBu b3cgYWNjZXB0IG11bHRpcGxlIGl0ZXJhYmxlczoNCi0gIDptZXRoOmBpbnRlcnNlY3Rpb25gLA0K LSAgOm1ldGg6YGludGVyc2VjdGlvbl91cGRhdGVgLA0KLSAgOm1ldGg6YHVuaW9uYCwgOm1ldGg6 YHVwZGF0ZWAsDQotICA6bWV0aDpgZGlmZmVyZW5jZWAgYW5kIDptZXRoOmBkaWZmZXJlbmNlX3Vw ZGF0ZWAuDQorICA6bWV0aDpgfnNldC5pbnRlcnNlY3Rpb25gLA0KKyAgOm1ldGg6YH5zZXQuaW50 ZXJzZWN0aW9uX3VwZGF0ZWAsDQorICA6bWV0aDpgfnNldC51bmlvbmAsIDptZXRoOmB+c2V0LnVw ZGF0ZWAsDQorICA6bWV0aDpgfnNldC5kaWZmZXJlbmNlYCBhbmQgOm1ldGg6YH5zZXQuZGlmZmVy ZW5jZV91cGRhdGVgLg0KIA0KICAgOjoNCiANCkBAIC0xNjA3LDggKzE2MDgsOCBAQCBTb21lIHNt YWxsZXIgY2hhbmdlcyBtYWRlIHRvIHRoZSBjb3JlIFB5dGhvbiBsYW5ndWFnZSBhcmU6DQogICBw b3NpdGl2ZSBvciBuZWdhdGl2ZSBpbmZpbml0eS4gIFRoaXMgd29ya3Mgb24gYW55IHBsYXRmb3Jt IHdpdGgNCiAgIElFRUUgNzU0IHNlbWFudGljcy4gIChDb250cmlidXRlZCBieSBDaHJpc3RpYW4g SGVpbWVzOyA6aXNzdWU6YDE2MzVgLikNCiANCi0gIE90aGVyIGZ1bmN0aW9ucyBpbiB0aGUgOm1v ZDpgbWF0aGAgbW9kdWxlLCA6ZnVuYzpgaXNpbmZgIGFuZA0KLSAgOmZ1bmM6YGlzbmFuYCwgcmV0 dXJuIHRydWUgaWYgdGhlaXIgZmxvYXRpbmctcG9pbnQgYXJndW1lbnQgaXMNCisgIE90aGVyIGZ1 bmN0aW9ucyBpbiB0aGUgOm1vZDpgbWF0aGAgbW9kdWxlLCA6ZnVuYzpgfm1hdGguaXNpbmZgIGFu ZA0KKyAgOmZ1bmM6YH5tYXRoLmlzbmFuYCwgcmV0dXJuIHRydWUgaWYgdGhlaXIgZmxvYXRpbmct cG9pbnQgYXJndW1lbnQgaXMNCiAgIGluZmluaXRlIG9yIE5vdCBBIE51bWJlci4gICg6aXNzdWU6 YDE2NDBgKQ0KIA0KICAgQ29udmVyc2lvbiBmdW5jdGlvbnMgd2VyZSBhZGRlZCB0byBjb252ZXJ0 IGZsb2F0aW5nLXBvaW50IG51bWJlcnMNCkBAIC0xNjMzLDE3ICsxNjM0LDE3IEBAIFNvbWUgc21h bGxlciBjaGFuZ2VzIG1hZGUgdG8gdGhlIGNvcmUgUHl0aG9uIGxhbmd1YWdlIGFyZToNCiAgIDpm dW5jOmBjb21wbGV4YCBjb25zdHJ1Y3RvciB3aWxsIG5vdyBwcmVzZXJ2ZSB0aGUgc2lnbg0KICAg b2YgdGhlIHplcm8uICAoRml4ZWQgYnkgTWFyayBULiBEaWNraW5zb247IDppc3N1ZTpgMTUwN2Au KQ0KIA0KLSogQ2xhc3NlcyB0aGF0IGluaGVyaXQgYSA6bWV0aDpgX19oYXNoX19gIG1ldGhvZCBm cm9tIGEgcGFyZW50IGNsYXNzDQorKiBDbGFzc2VzIHRoYXQgaW5oZXJpdCBhIDptZXRoOmB+b2Jq ZWN0Ll9faGFzaF9fYCBtZXRob2QgZnJvbSBhIHBhcmVudCBjbGFzcw0KICAgY2FuIHNldCBgYF9f aGFzaF9fID0gTm9uZWBgIHRvIGluZGljYXRlIHRoYXQgdGhlIGNsYXNzIGlzbid0DQogICBoYXNo YWJsZS4gIFRoaXMgd2lsbCBtYWtlIGBgaGFzaChvYmopYGAgcmFpc2UgYSA6ZXhjOmBUeXBlRXJy b3JgDQogICBhbmQgdGhlIGNsYXNzIHdpbGwgbm90IGJlIGluZGljYXRlZCBhcyBpbXBsZW1lbnRp bmcgdGhlDQogICA6Y2xhc3M6YEhhc2hhYmxlYCBBQkMuDQogDQotICBZb3Ugc2hvdWxkIGRvIHRo aXMgd2hlbiB5b3UndmUgZGVmaW5lZCBhIDptZXRoOmBfX2NtcF9fYCBvcg0KLSAgOm1ldGg6YF9f ZXFfX2AgbWV0aG9kIHRoYXQgY29tcGFyZXMgb2JqZWN0cyBieSB0aGVpciB2YWx1ZSByYXRoZXIN CisgIFlvdSBzaG91bGQgZG8gdGhpcyB3aGVuIHlvdSd2ZSBkZWZpbmVkIGEgOm1ldGg6YCFfX2Nt cF9fYCBvcg0KKyAgOm1ldGg6YH5vYmplY3QuX19lcV9fYCBtZXRob2QgdGhhdCBjb21wYXJlcyBv YmplY3RzIGJ5IHRoZWlyIHZhbHVlIHJhdGhlcg0KICAgdGhhbiBieSBpZGVudGl0eS4gIEFsbCBv YmplY3RzIGhhdmUgYSBkZWZhdWx0IGhhc2ggbWV0aG9kIHRoYXQgdXNlcw0KICAgYGBpZChvYmop YGAgYXMgdGhlIGhhc2ggdmFsdWUuICBUaGVyZSdzIG5vIHRpZHkgd2F5IHRvIHJlbW92ZSB0aGUN Ci0gIDptZXRoOmBfX2hhc2hfX2AgbWV0aG9kIGluaGVyaXRlZCBmcm9tIGEgcGFyZW50IGNsYXNz LCBzbw0KKyAgOm1ldGg6YH5vYmplY3QuX19oYXNoX19gIG1ldGhvZCBpbmhlcml0ZWQgZnJvbSBh IHBhcmVudCBjbGFzcywgc28NCiAgIGFzc2lnbmluZyBgYE5vbmVgYCB3YXMgaW1wbGVtZW50ZWQg YXMgYW4gb3ZlcnJpZGUuICBBdCB0aGUNCiAgIEMgbGV2ZWwsIGV4dGVuc2lvbnMgY2FuIHNldCBg YHRwX2hhc2hgYCB0bw0KICAgOmM6ZnVuYzpgUHlPYmplY3RfSGFzaE5vdEltcGxlbWVudGVkYC4N CkBAIC0xNjU1LDcgKzE2NTYsNyBAQCBTb21lIHNtYWxsZXIgY2hhbmdlcyBtYWRlIHRvIHRoZSBj b3JlIFB5dGhvbiBsYW5ndWFnZSBhcmU6DQogICB3aWxsIG5vdCBpbmFkdmVydGVudGx5IGNhdGNo IDpleGM6YEdlbmVyYXRvckV4aXRgLg0KICAgKENvbnRyaWJ1dGVkIGJ5IENoYWQgQXVzdGluOyA6 aXNzdWU6YDE1MzdgLikNCiANCi0qIEdlbmVyYXRvciBvYmplY3RzIG5vdyBoYXZlIGEgOmF0dHI6 YGdpX2NvZGVgIGF0dHJpYnV0ZSB0aGF0IHJlZmVycyB0bw0KKyogR2VuZXJhdG9yIG9iamVjdHMg bm93IGhhdmUgYSA6YXR0cjpgIWdpX2NvZGVgIGF0dHJpYnV0ZSB0aGF0IHJlZmVycyB0bw0KICAg dGhlIG9yaWdpbmFsIGNvZGUgb2JqZWN0IGJhY2tpbmcgdGhlIGdlbmVyYXRvci4NCiAgIChDb250 cmlidXRlZCBieSBDb2xsaW4gV2ludGVyOyA6aXNzdWU6YDE0NzMyNTdgLikNCiANCkBAIC0xNjY4 LDE3ICsxNjY5LDE3IEBAIFNvbWUgc21hbGxlciBjaGFuZ2VzIG1hZGUgdG8gdGhlIGNvcmUgUHl0 aG9uIGxhbmd1YWdlIGFyZToNCiAgIHdpbGwgbm93IHJvdW5kLXRyaXAgdmFsdWVzLiAgRm9yIGV4 YW1wbGUsIGBgY29tcGxleCgnKDMrNGopJylgYA0KICAgbm93IHJldHVybnMgdGhlIHZhbHVlICgz KzRqKS4gICg6aXNzdWU6YDE0OTE4NjZgKQ0KIA0KLSogVGhlIHN0cmluZyA6bWV0aDpgdHJhbnNs YXRlYCBtZXRob2Qgbm93IGFjY2VwdHMgYGBOb25lYGAgYXMgdGhlDQorKiBUaGUgc3RyaW5nIDpt ZXRoOmB+c3RyLnRyYW5zbGF0ZWAgbWV0aG9kIG5vdyBhY2NlcHRzIGBgTm9uZWBgIGFzIHRoZQ0K ICAgdHJhbnNsYXRpb24gdGFibGUgcGFyYW1ldGVyLCB3aGljaCBpcyB0cmVhdGVkIGFzIHRoZSBp ZGVudGl0eQ0KICAgdHJhbnNmb3JtYXRpb24uICAgVGhpcyBtYWtlcyBpdCBlYXNpZXIgdG8gY2Fy cnkgb3V0IG9wZXJhdGlvbnMNCiAgIHRoYXQgb25seSBkZWxldGUgY2hhcmFjdGVycy4gIChDb250 cmlidXRlZCBieSBCZW5ndCBSaWNodGVyIGFuZA0KICAgaW1wbGVtZW50ZWQgYnkgUmF5bW9uZCBI ZXR0aW5nZXI7IDppc3N1ZTpgMTE5MzEyOGAuKQ0KIA0KLSogVGhlIGJ1aWx0LWluIDpmdW5jOmBk aXJgIGZ1bmN0aW9uIG5vdyBjaGVja3MgZm9yIGEgOm1ldGg6YF9fZGlyX19gDQorKiBUaGUgYnVp bHQtaW4gOmZ1bmM6YGRpcmAgZnVuY3Rpb24gbm93IGNoZWNrcyBmb3IgYSA6bWV0aDpgfm9iamVj dC5fX2Rpcl9fYA0KICAgbWV0aG9kIG9uIHRoZSBvYmplY3RzIGl0IHJlY2VpdmVzLiAgVGhpcyBt ZXRob2QgbXVzdCByZXR1cm4gYSBsaXN0DQogICBvZiBzdHJpbmdzIGNvbnRhaW5pbmcgdGhlIG5h bWVzIG9mIHZhbGlkIGF0dHJpYnV0ZXMgZm9yIHRoZSBvYmplY3QsDQogICBhbmQgbGV0cyB0aGUg b2JqZWN0IGNvbnRyb2wgdGhlIHZhbHVlIHRoYXQgOmZ1bmM6YGRpcmAgcHJvZHVjZXMuDQotICBP YmplY3RzIHRoYXQgaGF2ZSA6bWV0aDpgX19nZXRhdHRyX19gIG9yIDptZXRoOmBfX2dldGF0dHJp YnV0ZV9fYA0KKyAgT2JqZWN0cyB0aGF0IGhhdmUgOm1ldGg6YH5vYmplY3QuX19nZXRhdHRyX19g IG9yIDptZXRoOmB+b2JqZWN0Ll9fZ2V0YXR0cmlidXRlX19gDQogICBtZXRob2RzIGNhbiB1c2Ug dGhpcyB0byBhZHZlcnRpc2UgcHNldWRvLWF0dHJpYnV0ZXMgdGhleSB3aWxsIGhvbm9yLg0KICAg KDppc3N1ZTpgMTU5MTY2NWApDQogDQpAQCAtMTczOSw4ICsxNzQwLDggQEAgT3B0aW1pemF0aW9u cw0KICAgb25lIG9mIHRoZXNlIHR5cGVzLiAgKENvbnRyaWJ1dGVkIGJ5IE5lYWwgTm9yd2l0ei4p DQogDQogKiBVbmljb2RlIHN0cmluZ3Mgbm93IHVzZSBmYXN0ZXIgY29kZSBmb3IgZGV0ZWN0aW5n DQotICB3aGl0ZXNwYWNlIGFuZCBsaW5lIGJyZWFrczsgdGhpcyBzcGVlZHMgdXAgdGhlIDptZXRo OmBzcGxpdGAgbWV0aG9kDQotICBieSBhYm91dCAyNSUgYW5kIDptZXRoOmBzcGxpdGxpbmVzYCBi eSAzNSUuDQorICB3aGl0ZXNwYWNlIGFuZCBsaW5lIGJyZWFrczsgdGhpcyBzcGVlZHMgdXAgdGhl IDptZXRoOmB+c3RyLnNwbGl0YCBtZXRob2QNCisgIGJ5IGFib3V0IDI1JSBhbmQgOm1ldGg6YH5z dHIuc3BsaXRsaW5lc2AgYnkgMzUlLg0KICAgKENvbnRyaWJ1dGVkIGJ5IEFudG9pbmUgUGl0cm91 LikgIE1lbW9yeSB1c2FnZSBpcyByZWR1Y2VkDQogICBieSB1c2luZyBweW1hbGxvYyBmb3IgdGhl IFVuaWNvZGUgc3RyaW5nJ3MgZGF0YS4NCiANCkBAIC0xNzU2LDcgKzE3NTcsNyBAQCBPcHRpbWl6 YXRpb25zDQogLi4gX25ldy0yNi1pbnRlcnByZXRlcjoNCiANCiBJbnRlcnByZXRlciBDaGFuZ2Vz DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tLS0tLS0tLS0tLS0tLS0tLS0N CiANCiBUd28gY29tbWFuZC1saW5lIG9wdGlvbnMgaGF2ZSBiZWVuIHJlc2VydmVkIGZvciB1c2Ug Ynkgb3RoZXIgUHl0aG9uDQogaW1wbGVtZW50YXRpb25zLiAgVGhlIDpvcHRpb246YCEtSmAgc3dp dGNoIGhhcyBiZWVuIHJlc2VydmVkIGZvciB1c2UgYnkNCkBAIC0xODAwLDE1ICsxODAxLDE1IEBA IGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhl IGRldGFpbHMuDQogICB3ZXJlIGFwcGxpZWQuICAoTWFpbnRhaW5lZCBieSBKb3NpYWggQ2FybHNv bjsgc2VlIDppc3N1ZTpgMTczNjE5MGAgZm9yDQogICBvbmUgcGF0Y2guKQ0KIA0KLSogVGhlIDpt b2Q6YGJzZGRiYCBtb2R1bGUgYWxzbyBoYXMgYSBuZXcgbWFpbnRhaW5lciwgSmVzw7pzIENlYSBB dmnDs24sIGFuZCB0aGUgcGFja2FnZQ0KLSAgaXMgbm93IGF2YWlsYWJsZSBhcyBhIHN0YW5kYWxv bmUgcGFja2FnZS4gIFRoZSB3ZWIgcGFnZSBmb3IgdGhlIHBhY2thZ2UgaXMNCi0gIGB3d3cuamNl YS5lcy9wcm9ncmFtYWNpb24vcHlic2RkYi5odG0NCisqIFRoZSA6bW9kOmAhYnNkZGJgIG1vZHVs ZSBhbHNvIGhhcyBhIG5ldyBtYWludGFpbmVyLCBKZXPDunMgQ2VhIEF2acOzbiwgYW5kIHRoZQ0K KyAgcGFja2FnZSBpcyBub3cgYXZhaWxhYmxlIGFzIGEgc3RhbmRhbG9uZSBwYWNrYWdlLiAgVGhl IHdlYiBwYWdlIGZvciB0aGUgcGFja2FnZQ0KKyAgaXMgYHd3dy5qY2VhLmVzL3Byb2dyYW1hY2lv bi9weWJzZGRiLmh0bQ0KICAgPGh0dHBzOi8vd3d3LmpjZWEuZXMvcHJvZ3JhbWFjaW9uL3B5YnNk ZGIuaHRtPmBfXy4NCiAgIFRoZSBwbGFuIGlzIHRvIHJlbW92ZSB0aGUgcGFja2FnZSBmcm9tIHRo ZSBzdGFuZGFyZCBsaWJyYXJ5DQogICBpbiBQeXRob24gMy4wLCBiZWNhdXNlIGl0cyBwYWNlIG9m IHJlbGVhc2VzIGlzIG11Y2ggbW9yZSBmcmVxdWVudCB0aGFuDQogICBQeXRob24ncy4NCiANCi0g IFRoZSA6bW9kOmBic2RkYi5kYnNoZWx2ZWAgbW9kdWxlIG5vdyB1c2VzIHRoZSBoaWdoZXN0IHBp Y2tsaW5nIHByb3RvY29sDQorICBUaGUgOm1vZDpgIWJzZGRiLmRic2hlbHZlYCBtb2R1bGUgbm93 IHVzZXMgdGhlIGhpZ2hlc3QgcGlja2xpbmcgcHJvdG9jb2wNCiAgIGF2YWlsYWJsZSwgaW5zdGVh ZCBvZiByZXN0cmljdGluZyBpdHNlbGYgdG8gcHJvdG9jb2wgMS4NCiAgIChDb250cmlidXRlZCBi eSBXLiBCYXJuZXMuKQ0KIA0KQEAgLTE4MTgsOSArMTgxOSw5IEBAIGNoYW5nZXMsIG9yIGxvb2sg dGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogICAiL2Nn aS1iaW4vYWRkLnB5P2NhdGVnb3J5PTEiLiAgKENvbnRyaWJ1dGVkIGJ5IEFsZXhhbmRyZSBGaW9y aSBhbmQNCiAgIE51YmlzOyA6aXNzdWU6YDE4MTdgLikNCiANCi0gIFRoZSA6ZnVuYzpgcGFyc2Vf cXNgIGFuZCA6ZnVuYzpgcGFyc2VfcXNsYCBmdW5jdGlvbnMgaGF2ZSBiZWVuDQotICByZWxvY2F0 ZWQgZnJvbSB0aGUgOm1vZDpgIWNnaWAgbW9kdWxlIHRvIHRoZSA6bW9kOmB1cmxwYXJzZSA8dXJs bGliLnBhcnNlPmAgbW9kdWxlLg0KLSAgVGhlIHZlcnNpb25zIHN0aWxsIGF2YWlsYWJsZSBpbiB0 aGUgOm1vZDpgIWNnaWAgbW9kdWxlIHdpbGwNCisgIFRoZSA6ZnVuYzpgfnVybGxpYi5wYXJzZS5w YXJzZV9xc2AgYW5kIDpmdW5jOmB+dXJsbGliLnBhcnNlLnBhcnNlX3FzbGAgZnVuY3Rpb25zDQor ICBoYXZlIGJlZW4gcmVsb2NhdGVkIGZyb20gdGhlIDptb2Q6YCFjZ2lgIG1vZHVsZSB0byB0aGUg Om1vZDpgdXJscGFyc2UgPHVybGxpYi5wYXJzZT5gDQorICBtb2R1bGUuIFRoZSB2ZXJzaW9ucyBz dGlsbCBhdmFpbGFibGUgaW4gdGhlIDptb2Q6YCFjZ2lgIG1vZHVsZSB3aWxsDQogICB0cmlnZ2Vy IDpleGM6YFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmdgIG1lc3NhZ2VzIGluIDIuNg0KICAgKDpp c3N1ZTpgNjAwMzYyYCkuDQogDQpAQCAtMTgyOCwyNyArMTgyOSwyNyBAQCBjaGFuZ2VzLCBvciBs b29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KICAg Y29udHJpYnV0ZWQgYnkgTWFyayBEaWNraW5zb24gYW5kIENocmlzdGlhbiBIZWltZXMuDQogICBG aXZlIG5ldyBmdW5jdGlvbnMgd2VyZSBhZGRlZDoNCiANCi0gICogOmZ1bmM6YHBvbGFyYCBjb252 ZXJ0cyBhIGNvbXBsZXggbnVtYmVyIHRvIHBvbGFyIGZvcm0sIHJldHVybmluZw0KKyAgKiA6ZnVu YzpgfmNtYXRoLnBvbGFyYCBjb252ZXJ0cyBhIGNvbXBsZXggbnVtYmVyIHRvIHBvbGFyIGZvcm0s IHJldHVybmluZw0KICAgICB0aGUgbW9kdWx1cyBhbmQgYXJndW1lbnQgb2YgdGhlIGNvbXBsZXgg bnVtYmVyLg0KIA0KLSAgKiA6ZnVuYzpgcmVjdGAgZG9lcyB0aGUgb3Bwb3NpdGUsIHR1cm5pbmcg YSBtb2R1bHVzLCBhcmd1bWVudCBwYWlyDQorICAqIDpmdW5jOmB+Y21hdGgucmVjdGAgZG9lcyB0 aGUgb3Bwb3NpdGUsIHR1cm5pbmcgYSBtb2R1bHVzLCBhcmd1bWVudCBwYWlyDQogICAgIGJhY2sg aW50byB0aGUgY29ycmVzcG9uZGluZyBjb21wbGV4IG51bWJlci4NCiANCi0gICogOmZ1bmM6YHBo YXNlYCByZXR1cm5zIHRoZSBhcmd1bWVudCAoYWxzbyBjYWxsZWQgdGhlIGFuZ2xlKSBvZiBhIGNv bXBsZXgNCisgICogOmZ1bmM6YH5jbWF0aC5waGFzZWAgcmV0dXJucyB0aGUgYXJndW1lbnQgKGFs c28gY2FsbGVkIHRoZSBhbmdsZSkgb2YgYSBjb21wbGV4DQogICAgIG51bWJlci4NCiANCi0gICog OmZ1bmM6YGlzbmFuYCByZXR1cm5zIFRydWUgaWYgZWl0aGVyDQorICAqIDpmdW5jOmB+Y21hdGgu aXNuYW5gIHJldHVybnMgVHJ1ZSBpZiBlaXRoZXINCiAgICAgdGhlIHJlYWwgb3IgaW1hZ2luYXJ5 IHBhcnQgb2YgaXRzIGFyZ3VtZW50IGlzIGEgTmFOLg0KIA0KLSAgKiA6ZnVuYzpgaXNpbmZgIHJl dHVybnMgVHJ1ZSBpZiBlaXRoZXIgdGhlIHJlYWwgb3IgaW1hZ2luYXJ5IHBhcnQgb2YNCisgICog OmZ1bmM6YH5jbWF0aC5pc2luZmAgcmV0dXJucyBUcnVlIGlmIGVpdGhlciB0aGUgcmVhbCBvciBp bWFnaW5hcnkgcGFydCBvZg0KICAgICBpdHMgYXJndW1lbnQgaXMgaW5maW5pdGUuDQogDQogICBU aGUgcmV2aXNpb25zIGFsc28gaW1wcm92ZWQgdGhlIG51bWVyaWNhbCBzb3VuZG5lc3Mgb2YgdGhl DQogICA6bW9kOmBjbWF0aGAgbW9kdWxlLiAgRm9yIGFsbCBmdW5jdGlvbnMsIHRoZSByZWFsIGFu ZCBpbWFnaW5hcnkNCiAgIHBhcnRzIG9mIHRoZSByZXN1bHRzIGFyZSBhY2N1cmF0ZSB0byB3aXRo aW4gYSBmZXcgdW5pdHMgb2YgbGVhc3QNCiAgIHByZWNpc2lvbiAodWxwcykgd2hlbmV2ZXIgcG9z c2libGUuICBTZWUgOmlzc3VlOmAxMzgxYCBmb3IgdGhlDQotICBkZXRhaWxzLiAgVGhlIGJyYW5j aCBjdXRzIGZvciA6ZnVuYzpgYXNpbmhgLCA6ZnVuYzpgYXRhbmhgOiBhbmQNCi0gIDpmdW5jOmBh dGFuYCBoYXZlIGFsc28gYmVlbiBjb3JyZWN0ZWQuDQorICBkZXRhaWxzLiAgVGhlIGJyYW5jaCBj dXRzIGZvciA6ZnVuYzpgfmNtYXRoLmFzaW5oYCwgOmZ1bmM6YH5jbWF0aC5hdGFuaGAsIGFuZA0K KyAgOmZ1bmM6YH5jbWF0aC5hdGFuYCBoYXZlIGFsc28gYmVlbiBjb3JyZWN0ZWQuDQogDQogICBU aGUgdGVzdHMgZm9yIHRoZSBtb2R1bGUgaGF2ZSBiZWVuIGdyZWF0bHkgZXhwYW5kZWQ7IG5lYXJs eSAyMDAwIG5ldw0KICAgdGVzdCBjYXNlcyBleGVyY2lzZSB0aGUgYWxnZWJyYWljIGZ1bmN0aW9u cy4NCkBAIC0xODgwLDE0ICsxODgxLDE0IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUg U3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogICAgICB2YXJpYWJsZShpZD0x LCBuYW1lPSdhbXBsaXR1ZGUnLCB0eXBlPSdpbnQnLCBzaXplPTQpDQogDQogICBTZXZlcmFsIHBs YWNlcyBpbiB0aGUgc3RhbmRhcmQgbGlicmFyeSB0aGF0IHJldHVybmVkIHR1cGxlcyBoYXZlDQot ICBiZWVuIG1vZGlmaWVkIHRvIHJldHVybiA6ZnVuYzpgbmFtZWR0dXBsZWAgaW5zdGFuY2VzLiAg Rm9yIGV4YW1wbGUsDQotICB0aGUgOm1ldGg6YERlY2ltYWwuYXNfdHVwbGVgIG1ldGhvZCBub3cg cmV0dXJucyBhIG5hbWVkIHR1cGxlIHdpdGgNCi0gIDphdHRyOmBzaWduYCwgOmF0dHI6YGRpZ2l0 c2AsIGFuZCA6YXR0cjpgZXhwb25lbnRgIGZpZWxkcy4NCisgIGJlZW4gbW9kaWZpZWQgdG8gcmV0 dXJuIDpmdW5jOmB+Y29sbGVjdGlvbnMubmFtZWR0dXBsZWAgaW5zdGFuY2VzLiAgRm9yIGV4YW1w bGUsDQorICB0aGUgOm1ldGg6YGRlY2ltYWwuRGVjaW1hbC5hc190dXBsZWAgbWV0aG9kIG5vdyBy ZXR1cm5zIGEgbmFtZWQgdHVwbGUgd2l0aA0KKyAgOmF0dHI6YCFzaWduYCwgOmF0dHI6YCFkaWdp dHNgLCBhbmQgOmF0dHI6YCFleHBvbmVudGAgZmllbGRzLg0KIA0KICAgKENvbnRyaWJ1dGVkIGJ5 IFJheW1vbmQgSGV0dGluZ2VyLikNCiANCiAqIEFub3RoZXIgY2hhbmdlIHRvIHRoZSA6bW9kOmBj b2xsZWN0aW9uc2AgbW9kdWxlIGlzIHRoYXQgdGhlDQotICA6Y2xhc3M6YGRlcXVlYCB0eXBlIG5v dyBzdXBwb3J0cyBhbiBvcHRpb25hbCAqbWF4bGVuKiBwYXJhbWV0ZXI7DQorICA6Y2xhc3M6YH5j b2xsZWN0aW9ucy5kZXF1ZWAgdHlwZSBub3cgc3VwcG9ydHMgYW4gb3B0aW9uYWwgKm1heGxlbiog cGFyYW1ldGVyOw0KICAgaWYgc3VwcGxpZWQsIHRoZSBkZXF1ZSdzIHNpemUgd2lsbCBiZSByZXN0 cmljdGVkIHRvIG5vIG1vcmUNCiAgIHRoYW4gKm1heGxlbiogaXRlbXMuICBBZGRpbmcgbW9yZSBp dGVtcyB0byBhIGZ1bGwgZGVxdWUgY2F1c2VzDQogICBvbGQgaXRlbXMgdG8gYmUgZGlzY2FyZGVk Lg0KQEAgLTE5MTMsNyArMTkxNCw3IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3Vi dmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogICAoQ29udHJpYnV0ZWQgYnkgQXJ2 aW4gU2NobmVsbDsgOmlzc3VlOmAxNjM4MDMzYC4pDQogDQogKiBBIG5ldyB3aW5kb3cgbWV0aG9k IGluIHRoZSA6bW9kOmBjdXJzZXNgIG1vZHVsZSwNCi0gIDptZXRoOmBjaGdhdGAsIGNoYW5nZXMg dGhlIGRpc3BsYXkgYXR0cmlidXRlcyBmb3IgYSBjZXJ0YWluIG51bWJlciBvZg0KKyAgOm1ldGg6 YH5jdXJzZXMud2luZG93LmNoZ2F0YCwgY2hhbmdlcyB0aGUgZGlzcGxheSBhdHRyaWJ1dGVzIGZv ciBhIGNlcnRhaW4gbnVtYmVyIG9mDQogICBjaGFyYWN0ZXJzIG9uIGEgc2luZ2xlIGxpbmUuICAo Q29udHJpYnV0ZWQgYnkgRmFiaWFuIEtyZXV0ei4pDQogDQogICA6Og0KQEAgLTE5MjIsMjAgKzE5 MjMsMjAgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9y IGFsbCB0aGUgZGV0YWlscy4NCiAgICAgICMgYW5kIGFmZmVjdGluZyB0aGUgcmVzdCBvZiB0aGUg bGluZS4NCiAgICAgIHN0ZHNjci5jaGdhdCgwLCAyMSwgY3Vyc2VzLkFfQk9MRCkNCiANCi0gIFRo ZSA6Y2xhc3M6YFRleHRib3hgIGNsYXNzIGluIHRoZSA6bW9kOmBjdXJzZXMudGV4dHBhZGAgbW9k dWxlDQorICBUaGUgOmNsYXNzOmB+Y3Vyc2VzLnRleHRwYWQuVGV4dGJveGAgY2xhc3MgaW4gdGhl IDptb2Q6YGN1cnNlcy50ZXh0cGFkYCBtb2R1bGUNCiAgIG5vdyBzdXBwb3J0cyBlZGl0aW5nIGlu IGluc2VydCBtb2RlIGFzIHdlbGwgYXMgb3ZlcndyaXRlIG1vZGUuDQogICBJbnNlcnQgbW9kZSBp cyBlbmFibGVkIGJ5IHN1cHBseWluZyBhIHRydWUgdmFsdWUgZm9yIHRoZSAqaW5zZXJ0X21vZGUq DQotICBwYXJhbWV0ZXIgd2hlbiBjcmVhdGluZyB0aGUgOmNsYXNzOmBUZXh0Ym94YCBpbnN0YW5j ZS4NCisgIHBhcmFtZXRlciB3aGVuIGNyZWF0aW5nIHRoZSA6Y2xhc3M6YH5jdXJzZXMudGV4dHBh ZC5UZXh0Ym94YCBpbnN0YW5jZS4NCiANCi0qIFRoZSA6bW9kOmBkYXRldGltZWAgbW9kdWxlJ3Mg Om1ldGg6YHN0cmZ0aW1lYCBtZXRob2RzIG5vdyBzdXBwb3J0IGENCi0gIGBgJWZgYCBmb3JtYXQg Y29kZSB0aGF0IGV4cGFuZHMgdG8gdGhlIG51bWJlciBvZiBtaWNyb3NlY29uZHMgaW4gdGhlDQor KiBUaGUgOm1vZDpgZGF0ZXRpbWVgIG1vZHVsZSdzIDptZXRoOmB+ZGF0ZXRpbWUuZGF0ZXRpbWUu c3RyZnRpbWVgIG1ldGhvZHMgbm93DQorICBzdXBwb3J0IGEgYGAlZmBgIGZvcm1hdCBjb2RlIHRo YXQgZXhwYW5kcyB0byB0aGUgbnVtYmVyIG9mIG1pY3Jvc2Vjb25kcyBpbiB0aGUNCiAgIG9iamVj dCwgemVyby1wYWRkZWQgb24NCiAgIHRoZSBsZWZ0IHRvIHNpeCBwbGFjZXMuICAoQ29udHJpYnV0 ZWQgYnkgU2tpcCBNb250YW5hcm87IDppc3N1ZTpgMTE1OGAuKQ0KIA0KICogVGhlIDptb2Q6YGRl Y2ltYWxgIG1vZHVsZSB3YXMgdXBkYXRlZCB0byB2ZXJzaW9uIDEuNjYgb2YNCiAgIGB0aGUgR2Vu ZXJhbCBEZWNpbWFsIFNwZWNpZmljYXRpb24gPGh0dHBzOi8vc3BlbGVvdHJvdmUuY29tL2RlY2lt YWwvZGVjYXJpdGguaHRtbD5gX18uICBOZXcgZmVhdHVyZXMNCiAgIGluY2x1ZGUgc29tZSBtZXRo b2RzIGZvciBzb21lIGJhc2ljIG1hdGhlbWF0aWNhbCBmdW5jdGlvbnMgc3VjaCBhcw0KLSAgOm1l dGg6YGV4cGAgYW5kIDptZXRoOmBsb2cxMGA6Og0KKyAgOm1ldGg6YH5kZWNpbWFsLkRlY2ltYWwu ZXhwYCBhbmQgOm1ldGg6YH5kZWNpbWFsLkRlY2ltYWwubG9nMTBgOjoNCiANCiAgICAgPj4+IERl Y2ltYWwoMSkuZXhwKCkNCiAgICAgRGVjaW1hbCgiMi43MTgyODE4Mjg0NTkwNDUyMzUzNjAyODc0 NzEiKQ0KQEAgLTE5NDQsMjggKzE5NDUsMjkgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRo ZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiAgICAgPj4+IERlY2ltYWwo MTAwMCkubG9nMTAoKQ0KICAgICBEZWNpbWFsKCIzIikNCiANCi0gIFRoZSA6bWV0aDpgYXNfdHVw bGVgIG1ldGhvZCBvZiA6Y2xhc3M6YERlY2ltYWxgIG9iamVjdHMgbm93IHJldHVybnMgYQ0KLSAg bmFtZWQgdHVwbGUgd2l0aCA6YXR0cjpgc2lnbmAsIDphdHRyOmBkaWdpdHNgLCBhbmQgOmF0dHI6 YGV4cG9uZW50YCBmaWVsZHMuDQorICBUaGUgOm1ldGg6YH5kZWNpbWFsLkRlY2ltYWwuYXNfdHVw bGVgIG1ldGhvZCBvZiA6Y2xhc3M6YH5kZWNpbWFsLkRlY2ltYWxgDQorICBvYmplY3RzIG5vdyBy ZXR1cm5zIGEgbmFtZWQgdHVwbGUgd2l0aCA6YXR0cjpgIXNpZ25gLCA6YXR0cjpgIWRpZ2l0c2As IGFuZA0KKyAgOmF0dHI6YCFleHBvbmVudGAgZmllbGRzLg0KIA0KICAgKEltcGxlbWVudGVkIGJ5 IEZhY3VuZG8gQmF0aXN0YSBhbmQgTWFyayBEaWNraW5zb24uICBOYW1lZCB0dXBsZQ0KICAgc3Vw cG9ydCBhZGRlZCBieSBSYXltb25kIEhldHRpbmdlci4pDQogDQotKiBUaGUgOm1vZDpgZGlmZmxp YmAgbW9kdWxlJ3MgOmNsYXNzOmBTZXF1ZW5jZU1hdGNoZXJgIGNsYXNzDQorKiBUaGUgOm1vZDpg ZGlmZmxpYmAgbW9kdWxlJ3MgOmNsYXNzOmB+ZGlmZmxpYi5TZXF1ZW5jZU1hdGNoZXJgIGNsYXNz DQogICBub3cgcmV0dXJucyBuYW1lZCB0dXBsZXMgcmVwcmVzZW50aW5nIG1hdGNoZXMsDQotICB3 aXRoIDphdHRyOmBhYCwgOmF0dHI6YGJgLCBhbmQgOmF0dHI6YHNpemVgIGF0dHJpYnV0ZXMuDQor ICB3aXRoIDphdHRyOmAhYWAsIDphdHRyOmAhYmAsIGFuZCA6YXR0cjpgIXNpemVgIGF0dHJpYnV0 ZXMuDQogICAoQ29udHJpYnV0ZWQgYnkgUmF5bW9uZCBIZXR0aW5nZXIuKQ0KIA0KICogQW4gb3B0 aW9uYWwgYGB0aW1lb3V0YGAgcGFyYW1ldGVyLCBzcGVjaWZ5aW5nIGEgdGltZW91dCBtZWFzdXJl ZCBpbg0KICAgc2Vjb25kcywgd2FzIGFkZGVkIHRvIHRoZSA6Y2xhc3M6YGZ0cGxpYi5GVFBgIGNs YXNzIGNvbnN0cnVjdG9yIGFzDQotICB3ZWxsIGFzIHRoZSA6bWV0aDpgY29ubmVjdGAgbWV0aG9k LiAgKEFkZGVkIGJ5IEZhY3VuZG8gQmF0aXN0YS4pDQotICBBbHNvLCB0aGUgOmNsYXNzOmBGVFBg IGNsYXNzJ3MgOm1ldGg6YHN0b3JiaW5hcnlgIGFuZA0KLSAgOm1ldGg6YHN0b3JsaW5lc2Agbm93 IHRha2UgYW4gb3B0aW9uYWwgKmNhbGxiYWNrKiBwYXJhbWV0ZXIgdGhhdA0KKyAgd2VsbCBhcyB0 aGUgOm1ldGg6YH5mdHBsaWIuRlRQLmNvbm5lY3RgIG1ldGhvZC4gIChBZGRlZCBieSBGYWN1bmRv IEJhdGlzdGEuKQ0KKyAgQWxzbywgdGhlIDpjbGFzczpgfmZ0cGxpYi5GVFBgIGNsYXNzJ3MgOm1l dGg6YH5mdHBsaWIuRlRQLnN0b3JiaW5hcnlgIGFuZA0KKyAgOm1ldGg6YH5mdHBsaWIuRlRQLnN0 b3JsaW5lc2Agbm93IHRha2UgYW4gb3B0aW9uYWwgKmNhbGxiYWNrKiBwYXJhbWV0ZXIgdGhhdA0K ICAgd2lsbCBiZSBjYWxsZWQgd2l0aCBlYWNoIGJsb2NrIG9mIGRhdGEgYWZ0ZXIgdGhlIGRhdGEg aGFzIGJlZW4gc2VudC4NCiAgIChDb250cmlidXRlZCBieSBQaGlsIFNjaHdhcnR6OyA6aXNzdWU6 YDEyMjE1OThgLikNCiANCi0qIFRoZSA6ZnVuYzpgcmVkdWNlYCBidWlsdC1pbiBmdW5jdGlvbiBp cyBhbHNvIGF2YWlsYWJsZSBpbiB0aGUNCisqIFRoZSA6ZnVuYzpgIXJlZHVjZWAgYnVpbHQtaW4g ZnVuY3Rpb24gaXMgYWxzbyBhdmFpbGFibGUgaW4gdGhlDQogICA6bW9kOmBmdW5jdG9vbHNgIG1v ZHVsZS4gIEluIFB5dGhvbiAzLjAsIHRoZSBidWlsdGluIGhhcyBiZWVuDQotICBkcm9wcGVkIGFu ZCA6ZnVuYzpgcmVkdWNlYCBpcyBvbmx5IGF2YWlsYWJsZSBmcm9tIDptb2Q6YGZ1bmN0b29sc2A7 DQorICBkcm9wcGVkIGFuZCA6ZnVuYzpgfmZ1bmN0b29scy5yZWR1Y2VgIGlzIG9ubHkgYXZhaWxh YmxlIGZyb20gOm1vZDpgZnVuY3Rvb2xzYDsNCiAgIGN1cnJlbnRseSB0aGVyZSBhcmUgbm8gcGxh bnMgdG8gZHJvcCB0aGUgYnVpbHRpbiBpbiB0aGUgMi54IHNlcmllcy4NCiAgIChQYXRjaGVkIGJ5 IENocmlzdGlhbiBIZWltZXM7IDppc3N1ZTpgMTczOTkwNmAuKQ0KIA0KQEAgLTE5ODksOCArMTk5 MSw4IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBh bGwgdGhlIGRldGFpbHMuDQogDQogICBBbm90aGVyIG5ldyBmdW5jdGlvbiwgYGBoZWFwcHVzaHBv cChoZWFwLCBpdGVtKWBgLA0KICAgcHVzaGVzICppdGVtKiBvbnRvICpoZWFwKiwgdGhlbiBwb3Bz IG9mZiBhbmQgcmV0dXJucyB0aGUgc21hbGxlc3QgaXRlbS4NCi0gIFRoaXMgaXMgbW9yZSBlZmZp Y2llbnQgdGhhbiBtYWtpbmcgYSBjYWxsIHRvIDpmdW5jOmBoZWFwcHVzaGAgYW5kIHRoZW4NCi0g IDpmdW5jOmBoZWFwcG9wYC4NCisgIFRoaXMgaXMgbW9yZSBlZmZpY2llbnQgdGhhbiBtYWtpbmcg YSBjYWxsIHRvIDpmdW5jOmB+aGVhcHEuaGVhcHB1c2hgIGFuZCB0aGVuDQorICA6ZnVuYzpgfmhl YXBxLmhlYXBwb3BgLg0KIA0KICAgOm1vZDpgaGVhcHFgIGlzIG5vdyBpbXBsZW1lbnRlZCB0byBv bmx5IHVzZSBsZXNzLXRoYW4gY29tcGFyaXNvbiwNCiAgIGluc3RlYWQgb2YgdGhlIGxlc3MtdGhh bi1vci1lcXVhbCBjb21wYXJpc29uIGl0IHByZXZpb3VzbHkgdXNlZC4NCkBAIC0yMDA0LDE0ICsy MDA2LDE0IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZv ciBhbGwgdGhlIGRldGFpbHMuDQogICBCYXRpc3RhLikNCiANCiAqIE1vc3Qgb2YgdGhlIDptb2Q6 YGluc3BlY3RgIG1vZHVsZSdzIGZ1bmN0aW9ucywgc3VjaCBhcw0KLSAgOmZ1bmM6YGdldG1vZHVs ZWluZm9gIGFuZCA6ZnVuYzpgZ2V0YXJnc2AsIG5vdyByZXR1cm4gbmFtZWQgdHVwbGVzLg0KKyAg OmZ1bmM6YCFnZXRtb2R1bGVpbmZvYCBhbmQgOmZ1bmM6YCFnZXRhcmdzYCwgbm93IHJldHVybiBu YW1lZCB0dXBsZXMuDQogICBJbiBhZGRpdGlvbiB0byBiZWhhdmluZyBsaWtlIHR1cGxlcywgdGhl IGVsZW1lbnRzIG9mIHRoZSAgcmV0dXJuIHZhbHVlDQogICBjYW4gYWxzbyBiZSBhY2Nlc3NlZCBh cyBhdHRyaWJ1dGVzLg0KICAgKENvbnRyaWJ1dGVkIGJ5IFJheW1vbmQgSGV0dGluZ2VyLikNCiAN CiAgIFNvbWUgbmV3IGZ1bmN0aW9ucyBpbiB0aGUgbW9kdWxlIGluY2x1ZGUNCi0gIDpmdW5jOmBp c2dlbmVyYXRvcmAsIDpmdW5jOmBpc2dlbmVyYXRvcmZ1bmN0aW9uYCwNCi0gIGFuZCA6ZnVuYzpg aXNhYnN0cmFjdGAuDQorICA6ZnVuYzpgfmluc3BlY3QuaXNnZW5lcmF0b3JgLCA6ZnVuYzpgfmlu c3BlY3QuaXNnZW5lcmF0b3JmdW5jdGlvbmAsDQorICBhbmQgOmZ1bmM6YH5pbnNwZWN0LmlzYWJz dHJhY3RgLg0KIA0KICogVGhlIDptb2Q6YGl0ZXJ0b29sc2AgbW9kdWxlIGdhaW5lZCBzZXZlcmFs IG5ldyBmdW5jdGlvbnMuDQogDQpAQCAtMjA3Miw3ICsyMDc0LDcgQEAgY2hhbmdlcywgb3IgbG9v ayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiAgIGBg aXRlcnRvb2xzLmNoYWluKCppdGVyYWJsZXMpYGAgaXMgYW4gZXhpc3RpbmcgZnVuY3Rpb24gaW4N CiAgIDptb2Q6YGl0ZXJ0b29sc2AgdGhhdCBnYWluZWQgYSBuZXcgY29uc3RydWN0b3IgaW4gUHl0 aG9uIDIuNi4NCiAgIGBgaXRlcnRvb2xzLmNoYWluLmZyb21faXRlcmFibGUoaXRlcmFibGUpYGAg dGFrZXMgYSBzaW5nbGUNCi0gIGl0ZXJhYmxlIHRoYXQgc2hvdWxkIHJldHVybiBvdGhlciBpdGVy YWJsZXMuICA6ZnVuYzpgY2hhaW5gIHdpbGwNCisgIGl0ZXJhYmxlIHRoYXQgc2hvdWxkIHJldHVy biBvdGhlciBpdGVyYWJsZXMuICA6ZnVuYzpgfml0ZXJ0b29scy5jaGFpbmAgd2lsbA0KICAgdGhl biByZXR1cm4gYWxsIHRoZSBlbGVtZW50cyBvZiB0aGUgZmlyc3QgaXRlcmFibGUsIHRoZW4NCiAg IGFsbCB0aGUgZWxlbWVudHMgb2YgdGhlIHNlY29uZCwgYW5kIHNvIG9uLiA6Og0KIA0KQEAgLTIw ODEsMTQgKzIwODMsMTUgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9u IGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiANCiAgIChBbGwgY29udHJpYnV0ZWQgYnkgUmF5 bW9uZCBIZXR0aW5nZXIuKQ0KIA0KLSogVGhlIDptb2Q6YGxvZ2dpbmdgIG1vZHVsZSdzIDpjbGFz czpgRmlsZUhhbmRsZXJgIGNsYXNzDQotICBhbmQgaXRzIHN1YmNsYXNzZXMgOmNsYXNzOmBXYXRj aGVkRmlsZUhhbmRsZXJgLCA6Y2xhc3M6YFJvdGF0aW5nRmlsZUhhbmRsZXJgLA0KLSAgYW5kIDpj bGFzczpgVGltZWRSb3RhdGluZ0ZpbGVIYW5kbGVyYCBub3cNCisqIFRoZSA6bW9kOmBsb2dnaW5n YCBtb2R1bGUncyA6Y2xhc3M6YH5sb2dnaW5nLkZpbGVIYW5kbGVyYCBjbGFzcw0KKyAgYW5kIGl0 cyBzdWJjbGFzc2VzIDpjbGFzczpgfmxvZ2dpbmcuaGFuZGxlcnMuV2F0Y2hlZEZpbGVIYW5kbGVy YCwNCisgIDpjbGFzczpgfmxvZ2dpbmcuaGFuZGxlcnMuUm90YXRpbmdGaWxlSGFuZGxlcmAsDQor ICBhbmQgOmNsYXNzOmB+bG9nZ2luZy5oYW5kbGVycy5UaW1lZFJvdGF0aW5nRmlsZUhhbmRsZXJg IG5vdw0KICAgaGF2ZSBhbiBvcHRpb25hbCAqZGVsYXkqIHBhcmFtZXRlciB0byB0aGVpciBjb25z dHJ1Y3RvcnMuICBJZiAqZGVsYXkqDQogICBpcyB0cnVlLCBvcGVuaW5nIG9mIHRoZSBsb2cgZmls ZSBpcyBkZWZlcnJlZCB1bnRpbCB0aGUgZmlyc3QNCi0gIDptZXRoOmBlbWl0YCBjYWxsIGlzIG1h ZGUuICAoQ29udHJpYnV0ZWQgYnkgVmluYXkgU2FqaXAuKQ0KKyAgOm1ldGg6YH5sb2dnaW5nLkZp bGVIYW5kbGVyLmVtaXRgIGNhbGwgaXMgbWFkZS4gIChDb250cmlidXRlZCBieSBWaW5heSBTYWpp cC4pDQogDQotICA6Y2xhc3M6YFRpbWVkUm90YXRpbmdGaWxlSGFuZGxlcmAgYWxzbyBoYXMgYSAq dXRjKiBjb25zdHJ1Y3Rvcg0KKyAgOmNsYXNzOmB+bG9nZ2luZy5oYW5kbGVycy5UaW1lZFJvdGF0 aW5nRmlsZUhhbmRsZXJgIGFsc28gaGFzIGEgKnV0YyogY29uc3RydWN0b3INCiAgIHBhcmFtZXRl ci4gIElmIHRoZSBhcmd1bWVudCBpcyB0cnVlLCBVVEMgdGltZSB3aWxsIGJlIHVzZWQNCiAgIGlu IGRldGVybWluaW5nIHdoZW4gbWlkbmlnaHQgb2NjdXJzIGFuZCBpbiBnZW5lcmF0aW5nIGZpbGVu YW1lczsNCiAgIG90aGVyd2lzZSBsb2NhbCB0aW1lIHdpbGwgYmUgdXNlZC4NCkBAIC0yMTE3LDgg KzIxMjAsOCBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBm b3IgYWxsIHRoZSBkZXRhaWxzLg0KICAgKiA6ZnVuYzpgfm1hdGgubG9nMXBgIHJldHVybnMgdGhl IG5hdHVyYWwgbG9nYXJpdGhtIG9mICoxK3gqDQogICAgIChiYXNlICplKikuDQogDQotICAqIDpm dW5jOmB0cnVuY2Agcm91bmRzIGEgbnVtYmVyIHRvd2FyZCB6ZXJvLCByZXR1cm5pbmcgdGhlIGNs b3Nlc3QNCi0gICAgOmNsYXNzOmBJbnRlZ3JhbGAgdGhhdCdzIGJldHdlZW4gdGhlIGZ1bmN0aW9u J3MgYXJndW1lbnQgYW5kIHplcm8uDQorICAqIDpmdW5jOmB+bWF0aC50cnVuY2Agcm91bmRzIGEg bnVtYmVyIHRvd2FyZCB6ZXJvLCByZXR1cm5pbmcgdGhlIGNsb3Nlc3QNCisgICAgOmNsYXNzOmB+ bnVtYmVycy5JbnRlZ3JhbGAgdGhhdCdzIGJldHdlZW4gdGhlIGZ1bmN0aW9uJ3MgYXJndW1lbnQg YW5kIHplcm8uDQogICAgIEFkZGVkIGFzIHBhcnQgb2YgdGhlIGJhY2twb3J0IG9mDQogICAgIGBQ RVAgMzE0MSdzIHR5cGUgaGllcmFyY2h5IGZvciBudW1iZXJzIDwjcGVwLTMxNDE+YF9fLg0KIA0K QEAgLTIxMzgsMTQgKzIxNDEsMTUgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2 ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiANCiAgIChDb250cmlidXRlZCBieSBD aHJpc3RpYW4gSGVpbWVzIGFuZCBNYXJrIERpY2tpbnNvbi4pDQogDQotKiA6Y2xhc3M6YH5tbWFw Lm1tYXBgIG9iamVjdHMgbm93IGhhdmUgYSA6bWV0aDpgcmZpbmRgIG1ldGhvZCB0aGF0IHNlYXJj aGVzIGZvciBhDQorKiA6Y2xhc3M6YH5tbWFwLm1tYXBgIG9iamVjdHMgbm93IGhhdmUgYSA6bWV0 aDpgfm1tYXAubW1hcC5yZmluZGAgbWV0aG9kIHRoYXQNCisgIHNlYXJjaGVzIGZvciBhDQogICBz dWJzdHJpbmcgYmVnaW5uaW5nIGF0IHRoZSBlbmQgb2YgdGhlIHN0cmluZyBhbmQgc2VhcmNoaW5n DQotICBiYWNrd2FyZHMuICBUaGUgOm1ldGg6YGZpbmRgIG1ldGhvZCBhbHNvIGdhaW5lZCBhbiAq ZW5kKiBwYXJhbWV0ZXINCisgIGJhY2t3YXJkcy4gIFRoZSA6bWV0aDpgfm1tYXAubW1hcC5maW5k YCBtZXRob2QgYWxzbyBnYWluZWQgYW4gKmVuZCogcGFyYW1ldGVyDQogICBnaXZpbmcgYW4gaW5k ZXggYXQgd2hpY2ggdG8gc3RvcCBzZWFyY2hpbmcuDQogICAoQ29udHJpYnV0ZWQgYnkgSm9obiBM ZW50b24uKQ0KIA0KICogVGhlIDptb2Q6YG9wZXJhdG9yYCBtb2R1bGUgZ2FpbmVkIGENCi0gIDpm dW5jOmBtZXRob2RjYWxsZXJgIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYSBuYW1lIGFuZCBhbiBvcHRp b25hbA0KKyAgOmZ1bmM6YH5vcGVyYXRvci5tZXRob2RjYWxsZXJgIGZ1bmN0aW9uIHRoYXQgdGFr ZXMgYSBuYW1lIGFuZCBhbiBvcHRpb25hbA0KICAgc2V0IG9mIGFyZ3VtZW50cywgcmV0dXJuaW5n IGEgY2FsbGFibGUgdGhhdCB3aWxsIGNhbGwNCiAgIHRoZSBuYW1lZCBmdW5jdGlvbiBvbiBhbnkg YXJndW1lbnRzIHBhc3NlZCB0byBpdC4gIEZvciBleGFtcGxlOjoNCiANCkBAIC0yMTU2LDcgKzIx NjAsNyBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3Ig YWxsIHRoZSBkZXRhaWxzLg0KIA0KICAgKENvbnRyaWJ1dGVkIGJ5IEdlb3JnIEJyYW5kbCwgYWZ0 ZXIgYSBzdWdnZXN0aW9uIGJ5IEdyZWdvcnkgUGV0cm9zeWFuLikNCiANCi0gIFRoZSA6ZnVuYzpg YXR0cmdldHRlcmAgZnVuY3Rpb24gbm93IGFjY2VwdHMgZG90dGVkIG5hbWVzIGFuZCBwZXJmb3Jt cw0KKyAgVGhlIDpmdW5jOmB+b3BlcmF0b3IuYXR0cmdldHRlcmAgZnVuY3Rpb24gbm93IGFjY2Vw dHMgZG90dGVkIG5hbWVzIGFuZCBwZXJmb3Jtcw0KICAgdGhlIGNvcnJlc3BvbmRpbmcgYXR0cmli dXRlIGxvb2t1cHM6Og0KIA0KICAgICA+Pj4gaW5zdF9uYW1lID0gb3BlcmF0b3IuYXR0cmdldHRl cigNCkBAIC0yMTc0LDEyICsyMTc4LDEyIEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUg U3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogICB0aGUgbW9kZSBvZiBhIHN5 bWxpbmsuICAoQ29udHJpYnV0ZWQgYnkgR2VvcmcgQnJhbmRsIGFuZCBDaHJpc3RpYW4NCiAgIEhl aW1lcy4pDQogDQotICA6ZnVuYzpgY2hmbGFnc2AgYW5kIDpmdW5jOmBsY2hmbGFnc2AgYXJlIHdy YXBwZXJzIGZvciB0aGUNCisgIDpmdW5jOmB+b3MuY2hmbGFnc2AgYW5kIDpmdW5jOmB+b3MubGNo ZmxhZ3NgIGFyZSB3cmFwcGVycyBmb3IgdGhlDQogICBjb3JyZXNwb25kaW5nIHN5c3RlbSBjYWxs cyAod2hlcmUgdGhleSdyZSBhdmFpbGFibGUpLCBjaGFuZ2luZyB0aGUNCiAgIGZsYWdzIHNldCBv biBhIGZpbGUuICBDb25zdGFudHMgZm9yIHRoZSBmbGFnIHZhbHVlcyBhcmUgZGVmaW5lZCBpbg0K ICAgdGhlIDptb2Q6YHN0YXRgIG1vZHVsZTsgc29tZSBwb3NzaWJsZSB2YWx1ZXMgaW5jbHVkZQ0K LSAgOmNvbnN0OmBVRl9JTU1VVEFCTEVgIHRvIHNpZ25hbCB0aGUgZmlsZSBtYXkgbm90IGJlIGNo YW5nZWQgYW5kDQotICA6Y29uc3Q6YFVGX0FQUEVORGAgdG8gaW5kaWNhdGUgdGhhdCBkYXRhIGNh biBvbmx5IGJlIGFwcGVuZGVkIHRvIHRoZQ0KKyAgOmNvbnN0OmB+c3RhdC5VRl9JTU1VVEFCTEVg IHRvIHNpZ25hbCB0aGUgZmlsZSBtYXkgbm90IGJlIGNoYW5nZWQgYW5kDQorICA6Y29uc3Q6YH5z dGF0LlVGX0FQUEVORGAgdG8gaW5kaWNhdGUgdGhhdCBkYXRhIGNhbiBvbmx5IGJlIGFwcGVuZGVk IHRvIHRoZQ0KICAgZmlsZS4gIChDb250cmlidXRlZCBieSBNLiBMZXZpbnNvbi4pDQogDQogICBg YG9zLmNsb3NlcmFuZ2UobG93LCBoaWdoKWBgIGVmZmljaWVudGx5IGNsb3NlcyBhbGwgZmlsZSBk ZXNjcmlwdG9ycw0KQEAgLTIxODcsNyArMjE5MSw3IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3Vn aCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogICBUaGlzIGZ1bmN0 aW9uIGlzIG5vdyB1c2VkIGJ5IHRoZSA6bW9kOmBzdWJwcm9jZXNzYCBtb2R1bGUgdG8gbWFrZSBz dGFydGluZw0KICAgcHJvY2Vzc2VzIGZhc3Rlci4gIChDb250cmlidXRlZCBieSBHZW9yZyBCcmFu ZGw7IDppc3N1ZTpgMTY2MzMyOWAuKQ0KIA0KLSogVGhlIGBgb3MuZW52aXJvbmBgIG9iamVjdCdz IDptZXRoOmBjbGVhcmAgbWV0aG9kIHdpbGwgbm93IHVuc2V0IHRoZQ0KKyogVGhlIGBgb3MuZW52 aXJvbmBgIG9iamVjdCdzIDptZXRoOmAhY2xlYXJgIG1ldGhvZCB3aWxsIG5vdyB1bnNldCB0aGUN CiAgIGVudmlyb25tZW50IHZhcmlhYmxlcyB1c2luZyA6ZnVuYzpgb3MudW5zZXRlbnZgIGluIGFk ZGl0aW9uIHRvIGNsZWFyaW5nDQogICB0aGUgb2JqZWN0J3Mga2V5cy4gIChDb250cmlidXRlZCBi eSBNYXJ0aW4gSG9yY2lja2E7IDppc3N1ZTpgMTE4MWAuKQ0KIA0KQEAgLTIxOTgsNyArMjIwMiw3 IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwg dGhlIGRldGFpbHMuDQogICBpbnRvIGFuIGluZmluaXRlIHJlY3Vyc2lvbiBpZiB0aGVyZSdzIGEg c3ltbGluayB0aGF0IHBvaW50cyB0byBhDQogICBwYXJlbnQgZGlyZWN0b3J5LiAgKDppc3N1ZTpg MTI3MzgyOWApDQogDQotKiBJbiB0aGUgOm1vZDpgb3MucGF0aGAgbW9kdWxlLCB0aGUgOmZ1bmM6 YHNwbGl0ZXh0YCBmdW5jdGlvbg0KKyogSW4gdGhlIDptb2Q6YG9zLnBhdGhgIG1vZHVsZSwgdGhl IDpmdW5jOmB+b3MucGF0aC5zcGxpdGV4dGAgZnVuY3Rpb24NCiAgIGhhcyBiZWVuIGNoYW5nZWQg dG8gbm90IHNwbGl0IG9uIGxlYWRpbmcgcGVyaW9kIGNoYXJhY3RlcnMuDQogICBUaGlzIHByb2R1 Y2VzIGJldHRlciByZXN1bHRzIHdoZW4gb3BlcmF0aW5nIG9uIFVuaXgncyBkb3QtZmlsZXMuDQog ICBGb3IgZXhhbXBsZSwgYGBvcy5wYXRoLnNwbGl0ZXh0KCcuaXB5dGhvbicpYGANCkBAIC0yMjI1 LDEyICsyMjI5LDEyIEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBs b2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogICBpZiBubyB0cmFjZWJhY2sgaXMgc3VwcGxpZWQu ICAgKENvbnRyaWJ1dGVkIGJ5IEZhY3VuZG8gQmF0aXN0YTsNCiAgIDppc3N1ZTpgMTEwNjMxNmAu KQ0KIA0KLSogVGhlIDptb2Q6YHBpY2tsZXRvb2xzYCBtb2R1bGUgbm93IGhhcyBhbiA6ZnVuYzpg b3B0aW1pemVgIGZ1bmN0aW9uDQorKiBUaGUgOm1vZDpgcGlja2xldG9vbHNgIG1vZHVsZSBub3cg aGFzIGFuIDpmdW5jOmB+cGlja2xldG9vbHMub3B0aW1pemVgIGZ1bmN0aW9uDQogICB0aGF0IHRh a2VzIGEgc3RyaW5nIGNvbnRhaW5pbmcgYSBwaWNrbGUgYW5kIHJlbW92ZXMgc29tZSB1bnVzZWQN CiAgIG9wY29kZXMsIHJldHVybmluZyBhIHNob3J0ZXIgcGlja2xlIHRoYXQgY29udGFpbnMgdGhl IHNhbWUgZGF0YSBzdHJ1Y3R1cmUuDQogICAoQ29udHJpYnV0ZWQgYnkgUmF5bW9uZCBIZXR0aW5n ZXIuKQ0KIA0KLSogQSA6ZnVuYzpgZ2V0X2RhdGFgIGZ1bmN0aW9uIHdhcyBhZGRlZCB0byB0aGUg Om1vZDpgcGtndXRpbGANCisqIEEgOmZ1bmM6YH5wa2d1dGlsLmdldF9kYXRhYCBmdW5jdGlvbiB3 YXMgYWRkZWQgdG8gdGhlIDptb2Q6YHBrZ3V0aWxgDQogICBtb2R1bGUgdGhhdCByZXR1cm5zIHRo ZSBjb250ZW50cyBvZiByZXNvdXJjZSBmaWxlcyBpbmNsdWRlZA0KICAgd2l0aCBhbiBpbnN0YWxs ZWQgUHl0aG9uIHBhY2thZ2UuICBGb3IgZXhhbXBsZTo6DQogDQpAQCAtMjI0NywyMiArMjI1MSwy MiBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxs IHRoZSBkZXRhaWxzLg0KIA0KICAgKENvbnRyaWJ1dGVkIGJ5IFBhdWwgTW9vcmU7IDppc3N1ZTpg MjQzOWAuKQ0KIA0KLSogVGhlIDptb2Q6YHB5ZXhwYXRgIG1vZHVsZSdzIDpjbGFzczpgUGFyc2Vy YCBvYmplY3RzIG5vdyBhbGxvdyBzZXR0aW5nDQotICB0aGVpciA6YXR0cjpgYnVmZmVyX3NpemVg IGF0dHJpYnV0ZSB0byBjaGFuZ2UgdGhlIHNpemUgb2YgdGhlIGJ1ZmZlcg0KKyogVGhlIDptb2Q6 YCFweWV4cGF0YCBtb2R1bGUncyA6Y2xhc3M6YCFQYXJzZXJgIG9iamVjdHMgbm93IGFsbG93IHNl dHRpbmcNCisgIHRoZWlyIDphdHRyOmAhYnVmZmVyX3NpemVgIGF0dHJpYnV0ZSB0byBjaGFuZ2Ug dGhlIHNpemUgb2YgdGhlIGJ1ZmZlcg0KICAgdXNlZCB0byBob2xkIGNoYXJhY3RlciBkYXRhLg0K ICAgKENvbnRyaWJ1dGVkIGJ5IEFjaGltIEdhZWRrZTsgOmlzc3VlOmAxMTM3YC4pDQogDQotKiBU aGUgOm1vZDpgUXVldWVgIG1vZHVsZSBub3cgcHJvdmlkZXMgcXVldWUgdmFyaWFudHMgdGhhdCBy ZXRyaWV2ZSBlbnRyaWVzDQotICBpbiBkaWZmZXJlbnQgb3JkZXJzLiAgVGhlIDpjbGFzczpgUHJp b3JpdHlRdWV1ZWAgY2xhc3Mgc3RvcmVzDQorKiBUaGUgOm1vZDpgcXVldWVgIG1vZHVsZSBub3cg cHJvdmlkZXMgcXVldWUgdmFyaWFudHMgdGhhdCByZXRyaWV2ZSBlbnRyaWVzDQorICBpbiBkaWZm ZXJlbnQgb3JkZXJzLiAgVGhlIDpjbGFzczpgfnF1ZXVlLlByaW9yaXR5UXVldWVgIGNsYXNzIHN0 b3Jlcw0KICAgcXVldWVkIGl0ZW1zIGluIGEgaGVhcCBhbmQgcmV0cmlldmVzIHRoZW0gaW4gcHJp b3JpdHkgb3JkZXIsDQotICBhbmQgOmNsYXNzOmBMaWZvUXVldWVgIHJldHJpZXZlcyB0aGUgbW9z dCByZWNlbnRseSBhZGRlZCBlbnRyaWVzIGZpcnN0LA0KKyAgYW5kIDpjbGFzczpgfnF1ZXVlLkxp Zm9RdWV1ZWAgcmV0cmlldmVzIHRoZSBtb3N0IHJlY2VudGx5IGFkZGVkIGVudHJpZXMgZmlyc3Qs DQogICBtZWFuaW5nIHRoYXQgaXQgYmVoYXZlcyBsaWtlIGEgc3RhY2suDQogICAoQ29udHJpYnV0 ZWQgYnkgUmF5bW9uZCBIZXR0aW5nZXIuKQ0KIA0KLSogVGhlIDptb2Q6YHJhbmRvbWAgbW9kdWxl J3MgOmNsYXNzOmBSYW5kb21gIG9iamVjdHMgY2FuDQorKiBUaGUgOm1vZDpgcmFuZG9tYCBtb2R1 bGUncyA6Y2xhc3M6YH5yYW5kb20uUmFuZG9tYCBvYmplY3RzIGNhbg0KICAgbm93IGJlIHBpY2ts ZWQgb24gYSAzMi1iaXQgc3lzdGVtIGFuZCB1bnBpY2tsZWQgb24gYSA2NC1iaXQNCiAgIHN5c3Rl bSwgYW5kIHZpY2UgdmVyc2EuICBVbmZvcnR1bmF0ZWx5LCB0aGlzIGNoYW5nZSBhbHNvIG1lYW5z DQotICB0aGF0IFB5dGhvbiAyLjYncyA6Y2xhc3M6YFJhbmRvbWAgb2JqZWN0cyBjYW4ndCBiZSB1 bnBpY2tsZWQgY29ycmVjdGx5DQorICB0aGF0IFB5dGhvbiAyLjYncyA6Y2xhc3M6YH5yYW5kb20u UmFuZG9tYCBvYmplY3RzIGNhbid0IGJlIHVucGlja2xlZCBjb3JyZWN0bHkNCiAgIG9uIGVhcmxp ZXIgdmVyc2lvbnMgb2YgUHl0aG9uLg0KICAgKENvbnRyaWJ1dGVkIGJ5IFNoYXduIExpZ29ja2k7 IDppc3N1ZTpgMTcyNzc4MGAuKQ0KIA0KQEAgLTIyODUsMTEgKzIyODksMTEgQEAgY2hhbmdlcywg b3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4N CiAgIChDb250cmlidXRlZCBieSBHdWlkbyB2YW4gUm9zc3VtIGZyb20gd29yayBmb3IgR29vZ2xl IEFwcCBFbmdpbmU7DQogICA6aXNzdWU6YDM0ODdgLikNCiANCi0qIFRoZSA6bW9kOmBybGNvbXBs ZXRlcmAgbW9kdWxlJ3MgOm1ldGg6YENvbXBsZXRlci5jb21wbGV0ZWAgbWV0aG9kDQorKiBUaGUg Om1vZDpgcmxjb21wbGV0ZXJgIG1vZHVsZSdzIDptZXRoOmB+cmxjb21wbGV0ZXIuQ29tcGxldGVy LmNvbXBsZXRlYCBtZXRob2QNCiAgIHdpbGwgbm93IGlnbm9yZSBleGNlcHRpb25zIHRyaWdnZXJl ZCB3aGlsZSBldmFsdWF0aW5nIGEgbmFtZS4NCiAgIChGaXhlZCBieSBMb3JlbnogUXVhY2s7IDpp c3N1ZTpgMjI1MGAuKQ0KIA0KLSogVGhlIDptb2Q6YHNjaGVkYCBtb2R1bGUncyA6Y2xhc3M6YHNj aGVkdWxlcmAgaW5zdGFuY2VzIG5vdw0KKyogVGhlIDptb2Q6YHNjaGVkYCBtb2R1bGUncyA6Y2xh c3M6YH5zY2hlZC5zY2hlZHVsZXJgIGluc3RhbmNlcyBub3cNCiAgIGhhdmUgYSByZWFkLW9ubHkg OmF0dHI6YHF1ZXVlYCBhdHRyaWJ1dGUgdGhhdCByZXR1cm5zIHRoZQ0KICAgY29udGVudHMgb2Yg dGhlIHNjaGVkdWxlcidzIHF1ZXVlLCByZXByZXNlbnRlZCBhcyBhIGxpc3Qgb2YNCiAgIG5hbWVk IHR1cGxlcyB3aXRoIHRoZSBmaWVsZHMgYGAodGltZSwgcHJpb3JpdHksIGFjdGlvbiwgYXJndW1l bnQpYGAuDQpAQCAtMjI5Nyw3ICsyMzAxLDcgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRo ZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiANCiAqIFRoZSA6bW9kOmBz ZWxlY3RgIG1vZHVsZSBub3cgaGFzIHdyYXBwZXIgZnVuY3Rpb25zDQogICBmb3IgdGhlIExpbnV4 IDpjOmZ1bmM6YCFlcG9sbGAgYW5kIEJTRCA6YzpmdW5jOmAha3F1ZXVlYCBzeXN0ZW0gY2FsbHMu DQotICA6bWV0aDpgbW9kaWZ5YCBtZXRob2Qgd2FzIGFkZGVkIHRvIHRoZSBleGlzdGluZyA6Y2xh c3M6YHBvbGxgDQorICA6bWV0aDpgfnNlbGVjdC5wb2xsLm1vZGlmeWAgbWV0aG9kIHdhcyBhZGRl ZCB0byB0aGUgZXhpc3RpbmcgYGBwb2xsYGANCiAgIG9iamVjdHM7IGBgcG9sbG9iai5tb2RpZnko ZmQsIGV2ZW50bWFzaylgYCB0YWtlcyBhIGZpbGUgZGVzY3JpcHRvcg0KICAgb3IgZmlsZSBvYmpl Y3QgYW5kIGFuIGV2ZW50IG1hc2ssIG1vZGlmeWluZyB0aGUgcmVjb3JkZWQgZXZlbnQgbWFzaw0K ICAgZm9yIHRoYXQgZmlsZS4NCkBAIC0yMzA4LDggKzIzMTIsOCBAQCBjaGFuZ2VzLCBvciBsb29r IHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KICAgYW5k IGEgbGlzdCBvZiB0aGUgZGlyZWN0b3J5J3MgY29udGVudHMsIGFuZCByZXR1cm5zIGEgbGlzdCBv ZiBuYW1lcyB0aGF0DQogICB3aWxsIGJlIGlnbm9yZWQsIG5vdCBjb3BpZWQuDQogDQotICBUaGUg Om1vZDpgc2h1dGlsYCBtb2R1bGUgYWxzbyBwcm92aWRlcyBhbiA6ZnVuYzpgaWdub3JlX3BhdHRl cm5zYA0KLSAgZnVuY3Rpb24gZm9yIHVzZSB3aXRoIHRoaXMgbmV3IHBhcmFtZXRlci4gIDpmdW5j OmBpZ25vcmVfcGF0dGVybnNgDQorICBUaGUgOm1vZDpgc2h1dGlsYCBtb2R1bGUgYWxzbyBwcm92 aWRlcyBhbiA6ZnVuYzpgfnNodXRpbC5pZ25vcmVfcGF0dGVybnNgDQorICBmdW5jdGlvbiBmb3Ig dXNlIHdpdGggdGhpcyBuZXcgcGFyYW1ldGVyLiAgOmZ1bmM6YH5zaHV0aWwuaWdub3JlX3BhdHRl cm5zYA0KICAgdGFrZXMgYW4gYXJiaXRyYXJ5IG51bWJlciBvZiBnbG9iLXN0eWxlIHBhdHRlcm5z IGFuZCByZXR1cm5zIGENCiAgIGNhbGxhYmxlIHRoYXQgd2lsbCBpZ25vcmUgYW55IGZpbGVzIGFu ZCBkaXJlY3RvcmllcyB0aGF0IG1hdGNoIGFueQ0KICAgb2YgdGhlc2UgcGF0dGVybnMuICBUaGUg Zm9sbG93aW5nIGV4YW1wbGUgY29waWVzIGEgZGlyZWN0b3J5IHRyZWUsDQpAQCAtMjMzMyw3ICsy MzM3LDcgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9y IGFsbCB0aGUgZGV0YWlscy4NCiANCiAgIEV2ZW50IGxvb3BzIHdpbGwgdXNlIHRoaXMgYnkgb3Bl bmluZyBhIHBpcGUgdG8gY3JlYXRlIHR3byBkZXNjcmlwdG9ycywNCiAgIG9uZSBmb3IgcmVhZGlu ZyBhbmQgb25lIGZvciB3cml0aW5nLiAgVGhlIHdyaXRhYmxlIGRlc2NyaXB0b3INCi0gIHdpbGwg YmUgcGFzc2VkIHRvIDpmdW5jOmBzZXRfd2FrZXVwX2ZkYCwgYW5kIHRoZSByZWFkYWJsZSBkZXNj cmlwdG9yDQorICB3aWxsIGJlIHBhc3NlZCB0byA6ZnVuYzpgfnNpZ25hbC5zZXRfd2FrZXVwX2Zk YCwgYW5kIHRoZSByZWFkYWJsZSBkZXNjcmlwdG9yDQogICB3aWxsIGJlIGFkZGVkIHRvIHRoZSBs aXN0IG9mIGRlc2NyaXB0b3JzIG1vbml0b3JlZCBieSB0aGUgZXZlbnQgbG9vcCB2aWENCiAgIDpj OmZ1bmM6YCFzZWxlY3RgIG9yIDpjOmZ1bmM6YCFwb2xsYC4NCiAgIE9uIHJlY2VpdmluZyBhIHNp Z25hbCwgYSBieXRlIHdpbGwgYmUgd3JpdHRlbiBhbmQgdGhlIG1haW4gZXZlbnQgbG9vcA0KQEAg LTIzNDEsMjAgKzIzNDUsMjAgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJz aW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiANCiAgIChDb250cmlidXRlZCBieSBBZGFt IE9sc2VuOyA6aXNzdWU6YDE1ODNgLikNCiANCi0gIFRoZSA6ZnVuYzpgc2lnaW50ZXJydXB0YCBm dW5jdGlvbiBpcyBub3cgYXZhaWxhYmxlIGZyb20gUHl0aG9uIGNvZGUsDQorICBUaGUgOmZ1bmM6 YH5zaWduYWwuc2lnaW50ZXJydXB0YCBmdW5jdGlvbiBpcyBub3cgYXZhaWxhYmxlIGZyb20gUHl0 aG9uIGNvZGUsDQogICBhbmQgYWxsb3dzIGNoYW5naW5nIHdoZXRoZXIgc2lnbmFscyBjYW4gaW50 ZXJydXB0IHN5c3RlbSBjYWxscyBvciBub3QuDQogICAoQ29udHJpYnV0ZWQgYnkgUmFsZiBTY2ht aXR0LikNCiANCi0gIFRoZSA6ZnVuYzpgc2V0aXRpbWVyYCBhbmQgOmZ1bmM6YGdldGl0aW1lcmAg ZnVuY3Rpb25zIGhhdmUgYWxzbyBiZWVuDQotICBhZGRlZCAod2hlcmUgdGhleSdyZSBhdmFpbGFi bGUpLiAgOmZ1bmM6YHNldGl0aW1lcmANCisgIFRoZSA6ZnVuYzpgfnNpZ25hbC5zZXRpdGltZXJg IGFuZCA6ZnVuYzpgfnNpZ25hbC5nZXRpdGltZXJgIGZ1bmN0aW9ucyBoYXZlIGFsc28gYmVlbg0K KyAgYWRkZWQgKHdoZXJlIHRoZXkncmUgYXZhaWxhYmxlKS4gIDpmdW5jOmB+c2lnbmFsLnNldGl0 aW1lcmANCiAgIGFsbG93cyBzZXR0aW5nIGludGVydmFsIHRpbWVycyB0aGF0IHdpbGwgY2F1c2Ug YSBzaWduYWwgdG8gYmUNCiAgIGRlbGl2ZXJlZCB0byB0aGUgcHJvY2VzcyBhZnRlciBhIHNwZWNp ZmllZCB0aW1lLCBtZWFzdXJlZCBpbg0KICAgd2FsbC1jbG9jayB0aW1lLCBjb25zdW1lZCBwcm9j ZXNzIHRpbWUsIG9yIGNvbWJpbmVkIHByb2Nlc3Mrc3lzdGVtDQogICB0aW1lLiAgKENvbnRyaWJ1 dGVkIGJ5IEd1aWxoZXJtZSBQb2xvOyA6aXNzdWU6YDIyNDBgLikNCiANCiAqIFRoZSA6bW9kOmBz bXRwbGliYCBtb2R1bGUgbm93IHN1cHBvcnRzIFNNVFAgb3ZlciBTU0wgdGhhbmtzIHRvIHRoZQ0K LSAgYWRkaXRpb24gb2YgdGhlIDpjbGFzczpgU01UUF9TU0xgIGNsYXNzLiBUaGlzIGNsYXNzIHN1 cHBvcnRzIGFuDQotICBpbnRlcmZhY2UgaWRlbnRpY2FsIHRvIHRoZSBleGlzdGluZyA6Y2xhc3M6 YFNNVFBgIGNsYXNzLg0KKyAgYWRkaXRpb24gb2YgdGhlIDpjbGFzczpgfnNtdHBsaWIuU01UUF9T U0xgIGNsYXNzLiBUaGlzIGNsYXNzIHN1cHBvcnRzIGFuDQorICBpbnRlcmZhY2UgaWRlbnRpY2Fs IHRvIHRoZSBleGlzdGluZyA6Y2xhc3M6YH5zbXRwbGliLlNNVFBgIGNsYXNzLg0KICAgKENvbnRy aWJ1dGVkIGJ5IE1vbnR5IFRheWxvci4pICBCb3RoIGNsYXNzIGNvbnN0cnVjdG9ycyBhbHNvIGhh dmUgYW4NCiAgIG9wdGlvbmFsIGBgdGltZW91dGBgIHBhcmFtZXRlciB0aGF0IHNwZWNpZmllcyBh IHRpbWVvdXQgZm9yIHRoZQ0KICAgaW5pdGlhbCBjb25uZWN0aW9uIGF0dGVtcHQsIG1lYXN1cmVk IGluIHNlY29uZHMuICAoQ29udHJpYnV0ZWQgYnkNCkBAIC0yMzY1LDcgKzIzNjksNyBAQCBjaGFu Z2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRh aWxzLg0KICAgZS1tYWlsIGJldHdlZW4gYWdlbnRzIHRoYXQgZG9uJ3QgbWFuYWdlIGEgbWFpbCBx dWV1ZS4gIChMTVRQDQogICBpbXBsZW1lbnRlZCBieSBMZWlmIEhlZHN0cm9tOyA6aXNzdWU6YDk1 NzAwM2AuKQ0KIA0KLSAgOm1ldGg6YFNNVFAuc3RhcnR0bHNgIG5vdyBjb21wbGllcyB3aXRoIDpy ZmM6YDMyMDdgIGFuZCBmb3JnZXRzIGFueQ0KKyAgOm1ldGg6YHNtdHBsaWIuU01UUC5zdGFydHRs c2Agbm93IGNvbXBsaWVzIHdpdGggOnJmYzpgMzIwN2AgYW5kIGZvcmdldHMgYW55DQogICBrbm93 bGVkZ2Ugb2J0YWluZWQgZnJvbSB0aGUgc2VydmVyIG5vdCBvYnRhaW5lZCBmcm9tIHRoZSBUTFMN CiAgIG5lZ290aWF0aW9uIGl0c2VsZi4gIChQYXRjaCBjb250cmlidXRlZCBieSBCaWxsIEZlbm5l cjsNCiAgIDppc3N1ZTpgODI5OTUxYC4pDQpAQCAtMjM3NSwxMSArMjM3OSwxMSBAQCBjaGFuZ2Vz LCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxz Lg0KICAgZW52aXJvbm1lbnRzLiAgVElQQyBhZGRyZXNzZXMgYXJlIDQtIG9yIDUtdHVwbGVzLg0K ICAgKENvbnRyaWJ1dGVkIGJ5IEFsYmVydG8gQmVydG9nbGk7IDppc3N1ZTpgMTY0NmAuKQ0KIA0K LSAgQSBuZXcgZnVuY3Rpb24sIDpmdW5jOmBjcmVhdGVfY29ubmVjdGlvbmAsIHRha2VzIGFuIGFk ZHJlc3MgYW5kDQorICBBIG5ldyBmdW5jdGlvbiwgOmZ1bmM6YH5zb2NrZXQuY3JlYXRlX2Nvbm5l Y3Rpb25gLCB0YWtlcyBhbiBhZGRyZXNzIGFuZA0KICAgY29ubmVjdHMgdG8gaXQgdXNpbmcgYW4g b3B0aW9uYWwgdGltZW91dCB2YWx1ZSwgcmV0dXJuaW5nIHRoZQ0KICAgY29ubmVjdGVkIHNvY2tl dCBvYmplY3QuICBUaGlzIGZ1bmN0aW9uIGFsc28gbG9va3MgdXAgdGhlIGFkZHJlc3Mncw0KICAg dHlwZSBhbmQgY29ubmVjdHMgdG8gaXQgdXNpbmcgSVB2NCBvciBJUHY2IGFzIGFwcHJvcHJpYXRl LiAgQ2hhbmdpbmcNCi0gIHlvdXIgY29kZSB0byB1c2UgOmZ1bmM6YGNyZWF0ZV9jb25uZWN0aW9u YCBpbnN0ZWFkIG9mDQorICB5b3VyIGNvZGUgdG8gdXNlIDpmdW5jOmB+c29ja2V0LmNyZWF0ZV9j b25uZWN0aW9uYCBpbnN0ZWFkIG9mDQogICBgYHNvY2tldChzb2NrZXQuQUZfSU5FVCwgLi4uKWBg IG1heSBiZSBhbGwgdGhhdCdzIHJlcXVpcmVkIHRvIG1ha2UNCiAgIHlvdXIgY29kZSB3b3JrIHdp dGggSVB2Ni4NCiANCkBAIC0yNDA3LDE1ICsyNDExLDE1IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhy b3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogICA6YzpmdW5j OmAhVGVybWluYXRlUHJvY2Vzc2AuDQogICAoQ29udHJpYnV0ZWQgYnkgQ2hyaXN0aWFuIEhlaW1l cy4pDQogDQotKiBBIG5ldyB2YXJpYWJsZSBpbiB0aGUgOm1vZDpgc3lzYCBtb2R1bGUsIDphdHRy OmBmbG9hdF9pbmZvYCwgaXMgYW4NCisqIEEgbmV3IHZhcmlhYmxlIGluIHRoZSA6bW9kOmBzeXNg IG1vZHVsZSwgOmRhdGE6YH5zeXMuZmxvYXRfaW5mb2AsIGlzIGFuDQogICBvYmplY3QgY29udGFp bmluZyBpbmZvcm1hdGlvbiBkZXJpdmVkIGZyb20gdGhlIDpmaWxlOmBmbG9hdC5oYCBmaWxlDQog ICBhYm91dCB0aGUgcGxhdGZvcm0ncyBmbG9hdGluZy1wb2ludCBzdXBwb3J0LiAgQXR0cmlidXRl cyBvZiB0aGlzDQotICBvYmplY3QgaW5jbHVkZSA6YXR0cjpgbWFudF9kaWdgIChudW1iZXIgb2Yg ZGlnaXRzIGluIHRoZSBtYW50aXNzYSksDQotICA6YXR0cjpgZXBzaWxvbmAgKHNtYWxsZXN0IGRp ZmZlcmVuY2UgYmV0d2VlbiAxLjAgYW5kIHRoZSBuZXh0DQorICBvYmplY3QgaW5jbHVkZSA6YXR0 cjpgfnN5cy5mbG9hdF9pbmZvLm1hbnRfZGlnYCAobnVtYmVyIG9mIGRpZ2l0cyBpbiB0aGUgbWFu dGlzc2EpLA0KKyAgOmF0dHI6YH5zeXMuZmxvYXRfaW5mby5lcHNpbG9uYCAoc21hbGxlc3QgZGlm ZmVyZW5jZSBiZXR3ZWVuIDEuMCBhbmQgdGhlIG5leHQNCiAgIGxhcmdlc3QgdmFsdWUgcmVwcmVz ZW50YWJsZSksIGFuZCBzZXZlcmFsIG90aGVycy4gIChDb250cmlidXRlZCBieQ0KICAgQ2hyaXN0 aWFuIEhlaW1lczsgOmlzc3VlOmAxNTM0YC4pDQogDQotICBBbm90aGVyIG5ldyB2YXJpYWJsZSwg OmF0dHI6YGRvbnRfd3JpdGVfYnl0ZWNvZGVgLCBjb250cm9scyB3aGV0aGVyIFB5dGhvbg0KKyAg QW5vdGhlciBuZXcgdmFyaWFibGUsIDpkYXRhOmB+c3lzLmRvbnRfd3JpdGVfYnl0ZWNvZGVgLCBj b250cm9scyB3aGV0aGVyIFB5dGhvbg0KICAgd3JpdGVzIGFueSA6ZmlsZTpgLnB5Y2Agb3IgOmZp bGU6YC5weW9gIGZpbGVzIG9uIGltcG9ydGluZyBhIG1vZHVsZS4NCiAgIElmIHRoaXMgdmFyaWFi bGUgaXMgdHJ1ZSwgdGhlIGNvbXBpbGVkIGZpbGVzIGFyZSBub3Qgd3JpdHRlbi4gIFRoZQ0KICAg dmFyaWFibGUgaXMgaW5pdGlhbGx5IHNldCBvbiBzdGFydC11cCBieSBzdXBwbHlpbmcgdGhlIDpv cHRpb246YC1CYA0KQEAgLTI0MjgsMTYgKzI0MzIsMTYgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJv dWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiANCiAgIEluZm9y bWF0aW9uIGFib3V0IHRoZSBjb21tYW5kLWxpbmUgYXJndW1lbnRzIHN1cHBsaWVkIHRvIHRoZSBQ eXRob24NCiAgIGludGVycHJldGVyIGlzIGF2YWlsYWJsZSBieSByZWFkaW5nIGF0dHJpYnV0ZXMg b2YgYSBuYW1lZA0KLSAgdHVwbGUgYXZhaWxhYmxlIGFzIGBgc3lzLmZsYWdzYGAuICBGb3IgZXhh bXBsZSwgdGhlIDphdHRyOmB2ZXJib3NlYA0KKyAgdHVwbGUgYXZhaWxhYmxlIGFzIGBgc3lzLmZs YWdzYGAuICBGb3IgZXhhbXBsZSwgdGhlIDphdHRyOmB+c3lzLmZsYWdzLnZlcmJvc2VgDQogICBh dHRyaWJ1dGUgaXMgdHJ1ZSBpZiBQeXRob24NCi0gIHdhcyBleGVjdXRlZCBpbiB2ZXJib3NlIG1v ZGUsIDphdHRyOmBkZWJ1Z2AgaXMgdHJ1ZSBpbiBkZWJ1Z2dpbmcgbW9kZSwgZXRjLg0KKyAgd2Fz IGV4ZWN1dGVkIGluIHZlcmJvc2UgbW9kZSwgOmF0dHI6YH5zeXMuZmxhZ3MuZGVidWdgIGlzIHRy dWUgaW4gZGVidWdnaW5nIG1vZGUsIGV0Yy4NCiAgIFRoZXNlIGF0dHJpYnV0ZXMgYXJlIGFsbCBy ZWFkLW9ubHkuDQogICAoQ29udHJpYnV0ZWQgYnkgQ2hyaXN0aWFuIEhlaW1lcy4pDQogDQotICBB IG5ldyBmdW5jdGlvbiwgOmZ1bmM6YGdldHNpemVvZmAsIHRha2VzIGEgUHl0aG9uIG9iamVjdCBh bmQgcmV0dXJucw0KKyAgQSBuZXcgZnVuY3Rpb24sIDpmdW5jOmB+c3lzLmdldHNpemVvZmAsIHRh a2VzIGEgUHl0aG9uIG9iamVjdCBhbmQgcmV0dXJucw0KICAgdGhlIGFtb3VudCBvZiBtZW1vcnkg dXNlZCBieSB0aGUgb2JqZWN0LCBtZWFzdXJlZCBpbiBieXRlcy4gIEJ1aWx0LWluDQogICBvYmpl Y3RzIHJldHVybiBjb3JyZWN0IHJlc3VsdHM7IHRoaXJkLXBhcnR5IGV4dGVuc2lvbnMgbWF5IG5v dCwNCi0gIGJ1dCBjYW4gZGVmaW5lIGEgOm1ldGg6YF9fc2l6ZW9mX19gIG1ldGhvZCB0byByZXR1 cm4gdGhlDQorICBidXQgY2FuIGRlZmluZSBhIDptZXRoOmAhX19zaXplb2ZfX2AgbWV0aG9kIHRv IHJldHVybiB0aGUNCiAgIG9iamVjdCdzIHNpemUuDQogICAoQ29udHJpYnV0ZWQgYnkgUm9iZXJ0 IFNjaHVwcGVuaWVzOyA6aXNzdWU6YDI4OThgLikNCiANCkBAIC0yNDYxLDEyICsyNDY1LDEyIEBA IGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhl IGRldGFpbHMuDQogICB0aGVpciBVVEYtOCByZXByZXNlbnRhdGlvbi4gIChDaGFyYWN0ZXIgY29u dmVyc2lvbnMgb2NjdXIgYmVjYXVzZSB0aGUNCiAgIFBBWCBmb3JtYXQgc3VwcG9ydHMgVW5pY29k ZSBmaWxlbmFtZXMsIGRlZmF1bHRpbmcgdG8gVVRGLTggZW5jb2RpbmcuKQ0KIA0KLSAgVGhlIDpt ZXRoOmBUYXJGaWxlLmFkZGAgbWV0aG9kIG5vdyBhY2NlcHRzIGFuIGBgZXhjbHVkZWBgIGFyZ3Vt ZW50IHRoYXQncw0KKyAgVGhlIDptZXRoOmB0YXJmaWxlLlRhckZpbGUuYWRkYCBtZXRob2Qgbm93 IGFjY2VwdHMgYW4gYGBleGNsdWRlYGAgYXJndW1lbnQgdGhhdCdzDQogICBhIGZ1bmN0aW9uIHRo YXQgY2FuIGJlIHVzZWQgdG8gZXhjbHVkZSBjZXJ0YWluIGZpbGVuYW1lcyBmcm9tDQogICBhbiBh cmNoaXZlLg0KICAgVGhlIGZ1bmN0aW9uIG11c3QgdGFrZSBhIGZpbGVuYW1lIGFuZCByZXR1cm4g dHJ1ZSBpZiB0aGUgZmlsZQ0KICAgc2hvdWxkIGJlIGV4Y2x1ZGVkIG9yIGZhbHNlIGlmIGl0IHNo b3VsZCBiZSBhcmNoaXZlZC4NCi0gIFRoZSBmdW5jdGlvbiBpcyBhcHBsaWVkIHRvIGJvdGggdGhl IG5hbWUgaW5pdGlhbGx5IHBhc3NlZCB0byA6bWV0aDpgYWRkYA0KKyAgVGhlIGZ1bmN0aW9uIGlz IGFwcGxpZWQgdG8gYm90aCB0aGUgbmFtZSBpbml0aWFsbHkgcGFzc2VkIHRvIDptZXRoOmB+dGFy ZmlsZS5UYXJGaWxlLmFkZGANCiAgIGFuZCB0byB0aGUgbmFtZXMgb2YgZmlsZXMgaW4gcmVjdXJz aXZlbHkgYWRkZWQgZGlyZWN0b3JpZXMuDQogDQogICAoQWxsIGNoYW5nZXMgY29udHJpYnV0ZWQg YnkgTGFycyBHdXN0w6RiZWwpLg0KQEAgLTI0ODAsMTIgKzI0ODQsMTMgQEAgY2hhbmdlcywgb3Ig bG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiAg IGJlaGF2aW91ciBjYW4gbm93IGJlIGNoYW5nZWQgYnkgcGFzc2luZyBgYGRlbGV0ZT1GYWxzZWBg IHRvIHRoZQ0KICAgY29uc3RydWN0b3IuICAoQ29udHJpYnV0ZWQgYnkgRGFtaWVuIE1pbGxlcjsg Omlzc3VlOmAxNTM3ODUwYC4pDQogDQotICBBIG5ldyBjbGFzcywgOmNsYXNzOmBTcG9vbGVkVGVt cG9yYXJ5RmlsZWAsIGJlaGF2ZXMgbGlrZQ0KKyAgQSBuZXcgY2xhc3MsIDpjbGFzczpgfnRlbXBm aWxlLlNwb29sZWRUZW1wb3JhcnlGaWxlYCwgYmVoYXZlcyBsaWtlDQogICBhIHRlbXBvcmFyeSBm aWxlIGJ1dCBzdG9yZXMgaXRzIGRhdGEgaW4gbWVtb3J5IHVudGlsIGEgbWF4aW11bSBzaXplIGlz DQogICBleGNlZWRlZC4gIE9uIHJlYWNoaW5nIHRoYXQgbGltaXQsIHRoZSBjb250ZW50cyB3aWxs IGJlIHdyaXR0ZW4gdG8NCiAgIGFuIG9uLWRpc2sgdGVtcG9yYXJ5IGZpbGUuICAoQ29udHJpYnV0 ZWQgYnkgRHVzdGluIEouIE1pdGNoZWxsLikNCiANCi0gIFRoZSA6Y2xhc3M6YE5hbWVkVGVtcG9y YXJ5RmlsZWAgYW5kIDpjbGFzczpgU3Bvb2xlZFRlbXBvcmFyeUZpbGVgIGNsYXNzZXMNCisgIFRo ZSA6Y2xhc3M6YH50ZW1wZmlsZS5OYW1lZFRlbXBvcmFyeUZpbGVgIGFuZA0KKyAgOmNsYXNzOmB+ dGVtcGZpbGUuU3Bvb2xlZFRlbXBvcmFyeUZpbGVgIGNsYXNzZXMNCiAgIGJvdGggd29yayBhcyBj b250ZXh0IG1hbmFnZXJzLCBzbyB5b3UgY2FuIHdyaXRlDQogICBgYHdpdGggdGVtcGZpbGUuTmFt ZWRUZW1wb3JhcnlGaWxlKCkgYXMgdG1wOiAuLi5gYC4NCiAgIChDb250cmlidXRlZCBieSBBbGV4 YW5kZXIgQmVsb3BvbHNreTsgOmlzc3VlOmAyMDIxYC4pDQpAQCAtMjQ5Niw3ICsyNTAxLDcgQEAg Y2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUg ZGV0YWlscy4NCiAgIGNvbnRleHQgbWFuYWdlciB0aGF0IHRlbXBvcmFyaWx5IGNoYW5nZXMgZW52 aXJvbm1lbnQgdmFyaWFibGVzIGFuZA0KICAgYXV0b21hdGljYWxseSByZXN0b3JlcyB0aGVtIHRv IHRoZWlyIG9sZCB2YWx1ZXMuDQogDQotICBBbm90aGVyIGNvbnRleHQgbWFuYWdlciwgOmNsYXNz OmBUcmFuc2llbnRSZXNvdXJjZWAsIGNhbiBzdXJyb3VuZCBjYWxscw0KKyAgQW5vdGhlciBjb250 ZXh0IG1hbmFnZXIsIDpjbGFzczpgIVRyYW5zaWVudFJlc291cmNlYCwgY2FuIHN1cnJvdW5kIGNh bGxzDQogICB0byByZXNvdXJjZXMgdGhhdCBtYXkgb3IgbWF5IG5vdCBiZSBhdmFpbGFibGU7IGl0 IHdpbGwgY2F0Y2ggYW5kDQogICBpZ25vcmUgYSBzcGVjaWZpZWQgbGlzdCBvZiBleGNlcHRpb25z LiAgRm9yIGV4YW1wbGUsDQogICBhIG5ldHdvcmsgdGVzdCBtYXkgaWdub3JlIGNlcnRhaW4gZmFp bHVyZXMgd2hlbiBjb25uZWN0aW5nIHRvIGFuDQpAQCAtMjUwNyw5ICsyNTEyLDkgQEAgY2hhbmdl cywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWls cy4NCiAgICAgICAgICAgZiA9IHVybGxpYi51cmxvcGVuKCdodHRwczovL3NmLm5ldCcpDQogICAg ICAgICAgIC4uLg0KIA0KLSAgRmluYWxseSwgOmZ1bmM6YGNoZWNrX3dhcm5pbmdzYCByZXNldHMg dGhlIDptb2Q6YHdhcm5pbmdgIG1vZHVsZSdzDQotICB3YXJuaW5nIGZpbHRlcnMgYW5kIHJldHVy bnMgYW4gb2JqZWN0IHRoYXQgd2lsbCByZWNvcmQgYWxsIHdhcm5pbmcNCi0gIG1lc3NhZ2VzIHRy aWdnZXJlZCAoOmlzc3VlOmAzNzgxYCk6Og0KKyAgRmluYWxseSwgOmZ1bmM6YH50ZXN0LnN1cHBv cnQud2FybmluZ3NfaGVscGVyLmNoZWNrX3dhcm5pbmdzYCByZXNldHMgdGhlDQorICA6bW9kOmB3 YXJuaW5nc2AgbW9kdWxlJ3Mgd2FybmluZyBmaWx0ZXJzIGFuZCByZXR1cm5zIGFuIG9iamVjdCB0 aGF0IHdpbGwgcmVjb3JkDQorICBhbGwgd2FybmluZyBtZXNzYWdlcyB0cmlnZ2VyZWQgKDppc3N1 ZTpgMzc4MWApOjoNCiANCiAgICAgICB3aXRoIHRlc3Rfc3VwcG9ydC5jaGVja193YXJuaW5ncygp IGFzIHdyZWM6DQogICAgICAgICAgIHdhcm5pbmdzLnNpbXBsZWZpbHRlcigiYWx3YXlzIikNCkBA IC0yNTQxLDMxICsyNTQ2LDMxIEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVy c2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogICAoQ29udHJpYnV0ZWQgYnkgRHdheW5l IEJhaWxleTsgOmlzc3VlOmAxNTgxMDczYC4pDQogDQogKiBUaGUgOm1vZDpgdGhyZWFkaW5nYCBt b2R1bGUgQVBJIGlzIGJlaW5nIGNoYW5nZWQgdG8gdXNlIHByb3BlcnRpZXMNCi0gIHN1Y2ggYXMg OmF0dHI6YGRhZW1vbmAgaW5zdGVhZCBvZiA6bWV0aDpgc2V0RGFlbW9uYCBhbmQNCi0gIDptZXRo OmBpc0RhZW1vbmAgbWV0aG9kcywgYW5kIHNvbWUgbWV0aG9kcyBoYXZlIGJlZW4gcmVuYW1lZCB0 byB1c2UNCisgIHN1Y2ggYXMgOmF0dHI6YH50aHJlYWRpbmcuVGhyZWFkLmRhZW1vbmAgaW5zdGVh ZCBvZiA6bWV0aDpgIXNldERhZW1vbmAgYW5kDQorICA6bWV0aDpgIWlzRGFlbW9uYCBtZXRob2Rz LCBhbmQgc29tZSBtZXRob2RzIGhhdmUgYmVlbiByZW5hbWVkIHRvIHVzZQ0KICAgdW5kZXJzY29y ZXMgaW5zdGVhZCBvZiBjYW1lbC1jYXNlOyBmb3IgZXhhbXBsZSwgdGhlDQotICA6bWV0aDpgYWN0 aXZlQ291bnRgIG1ldGhvZCBpcyByZW5hbWVkIHRvIDptZXRoOmBhY3RpdmVfY291bnRgLiAgQm90 aA0KKyAgOm1ldGg6YCFhY3RpdmVDb3VudGAgbWV0aG9kIGlzIHJlbmFtZWQgdG8gOmZ1bmM6YH50 aHJlYWRpbmcuYWN0aXZlX2NvdW50YC4gIEJvdGgNCiAgIHRoZSAyLjYgYW5kIDMuMCB2ZXJzaW9u cyBvZiB0aGUgbW9kdWxlIHN1cHBvcnQgdGhlIHNhbWUgcHJvcGVydGllcw0KICAgYW5kIHJlbmFt ZWQgbWV0aG9kcywgYnV0IGRvbid0IHJlbW92ZSB0aGUgb2xkIG1ldGhvZHMuICBObyBkYXRlIGhh cyBiZWVuIHNldA0KICAgZm9yIHRoZSBkZXByZWNhdGlvbiBvZiB0aGUgb2xkIEFQSXMgaW4gUHl0 aG9uIDMueDsgdGhlIG9sZCBBUElzIHdvbid0DQogICBiZSByZW1vdmVkIGluIGFueSAyLnggdmVy c2lvbi4NCiAgIChDYXJyaWVkIG91dCBieSBzZXZlcmFsIHBlb3BsZSwgbW9zdCBub3RhYmx5IEJl bmphbWluIFBldGVyc29uLikNCiANCi0gIFRoZSA6bW9kOmB0aHJlYWRpbmdgIG1vZHVsZSdzIDpj bGFzczpgVGhyZWFkYCBvYmplY3RzDQotICBnYWluZWQgYW4gOmF0dHI6YGlkZW50YCBwcm9wZXJ0 eSB0aGF0IHJldHVybnMgdGhlIHRocmVhZCdzDQorICBUaGUgOm1vZDpgdGhyZWFkaW5nYCBtb2R1 bGUncyA6Y2xhc3M6YH50aHJlYWRpbmcuVGhyZWFkYCBvYmplY3RzDQorICBnYWluZWQgYW4gOmF0 dHI6YH50aHJlYWRpbmcuVGhyZWFkLmlkZW50YCBwcm9wZXJ0eSB0aGF0IHJldHVybnMgdGhlIHRo cmVhZCdzDQogICBpZGVudGlmaWVyLCBhIG5vbnplcm8gaW50ZWdlci4gIChDb250cmlidXRlZCBi eSBHcmVnb3J5IFAuIFNtaXRoOw0KICAgOmlzc3VlOmAyODcxYC4pDQogDQogKiBUaGUgOm1vZDpg dGltZWl0YCBtb2R1bGUgbm93IGFjY2VwdHMgY2FsbGFibGVzIGFzIHdlbGwgYXMgc3RyaW5ncw0K ICAgZm9yIHRoZSBzdGF0ZW1lbnQgYmVpbmcgdGltZWQgYW5kIGZvciB0aGUgc2V0dXAgY29kZS4N CiAgIFR3byBjb252ZW5pZW5jZSBmdW5jdGlvbnMgd2VyZSBhZGRlZCBmb3IgY3JlYXRpbmcNCi0g IDpjbGFzczpgVGltZXJgIGluc3RhbmNlczoNCisgIDpjbGFzczpgfnRpbWVpdC5UaW1lcmAgaW5z dGFuY2VzOg0KICAgYGByZXBlYXQoc3RtdCwgc2V0dXAsIHRpbWUsIHJlcGVhdCwgbnVtYmVyKWBg IGFuZA0KICAgYGB0aW1laXQoc3RtdCwgc2V0dXAsIHRpbWUsIG51bWJlcilgYCBjcmVhdGUgYW4g aW5zdGFuY2UgYW5kIGNhbGwNCiAgIHRoZSBjb3JyZXNwb25kaW5nIG1ldGhvZC4gKENvbnRyaWJ1 dGVkIGJ5IEVyaWsgRGVtYWluZTsNCiAgIDppc3N1ZTpgMTUzMzkwOWAuKQ0KIA0KLSogVGhlIDpt b2Q6YFRraW50ZXJgIG1vZHVsZSBub3cgYWNjZXB0cyBsaXN0cyBhbmQgdHVwbGVzIGZvciBvcHRp b25zLA0KKyogVGhlIDptb2Q6YHRraW50ZXJgIG1vZHVsZSBub3cgYWNjZXB0cyBsaXN0cyBhbmQg dHVwbGVzIGZvciBvcHRpb25zLA0KICAgc2VwYXJhdGluZyB0aGUgZWxlbWVudHMgYnkgc3BhY2Vz IGJlZm9yZSBwYXNzaW5nIHRoZSByZXN1bHRpbmcgdmFsdWUgdG8NCiAgIFRjbC9Uay4NCiAgIChD b250cmlidXRlZCBieSBHdWlsaGVybWUgUG9sbzsgOmlzc3VlOmAyOTA2YC4pDQpAQCAtMjU3NCwx MSArMjU3OSwxMSBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9n cyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KICAgR3JlZ29yIExpbmdsLiAgTmV3IGZlYXR1cmVzIGlu IHRoZSBtb2R1bGUgaW5jbHVkZToNCiANCiAgICogQmV0dGVyIGFuaW1hdGlvbiBvZiB0dXJ0bGUg bW92ZW1lbnQgYW5kIHJvdGF0aW9uLg0KLSAgKiBDb250cm9sIG92ZXIgdHVydGxlIG1vdmVtZW50 IHVzaW5nIHRoZSBuZXcgOm1ldGg6YGRlbGF5YCwNCi0gICAgOm1ldGg6YHRyYWNlcmAsIGFuZCA6 bWV0aDpgc3BlZWRgIG1ldGhvZHMuDQorICAqIENvbnRyb2wgb3ZlciB0dXJ0bGUgbW92ZW1lbnQg dXNpbmcgdGhlIG5ldyA6ZnVuYzpgfnR1cnRsZS5kZWxheWAsDQorICAgIDpmdW5jOmB+dHVydGxl LnRyYWNlcmAsIGFuZCA6ZnVuYzpgfnR1cnRsZS5zcGVlZGAgbWV0aG9kcy4NCiAgICogVGhlIGFi aWxpdHkgdG8gc2V0IG5ldyBzaGFwZXMgZm9yIHRoZSB0dXJ0bGUsIGFuZCB0bw0KICAgICBkZWZp bmUgYSBuZXcgY29vcmRpbmF0ZSBzeXN0ZW0uDQotICAqIFR1cnRsZXMgbm93IGhhdmUgYW4gOm1l dGg6YHVuZG9gIG1ldGhvZCB0aGF0IGNhbiByb2xsIGJhY2sgYWN0aW9ucy4NCisgICogVHVydGxl cyBub3cgaGF2ZSBhbiA6ZnVuYzpgfnR1cnRsZS51bmRvYCBtZXRob2QgdGhhdCBjYW4gcm9sbCBi YWNrIGFjdGlvbnMuDQogICAqIFNpbXBsZSBzdXBwb3J0IGZvciByZWFjdGluZyB0byBpbnB1dCBl dmVudHMgc3VjaCBhcyBtb3VzZSBhbmQga2V5Ym9hcmQNCiAgICAgYWN0aXZpdHksIG1ha2luZyBp dCBwb3NzaWJsZSB0byB3cml0ZSBzaW1wbGUgZ2FtZXMuDQogICAqIEEgOmZpbGU6YHR1cnRsZS5j ZmdgIGZpbGUgY2FuIGJlIHVzZWQgdG8gY3VzdG9taXplIHRoZSBzdGFydGluZyBhcHBlYXJhbmNl DQpAQCAtMjU5MCw3ICsyNTk1LDcgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2 ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiANCiAqIEFuIG9wdGlvbmFsIGBgdGlt ZW91dGBgIHBhcmFtZXRlciB3YXMgYWRkZWQgdG8gdGhlDQogICA6ZnVuYzpgdXJsbGliLnVybG9w ZW4gPHVybGxpYi5yZXF1ZXN0LnVybG9wZW4+YCBmdW5jdGlvbiBhbmQgdGhlDQotICA6Y2xhc3M6 YHVybGxpYi5mdHB3cmFwcGVyYCBjbGFzcyBjb25zdHJ1Y3RvciwgYXMgd2VsbCBhcyB0aGUNCisg IDpjbGFzczpgIXVybGxpYi5mdHB3cmFwcGVyYCBjbGFzcyBjb25zdHJ1Y3RvciwgYXMgd2VsbCBh cyB0aGUNCiAgIDpmdW5jOmB1cmxsaWIyLnVybG9wZW4gPHVybGxpYi5yZXF1ZXN0LnVybG9wZW4+ YCBmdW5jdGlvbi4gIFRoZSBwYXJhbWV0ZXIgc3BlY2lmaWVzIGEgdGltZW91dA0KICAgbWVhc3Vy ZWQgaW4gc2Vjb25kcy4gICBGb3IgZXhhbXBsZTo6DQogDQpAQCAtMjYwNywxMiArMjYxMiwxMyBA QCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRo ZSBkZXRhaWxzLg0KICAgaGFzIGJlZW4gdXBkYXRlZCB0byB2ZXJzaW9uIDUuMS4wLiAgKFVwZGF0 ZWQgYnkNCiAgIE1hcnRpbiB2b24gTMO2d2lzOyA6aXNzdWU6YDM4MTFgLikNCiANCi0qIFRoZSA6 bW9kOmB3YXJuaW5nc2AgbW9kdWxlJ3MgOmZ1bmM6YGZvcm1hdHdhcm5pbmdgIGFuZCA6ZnVuYzpg c2hvd3dhcm5pbmdgDQorKiBUaGUgOm1vZDpgd2FybmluZ3NgIG1vZHVsZSdzIDpmdW5jOmB+d2Fy bmluZ3MuZm9ybWF0d2FybmluZ2AgYW5kDQorICA6ZnVuYzpgfndhcm5pbmdzLnNob3d3YXJuaW5n YA0KICAgZ2FpbmVkIGFuIG9wdGlvbmFsICpsaW5lKiBhcmd1bWVudCB0aGF0IGNhbiBiZSB1c2Vk IHRvIHN1cHBseSB0aGUNCiAgIGxpbmUgb2Ygc291cmNlIGNvZGUuICAoQWRkZWQgYXMgcGFydCBv ZiA6aXNzdWU6YDE2MzExNzFgLCB3aGljaCByZS1pbXBsZW1lbnRlZA0KICAgcGFydCBvZiB0aGUg Om1vZDpgd2FybmluZ3NgIG1vZHVsZSBpbiBDIGNvZGUuKQ0KIA0KLSAgQSBuZXcgZnVuY3Rpb24s IDpmdW5jOmBjYXRjaF93YXJuaW5nc2AsIGlzIGEgY29udGV4dCBtYW5hZ2VyDQorICBBIG5ldyBm dW5jdGlvbiwgOmZ1bmM6YH53YXJuaW5ncy5jYXRjaF93YXJuaW5nc2AsIGlzIGEgY29udGV4dCBt YW5hZ2VyDQogICBpbnRlbmRlZCBmb3IgdGVzdGluZyBwdXJwb3NlcyB0aGF0IGxldHMgeW91IHRl bXBvcmFyaWx5IG1vZGlmeSB0aGUNCiAgIHdhcm5pbmcgZmlsdGVycyBhbmQgdGhlbiByZXN0b3Jl IHRoZWlyIG9yaWdpbmFsIHZhbHVlcyAoOmlzc3VlOmAzNzgxYCkuDQogDQpAQCAtMjYyMCwxMiAr MjYyNiwxMyBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBm b3IgYWxsIHRoZSBkZXRhaWxzLg0KICAgY2xhc3NlcyBjYW4gbm93IGJlIHByZXZlbnRlZCBmcm9t IGltbWVkaWF0ZWx5IG9wZW5pbmcgYW5kIGJpbmRpbmcgdG8NCiAgIHRoZWlyIHNvY2tldCBieSBw YXNzaW5nIGBgRmFsc2VgYCBhcyB0aGUgKmJpbmRfYW5kX2FjdGl2YXRlKg0KICAgY29uc3RydWN0 b3IgcGFyYW1ldGVyLiAgVGhpcyBjYW4gYmUgdXNlZCB0byBtb2RpZnkgdGhlIGluc3RhbmNlJ3MN Ci0gIDphdHRyOmBhbGxvd19yZXVzZV9hZGRyZXNzYCBhdHRyaWJ1dGUgYmVmb3JlIGNhbGxpbmcg dGhlDQotICA6bWV0aDpgc2VydmVyX2JpbmRgIGFuZCA6bWV0aDpgc2VydmVyX2FjdGl2YXRlYCBt ZXRob2RzIHRvDQorICA6YXR0cjpgfnNvY2tldHNlcnZlci5CYXNlU2VydmVyLmFsbG93X3JldXNl X2FkZHJlc3NgIGF0dHJpYnV0ZSBiZWZvcmUgY2FsbGluZyB0aGUNCisgIDptZXRoOmB+c29ja2V0 c2VydmVyLkJhc2VTZXJ2ZXIuc2VydmVyX2JpbmRgIGFuZA0KKyAgOm1ldGg6YH5zb2NrZXRzZXJ2 ZXIuQmFzZVNlcnZlci5zZXJ2ZXJfYWN0aXZhdGVgIG1ldGhvZHMgdG8NCiAgIG9wZW4gdGhlIHNv Y2tldCBhbmQgYmVnaW4gbGlzdGVuaW5nIGZvciBjb25uZWN0aW9ucy4NCiAgIChDb250cmlidXRl ZCBieSBQZXRlciBQYXJlbnRlOyA6aXNzdWU6YDE1OTk4NDVgLikNCiANCi0gIDpjbGFzczpgU2lt cGxlWE1MUlBDU2VydmVyYCBhbHNvIGhhcyBhIDphdHRyOmBfc2VuZF90cmFjZWJhY2tfaGVhZGVy YA0KKyAgOmNsYXNzOmB+eG1scnBjLnNlcnZlci5TaW1wbGVYTUxSUENTZXJ2ZXJgIGFsc28gaGFz IGEgOmF0dHI6YCFfc2VuZF90cmFjZWJhY2tfaGVhZGVyYA0KICAgYXR0cmlidXRlOyBpZiB0cnVl LCB0aGUgZXhjZXB0aW9uIGFuZCBmb3JtYXR0ZWQgdHJhY2ViYWNrIGFyZSByZXR1cm5lZA0KICAg YXMgSFRUUCBoZWFkZXJzICJYLUV4Y2VwdGlvbiIgYW5kICJYLVRyYWNlYmFjayIuICBUaGlzIGZl YXR1cmUgaXMNCiAgIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMgb25seSBhbmQgc2hvdWxkIG5vdCBi ZSB1c2VkIG9uIHByb2R1Y3Rpb24gc2VydmVycw0KQEAgLTI2MzcsMTQgKzI2NDQsMTUgQEAgY2hh bmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0 YWlscy4NCiAgIDpjbGFzczpgZGF0ZXRpbWUuZGF0ZWAgYW5kIDpjbGFzczpgZGF0ZXRpbWUudGlt ZWAgdG8gdGhlDQogICA6Y2xhc3M6YHhtbHJwY2xpYi5EYXRlVGltZSA8eG1scnBjLmNsaWVudC5E YXRlVGltZT5gIHR5cGU7IHRoZSBjb252ZXJzaW9uIHNlbWFudGljcyB3ZXJlDQogICBub3QgbmVj ZXNzYXJpbHkgY29ycmVjdCBmb3IgYWxsIGFwcGxpY2F0aW9ucy4gIENvZGUgdXNpbmcNCi0gIDpt b2Q6YCF4bWxycGNsaWJgIHNob3VsZCBjb252ZXJ0IDpjbGFzczpgZGF0ZWAgYW5kIDpjbGFzczpg fmRhdGV0aW1lLnRpbWVgDQorICA6bW9kOmAheG1scnBjbGliYCBzaG91bGQgY29udmVydCA6Y2xh c3M6YH5kYXRldGltZS5kYXRlYCBhbmQgOmNsYXNzOmB+ZGF0ZXRpbWUudGltZWANCiAgIGluc3Rh bmNlcy4gKDppc3N1ZTpgMTMzMDUzOGApICBUaGUgY29kZSBjYW4gYWxzbyBoYW5kbGUNCiAgIGRh dGVzIGJlZm9yZSAxOTAwIChjb250cmlidXRlZCBieSBSYWxmIFNjaG1pdHQ7IDppc3N1ZTpgMjAx NGApDQogICBhbmQgNjQtYml0IGludGVnZXJzIHJlcHJlc2VudGVkIGJ5IHVzaW5nIGBgPGk4PmBg IGluIFhNTC1SUEMgcmVzcG9uc2VzDQogICAoY29udHJpYnV0ZWQgYnkgUmlrdSBMaW5kYmxhZDsg Omlzc3VlOmAyOTg1YCkuDQogDQotKiBUaGUgOm1vZDpgemlwZmlsZWAgbW9kdWxlJ3MgOmNsYXNz OmBaaXBGaWxlYCBjbGFzcyBub3cgaGFzDQotICA6bWV0aDpgZXh0cmFjdGAgYW5kIDptZXRoOmBl eHRyYWN0YWxsYCBtZXRob2RzIHRoYXQgd2lsbCB1bnBhY2sNCisqIFRoZSA6bW9kOmB6aXBmaWxl YCBtb2R1bGUncyA6Y2xhc3M6YH56aXBmaWxlLlppcEZpbGVgIGNsYXNzIG5vdyBoYXMNCisgIDpt ZXRoOmB+emlwZmlsZS5aaXBGaWxlLmV4dHJhY3RgIGFuZCA6bWV0aDpgfnppcGZpbGUuWmlwRmls ZS5leHRyYWN0YWxsYA0KKyAgbWV0aG9kcyB0aGF0IHdpbGwgdW5wYWNrDQogICBhIHNpbmdsZSBm aWxlIG9yIGFsbCB0aGUgZmlsZXMgaW4gdGhlIGFyY2hpdmUgdG8gdGhlIGN1cnJlbnQgZGlyZWN0 b3J5LCBvcg0KICAgdG8gYSBzcGVjaWZpZWQgZGlyZWN0b3J5OjoNCiANCkBAIC0yNjU5LDggKzI2 NjcsOSBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3Ig YWxsIHRoZSBkZXRhaWxzLg0KIA0KICAgKENvbnRyaWJ1dGVkIGJ5IEFsYW4gTWNJbnR5cmU7IDpp c3N1ZTpgNDY3OTI0YC4pDQogDQotICBUaGUgOm1ldGg6YG9wZW5gLCA6bWV0aDpgcmVhZGAgYW5k IDptZXRoOmBleHRyYWN0YCBtZXRob2RzIGNhbiBub3cNCi0gIHRha2UgZWl0aGVyIGEgZmlsZW5h bWUgb3IgYSA6Y2xhc3M6YFppcEluZm9gIG9iamVjdC4gIFRoaXMgaXMgdXNlZnVsIHdoZW4gYW4N CisgIFRoZSA6bWV0aDpgfnppcGZpbGUuWmlwRmlsZS5vcGVuYCwgOm1ldGg6YH56aXBmaWxlLlpp cEZpbGUucmVhZGAgYW5kDQorICA6bWV0aDpgfnppcGZpbGUuWmlwRmlsZS5leHRyYWN0YCBtZXRo b2RzIGNhbiBub3cNCisgIHRha2UgZWl0aGVyIGEgZmlsZW5hbWUgb3IgYSA6Y2xhc3M6YH56aXBm aWxlLlppcEluZm9gIG9iamVjdC4gIFRoaXMgaXMgdXNlZnVsIHdoZW4gYW4NCiAgIGFyY2hpdmUg YWNjaWRlbnRhbGx5IGNvbnRhaW5zIGEgZHVwbGljYXRlZCBmaWxlbmFtZS4NCiAgIChDb250cmli dXRlZCBieSBHcmFoYW0gSG9ybGVyOyA6aXNzdWU6YDE3NzUwMjVgLikNCiANCkBAIC0yNjcxLDcg KzI2ODAsNyBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBm b3IgYWxsIHRoZSBkZXRhaWxzLg0KIC4uIHdob2xlIG5ldyBtb2R1bGVzIGdldCBkZXNjcmliZWQg aW4gc3Vic2VjdGlvbnMgaGVyZQ0KIA0KIFRoZSA6bW9kOmBhc3RgIG1vZHVsZQ0KLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCistLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiANCiBUaGUgOm1vZDpgYXN0 YCBtb2R1bGUgcHJvdmlkZXMgYW4gQWJzdHJhY3QgU3ludGF4IFRyZWUNCiByZXByZXNlbnRhdGlv biBvZiBQeXRob24gY29kZSwgYW5kIEFybWluIFJvbmFjaGVyDQpAQCAtMjY4MCw4ICsyNjg5LDgg QEAgY29tbW9uIHRhc2tzLiAgVGhlc2Ugd2lsbCBiZSB1c2VmdWwgZm9yIEhUTUwgdGVtcGxhdGlu Zw0KIHBhY2thZ2VzLCBjb2RlIGFuYWx5emVycywgYW5kIHNpbWlsYXIgdG9vbHMgdGhhdCBwcm9j ZXNzDQogUHl0aG9uIGNvZGUuDQogDQotVGhlIDpmdW5jOmBwYXJzZWAgZnVuY3Rpb24gdGFrZXMg YW4gZXhwcmVzc2lvbiBhbmQgcmV0dXJucyBhbiBBU1QuDQotVGhlIDpmdW5jOmBkdW1wYCBmdW5j dGlvbiBvdXRwdXRzIGEgcmVwcmVzZW50YXRpb24gb2YgYSB0cmVlLCBzdWl0YWJsZQ0KK1RoZSA6 ZnVuYzpgfmFzdC5wYXJzZWAgZnVuY3Rpb24gdGFrZXMgYW4gZXhwcmVzc2lvbiBhbmQgcmV0dXJu cyBhbiBBU1QuDQorVGhlIDpmdW5jOmB+YXN0LmR1bXBgIGZ1bmN0aW9uIG91dHB1dHMgYSByZXBy ZXNlbnRhdGlvbiBvZiBhIHRyZWUsIHN1aXRhYmxlDQogZm9yIGRlYnVnZ2luZzo6DQogDQogICAg IGltcG9ydCBhc3QNCkBAIC0yNzI3LDEzICsyNzM2LDEzIEBAIFRoaXMgb3V0cHV0cyBhIGRlZXBs eSBuZXN0ZWQgdHJlZTo6DQogICAgICAgIF0sIG5sPVRydWUpDQogICAgICBdKQ0KIA0KLVRoZSA6 ZnVuYzpgbGl0ZXJhbF9ldmFsYCBtZXRob2QgdGFrZXMgYSBzdHJpbmcgb3IgYW4gQVNUDQorVGhl IDpmdW5jOmB+YXN0LmxpdGVyYWxfZXZhbGAgbWV0aG9kIHRha2VzIGEgc3RyaW5nIG9yIGFuIEFT VA0KIHJlcHJlc2VudGluZyBhIGxpdGVyYWwgZXhwcmVzc2lvbiwgcGFyc2VzIGFuZCBldmFsdWF0 ZXMgaXQsIGFuZA0KIHJldHVybnMgdGhlIHJlc3VsdGluZyB2YWx1ZS4gIEEgbGl0ZXJhbCBleHBy ZXNzaW9uIGlzIGEgUHl0aG9uDQogZXhwcmVzc2lvbiBjb250YWluaW5nIG9ubHkgc3RyaW5ncywg bnVtYmVycywgZGljdGlvbmFyaWVzLA0KIGV0Yy4gYnV0IG5vIHN0YXRlbWVudHMgb3IgZnVuY3Rp b24gY2FsbHMuICBJZiB5b3UgbmVlZCB0bw0KIGV2YWx1YXRlIGFuIGV4cHJlc3Npb24gYnV0IGNh bm5vdCBhY2NlcHQgdGhlIHNlY3VyaXR5IHJpc2sgb2YgdXNpbmcgYW4NCi06ZnVuYzpgZXZhbGAg Y2FsbCwgOmZ1bmM6YGxpdGVyYWxfZXZhbGAgd2lsbCBoYW5kbGUgaXQgc2FmZWx5OjoNCis6ZnVu YzpgZXZhbGAgY2FsbCwgOmZ1bmM6YH5hc3QubGl0ZXJhbF9ldmFsYCB3aWxsIGhhbmRsZSBpdCBz YWZlbHk6Og0KIA0KICAgICA+Pj4gbGl0ZXJhbCA9ICcoImEiLCAiYiIsIHsyOjQsIDM6OCwgMToy fSknDQogICAgID4+PiBwcmludCBhc3QubGl0ZXJhbF9ldmFsKGxpdGVyYWwpDQpAQCAtMjc0Mywx NSArMjc1MiwxNSBAQCBldmFsdWF0ZSBhbiBleHByZXNzaW9uIGJ1dCBjYW5ub3QgYWNjZXB0IHRo ZSBzZWN1cml0eSByaXNrIG9mIHVzaW5nIGFuDQogICAgICAgLi4uDQogICAgIFZhbHVlRXJyb3I6 IG1hbGZvcm1lZCBzdHJpbmcNCiANCi1UaGUgbW9kdWxlIGFsc28gaW5jbHVkZXMgOmNsYXNzOmBO b2RlVmlzaXRvcmAgYW5kDQotOmNsYXNzOmBOb2RlVHJhbnNmb3JtZXJgIGNsYXNzZXMgZm9yIHRy YXZlcnNpbmcgYW5kIG1vZGlmeWluZyBhbiBBU1QsDQorVGhlIG1vZHVsZSBhbHNvIGluY2x1ZGVz IDpjbGFzczpgfmFzdC5Ob2RlVmlzaXRvcmAgYW5kDQorOmNsYXNzOmB+YXN0Lk5vZGVUcmFuc2Zv cm1lcmAgY2xhc3NlcyBmb3IgdHJhdmVyc2luZyBhbmQgbW9kaWZ5aW5nIGFuIEFTVCwNCiBhbmQg ZnVuY3Rpb25zIGZvciBjb21tb24gdHJhbnNmb3JtYXRpb25zIHN1Y2ggYXMgY2hhbmdpbmcgbGlu ZQ0KIG51bWJlcnMuDQogDQogLi4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIA0KIFRoZSA6bW9kOmAhZnV0dXJl X2J1aWx0aW5zYCBtb2R1bGUNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiANCiBQeXRob24gMy4wIG1h a2VzIG1hbnkgY2hhbmdlcyB0byB0aGUgcmVwZXJ0b2lyZSBvZiBidWlsdC1pbg0KIGZ1bmN0aW9u cywgYW5kIG1vc3Qgb2YgdGhlIGNoYW5nZXMgY2FuJ3QgYmUgaW50cm9kdWNlZCBpbiB0aGUgUHl0 aG9uDQpAQCAtMjc3MSwxNSArMjc4MCwxNSBAQCBUaGUgZnVuY3Rpb25zIGluIHRoaXMgbW9kdWxl IGN1cnJlbnRseSBpbmNsdWRlOg0KICAgcmV0dXJuIGl0ZXJhdG9ycywgdW5saWtlIHRoZSAyLngg YnVpbHRpbnMgd2hpY2ggcmV0dXJuIGxpc3RzLg0KIA0KICogYGBoZXgodmFsdWUpYGAsIGBgb2N0 KHZhbHVlKWBgOiBpbnN0ZWFkIG9mIGNhbGxpbmcgdGhlDQotICA6bWV0aDpgX19oZXhfX2Agb3Ig Om1ldGg6YF9fb2N0X19gIG1ldGhvZHMsIHRoZXNlIHZlcnNpb25zIHdpbGwNCi0gIGNhbGwgdGhl IDptZXRoOmBfX2luZGV4X19gIG1ldGhvZCBhbmQgY29udmVydCB0aGUgcmVzdWx0IHRvIGhleGFk ZWNpbWFsDQorICA6bWV0aDpgIV9faGV4X19gIG9yIDptZXRoOmAhX19vY3RfX2AgbWV0aG9kcywg dGhlc2UgdmVyc2lvbnMgd2lsbA0KKyAgY2FsbCB0aGUgOm1ldGg6YH5vYmplY3QuX19pbmRleF9f YCBtZXRob2QgYW5kIGNvbnZlcnQgdGhlIHJlc3VsdCB0byBoZXhhZGVjaW1hbA0KICAgb3Igb2N0 YWwuICA6ZnVuYzpgb2N0YCB3aWxsIHVzZSB0aGUgbmV3IGBgMG9gYCBub3RhdGlvbiBmb3IgaXRz DQogICByZXN1bHQuDQogDQogLi4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIA0KIFRoZSA6bW9kOmBqc29uYCBt b2R1bGU6IEphdmFTY3JpcHQgT2JqZWN0IE5vdGF0aW9uDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIA0KIFRoZSBuZXcg Om1vZDpganNvbmAgbW9kdWxlIHN1cHBvcnRzIHRoZSBlbmNvZGluZyBhbmQgZGVjb2Rpbmcgb2Yg UHl0aG9uIHR5cGVzIGluDQogSlNPTiAoSmF2YXNjcmlwdCBPYmplY3QgTm90YXRpb24pLiBKU09O IGlzIGEgbGlnaHR3ZWlnaHQgaW50ZXJjaGFuZ2UgZm9ybWF0DQpAQCAtMjg0NiwxMiArMjg1NSwx MiBAQCBVc2luZyB0aGUgbW9kdWxlIGlzIHNpbXBsZTo6DQogLi4gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIA0K IGN0eXBlcyBFbmhhbmNlbWVudHMNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KKy0tLS0tLS0tLS0tLS0tLS0tLS0NCiANCiBUaG9tYXMgSGVsbGVy IGNvbnRpbnVlZCB0byBtYWludGFpbiBhbmQgZW5oYW5jZSB0aGUNCiA6bW9kOmBjdHlwZXNgIG1v ZHVsZS4NCiANCi06bW9kOmBjdHlwZXNgIG5vdyBzdXBwb3J0cyBhIDpjbGFzczpgY19ib29sYCBk YXRhdHlwZQ0KKzptb2Q6YGN0eXBlc2Agbm93IHN1cHBvcnRzIGEgOmNsYXNzOmB+Y3R5cGVzLmNf Ym9vbGAgZGF0YXR5cGUNCiB0aGF0IHJlcHJlc2VudHMgdGhlIEM5OSBgYGJvb2xgYCB0eXBlLiAg KENvbnRyaWJ1dGVkIGJ5IERhdmlkIFJlbWFobDsNCiA6aXNzdWU6YDE2NDkxOTBgLikNCiANCkBA IC0yODYzLDExICsyODcyLDExIEBAIHdoZXJlIHZhcmlvdXMgY29tYmluYXRpb25zIG9mIGBgKHN0 YXJ0LCBzdG9wLCBzdGVwKWBgIGFyZSBzdXBwbGllZC4NCiAuLiBSZXZpc2lvbiA1Nzc2OQ0KIA0K IEFsbCA6bW9kOmBjdHlwZXNgIGRhdGEgdHlwZXMgbm93IHN1cHBvcnQNCi06bWV0aDpgZnJvbV9i dWZmZXJgIGFuZCA6bWV0aDpgZnJvbV9idWZmZXJfY29weWANCis6bWV0aDpgfmN0eXBlcy5fQ0Rh dGEuZnJvbV9idWZmZXJgIGFuZCA6bWV0aDpgfmN0eXBlcy5fQ0RhdGEuZnJvbV9idWZmZXJfY29w eWANCiBtZXRob2RzIHRoYXQgY3JlYXRlIGEgY3R5cGVzIGluc3RhbmNlIGJhc2VkIG9uIGENCi1w cm92aWRlZCBidWZmZXIgb2JqZWN0LiAgOm1ldGg6YGZyb21fYnVmZmVyX2NvcHlgIGNvcGllcw0K K3Byb3ZpZGVkIGJ1ZmZlciBvYmplY3QuICA6bWV0aDpgfmN0eXBlcy5fQ0RhdGEuZnJvbV9idWZm ZXJfY29weWAgY29waWVzDQogdGhlIGNvbnRlbnRzIG9mIHRoZSBvYmplY3QsDQotd2hpbGUgOm1l dGg6YGZyb21fYnVmZmVyYCB3aWxsIHNoYXJlIHRoZSBzYW1lIG1lbW9yeSBhcmVhLg0KK3doaWxl IDptZXRoOmB+Y3R5cGVzLl9DRGF0YS5mcm9tX2J1ZmZlcmAgd2lsbCBzaGFyZSB0aGUgc2FtZSBt ZW1vcnkgYXJlYS4NCiANCiBBIG5ldyBjYWxsaW5nIGNvbnZlbnRpb24gdGVsbHMgOm1vZDpgY3R5 cGVzYCB0byBjbGVhciB0aGUgYGBlcnJub2BgIG9yDQogV2luMzIgTGFzdEVycm9yIHZhcmlhYmxl cyBhdCB0aGUgb3V0c2V0IG9mIGVhY2ggd3JhcHBlZCBjYWxsLg0KQEAgLTI4NzUsMjQgKzI4ODQs MjQgQEAgV2luMzIgTGFzdEVycm9yIHZhcmlhYmxlcyBhdCB0aGUgb3V0c2V0IG9mIGVhY2ggd3Jh cHBlZCBjYWxsLg0KIA0KIFlvdSBjYW4gbm93IHJldHJpZXZlIHRoZSBVbml4IGBgZXJybm9gYCB2 YXJpYWJsZSBhZnRlciBhIGZ1bmN0aW9uDQogY2FsbC4gIFdoZW4gY3JlYXRpbmcgYSB3cmFwcGVk IGZ1bmN0aW9uLCB5b3UgY2FuIHN1cHBseQ0KLWBgdXNlX2Vycm5vPVRydWVgYCBhcyBhIGtleXdv cmQgcGFyYW1ldGVyIHRvIHRoZSA6ZnVuYzpgRExMYCBmdW5jdGlvbg0KLWFuZCB0aGVuIGNhbGwg dGhlIG1vZHVsZS1sZXZlbCBtZXRob2RzIDptZXRoOmBzZXRfZXJybm9gIGFuZA0KLTptZXRoOmBn ZXRfZXJybm9gIHRvIHNldCBhbmQgcmV0cmlldmUgdGhlIGVycm9yIHZhbHVlLg0KK2BgdXNlX2Vy cm5vPVRydWVgYCBhcyBhIGtleXdvcmQgcGFyYW1ldGVyIHRvIHRoZSBgYERMTGBgIGZ1bmN0aW9u DQorYW5kIHRoZW4gY2FsbCB0aGUgbW9kdWxlLWxldmVsIG1ldGhvZHMgOmZ1bmM6YH5jdHlwZXMu c2V0X2Vycm5vYCBhbmQNCis6ZnVuYzpgfmN0eXBlcy5nZXRfZXJybm9gIHRvIHNldCBhbmQgcmV0 cmlldmUgdGhlIGVycm9yIHZhbHVlLg0KIA0KIFRoZSBXaW4zMiBMYXN0RXJyb3IgdmFyaWFibGUg aXMgc2ltaWxhcmx5IHN1cHBvcnRlZCBieQ0KLXRoZSA6ZnVuYzpgRExMYCwgOmZ1bmM6YE9sZURM TGAsIGFuZCA6ZnVuYzpgV2luRExMYCBmdW5jdGlvbnMuDQordGhlIGBgRExMYGAsIDpmdW5jOmB+ Y3R5cGVzLk9sZURMTGAsIGFuZCA6ZnVuYzpgfmN0eXBlcy5XaW5ETExgIGZ1bmN0aW9ucy4NCiBZ b3Ugc3VwcGx5IGBgdXNlX2xhc3RfZXJyb3I9VHJ1ZWBgIGFzIGEga2V5d29yZCBwYXJhbWV0ZXIN Ci1hbmQgdGhlbiBjYWxsIHRoZSBtb2R1bGUtbGV2ZWwgbWV0aG9kcyA6bWV0aDpgc2V0X2xhc3Rf ZXJyb3JgDQotYW5kIDptZXRoOmBnZXRfbGFzdF9lcnJvcmAuDQorYW5kIHRoZW4gY2FsbCB0aGUg bW9kdWxlLWxldmVsIG1ldGhvZHMgOmZ1bmM6YH5jdHlwZXMuc2V0X2xhc3RfZXJyb3JgDQorYW5k IDpmdW5jOmB+Y3R5cGVzLmdldF9sYXN0X2Vycm9yYC4NCiANCi1UaGUgOmZ1bmM6YGJ5cmVmYCBm dW5jdGlvbiwgdXNlZCB0byByZXRyaWV2ZSBhIHBvaW50ZXIgdG8gYSBjdHlwZXMNCitUaGUgOmZ1 bmM6YH5jdHlwZXMuYnlyZWZgIGZ1bmN0aW9uLCB1c2VkIHRvIHJldHJpZXZlIGEgcG9pbnRlciB0 byBhIGN0eXBlcw0KIGluc3RhbmNlLCBub3cgaGFzIGFuIG9wdGlvbmFsICpvZmZzZXQqIHBhcmFt ZXRlciB0aGF0IGlzIGEgYnl0ZQ0KIGNvdW50IHRoYXQgd2lsbCBiZSBhZGRlZCB0byB0aGUgcmV0 dXJuZWQgcG9pbnRlci4NCiANCiAuLiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogDQogSW1wcm92ZWQgU1NMIFN1 cHBvcnQNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tDQogDQogQmlsbCBKYW5zc2VuIG1hZGUgZXh0ZW5zaXZl IGltcHJvdmVtZW50cyB0byBQeXRob24gMi42J3Mgc3VwcG9ydCBmb3INCiB0aGUgU2VjdXJlIFNv Y2tldHMgTGF5ZXIgYnkgYWRkaW5nIGEgbmV3IG1vZHVsZSwgOm1vZDpgc3NsYCwgdGhhdCdzDQpA QCAtMjkwNCw5ICsyOTEzLDkgQEAgaW4gdGhlIDptb2Q6YHNvY2tldGAgbW9kdWxlIGhhc24ndCBi ZWVuIHJlbW92ZWQgYW5kIGNvbnRpbnVlcyB0byB3b3JrLA0KIHRob3VnaCBpdCB3aWxsIGJlIHJl bW92ZWQgaW4gUHl0aG9uIDMuMC4NCiANCiBUbyB1c2UgdGhlIG5ldyBtb2R1bGUsIHlvdSBtdXN0 IGZpcnN0IGNyZWF0ZSBhIFRDUCBjb25uZWN0aW9uIGluIHRoZQ0KLXVzdWFsIHdheSBhbmQgdGhl biBwYXNzIGl0IHRvIHRoZSA6ZnVuYzpgc3NsLndyYXBfc29ja2V0YCBmdW5jdGlvbi4NCit1c3Vh bCB3YXkgYW5kIHRoZW4gcGFzcyBpdCB0byB0aGUgOmZ1bmM6YCFzc2wud3JhcF9zb2NrZXRgIGZ1 bmN0aW9uLg0KIEl0J3MgcG9zc2libGUgdG8gc3BlY2lmeSB3aGV0aGVyIGEgY2VydGlmaWNhdGUg aXMgcmVxdWlyZWQsIGFuZCB0bw0KLW9idGFpbiBjZXJ0aWZpY2F0ZSBpbmZvIGJ5IGNhbGxpbmcg dGhlIDptZXRoOmBnZXRwZWVyY2VydGAgbWV0aG9kLg0KK29idGFpbiBjZXJ0aWZpY2F0ZSBpbmZv IGJ5IGNhbGxpbmcgdGhlIDptZXRoOmB+c3NsLlNTTFNvY2tldC5nZXRwZWVyY2VydGAgbWV0aG9k Lg0KIA0KIC4uIHNlZWFsc286Og0KIA0KQEAgLTMwMzIsNyArMzA0MSw3IEBAIENoYW5nZXMgdG8g UHl0aG9uJ3MgYnVpbGQgcHJvY2VzcyBhbmQgdG8gdGhlIEMgQVBJIGluY2x1ZGU6DQogDQogKiBU aGUgQmVya2VsZXlEQiBtb2R1bGUgbm93IGhhcyBhIEMgQVBJIG9iamVjdCwgYXZhaWxhYmxlIGFz DQogICBgYGJzZGRiLmRiLmFwaWBgLiAgIFRoaXMgb2JqZWN0IGNhbiBiZSB1c2VkIGJ5IG90aGVy IEMgZXh0ZW5zaW9ucw0KLSAgdGhhdCB3aXNoIHRvIHVzZSB0aGUgOm1vZDpgYnNkZGJgIG1vZHVs ZSBmb3IgdGhlaXIgb3duIHB1cnBvc2VzLg0KKyAgdGhhdCB3aXNoIHRvIHVzZSB0aGUgOm1vZDpg IWJzZGRiYCBtb2R1bGUgZm9yIHRoZWlyIG93biBwdXJwb3Nlcy4NCiAgIChDb250cmlidXRlZCBi eSBEdW5jYW4gR3Jpc2J5LikNCiANCiAqIFRoZSBuZXcgYnVmZmVyIGludGVyZmFjZSwgcHJldmlv dXNseSBkZXNjcmliZWQgaW4NCkBAIC0zMDc0LDcgKzMwODMsNyBAQCBDaGFuZ2VzIHRvIFB5dGhv bidzIGJ1aWxkIHByb2Nlc3MgYW5kIHRvIHRoZSBDIEFQSSBpbmNsdWRlOg0KIA0KICogQyBmdW5j dGlvbnMgYW5kIG1ldGhvZHMgdGhhdCB1c2UNCiAgIDpjOmZ1bmM6YFB5Q29tcGxleF9Bc0NDb21w bGV4YCB3aWxsIG5vdyBhY2NlcHQgYXJndW1lbnRzIHRoYXQNCi0gIGhhdmUgYSA6bWV0aDpgX19j b21wbGV4X19gIG1ldGhvZC4gIEluIHBhcnRpY3VsYXIsIHRoZSBmdW5jdGlvbnMgaW4gdGhlDQor ICBoYXZlIGEgOm1ldGg6YH5vYmplY3QuX19jb21wbGV4X19gIG1ldGhvZC4gIEluIHBhcnRpY3Vs YXIsIHRoZSBmdW5jdGlvbnMgaW4gdGhlDQogICA6bW9kOmBjbWF0aGAgbW9kdWxlIHdpbGwgbm93 IGFjY2VwdCBvYmplY3RzIHdpdGggdGhpcyBtZXRob2QuDQogICBUaGlzIGlzIGEgYmFja3BvcnQg b2YgYSBQeXRob24gMy4wIGNoYW5nZS4NCiAgIChDb250cmlidXRlZCBieSBNYXJrIERpY2tpbnNv bjsgOmlzc3VlOmAxNjc1NDIzYC4pDQpAQCAtMzEyNyw3ICszMTM2LDcgQEAgQ2hhbmdlcyB0byBQ eXRob24ncyBidWlsZCBwcm9jZXNzIGFuZCB0byB0aGUgQyBBUEkgaW5jbHVkZToNCiAuLiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09DQogDQogUG9ydC1TcGVjaWZpYyBDaGFuZ2VzOiBXaW5kb3dzDQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCiANCiAqIFRoZSBzdXBwb3J0IGZvciBXaW5kb3dzIDk1LCA5OCwgTUUgYW5kIE5UNCBoYXMg YmVlbiBkcm9wcGVkLg0KICAgUHl0aG9uIDIuNiByZXF1aXJlcyBhdCBsZWFzdCBXaW5kb3dzIDIw MDAgU1A0Lg0KQEAgLTMxNTMsNyArMzE2Miw3IEBAIFBvcnQtU3BlY2lmaWMgQ2hhbmdlczogV2lu ZG93cw0KIA0KICogVGhlIDptb2Q6YHNvY2tldGAgbW9kdWxlJ3Mgc29ja2V0IG9iamVjdHMgbm93 IGhhdmUgYW4NCiAgIDptZXRoOmB+c29ja2V0LnNvY2tldC5pb2N0bGAgbWV0aG9kIHRoYXQgcHJv dmlkZXMgYSBsaW1pdGVkIGludGVyZmFjZSB0byB0aGUNCi0gIDpjOmZ1bmM6YFdTQUlvY3RsYCBz eXN0ZW0gaW50ZXJmYWNlLg0KKyAgOmM6ZnVuYzpgIVdTQUlvY3RsYCBzeXN0ZW0gaW50ZXJmYWNl Lg0KIA0KICogVGhlIDptb2Q6YF93aW5yZWcgPHdpbnJlZz5gIG1vZHVsZSBub3cgaGFzIGEgZnVu Y3Rpb24sDQogICA6ZnVuYzpgfndpbnJlZy5FeHBhbmRFbnZpcm9ubWVudFN0cmluZ3NgLA0KQEAg LTMxNzYsNyArMzE4NSw3IEBAIFBvcnQtU3BlY2lmaWMgQ2hhbmdlczogV2luZG93cw0KIC4uID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0NCiANCiBQb3J0LVNwZWNpZmljIENoYW5nZXM6IE1hYyBPUyBYDQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQogDQogKiBXaGVuIGNvbXBpbGluZyBhIGZyYW1ld29yayBidWlsZCBvZiBQeXRob24s IHlvdSBjYW4gbm93IHNwZWNpZnkgdGhlDQogICBmcmFtZXdvcmsgbmFtZSB0byBiZSB1c2VkIGJ5 IHByb3ZpZGluZyB0aGUNCkBAIC0zMjMwLDcgKzMyMzksNyBAQCBQb3J0LVNwZWNpZmljIENoYW5n ZXM6IE1hYyBPUyBYDQogLi4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIA0KIFBvcnQtU3BlY2lmaWMgQ2hhbmdl czogSVJJWA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQogDQogQSBudW1iZXIgb2Ygb2xkIElSSVgtc3BlY2lmaWMgbW9k dWxlcyB3ZXJlIGRlcHJlY2F0ZWQgYW5kIHdpbGwNCiBiZSByZW1vdmVkIGluIFB5dGhvbiAzLjA6 DQpAQCAtMzI3NCw3ICszMjgzLDcgQEAgdGhhdCBtYXkgcmVxdWlyZSBjaGFuZ2VzIHRvIHlvdXIg Y29kZToNCiAqIFN0cmluZyBleGNlcHRpb25zIGhhdmUgYmVlbiByZW1vdmVkLiAgQXR0ZW1wdGlu ZyB0byB1c2UgdGhlbSByYWlzZXMgYQ0KICAgOmV4YzpgVHlwZUVycm9yYC4NCiANCi0qIFRoZSA6 bWV0aDpgX19pbml0X19gIG1ldGhvZCBvZiA6Y2xhc3M6YGNvbGxlY3Rpb25zLmRlcXVlYA0KKyog VGhlIDptZXRoOmAhX19pbml0X19gIG1ldGhvZCBvZiA6Y2xhc3M6YGNvbGxlY3Rpb25zLmRlcXVl YA0KICAgbm93IGNsZWFycyBhbnkgZXhpc3RpbmcgY29udGVudHMgb2YgdGhlIGRlcXVlDQogICBi ZWZvcmUgYWRkaW5nIGVsZW1lbnRzIGZyb20gdGhlIGl0ZXJhYmxlLiAgVGhpcyBjaGFuZ2UgbWFr ZXMgdGhlDQogICBiZWhhdmlvciBtYXRjaCBgYGxpc3QuX19pbml0X18oKWBgLg0KQEAgLTMyODIs MTYgKzMyOTEsMTYgQEAgdGhhdCBtYXkgcmVxdWlyZSBjaGFuZ2VzIHRvIHlvdXIgY29kZToNCiAq IDptZXRoOmBvYmplY3QuX19pbml0X19gIHByZXZpb3VzbHkgYWNjZXB0ZWQgYXJiaXRyYXJ5IGFy Z3VtZW50cyBhbmQNCiAgIGtleXdvcmQgYXJndW1lbnRzLCBpZ25vcmluZyB0aGVtLiAgSW4gUHl0 aG9uIDIuNiwgdGhpcyBpcyBubyBsb25nZXINCiAgIGFsbG93ZWQgYW5kIHdpbGwgcmVzdWx0IGlu IGEgOmV4YzpgVHlwZUVycm9yYC4gIFRoaXMgd2lsbCBhZmZlY3QNCi0gIDptZXRoOmBfX2luaXRf X2AgbWV0aG9kcyB0aGF0IGVuZCB1cCBjYWxsaW5nIHRoZSBjb3JyZXNwb25kaW5nDQorICA6bWV0 aDpgIV9faW5pdF9fYCBtZXRob2RzIHRoYXQgZW5kIHVwIGNhbGxpbmcgdGhlIGNvcnJlc3BvbmRp bmcNCiAgIG1ldGhvZCBvbiA6Y2xhc3M6YG9iamVjdGAgKHBlcmhhcHMgdGhyb3VnaCB1c2luZyA6 ZnVuYzpgc3VwZXJgKS4NCiAgIFNlZSA6aXNzdWU6YDE2ODMzNjhgIGZvciBkaXNjdXNzaW9uLg0K IA0KLSogVGhlIDpjbGFzczpgRGVjaW1hbGAgY29uc3RydWN0b3Igbm93IGFjY2VwdHMgbGVhZGlu ZyBhbmQgdHJhaWxpbmcNCisqIFRoZSA6Y2xhc3M6YH5kZWNpbWFsLkRlY2ltYWxgIGNvbnN0cnVj dG9yIG5vdyBhY2NlcHRzIGxlYWRpbmcgYW5kIHRyYWlsaW5nDQogICB3aGl0ZXNwYWNlIHdoZW4g cGFzc2VkIGEgc3RyaW5nLiAgUHJldmlvdXNseSBpdCB3b3VsZCByYWlzZSBhbg0KLSAgOmV4Yzpg SW52YWxpZE9wZXJhdGlvbmAgZXhjZXB0aW9uLiAgT24gdGhlIG90aGVyIGhhbmQsIHRoZQ0KLSAg Om1ldGg6YGNyZWF0ZV9kZWNpbWFsYCBtZXRob2Qgb2YgOmNsYXNzOmBDb250ZXh0YCBvYmplY3Rz IG5vdw0KKyAgOmV4YzpgfmRlY2ltYWwuSW52YWxpZE9wZXJhdGlvbmAgZXhjZXB0aW9uLiAgT24g dGhlIG90aGVyIGhhbmQsIHRoZQ0KKyAgOm1ldGg6YH5kZWNpbWFsLkNvbnRleHQuY3JlYXRlX2Rl Y2ltYWxgIG1ldGhvZCBvZiA6Y2xhc3M6YH5kZWNpbWFsLkNvbnRleHRgIG9iamVjdHMgbm93DQog ICBleHBsaWNpdGx5IGRpc2FsbG93cyBleHRyYSB3aGl0ZXNwYWNlLCByYWlzaW5nIGENCi0gIDpl eGM6YENvbnZlcnNpb25TeW50YXhgIGV4Y2VwdGlvbi4NCisgIDpleGM6YCFDb252ZXJzaW9uU3lu dGF4YCBleGNlcHRpb24uDQogDQogKiBEdWUgdG8gYW4gaW1wbGVtZW50YXRpb24gYWNjaWRlbnQs IGlmIHlvdSBwYXNzZWQgYSBmaWxlIHBhdGggdG8NCiAgIHRoZSBidWlsdC1pbiAgOmZ1bmM6YF9f aW1wb3J0X19gIGZ1bmN0aW9uLCBpdCB3b3VsZCBhY3R1YWxseSBpbXBvcnQNCkBAIC0zMzA5LDE0 ICszMzE4LDE0IEBAIHRoYXQgbWF5IHJlcXVpcmUgY2hhbmdlcyB0byB5b3VyIGNvZGU6DQogDQog KiBUaGUgOm1vZDpgc29ja2V0YCBtb2R1bGUgZXhjZXB0aW9uIDpleGM6YHNvY2tldC5lcnJvcmAg bm93IGluaGVyaXRzDQogICBmcm9tIDpleGM6YElPRXJyb3JgLiAgUHJldmlvdXNseSBpdCB3YXNu J3QgYSBzdWJjbGFzcyBvZg0KLSAgOmV4YzpgU3RhbmRhcmRFcnJvcmAgYnV0IG5vdyBpdCBpcywg dGhyb3VnaCA6ZXhjOmBJT0Vycm9yYC4NCisgIDpleGM6YCFTdGFuZGFyZEVycm9yYCBidXQgbm93 IGl0IGlzLCB0aHJvdWdoIDpleGM6YElPRXJyb3JgLg0KICAgKEltcGxlbWVudGVkIGJ5IEdyZWdv cnkgUC4gU21pdGg7IDppc3N1ZTpgMTcwNjgxNWAuKQ0KIA0KICogVGhlIDptb2Q6YHhtbHJwY2xp YiA8eG1scnBjLmNsaWVudD5gIG1vZHVsZSBubyBsb25nZXIgYXV0b21hdGljYWxseSBjb252ZXJ0 cw0KICAgOmNsYXNzOmBkYXRldGltZS5kYXRlYCBhbmQgOmNsYXNzOmBkYXRldGltZS50aW1lYCB0 byB0aGUNCiAgIDpjbGFzczpgeG1scnBjbGliLkRhdGVUaW1lIDx4bWxycGMuY2xpZW50LkRhdGVU aW1lPmAgdHlwZTsgdGhlIGNvbnZlcnNpb24gc2VtYW50aWNzIHdlcmUNCiAgIG5vdCBuZWNlc3Nh cmlseSBjb3JyZWN0IGZvciBhbGwgYXBwbGljYXRpb25zLiAgQ29kZSB1c2luZw0KLSAgOm1vZDpg IXhtbHJwY2xpYmAgc2hvdWxkIGNvbnZlcnQgOmNsYXNzOmBkYXRlYCBhbmQgOmNsYXNzOmB+ZGF0 ZXRpbWUudGltZWANCisgIDptb2Q6YCF4bWxycGNsaWJgIHNob3VsZCBjb252ZXJ0IDpjbGFzczpg fmRhdGV0aW1lLmRhdGVgIGFuZCA6Y2xhc3M6YH5kYXRldGltZS50aW1lYA0KICAgaW5zdGFuY2Vz LiAoOmlzc3VlOmAxMzMwNTM4YCkNCiANCiAqICgzLjAtd2FybmluZyBtb2RlKSBUaGUgOmNsYXNz OmBFeGNlcHRpb25gIGNsYXNzIG5vdyB3YXJucw0KDQpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpQeXRob24tY2hlY2tpbnMgbWFpbGluZyBsaXN0IC0tIHB5 dGhvbi1jaGVja2luc0BweXRob24ub3JnClRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8g cHl0aG9uLWNoZWNraW5zLWxlYXZlQHB5dGhvbi5vcmcKaHR0cHM6Ly9tYWlsLnB5dGhvbi5vcmcv bWFpbG1hbjMvL2xpc3RzL3B5dGhvbi1jaGVja2lucy5weXRob24ub3JnCk1lbWJlciBhZGRyZXNz OiBweXRob24tcHl0aG9uLWNoZWNraW5zQG0uZ21hbmUtbXgub3JnCg==