From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from Hermes.metastack.local (172.16.0.8) by Hermes.metastack.local (172.16.0.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32 via Mailbox Transport; Fri, 9 Feb 2024 16:01:04 +0000 Received: from Hermes.metastack.local (172.16.0.8) by Hermes.metastack.local (172.16.0.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Fri, 9 Feb 2024 16:01:03 +0000 Received: from exchange.romulus.metastack.com (172.16.0.21) by Hermes.metastack.local (172.16.0.8) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.2507.32 via Frontend Transport; Fri, 9 Feb 2024 16:01:03 +0000 Received: from romulus.metastack.com ([172.16.0.20]) by exchange.romulus.metastack.com (8.14.2/8.14.2) with ESMTP id 419G13wX026207 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Fri, 9 Feb 2024 16:01:04 GMT Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by romulus.metastack.com (8.14.2/8.14.2) with ESMTP id 419G0pHi026182 for ; Fri, 9 Feb 2024 16:00:52 GMT Received: from prod-listesu18.inria.fr (HELO sympa.inria.fr) ([128.93.162.160]) by mail2-relais-roc.national.inria.fr with ESMTP; 09 Feb 2024 17:00:48 +0100 Received: by sympa.inria.fr (Postfix, from userid 20132) id 17527E0D1E; Fri, 9 Feb 2024 17:00:45 +0100 (CET) Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id B555FE0CD5; Fri, 9 Feb 2024 17:00:41 +0100 (CET) Received: from mail-pf1-f179.google.com ([209.85.210.179]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2024 17:00:39 +0100 Received: by mail-pf1-f179.google.com with SMTP id d2e1a72fcca58-6e063dc2cfbso798730b3a.2; Fri, 09 Feb 2024 08:00:39 -0800 (PST) From: ICFP Publicity To: agda , agents , bigloo , caml-list , categories , coq-club , ecoop , fp-nl , fun , gambit-list , GPCE-related , haskell , haskell-cafe , infodir_sigplan , isabelle-users , k-users , mlton , nvti , prog-lang , racket-users , relics , sml-list , theory-logic , theory-nt , types-announce Subject: [Caml-list] ICFP 2024: Second Call for Papers Thread-Topic: [Caml-list] ICFP 2024: Second Call for Papers Thread-Index: AQHaW3Ev84LES45cJkmPKToFA0IXnw== Sender: "caml-list-request@inria.fr" X-MS-Exchange-MessageSentRepresentingType: 2 Date: Fri, 9 Feb 2024 16:00:26 +0000 Message-ID: Keywords: Sent to dra-news@metastack.com,Marked bulk,MetaStack - Lists,MetaStack List-Help: List-Subscribe: List-Unsubscribe: Reply-To: ICFP Publicity Content-Language: en-GB X-MS-Exchange-Organization-AuthAs: Anonymous X-MS-Exchange-Organization-AuthSource: Hermes.metastack.local X-MS-Has-Attach: X-Auto-Response-Suppress: All X-MS-Exchange-Organization-Network-Message-Id: cea6ffa0-bd9d-4506-fd75-08dc2988517c X-MS-TNEF-Correlator: X-MS-Exchange-Organization-RecordReviewCfmType: 0 x-scanned-by: MIMEDefang 2.65 on 62.31.23.242 x-received: by 2002:aa7:92d1:0:b0:6e0:4a04:2282 with SMTP id k17-20020aa792d1000000b006e04a042282mr1769788pfa.22.1707494437211; Fri, 09 Feb 2024 08:00:37 -0800 (PST) received-spf: None (mail2-relais-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@sympa.inria.fr) identity=helo; client-ip=128.93.162.160; receiver=mail2-relais-roc.national.inria.fr; envelope-from="caml-list-owner@inria.fr"; x-sender="postmaster@sympa.inria.fr"; x-conformance=spf_only x-ironport-av: E=Sophos;i="6.05,257,1701126000"; d="scan'208,217";a="151244449" x-ironport-anti-spam-filtered: true x-loop: caml-list@inria.fr x-no-archive: yes Content-Type: text/html; charset="utf-8" Content-ID: <0F0D4B0695BA834F9A9A02F8CD42C9FD@metastack.local> Content-Transfer-Encoding: base64 MIME-Version: 1.0 PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5Pg0KPGRpdiBkaXI9Imx0 ciI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7UEFDTVBM IFZvbHVtZSA3LCBJc3N1ZSBJQ0ZQIDIwMjQ8YnI+DQo8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7Q2FsbCBmb3IgUGFwZXJzPGJyPg0KPGJyPg0KJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7QWNjZXB0ZWQgcGFwZXJzIHRvIGJlIGludml0ZWQgZm9yIHByZXNl bnRhdGlvbiBhdDxicj4NCiZuYnNwOzxicj4NClRoZSAyOXRoIEFDTSBTSUdQTEFOIEludGVybmF0 aW9uYWwgQ29uZmVyZW5jZSBvbiBGdW5jdGlvbmFsIFByb2dyYW1taW5nPGJyPg0KJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDxicj4NCiZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IE1pbGFuLCBJdGFseTxicj4NCjxi cj4NCiMjIyBJbXBvcnRhbnQgZGF0ZXM8YnI+DQo8YnI+DQooQWxsIGRhdGVzIGFyZSBpbiAyMDIz IGF0IDExLjU5cG0gQW55d2hlcmUgb24gRWFydGguKTxicj4NCjxicj4NClBhcGVyIFN1Ym1pc3Np b24gLS0gV2VkIDI4IEZlYiAyMDI0ICZuYnNwOyhBT0UpPGJyPg0KUGFwZXIgQXV0aG9yIFJlc3Bv bnNlIC0tIE1vbiAyOSBBcHIgMTI6MDAgLSBXZWQgMSBNYXkgMTI6MDAgMjAyNDxicj4NClBhcGVy IE5vdGlmaWNhdGlvbiAtLU1vbiAyMCBNYXkgMjAyNDxicj4NCjxicj4NCjxicj4NCiMjIyBORVcg VEhJUyBZRUFSPGJyPg0KLS0tLS0tLS0tLS0tLS0tLS0tLTxicj4NCjxicj4NCiogRnVsbCBkb3Vi bGUgYmxpbmQgcmV2aWV3aW5nPGJyPg0KPGJyPg0KIyMjIFNjb3BlPGJyPg0KLS0tLS0tLS0tLS0t LS0tLS0tLTxicj4NCjxicj4NClBBQ01QTCBpc3N1ZSBJQ0ZQIDIwMjQgc2Vla3Mgb3JpZ2luYWwg cGFwZXJzIG9uIHRoZSBhcnQgYW5kIHNjaWVuY2Ugb2YgZnVuY3Rpb25hbCBwcm9ncmFtbWluZy4g U3VibWlzc2lvbnMgYXJlIGludml0ZWQgb24gYWxsIHRvcGljcyBmcm9tIHByaW5jaXBsZXMgdG8g cHJhY3RpY2UsIGZyb20gZm91bmRhdGlvbnMgdG8gZmVhdHVyZXMsIGFuZCBmcm9tIGFic3RyYWN0 aW9uIHRvIGFwcGxpY2F0aW9uLiBUaGUgc2NvcGUgaW5jbHVkZXMgYWxsIGxhbmd1YWdlcw0KIHRo YXQgZW5jb3VyYWdlIGZ1bmN0aW9uYWwgcHJvZ3JhbW1pbmcsIGluY2x1ZGluZyBib3RoIHB1cmVs eSBhcHBsaWNhdGl2ZSBhbmQgaW1wZXJhdGl2ZSBsYW5ndWFnZXMsIGFzIHdlbGwgYXMgbGFuZ3Vh Z2VzIHdpdGggb2JqZWN0cywgY29uY3VycmVuY3ksIG9yIHBhcmFsbGVsaXNtLiBUb3BpY3Mgb2Yg aW50ZXJlc3QgaW5jbHVkZSAoYnV0IGFyZSBub3QgbGltaXRlZCB0byk6PGJyPg0KPGJyPg0KKiBM YW5ndWFnZSBEZXNpZ246IGNvbmN1cnJlbmN5LCBwYXJhbGxlbGlzbSwgYW5kIGRpc3RyaWJ1dGlv bjsgbW9kdWxhcml0eTsgY29tcG9uZW50cyBhbmQgY29tcG9zaXRpb247IG1ldGEtcHJvZ3JhbW1p bmc7IG1hY3JvczsgcGF0dGVybiBtYXRjaGluZzsgdHlwZSBzeXN0ZW1zOyB0eXBlIGluZmVyZW5j ZTsgZGVwZW5kZW50IHR5cGVzOyBlZmZlY3QgdHlwZXM7IGdyYWR1YWwgdHlwZXM7IHJlZmluZW1l bnQgdHlwZXM7IHNlc3Npb24gdHlwZXM7IGludGVyb3BlcmFiaWxpdHk7DQogZG9tYWluLXNwZWNp ZmljIGxhbmd1YWdlczsgaW1wZXJhdGl2ZSBwcm9ncmFtbWluZzsgb2JqZWN0LW9yaWVudGVkIHBy b2dyYW1taW5nOyBsb2dpYyBwcm9ncmFtbWluZzsgcHJvYmFiaWxpc3RpYyBwcm9ncmFtbWluZzsg cmVhY3RpdmUgcHJvZ3JhbW1pbmc7IGdlbmVyaWMgcHJvZ3JhbW1pbmc7IGJpZGlyZWN0aW9uYWwg cHJvZ3JhbW1pbmcuPGJyPg0KPGJyPg0KKiBJbXBsZW1lbnRhdGlvbjogYWJzdHJhY3QgbWFjaGlu ZXM7IHZpcnR1YWwgbWFjaGluZXM7IGludGVycHJldGF0aW9uOyBjb21waWxhdGlvbjsgY29tcGls ZS10aW1lIGFuZCBydW4tdGltZSBvcHRpbWlzYXRpb247IGdhcmJhZ2UgY29sbGVjdGlvbiBhbmQg bWVtb3J5IG1hbmFnZW1lbnQ7IHJ1bnRpbWUgc3lzdGVtczsgbXVsdGktdGhyZWFkaW5nOyBleHBs b2l0aW5nIHBhcmFsbGVsIGhhcmR3YXJlOyBpbnRlcmZhY2VzIHRvIGZvcmVpZ24gZnVuY3Rpb25z LA0KIHNlcnZpY2VzLCBjb21wb25lbnRzLCBvciBsb3ctbGV2ZWwgbWFjaGluZSByZXNvdXJjZXMu PGJyPg0KPGJyPg0KKiBTb2Z0d2FyZS1EZXZlbG9wbWVudCBUZWNobmlxdWVzOiBhbGdvcml0aG1z IGFuZCBkYXRhIHN0cnVjdHVyZXM7IGRlc2lnbiBwYXR0ZXJuczsgc3BlY2lmaWNhdGlvbjsgdmVy aWZpY2F0aW9uOyB2YWxpZGF0aW9uOyBwcm9vZiBhc3Npc3RhbnRzOyBkZWJ1Z2dpbmc7IHRlc3Rp bmc7IHRyYWNpbmc7IHByb2ZpbGluZzsgYnVpbGQgc3lzdGVtczsgcHJvZ3JhbSBzeW50aGVzaXMu PGJyPg0KPGJyPg0KKiBGb3VuZGF0aW9uczogZm9ybWFsIHNlbWFudGljczsgbGFtYmRhIGNhbGN1 bHVzOyBwcm9ncmFtIGVxdWl2YWxlbmNlOyByZXdyaXRpbmc7IHR5cGUgdGhlb3J5OyBsb2dpYzsg Y2F0ZWdvcnkgdGhlb3J5OyBjb21wdXRhdGlvbmFsIGVmZmVjdHM7IGNvbnRpbnVhdGlvbnM7IGNv bnRyb2w7IHN0YXRlOyBuYW1lcyBhbmQgYmluZGluZzsgcHJvZ3JhbSB2ZXJpZmljYXRpb24uPGJy Pg0KPGJyPg0KKiBBbmFseXNpcyBhbmQgVHJhbnNmb3JtYXRpb246IGNvbnRyb2wgZmxvdzsgZGF0 YSBmbG93OyBhYnN0cmFjdCBpbnRlcnByZXRhdGlvbjsgcGFydGlhbCBldmFsdWF0aW9uOyBwcm9n cmFtIGNhbGN1bGF0aW9uLjxicj4NCjxicj4NCiogQXBwbGljYXRpb25zOiBzeW1ib2xpYyBjb21w dXRpbmc7IGZvcm1hbC1tZXRob2RzIHRvb2xzOyBhcnRpZmljaWFsIGludGVsbGlnZW5jZTsgc3lz dGVtcyBwcm9ncmFtbWluZzsgZGlzdHJpYnV0ZWQgc3lzdGVtcyBhbmQgd2ViIHByb2dyYW1taW5n OyBoYXJkd2FyZSBkZXNpZ247IGRhdGFiYXNlczsgc2NpZW50aWZpYyBhbmQgbnVtZXJpY2FsIGNv bXB1dGluZzsgZ3JhcGhpY2FsIHVzZXIgaW50ZXJmYWNlczsgZ3JhcGhpY3MgYW5kIG11bHRpbWVk aWE7DQogR1BVIHByb2dyYW1taW5nOyBzY3JpcHRpbmc7IHN5c3RlbSBhZG1pbmlzdHJhdGlvbjsg c2VjdXJpdHkuPGJyPg0KPGJyPg0KKiBFZHVjYXRpb246IHRlYWNoaW5nIGludHJvZHVjdG9yeSBw cm9ncmFtbWluZzsgbWF0aGVtYXRpY2FsIHByb29mOyBhbGdlYnJhLjxicj4NCjxicj4NClN1Ym1p c3Npb25zIHdpbGwgYmUgZXZhbHVhdGVkIGFjY29yZGluZyB0byB0aGVpciByZWxldmFuY2UsIGNv cnJlY3RuZXNzLCBzaWduaWZpY2FuY2UsIG9yaWdpbmFsaXR5LCBhbmQgY2xhcml0eS4gRWFjaCBz dWJtaXNzaW9uIHNob3VsZCBleHBsYWluIGl0cyBjb250cmlidXRpb25zIGluIGJvdGggZ2VuZXJh bCBhbmQgdGVjaG5pY2FsIHRlcm1zLCBjbGVhcmx5IGlkZW50aWZ5aW5nIHdoYXQgaGFzIGJlZW4g YWNjb21wbGlzaGVkLCBleHBsYWluaW5nDQogd2h5IGl0IGlzIHNpZ25pZmljYW50LCBhbmQgY29t cGFyaW5nIGl0IHdpdGggcHJldmlvdXMgd29yay4gVGhlIHRlY2huaWNhbCBjb250ZW50IHNob3Vs ZCBiZSBhY2Nlc3NpYmxlIHRvIGEgYnJvYWQgYXVkaWVuY2UuPGJyPg0KPGJyPg0KUEFDTVBMIGlz c3VlIElDRlAgMjAyNCBhbHNvIHdlbGNvbWVzIHN1Ym1pc3Npb25zIGluIHR3byBzZXBhcmF0ZSBj YXRlZ29yaWVzIOKAlCBGdW5jdGlvbmFsIFBlYXJscyBhbmQgRXhwZXJpZW5jZSBSZXBvcnRzIOKA lCB0aGF0IG11c3QgYmUgbWFya2VkIGFzIHN1Y2ggd2hlbiBzdWJtaXR0ZWQgYW5kIHRoYXQgbmVl ZCBub3QgcmVwb3J0IG9yaWdpbmFsIHJlc2VhcmNoIHJlc3VsdHMuIERldGFpbGVkIGd1aWRlbGlu ZXMgb24gYm90aCBjYXRlZ29yaWVzIGFyZQ0KIGdpdmVuIGF0IHRoZSBlbmQgb2YgdGhpcyBjYWxs Ljxicj4NCjxicj4NCkluIGFuIGVmZm9ydCB0byBhY2hpZXZlIGEgYmFsYW5jZWQsIGRpdmVyc2Ug cHJvZ3JhbSwgZWFjaCBhdXRob3IgbWF5IGJlIGxpc3RlZCBhcyBhIChjbylhdXRob3Igb24gYSBt YXhpbXVtIG9mIGZvdXIgc3VibWlzc2lvbnMuIFN1Ym1pc3Npb25zIGZyb20gdW5kZXJyZXByZXNl bnRlZCBncm91cHMgYXJlIGVuY291cmFnZWQuIEF1dGhvcnMgd2hvIHJlcXVpcmUgZmluYW5jaWFs IHN1cHBvcnQgdG8gYXR0ZW5kIHRoZSBjb25mZXJlbmNlIGNhbiBhcHBseQ0KIGZvciBQQUMgZnVu ZGluZyAoPGEgaHJlZj0iaHR0cDovL3d3dy5zaWdwbGFuLm9yZy9QQUMvIj5odHRwOi8vd3d3LnNp Z3BsYW4ub3JnL1BBQy88L2E+KS48YnI+DQo8YnI+DQpUaGUgR2VuZXJhbCBDaGFpciBhbmQgUEMg Q2hhaXIgbWF5IG5vdCBzdWJtaXQgcGFwZXJzLiBQQyBtZW1iZXJzIChvdGhlciB0aGFuIHRoZSBQ QyBDaGFpcikgbWF5IHN1Ym1pdCBwYXBlcnMuPGJyPg0KPGJyPg0KUGxlYXNlIGNvbnRhY3QgdGhl IFByb2dyYW0gQ2hhaXIgaWYgeW91IGhhdmUgcXVlc3Rpb25zIG9yIGFyZSBjb25jZXJuZWQgYWJv dXQgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiBhIHRvcGljLjxicj4NCjxicj4NCiMjIyBGdWxsIERv dWJsZS1CbGluZCBSZXZpZXdpbmcgUHJvY2Vzczxicj4NCjxicj4NCklDRlAgMjAyNCB3aWxsIHVz ZSBhIGZ1bGwgZG91YmxlLWJsaW5kIHJldmlld2luZyBwcm9jZXNzIChzaW1pbGFyIHRvIHRoZSBv bmUgdXNlZCBmb3IgUE9QTCAyMDI0IGJ1dCBkaWZmZXJlbnQgZnJvbSB0aGUgbGlnaHR3ZWlnaHQg ZG91YmxlLWJsaW5kIHByb2Nlc3MgdXNlZCBpbiBwcmV2aW91cyB5ZWFycykuIFRoaXMgbWVhbnMg dGhhdCBpZGVudGl0aWVzIG9mIGF1dGhvcnMgd2lsbCBub3QgYmUgbWFkZSB2aXNpYmxlIHRvIHJl dmlld2VycyB1bnRpbA0KIGFmdGVyIGNvbmRpdGlvbmFsLWFjY2VwdGFuY2UgZGVjaXNpb25zIGhh dmUgYmVlbiBtYWRlLCBhbmQgdGhlbiBvbmx5IGZvciB0aGUgY29uZGl0aW9uYWxseS1hY2NlcHRl ZCBwYXBlcnMuIFRoZSB1c2Ugb2YgZnVsbCBkb3VibGUtYmxpbmQgcmV2aWV3aW5nIGhhcyBzZXZl cmFsIGNvbnNlcXVlbmNlcyBmb3IgYXV0aG9ycy48YnI+DQo8YnI+DQoqIFN1Ym1pc3Npb25zOiBB dXRob3JzIG11c3Qgb21pdCB0aGVpciBuYW1lcyBhbmQgaW5zdGl0dXRpb25zIGZyb20gdGhlaXIg cGFwZXIgc3VibWlzc2lvbnMuIEluIGFkZGl0aW9uLCByZWZlcmVuY2VzIHRvIGF1dGhvcnPigJkg b3duIHByaW9yIHdvcmsgc2hvdWxkIGJlIGluIHRoZSB0aGlyZCBwZXJzb24gKGUuZy4sIG5vdCDi gJxXZSBidWlsZCBvbiBvdXIgcHJldmlvdXMgd29yayDigKbigJ0gYnV0IHJhdGhlciDigJxXZSBi dWlsZCBvbiB0aGUgd29yayBvZiDigKbigJ0pLjxicj4NCjxicj4NCiogU3VwcGxlbWVudGFyeSBt YXRlcmlhbDogQXV0aG9ycyBhcmUgcGVybWl0dGVkIHRvIHByb3ZpZGUgc3VwcGxlbWVudGFyeSBt YXRlcmlhbCAoZS5nLiwgZGV0YWlsZWQgcHJvb2ZzLCBwcm9vZiBzY3JpcHRzLCBzeXN0ZW0gaW1w bGVtZW50YXRpb25zLCBvciBleHBlcmltZW50YWwgZGF0YSkgYWxvbmcgd2l0aCB0aGVpciBzdWJt aXNzaW9uLCB3aGljaCByZXZpZXdlcnMgbWF5IChidXQgYXJlIG5vdCByZXF1aXJlZCB0bykgZXhh bWluZS4gVGhpcyBtYXRlcmlhbA0KIG1heSB0YWtlIHRoZSBmb3JtIG9mIGEgc2luZ2xlIGZpbGUs IHN1Y2ggYXMgYSBQREYgb3IgYSB0YXJiYWxsLiBBdXRob3JzIG11c3QgZnVsbHkgYW5vbnltaXpl IGFueSBzdXBwbGVtZW50YXJ5IG1hdGVyaWFsLiBMaW5rcyB0byBzdXBwbGVtZW50YXJ5IG1hdGVy aWFsIG9uIGV4dGVybmFsIHdlYnNpdGVzIGFyZSBub3QgcGVybWl0dGVkLjxicj4NCjxicj4NCiog QXV0aG9yIHJlc3BvbnNlOiBJbiByZXNwb25kaW5nIHRvIHJldmlld3MsIGF1dGhvcnMgc2hvdWxk IG5vdCBzYXkgYW55dGhpbmcgdGhhdCByZXZlYWxzIHRoZWlyIGlkZW50aXR5LCBzaW5jZSBhdXRo b3IgaWRlbnRpdGllcyB3aWxsIG5vdCBiZSByZXZlYWxlZCB0byByZXZpZXdlcnMgYXQgdGhhdCBz dGFnZSBvZiB0aGUgcmV2aWV3aW5nIHByb2Nlc3MuPGJyPg0KPGJyPg0KKiBEaXNzZW1pbmF0aW9u IG9mIHdvcmsgdW5kZXIgc3VibWlzc2lvbjogQXV0aG9ycyBhcmUgd2VsY29tZSB0byBkaXNzZW1p bmF0ZSB0aGVpciBpZGVhcyBhbmQgcG9zdCBkcmFmdCB2ZXJzaW9ucyBvZiB0aGVpciBwYXBlcihz KSBvbiB0aGVpciBwZXJzb25hbCB3ZWJzaXRlLCBpbnN0aXR1dGlvbmFsIHJlcG9zaXRvcnksIG9y IGFyWGl2IChyZXZpZXdlcnMgd2lsbCBiZSBhc2tlZCB0byB0dXJuIG9mZiBhclhpdiBub3RpZmlj YXRpb25zIGR1cmluZw0KIHRoZSByZXZpZXcgcGVyaW9kKS4gQnV0IGF1dGhvcnMgc2hvdWxkIG5v dCB0YWtlIHN0ZXBzIHRoYXQgd291bGQgYWxtb3N0IGNlcnRhaW5seSByZXZlYWwgdGhlaXIgaWRl bnRpdGllcyB0byBtZW1iZXJzIG9mIHRoZSBQcm9ncmFtIENvbW1pdHRlZSwgZS5nLiwgZGlyZWN0 bHkgY29udGFjdGluZyBQQyBtZW1iZXJzIG9yIHB1YmxpY2l6aW5nIHRoZSB3b3JrIG9uIHdpZGVs eS12aXNpYmxlIHNvY2lhbCBtZWRpYSBvciBtYWpvciBtYWlsaW5nIGxpc3RzDQogdXNlZCBieSB0 aGUgY29tbXVuaXR5Ljxicj4NCjxicj4NClRoZSBwdXJwb3NlIG9mIHRoZSBhYm92ZSByZXN0cmlj dGlvbnMgaXMgdG8gaGVscCB0aGUgUHJvZ3JhbSBDb21taXR0ZWUgYW5kIGV4dGVybmFsIHJldmll d2VycyBjb21lIHRvIGEganVkZ21lbnQgYWJvdXQgdGhlIHBhcGVyIHdpdGhvdXQgYmlhcywgbm90 IHRvIG1ha2UgaXQgaW1wb3NzaWJsZSBmb3IgdGhlbSB0byBkaXNjb3ZlciB0aGUgYXV0aG9yc+KA mSBpZGVudGl0aWVzIGlmIHRoZXkgd2VyZSB0byB0cnkuIEluIHBhcnRpY3VsYXIsIG5vdGhpbmcN CiBzaG91bGQgYmUgZG9uZSBpbiB0aGUgbmFtZSBvZiBhbm9ueW1pdHkgdGhhdCB3ZWFrZW5zIHRo ZSBxdWFsaXR5IG9mIHRoZSBzdWJtaXNzaW9uLiBIb3dldmVyLCB0aGVyZSBhcmUgb2NjYXNpb25h bGx5IGNhc2VzIHdoZXJlIGFkaGVyaW5nIHRvIHRoZSBhYm92ZSByZXN0cmljdGlvbnMgaXMgdHJ1 bHkgZGlmZmljdWx0IG9yIGltcG9zc2libGUgZm9yIG9uZSByZWFzb24gb3IgYW5vdGhlci4gSW4g c3VjaCBjYXNlcywgdGhlIGF1dGhvcnMgc2hvdWxkDQogY29udGFjdCB0aGUgUHJvZ3JhbSBDaGFp ciB0byBkaXNjdXNzIHRoZSBzaXR1YXRpb24gYW5kIGhvdyB0byBoYW5kbGUgaXQuPGJyPg0KPGJy Pg0KPGJyPg0KIyMjIFByZXBhcmF0aW9uIG9mIHN1Ym1pc3Npb25zPGJyPg0KLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLTxicj4NCjxicj4NCiogRGVhZGxpbmU6IFRoZSBkZWFkbGluZSBm b3Igc3VibWlzc2lvbnMgaXMgV2VkbmVzZGF5LCAyOCBGZWJydWFyeSAsIDIwMjQsIEFueXdoZXJl IG9uIEVhcnRoICg8YSBocmVmPSJodHRwczovL3d3dy50aW1lYW5kZGF0ZS5jb20vdGltZS96b25l cy9hb2UiPmh0dHBzOi8vd3d3LnRpbWVhbmRkYXRlLmNvbS90aW1lL3pvbmVzL2FvZTwvYT4pLiBU aGlzIGRlYWRsaW5lIHdpbGwgYmUgc3RyaWN0bHkgZW5mb3JjZWQuPGJyPg0KPGJyPg0KKiBGb3Jt YXR0aW5nOiBTdWJtaXNzaW9ucyBtdXN0IGJlIGluIFBERiBmb3JtYXQsIHByaW50YWJsZSBpbiBi bGFjayBhbmQgd2hpdGUgb24gVVMgTGV0dGVyIHNpemVkIHBhcGVyIGFuZCBpbnRlcnByZXRhYmxl IGJ5IGNvbW1vbiBQREYgdG9vbHMuIEFsbCBzdWJtaXNzaW9ucyBtdXN0IGFkaGVyZSB0byB0aGUg 4oCcQUNNIFNtYWxs4oCdIHRlbXBsYXRlIHRoYXQgaXMgYXZhaWxhYmxlIChpbiBib3RoIExhVGVY IGFuZCBXb3JkIGZvcm1hdHMpIGZyb20NCjxhIGhyZWY9Imh0dHBzOi8vd3d3LmFjbS5vcmcvcHVi bGljYXRpb25zL2F1dGhvcnMvc3VibWlzc2lvbnMiPmh0dHBzOi8vd3d3LmFjbS5vcmcvcHVibGlj YXRpb25zL2F1dGhvcnMvc3VibWlzc2lvbnM8L2E+Ljxicj4NCjxicj4NClRoZXJlIGlzIGEgbGlt aXQgb2YgMjUgcGFnZXMgZm9yIGEgZnVsbCBwYXBlciBvciBGdW5jdGlvbmFsIFBlYXJsIGFuZCAx MiBwYWdlcyBmb3IgYW4gRXhwZXJpZW5jZSBSZXBvcnQ7IGluIGVpdGhlciBjYXNlLCB0aGUgYmli bGlvZ3JhcGh5IGFuZCBhbiBvcHRpb25hbCBjbGVhcmx5IG1hcmtlZCBhcHBlbmRpeCB3aWxsIG5v dCBiZSBjb3VudGVkIGFnYWluc3QgdGhlc2UgbGltaXRzLiBTdWJtaXNzaW9ucyB0aGF0IGV4Y2Vl ZCB0aGUgcGFnZSBsaW1pdHMNCiBvciwgZm9yIG90aGVyIHJlYXNvbnMsIGRvIG5vdCBtZWV0IHRo ZSByZXF1aXJlbWVudHMgZm9yIGZvcm1hdHRpbmcsIHdpbGwgYmUgc3VtbWFyaWx5IHJlamVjdGVk Ljxicj4NCjxicj4NClNlZSBhbHNvIFBBQ01QTOKAmXMgSW5mb3JtYXRpb24gYW5kIEd1aWRlbGlu ZXMgZm9yIEF1dGhvcnMgYXQgPGEgaHJlZj0iaHR0cHM6Ly9wYWNtcGwuYWNtLm9yZy9hdXRob3Jz LmNmbSI+DQpodHRwczovL3BhY21wbC5hY20ub3JnL2F1dGhvcnMuY2ZtPC9hPi48YnI+DQo8YnI+ DQoqIFN1Ym1pc3Npb246IFN1Ym1pc3Npb25zIHdpbGwgYmUgYWNjZXB0ZWQgYXQgPGEgaHJlZj0i aHR0cHM6Ly9pY2ZwMjQuaG90Y3JwLmNvbS8iPg0KaHR0cHM6Ly9pY2ZwMjQuaG90Y3JwLmNvbS88 L2E+PGJyPg0KPGJyPg0KSW1wcm92ZWQgdmVyc2lvbnMgb2YgYSBwYXBlciBtYXkgYmUgc3VibWl0 dGVkIGF0IGFueSBwb2ludCBiZWZvcmUgdGhlIHN1Ym1pc3Npb24gZGVhZGxpbmUgdXNpbmcgdGhl IHNhbWUgd2ViIGludGVyZmFjZS48YnI+DQo8YnI+DQoqIEF1dGhvciBSZXNwb25zZSBQZXJpb2Q6 IEF1dGhvcnMgd2lsbCBoYXZlIGEgNzItaG91ciBwZXJpb2QsIHN0YXJ0aW5nIGF0IDEyOjAwIChu b29uKSBBT0Ugb24gTW9uZGF5LCAyOSBBcHJpbCwgMjAyNCwgdG8gcmVhZCByZXZpZXdzIGFuZCBy ZXNwb25kIHRvIHRoZW0uPGJyPg0KPGJyPg0KKiBBcHBlbmRpeCBhbmQgU3VwcGxlbWVudGFyeSBN YXRlcmlhbDogQXV0aG9ycyBoYXZlIHRoZSBvcHRpb24gdG8gaW5jbHVkZSBhIGNsZWFybHkgbWFy a2VkIGFwcGVuZGl4IGFuZC9vciB0byBhdHRhY2ggc3VwcGxlbWVudGFyeSBtYXRlcmlhbCB0byBh IHN1Ym1pc3Npb24sIG9uIHRoZSB1bmRlcnN0YW5kaW5nIHRoYXQgcmV2aWV3ZXJzIG1heSBjaG9v c2Ugbm90IHRvIGxvb2sgYXQgc3VjaCBhbiBhcHBlbmRpeCBvciBzdXBwbGVtZW50YXJ5IG1hdGVy aWFsLg0KIFN1cHBsZW1lbnRhcnkgbWF0ZXJpYWwgbWF5IGJlIHVwbG9hZGVkIGFzIGEgc2VwYXJh dGUgUERGIGRvY3VtZW50IG9yIHRhcmJhbGwuIEFueSBzdXBwbGVtZW50YXJ5IG1hdGVyaWFsIG11 c3QgYmUgdXBsb2FkZWQgYXQgc3VibWlzc2lvbiB0aW1lLCBub3QgYnkgcHJvdmlkaW5nIGEgVVJM IGluIHRoZSBwYXBlciB0aGF0IHBvaW50cyB0byBhbiBleHRlcm5hbCByZXBvc2l0b3J5LiBBbGwg c3VwcGxlbWVudGFyeSBtYXRlcmlhbCBtdXN0IGJlIGFub255bWlzZWQuPGJyPg0KPGJyPg0KKiBB dXRob3JzaGlwIFBvbGljaWVzOiBBbGwgc3VibWlzc2lvbnMgYXJlIGV4cGVjdGVkIHRvIGNvbXBs eSB3aXRoIHRoZSBBQ00gUG9saWNpZXMgZm9yIEF1dGhvcnNoaXAgdGhhdCBhcmUgZGV0YWlsZWQg YXQNCjxhIGhyZWY9Imh0dHBzOi8vd3d3LmFjbS5vcmcvcHVibGljYXRpb25zL2F1dGhvcnMvaW5m b3JtYXRpb24tZm9yLWF1dGhvcnMiPmh0dHBzOi8vd3d3LmFjbS5vcmcvcHVibGljYXRpb25zL2F1 dGhvcnMvaW5mb3JtYXRpb24tZm9yLWF1dGhvcnM8L2E+Ljxicj4NCjxicj4NCiogUmVwdWJsaWNh dGlvbiBQb2xpY2llczogRWFjaCBzdWJtaXNzaW9uIG11c3QgYWRoZXJlIHRvIFNJR1BMQU7igJlz IHJlcHVibGljYXRpb24gcG9saWN5LCBhcyBleHBsYWluZWQgb24gdGhlIHdlYiBhdA0KPGEgaHJl Zj0iaHR0cDovL3d3dy5zaWdwbGFuLm9yZy9SZXNvdXJjZXMvUG9saWNpZXMvUmVwdWJsaWNhdGlv biI+aHR0cDovL3d3dy5zaWdwbGFuLm9yZy9SZXNvdXJjZXMvUG9saWNpZXMvUmVwdWJsaWNhdGlv bjwvYT4uPGJyPg0KPGJyPg0KKiBPUkNJRDogT1JDSUQgcHJvdmlkZXMgYSBwZXJzaXN0ZW50IGRp Z2l0YWwgaWRlbnRpZmllciAoYW4gT1JDSUQgaUQpIHRoYXQgeW91IG93biBhbmQgY29udHJvbCwg YW5kIHRoYXQgZGlzdGluZ3Vpc2hlcyB5b3UgZnJvbSBldmVyeSBvdGhlciByZXNlYXJjaGVyOg0K PGEgaHJlZj0iaHR0cHM6Ly9vcmNpZC5vcmcvIj5odHRwczovL29yY2lkLm9yZy88L2E+LiBBQ00g bm93IHJlcXVpcmUgYW4gT1JDSUQgaUQgZm9yIGV2ZXJ5IGF1dGhvciBvZiBhIHBhcGVyLCBub3Qg anVzdCB0aGUgY29ycmVzcG9uZGluZyBhdXRob3IuIFNvLCB0aGUgYXV0aG9yIHdobyBpcyBmaWxs aW5nIG91dCB0aGUgcGVybWlzc2lvbiBmb3JtIHNob3VsZCBtYWtlIHN1cmUgdGhleSBoYXZlIHRo ZSBPUkNJRCBpRHMgZm9yIGFsbCBvZiB0aGVpcg0KIGNvYXV0aG9ycyBiZWZvcmUgZmlsbGluZyBv dXQgdGhlIGZvcm0uIEFueSBhdXRob3JzIHdobyBkbyBub3QgeWV0IGhhdmUgYW4gT1JDSUQgaUQg Y2FuIGdvIHRvDQo8YSBocmVmPSJodHRwczovL29yY2lkLm9yZy9yZWdpc3RlciI+aHR0cHM6Ly9v cmNpZC5vcmcvcmVnaXN0ZXI8L2E+IHRvIGhhdmUgb25lIGFzc2lnbmVkLjxicj4NCjxicj4NCiMj IyBSZXZpZXcgUHJvY2Vzczxicj4NCi0tLS0tLS0tLS0tLS0tLS0tLS08YnI+DQpUaGlzIHNlY3Rp b24gb3V0bGluZXMgdGhlIHR3by1zdGFnZSBwcm9jZXNzIHdpdGggbGlnaHR3ZWlnaHQgZG91Ymxl LWJsaW5kIHJldmlld2luZyB0aGF0IHdpbGwgYmUgdXNlZCB0byBzZWxlY3QgcGFwZXJzIGZvciBQ QUNNUEwgaXNzdWUgSUNGUCAyMDI0LiBOZXcgdGhpcyB5ZWFyLCBJQ0ZQIDIwMjQgd2lsbCBhZGFw dCBhIGZ1bGwgZG91YmxlLWJsaW5kIHJldmlld2luZyBwcm9jZXNzLiBNb3JlIGluZm9ybWF0aW9u IHNlZSBiZWxvdy48YnI+DQo8YnI+DQpJQ0ZQIDIwMjQgd2lsbCBoYXZlIGFuIEFzc29jaWF0ZSBD aGFpciB3aG8gd2lsbCBoZWxwIHRoZSBQQyBDaGFpciBtb25pdG9yIHJldmlld3MsIHNvbGljaXQg ZXh0ZXJuYWwgZXhwZXJ0IHJldmlld3MgZm9yIHN1Ym1pc3Npb25zIHdoZW4gdGhlcmUgaXMgbm90 IGVub3VnaCBleHBlcnRpc2Ugb24gdGhlIGNvbW1pdHRlZSwgYW5kIGZhY2lsaXRhdGUgcmV2aWV3 ZXIgZGlzY3Vzc2lvbnMuPGJyPg0KPGJyPg0KUEFDTVBMIGlzc3VlIElDRlAgMjAyNCB3aWxsIGVt cGxveSBhIHR3by1zdGFnZSByZXZpZXcgcHJvY2Vzcy4gVGhlIGZpcnN0IHN0YWdlIGluIHRoZSBy ZXZpZXcgcHJvY2VzcyB3aWxsIGFzc2VzcyBzdWJtaXR0ZWQgcGFwZXJzIHVzaW5nIHRoZSBjcml0 ZXJpYSBzdGF0ZWQgYWJvdmUgYW5kIHdpbGwgYWxsb3cgZm9yIGZlZWRiYWNrIGFuZCBpbnB1dCBv biBpbml0aWFsIHJldmlld3MgdGhyb3VnaCB0aGUgYXV0aG9yIHJlc3BvbnNlIHBlcmlvZCBtZW50 aW9uZWQNCiBwcmV2aW91c2x5LiBBcyBhIHJlc3VsdCBvZiB0aGUgcmV2aWV3IHByb2Nlc3MsIGEg c2V0IG9mIHBhcGVycyB3aWxsIGJlIGNvbmRpdGlvbmFsbHkgYWNjZXB0ZWQgYW5kIGFsbCBvdGhl ciBwYXBlcnMgd2lsbCBiZSByZWplY3RlZC4gQXV0aG9ycyB3aWxsIGJlIG5vdGlmaWVkIG9mIHRo ZXNlIGRlY2lzaW9ucyBvbiAyMCBNYXksIDIwMjQuPGJyPg0KPGJyPg0KQXV0aG9ycyBvZiBjb25k aXRpb25hbGx5IGFjY2VwdGVkIHBhcGVycyB3aWxsIGJlIHByb3ZpZGVkIHdpdGggY29tbWl0dGVl IHJldmlld3MgYWxvbmcgd2l0aCBhIHNldCBvZiBtYW5kYXRvcnkgcmV2aXNpb25zLiBCeSAxMSBK dW5lLCAyMDI0LCB0aGUgYXV0aG9ycyBzaG91bGQgcHJvdmlkZSBhIHNlY29uZCByZXZpc2VkIHN1 Ym1pc3Npb24uIFRoZSBzZWNvbmQgYW5kIGZpbmFsIHJldmlld2luZyBwaGFzZSBhc3Nlc3NlcyB3 aGV0aGVyIHRoZSBtYW5kYXRvcnkNCiByZXZpc2lvbnMgaGF2ZSBiZWVuIGFkZXF1YXRlbHkgYWRk cmVzc2VkIGJ5IHRoZSBhdXRob3JzIGFuZCB0aGVyZWJ5IGRldGVybWluZXMgdGhlIGZpbmFsIGFj Y2VwdC9yZWplY3Qgc3RhdHVzIG9mIHRoZSBwYXBlci4gVGhlIGludGVudCBhbmQgZXhwZWN0YXRp b24gaXMgdGhhdCB0aGUgbWFuZGF0b3J5IHJldmlzaW9ucyBjYW4gZmVhc2libHkgYmUgYWRkcmVz c2VkIHdpdGhpbiB0aHJlZSB3ZWVrcy48YnI+DQo8YnI+DQpUaGUgc2Vjb25kIHN1Ym1pc3Npb24g c2hvdWxkIGNsZWFybHkgaWRlbnRpZnkgaG93IHRoZSBtYW5kYXRvcnkgcmV2aXNpb25zIHdlcmUg YWRkcmVzc2VkLiBUbyB0aGF0IGVuZCwgdGhlIHNlY29uZCBzdWJtaXNzaW9uIG11c3QgYmUgYWNj b21wYW5pZWQgYnkgYSBjb3ZlciBsZXR0ZXIgbWFwcGluZyBlYWNoIG1hbmRhdG9yeSByZXZpc2lv biByZXF1ZXN0IHRvIHNwZWNpZmljIHBhcnRzIG9mIHRoZSBwYXBlci4gVGhlIGNvdmVyIGxldHRl ciB3aWxsDQogZmFjaWxpdGF0ZSBhIHF1aWNrIHNlY29uZCByZXZpZXcsIGFsbG93aW5nIGZvciBj b25maXJtYXRpb24gb2YgZmluYWwgYWNjZXB0YW5jZSB3aXRoaW4gdHdvIHdlZWtzLiBDb252ZXJz ZWx5LCB0aGUgYWJzZW5jZSBvZiBhIGNvdmVyIGxldHRlciB3aWxsIGJlIGdyb3VuZHMgZm9yIHRo ZSBwYXBlcuKAmXMgcmVqZWN0aW9uLjxicj4NCjxicj4NCiMjIyBJbmZvcm1hdGlvbiBmb3IgQXV0 aG9ycyBvZiBBY2NlcHRlZCBQYXBlcnM8YnI+DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tPGJyPg0KQXMgYSBjb25kaXRpb24gb2YgYWNjZXB0YW5jZSwgZmlu YWwgdmVyc2lvbnMgb2YgYWxsIHBhcGVycyBtdXN0IGFkaGVyZSB0byB0aGUgQUNNIFNtYWxsIGZv cm1hdC4gVGhlIHBhZ2UgbGltaXQgZm9yIHRoZSBmaW5hbCB2ZXJzaW9ucyBvZiBwYXBlcnMgd2ls bCBiZSBpbmNyZWFzZWQgYnkgdHdvIHBhZ2VzIHRvIGhlbHAgYXV0aG9ycyByZXNwb25kIHRvIHJl dmlld2VyIGNvbW1lbnRzIGFuZCBtYW5kYXRvcnkgcmV2aXNpb25zOiAyNyBwYWdlcyBwbHVzDQog YmlibGlvZ3JhcGh5IGZvciBhIHJlZ3VsYXIgcGFwZXIgb3IgRnVuY3Rpb25hbCBQZWFybCwgMTQg cGFnZXMgcGx1cyBiaWJsaW9ncmFwaHkgZm9yIGFuIEV4cGVyaWVuY2UgUmVwb3J0Ljxicj4NCjxi cj4NCkF1dGhvcnMgb2YgYWNjZXB0ZWQgc3VibWlzc2lvbnMgd2lsbCBiZSByZXF1aXJlZCB0byBh Z3JlZSB0byBvbmUgb2YgdGhlIHRocmVlIEFDTSBsaWNlbnNpbmcgb3B0aW9ucywgb25lIG9mIHdo aWNoIGlzIENyZWF0aXZlIENvbW1vbnMgQ0MtQlkgcHVibGljYXRpb247IHRoaXMgaXMgdGhlIG9w dGlvbiByZWNvbW1lbmRlZCBieSB0aGUgUEFDTVBMIGVkaXRvcmlhbCBib2FyZC4gQSByZWFzb25l ZCBhcmd1bWVudCBpbiBmYXZvdXIgb2YgdGhpcyBvcHRpb24NCiBjYW4gYmUgZm91bmQgaW4gdGhl IGFydGljbGUgV2h5IENDLUJZPyBwdWJsaXNoZWQgYnkgT0FTUEEsIHRoZSBPcGVuIEFjY2VzcyBT Y2hvbGFybHkgUHVibGlzaGVycyBBc3NvY2lhdGlvbi4gVGhlIG90aGVyIG9wdGlvbnMgYXJlIGNv cHlyaWdodCB0cmFuc2ZlciB0byBBQ00gb3IgcmV0YWluaW5nIGNvcHlyaWdodCBidXQgZ3JhbnRp bmcgQUNNIGV4Y2x1c2l2ZSBwdWJsaWNhdGlvbiByaWdodHMuPGJyPg0KPGJyPg0KUEFDTVBMIGlz IGEgR29sZCBPcGVuIEFjY2VzcyBqb3VybmFsLCBhbmQgYXV0aG9ycyBhcmUgZW5jb3VyYWdlZCB0 byBwdWJsaXNoIHRoZWlyIHdvcmsgdW5kZXIgYSBDQy1CWSBsaWNlbnNlLiBHb2xkIE9wZW4gQWNj ZXNzIGd1YXJhbnRlZXMgcGVybWFuZW50IGZyZWUgb25saW5lIGFjY2VzcyB0byB0aGUgZGVmaW5p dGl2ZSB2ZXJzaW9uIGluIHRoZSBBQ00gRGlnaXRhbCBMaWJyYXJ5LCBhbmQgdGhlIHJlY29tbWVu ZGVkIENDLUJZIG9wdGlvbiBhbHNvDQogYWxsb3dzIGFueW9uZSB0byBjb3B5IGFuZCBkaXN0cmli dXRlIHRoZSB3b3JrIHdpdGggYXR0cmlidXRpb24uIEdvbGQgT3BlbiBBY2Nlc3MgaGFzIGJlZW4g bWFkZSBwb3NzaWJsZSBieSBnZW5lcm91cyBmdW5kaW5nIHRocm91Z2ggQUNNIFNJR1BMQU4sIHdo aWNoIHdpbGwgY292ZXIgYWxsIG9wZW4gYWNjZXNzIGNvc3RzIGluIHRoZSBldmVudCBhdXRob3Jz IGNhbm5vdC4gQXV0aG9ycyB3aG8gY2FuIGNvdmVyIHRoZSBjb3N0cyBtYXkgZG8gc28gYnkNCiBw YXlpbmcgYW4gQXJ0aWNsZSBQcm9jZXNzaW5nIENoYXJnZSAoQVBDKS4gUEFDTVBMLCBTSUdQTEFO LCBhbmQgQUNNIEhlYWRxdWFydGVycyBhcmUgY29tbWl0dGVkIHRvIGV4cGxvcmluZyByb3V0ZXMg dG8gbWFraW5nIEdvbGQgT3BlbiBBY2Nlc3MgcHVibGljYXRpb24gYm90aCBhZmZvcmRhYmxlIGFu ZCBzdXN0YWluYWJsZS48YnI+DQo8YnI+DQpBQ00gQXV0aG9yLUl6ZXIgaXMgYSB1bmlxdWUgc2Vy dmljZSB0aGF0IGVuYWJsZXMgQUNNIGF1dGhvcnMgdG8gZ2VuZXJhdGUgYW5kIHBvc3QgbGlua3Mg b24gZWl0aGVyIHRoZWlyIGhvbWUgcGFnZSBvciBpbnN0aXR1dGlvbmFsIHJlcG9zaXRvcnkgZm9y IHZpc2l0b3JzIHRvIGRvd25sb2FkIHRoZSBkZWZpbml0aXZlIHZlcnNpb24gb2YgdGhlaXIgYXJ0 aWNsZXMgZnJvbSB0aGUgQUNNIERpZ2l0YWwgTGlicmFyeSBhdCBubyBjaGFyZ2UuIERvd25sb2Fk cw0KIHRocm91Z2ggQXV0aG9yLUl6ZXIgbGlua3MgYXJlIGNhcHR1cmVkIGluIG9mZmljaWFsIEFD TSBzdGF0aXN0aWNzLCBpbXByb3ZpbmcgdGhlIGFjY3VyYWN5IG9mIHVzYWdlIGFuZCBpbXBhY3Qg bWVhc3VyZW1lbnRzLiBDb25zaXN0ZW50bHkgbGlua2luZyB0byB0aGUgZGVmaW5pdGl2ZSB2ZXJz aW9uIG9mIGFuIEFDTSBhcnRpY2xlIHNob3VsZCByZWR1Y2UgdXNlciBjb25mdXNpb24gb3ZlciBh cnRpY2xlIHZlcnNpb25pbmcuIEFmdGVyIGFuIGFydGljbGUNCiBoYXMgYmVlbiBwdWJsaXNoZWQg YW5kIGFzc2lnbmVkIHRvIHRoZSBhcHByb3ByaWF0ZSBBQ00gQXV0aG9yIFByb2ZpbGUgcGFnZXMs IGF1dGhvcnMgc2hvdWxkIHZpc2l0DQo8YSBocmVmPSJodHRwOi8vd3d3LmFjbS5vcmcvcHVibGlj YXRpb25zL2FjbS1hdXRob3ItaXplci1zZXJ2aWNlIj5odHRwOi8vd3d3LmFjbS5vcmcvcHVibGlj YXRpb25zL2FjbS1hdXRob3ItaXplci1zZXJ2aWNlPC9hPiB0byBsZWFybiBob3cgdG8gY3JlYXRl IGxpbmtzIGZvciBmcmVlIGRvd25sb2FkcyBmcm9tIHRoZSBBQ00gREwuPGJyPg0KPGJyPg0KVGhl IG9mZmljaWFsIHB1YmxpY2F0aW9uIGRhdGUgaXMgdGhlIGRhdGUgdGhlIHBhcGVycyBhcmUgbWFk ZSBhdmFpbGFibGUgaW4gdGhlIEFDTSBEaWdpdGFsIExpYnJhcnkuIFRoaXMgZGF0ZSBtYXkgYmUg dXAgdG8gdHdvIHdlZWtzIHByaW9yIHRvIHRoZSBmaXJzdCBkYXkgb2YgdGhlIGNvbmZlcmVuY2Uu IFRoZSBvZmZpY2lhbCBwdWJsaWNhdGlvbiBkYXRlIGFmZmVjdHMgdGhlIGRlYWRsaW5lIGZvciBh bnkgcGF0ZW50IGZpbGluZ3MgcmVsYXRlZA0KIHRvIHB1Ymxpc2hlZCB3b3JrLjxicj4NCjxicj4N CkF1dGhvcnMgb2YgZWFjaCBhY2NlcHRlZCBzdWJtaXNzaW9uIGFyZSBpbnZpdGVkIHRvIGF0dGVu ZCBhbmQgYmUgYXZhaWxhYmxlIGZvciB0aGUgcHJlc2VudGF0aW9uIG9mIHRoYXQgcGFwZXIgYXQg dGhlIGNvbmZlcmVuY2UuIFRoZSBzY2hlZHVsZSBmb3IgcHJlc2VudGF0aW9ucyB3aWxsIGJlIGRl dGVybWluZWQgYW5kIHNoYXJlZCB3aXRoIGF1dGhvcnMgYWZ0ZXIgdGhlIGZ1bGwgcHJvZ3JhbSBo YXMgYmVlbiBzZWxlY3RlZC48YnI+DQo8YnI+DQojIyMgQXJ0aWZhY3QgRXZhbHVhdGlvbjxicj4N Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPGJyPg0KQXV0aG9ycyBvZiBwYXBlcnMgdGhhdCBhcmUg Y29uZGl0aW9uYWxseSBhY2NlcHRlZCBpbiB0aGUgZmlyc3QgcGhhc2Ugb2YgdGhlIHJldmlldyBw cm9jZXNzIHdpbGwgYmUgZW5jb3VyYWdlZCAoYnV0IG5vdCByZXF1aXJlZCkgdG8gc3VibWl0IHN1 cHBvcnRpbmcgbWF0ZXJpYWxzIGZvciBBcnRpZmFjdCBFdmFsdWF0aW9uLiBUaGVzZSBpdGVtcyB3 aWxsIHRoZW4gYmUgcmV2aWV3ZWQgYnkgYW4gQXJ0aWZhY3QgRXZhbHVhdGlvbiBDb21taXR0ZWUs IHNlcGFyYXRlDQogZnJvbSB0aGUgcGFwZXIgUmV2aWV3IENvbW1pdHRlZSwgd2hvc2UgdGFzayBp cyB0byBhc3Nlc3MgaG93IHRoZSBhcnRpZmFjdHMgc3VwcG9ydCB0aGUgd29yayBkZXNjcmliZWQg aW4gdGhlIGFzc29jaWF0ZWQgcGFwZXIuIFBhcGVycyB0aGF0IGdvIHRocm91Z2ggdGhlIEFydGlm YWN0IEV2YWx1YXRpb24gcHJvY2VzcyBzdWNjZXNzZnVsbHkgd2lsbCByZWNlaXZlIGEgc2VhbCBv ZiBhcHByb3ZhbCBwcmludGVkIG9uIHRoZSBwYXBlcnMgdGhlbXNlbHZlcy4NCiBBdXRob3JzIG9m IGFjY2VwdGVkIHBhcGVycyB3aWxsIGJlIGVuY291cmFnZWQgdG8gbWFrZSB0aGUgc3VwcG9ydGlu ZyBtYXRlcmlhbHMgcHVibGljbHkgYXZhaWxhYmxlIHVwb24gcHVibGljYXRpb24gb2YgdGhlIHBh cGVycywgZm9yIGV4YW1wbGUsIGJ5IGluY2x1ZGluZyB0aGVtIGFzIOKAnHNvdXJjZSBtYXRlcmlh bHPigJ0gaW4gdGhlIEFDTSBEaWdpdGFsIExpYnJhcnkuIEFuIGFkZGl0aW9uYWwgc2VhbCB3aWxs IG1hcmsgcGFwZXJzIHdob3NlIGFydGlmYWN0cw0KIGFyZSBtYWRlIGF2YWlsYWJsZSwgYXMgb3V0 bGluZWQgaW4gdGhlIEFDTSBndWlkZWxpbmVzIGZvciBhcnRpZmFjdCBiYWRnaW5nLjxicj4NCjxi cj4NClBhcnRpY2lwYXRpb24gaW4gQXJ0aWZhY3QgRXZhbHVhdGlvbiBpcyB2b2x1bnRhcnkgYW5k IHdpbGwgbm90IGluZmx1ZW5jZSB0aGUgZmluYWwgZGVjaXNpb24gcmVnYXJkaW5nIHBhcGVyIGFj Y2VwdGFuY2UuPGJyPg0KPGJyPg0KIyMjIFNwZWNpYWwgY2F0ZWdvcmllcyBvZiBwYXBlcnM8YnI+ DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPGJyPg0KSW4gYWRkaXRpb24gdG8gcmVz ZWFyY2ggcGFwZXJzLCBQQUNNUEwgaXNzdWUgSUNGUCBzb2xpY2l0cyB0d28ga2luZHMgb2YgcGFw ZXJzIHRoYXQgZG8gbm90IHJlcXVpcmUgb3JpZ2luYWwgcmVzZWFyY2ggY29udHJpYnV0aW9uczog RnVuY3Rpb25hbCBQZWFybHMsIHdoaWNoIGFyZSBmdWxsIHBhcGVycywgYW5kIEV4cGVyaWVuY2Ug UmVwb3J0cywgd2hpY2ggYXJlIGxpbWl0ZWQgdG8gaGFsZiB0aGUgbGVuZ3RoIG9mIGEgZnVsbCBw YXBlci4gQXV0aG9ycw0KIHN1Ym1pdHRpbmcgc3VjaCBwYXBlcnMgc2hvdWxkIGNvbnNpZGVyIHRo ZSBmb2xsb3dpbmcgZ3VpZGVsaW5lcy48YnI+DQo8YnI+DQoqIEZ1bmN0aW9uYWwgUGVhcmxzPGJy Pg0KLSBBIEZ1bmN0aW9uYWwgUGVhcmwgaXMgYW4gZWxlZ2FudCBlc3NheSBhYm91dCBzb21ldGhp bmcgcmVsYXRlZCB0byBmdW5jdGlvbmFsIHByb2dyYW1taW5nLiBFeGFtcGxlcyBpbmNsdWRlLCBi dXQgYXJlIG5vdCBsaW1pdGVkIHRvOjxicj4NCjxicj4NCi0gYSBuZXcgYW5kIHRob3VnaHQtcHJv dm9raW5nIHdheSBvZiBsb29raW5nIGF0IGFuIG9sZCBpZGVhPGJyPg0KPGJyPg0KLSBhbiBpbnN0 cnVjdGl2ZSBleGFtcGxlIG9mIHByb2dyYW0gY2FsY3VsYXRpb24gb3IgcHJvb2Y8YnI+DQo8YnI+ DQotIGEgbmlmdHkgcHJlc2VudGF0aW9uIG9mIGFuIG9sZCBvciBuZXcgZGF0YSBzdHJ1Y3R1cmU8 YnI+DQo8YnI+DQotIGFuIGludGVyZXN0aW5nIGFwcGxpY2F0aW9uIG9mIGZ1bmN0aW9uYWwgcHJv Z3JhbW1pbmcgdGVjaG5pcXVlczxicj4NCjxicj4NCi0gYSBub3ZlbCB1c2Ugb3IgZXhwb3NpdGlv biBvZiBmdW5jdGlvbmFsIHByb2dyYW1taW5nIGluIHRoZSBjbGFzc3Jvb208YnI+DQo8YnI+DQpX aGlsZSBwZWFybHMgb2Z0ZW4gZGVtb25zdHJhdGUgYW4gaWRlYSB0aHJvdWdoIHRoZSBkZXZlbG9w bWVudCBvZiBhIHNob3J0IHByb2dyYW0sIHRoZXJlIGlzIG5vIHJlcXVpcmVtZW50IG9yIGV4cGVj dGF0aW9uIHRoYXQgdGhleSBkbyBzby4gVGh1cywgdGhleSBlbmNvbXBhc3MgdGhlIG5vdGlvbnMg b2YgdGhlb3JldGljYWwgYW5kIGVkdWNhdGlvbmFsIHBlYXJscy48YnI+DQo8YnI+DQpGdW5jdGlv bmFsIFBlYXJscyBhcmUgdmFsdWVkIGFzIGhpZ2hseSBhbmQganVkZ2VkIGFzIHJpZ29yb3VzbHkg YXMgb3JkaW5hcnkgcGFwZXJzLCBidXQgdXNpbmcgc29tZXdoYXQgZGlmZmVyZW50IGNyaXRlcmlh LiBJbiBwYXJ0aWN1bGFyLCBhIHBlYXJsIGlzIG5vdCByZXF1aXJlZCB0byByZXBvcnQgb3JpZ2lu YWwgcmVzZWFyY2gsIGJ1dCwgaXQgc2hvdWxkIGJlIGNvbmNpc2UsIGluc3RydWN0aXZlLCBhbmQg ZW50ZXJ0YWluaW5nLiBBIHBlYXJsDQogaXMgbGlrZWx5IHRvIGJlIHJlamVjdGVkIGlmIGl0cyBy ZWFkZXJzIGdldCBib3JlZCwgaWYgdGhlIG1hdGVyaWFsIGdldHMgdG9vIGNvbXBsaWNhdGVkLCBp ZiB0b28gbXVjaC1zcGVjaWFsaXNlZCBrbm93bGVkZ2UgaXMgbmVlZGVkLCBvciBpZiB0aGUgd3Jp dGluZyBpcyBpbmVsZWdhbnQuIFRoZSBrZXkgdG8gd3JpdGluZyBhIGdvb2QgcGVhcmwgaXMgcG9s aXNoaW5nLjxicj4NCjxicj4NCkEgc3VibWlzc2lvbiB0aGF0IGlzIGludGVuZGVkIHRvIGJlIHRy ZWF0ZWQgYXMgYSBwZWFybCBtdXN0IGJlIG1hcmtlZCBhcyBzdWNoIG9uIHRoZSBzdWJtaXNzaW9u IHdlYiBwYWdlIGFuZCBzaG91bGQgY29udGFpbiB0aGUgd29yZHMg4oCcRnVuY3Rpb25hbCBQZWFy bOKAnSBzb21ld2hlcmUgaW4gaXRzIHRpdGxlIG9yIHN1YnRpdGxlLiBUaGVzZSBzdGVwcyB3aWxs IGFsZXJ0IHJldmlld2VycyB0byB1c2UgdGhlIGFwcHJvcHJpYXRlIGV2YWx1YXRpb24gY3JpdGVy aWEuDQogUGVhcmxzIHdpbGwgYmUgY29tYmluZWQgd2l0aCBvcmRpbmFyeSBwYXBlcnMsIGhvd2V2 ZXIsIGZvciB0aGUgcHVycG9zZSBvZiBjb21wdXRpbmcgdGhlIGNvbmZlcmVuY2XigJlzIGFjY2Vw dGFuY2UgcmF0ZS48YnI+DQo8YnI+DQoqIEV4cGVyaWVuY2UgUmVwb3J0czxicj4NClRoZSBwdXJw b3NlIG9mIGFuIEV4cGVyaWVuY2UgUmVwb3J0IGlzIHRvIGRlc2NyaWJlIHRoZSBleHBlcmllbmNl IG9mIHVzaW5nIGZ1bmN0aW9uYWwgcHJvZ3JhbW1pbmcgaW4gcHJhY3RpY2UsIHdoZXRoZXIgaW4g aW5kdXN0cmlhbCBhcHBsaWNhdGlvbiwgdG9vbCBkZXZlbG9wbWVudCwgcHJvZ3JhbW1pbmcgZWR1 Y2F0aW9uLCBvciBhbnkgb3RoZXIgYXJlYS48YnI+DQo8YnI+DQpQb3NzaWJsZSB0b3BpY3MgZm9y IGFuIEV4cGVyaWVuY2UgUmVwb3J0IGluY2x1ZGUsIGJ1dCBhcmUgbm90IGxpbWl0ZWQgdG86PGJy Pg0KPGJyPg0KLSBpbnNpZ2h0cyBnYWluZWQgZnJvbSByZWFsLXdvcmxkIHByb2plY3RzIHVzaW5n IGZ1bmN0aW9uYWwgcHJvZ3JhbW1pbmc8YnI+DQo8YnI+DQotIGNvbXBhcmlzb24gb2YgZnVuY3Rp b25hbCBwcm9ncmFtbWluZyB3aXRoIGNvbnZlbnRpb25hbCBwcm9ncmFtbWluZyBpbiB0aGUgY29u dGV4dCBvZiBhbiBpbmR1c3RyaWFsIHByb2plY3Qgb3IgYSB1bml2ZXJzaXR5IGN1cnJpY3VsdW08 YnI+DQo8YnI+DQotIHByb2plY3QtbWFuYWdlbWVudCwgYnVzaW5lc3MsIG9yIGxlZ2FsIGlzc3Vl cyBlbmNvdW50ZXJlZCB3aGVuIHVzaW5nIGZ1bmN0aW9uYWwgcHJvZ3JhbW1pbmcgaW4gYSByZWFs LXdvcmxkIHByb2plY3Q8YnI+DQo8YnI+DQotIGN1cnJpY3VsYXIgaXNzdWVzIGVuY291bnRlcmVk IHdoZW4gdXNpbmcgZnVuY3Rpb25hbCBwcm9ncmFtbWluZyBpbiBlZHVjYXRpb248YnI+DQo8YnI+ DQotIHJlYWwtd29ybGQgY29uc3RyYWludHMgdGhhdCBjcmVhdGVkIHNwZWNpYWwgY2hhbGxlbmdl cyBmb3IgYW4gaW1wbGVtZW50YXRpb24gb2YgYSBmdW5jdGlvbmFsIGxhbmd1YWdlIG9yIGZvciBm dW5jdGlvbmFsIHByb2dyYW1taW5nIGluIGdlbmVyYWw8YnI+DQo8YnI+DQpBbiBFeHBlcmllbmNl IFJlcG9ydCBpcyBkaXN0aW5ndWlzaGVkIGZyb20gYSBub3JtYWwgUEFDTVBMIGlzc3VlIElDRlAg cGFwZXIgYnkgaXRzIHRpdGxlLCBieSBpdHMgbGVuZ3RoLCBhbmQgYnkgdGhlIGNyaXRlcmlhIHVz ZWQgdG8gZXZhbHVhdGUgaXQuPGJyPg0KPGJyPg0KQm90aCBpbiB0aGUgcGFwZXJzIGFuZCBpbiBh bnkgY2l0YXRpb25zLCB0aGUgdGl0bGUgb2YgZWFjaCBhY2NlcHRlZCBFeHBlcmllbmNlIFJlcG9y dCBtdXN0IGVuZCB3aXRoIHRoZSB3b3JkcyDigJwoRXhwZXJpZW5jZSBSZXBvcnQp4oCdIGluIHBh cmVudGhlc2VzLiBUaGUgYWNjZXB0YW5jZSByYXRlIGZvciBFeHBlcmllbmNlIFJlcG9ydHMgd2ls bCBiZSBjb21wdXRlZCBhbmQgcmVwb3J0ZWQgc2VwYXJhdGVseSBmcm9tIHRoZSByYXRlIGZvciBv cmRpbmFyeQ0KIHBhcGVycy48YnI+DQo8YnI+DQpFeHBlcmllbmNlIFJlcG9ydCBzdWJtaXNzaW9u cyBjYW4gYmUgYXQgbW9zdCAxMiBwYWdlcyBsb25nLCBleGNsdWRpbmcgYmlibGlvZ3JhcGh5Ljxi cj4NCjxicj4NCkVhY2ggYWNjZXB0ZWQgRXhwZXJpZW5jZSBSZXBvcnQgd2lsbCBiZSBwcmVzZW50 ZWQgYXQgdGhlIGNvbmZlcmVuY2UsIGJ1dCBkZXBlbmRpbmcgb24gdGhlIG51bWJlciBvZiBFeHBl cmllbmNlIFJlcG9ydHMgYW5kIHJlZ3VsYXIgcGFwZXJzIGFjY2VwdGVkLCBhdXRob3JzIG9mIEV4 cGVyaWVuY2UgUmVwb3J0cyBtYXkgYmUgYXNrZWQgdG8gZ2l2ZSBzaG9ydGVyIHRhbGtzLjxicj4N Cjxicj4NCkJlY2F1c2UgdGhlIHB1cnBvc2Ugb2YgRXhwZXJpZW5jZSBSZXBvcnRzIGlzIHRvIGVu YWJsZSBvdXIgY29tbXVuaXR5IHRvIHVuZGVyc3RhbmQgdGhlIGFwcGxpY2F0aW9uIG9mIGZ1bmN0 aW9uYWwgcHJvZ3JhbW1pbmcsIGFuIGFjY2VwdGFibGUgRXhwZXJpZW5jZSBSZXBvcnQgbmVlZCBu b3QgYWRkIHRvIHRoZSBib2R5IG9mIGtub3dsZWRnZSBvZiB0aGUgZnVuY3Rpb25hbC1wcm9ncmFt bWluZyBjb21tdW5pdHkgYnkgcHJlc2VudGluZyBub3ZlbCByZXN1bHRzDQogb3IgY29uY2x1c2lv bnMuIEl0IGlzIHN1ZmZpY2llbnQgaWYgdGhlIHJlcG9ydCBkZXNjcmliZXMgYW4gaWxsdW1pbmF0 aW5nIGV4cGVyaWVuY2Ugd2l0aCBmdW5jdGlvbmFsIHByb2dyYW1taW5nLCBvciBwcm92aWRlcyBl dmlkZW5jZSBmb3IgYSBjbGVhciB0aGVzaXMgYWJvdXQgdGhlIHVzZSBvZiBmdW5jdGlvbmFsIHBy b2dyYW1taW5nLiBUaGUgZXhwZXJpZW5jZSBvciB0aGVzaXMgbXVzdCBiZSByZWxldmFudCB0byBJ Q0ZQLCBidXQgaXQgbmVlZA0KIG5vdCBiZSBub3ZlbC48YnI+DQo8YnI+DQpUaGUgcmV2aWV3IGNv bW1pdHRlZSB3aWxsIGFjY2VwdCBvciByZWplY3QgRXhwZXJpZW5jZSBSZXBvcnRzIGJhc2VkIG9u IHdoZXRoZXIgdGhleSBqdWRnZSB0aGUgcGFwZXIgdG8gaWxsdW1pbmF0ZSBzb21lIGFzcGVjdCBv ZiB0aGUgdXNlIG9mIGZ1bmN0aW9uYWwgcHJvZ3JhbW1pbmcuIEFuZWNkb3RhbCBldmlkZW5jZSB3 aWxsIGJlIGFjY2VwdGFibGUgcHJvdmlkZWQgaXQgaXMgd2VsbC1hcmd1ZWQgYW5kIHRoZSBhdXRo b3IgZXhwbGFpbnMgd2hhdA0KIGVmZm9ydHMgd2VyZSBtYWRlIHRvIGdhdGhlciBhcyBtdWNoIGV2 aWRlbmNlIGFzIHBvc3NpYmxlLiBUeXBpY2FsbHksIHBhcGVycyB0aGF0IHNob3cgaG93IGZ1bmN0 aW9uYWwgcHJvZ3JhbW1pbmcgd2FzIHVzZWQgYXJlIG1vcmUgY29udmluY2luZyB0aGFuIHBhcGVy cyB0aGF0IHNheSBvbmx5IHRoYXQgZnVuY3Rpb25hbCBwcm9ncmFtbWluZyB3YXMgdXNlZC4gSXQg Y2FuIGJlIGVzcGVjaWFsbHkgZWZmZWN0aXZlIHRvIHByZXNlbnQgY29tcGFyaXNvbnMNCiBvZiB0 aGUgc2l0dWF0aW9ucyBiZWZvcmUgYW5kIGFmdGVyIHRoZSBleHBlcmllbmNlIGRlc2NyaWJlZCBp biB0aGUgcGFwZXIsIGJ1dCBvdGhlciBraW5kcyBvZiBldmlkZW5jZSB3b3VsZCBhbHNvIG1ha2Ug c2Vuc2UsIGRlcGVuZGluZyBvbiBjb250ZXh0LiBFeHBlcmllbmNlIGRyYXduIGZyb20gYSBzaW5n bGUgcGVyc29u4oCZcyBleHBlcmllbmNlIG1heSBiZSBzdWZmaWNpZW50LCBidXQgbW9yZSB3ZWln aHQgd2lsbCBiZSBnaXZlbiB0byBldmlkZW5jZQ0KIGRyYXduIGZyb20gdGhlIGV4cGVyaWVuY2Ug b2YgZ3JvdXBzIG9mIHBlb3BsZS48YnI+DQo8YnI+DQpBbiBFeHBlcmllbmNlIFJlcG9ydCBzaG91 bGQgYmUgc2hvcnQgYW5kIHRvIHRoZSBwb2ludC4gRm9yIGFuIGluZHVzdHJpYWwgcHJvamVjdCwg aXQgc2hvdWxkIG1ha2UgYSBjbGFpbSBhYm91dCBob3cgd2VsbCBmdW5jdGlvbmFsIHByb2dyYW1t aW5nIHdvcmtlZCBhbmQgd2h5OyBmb3IgYSBwZWRhZ29neSBwYXBlciwgaXQgbWlnaHQgbWFrZSBh IGNsYWltIGFib3V0IHRoZSBzdWl0YWJpbGl0eSBvZiBhIHBhcnRpY3VsYXIgdGVhY2hpbmcgc3R5 bGUgb3INCiBlZHVjYXRpb25hbCBleGVyY2lzZS4gRWl0aGVyIHdheSwgaXQgc2hvdWxkIHByb2R1 Y2UgZXZpZGVuY2UgdG8gc3Vic3RhbnRpYXRlIHRoZSBjbGFpbS4gSWYgZnVuY3Rpb25hbCBwcm9n cmFtbWluZyB3b3JrZWQgaW4gdGhpcyBjYXNlIGluIHRoZSBzYW1lIHdheXMgaXQgaGFzIHdvcmtl ZCBmb3Igb3RoZXJzLCB0aGUgcGFwZXIgbmVlZCBvbmx5IHN1bW1hcmlzZSB0aGUgcmVzdWx0cyDi gJQgdGhlIG1haW4gcGFydCBvZiB0aGUgcGFwZXIgc2hvdWxkIGRpc2N1c3MNCiBob3cgd2VsbCBp dCB3b3JrZWQgYW5kIGluIHdoYXQgY29udGV4dC4gTW9zdCByZWFkZXJzIHdpbGwgbm90IHdhbnQg dG8ga25vdyBhbGwgdGhlIGRldGFpbHMgb2YgdGhlIGV4cGVyaWVuY2UgYW5kIGl0cyBpbXBsZW1l bnRhdGlvbiwgYnV0IHRoZSBwYXBlciBzaG91bGQgY2hhcmFjdGVyaXNlIGl0IGFuZCBpdHMgY29u dGV4dCB3ZWxsIGVub3VnaCBzbyB0aGF0IHJlYWRlcnMgY2FuIGp1ZGdlIHRvIHdoYXQgZGVncmVl IHRoaXMgZXhwZXJpZW5jZSBpcw0KIHJlbGV2YW50IHRvIHRoZWlyIG93biBjaXJjdW1zdGFuY2Vz LiBUaGUgcGFwZXIgc2hvdWxkIHRha2UgY2FyZSB0byBoaWdobGlnaHQgYW55IHVudXN1YWwgYXNw ZWN0czsgc3BlY2lmaWNzIGFib3V0IHRoZSBleHBlcmllbmNlIGFyZSBtb3JlIHZhbHVhYmxlIHRo YW4gZ2VuZXJhbGl0aWVzIGFib3V0IGZ1bmN0aW9uYWwgcHJvZ3JhbW1pbmcuPGJyPg0KPGJyPg0K SWYgdGhlIHBhcGVyIG5vdCBvbmx5IGRlc2NyaWJlcyBleHBlcmllbmNlIGJ1dCBhbHNvIHByZXNl bnRzIG5ldyB0ZWNobmljYWwgcmVzdWx0cywgb3IgaWYgdGhlIGV4cGVyaWVuY2UgcmVmdXRlcyBj aGVyaXNoZWQgYmVsaWVmcyBvZiB0aGUgZnVuY3Rpb25hbC1wcm9ncmFtbWluZyBjb21tdW5pdHks IGl0IG1heSBiZSBiZXR0ZXIgdG8gc3VibWl0IGl0IGFzIGEgZnVsbCBwYXBlciwgd2hpY2ggd2ls bCBiZSBqdWRnZWQgYnkgdGhlIHVzdWFsIGNyaXRlcmlhDQogb2Ygbm92ZWx0eSwgb3JpZ2luYWxp dHksIGFuZCByZWxldmFuY2UuIFRoZSBQcm9ncmFtIENoYWlyIHdpbGwgYmUgaGFwcHkgdG8gYWR2 aXNlIG9uIGFueSBjb25jZXJucyBhYm91dCB3aGljaCBjYXRlZ29yeSB0byBzdWJtaXQgdG8uPGJy Pg0KPGJyPg0KIyMjIEFib3V0IFBBQ01QTDxicj4NCi0tLS0tLS0tLS0tLS0tLS08YnI+DQpQcm9j ZWVkaW5ncyBvZiB0aGUgQUNNIG9uIFByb2dyYW1taW5nIExhbmd1YWdlcyAoUEFDTVBMIDxhIGhy ZWY9Imh0dHBzOi8vcGFjbXBsLmFjbS5vcmcvIj4NCmh0dHBzOi8vcGFjbXBsLmFjbS5vcmcvPC9h PikgaXMgYSBHb2xkIE9wZW4gQWNjZXNzIGpvdXJuYWwgcHVibGlzaGluZyByZXNlYXJjaCBvbiBh bGwgYXNwZWN0cyBvZiBwcm9ncmFtbWluZyBsYW5ndWFnZXMsIGZyb20gZGVzaWduIHRvIGltcGxl bWVudGF0aW9uIGFuZCBmcm9tIG1hdGhlbWF0aWNhbCBmb3JtYWxpc21zIHRvIGVtcGlyaWNhbCBz dHVkaWVzLiBFYWNoIGlzc3VlIG9mIHRoZSBqb3VybmFsIGlzIGRldm90ZWQgdG8gYSBwYXJ0aWN1 bGFyDQogc3ViamVjdCBhcmVhIHdpdGhpbiBwcm9ncmFtbWluZyBsYW5ndWFnZXMgYW5kIHdpbGwg YmUgYW5ub3VuY2VkIHRocm91Z2ggcHVibGljaXNlZCBDYWxscyBmb3IgUGFwZXJzLCBsaWtlIHRo aXMgb25lLjxicj4NCjxicj4NCiMjIyBJQ0ZQIE9yZ2FuaXNlcnM8YnI+DQo8YnI+DQpHZW5lcmFs IENoYWlyOjxicj4NCiZuYnNwOyBNYXJjbyBHYWJvYXJkaSAoQm9zdG9uIFVuaXZlcnNpdHksIFVT QSk8YnI+DQo8YnI+DQpQcm9ncmFtbWUgQ2hhaXI6PGJyPg0KJm5ic3A7IEJyaWdpdHRlIFBpZW50 a2EgKE1jR2lsbCBVbml2ZXJzaXR5LCBDYW5hZGEpPGJyPg0KPGJyPg0KQXNzb2NpYXRlIFByb2dy YW1tZSBDaGFpcjo8YnI+DQombmJzcDsgR2FicmllbGUgS2VsbGVyIChVdHJlY2h0IFVuaXZlcnNp dHksIE5ldGhlcmxhbmRzKTxicj4NCjxicj4NClB1YmxpY2l0eSBDaGFpcjo8YnI+DQombmJzcDsg SWx5YSBTZXJnZXkgKE5hdGlvbmFsIFVuaXZlcnNpdHkgb2YgU2luZ2Fwb3JlLCBTaW5nYXBvcmUp PGJyPg0KPGJyPg0KUHJvZ3JhbW1lIENvbW1pdHRlZTo8YnI+DQombmJzcDs8YSBocmVmPSJodHRw czovL2ljZnAyNC5zaWdwbGFuLm9yZy9jb21taXR0ZWUvaWNmcC0yMDI0LXBhcGVycy1pY2ZwLXBh cGVycy1hbmQtZXZlbnRzIj5odHRwczovL2ljZnAyNC5zaWdwbGFuLm9yZy9jb21taXR0ZWUvaWNm cC0yMDI0LXBhcGVycy1pY2ZwLXBhcGVycy1hbmQtZXZlbnRzPC9hPjxicj4NCjwvZGl2Pg0KPC9i b2R5Pg0KPC9odG1sPg0K