From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 9E96B728 for ; Tue, 26 Dec 2017 05:14:20 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from APC01-SG2-obe.outbound.protection.outlook.com (mail-oln040092253105.outbound.protection.outlook.com [40.92.253.105]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id DF7F3A6 for ; Tue, 26 Dec 2017 05:14:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=wAsYNpeU7ljEsk9Bz13mzLPCzePIsQidnWrF7cfsQJQ=; b=WprENRdelNBEqFmdDJ/kl9gcM6FIAipo90ZcAGt0u/AUYAjV2SG3Cc4Y1qKoj6OeSZnLxyoVbuiKqH1umr//mzkNlF5lkfeXKdwyVcNVQHcmDqnmjbvyAoe85jFZwbGd+VSRbOEIWnmk1GgdzRF9AOcEGiUbnmhvqY9h2L92j17bxouM8hQPWDqi2GbERWugulFzQMxchhMY3lZzWrO9Ijs86CRJ/WMP0ytvIJ1D5z7kTBU1n6aU3Q97caUuuYGoAuMxt/c4YA+M4LzxgaPGsJRaDmgBv4UZnlsRvoOCbSaoM95ZtzN/unMsVtO64O2Uscj7SE1sW+t0vepvSHCndg== Received: from HK2APC01FT003.eop-APC01.prod.protection.outlook.com (10.152.248.59) by HK2APC01HT090.eop-APC01.prod.protection.outlook.com (10.152.249.80) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.302.6; Tue, 26 Dec 2017 05:14:15 +0000 Received: from PS2P216MB0179.KORP216.PROD.OUTLOOK.COM (10.152.248.52) by HK2APC01FT003.mail.protection.outlook.com (10.152.248.173) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.20.282.5 via Frontend Transport; Tue, 26 Dec 2017 05:14:15 +0000 Received: from PS2P216MB0179.KORP216.PROD.OUTLOOK.COM ([10.171.225.19]) by PS2P216MB0179.KORP216.PROD.OUTLOOK.COM ([10.171.225.19]) with mapi id 15.20.0345.017; Tue, 26 Dec 2017 05:14:15 +0000 From: Damian Williamson To: "bitcoin-dev@lists.linuxfoundation.org" Thread-Topic: [bitcoin-dev] BIP Proposal: Revised: UTPFOTIB - Use Transaction Priority For Ordering Transactions In Blocks Thread-Index: AQHTfghff7TDaA+xpUy7nXNeJMBNLA== Date: Tue, 26 Dec 2017 05:14:14 +0000 Message-ID: Accept-Language: en-AU, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-incomingtopheadermarker: OriginalChecksum:B9BBC53030A1C347C5FA7E459AAE5DEFDBAC131FAE014AA9A26A80B23F31543E; UpperCasedChecksum:F6EA4583BE806354C6E3D011035C40D03844BE9F1877466C6D259FD5DBC1B040; SizeAsReceived:7011; Count:44 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [TdjzU8khKZd71d8gJGGG8iVqVrK6Tr6J] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; HK2APC01HT090; 6:AW2M7louSFN4E8gFZ+7UpT8lVTP6M1bLNge77xUoHwqo5wkwzLDJyrgfc8nEGh+5cCcez2tRbdyOmNR0ctFmhMlGw/HUw0PV8zmbNAAsr1YdpXN8ij4QCaeQ6dEA0PleFAeVyEzdjfkMsqozI3qwkcRUz+j78A6nekoXeT2C+xFJfHk44Q7xILIJg1PJr0lSqpmSCID5OU7odVWCUUDnc1V2+hyo4PTzdV2le/TZKP+RP2hgg53LuGiOpHhiJJvdXNwobz3NMHxTF79Xt+xMqrhqnGNMPqNj02DPqjR388E9HQFf5O1pYUBmb0oCVN07j1pC2uca2P9EQ6w/vkebA+phkWHs9JlIwvzw3ol4CbA=; 5:2QiXzN3yXXEJYS6sFpoA9zmPW/f1DX5tYJgSpYg5IFykbTkkFdVrdvBQd4CAMq+cJx1bv76XfX/Ik9MW46g433Is7UcDOlEwlQqjXaSViLbyyZV1TDu7pVqzaesRqJUlqGO7tpJbmnb58vuDgEITTo96HEHmqReG5itZsN8RqeQ=; 24:9zp7TJF6GreaedzHM4fBqZyd5LY32Yt90vbGmeyL5rTB5gS9CZtpPqrXLFpPcwsw9gONq5MjVk+CKejpxcJNxCAwj6L4PA+2KIo0THNolhg=; 7:LFaLvDltmazPIPdfjYLQdtEw8IcpGtZb10E1+W7HYwbYkXAzcqEV1u81St49nTK2Ec5a0+qDUt1+rRFpRsIHPJIQmY4v9pAGzx4lssbul1jq5+h+LaENPD+jrY8xOBLLgRIklsABX89pq3Ldh/XjauCUTa1xYKW2kITgUYSD/UccK+SzYumREsmvBGAZs1a/3j1wsDAnZMvx9u4Cgio6NKtTn4sJLF2l5frhgATkIX8NcWVsdzGtVxX0Hc+9OZ+P x-incomingheadercount: 44 x-eopattributedmessage: 0 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(201702061074)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1603101448)(1601125374)(1701031045); SRVR:HK2APC01HT090; x-ms-traffictypediagnostic: HK2APC01HT090: x-ms-office365-filtering-correlation-id: 1809cbdb-945d-4b1a-bd2f-08d54c1f80b8 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(444000031); SRVR:HK2APC01HT090; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:HK2APC01HT090; x-forefront-prvs: 053315510E x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(98901004); DIR:OUT; SFP:1901; SCL:1; SRVR:HK2APC01HT090; H:PS2P216MB0179.KORP216.PROD.OUTLOOK.COM; FPR:; SPF:None; LANG:; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <92F642EC0DC54A42A5DE1DB60EBEDF75@KORP216.PROD.OUTLOOK.COM> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1809cbdb-945d-4b1a-bd2f-08d54c1f80b8 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Dec 2017 05:14:15.0393 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: HK2APC01HT090 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org X-Mailman-Approved-At: Tue, 26 Dec 2017 05:46:09 +0000 Subject: [bitcoin-dev] BIP Proposal: Revised: UTPFOTIB - Use Transaction Priority For Ordering Transactions In Blocks X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Dec 2017 05:14:20 -0000 SSBoYXZlIG5lZWRlZCB0byByZS10YWMgbXkgaW50ZW50aW9ucyBzb21ld2hhdCwgdGhlcmUgaXMg c3RpbGwgbXVjaA0Kd29yayB0byBiZSBkb25lLg0KDQpUaGlzIGlzIGEgcmVxdWVzdCBmb3IgYXNz aXN0YW5jZSBhbmQgZnVydGhlciBkaXNjdXNzaW9uIG9mIHRoZSByZS0NCnJldmlzZWQgcHJvcG9z YWwuIEkgYW0gc3VyZSB0aGVyZSBhcmUgc3RpbGwgaXNzdWVzIHRvIGJlIHJlc29sdmVkLg0KDQoj I8KgQklQIFByb3Bvc2FsOiBVVFBGT1RJQiAtIFVzZSBUcmFuc2FjdGlvbiBQcmlvcml0eSBGb3Ig T3JkZXJpbmcNClRyYW5zYWN0aW9ucyBJbiBCbG9ja3MNCg0KU2NoZW1hOsKgwqANCiMjIyMjIyMj IyPCoMKgDQpEb2N1bWVudDogQklQIFByb3Bvc2FswqDCoA0KVGl0bGU6IFVUUEZPVElCIC0gVXNl IFRyYW5zYWN0aW9uIFByaW9yaXR5IEZvciBPcmRlcmluZyBUcmFuc2FjdGlvbnMgSW4NCkJsb2Nr c8KgwqANCkRhdGU6IDI2LTEyLTIwMTfCoMKgDQpBdXRob3I6IERhbWlhbiBXaWxsaWFtc29uICZs dDt3aWxsdGVjaEBsaXZlLmNvbS5hdSZndDsgwqANCkxpY2VuY2U6IENyZWF0aXZlIENvbW1vbnMg QXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbA0KTGljZW5zZS7CoMKgDQpV Ukw6IGh0dHA6Ly90aGVraW5namFtZXNocm1oLnR1bWJsci5jb20vcG9zdC8xNjg5NDg1MzA5NTAv YmlwLXByb3Bvc2FsLQ0KdXRwZm90aWItdXNlLXRyYW5zYWN0aW9uLXByaW9yaXR5LWZvci1vcmRl csKgwqANCiMjIyMjIyMjIyPCoMKgDQoNCiMjIyAxLiBBYnN0cmFjdA0KDQpUaGlzIGRvY3VtZW50 IHByb3Bvc2VzIHRvIGFkZHJlc3MgdGhlIGlzc3VlIG9mIHRyYW5zYWN0aW9uYWwNCnJlbGlhYmls aXR5IGluIEJpdGNvaW4sIHdoZXJlIHZhbGlkIHRyYW5zYWN0aW9ucyBtYXkgYmUgc3R1Y2sgaW4g dGhlDQp0cmFuc2FjdGlvbiBwb29sIGZvciBleHRlbmRlZCBwZXJpb2RzIG9yIG5ldmVyIGNvbmZp cm0uDQoNClRoZXJlIGFyZSB0d28ga2V5IGlzc3VlcyB0byBiZSByZXNvbHZlZCB0byBhY2hpZXZl IHRoaXM6DQoNCjEuwqDCoFRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIGJhbmR3aWR0aCBsaW1pdC4N CjIuwqDCoFRoZSBjdXJyZW50IGFkLWhvYyBtZXRob2RzIG9mIGluY2x1ZGluZyB0cmFuc2FjdGlv bnMgaW4gYmxvY2tzDQpyZXN1bHRpbmcgaW4gdmFyaWFibGUgYW5kIGNvbmZ1c2luZyBjb25maXJt YXRpb24gdGltZXMgZm9yIHZhbGlkDQp0cmFuc2FjdGlvbnMsIGluY2x1ZGluZyB0cmFuc2FjdGlv bnMgd2l0aCBhIHZhbGlkIGZlZSB0aGF0IG1heSBuZXZlcg0KY29uZmlybS4NCg0KSXQgaXMgaW1w b3J0YW50IHdpdGggYW55IGNoYW5nZSB0byBwcm90ZWN0IHRoZSB2YWx1ZSBvZiBmZWVzIGFzIHRo ZXNlDQp3aWxsIGV2ZW50dWFsbHkgYmUgdGhlIG9ubHkgcGF5bWVudCB0aGF0IG1pbmVycyByZWNl aXZlLiBSYXRoZXIgdGhhbiBhbg0KYXVjdGlvbiBtb2RlbCBmb3IgbGltaXRlZCBiYW5kd2lkdGgs IHRoZSBwcm9wb3NhbCByZXN1bHRzIGluIGEgZmVlIGZvcg0KcHJpb3JpdHkgc2VydmljZSBhdWN0 aW9uIG1vZGVsLg0KDQpJdCB3b3VsZCBub3QgYmUgdHJ1ZSB0byBzdWdnZXN0IHRoYXQgYWxsIGZl ZWRiYWNrIHJlY2VpdmVkIHNvIGZhciBoYXMNCmJlZW4gZW50aXJlbHkgcG9zaXRpdmUgYWx0aG91 Z2gsIG1vc3Qgb2YgaXQgaGFzIGJlZW4gY29uc3RydWN0aXZlLg0KDQpUaGUgcHJldmlvdXMgdGhy ZWFkcyBmb3IgdGhpcyBwcm9wb3NhbCBhcmUgYXZhaWxhYmxlIGhlcmU6IMKgDQpodHRwczovL2xp c3RzLmxpbnV4Zm91bmRhdGlvbi5vcmcvcGlwZXJtYWlsL2JpdGNvaW4tZGV2LzIwMTctRGVjZW1i ZXIvcw0KdWJqZWN0Lmh0bWwNCg0KSW4gYWxsIHBhcnRzIG9mIHRoaXMgcHJvcG9zYWwsIHJlZmVy ZW5jZXMgdG8gYSB0cmFuc2FjdGlvbiwgYSB2YWxpZA0KdHJhbnNhY3Rpb24sIGEgdHJhbnNhY3Rp b24gd2l0aCBhIHZhbGlkIGZlZSwgYSB2YWxpZCBmZWUsIGV0Yy4gaXMNCmRlZmluZWQgYXMgYW55 IHRyYW5zYWN0aW9uIHRoYXQgaXMgb3RoZXJ3aXNlIHZhbGlkIHdpdGggYSBmZWUgb2YgYXQNCmxl YXN0IDAuMDAwMDEwMDAgQlRDL0tCIGFzIGRlZmluZWQgYXMgdGhlIGR1c3QgbGV2ZWwsIGludGVy cHJldGluZyBmcm9tDQpCaXRjb2luIENvcmUgR1VJLiBUcmFuc2FjdGlvbnMgd2l0aCBhIGZlZSBs b3dlciB0aGFuIHRoaXMgcmF0ZSBhcmUNCmNvbnNpZGVyZWQgZHVzdC4NCg0KSW4gYWxsIHBhcnRz IG9mIHRoaXMgcHJvcG9zYWwsIGR1c3QgYW5kIHplcm8tZmVlIHRyYW5zYWN0aW9ucyBhcmUNCmFs d2F5cyBpZ25vcmVkIGFuZC9vciBleGNsdWRlZCB1bmxlc3Mgc3BlY2lmaWNhbGx5IG1lbnRpb25l ZC4NCg0KSXQgaXMgZ2VuZXJhbGx5IGFzc3VtZWQgdGhhdCBtaW5lcnMgY3VycmVudGx5IHByZWZl ciB0byBpbmNsdWRlDQp0cmFuc2FjdGlvbnMgd2l0aCBoaWdoZXIgZmVlcy4NCg0KIyMjIDIuIFRo ZSBuZWVkIGZvciB0aGlzIHByb3Bvc2FsDQoNCldlIGFsbCBtdXN0IGxlYXJuIHRvIGFkbWl0IHRo YXQgdHJhbnNhY3Rpb24gYmFuZHdpZHRoIGlzIHN0aWxsIGx1cmtpbmcNCmFzIGEgc2VyaW91cyBp c3N1ZSBmb3IgdGhlIG9wZXJhdGlvbiwgcmVsaWFiaWxpdHksIHNhZmV0eSwgY29uc3VtZXINCmFj Y2VwdGFuY2UsIHVwdGFrZSBhbmQsIGZvciB0aGUgdmFsdWUgb2YgQml0Y29pbi4NCg0KSSByZWNl bnRseSBzZW50IGEgcGF5bWVudCB3aGljaCB3YXMgbm90IHVyZ2VudCBzbzsgSSBjaG9zZSB0aHJl ZS1kYXkNCnRhcmdldCBjb25maXJtYXRpb24gZnJvbSB0aGUgZmVlIHJlY29tbWVuZGF0aW9uLiBU aGF0IHRyYW5zYWN0aW9uIGhhcw0Kc3RpbGwgbm90IGNvbmZpcm1lZCBhZnRlciBub3cgbW9yZSB0 aGFuIHNpeCBkYXlzIC0gZXZlbiB3YWl0aW5nIHR3aWNlDQphcyBsb25nIHNlZW1zIHF1aXRlIHJl YXNvbmFibGUgdG8gbWUgKG5vdGUgZm9yIGFjY3VyYWN5OiBpdCBkaWQNCmV2ZW50dWFsbHkgY29u ZmlybSkuIFRoYXQgdHJhbnNhY3Rpb24gaXMgYSB2YWxpZCB0cmFuc2FjdGlvbjsgaXQgaXMgbm90 DQpydWJiaXNoLCBqdW5rIG9yLCBzcGFtLiBVbmRlciB0aGUgY3VycmVudCBtb2RlbCB3aXRoIHRy YW5zYWN0aW9uDQpiYW5kd2lkdGggbGltaXRhdGlvbiwgdGhlIGxvbmdlciBhIHRyYW5zYWN0aW9u IHdhaXRzLCB0aGUgbGVzcyBsaWtlbHkNCml0IGlzIGV2ZXIgdG8gY29uZmlybSBkdWUgdG8gcmlz aW5nIHRyYW5zYWN0aW9uIG51bWJlcnMgYW5kIGJlaW5nDQpwdXNoZWQgYmFjayBieSB0cmFuc2Fj dGlvbnMgd2l0aCByaXNpbmcgZmVlcy4NCg0KSSBhcmd1ZSB0aGF0IG5vIHRyYW5zYWN0aW9ucyB3 aXRoIGZlZXMgYWJvdmUgdGhlIGR1c3QgbGV2ZWwgYXJlIHJ1YmJpc2gNCm9yIGp1bmssIG9ubHkg c29tZSB6ZXJvIGZlZSB0cmFuc2FjdGlvbnMgbWlnaHQgYmUgc3BhbS4gSGF2aW5nIGFuIGV2ZXIt DQppbmNyZWFzaW5nIG51bWJlciBvZiB2YWxpZCB0cmFuc2FjdGlvbnMgdGhhdCBkbyBub3QgY29u ZmlybSBhcyBtb3JlIG5ldw0KdHJhbnNhY3Rpb25zIHdpdGggaGlnaGVyIGZlZXMgYXJlIGNyZWF0 ZWQgaXMgdGhlIG9wcG9zaXRlIG9mIG9wZXJhdGluZw0KYSByb2J1c3QsIHJlbGlhYmxlIHRyYW5z YWN0aW9uIHN5c3RlbS4NCg0KQnVzaW5lc3MgY2Fubm90IG9wZXJhdGUgd2l0aCBhIG1vZGVsIHdo ZXJlIHRyYW5zYWN0aW9ucyBtYXkgb3IgbWF5IG5vdA0KY29uZmlybS4gRXZlbiBhIGJ1c2luZXNz IGNob29zaW5nIGEgbW9kZXN0IGZlZSBoYXMgbm8gZ3VhcmFudGVlIHRoYXQNCnRoZWlyIHZhbGlk IHRyYW5zYWN0aW9uIHdpbGwgbm90IGJlIHNodWZmbGVkIGRvd24gYnkgbmV3IHRyYW5zYWN0aW9u cw0KdG8gdGhlIHJlYWxtIG9mIG5ldmVyIGNvbmZpcm1pbmcgYWZ0ZXIgaXQgaXMgY3JlYXRlZC4g Q29uc3VtZXJzIGFsc28NCndpbGwgbm90IGFjY2VwdCB0aGlzIG1vZGVsIGFzIEJpdGNvaW4gZXhw YW5kcy4gSWYgQml0Y29pbiBjYW5ub3QgYmUgYQ0KcmVsaWFibGUgcGF5bWVudCBzeXN0ZW0gZm9y IGNvbmZpcm1lZCB0cmFuc2FjdGlvbnMgdGhlbiBjb25zdW1lcnMsIGJ5DQphbmQgbGFyZ2UsIHdp bGwgc2ltcGx5IG5vdCBhY2NlcHQgdGhlIG1vZGVsIG9uY2UgdGhleSB1bmRlcnN0YW5kLg0KQml0 Y29pbiB3aWxsIGJlIGEgZGlydHkgcGF5bWVudCBzeXN0ZW0sIGFuZCB0aGlzIHdpbGwga2lsbCB0 aGUgdmFsdWUgb2YNCkJpdGNvaW4uDQoNClVuZGVyIHRoZSBjdXJyZW50IHN5c3RlbSwgYSBtaW5v cml0eSBvZiB0cmFuc2FjdGlvbnMgd2lsbCBldmVudHVhbGx5IGJlDQp0aGUgbHVja3kgZmV3IHdo byBoYXZlIGZlZXMgaGlnaCBlbm91Z2ggdG8gZXNjYXBlIGJlaW5nIHB1c2hlZCBkb3duIHRoZQ0K bGlzdC4NCg0KT25jZSB0aGVyZSBhcmUgbW9yZSB0aGFuIHggdHJhbnNhY3Rpb25zICh0cmFuc2Fj dGlvbiBiYW5kd2lkdGggbGltaXQpDQpldmVyeSB0ZW4gbWludXRlcywgb25seSB0aG9zZSBjaG9v c2luZyB0d2VudHktbWludXRlIGNvbmZpcm1hdGlvbiAoMg0KYmxvY2tzKSBmcm9tIHRoZSBmZWUg cmVjb21tZW5kYXRpb25zIHdpbGwgaGF2ZSBpbml0aWFsbHkgYXQgbW9zdCBhDQpmaWZ0eSBwZXJj ZW50IGNoYW5jZSBvZiBldmVyIGhhdmluZyB0aGVpciBwYXltZW50IGNvbmZpcm0gd2hlbiAyeA0K dHJhbnNhY3Rpb25zIGlzIHJlYWNoZWQuIFByZXNlbnRseSwgbm90IGV2ZW4gdXNpbmcgZmVlIHJl Y29tbWVuZGF0aW9ucw0KY2FuIGVuc3VyZSBhIHN1ZmZpY2llbnRseSBoaWdoIGZlZSBpcyBwYWlk IHRvIGVuc3VyZSB0cmFuc2FjdGlvbg0KY29uZmlybWF0aW9uLg0KDQpJIGFsc28gYXJndWUgdGhh dCB0aGUgY3VycmVudCBhdWN0aW9uIG1vZGVsIGZvciBsaW1pdGVkIHRyYW5zYWN0aW9uDQpiYW5k d2lkdGggaXMgd3JvbmcsIGlzIG5vdCBzdWl0YWJsZSBmb3IgYSByZWxpYWJsZSB0cmFuc2FjdGlv biBzeXN0ZW0NCmFuZCwgaXMgd3JvbmcgZm9yIEJpdGNvaW4uIEFsbCB0cmFuc2FjdGlvbnMgd2l0 aCB2YWxpZCBmZWVzIG11c3QNCmNvbmZpcm0gaW4gZHVlIHRpbWUuIEN1cnJlbnRseSwgQml0Y29p biBpcyBub3QgYSBzYWZlIHdheSB0byBzZW5kDQpwYXltZW50cy4NCg0KSSBkbyBub3QgYmVsaWV2 ZSB0aGF0IGNvbnN1bWVycyBhbmQgYnVzaW5lc3MgYXJlIGFnYWluc3QgcGF5aW5nIGZlZXMsDQpl dmVuIGhpZ2ggZmVlcy4gV2hhdCBpcyByZXF1aXJlZCBpcyBvcGVyYXRpb25hbCByZWxpYWJpbGl0 eS4NCg0KVGhpcyBncmVhdCBpc3N1ZSBuZWVkcyB0byBiZSByZXNvbHZlZCBmb3IgdGhlIHNhZmV0 eSBhbmQgcmVsaWFiaWxpdHkgb2YNCkJpdGNvaW4uIFRoZSB0aW1lIHRvIHJlc29sdmUgaXNzdWVz IGluIGNvbW1lcmNlIGlzIGJlZm9yZSB0aGV5IGJlY29tZQ0KZ3JlYXQgYmlnIGlzc3Vlcy4gVGhl IHRpbWUgdG8gcmVzb2x2ZSB0aGlzIGlzc3VlIGlzIG5vdy4gV2UgbXVzdCBoYXZlDQp0aGUgZm9y ZXNpZ2h0IHRvIGlkZW50aWZ5IGFuZCByZXNvbHZlIHByb2JsZW1zIGJlZm9yZSB0aGV5IHRyaXAg dXMNCm92ZXIuwqDCoFNpbXBseSBkb3VibGluZyBibG9jayBzaXplcyBldmVyeSBzbyBvZnRlbiBp cyByZWFjdGlvbmFyeSBhbmQgaXMNCm5vdCBhIHJlbGlhYmxlIHBlcm1hbmVudCBzb2x1dGlvbi4N Cg0KSSBoYXZlIHdyaXR0ZW4gdGhpcyBwcm9wb3NhbCBmb3IgYSB0ZWNobmljYWwgc29sdXRpb24g YnV0LCBuZWVkIHlvdXINCmhlbHAgdG8gd3JpdGUgaXQgdXAgdG8gYW4gYWNjZXB0YWJsZSBzdGFu ZGFyZCB0byBiZSBhIGZ1bGwgQklQLg0KDQojIyMgMy4gVGhlIHByb2JsZW0NCg0KRXZlcnlib2R5 IHdhbnRzIHZhbHVlLiBNaW5lcnMgd2FudCB0byBtYXhpbWlzZSByZXZlbnVlIGZyb20gZmVlcyAo YW5kDQp3ZSBwcmVzdW1lLCB0byBtaW5pbWlzZSBibG9jayBzaXplKS4gQ29uc3VtZXJzIG5lZWQg dHJhbnNhY3Rpb24NCnJlbGlhYmlsaXR5IGFuZCwgKHdlIHByZXN1bWUpIHdhbnQgbG93IGZlZXMu DQoNClRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIGJhbmR3aWR0aCBsaW1pdCBpcyBhIGxpbWl0aW5n IGZhY3RvciBmb3IgYm90aC4NCkFzIHRoZSBvcGVyYXRpb25hbCBzYWZldHkgb2YgdHJhbnNhY3Rp b25zIGlzIGxpbWl0ZWQsIHNvIGlzIGNvbnN1bWVyDQpjb25maWRlbmNlIGFzIHRoZXkgcmVhbGlz ZSB0aGUgaXNzdWUgYW5kLCBhY2NvcmRpbmdseSwgdXB0YWtlIGlzDQpsaW1pdGVkLiBGZWVzIGFy ZSBhcnRpZmljaWFsbHkgaW5mbGF0ZWQgZHVlIHRvIGJhbmR3aWR0aCBsaW1pdGF0aW9ucw0Kd2hp bGUgZmFpbGluZyB0byBwcm92aWRlIGEgZnVsbCBjb25maXJtYXRpb24gc2VydmljZSBmb3IgYWxs IHZhbGlkDQp0cmFuc2FjdGlvbnMuDQoNCkN1cnJlbnQgZmVlIHJlY29tbWVuZGF0aW9ucyBwcm92 aWRlIG5vIHNhdGlzZmFjdGlvbiBmb3IgdHJhbnNhY3Rpb24NCnJlbGlhYmlsaXR5IGFuZCwgYXMg Qml0Y29pbiBzY2FsZXMsIHRoaXMgd2lsbCB3b3JzZW4uDQoNClRyYW5zYWN0aW9ucyBhcmUgaW5j bHVkZWQgaW4gYmxvY2tzIGJ5IG1pbmVycyB1c2luZyB3aGF0ZXZlciBiYXNpcyB0aGV5DQpwcmVm ZXIuIFdlIGV4cGVjdCB0aGF0IHRoaXMgaXMgdXN1YWxseSBhIGZlZS1iYXNlZCBwcmlvcml0eS4g SG93ZXZlciwNCmV2ZW4gdHJhbnNhY3Rpb25zIHdpdGggYSB2YWxpZCBmZWUgbWF5IGJlIGxlZnQg aW4gdGhlIHRyYW5zYWN0aW9uIHBvb2wNCmZvciBzb21lIHRpbWUuIEFzIHRyYW5zYWN0aW9uIGJh bmR3aWR0aCBiZWNvbWVzIGFuIGlzc3VlLCBub3QgZXZlbg0KZXh0cmVtZSBmZWVzIGNhbiBlbnN1 cmUgYSB0cmFuc2FjdGlvbiBpcyBwcm9jZXNzZWQgaW4gYSB0aW1lbHkgbWFubmVyDQpvciBhdCBh bGwuDQoNCkJpdGNvaW4gbXVzdCBiZSBhIGZ1bGx5IHNjYWxhYmxlIGFuZCByZWxpYWJsZSBzZXJ2 aWNlLCBwcm92aWRpbmcgZnVsbA0KdHJhbnNhY3Rpb24gY29uZmlybWF0aW9uIGZvciBldmVyeSB2 YWxpZCB0cmFuc2FjdGlvbi4NCg0KVGhlIHBvc3NpYmlsaXR5IHRvIHNlbmQgYSB0cmFuc2FjdGlv biB3aXRoIGEgZmVlIGxvd2VyIHRoYW4gb25lIHRoYXQgaXMNCmFjY2VwdGFibGUgdG8gYWxsb3cg ZXZlbnR1YWwgdHJhbnNhY3Rpb24gY29uZmlybWF0aW9uIHNob3VsZCBiZSByZW1vdmVkDQpmcm9t IHRoZSBwcm90b2NvbCBhbmQgYWxzbyBmcm9tIHRoZSB1c2VyIGludGVyZmFjZS4NCg0KIyMjIDQu IFNvbHV0aW9uIHN1bW1hcnkNCg0KIyMjIyBNYWluIHNvbHV0aW9uDQoNClByb3ZpZGUgZWFjaCB2 YWxpZCB0cmFuc2FjdGlvbiBpbiB0aGUgbWVtcG9vbCB3aXRoIGFuIGluZGl2aWR1YWwNCnRyYW5z YWN0aW9uIHByaW9yaXR5IGVhY2ggdGltZSBiZWZvcmUgY2hvb3NpbmcgdHJhbnNhY3Rpb25zIHRv IGluY2x1ZGUNCmluIHRoZSBjdXJyZW50IGJsb2NrLiBUaGUgcHJpb3JpdHkgYmVpbmcgYSBmdW5j dGlvbiBvZiB0aGUgZmVlIChvbiBhDQpjdXJ2ZSksIGFuZCB0aGUgdGltZSB3YWl0aW5nIGluIHRo ZSB0cmFuc2FjdGlvbiBwb29sIChhbHNvIG9uIGEgY3VydmUpDQpvdXQgdG8gbiBkYXlzIChuID0g NjAgZGF5cyA/KSwgYW5kIGV4dGVuZGluZyBwYXN0IG4gZGF5cy4gVGhlIHZhbHVlIGZvcg0KZmVl IG9uIGEgY3VydmUgbWF5IG5lZWQgYW4gdXBwZXIgbGltaXQuIFRoZSB0cmFuc2FjdGlvbiBwcmlv cml0eSB0bw0Kc2VydmUgYXMgdGhlIGxpa2VsaWhvb2Qgb2YgYSB0cmFuc2FjdGlvbiBiZWluZyBp bmNsdWRlZCBpbiB0aGUgY3VycmVudA0KYmxvY2ssIGFuZCBmb3IgZGV0ZXJtaW5pbmcgdGhlIG9y ZGVyIGluIHdoaWNoIHRyYW5zYWN0aW9ucyBhcmUgdHJpZWQgdG8NCnNlZSBpZiB0aGV5IHdpbGwg YmUgaW5jbHVkZWQuDQoNCk5vZGVzIHdpbGwgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHdoZW4gYSB0 cmFuc2FjdGlvbiBpcyBmaXJzdCBzZWVuLiBJdA0KaXMgc2F0aXNmYWN0b3J5IGZvciBlYWNoIG5v ZGUgdG8gZG8gdGhpcyBpbmRlcGVuZGVudGx5IHByb3ZpZGVkIHRoZQ0KaW5mb3JtYXRpb24gc3Vy dml2ZXMgbm9kZSByZXN0YXJ0LiBJZiB0aGVyZSBpcyBhIG1vcmUgcmVsaWFibGUgd2F5IHRvDQpk ZXRlcm1pbmUgd2hlbiBhIHRyYW5zYWN0aW9uIHdhcyBmaXJzdCBzZWVuIG9uIHRoZSBuZXR3b3Jr IHRoZW4gaXQNCnNob3VsZCBiZSB1dGlsaXNlZC4NCg0KVXNlIGEgZHluYW1pYyB0YXJnZXQgYmxv Y2sgc2l6ZSB0byBtYWtlIHRoZSBjdXJyZW50IGJsb2NrLiBJZiB0aGUgYmxvY2sNCnNpemUgaXMg Y29uc2lzdGVudGx5IHRvbyBzbWFsbCB0aGVuIEkgZXhwZWN0IGFnZWluZyB0cmFuc2FjdGlvbnMg d2lsbA0KYmUgb3ZlcnJlcHJlc2VudGVkIGFzIGEgcG9ydGlvbiBvZiB0aGUgYmxvY2sgY29udGVu dHMsIHRvIHRoZSBwb2ludA0Kd2hlcmUgYmxvY2tzIHdpbGwgb25seSBjb250YWluIHRoZSBvbGRl c3QgdHJhbnNhY3Rpb25zIGFzIHRoZXkgYWdlIHBhc3QNCm4gZGF5cy4gSWYgYmxvY2sgc2l6ZSBp cyB0b28gbGFyZ2Ugb24gYXZlcmFnZSB0aGVuIHRoaXMgd2lsbCBzaHJpbmsgdGhlDQp0cmFuc2Fj dGlvbiBwb29sLiBEZXRlcm1pbmUgdGhlIHRhcmdldCBibG9jayBzaXplIHVzaW5nOyBwcmUtDQpy b2xsb3V0KGN1cnJlbnQgYXZlcmFnZSB2YWxpZCB0cmFuc2FjdGlvbiBwb29sIHNpemUpIHggKCAx IC8gKDE0NCB4IG4NCmRheXMgKSApID0gbnVtYmVyIG9mIHRyYW5zYWN0aW9ucyB0byBiZSBpbmNs dWRlZCBpbiB0aGUgY3VycmVudCBibG9jay4NClRoZSBibG9jayBjcmVhdGVkIHNob3VsZCBiZSBh IG1pbmltdW0gMU1CIGluIHNpemUgcmVnYXJkbGVzcyBpZiB0aGUNCnRhcmdldCBibG9jayBzaXpl IGlzIGxvd2VyLg0KDQpOb2RlcyB0aGF0IGhhdmUgbm90IHlldCBhZG9wdGVkIHRoZSBwcm9wb3Nh bCB3aWxsIGp1c3QgY29udGludWUgdG8NCmNyZWF0ZSAxTUIgdW5vcmRlcmVkIGJsb2Nrcy4NCg0K VGhlIGRlZmF1bHQgdmFsdWUgZm9yIG1lbXBvb2xleHBpcnkgbWF5IGluIGZ1dHVyZSBuZWVkIHRv IGJlIGFkanVzdGVkDQp0byBtYXRjaCBuIGRheXMgb3IsIHBlcmhhcHMgdXNpbmcgbGVzcyB0aGFu IG4gPSAxNCBkYXlzIG1heSBiZSBhIG1vcmUNCnNlbnNpYmxlIGFwcHJvYWNoPw0KDQpBbGwgYmxv Y2sgY3JlYXRlZCB3aXRoIGR5bmFtaWMgc2l6ZSBzaG91bGQgYmUgdmVyaWZpZWQgdG8gZW5zdXJl DQpjb25mb3JtaXR5IHRvIGEgcHJvYmFiaWxpdHkgZGlzdHJpYnV0aW9uIGN1cnZlIHJlc3VsdGlu ZyBmcm9tIHRoZQ0KcHJpb3JpdHkgbWV0aG9kLiBTaW5jZSB0aGUgaW5wdXQgaXMgYSBwcm9iYWJp bGl0eSwgdGhlIG91dHB1dCBzaG91bGQNCmNvbmZvcm0gdG8gYSBwcm9iYWJpbGl0eSBkaXN0cmli dXRpb24uDQoNClRoZSBjdXJ2ZXMgdXNlZCBmb3IgdGhlIHByaW9yaXR5IG9mIHRyYW5zYWN0aW9u cyB3b3VsZCBoYXZlIHRvIGJlDQphcHByb3ByaWF0ZS4gUGVyaGFwcyBhIG1hdGhlbWF0aWNpYW4g d2l0aCBleHBlcmllbmNlIGluIHByb2JhYmlsaXR5IGNhbg0KZGV2ZWxvcCB0aGUgcmlnaHQgZm9y bXVsYWUuIE15IHRoaW5raW5nIGlzIGEgc3RlZXAgY3VydmUuIEkgc3VwcG9zZQ0KdGhhdCB0aGUg cHJvYmFiaWxpdHkgb2YgYWxsIHRyYW5zYWN0aW9ucyBzaG91bGQgcHJvYmFibHkgYWNjb3VudCBm b3IgYQ0Kc3VmZmljaWVudCBudW1iZXIgb2YgaW5jbHVzaW9ucyB0aGF0IHRoZSB0YXJnZXQgYmxv Y2sgc2l6ZSBpcyBtZXQgb24NCmF2ZXJhZ2UgYWx0aG91Z2gsIGl0IG1heSBub3QgYWx3YXlzIGJl LiBBcyBhIHN1Z2dlc3Rpb24sIGNvbnNpZGVyDQppbmNsdWRpbmcgc29tZSBkdXN0IG9yIHplcm8t ZmVlIHRyYW5zYWN0aW9ucyB0byBwYWQgaWYgZWFjaCB2YWxpZA0KdHJhbnNhY3Rpb24gaXMgdHJp ZWQgYW5kIHRoZSB0YXJnZXQgYmxvY2sgc2l6ZSBpcyBub3QgeWV0IG1ldCwgaGlnaGVzdA0KQlRD IHRyYW5zYWN0aW9uIHZhbHVlIGZpcnN0Pw0KDQoqKkV4cGxhbmF0aW9uIG9mIHRoZSBvcGVyYXRp b24gb2YgcHJpb3JpdHk6KioNCg0KPiBJZiB0cmFuc2FjdGlvbiBwcmlvcml0eSBpcywgZm9yIGV4 YW1wbGUsIGEgbnVtYmVyIGJldHdlZW4gb25lIChsb3cpDQphbmQgb25lLWh1bmRyZWQgKGhpZ2gp IGl0IGNhbiBiZSBkaXJlY3RseSB1bmRlcnN0b29kIGFzIHRoZSBwZXJjZW50YWdlDQpjaGFuY2Ug aW4gb25lLWh1bmRyZWQgb2YgYSB0cmFuc2FjdGlvbiBiZWluZyBpbmNsdWRlZCBpbiB0aGUgYmxv Y2suDQpVc2luZyBwcm9iYWJpbGl0eSBvciBsaWtlbGlob29kIGluZmVycyB0aGF0IHRoZXJlIGlz IHNvbWUgZnVuY3Rpb24gb2YNCnJhbmRvbS4gVHJ5IHRoZSB0cmFuc2FjdGlvbnMgaW4gcHJpb3Jp dHkgb3JkZXIgZnJvbSBoaWdoZXN0IHRvIGxvd2VzdCwNCmlmIHJhbmRvbSAoMTAwKSA8IHRyYW5z YWN0aW9uIHByaW9yaXR5IHRoZW4gdGhlIHRyYW5zYWN0aW9uIGlzIGluY2x1ZGVkDQp1bnRpbCB0 aGUgdGFyZ2V0IGJsb2NrIHNpemUgaXMgbWV0Lg0KDQo+IFRvIGJyZWFrIGl0IGRvd24gZnVydGhl ciwgaWYgYm90aCB0aGUgZmVlIG9uIGEgY3VydmUgdmFsdWUgYW5kIHRoZQ0KdGltZSB3YWl0aW5n IG9uIGEgY3VydmUgdmFsdWUgYXJlIGVhY2ggYSBudW1iZXIgYmV0d2VlbiBvbmUgYW5kIG9uZS0N Cmh1bmRyZWQsIGEgcnVkaW1lbnRhcnkgbWV0aG9kIG1heSBiZSB0byBzaW1wbHkgbXVsdGlwbHkg dGhvc2UgdHdvDQpudW1iZXJzLCB0byBmaW5kIHRoZSBwcmlvcml0eSBudW1iZXIuIEZvciBleGFt cGxlLCBhIG1pZGRsZSBmZWUNCnRyYW5zYWN0aW9uIHdhaXRpbmcgdGhpcnR5IGRheXMgKGlmIG4g PSA2MCBkYXlzKSBtYXkgaGF2ZSBhIHZhbHVlIG9mDQpmaXZlIGZvciBlYWNoIHBhcnTCoMKgKHll cywganVzdCBmaXZlLCB0aGUgdmFsdWVzIGFyZSBvbiBhIGN1cnZlKS4gV2hlbg0KbXVsdGlwbGll ZCB0aGF0IHdpbGwgZ2l2ZSBhIHByaW9yaXR5IHZhbHVlIG9mIHR3ZW50eS1maXZlLCBvciwgYQ0K dHdlbnR5LWZpdmUgcGVyY2VudCBjaGFuY2UgYXQgdGhhdCBtb21lbnQgb2YgYmVpbmcgaW5jbHVk ZWQgaW4gdGhlDQpibG9jazsgaXQgd2lsbCBsaWtlbHkgYmUgaW5jbHVkZWQgaW4gb25lIG9mIHRo ZSBuZXh0IGZvdXIgYmxvY2tzLA0KZ2V0dGluZyBtb3JlIGxpa2VseSBlYWNoIGNoYW5jZS4gSWYg aXQgaXMgc3RpbGwgbm90IGluY2x1ZGVkIHRoZW4gdGhlDQp2YWx1ZSBvZiB0aW1lIHdhaXRpbmcg d2lsbCBiZSBoaWdoZXIsIG1ha2luZyBmb3IgbW9yZSBwcm9iYWJpbGl0eS4gQQ0KdmVyeSBsb3cg ZmVlIHRyYW5zYWN0aW9uIHdvdWxkIGhhdmUgYSB2YWx1ZSBmb3IgdGhlIGZlZSBvZiBvbmUuIEl0 DQp3b3VsZCBub3QgYmUgdW50aWwgbmVhciBzaXh0eS1kYXlzIHRoYXQgdGhlIHBhcnRpY3VsYXIg bG93IGZlZQ0KdHJhbnNhY3Rpb24gaGFzIGEgaGlnaCBsaWtlbGlob29kIG9mIGJlaW5nIGluY2x1 ZGVkIGluIHRoZSBibG9jay4NCg0KSW4gcHJhY3RpY2UgaXQgbWF5IGJlIG1vcmUgdXNlZnVsIHRv IHVzZSBudW1iZXJzIHJlcHJlc2VudGF0aXZlIG9mIG9uZS0NCmh1bmRyZWQgZm9yIHRoZSBoaWdo ZXN0IGZlZSBwcmlvcml0eSBjdXJ2ZSBkb3duIHRvIGEgc21hbGwgZnJhY3Rpb24gb2YNCm9uZSBm b3IgdGhlIGxvd2VzdCBmZWUgYW5kLCBmcm9tIG9uZSBmb3IgYSBuZXdseSBzZWVuIHRyYW5zYWN0 aW9uIHVwIHRvDQphIHByb3BvcnRpb25hdGVseSBoaWdoIG51bWJlciBhYm92ZSBvbmUtaHVuZHJl ZCBmb3IgdGhlIHRpbWUgd2FpdGluZw0KY3VydmUuIEl0IGlzIHRydWVseSBiZXlvbmQgbXkgbGV2 ZWwgb2YgbWF0aCB0byByZXNvbHZlIHByb2JhYmlsaXR5DQpjdXJ2ZXMgYWNjdXJhdGVseSB3aXRo b3V0IG11Y2ggdHJpYWwgYW5kIGVycm9yLg0KDQpUaGUgcHJpbWFyeSByZWFzb24gZm9yIGFkZHJl c3NpbmcgdGhlIGlzc3VlIGlzIHRvIGVuc3VyZSB0cmFuc2FjdGlvbmFsDQpyZWxpYWJpbGl0eSBh bmQgc2NhbGFiaWxpdHkgd2hpbGUgaGF2aW5nIGVhY2ggdmFsaWQgdHJhbnNhY3Rpb24gY29uZmly bQ0KaW4gZHVlIHRpbWUuDQoNCiMjIyMgUHJvcw0KDQoqwqDCoMKgTWF4aW1pemVzIHRyYW5zYWN0 aW9uIHJlbGlhYmlsaXR5Lg0KKsKgwqDCoE92ZXJjb21lcyB0cmFuc2FjdGlvbiBiYW5kd2lkdGgg bGltaXQuDQoqwqDCoMKgRnVsbHkgc2NhbGFibGUuDQoqwqDCoMKgTWF4aW1pemVzIHBvc3NpYmls aXR5IGZvciBjb25zdW1lciBhbmQgYnVzaW5lc3MgdXB0YWtlLg0KKsKgwqDCoE1heGltaXplcyB0 b3RhbCBmZWVzIHBhaWQgcGVyIGJsb2NrIHdpdGhvdXQgcmVkdWNpbmcgcmVsaWFiaWxpdHk7DQpi ZWNhdXNlIG9mIHJlbGlhYmlsaXR5LCBpbiB0aW1lIGNvbmZpZGVuY2UgYW5kIG92ZXJhbGwgdXB0 YWtlIGFyZQ0KZ3JlYXRlcjsgdGhlcmVmb3JlLCBtb3JlIHRyYW5zYWN0aW9ucy4NCirCoMKgwqBN YXJrZXQgZGV0ZXJtaW5lcyBmZWUgcGFpZCBmb3IgdHJhbnNhY3Rpb24gcHJpb3JpdHkuDQoqwqDC oMKgRmVlIHJlY29tbWVuZGF0aW9ucyB3b3JrIGFsbCB0aGUgd2F5IG91dCB0byAzMCBkYXlzIG9y IGdyZWF0ZXIuDQoqwqDCoMKgUHJvdmlkZXMgYWRkaXRpb25hbCBibG9jayBlbnRyb3B5OyBncmVh dGVyIHNlY3VyaXR5IHNpbmNlIHRoZXJlIGlzDQpsZXNzIHByb2JhYmlsaXR5IG9mIHByZWRpY3Rp bmcgdGhlIG5leHQgYmxvY2suIF9BbHRob3VnaCB0aGlzIGlzIG5vdA0KbmVjZXNzYXJ5IGl0IGlz IGEgcHJvZHVjdCBvZiB0aGUgb3BlcmF0aW9uIG9mIHRoaXMgcHJvcG9zYWwuXw0KDQojIyMjIENv bnMNCg0KKsKgwqDCoENvdWxkIGluaXRpYWxseSBsb3dlciB0b3RhbCB0cmFuc2FjdGlvbiBmZWVz IHBlciBibG9jay4NCirCoMKgwqBNdXN0IGJlIGZpcnN0IGJlIHByb2dyYW1tZWQuDQoNCiMjIyMg UHJlLXJvbGxvdXQNCg0KTm9kZXMgbmVlZCB0byBoYXZlIGF0IGEgbWluaW11bSBhIGxvb3NlIHVu ZGVyc3RhbmRpbmcgb2YgdGhlIGF2ZXJhZ2UNCihzaW5jZSB0aGVyZSBpcyBubyBjb25zZW5zdXMp IHNpemUgb2YgdGhlIHRyYW5zYWN0aW9uIHBvb2wgYXMgYQ0KcmVxdWlyZW1lbnQgdG8gZW5hYmxl IGZ1dHVyZSBjaGFuZ2VzIHRvIHRoZSB3YXkgYmxvY2tzIGFyZSBjb25zdHJ1Y3RlZC4NCg0KQSBu ZXcgbmV0d29yayBzZXJ2aWNlIHNob3VsZCBiZSBjb25zdHJ1Y3RlZCB0byBtZWV0IHRoaXMgbmVl ZC4gVGhpcw0Kc2VydmljZSBtYWtlcyBubyBjaGFuZ2VzIHRvIGFueSBleGlzdGluZyBvcGVyYXRp b24gb3IgZnVuY3Rpb24gb2YgdGhlDQpub2RlLiBJbml0aWFsbHksIEJpdGNvaW4gQ29yZSBpcyBh IHN1aXRhYmxlIGNhbmRpZGF0ZS4NCg0KKipUaGUgc2VydmljZSBtdXN0OioqDQoNCirCoMKgwqBI YXZlIGFuIGluZGl2aWR1YWwgdGVtcG9yYXJ5IChydW50aW1lIHBlcm1hbmVudCBvbmx5KSBTZXJp YWwgTm9kZQ0KSUQuDQoqwqDCoMKgQWNjZXB0IGNvbW11bmljYXRpb24gb2YgdGhlIG51bWJlciBv ZiB2YWxpZCB0cmFuc2FjdGlvbnMgaW4gdGhlDQptZW1wb29sIG9mIGFub3RoZXIgdmFsaWQgQml0 Y29pbiBub2RlIGFsb25nIHdpdGggdGhlIFNlcmlhbCBOb2RlIElEIG9mDQp0aGUgbm9kZSB3aG9z ZSB2YWx1ZSBpcyBwcm92aWRlZC4NCirCoMKgwqBEaXNjb25uZWN0IHRoZSBzZXJ2aWNlIGZyb20g YW55IG5vbi1CaXRjb2luIG5vZGUuIEJpdGNvaW4gQ29yZSBtYXkNCmhhbmRsZSB0aGlzIGFscmVh ZHk/DQoqwqDCoMKgRXhwaXJlIGFueSB2YWx1ZSBub3QgdXBkYXRlZCBmb3IgayBtaW51dGVzIChr ID0gMzAgbWludXRlcz8pLg0KKsKgwqDCoEJyb2FkY2FzdCBhbGwgbWVtcG9vbCBpbmZvcm1hdGlv biB0aGUgbm9kZSBoYXMgZXZlcnkgbSBtaW51dGVzIChtID0NCjEwIG1pbnV0ZXM/KSwgaW5jbHVk aW5nIGl0cyBvd24uDQoqwqDCoMKgTm9kZXMgb3duIG1lbXBvb2wgaW5mb3JtYXRpb24gc2hvdWxk IG5vdCBiZSBicm9hZGNhc3Qgb3IgdXNlZCBpbg0KY2FsY3VsYXRpb24gdW50aWwgdGhlIG5vZGUg aGFzIGJlZW4gdXAgbG9uZyBlbm91Z2ggZm9yIHRoZSBtZW1wb29sIHRvDQpub3JtYWxpc2UgZm9y IGF0IGxlYXN0IG8gbWludXRlcyAobyA9IDMwMCBtaW51dGVzID8pDQoqwqDCoMKgT25seSBuZXcg b3IgdXBkYXRlZCBtZW1wb29sIHZhbHVlcyBzaG91bGQgYmUgdHJhbnNtaXR0ZWQgdG8gdGhlDQpz YW1lIG5vZGUuIFVwZGF0ZWQgaW5jbHVkZXMgdXBkYXRlZCB3aXRoIG5vIGNoYW5nZS4NCirCoMKg wqBBbGwga25vd24gbWVtcG9vbCBpbmZvcm1hdGlvbiBtdXN0IHN1cnZpdmUgbm9kZSByZXN0YXJ0 Lg0KKsKgwqDCoElmIHRoZSBub2RlcyBvd24gbWVtcG9vbCBpcyBub3Qgbm9ybWFsaXNlZCBhbmQg bmV0d29yayBpbmZvcm1hdGlvbg0KaXMgbm90IGF2YWlsYWJsZSB0byBjYWxjdWxhdGUgYW4gYXZl cmFnZSBqdXN0IGRpc3BsYXkgemVyby4NCirCoMKgwqBJbnRlcm5hbGx5LCB0aGUgYXZlcmFnZSB0 cmFuc2FjdGlvbiBwb29sIHNpemUgbXVzdCByZXR1cm4gdGhlDQpjYWxjdWxhdGVkIGF2ZXJhZ2Ug aWYgYW4gYXZlcmFnZSBpcyBhdmFpbGFibGUgb3IsIGlmIG5vbmUgaXMgYXZhaWxhYmxlDQpqdXN0 IHRoZSBudW1iZXIgb2YgdmFsaWQgdHJhbnNhY3Rpb25zIGluIHRoZSBub2RlJ3Mgb3duIG1lbXBv b2wNCnJlZ2FyZGxlc3MgaWYgaXQgaXMgbm9ybWFsaXNlZC4NCg0KQml0Y29pbiBDb3JlIG11c3Qg dXNlIGFsbCBjb2xsYXRlZCBpbmZvcm1hdGlvbiBvbiBtZW1wb29sIHNpemUgdG8NCmNhbGN1bGF0 ZSBhIGZpZ3VyZSBmb3IgdGhlIGF2ZXJhZ2UgbWVtcG9vbCBzaXplLg0KDQpUaGUgY2FsY3VsYXRl ZCBmaWd1cmUgc2hvdWxkIGJlIGRpc3BsYXllZCBpbiB0aGUgYXBwcm9wcmlhdGUgcGxhY2UgaW4N CnRoZSBEZWJ1ZyB3aW5kb3cgYWxvbmdzaWRlIHRoZSB0ZXh0IE5ldHdvcmsgYXZlcmFnZSB0cmFu c2FjdGlvbnMuDQoNCkNvbnNpZGVyYXRpb24gbXVzdCBiZSBnaXZlbiBiZWZvcmUgZGV2ZWxvcG1l bnQgb2YgdGhlIG5ldHdvcmsgYmFuZHdpZHRoDQp0aGlzIHdvdWxkIHJlcXVpcmUuIEFsbCBwcm9n cmFtbWluZyBtdXN0IGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgY3VycmVudA0Kb3BlcmF0aW9uIGFu ZCBjb252ZW50aW9ucyBvZiBCaXRjb2luIENvcmUuIE1ldGhvZHMgbXVzdCB3b3JrIG9uIGFsbA0K cGxhdGZvcm1zLg0KDQpBcyB0aGlzIG5ldyBzZXJ2aWNlIGRvZXMgbm90IGFmZmVjdCBhbnkgZXhp c3Rpbmcgc2VydmljZSBvciBmZWF0dXJlIG9mDQpCaXRjb2luIG9yIEJpdGNvaW4gQ29yZSwgdGhp cyBjYW4gdGVjaG5pY2FsbHkgYmUgcHJvZ3JhbW1lZCBub3cgYW5kDQppbmNsdWRlZCBpbiBCaXRj b2luIENvcmUgYXQgYW55IHRpbWUuDQoNCiMjIyA1LiBTb2x1dGlvbiBvcGVyYXRpb24NCg0KVGhp cyBpcyBhIHNpbXBsaXN0aWMgdmlldyBvZiB0aGUgb3BlcmF0aW9uLiBUaGUgYWN0dWFsIG9wZXJh dGlvbiB3aWxsDQpuZWVkIHRvIGJlIGRldGVybWluZWQgYWNjdXJhdGVseSBpbiBhIHNwZWMgZm9y IHRoZSBwcm9ncmFtbWVyLg0KDQoxLsKgwqBEZXRlcm1pbmUgdGhlIHRhcmdldCBibG9jayBzaXpl IGZvciB0aGUgY3VycmVudCBibG9jay4NCjIuwqDCoEFzc2lnbiBhIHRyYW5zYWN0aW9uIHByaW9y aXR5IHRvIGVhY2ggdmFsaWQgdHJhbnNhY3Rpb24gaW4gdGhlDQptZW1wb29sLg0KMy7CoMKgU2Vs ZWN0IHRyYW5zYWN0aW9ucyB0byBpbmNsdWRlIGluIHRoZSBjdXJyZW50IGJsb2NrIHVzaW5nDQpw cm9iYWJpbGl0eSBpbiB0cmFuc2FjdGlvbiBwcmlvcml0eSBvcmRlciB1bnRpbCB0aGUgdGFyZ2V0 IGJsb2NrIHNpemUNCmlzIG1ldC4gSWYgdGFyZ2V0IGJsb2NrIHNpemUgaXMgbm90IG1ldCwgaW5j bHVkZSBkdXN0IGFuZCB6ZXJvLWZlZQ0KdHJhbnNhY3Rpb25zIHRvIHBhZC4NCjQuwqDCoFNvbHZl IGJsb2NrLg0KNS7CoMKgQnJvYWRjYXN0IHRoZSBjdXJyZW50IGJsb2NrIHdoZW4gaXQgaXMgc29s dmVkLg0KNi7CoMKgQmxvY2sgaXMgcmVjZWl2ZWQuDQo3LsKgwqBCbG9jayB2ZXJpZmljYXRpb24g cHJvY2Vzcy4NCjguwqDCoEFjY2VwdC9yZWplY3QgYmxvY2sgYmFzZWQgb24gdmVyaWZpY2F0aW9u IHJlc3VsdC4NCjkuwqDCoFJlcGVhdC4NCg0KIyMjIDYuIENsb3NpbmcgY29tbWVudHMNCg0KSXQg bWF5IGJlIHBvc3NpYmxlIHRvIHZlcmlmeSBibG9ja3MgY29uZm9ybSB0byB0aGUgcHJvcG9zYWwg Ynkgc2hvd2luZw0KdGhhdCB0aGUgcHJvYmFiaWxpdHkgZm9yIGFsbCB0cmFuc2FjdGlvbnMgaW5j bHVkZWQgaW4gdGhlIGJsb2NrDQpzdGF0aXN0aWNhbGx5IGNvbmZvcm1zIHRvIGEgcHJvYmFiaWxp dHkgZGlzdHJpYnV0aW9uIGN1cnZlLCAqaWYqIHRoZQ0KaW5kaXZpZHVhbCB0cmFuc2FjdGlvbiBw cmlvcml0eSBjYW4gYmUgcmVjcmVhdGVkLiBJIGFtIG5vdCB0aGF0IGRlZXANCmludG8gdGhlIG1h dGhlbWF0aWNzOyBob3dldmVyLCBpdCBtYXkgYWxzbyBiZSBwb3NzaWJsZSB0byB1c2UgYSBzaW1p bGFyDQptZXRob2QgdG8gZG8gdGhpcyBqdXN0IGJhc2VkIG9uIHRoZSBmZWUsIHRoYXQgc3RhdGlz dGljYWxseSwgdGhlIGJsb2NrDQpjb25mb3JtcyB0byBhIGZlZSBkaXN0cmlidXRpb24uIEFueSBk dXN0IGFuZCB6ZXJvLWZlZSB0cmFuc2FjdGlvbnMNCndvdWxkIGhhdmUgdG8gYmUgaWdub3JlZC4g VGhpcyBzb2x1dGlvbiBuZWVkcyBhIGNvbXBldGVudCBtYXRoZW1hdGljaWFuDQp3aXRoIGV4cGVy aWVuY2UgaW4gcHJvYmFiaWxpdHkgYW5kIHN0YXRpc3RpY2FsIGRpc3RyaWJ1dGlvbi4NCg0KVGhl cmUgaGFzIGJlZW4gc29tZSBjb25jZXJuIGV4cHJlc3NlZCBvdmVyIHNwYW0gYW5kIHZlcnkgbG93 IGZlZQ0KdHJhbnNhY3Rpb25zLCBhbmQgYW4gaW5maW5pdGUgYmxvY2sgc2l6ZSByZXN1bHRpbmcu IEkgaG9wZSB0aGF0IGZvcg0KdGhvc2UgY29uY2VybmVkIHVzaW5nIHRoZSBkdXN0IGxldmVsIGFk ZHJlc3NlcyB0aGUgaXNzdWUsIGVzcGVjaWFsbHkgYXMNCnRoZSB2YWx1ZSBvZiBCaXRjb2luIGdy b3dzLg0KDQpUaGlzIHByb3Bvc2FsIGlzIG5lY2Vzc2FyeS4gSSBpbXBsb3JlLCBhdCB0aGUgdmVy eSBsZWFzdCwgdGhhdCB3ZSB1c2UNCnNvbWUgbWV0aG9kIHRoYXQgdmFsaWRhdGVzIGZ1bGwgdHJh bnNhY3Rpb24gcmVsaWFiaWxpdHkgYW5kIGVuYWJsZXMNCnNjYWxhYmlsaXR5IG9mIEJpdGNvaW4u IElmIG5vdCB0aGlzIHByb3Bvc2FsLCBhbiBhbHRlcm5hdGl2ZS4NCg0KSSBoYXZlIGRvbmUgYXMg bXVjaCB3aXRoIHRoaXMgcHJvcG9zYWwgYXMgSSBmZWVsIHRoYXQgSSBhbSBhYmxlIHNvIGZhcg0K YnV0IGNvbnRpbnVlIHRvIHRha2UgeW91ciBmZWVkYmFjay4NCg0KUmVnYXJkcyzCoMKgDQpEYW1p YW4gV2lsbGlhbXNvbg0KDQpbIVtDcmVhdGl2ZSBDb21tb25zIExpY2Vuc2VdKGh0dHBzOi8vaS5j cmVhdGl2ZWNvbW1vbnMub3JnL2wvYnktc2EvNC4wLw0KODh4MzEucG5nKV0oaHR0cDovL2NyZWF0 aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvNC4wLynCoMKgDQo8c3BhbiB4bWxuczpkY3Q9 Imh0dHA6Ly9wdXJsLm9yZy9kYy90ZXJtcy8iDQpocmVmPSJodHRwOi8vcHVybC5vcmcvZGMvZGNt aXR5cGUvVGV4dCIgcHJvcGVydHk9ImRjdDp0aXRsZSINCnJlbD0iZGN0OnR5cGUiPkJJUCBQcm9w b3NhbDogVVRQRk9USUIgLSBVc2UgVHJhbnNhY3Rpb24gUHJpb3JpdHkgRm9yDQpPcmRlcmluZyBU cmFuc2FjdGlvbnMgSW4gQmxvY2tzPC9zcGFuPiBieSBbRGFtaWFuIFdpbGxpYW1zb24NCiZsdDt3 aWxsdGVjaEBsaXZlLmNvbS5hdSZndDtdKGh0dHA6Ly90aGVraW5namFtZXNocm1oLnR1bWJsci5j b20vcG9zdC8xDQo2ODk0ODUzMDk1MC9iaXAtcHJvcG9zYWwtdXRwZm90aWItdXNlLXRyYW5zYWN0 aW9uLXByaW9yaXR5LWZvci1vcmRlcikNCmlzIGxpY2Vuc2VkIHVuZGVyIGEgW0NyZWF0aXZlIENv bW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjANCkludGVybmF0aW9uYWwgTGljZW5zZV0o aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvNC4wLykuDQpCYXNlZCBv biBhIHdvcmsgYXQgW2h0dHBzOi8vbGlzdHMubGludXhmb3VuZGF0aW9uLm9yZy9waXBlcm1haWwv Yml0Y29pbg0KLWRldi8yMDE3LQ0KRGVjZW1iZXIvMDE1MzcxLmh0bWxdKGh0dHBzOi8vbGlzdHMu bGludXhmb3VuZGF0aW9uLm9yZy9waXBlcm1haWwvYml0Y28NCmluLWRldi8yMDE3LURlY2VtYmVy LzAxNTM3MS5odG1sKS4NClBlcm1pc3Npb25zIGJleW9uZCB0aGUgc2NvcGUgb2YgdGhpcyBsaWNl bnNlIG1heSBiZSBhdmFpbGFibGUgYXQgW2h0dHBzDQo6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNl cy9CU0QtMy0NCkNsYXVzZV0oaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1D bGF1c2UpLg0K