From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web12.953.1589922179713288444 for ; Tue, 19 May 2020 14:03:00 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=l3nwS4WX; spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: nathaniel.l.desimone@intel.com) IronPort-SDR: ClxuZ2xPkrQgDNOOjbfWHge19EVEYm8d+hMD/SeizfvYQwPGOHLWkU9Htss/NZkAcGov/w9Kic Z5R/IEMYYZIA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 May 2020 14:02:59 -0700 IronPort-SDR: IfeyGQW+gaScq7JN9s1cxjErHZHhDg0jnYuWrnGqxFaBFE99sdMKfuz5AcSEqm0t0eAMqTe2yq Lqm3G2LJFQxA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,410,1583222400"; d="scan'208";a="264442088" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga003.jf.intel.com with ESMTP; 19 May 2020 14:02:58 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 19 May 2020 14:02:58 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 19 May 2020 14:02:57 -0700 Received: from FMSEDG002.ED.cps.intel.com (10.1.192.134) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 19 May 2020 14:02:57 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.170) by edgegateway.intel.com (192.55.55.69) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 19 May 2020 14:02:51 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AVbbeJsEuDNqTF5JE89qINy985gO5VWky/wgjs8lJbg2Gv8mAIJ0eFI2wzNnvReN+9IptjR2QRCaaJq2h2+Gqg6vZ5leija6QYDnexw/m4tVIJa2vZqir8n7WKYCp0+4NLx1qwrrhCyj5bBZUbkNh1VyZ4u3S4EL/skluGyB+P/bquRezC/DRUiQT8MJxUVg3dMfPnyxTx/Zyx4pt9nAUp8ni2yMLXR1Q6Qx3zEyyvIa9D7L0AOJfCSSPbwUpkTBEJpmUEVBMR2Dei7LfDDqbjxMPrHlp06vp6p3MltSdyhTc+DIQXzRPPHwmJSVCRmG5VXMLPYn4yF3bQWUxQDH/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LMHNALtW227bAbrJruCVC/ztVrHhVQbBeQiEDcYmxhE=; b=jTdAFur0pLJpn1LqnUDZWGiQWzWtIIEg2THvLwgsCvAEA3kf6OQGHReTCj/r+l3Ung8AwYGn2GgAwcaCROr9yW9XVu8m9yaq+apPn08HUfer4oEYwMWHWcUMvHWaQE7vpwzOhTGYVJxz3Ft9bcUC8f5FlGrciI8ZYJ+YoL0F+b485dKusKVlXomOZnygwURSKngDe71plhGTCorNI3GU1amM9QakAmVhJHBQ8eCh5XhWXxPbUoK480xYzixx0NSOeb1YW/XdfFZRXoZG8eAN61L2v2/g/XPKBQ8y4wWkDvylDyVAV9lP4XJ0tXfYuwdk9QdeILf40cZeAbRTW4g4uw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LMHNALtW227bAbrJruCVC/ztVrHhVQbBeQiEDcYmxhE=; b=l3nwS4WXH5ZH1in6F+syJ2YEZ90KgU0n/ql3F/yb9MzN65U99IsloMC5A0V9fedSngI2wOWxOGyyWbLYYwgm0JhqHzARIVRZZ0RMnjq/LfM5jsC1sZhAAutJroe9ZZU3iuDcWa3wUyVpyt9gcYyIxuiIe8J4CwXxumprXT0+Ezw= Received: from BL0PR11MB3489.namprd11.prod.outlook.com (2603:10b6:208:75::29) by BL0PR11MB3108.namprd11.prod.outlook.com (2603:10b6:208:7e::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3000.27; Tue, 19 May 2020 21:02:49 +0000 Received: from BL0PR11MB3489.namprd11.prod.outlook.com ([fe80::d0f8:bfd7:bae2:3e42]) by BL0PR11MB3489.namprd11.prod.outlook.com ([fe80::d0f8:bfd7:bae2:3e42%7]) with mapi id 15.20.3000.034; Tue, 19 May 2020 21:02:49 +0000 From: "Nate DeSimone" To: "rfc@edk2.groups.io" , "bret.barkelew@microsoft.com" , "devel@edk2.groups.io" , "spbrogan@outlook.com" , "lersek@redhat.com" , "Kinney, Michael D" Subject: Re: [edk2-devel] [edk2-rfc] GitHub Pull Request based Code Review Process Thread-Topic: [edk2-devel] [edk2-rfc] GitHub Pull Request based Code Review Process Thread-Index: AdYtq0vCPqbiMowAQbSbICPKq6X1VgAUtBSAAAF1CAAABCR2gP//kZWAgAB4lwD//5kqAA== Date: Tue, 19 May 2020 21:02:49 +0000 Message-ID: <1DF48A10-F119-4FAE-9963-E95A48D82648@intel.com> References: In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=True;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2020-05-19T19:32:34.9250949Z;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Privileged user-agent: Microsoft-MacOutlook/16.37.20051002 authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [134.134.136.216] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 84e39fdb-0b59-4c01-80ab-08d7fc37fd28 x-ms-traffictypediagnostic: BL0PR11MB3108: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:40; x-forefront-prvs: 040866B734 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: dh37LVjj7t8uvNvZIRIxET0aTOb7/CuwO8mBGN/xN2YUjHYP4jljQOb2f5az/uw/3Yeg2GK2eGDJOBZrvszmgp/YPHWwcgrdLEusYfg4bIKXYXZcsg1nS9AOFBEqebOgOQnrLnzUPC0Y6uBBo+BZMdbVaUqCmN0uyRkPAga6EkGHoxi1dqvW9aCxZVbRinNdDhGiVKvfaRtdloHsQP8nMeQ6K8uYZ/IsS0Uh+C8oKCh0VoWzr9E5h3VZo9ZHDFTizGBVMCPiFRPGRMKK/Yu64icnCcY0tCfWBTF1NwoU0/wXex6M22dYBTINGwcIwRQRZd6bSTvBfnhgtY+aN81kgYUimGfsTT/N1q/HxiEuRMbzu8P33QuwMX37Yr9/UH9FjKwMvYSP3euuJ5i8vsFkF+uRH/aBGl6yj8wTG3ZbiIbPgg6tp8UwAME0spxOGjQoWQB+9Dkxal4aikUxgFmVDgnbhixbuXJCw30/aHCZ6Aa6Rkyj4UCdIeulvHpDuz+/DhH/+IRorDOMHIHtLKvQXcU8/EYS4vVm9cFd9bcXtVX3yaziZCEZf8TVCIGbIXpK x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR11MB3489.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(376002)(396003)(346002)(39860400002)(366004)(136003)(26005)(5660300002)(33656002)(2906002)(186003)(6636002)(30864003)(478600001)(8936002)(966005)(8676002)(71200400001)(6512007)(45080400002)(36756003)(6506007)(53546011)(110136005)(64756008)(66946007)(86362001)(91956017)(316002)(6486002)(66476007)(66446008)(76116006)(2616005)(66556008)(31884003)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: 81kweona+KB3igLSVGV1piBkSBDE0uO5XzeidXyktQ0bULEzwGRhLNktTPggxJTv7uTkzIzxDsiQFr3Hgao6K5xlL9f26pCkgQAukiEDeSnTQwp2cDI76T5N6MhzULSsEhL4rYqqJGVv88bLkGi7XVvOogGwSrWjLAwjShfUFkHmB3T9LhmPrGe61I3XVXDYB3yVVtehkqkSQK250JH5p36d4D+bZQZFt8AjAwZAYZrySlWiZcEr/vUbs5kjkStz2VplMiZ4Kwf1nbnQJ3DZJpP3qQbAEEhtwM4OW1aF7Qx1jlQgQTGWfYH0Tvd2HnAWwpreuaHoDEQcjKWA8jFY3xIYRuvGyx2QJtsVLPZQhDT/RI33bBmmIxkGdAtEJY/9MvbCxsTZQqFJMLw366sJLw/QevcnWQT5NYCrXwO6zw6MvhQpcvGL4b1YHEobMmnSEaLiEpDEvEPweLwxrguLlY9mciFOGS0FUwseoczWIlnE3SdLIgYLVRcEyjvvcOP8 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 84e39fdb-0b59-4c01-80ab-08d7fc37fd28 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 May 2020 21:02:49.6025 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 9ikCI4S6qa5ubyU+9bkIpMkdf1PL9xP9vNEd6rhgmrz7n02FT9niVz+F+RHomm/gMkfbGXfmwH0f/Mx4RiKRZdn8PWip+g28duoFKwXAs8E= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR11MB3108 Return-Path: nathaniel.l.desimone@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: <70FC80658AA1D54097F153644A1D199D@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 SGkgQnJldCwNCg0KVG8gYmUgY29tcGxldGVseSBmYWlyLCBJIHRoaW5rIHdlIGFyZSBzcGxpdHRp bmcgaGFpcnMgb24gZGV0YWlscyBoZXJlLiBJIHRoaW5rIGJvdGggb2YgdXMgYXJlIGluIDkwJSBh Z3JlZW1lbnQsIGFuZCB3ZSBhcmUgYm90aCBwYXNzaW9uYXRlIGVub3VnaCBhYm91dCBvdXIgd29y ayB0byBhcmd1ZSB0aGF0IGxhc3QgMTAlIHRvIHRoZSBncmF2ZS4NCg0KSSB0b3RhbGx5IHVuZGVy c3RhbmQgdGhlIGRlc2lyZSBmb3IgYmlzZWN0YWJpbGl0eSBieSB0aGUgd2F5LiBUaWFub0NvcmUg aXMgYSBodWdlIGNvZGViYXNlLCB0aGUgY29yZSBtb2R1bGVzIGhhdmUgc2V2ZXJhbCBleHRyZW1l bHkgbGFyZ2UgZnVuY3Rpb25zLCBhbmQgdmVyeSBsaXR0bGUgaW4gdGhlIHdheSBvZiBleHBsaWNp dCBkb2N1bWVudGF0aW9uLiBJdCBoYXMgdGFrZW4gbWUgeWVhcnMgdG8gbGVhcm4gaG93IHRoaXMg YmVhc3Qgd29ya3MuIEkgdGhpbmsgaXQgaXMgcG9zc2libGUgdG8gbm90IHNxdWFzaCBldmVyeSBw YXRjaCBzZXJpZXMgYW5kIHN0aWxsIG1haW50YWluIGJpc2VjdGFiaWxpdHkuDQoNCkZvciBleGFt cGxlLCB5b3VyIFZhcmlhYmxlUG9saWN5IHBhdGNoIHNlcmllczsgd2UgZGVmaW5pdGVseSB3YW50 IHRoZSBwYXRjaCB0aGF0IGFkZHMgVmFyaWFibGVQb2xpY3lMaWIgdG8gTWRlTW9kdWxlUGtnIG1l cmdlZCBiZWZvcmUgdGhlIHBhdGNoIHRoYXQgYWRkcyBpdCB0byBPdm1mUGtnLiBCdXQgaWYgdGhl IHBhdGNoIHNlcmllcyBpcyBkb25lIGNhcmVmdWxseSBpdCBjYW4gc3RpbGwgYmUgYmlzZWN0YWJs ZS4gSW4gZmFjdCwgYmlzZWN0YWJpbGl0eSB3aWxsIG9ubHkgYmUgbWFpbnRhaW5lZCBpZmYgd2Ug bWVyZ2UgdGhlIGVudGlyZSBzZXJpZXMgaW4gdGhlIG9yZGVyIHRoYXQgeW91L01pY2hhZWwgc2Vu dCBpdDsgaWYgT3ZtZlBrZyBnZXRzIG1lcmdlZCBmaXJzdCwgdGhlbiBPdm1mUGtnIHdpbGwgZmFp bCB0byBidWlsZCB1bnRpbCB0aGUgTWRlTW9kdWxlUGtnIHBhdGNoIGlzIG1lcmdlZC4gSSBkb24n dCB0aGluayBpdCB3b3VsZCBiZSB0aGUgcmlnaHQgdGhpbmcgdG8gc3F1YXNoIHRoZSBPdm1mUGtn ICYgTWRlTW9kdWxlUGtnIHBhdGNoZXMgdG9nZXRoZXIsIGFzIHRoZXkgcmVhbGx5IGFyZSBkaXN0 aW5jdCBzdGVwcyB0aGF0IHlvdSB0b29rIG9uIHlvdXIgam91cm5leSB0b3dhcmRzIG1ha2luZyB0 aGUgVmFyaWFibGVQb2xpY3kgc2F1c2FnZS4NCg0KT2YgY291cnNlLCB0aGVyZSBtYXkgYmUgb3Ro ZXIgcGF0Y2ggc2VyaWVzIHRoYXQgd291bGQgYmUgbG9naWNhbCB0byBzcXVhc2gsIGVzcGVjaWFs bHkgaWYgdGhlIGF1dGhvciBoYXMgbm90IGJlZW4gY2FyZWZ1bCB0byBtYWludGFpbiBiaXNlY3Rh YmlsaXR5LiBGb3IgZXhhbXBsZSwgSSB0aGluayBvZiBzb21lIHBhdGNoIHNlcmllcyB3ZW50IGEg bGl0dGxlIG92ZXJib2FyZCBhbmQgY291bGQgaGF2ZSBiZWVuIGRvbmUgaW4gbWF5YmUgMS0yIHBh dGNoZXMgaW5zdGVhZCBvZiA4LTEwLiBJIHdvdWxkIGJlIGhhcHB5IHRvIGNvbXByb21pc2Ugd2l0 aCB5b3UgYW5kIHNheSB0aGF0IHNxdWFzaGVzIGNhbiBiZSBkb25lIGluIGNpcmN1bXN0YW5jZXMg d2hlcmUgYm90aCB0aGUgbWFpbnRhaW5lciBhbmQgdGhlIGF1dGhvciBhZ3JlZSB0byBpdC4NCg0K RmluYWxseSwgSSBiZWxpZXZlIEkgY2FuIHNwZWFrIGZvciBldmVyeW9uZSBoZXJlIHRoYXQgd2Ug YWxsIHdlbGNvbWUgeW91ciBjb250cmlidXRpb25zLiBJIHRoaW5rIE1pa2UgYW5kIHRoZSByZXN0 IG9mIHRoZSBjb21tdW5pdHkgYXJlIHRyeWluZyB0byBhZGp1c3QgdGhlIHByb2Nlc3MgdG8gbWFr ZSBjb250cmlidXRpbmcgdmlhYmxlIGZvciBhIGxhcmdlciBzZXQgb2YgcGVvcGxlLiBCdXQgYXQg dGhlIHNhbWUgdGltZSwgeW91IG11c3QgcmVhbGl6ZSB0aGF0IFRpYW5vQ29yZSBpc24ndCBqdXN0 IGdvaW5nIHRvIGRvIGV2ZXJ5dGhpbmcgZXhhY3RseSB0aGUgc2FtZSB3YXkgdGhhdCBNaWNyb3Nv ZnQgZG9lcy4gWW91IGFuZCBTZWFuIGFyZSBleHBlY3RlZCB0byBjb21wcm9taXNlIHdpdGggdGhl IHJlc3Qgb2YgdGhlIGNvbW11bml0eS4NCg0KVGhhbmtzLA0KTmF0ZQ0KDQrvu79PbiA1LzE5LzIw LCAxOjExIFBNLCAicmZjQGVkazIuZ3JvdXBzLmlvIG9uIGJlaGFsZiBvZiBCcmV0IEJhcmtlbGV3 IHZpYSBncm91cHMuaW8iIDxyZmNAZWRrMi5ncm91cHMuaW8gb24gYmVoYWxmIG9mIGJyZXQuYmFy a2VsZXc9bWljcm9zb2Z0LmNvbUBncm91cHMuaW8+IHdyb3RlOg0KDQogICAgSSB3aWxsIGhvbm9y IE1pa2UgS2lubmV54oCZcyBlZmZvcnRzIHdpdGggbXkgdm90ZSBvZiBjb25maWRlbmNlLg0KICAg IEkgdGhpbmsgd2XigJlyZSBoZWFkZWQgaW4gdGhlIHJpZ2h0IGRpcmVjdGlvbiwgZXZlbiB3aXRo IHNvbWUgb2YgdGhlIHRoaW5ncyB0aGF0IEkgZGlzYWdyZWUgd2l0aC4NCg0KICAgIEluIG15IGhp c3Rvcnkgd2l0aCBUaWFub0NvcmUsIEkgaGF2ZSBsZWFybmVkIHRvIG5vdCBiZSBzbyBxdWljayB0 byBzYXkg4oCcdGhpcyBpcyBmdWNraW5nIHN0dXBpZOKAnS4gRXZlcnkgdGltZSBJ4oCZdmUgZG9u ZSB0aGF0LCBJ4oCZdmUgbGF0ZXIgZGlzY292ZXJlZCB0aGUgcmVhc29ucyBiZWhpbmQgaXQsIGFu ZCBldmVuIGNvbWUgdG8gdGhlIGNvbmNsdXNpb24gdGhhdCB0aGUgZGVzaWduZXJzIHdlcmUgcXVp dGUgY2xldmVyLg0KDQogICAgVGhhdCBzYWlkLCBJIHdhbnQgdG8gY29udHJpYnV0ZS4gQW5kIEkg d29u4oCZdCB3aXRoIHRoZSBjdXJyZW50IHN5c3RlbS4gSSBob3BlIHRvIGJlIGFibGUgdG8gd2l0 aCB0aGUgZnV0dXJlIHN5c3RlbS4NCg0KICAgIC0gQnJldA0KDQogICAgRnJvbTogRGVzaW1vbmUs IE5hdGhhbmllbCBMPG1haWx0bzpuYXRoYW5pZWwubC5kZXNpbW9uZUBpbnRlbC5jb20+DQogICAg U2VudDogVHVlc2RheSwgTWF5IDE5LCAyMDIwIDEyOjU5IFBNDQogICAgVG86IGRldmVsQGVkazIu Z3JvdXBzLmlvPG1haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pbz47IEJyZXQgQmFya2VsZXc8bWFp bHRvOkJyZXQuQmFya2VsZXdAbWljcm9zb2Z0LmNvbT47IHNwYnJvZ2FuQG91dGxvb2suY29tPG1h aWx0bzpzcGJyb2dhbkBvdXRsb29rLmNvbT47IHJmY0BlZGsyLmdyb3Vwcy5pbzxtYWlsdG86cmZj QGVkazIuZ3JvdXBzLmlvPjsgbGVyc2VrQHJlZGhhdC5jb208bWFpbHRvOmxlcnNla0ByZWRoYXQu Y29tPjsgS2lubmV5LCBNaWNoYWVsIEQ8bWFpbHRvOm1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t Pg0KICAgIFN1YmplY3Q6IFtFWFRFUk5BTF0gUmU6IFtlZGsyLWRldmVsXSBbZWRrMi1yZmNdIEdp dEh1YiBQdWxsIFJlcXVlc3QgYmFzZWQgQ29kZSBSZXZpZXcgUHJvY2Vzcw0KDQogICAgSGkgQnJl dCwNCg0KICAgIEkgYmVsaWV2ZSB5b3UgbWlzc2VkIG15IHBvaW50LiBJIGRvbuKAmXQgd2FudCBt eSBwYXRjaCBzZXJpZXMgdG8gYmUgbWVyZ2VkIHBpZWNlIGJ5IHBpZWNlOyBJIHdhbnQgaXQgbWVy Z2VkIGFsbCBhdCBvbmNlLCBpbiB0aGUgb3JkZXIgdGhhdCBJIHNwZWNpZmllZC4NCg0KICAgIEkg dGVuZCB0byBhZ3JlZSB3aXRoIExhc3psbyB0aGF0IHlvdSBhcmUgY2hvb3Npbmcgbm90IHRvIGxl YXJuIGhvdyB0byB1c2UgR2l0IHByb3Blcmx5LiBDb21taXQgZWFybHksIGNvbW1pdCBvZnRlbiwg cGVyZmVjdCBsYXRlciwgcHVibGlzaCBvbmNlIGlzIHRoZSBHaXQgYmVzdCBwcmFjdGljZS4gWW91 IHNob3VsZCBub3QgaGlkZSB0aGUgc2F1c2FnZSBtYWtpbmcsIHdoaWNoIGlzIGV4YWN0bHkgd2hh dCB5b3UgYXJlIHByb3Bvc2luZy4gSSBmaW5kIGl0IHVuZm9ydHVuYXRlIHRoYXQgeW91IGNvbnNp ZGVyIHJlZnVzaW5nIHRvIGxlYXJuIEdJdCBiZXN0IHByYWN0aWNlcyBhIG1hcmsgb2YgcHJlc3Rp Z2UuDQoNCiAgICBUaGFua3MsDQogICAgTmF0ZQ0KDQogICAgRnJvbTogPGRldmVsQGVkazIuZ3Jv dXBzLmlvPiBvbiBiZWhhbGYgb2YgIkJyZXQgQmFya2VsZXcgdmlhIGdyb3Vwcy5pbyIgPGJyZXQu YmFya2VsZXc9bWljcm9zb2Z0LmNvbUBncm91cHMuaW8+DQogICAgUmVwbHktVG86ICJkZXZlbEBl ZGsyLmdyb3Vwcy5pbyIgPGRldmVsQGVkazIuZ3JvdXBzLmlvPiwgImJyZXQuYmFya2VsZXdAbWlj cm9zb2Z0LmNvbSIgPGJyZXQuYmFya2VsZXdAbWljcm9zb2Z0LmNvbT4NCiAgICBEYXRlOiBUdWVz ZGF5LCBNYXkgMTksIDIwMjAgYXQgMTI6MzUgUE0NCiAgICBUbzogImRldmVsQGVkazIuZ3JvdXBz LmlvIiA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+LCAiRGVzaW1vbmUsIE5hdGhhbmllbCBMIiA8bmF0 aGFuaWVsLmwuZGVzaW1vbmVAaW50ZWwuY29tPiwgInNwYnJvZ2FuQG91dGxvb2suY29tIiA8c3Bi cm9nYW5Ab3V0bG9vay5jb20+LCAicmZjQGVkazIuZ3JvdXBzLmlvIiA8cmZjQGVkazIuZ3JvdXBz LmlvPiwgImxlcnNla0ByZWRoYXQuY29tIiA8bGVyc2VrQHJlZGhhdC5jb20+LCAiS2lubmV5LCBN aWNoYWVsIEQiIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCiAgICBTdWJqZWN0OiBSZTog W2VkazItZGV2ZWxdIFtlZGsyLXJmY10gR2l0SHViIFB1bGwgUmVxdWVzdCBiYXNlZCBDb2RlIFJl dmlldyBQcm9jZXNzDQoNCiAgICBOYXRlLCBJIGJlbGlldmUgeW91IG1pc3NlZCBTZWFu4oCZcyBw b2ludC4NCg0KICAgIEVhY2ggb25lIG9mIHRob3NlIHBhY2thZ2VzIHNob3VsZCBoYXZlIGJlZW4g YSBzZXBhcmF0ZSBQUi4NCiAgICBFcmdvLCBubyBpbmZvcm1hdGlvbiB3b3VsZCBoYXZlIGJlZW4g bG9zdCBpbiB0aGUgc3F1YXNoLg0KDQogICAgQWxzbywgaXTigJlzIG5vdCBzbyBtdWNoIHRoYXQg d2UgKmNhbuKAmXQqIGxlYXJuLiBJdOKAmXMgdGhhdCB3ZSBjaG9vc2Ugbm90IHRvLiBBcm91bmQg aGVyZSwgaXTigJlzIGEgbWFyayBvZiBwcmVzdGlnZSB0byBub3Qgb3BlbiBkb29ycyB3aXRoIHlv dXIgZmFjZSBpZiBpdCBzZWVtcyBsaWtlIHRoZXJl4oCZcyBhIGJldHRlciB3YXkuIE1ha2VzIGl0 IGVhc2llciB0byBmb2N1cyBvbiB0aGUgd29yay4NCg0KICAgIC0gQnJldA0KDQogICAgRnJvbTog TmF0ZSBEZVNpbW9uZSB2aWEgZ3JvdXBzLmlvPG1haWx0bzpuYXRoYW5pZWwubC5kZXNpbW9uZT1p bnRlbC5jb21AZ3JvdXBzLmlvPg0KICAgIFNlbnQ6IFR1ZXNkYXksIE1heSAxOSwgMjAyMCAxMTow MiBBTQ0KICAgIFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzxtYWlsdG86ZGV2ZWxAZWRrMi5ncm91 cHMuaW8+OyBzcGJyb2dhbkBvdXRsb29rLmNvbTxtYWlsdG86c3Bicm9nYW5Ab3V0bG9vay5jb20+ OyByZmNAZWRrMi5ncm91cHMuaW88bWFpbHRvOnJmY0BlZGsyLmdyb3Vwcy5pbz47IGxlcnNla0By ZWRoYXQuY29tPG1haWx0bzpsZXJzZWtAcmVkaGF0LmNvbT47IEJyZXQgQmFya2VsZXc8bWFpbHRv OkJyZXQuQmFya2VsZXdAbWljcm9zb2Z0LmNvbT47IEtpbm5leSwgTWljaGFlbCBEPG1haWx0bzpt aWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCiAgICBTdWJqZWN0OiBbRVhURVJOQUxdIFJlOiBb ZWRrMi1kZXZlbF0gW2VkazItcmZjXSBHaXRIdWIgUHVsbCBSZXF1ZXN0IGJhc2VkIENvZGUgUmV2 aWV3IFByb2Nlc3MNCg0KICAgIEhpIFNlYW4sDQoNCiAgICBNeSByZWNlbnQgc3BlbGxpbmcgZml4 IHBhdGNoIHNlcmllcyBpcyBhIGdvb2QgZXhhbXBsZSBvZiB3aHkgdGhpcyBpcyBhIGJhZCBpZGVh IGFjdHVhbGx5Og0KDQogICAgaHR0cHM6Ly9uYW0wNi5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRs b29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGZWRrMi5ncm91cHMuaW8lMkZnJTJGZGV2ZWwlMkZt ZXNzYWdlJTJGNTk3NzkmYW1wO2RhdGE9MDIlN0MwMSU3Q2JyZXQuYmFya2VsZXclNDBtaWNyb3Nv ZnQuY29tJTdDNmU0N2Y1ZTA0NWY3NDA1MzZhMDcwOGQ3ZmMxZWQyOTAlN0M3MmY5ODhiZjg2ZjE0 MWFmOTFhYjJkN2NkMDExZGI0NyU3QzElN0MwJTdDNjM3MjU1MDgxNjI1OTk2MzEyJmFtcDtzZGF0 YT1mVnoxNkUzNyUyQndXNXBTZ1J4STQ1SzduV1BEbElvUzBIdUk4VUNHbUV3alklM0QmYW1wO3Jl c2VydmVkPTA8aHR0cHM6Ly9uYW0wNi5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/ dXJsPWh0dHBzJTNBJTJGJTJGZWRrMi5ncm91cHMuaW8lMkZnJTJGZGV2ZWwlMkZtZXNzYWdlJTJG NTk3NzkmZGF0YT0wMiU3QzAxJTdDYnJldC5iYXJrZWxldyU0MG1pY3Jvc29mdC5jb20lN0NiZjZk NWFlZDY3Mzc0Yzk1Y2EzNTA4ZDdmYzJmMjBlYyU3QzcyZjk4OGJmODZmMTQxYWY5MWFiMmQ3Y2Qw MTFkYjQ3JTdDMSU3QzAlN0M2MzcyNTUxNTE2NjIxNDU0Nzkmc2RhdGE9bTY2SVZpTjNHJTJCYkpw QndvbFJYZjhkM0JwV1FlUlhzNDk1V1l4bnNEODVNJTNEJnJlc2VydmVkPTA+DQogICAgaHR0cHM6 Ly9uYW0wNi5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJG JTJGZWRrMi5ncm91cHMuaW8lMkZnJTJGZGV2ZWwlMkZtZXNzYWdlJTJGNTk3ODAmYW1wO2RhdGE9 MDIlN0MwMSU3Q2JyZXQuYmFya2VsZXclNDBtaWNyb3NvZnQuY29tJTdDNmU0N2Y1ZTA0NWY3NDA1 MzZhMDcwOGQ3ZmMxZWQyOTAlN0M3MmY5ODhiZjg2ZjE0MWFmOTFhYjJkN2NkMDExZGI0NyU3QzEl N0MwJTdDNjM3MjU1MDgxNjI1OTk2MzEyJmFtcDtzZGF0YT00cTBsQzFCU2xTb1EzcDBIR1d3bHBo MDlIVGpnSlJvNG5UTzJReDU5JTJGamMlM0QmYW1wO3Jlc2VydmVkPTA8aHR0cHM6Ly9uYW0wNi5z YWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGZWRrMi5n cm91cHMuaW8lMkZnJTJGZGV2ZWwlMkZtZXNzYWdlJTJGNTk3ODAmZGF0YT0wMiU3QzAxJTdDYnJl dC5iYXJrZWxldyU0MG1pY3Jvc29mdC5jb20lN0NiZjZkNWFlZDY3Mzc0Yzk1Y2EzNTA4ZDdmYzJm MjBlYyU3QzcyZjk4OGJmODZmMTQxYWY5MWFiMmQ3Y2QwMTFkYjQ3JTdDMSU3QzAlN0M2MzcyNTUx NTE2NjIxNTU0Nzcmc2RhdGE9VnVZUHF3Y21ZVHJiaVlkbyUyQjhLNWlyWDhrNnJnTWdFb0MyZlk4 ZUFvY1dBJTNEJnJlc2VydmVkPTA+DQogICAgaHR0cHM6Ly9uYW0wNi5zYWZlbGlua3MucHJvdGVj dGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGZWRrMi5ncm91cHMuaW8lMkZnJTJG ZGV2ZWwlMkZtZXNzYWdlJTJGNTk3ODEmYW1wO2RhdGE9MDIlN0MwMSU3Q2JyZXQuYmFya2VsZXcl NDBtaWNyb3NvZnQuY29tJTdDNmU0N2Y1ZTA0NWY3NDA1MzZhMDcwOGQ3ZmMxZWQyOTAlN0M3MmY5 ODhiZjg2ZjE0MWFmOTFhYjJkN2NkMDExZGI0NyU3QzElN0MwJTdDNjM3MjU1MDgxNjI1OTk2MzEy JmFtcDtzZGF0YT1YUVZTd1BNWGRwREpYajlua3V2cTJmZW53aE50NkhHR1pYc0p3SDVCdThFJTNE JmFtcDtyZXNlcnZlZD0wPGh0dHBzOi8vbmFtMDYuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9v ay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmVkazIuZ3JvdXBzLmlvJTJGZyUyRmRldmVsJTJGbWVz c2FnZSUyRjU5NzgxJmRhdGE9MDIlN0MwMSU3Q2JyZXQuYmFya2VsZXclNDBtaWNyb3NvZnQuY29t JTdDYmY2ZDVhZWQ2NzM3NGM5NWNhMzUwOGQ3ZmMyZjIwZWMlN0M3MmY5ODhiZjg2ZjE0MWFmOTFh YjJkN2NkMDExZGI0NyU3QzElN0MwJTdDNjM3MjU1MTUxNjYyMTY1NDcyJnNkYXRhPWxNcmhmV0tC V0tHa2pOblhKSnk3JTJCaXNydWdUaTBKJTJGVWttdG5qN1Z4YjdRJTNEJnJlc2VydmVkPTA+DQog ICAgaHR0cHM6Ly9uYW0wNi5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0 dHBzJTNBJTJGJTJGZWRrMi5ncm91cHMuaW8lMkZnJTJGZGV2ZWwlMkZtZXNzYWdlJTJGNTk3ODIm YW1wO2RhdGE9MDIlN0MwMSU3Q2JyZXQuYmFya2VsZXclNDBtaWNyb3NvZnQuY29tJTdDNmU0N2Y1 ZTA0NWY3NDA1MzZhMDcwOGQ3ZmMxZWQyOTAlN0M3MmY5ODhiZjg2ZjE0MWFmOTFhYjJkN2NkMDEx ZGI0NyU3QzElN0MwJTdDNjM3MjU1MDgxNjI1OTk2MzEyJmFtcDtzZGF0YT1rQ1VMR0JjNiUyQmlm Y24zY25QVFYxb2RISTFaVXh1V1FlUE4zUE9LS1MzU00lM0QmYW1wO3Jlc2VydmVkPTA8aHR0cHM6 Ly9uYW0wNi5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJG JTJGZWRrMi5ncm91cHMuaW8lMkZnJTJGZGV2ZWwlMkZtZXNzYWdlJTJGNTk3ODImZGF0YT0wMiU3 QzAxJTdDYnJldC5iYXJrZWxldyU0MG1pY3Jvc29mdC5jb20lN0NiZjZkNWFlZDY3Mzc0Yzk1Y2Ez NTA4ZDdmYzJmMjBlYyU3QzcyZjk4OGJmODZmMTQxYWY5MWFiMmQ3Y2QwMTFkYjQ3JTdDMSU3QzAl N0M2MzcyNTUxNTE2NjIxNjU0NzImc2RhdGE9cmx0VllTUWNTTEcyc0dQNGQyYXdESXVXVjExbllR Y2R4dnF5UHhETTRYRSUzRCZyZXNlcnZlZD0wPg0KICAgIGh0dHBzOi8vbmFtMDYuc2FmZWxpbmtz LnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmVkazIuZ3JvdXBzLmlv JTJGZyUyRmRldmVsJTJGbWVzc2FnZSUyRjU5NzgzJmFtcDtkYXRhPTAyJTdDMDElN0NicmV0LmJh cmtlbGV3JTQwbWljcm9zb2Z0LmNvbSU3QzZlNDdmNWUwNDVmNzQwNTM2YTA3MDhkN2ZjMWVkMjkw JTdDNzJmOTg4YmY4NmYxNDFhZjkxYWIyZDdjZDAxMWRiNDclN0MxJTdDMCU3QzYzNzI1NTA4MTYy NTk5NjMxMiZhbXA7c2RhdGE9U0NPaFVNZE5YSEl5bUdMYXc5ejNKVGglMkZlMkJmYUphQXlFQzk5 RWtHJTJGdmclM0QmYW1wO3Jlc2VydmVkPTA8aHR0cHM6Ly9uYW0wNi5zYWZlbGlua3MucHJvdGVj dGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGZWRrMi5ncm91cHMuaW8lMkZnJTJG ZGV2ZWwlMkZtZXNzYWdlJTJGNTk3ODMmZGF0YT0wMiU3QzAxJTdDYnJldC5iYXJrZWxldyU0MG1p Y3Jvc29mdC5jb20lN0NiZjZkNWFlZDY3Mzc0Yzk1Y2EzNTA4ZDdmYzJmMjBlYyU3QzcyZjk4OGJm ODZmMTQxYWY5MWFiMmQ3Y2QwMTFkYjQ3JTdDMSU3QzAlN0M2MzcyNTUxNTE2NjIxNzU0Njkmc2Rh dGE9YjBKJTJCTDRuZGR0M2clMkZtaWRaTzYxdGxrZ1ZxclJzdWZPVUhHalJxaDFDSk0lM0QmcmVz ZXJ2ZWQ9MD4NCiAgICBodHRwczovL25hbTA2LnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2su Y29tLz91cmw9aHR0cHMlM0ElMkYlMkZlZGsyLmdyb3Vwcy5pbyUyRmclMkZkZXZlbCUyRm1lc3Nh Z2UlMkY1OTc4NCZhbXA7ZGF0YT0wMiU3QzAxJTdDYnJldC5iYXJrZWxldyU0MG1pY3Jvc29mdC5j b20lN0M2ZTQ3ZjVlMDQ1Zjc0MDUzNmEwNzA4ZDdmYzFlZDI5MCU3QzcyZjk4OGJmODZmMTQxYWY5 MWFiMmQ3Y2QwMTFkYjQ3JTdDMSU3QzAlN0M2MzcyNTUwODE2MjU5OTYzMTImYW1wO3NkYXRhPWVw RVQ2V2szMGJJSFFDdkVERkxrZUhFZm1tOXR6bHhSckolMkZRQXVFZlFGcyUzRCZhbXA7cmVzZXJ2 ZWQ9MDxodHRwczovL25hbTA2LnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9 aHR0cHMlM0ElMkYlMkZlZGsyLmdyb3Vwcy5pbyUyRmclMkZkZXZlbCUyRm1lc3NhZ2UlMkY1OTc4 NCZkYXRhPTAyJTdDMDElN0NicmV0LmJhcmtlbGV3JTQwbWljcm9zb2Z0LmNvbSU3Q2JmNmQ1YWVk NjczNzRjOTVjYTM1MDhkN2ZjMmYyMGVjJTdDNzJmOTg4YmY4NmYxNDFhZjkxYWIyZDdjZDAxMWRi NDclN0MxJTdDMCU3QzYzNzI1NTE1MTY2MjE4NTQ2MyZzZGF0YT16aEhVVW1ja1JkWTQ1b1lJUG9k cVA5cjNTaDRRNHQlMkZaWVJMVUxPaUFFUnMlM0QmcmVzZXJ2ZWQ9MD4NCiAgICBodHRwczovL25h bTA2LnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZl ZGsyLmdyb3Vwcy5pbyUyRmclMkZkZXZlbCUyRm1lc3NhZ2UlMkY1OTc4NSZhbXA7ZGF0YT0wMiU3 QzAxJTdDYnJldC5iYXJrZWxldyU0MG1pY3Jvc29mdC5jb20lN0M2ZTQ3ZjVlMDQ1Zjc0MDUzNmEw NzA4ZDdmYzFlZDI5MCU3QzcyZjk4OGJmODZmMTQxYWY5MWFiMmQ3Y2QwMTFkYjQ3JTdDMSU3QzAl N0M2MzcyNTUwODE2MjU5OTYzMTImYW1wO3NkYXRhPU44VDdIamVySlZ2eUdnOTR5TVdqTG0lMkZ3 N1dEZFhPZGJ5MUpwT1lsUGVWYyUzRCZhbXA7cmVzZXJ2ZWQ9MDxodHRwczovL25hbTA2LnNhZmVs aW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZlZGsyLmdyb3Vw cy5pbyUyRmclMkZkZXZlbCUyRm1lc3NhZ2UlMkY1OTc4NSZkYXRhPTAyJTdDMDElN0NicmV0LmJh cmtlbGV3JTQwbWljcm9zb2Z0LmNvbSU3Q2JmNmQ1YWVkNjczNzRjOTVjYTM1MDhkN2ZjMmYyMGVj JTdDNzJmOTg4YmY4NmYxNDFhZjkxYWIyZDdjZDAxMWRiNDclN0MxJTdDMCU3QzYzNzI1NTE1MTY2 MjE4NTQ2MyZzZGF0YT1NTlVmV0poamIxVWZQRmNpVUoyZGN1OXVXUXdVTmtTM1BKTyUyQmVNa0ZW eEElM0QmcmVzZXJ2ZWQ9MD4NCg0KICAgIE5vdGljZSB0aGF0IEkgc3BsaXQgYWxvbmcgcGFja2Fn ZSBib3VuZGFyaWVzLCBiZWNhdXNlIHRoZSBtYWludGFpbmVycyBmb3IgZWFjaCBwYWNrYWdlIGlz IGEgZGlmZmVyZW50IHNldCBvZiBwZW9wbGUuIElmIG15IHBhdGNoIHNlcmllcyB3YXMgc3F1YXNo ZWQgYXQgbWVyZ2UgdGltZS4uLiBob3cgZG8gSSBrbm93IHdobyByZXZpZXdlZCB3aGF0PyBJZiB0 aGUgY29tbWl0IHNldCBpcyBub3QgY29ycmVjdC4uIEkgdGVuZCB0byBzYXkgc28gaW4gbXkgZmVl ZGJhY2sgOikuIFRoZSBvbmx5IHNhbmUgd2F5IHRvIHNxdWFzaCB0aGlzIHNlcmllcyB3b3VsZCBi ZSB0byBoYXZlIGEgaHVtYW4gcmUtd3JpdGUgYWxsIHRoZSBjb21taXQgbWVzc2FnZXMsIHdoaWNo IEkgYW0gYWdhaW5zdC4NCg0KICAgIEdlbmVyYWxseSB0aG9zZSB0aGF0IHByZWZlciBhbiBlYXNp bHkgYmlzZWN0YWJsZSBoaXN0b3J5IGhhdmUgc3VjaCBwcmVmZXJlbmNlIG1vc3RseSBkdWUgdG8g dGhlIHVzYWdlIG9mIHZhbGlkYXRvcnMgdGhhdCBpbW1lZGlhdGVseSByZXNvcnQgYmlzZWN0aW5n IGFzIGEgbWV0aG9kIHRvIHJvb3QgY2F1c2UgYW4gaXNzdWUgc2luY2UgdGhleSB0ZW5kIHRvIG5v dCB1bmRlcnN0YW5kIHRoZSBjb2RlIHZlcnkgd2VsbC4gRWRrMiBhbHJlYWR5IGhhcyAxMiB5ZWFy cyBvZiBub24tYmlzZWN0YWJsZSBoaXN0b3J5LCBzbyB0aGlzIG1ldGhvZCBpcyBnb2luZyB0byBi ZSBpbmVmZmVjdGl2ZSBhbnl3YXkuDQoNCiAgICBXaXRoIHJlZ2FyZCB0byBzZW5kaW5nIHNxdWFz aGVkIGNvbW1pdHMsIEkgdW5kZXJzdGFuZCB0aGF0IHRob3NlIHdobyBhcmUgbmV3IG1heSBoYXZl IGRpZmZpY3VsdHkgc2VuZGluZyBhIHByb3Blcmx5IGZvcm1hdHRlZCBwYXRjaCBzZXJpZXMsIGJ1 dCBmcmFua2x5IGF0dGVtcHRpbmcgdG8gc2hpZWxkIHRoZW0gZnJvbSBoYXZpbmcgdG8gbGVhcm4g SSBhbSBzdHJvbmdseSBhZ2FpbnN0LiBJIHN1Z2dlc3QgdGhhdCBNaWNyb3NvZnQgaW52ZXN0IGlu IGl0cyBodW1hbiBjYXBpdGFsIHNpbWlsYXIgdG8gaG93IEludGVsIGRvZXMuIElmIHlvdSBjYW5u b3QgZmlndXJlIG91dCBob3cgdG8gc2VuZCBhIHByb3Blcmx5IGZvcm1hdHRlZCBwYXRjaCBzZXJp ZXMuLi4gdGhlbiBkbyB5b3VyIHdvcmsgb24gdGhlIGludGVybmFsIGNvZGViYXNlIChvciBwZXJo YXBzIE1VLikgV2l0aGluIHRoZSBJbnRlbCwgaGF2aW5nIHRoZSBza2lsbHNldCB0byBjb250cmli dXRlIHRvIFRpYW5vQ29yZSBpcyBjb25zaWRlcmVkIGEgbWFyayBvZiBwcmVzdGlnZSwgYW5kIHRo dXMgbmVlZHMgdG8gYmUgZWFybmVkLg0KDQogICAgVExEUiwgSSB3aWxsIHJlamVjdCBzcXVhc2hl ZCBjb21taXRzIG9uIGFueSBwYWNrYWdlcyB0aGF0IEkgbWFpbnRhaW4uDQoNCiAgICBUaGFua3Ms DQogICAgTmF0ZQ0KDQogICAgPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KICAgID4gRnJv bTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYg T2YgU2Vhbg0KICAgID4gU2VudDogVHVlc2RheSwgTWF5IDE5LCAyMDIwIDk6NTQgQU0NCiAgICA+ IFRvOiByZmNAZWRrMi5ncm91cHMuaW87IERlc2ltb25lLCBOYXRoYW5pZWwgTA0KICAgID4gPG5h dGhhbmllbC5sLmRlc2ltb25lQGludGVsLmNvbT47IGxlcnNla0ByZWRoYXQuY29tOw0KICAgID4g YnJldC5iYXJrZWxld0BtaWNyb3NvZnQuY29tOyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgS2lubmV5 LCBNaWNoYWVsIEQNCiAgICA+IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCiAgICA+IFN1 YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW2VkazItcmZjXSBHaXRIdWIgUHVsbCBSZXF1ZXN0IGJh c2VkIENvZGUgUmV2aWV3DQogICAgPiBQcm9jZXNzDQogICAgPg0KICAgID4gTmF0ZS9MYXN6bG8s DQogICAgPg0KICAgID4gUmVnYXJkaW5nIGEgc3F1YXNoIG1lcmdlIHdvcmtmbG93LiAgSSBhZ3Jl ZSBpdCBjYW4gYmUgYWJ1c2VkIGFuZCB3ZSBhbGwNCiAgICA+IGhhdmUgc2VlbiB0ZXJyaWJsZSBl eGFtcGxlcy4gIEJ1dCBhIHBhdGNoIHNlcmllcyB0aGF0IGNvbnRhaW5zIDUwMCsgZmlsZQ0KICAg ID4gY2hhbmdlcyBpc24ndCByZWFsbHkgbXVjaCBiZXR0ZXIuICBKdXN0IGJlY2F1c2UgaXQgaXMg YnJva2VuIGludG8gbXVsdGlwbGUNCiAgICA+IGNvbW1pdHMgZG9lc24ndCBtZWFuIGl0IGlzIHRo ZSByaWdodCBzZXQgb2YgY29tbWl0cy4NCiAgICA+DQogICAgPiBBbnl3YXkgYSBzcXVhc2ggbWVy Z2Ugd29ya2Zsb3cgd29ya3MgYW1hemluZ2x5IHdlbGwgd2l0aCBhbmQgaXMNCiAgICA+IG9wdGlt aXplZCBmb3IgYSB3ZWIgYmFzZWQgcmV2aWV3IGFuZCBQUiBwcm9jZXNzZXMuICBJdCBhbGxvd3Mg YSB1c2VyIHRvDQogICAgPiByZXNwb25kIHRvIGNoYW5nZXMsIGZpeCBpc3N1ZXMsIGxlYXJuIHRo cnUgdGhlIFBSIHByb2Nlc3MsIGFsbCB3aGlsZSBrZWVwaW5nDQogICAgPiBjb21wbGV0ZSB0cmFj ayBvZiB0aGUgcHJvZ3Jlc3Npb24uICBUaGVuIG9uY2UgYWxsICJzdGF0dXMiDQogICAgPiBjaGVj a3MgYW5kIHJldmlld3MgYXJlIGNvbXBsZXRlLCBpdCBpcyBzcXVhc2hlZCBpbnRvIGEgbmVhdCBj b21taXQgZm9yDQogICAgPiBtYWlubGluZSwgY29udGFpbmluZyBvbmx5IHRoZSByZWxldmFudCBk YXRhIGluIHRoZSBtZXNzYWdlLg0KICAgID4NCiAgICA+IFNvLCB0aGUgYXNrIGlzIHRoYXQgd2Ug ZG9uJ3QgZXhjbHVkZSBzcXVhc2ggbWVyZ2Ugd29ya2Zsb3dzLiAgVGhvc2UNCiAgICA+IHJldmll d2luZyB0aGUgUFIgY2FuIGRlY2lkZSB3aGF0IGlzIGFwcHJvcHJpYXRlIGZvciB0aGUgUFIgY29u dGVudA0KICAgID4gc3VibWl0dGVkLiAgSnVzdCBhcyB5b3Ugd291bGQgcmVxdWVzdCBjaGFuZ2Vz IHRvIHRoZSBjb250ZW50cyAob3INCiAgICA+IG9yZGVyaW5nKSBvZiBhIGNvbW1pdCBpbiBhIHNl cmllcywgaWYgdGhlIHJldmlld2VycyBkb24ndCBhZ3JlZSB0aGF0IHRoZSBQUg0KICAgID4gY29u dGVudHMgc2hvdWxkIGJlIGluIGEgc2luZ2xlIGNvbW1pdCB0aGVuIG9idmlvdXNseSBpdCBzaG91 bGRuJ3QgYmUNCiAgICA+IHNxdWFzaGVkIHRvIG9uZS4NCiAgICA+DQogICAgPiBDb250cmlidXRp b25zIGxpa2Ugc3BlbGxpbmcgZml4ZXMsIHR5cG9zLCBtaW5vciBidWcgZml4ZXMsIGRvY3VtZW50 YXRpb24NCiAgICA+IGFkZGl0aW9ucy9maXhlcywgZXRjIGFsbCBhcmUgZ3JlYXQgZXhhbXBsZXMg b2YgUFJzIHRoYXQgY2FuIGVhc2lseSBsZXZlcmFnZQ0KICAgID4gc3F1YXNoIG1lcmdlcyBhbmQg dGhpcyB3b3JrZmxvdyBzaWduaWZpY2FudGx5IGxvd2VycyB0aGUgYnVyZGVuIG9mIHRoZQ0KICAg ID4gY29udHJpYnV0aW9uIGFuZCByZXZpZXcgcHJvY2Vzcy4gIFRoaXMgd29ya2Zsb3cgaXMgYWxz byBhcmUgbXVjaCBlYXNpZXIgZm9yDQogICAgPiBjYXN1YWwgb3IgZmlyc3QgdGltZSBjb250cmli dXRvcnMuDQogICAgPg0KICAgID4gSSBkb24ndCBleGFjdGx5IGtub3cgaG93IHdlIHdvdWxkIGVu YWJsZSB0aGlzIGJ1dCBJIGFzc3VtZSB3ZSBjb3VsZA0KICAgID4gbGV2ZXJhZ2UgdGFncyBvciBt YWtlIGl0IGNsZWFyIGluIHRoZSBQUiBkZXNjcmlwdGlvbi4gIEZpcnN0IHN0ZXAgaXMgdG8gZ2V0 DQogICAgPiBhbGlnbm1lbnQgdGhhdCBhIHNxdWFzaCBtZXJnZSB3b3JrZmxvdywgd2hpbGUgbm90 IGFwcHJvcHJpYXRlIGZvciBhbGwNCiAgICA+IGNvbnRyaWJ1dGlvbnMsIGlzIG5vdCBzb21ldGhp bmcgdG8gYmUgZXhjbHVkZWQuDQogICAgPg0KICAgID4gVGhhbmtzDQogICAgPiBTZWFuDQogICAg Pg0KICAgID4NCiAgICA+DQogICAgPiBPbiA1LzE5LzIwMjAgMTI6MjEgQU0sIE5hdGUgRGVTaW1v bmUgd3JvdGU6DQogICAgPiA+IEhpIEFsbCwNCiAgICA+ID4NCiAgICA+ID4NCiAgICA+ID4NCiAg ICA+ID4gSSB0ZW5kIHRvIGFncmVlIHdpdGggbW9zdCBvZiBMYXN6bG8ncyBwb2ludHMuIFNwZWNp ZmljYWxseSwgdGhhdCBtb3ZpbmcgdG8gcHVsbA0KICAgID4gcmVxdWVzdHMgd2lsbCBub3QgZml4 IHRoZSBmYWN0IHRoYXQgbWFpbnRhaW5lcnMgYXJlIHVzdWFsbHkgYnVzeSBwZW9wbGUgYW5kDQog ICAgPiBkb24ndCBhbHdheXMgZ2l2ZSBmZWVkYmFjayBpbiBhIHB1bmN0dWFsIG1hbm5lci4gTGlr ZSBMYXN6bG8sIEkgd291bGQgYWxzbw0KICAgID4gcHJlZmVyIHRoYXQgd2UgZG8gbm90IHNxdWFz aCBwYXRjaCBzZXJpZXMuIE15IGJpZ2dlc3QgcmVhc29uIGZvciBub3QNCiAgICA+IHNxdWFzaGlu ZyBwYXRjaCBzZXJpZXMgaXMgYmVjYXVzZSB3aGVuIHlvdSBwdXQgZXZlcnl0aGluZyBpbnRvIGEg c2luZ2xlDQogICAgPiBjb21taXQsIEkgaGF2ZSBoYWQgdG8gcmV2aWV3IGNvbW1pdHMgd2l0aCA1 MDArIGZpbGVzIGNoYW5nZWQuIE9wZW5pbmcgZ2l0DQogICAgPiBkaWZmdG9vbCBvbiBhIGNvbW1p dCBsaWtlIHRoYXQgaXMgYXdmdWwuDQogICAgPiA+DQogICAgPiA+DQogICAgPiA+DQogICAgPiA+ IEhvd2V2ZXIsIEkgd291bGQgbGlrZSB0byByZWdpc3RlciBteSBnZW5lcmFsIGVuZG9yc2VtZW50 IGZvciBwdWxsIHJlcXVlc3RzDQogICAgPiBvciBzb21lIG90aGVyIHdlYiBiYXNlZCBzeXN0ZW0g b2YgY29kZSByZXZpZXfigKYgYW5kIEkgZG9u4oCZdCBoYXZlIGFuDQogICAgPiBJbnN0YWdyYW0g YWNjb3VudCBieSB0aGUgd2F5IDopIFBlcnNvbmFsbHksIEkgcHJlZmVyIEdlcnJpdCBhcyBJIHVz ZSBpdCBhIGxvdCB3aXRoDQogICAgPiBjb3JlYm9vdCBhbmQgb3RoZXIgcHJvamVjdHMuIEJ1dCBz aW5jZSB3ZSBhcmUgdXNpbmcgR2l0aHViIGZvciBob3N0aW5nLCBwdWxsDQogICAgPiByZXF1ZXN0 cyBhcmUgYW4gZWFzeSBzd2l0Y2ggYW5kIGEgbG9naWNhbCBjaG9pY2UuIE15IG1haW4gcmVhc29u IGZvciBiZWluZw0KICAgID4gZXhjaXRlZCBhYm91dCBwdWxsIHJlcXVlc3RzIG1vc3RseSBoYXMg dG8gZG8gd2l0aCB0aGUgYW1vdW50IG9mIG1hbnVhbA0KICAgID4gZWZmb3J0IHJlcXVpcmVkIHRv IGJlIGEgVGlhbm9Db3JlIG1haW50YWluZXIgcmlnaHQgbm93LiBJIGhhdmUgc2V0IHVwIG15DQog ICAgPiBlbWFpbCBmaWx0ZXIgc28gdGhhdCB0aGUgbWFpbGluZyBsaXN0IGlzIGNhdGVnb3JpemVk IGxpa2Ugc286DQogICAgPiA+DQogICAgPiA+DQogICAgPiA+DQogICAgPiA+IFtjaWQ6aW1hZ2Uw MDEucG5nQDAxRDYyRDcxLjUwMkI1NUUwXQ0KICAgID4gPg0KICAgID4gPg0KICAgID4gPg0KICAg ID4gPiBJbXBsZW1lbnRpbmcgdGhlIGxvZ2ljIHRvIHBhcnNlIHRoZSBjb250ZW50cyBvZiBlbWFp bHMgdG8gY2F0ZWdvcml6ZSB0aGVtDQogICAgPiBsaWtlIHRoaXMgcmVxdWlyZWQgbWUgdG8gZGVm aW5lIG5vIGxlc3MgdGhhbiAxMiBlbWFpbCBmaWx0ZXIgcnVsZXMgaW4gTWljcm9zb2Z0DQogICAg PiBPdXRsb29rLCBhbmQgSSBoYXZlIHRvIGNoYW5nZSBteSBmaWx0ZXJpbmcgbG9naWMgZXZlcnkg dGltZSBJIGFtDQogICAgPiBhZGRlZC9yZW1vdmVkIGZyb20gYSBNYWludGFpbmVycy50eHQgZmls ZS4gSeKAmW0gc3VyZSBldmVyeSBvdGhlciBtYWludGFpbmVyDQogICAgPiBoYXMgc3BlbnQgYSB0 aW1lIHNlcGFyYXRlbHkgaW1wbGVtZW50aW5nIGZpbHRlcmluZyBsb2dpYyBsaWtlIEkgaGF2ZS4g VGhpcyBoZWxwcywNCiAgICA+IGJ1dCBzdGlsbCBmb3IgZXZlcnkgdGhyZWFkLCBJIGhhdmUgdG8g Z28gYW5kIGNoZWNrIGlmIG9uZSBvZiB0aGUgb3RoZXINCiAgICA+IG1haW50YWluZXJzIGhhcyBh bHJlYWR5IHJldmlld2VkL3B1c2hlZCB0aGF0IHBhdGNoIHNlcmllcyB5ZXQsIGFuZCBpZiBub3QN CiAgICA+IHJldmlldy9wdXNoIGl0LiBJZiBJIGhhdmUgXSBmZWVkYmFjayBvbiBhIHBhdGNoIHNl cmllcywgSSBoYXZlIHRvIGNhdGVnb3JpemUgaXQNCiAgICA+IGFzIGF3YWl0aW5nIHJlc3BvbnNl IGZyb20gYXV0aG9yIGFuZCBjaGVjayB1cCBvbiBpdCBmcm9tIHRpbWUgdG8gdGltZSwNCiAgICA+ IHNvbWV0aW1lcyBJIHBpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgcmVtaW5kIHRoZW0gdG8g c2VuZCBhIG5ldyBwYXRjaA0KICAgID4gc2VyaWVzLiBJbXBsZW1lbnRpbmcgdGhpcyBzdGF0ZSBt YWNoaW5lIGlzIGEgbG90IG9mIG1hbnVhbCB3b3JrIGFuZCBpdCBraW5kIG9mDQogICAgPiBmZWVs cyBsaWtlIEnigJltIGEgdGVsZXBob25lIG9wZXJhdG9yIGluIHRoZSAxOTUwcy4gSSBncmVhdGx5 IHdlbGNvbWUNCiAgICA+IGF1dG9tYXRpb24gaGVyZSBhcyBJIGFtIHN1cmUgaXQgd2lsbCBpbmNy ZWFzZSB0aGUgbnVtYmVyIG9mIHBhdGNoIHNlcmllcyBJIGFtDQogICAgPiBhYmxlIHRvIHJldmll dyBwZXIgaG91ci4NCiAgICA+ID4NCiAgICA+ID4NCiAgICA+ID4NCiAgICA+ID4gVGhhbmtzLA0K ICAgID4gPg0KICAgID4gPiBOYXRlDQogICAgPiA+DQogICAgPiA+DQogICAgPiA+DQogICAgPiA+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQogICAgPiA+IEZyb206IHJmY0BlZGsyLmdyb3Vw cy5pbyA8cmZjQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgTGFzemxvDQogICAgPiA+IEVy c2VrDQogICAgPiA+IFNlbnQ6IEZyaWRheSwgTWF5IDE1LCAyMDIwIDI6MDggQU0NCiAgICA+ID4g VG86IHJmY0BlZGsyLmdyb3Vwcy5pbzsgYnJldC5iYXJrZWxld0BtaWNyb3NvZnQuY29tOw0KICAg ID4gPiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5r aW5uZXlAaW50ZWwuY29tPg0KICAgID4gPiBTdWJqZWN0OiBSZTogW0VYVEVSTkFMXSBSZTogW2Vk azItZGV2ZWxdIFtlZGsyLXJmY10gR2l0SHViIFB1bGwNCiAgICA+ID4gUmVxdWVzdCBiYXNlZCBD b2RlIFJldmlldyBQcm9jZXNzDQogICAgPiA+DQogICAgPiA+DQogICAgPiA+DQogICAgPiA+IE9u IDA1LzE1LzIwIDA2OjQ5LCBCcmV0IEJhcmtlbGV3IHZpYSBncm91cHMuaW8gd3JvdGU6DQogICAg PiA+DQogICAgPiA+DQogICAgPiA+DQogICAgPiA+PiBJIHdvdWxkIGZhciBwcmVmZXIgdGhlIGFw cHJvYWNoIG9mIGluZGl2aWR1YWwgUFJzIGZvciBjb21taXRzIHRvDQogICAgPiA+PiBhbGxvdw0K ICAgID4gPg0KICAgID4gPj4gZm9yIHRoZSBzcXVhc2ggZmxleGliaWxpdHkgKGFuZCBpcyB0aGUg c3RyYXRlZ3kgSSB0aGluayBJIHdvdWxkDQogICAgPiA+PiBwdXJzdWUNCiAgICA+ID4NCiAgICA+ ID4+IHdpdGggbXkgUFJzKS4gRm9yIGV4YW1wbGUsIHRoZSBWYXJQb2wgUFIgd291bGQgYmUgYnJv a2VuIHVwIGludG8gOQ0KICAgID4gPj4gUFJzDQogICAgPiA+DQogICAgPiA+PiBmb3IgZWFjaCBm aW5hbCBjb21taXQsIGFuZCB3ZSBjYW4gZ2V0IHRoZW0gaW4gb25lIGJ5IG9uZS4NCiAgICA+ID4N CiAgICA+ID4+IElkZWFsbHksIGVhY2ggb25lIHdvdWxkIGJlIGEgc21hbGwgYmFjayBhbmQgZm9y dGggYW5kIHRoZW4gaW4uIElmIGl0DQogICAgPiA+DQogICAgPiA+PiBoYWQgYmVlbiBkb25lIHRo YXQgd2F5IHRvIGJlZ2luIHdpdGgsIGl0IHdvdWxkIGJlIG92ZXIgaW4gYSB3ZWVrIGFuZA0KICAg ID4gPj4gYQ0KICAgID4gPg0KICAgID4gPj4gaGFsZiBvciBzbywgcmF0aGVyIHRoYW4gdGhlIG11 bHRpcGxlIG1vbnRocyB0aGF0IHdlw6LigqzihKJyZSBub3cgdmVyZ2luZw0KICAgID4gPg0KICAg ID4gPj4gb24uDQogICAgPiA+DQogICAgPiA+DQogICAgPiA+DQogICAgPiA+IFRoaXMgZGlmZmVy cyBleHRyZW1lbHkgZnJvbSBob3cgd2UndmUgYmVlbiB3b3JraW5nIG9uIGVkazItZGV2ZWwgKG9y DQogICAgPiBmcm9tIGhvdyBhbnkgZ2l0LWJhc2VkIHByb2plY3Qgd29ya3MgdGhhdCBJJ3ZlIGV2 ZXIgYmVlbiBpbnZvbHZlZCB3aXRoKS4NCiAgICA+ID4NCiAgICA+ID4gQW5kIEkgdGhpbmsgdGhl IGFib3ZlIHdvcmtmbG93IGlzIG91dCBvZiBzY29wZSwgZm9yIG1pZ3JhdGluZyB0aGUgZWRrMg0K ICAgID4gcHJvY2VzcyB0byBnaXRodWIuDQogICAgPiA+DQogICAgPiA+DQogICAgPiA+DQogICAg PiA+IEFnYWluLCB0aGUgc3RydWN0dXJpbmcgb2YgYSBwYXRjaCBzZXJpZXMgaXMgYSBwcmltYXJ5 IHRyYWl0LiBJdGVyYXRpbmcgb25seSBvbg0KICAgID4gaW5kaXZpZHVhbCBwYXRjaGVzIGRvZXMg bm90IGFsbG93IGZvciB0aGUgcmVvcmRlcmluZyAvIHJlc3RydWN0dXJpbmcgb2YgdGhlDQogICAg PiBwYXRjaCBzZXJpZXMgKGRyb3BwaW5nIHBhdGNoZXMsIHJlb3JkZXJpbmcgcGF0Y2hlcywgaW5z ZXJ0aW5nIHBhdGNoZXMsDQogICAgPiBtb3ZpbmcgaHVua3MgYmV0d2VlbiBwYXRjaGVzKS4NCiAg ICA+ID4NCiAgICA+ID4NCiAgICA+ID4NCiAgICA+ID4gSXQncyBjb21tb24gdGhhdCB0aGUgbmVj ZXNzaXR5IHRvIHJldmlzZSBhbiBlYXJsaWVyIHBhdGNoIGVtZXJnZXMgd2hpbGUNCiAgICA+IHJl d29ya2luZyBhIGxhdGVyIHBhdGNoLiBGb3IgaW5zdGFuY2UsIHRoZSBnaXQtcmViYXNlKDEpIG1h bnVhbCBkZWRpY2F0ZXMgYQ0KICAgID4gc2VwYXJhdGUgc2VjdGlvbiB0byAic3BsaXR0aW5nIGNv bW1pdHMiLg0KICAgID4gPg0KICAgID4gPg0KICAgID4gPg0KICAgID4gPiBJbiB0aGUgaW5pdGlh bCBldmFsdWF0aW9uIG9mICJ3ZWIgZm9yZ2VzIiwgUGhhYnJpY2F0b3Igd2FzIG9uZSBvZiB0aGUN CiAgICA+ICJjb250ZXN0YW50cyIuIFBoYWJyaWNhdG9yIGRpZG4ndCBzdXBwb3J0IHRoZSAicGF0 Y2ggc2VyaWVzIiBjb25jZXB0IGF0IGFsbCwgaXQNCiAgICA+IG9ubHkgc3VwcG9ydGVkIHJldmll dyByZXF1ZXN0cyBmb3IgaW5kaXZpZHVhbCBwYXRjaGVzLCBhbmQgaXQgc3VwcG9ydGVkDQogICAg PiBzZXR0aW5nIHVwIGRlcGVuZGVuY2llcyBiZXR3ZWVuIHRoZW0uIFNvLCBmb3IgZXhhbXBsZSwg YSAyNy1wYXRjaCBzZXJpZXMNCiAgICA+IHdvdWxkIHJlcXVpcmUgMjcgc3VibWlzc2lvbnMgYW5k IDI2IGRlcGVuZGVuY2llcy4NCiAgICA+ID4NCiAgICA+ID4NCiAgICA+ID4NCiAgICA+ID4gTGFj a2luZyBzdXBwb3J0IGZvciB0aGUgcGF0Y2ggc2VyaWVzIGNvbmNlcHQgd2FzIGFuIGltbWVkaWF0 ZSBkZWFsDQogICAgPiBicmVha2VyIHdpdGggUGhhYnJpY2F0b3IuDQogICAgPiA+DQogICAgPiA+ DQogICAgPiA+DQogICAgPiA+IFRoZSBsb25nZXN0IHBhdGNoIHNlcmllcyBJJ3ZlIGV2ZXIgc3Vi bWl0dGVkIHRvIGVkazItZGV2ZWwgaGFkIDU4IHBhdGNoZXMuDQogICAgPiBJdCB3YXMgU01NIGVu YWJsZW1lbnQgZm9yIE9WTUYuIEl0IHdlbnQgZnJvbSB2MSB0byB2NSAodjUgd2FzIG1lcmdlZCks DQogICAgPiBhbmQgdGhlIHBhdGNoIGNvdW50IHZhcmllZCBzaWduaWZpY2FudGx5Og0KICAgID4g Pg0KICAgID4gPg0KICAgID4gPg0KICAgID4gPiB2MTogNTggcGF0Y2hlcyAoMjUgSnVsIDIwMTUp DQogICAgPiA+DQogICAgPiA+IHYyOiA0MSBwYXRjaGVzICggOSBPY3QgMjAxNSkNCiAgICA+ID4N CiAgICA+ID4gdjM6IDUyIHBhdGNoZXMgKDE1IE9jdCAyMDE1KQ0KICAgID4gPg0KICAgID4gPiB2 NDogNDEgcGF0Y2hlcyAoIDMgTm92IDIwMTUpDQogICAgPiA+DQogICAgPiA+IHY1OiAzMyBwYXRj aGVzICgyNyBOb3YgMjAxNSkNCiAgICA+ID4NCiAgICA+ID4NCiAgICA+ID4NCiAgICA+ID4gKFRo ZSBzaWduaWZpY2FudCBkcm9wIGluIHRoZSBwYXRjaCBjb3VudCB3YXMgZHVlIHRvIE1pa2UgS2lu bmV5IG9wZW4NCiAgICA+ID4gc291cmNpbmcgYW5kIHVwc3RyZWFtaW5nIHRoZSAqcmVhbCogUGlT bW1DcHVEeGVTbW0gZHJpdmVyICh3aGljaCB3YXMNCiAgICA+ID4gaHVnZSB3b3JrIGluIGl0cyBv d24gcmlnaHQpLCBhbGxvd2luZyBtZSB0byBkcm9wIHRoZSBRdWFyay1vcmlnaW5hdGVkDQogICAg PiA+IDMyLWJpdC1vbmx5IFBpU21tQ3B1RHhlU21tIHZhcmlhbnQsIGZyb20gbXkgc2VyaWVzLikN CiAgICA+ID4NCiAgICA+ID4NCiAgICA+ID4NCiAgICA+ID4gVGhlIGNvbnRyaWJ1dGlvbiBwcm9j ZXNzIHNob3VsZCBtYWtlIGRpZmZpY3VsdCB0aGluZ3MgcG9zc2libGUsIGV2ZW4gaWYgdGhhdA0K ICAgID4gY29tcGxpY2F0ZXMgc2ltcGxlIHRoaW5ncyBzb21ld2hhdC4gQSBwcm9jZXNzIHRoYXQg bWFrZXMgc2ltcGxlIHRoaW5ncw0KICAgID4gc2ltcGxlIGFuZCBkaWZmaWN1bHQgdGhpbmdzIGlt cG9zc2libGUgaXMgdXNlbGVzcy4gVGhpcyBpcyB3aGF0IHRoZSBJbnN0YWdyYW0NCiAgICA+IGdl bmVyYXRpb24gc2VlbXMgdG8gYmUgbWlzc2luZy4NCiAgICA+ID4NCiAgICA+ID4NCiAgICA+ID4N CiAgICA+ID4NCiAgICA+ID4NCiAgICA+ID4gSSBkb24ndCBrbm93IHdoeSB0aGUgVmFyaWFibGVQ b2xpY3kgd29yayB0b29rIG1vbnRocy4gSSBjYW4gc2VlIHRoZQ0KICAgID4gZm9sbG93aW5nIHRo cmVhZHMgb24gdGhlIGxpc3Q6DQogICAgPiA+DQogICAgPiA+DQogICAgPiA+DQogICAgPiA+ICog W2VkazItZGV2ZWxdIFtQQVRDSCB2MSAwLzldIEFkZCB0aGUgVmFyaWFibGVQb2xpY3kgZmVhdHVy ZQ0KICAgID4gPg0KICAgID4gPiAgICBGcmksIDEwIEFwciAyMDIwIDExOjM2OjAxIC0wNzAwDQog ICAgPiA+DQogICAgPiA+DQogICAgPiA+DQogICAgPiA+ICogW2VkazItZGV2ZWxdIFtQQVRDSCB2 MiAwMC8xMl0gQWRkIHRoZSBWYXJpYWJsZVBvbGljeSBmZWF0dXJlDQogICAgPiA+DQogICAgPiA+ ICAgIE1vbiwgMTEgTWF5IDIwMjAgMjM6NDY6MjMgLTA3MDANCiAgICA+ID4NCiAgICA+ID4NCiAg ICA+ID4NCiAgICA+ID4gSSBoYXZlIHR3byBzZXRzIG9mIGNvbW1lbnRzOg0KICAgID4gPg0KICAg ID4gPg0KICAgID4gPg0KICAgID4gPiAoMSkgSXQncyBkaWZmaWN1bHQgdG8gdGVsbCBpbiByZXRy b3NwZWN0IChiZWNhdXNlIHRoZSBzZXJpZXMgc2VlbSB0byBoYXZlIGJlZW4NCiAgICA+IHBvc3Rl ZCB3aXRoIHNvbWV3aGF0IHByb2JsZW1hdGljIHRocmVhZGluZyksIGJ1dCB0aGUgZGVsYXkgYXBw YXJlbnRseQ0KICAgID4gY2FtZSBmcm9tIG11bHRpcGxlIHNvdXJjZXMuDQogICAgPiA+DQogICAg PiA+DQogICAgPiA+DQogICAgPiA+ICgxYSkgUmV2aWV3IHdhcyBzbG93IGFuZCBzcG90dHkuDQog ICAgPiA+DQogICAgPiA+DQogICAgPiA+DQogICAgPiA+IFRoZSB2MSBibHVyYiByZWNlaXZlZCBz b21lIGNvbW1lbnRzIGluIHRoZSBmaXJzdCB3ZWVrIGFmdGVyIGl0IHdhcyBwb3N0ZWQuDQogICAg PiBCdXQgdGhlIHJlc3Qgb2YgdGhlIHYxIHNlcmllcyAodGhlIGFjdHVhbCBwYXRjaGVzKSByZWNl aXZlZCBmZWVkYmFjayBsaWtlIHRoaXM6DQogICAgPiA+DQogICAgPiA+DQogICAgPiA+DQogICAg PiA+IC0gdjEgMS85OiBubyBmZWVkYmFjaw0KICAgID4gPg0KICAgID4gPiAtIHYxIDIvOTogMTIg ZGF5cyBhZnRlciBwb3N0aW5nDQogICAgPiA+DQogICAgPiA+IC0gdjEgMy85OiAxNiBkYXlzIGFm dGVyIHBvc3RpbmcNCiAgICA+ID4NCiAgICA+ID4gLSB2MSA0Lzk6IG5vIGZlZWRiYWNrDQogICAg PiA+DQogICAgPiA+IC0gdjEgNS85OiBubyBmZWVkYmFjaw0KICAgID4gPg0KICAgID4gPiAtIHYx IDYvOTogbm8gZmVlZGJhY2sNCiAgICA+ID4NCiAgICA+ID4gLSB2MSA3Lzk6IG5vIGZlZWRiYWNr DQogICAgPiA+DQogICAgPiA+IC0gdjEgOC85OiBubyBmZWVkYmFjaw0KICAgID4gPg0KICAgID4g PiAtIHYxIDkvOTogbm8gZmVlZGJhY2sNCiAgICA+ID4NCiAgICA+ID4NCiAgICA+ID4NCiAgICA+ ID4gKDFiKSBUaGVyZSB3YXMgYWxzbyBxdWl0ZSBzb21lIHRpbWUgYmV0d2VlbiB0aGUgbGFzdCBy ZXNwb25zZSBpbiB0aGUgdjENCiAgICA+IHRocmVhZCAoQXByIDI2dGgsIGFzIGZhciBhcyBJIGNh biBzZWUpLCBhbmQgdGhlIHBvc3Rpbmcgb2YgdGhlIHYyIHNlcmllcyAoTWF5DQogICAgPiAxMXRo KS4NCiAgICA+ID4NCiAgICA+ID4NCiAgICA+ID4NCiAgICA+ID4gKDFjKSBUaGUgdjIgYmx1cmIg Z290IGFsbW9zdCBpbW1lZGlhdGUsIGFuZCBudW1lcm91cyBmZWVkYmFjayAob24gdGhlDQogICAg PiBkYXkgb2YgcG9zdGluZywgYW5kIHRoZSBkYXkgYWZ0ZXIpLiBSZWdhcmRpbmcgdGhlIGluZGl2 aWR1YWwgcGF0Y2hlcywgdGhleQ0KICAgID4gZGlkbid0IGZhcmUgdG9vIHdlbGw6DQogICAgPiA+ DQogICAgPiA+DQogICAgPiA+DQogICAgPiA+IC0gdjIgMDEvMTI6IHN1cGVyZmljaWFsIGNvbW1l bnQgb24gdGhlIGRheSBvZiBwb3N0aW5nIGZyb20gbWUgKG5vdCBhDQogICAgPiA+DQogICAgPiA+ ICAgICAgICAgICAgICBkZXNpZ25hdGVkIE1kZU1vZHVsZVBrZyByZXZpZXcpLCBvbiB0aGUgZGF5 IG9mIHBvc3Rpbmc7DQogICAgPiA+IG5vDQogICAgPiA+DQogICAgPiA+ICAgICAgICAgICAgICBv dGhlciBmZWVkYmFjayB0aHVzIGZhcg0KICAgID4gPg0KICAgID4gPiAtIHYyIDAyLzEyOiBkaXR0 bw0KICAgID4gPg0KICAgID4gPiAtIHYyIDAzLzEyOiBubyBmZWVkYmFjaw0KICAgID4gPg0KICAg ID4gPiAtIHYyIDA0LzEyOiBzdXBlcmZpY2lhbCAoY29kaW5nIHN0eWxlKSBjb21tZW50cyBvbiB0 aGUgZGF5IG9mIHBvc3RpbmcNCiAgICA+ID4NCiAgICA+ID4gLSB2MiAwNS8xMjogbm8gZmVlZGJh Y2sNCiAgICA+ID4NCiAgICA+ID4gLSB2MiAwNi8xMjogbm8gZmVlZGJhY2sNCiAgICA+ID4NCiAg ICA+ID4gLSB2MiAwNy8xMjogbm8gZmVlZGJhY2sNCiAgICA+ID4NCiAgICA+ID4gLSB2MiAwOC8x Mjogbm8gZmVlZGJhY2sNCiAgICA+ID4NCiAgICA+ID4gLSB2MiAwOS8xMjogbm8gZmVlZGJhY2sN CiAgICA+ID4NCiAgICA+ID4gLSB2MiAxMC8xMjogbm8gZmVlZGJhY2sNCiAgICA+ID4NCiAgICA+ ID4gLSB2MiAxMS8xMjogcmVhc29uYWJseSBpbi1kZXB0aCByZXZpZXcgZnJvbSByZXNwb25zaWJs ZSBjby1tYWludGFpbmVyDQogICAgPiA+DQogICAgPiA+ICAgICAgICAgICAgICAoeW91cnMgdHJ1 bHkpLCBvbiB0aGUgZGF5IG9mIHBvc3RpbmcNCiAgICA+ID4NCiAgICA+ID4gLSB2MiAxMi8xMjog bm8gZmVlZGJhY2sNCiAgICA+ID4NCiAgICA+ID4NCiAgICA+ID4NCiAgICA+ID4gSW4gdG90YWws IEkgZG9uJ3QgdGhpbmsgdGhlIGN1cnJlbnQgcHJvY2VzcyB0YWtlcyB0aGUgYmxhbWUgZm9yIHRo ZSBkZWxheS4gSWYNCiAgICA+IHJldmlld2VycyBkb24ndCBjYXJlIChvciBoYXZlIG5vIHRpbWUp IG5vdywgdGhhdCBwcm9ibGVtIHdpbGwgbm90IGNoYW5nZQ0KICAgID4gd2l0aCB0aGUgdHJhbnNp dGlvbiB0byBnaXRodWIuY29tLg0KICAgID4gPg0KICAgID4gPg0KICAgID4gPg0KICAgID4gPg0K ICAgID4gPg0KICAgID4gPiAoMikgVGhlIFZhcmlhYmxlUG9saWN5IHNlcmllcyBpcyBhY3R1YWxs eSBhIGdvb2QgZXhhbXBsZSB0aGF0IHBhdGNoIHNlcmllcw0KICAgID4gcmVzdHJ1Y3R1cmluZyBp cyBpbXBvcnRhbnQuDQogICAgPiA+DQogICAgPiA+DQogICAgPiA+DQogICAgPiA+ICgyYSkgVGhl IHBhdGNoIGNvdW50IHdlbnQgZnJvbSA5IChpbiB2MSkgdG8gMTIgKGluIHYyKS4NCiAgICA+ID4N CiAgICA+ID4NCiAgICA+ID4NCiAgICA+ID4gKDJiKSBBbmQgdW5kZXIgdjIsIExpbWluZyBzdGls bCBwb2ludGVkIG91dDogIlRvIGtlZXAgZWFjaCBjb21taXQgYnVpbGQNCiAgICA+IHBhc3MsIHRo ZSBwYXRjaCBzZXQgc2hvdWxkIGZpcnN0IGFkZCBuZXcgbGlicmFyeSBpbnN0YW5jZSwgdGhlbiBh ZGQgdGhlIGxpYnJhcnkNCiAgICA+IGluc3RhbmNlIGludG8gZWFjaCBwbGF0Zm9ybSBEU0MsIGxh c3QgdXBkYXRlIFZhcmlhYmxlIGRyaXZlciB0byBjb25zdW1lIG5ldw0KICAgID4gbGlicmFyeSBp bnN0YW5jZS4iDQogICAgPiA+DQogICAgPiA+DQogICAgPiA+DQogICAgPiA+IEZ1cnRoZXJtb3Jl LCBJIHJlcXVlc3RlZCBlbmFibGluZyB0aGUgZmVhdHVyZSBpbiBBcm1WaXJ0UGtnIHRvbywgYW5k DQogICAgPiBtYXliZSAoYmFzZWQgb24gb3duZXIgZmVlZGJhY2spIFVlZmlQYXlsb2FkUGtnLg0K ICAgID4gPg0KICAgID4gPg0KICAgID4gPg0KICAgID4gPiBUaHVzLCB0aGUgdjItPnYzIHVwZGF0 ZSB3aWxsIG1vc3QgbGlrZWx5IGJyaW5nIGFib3V0IGJvdGggcGF0Y2ggb3JkZXINCiAgICA+IGNo YW5nZXMsIGFuZCBhbiBpbmNyZWFzZWQgcGF0Y2ggY291bnQuDQogICAgPiA+DQogICAgPiA+DQog ICAgPiA+DQogICAgPiA+IFRoYW5rcw0KICAgID4gPg0KICAgID4gPiBMYXN6bG8NCiAgICA+ID4N CiAgICA+ID4NCiAgICA+ID4NCiAgICA+ID4NCiAgICA+ID4NCiAgICA+ID4NCiAgICA+ID4NCiAg ICA+ID4NCiAgICA+ID4NCiAgICA+ID4NCiAgICA+ID4NCiAgICA+DQogICAgPg0KDQoNCg0KDQoN Cg0KICAgIA0KDQoNCg==