From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mx.groups.io with SMTP id smtpd.web11.56587.1598890056692730015 for ; Mon, 31 Aug 2020 09:07:36 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=mV4lVwNw; spf=pass (domain: intel.com, ip: 192.55.52.115, mailfrom: jiewen.yao@intel.com) IronPort-SDR: otjNkbWPGAJrIqdaC7gFCYlFB5nIqbLTx8vJ1bquLj+fShCTJb/TRBkeGpGe72Qbr+UO9NpxEa DdjZJEM2bpMQ== X-IronPort-AV: E=McAfee;i="6000,8403,9730"; a="156268830" X-IronPort-AV: E=Sophos;i="5.76,376,1592895600"; d="scan'208";a="156268830" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Aug 2020 09:07:34 -0700 IronPort-SDR: GwdM6qYpsq2WCQuVWlCo7xMmGRJHMq+96oKRk201Ox0GBEI7Lp3L6oEEXIF3jDg8I0w5c0Ce7f 0tY16E4sBkOQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,376,1592895600"; d="scan'208";a="301092074" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga006.jf.intel.com with ESMTP; 31 Aug 2020 09:07:34 -0700 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 31 Aug 2020 09:06:58 -0700 Received: from orsmsx103.amr.corp.intel.com (10.22.225.130) by orsmsx603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Mon, 31 Aug 2020 09:06:58 -0700 Received: from ORSEDG001.ED.cps.intel.com (10.7.248.4) by ORSMSX103.amr.corp.intel.com (10.22.225.130) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 31 Aug 2020 09:06:58 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.171) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 31 Aug 2020 09:06:58 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RU0gZTIiQZrXZl5xl2nE3t/7UKkILpECTd4xm4IBFoQTRC9Zh3iA3s/ONFrpHLAT80Io3auIM8oUfBhyreaWR2ksIMUTaSZbMck6NrkdECdF+tn6BvPb/C/JJY1KDOJ4V8+m6MnPr9XMusfsPyThOWo/8EMg7sJFi4UIycHGuzp9tpF7JZG/DT2oQ4etG98Ar1F85+mj9XKJYyrzw9oKHkayMlwGrjNSxcUYR4MH/yuVwC4isXYBIuJdwS3Bld64jgHUv/Hng0Anf6XSQ1CEVjZZxvYq+zqZLwpvos0U49n1dYYoUW5snB1/um9orz9V8zSJRoHgdzc2/xnfG797EQ== 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=Hy3DkdApOaQET3HGj3mQ5Hl/NnkiPFEzVC2MJ7T2dHA=; b=FQyfqrpn3bp7pak9c/GmAc4caMZh0otKRirhpr4mU3A863BS230t16pEk1xpOV0q/kTvnHilfM4AglQCASEjiHlnL/7kMQKrMIPHax+Z1Vwa7XKhANvPgISB8Q/stZuv/wXSFF01v0n63zuTKTS2sG2grPFTiK8Z5/BtmPHoLV35k8JtrhoUGTv2fMyb2u+/pRKGFxyfpk2niy5A6JYWPalCTmOMUkm6f7wB6hxmNhTKCQO/bO2QCYuf+esFDbUgvngMFNi3bky0KpFEksoTqvpT4qsrVfCbedzAbxwNGkDMf99KpgxOe4aF9rycVKtm2z8G2aT310jgFWyTPTw3bg== 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=Hy3DkdApOaQET3HGj3mQ5Hl/NnkiPFEzVC2MJ7T2dHA=; b=mV4lVwNwOUQHmtDKUrqJtA0F4tLFD1q5Pvm/TuhUcYOZKEtrzGzPDebWg48HwkX9pYmp7sxbQRzI5Dx3U1IzPonDuISv6IIlv1nZXhfaqpn8CbP8YDW9egxSPFPvuEu2oGd0fHm7eJ3ruUWVCdJ9XOwJwtusFXsSRgywippa6m0= Received: from CY4PR11MB1288.namprd11.prod.outlook.com (2603:10b6:903:23::8) by CY4PR1101MB2325.namprd11.prod.outlook.com (2603:10b6:903:bf::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3326.24; Mon, 31 Aug 2020 16:06:52 +0000 Received: from CY4PR11MB1288.namprd11.prod.outlook.com ([fe80::163:9209:a92d:812]) by CY4PR11MB1288.namprd11.prod.outlook.com ([fe80::163:9209:a92d:812%6]) with mapi id 15.20.3326.025; Mon, 31 Aug 2020 16:06:52 +0000 From: "Yao, Jiewen" To: "devel@edk2.groups.io" , "xiewenyi2@huawei.com" , Laszlo Ersek , "Wang, Jian J" CC: "songdongkuang@huawei.com" , "Mathews, John" Subject: Re: [edk2-devel] [PATCH EDK2 v2 1/1] SecurityPkg/DxeImageVerificationLib:Enhanced verification of Offset Thread-Topic: [edk2-devel] [PATCH EDK2 v2 1/1] SecurityPkg/DxeImageVerificationLib:Enhanced verification of Offset Thread-Index: AQHWcWlFNRwdlg90V0KlansqAmSeZak2Ym0AgADa0ICAABAfoIAFPYAAgACbyYCAAHIVAIAAah4AgAEv8ACADb39gIAABTRQgAAtMgCAAAU+wIAFBy0AgABOj9A= Date: Mon, 31 Aug 2020 16:06:52 +0000 Message-ID: References: <1597319741-59646-1-git-send-email-xiewenyi2@huawei.com> <1597319741-59646-2-git-send-email-xiewenyi2@huawei.com> <024b1279-609d-fefa-8535-5af072815bf8@huawei.com> <250fc485-8705-88b7-21c9-ecd28132934d@redhat.com> <196d1d81-3253-6c64-6632-a37da6f2771e@redhat.com> <3384c396-b397-928b-e09e-11979c90420e@huawei.com> In-Reply-To: <3384c396-b397-928b-e09e-11979c90420e@huawei.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action 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: [192.198.147.210] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 357d0af2-b321-449e-9d35-08d84dc7dfe8 x-ms-traffictypediagnostic: CY4PR1101MB2325: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: lhr6EuVszgKtj3nkiRCVrYOh6vxLX5u/0apHRYymNpOETqnVtefxydfKyGb8FrlSQH7xE9ikSgLUOdwQnH3v9XGyN1TWtmbGi3nnKUs4axawDxSGYpBrF6ljN8Rc2Du+uMYlXxB/2IhWRtCLyXwHsA6E4VFTGj+Pt1BuVjqZ1BOLFLk9eTgLKbzl3GprSXJ9EOii5WXFoJ1w2zqGaePX/RseEJtHBmGrIzgPWnawO5MkJUkT2CwW9TiHEBDqkbozuHmU2kQtXHWgpfDYc9H1JLX/l+sx1ZMbq0HRrgvfLWsUtKSLZMm+7gsqCsYD6rb3K5j2r0bMadoho/DEfeygsh92MTiHDaIA+6ltIMmTLM4XMf01EvSd2qQOVIEADBGPr64siFtwg7umyu+ZvCtN2Q== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY4PR11MB1288.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(376002)(346002)(366004)(39860400002)(396003)(136003)(66946007)(186003)(316002)(30864003)(966005)(54906003)(110136005)(52536014)(83380400001)(76116006)(66556008)(66446008)(66476007)(64756008)(5660300002)(6636002)(478600001)(26005)(2906002)(15650500001)(55016002)(33656002)(19627235002)(9686003)(107886003)(71200400001)(53546011)(8676002)(4326008)(8936002)(86362001)(6506007)(7696005)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: Mki4xN++16T/h0ijYLqEhJo217YrRO4dn6BowYaLwxWzWAFHa2h7WecYjyX/twUtz4YOX/PZ55ru6VP9TYCnq6So4pqft8Vob08mSbJ5fIjz+yCZVWYAIKCu8m+AQkg4BKYt4f8D5viGaOfz8JKXRujrNVdHyRSgXi0TvfA5CiJ0UrI6+ifD1tILMYDQ5HZLNgZpQzB6nQzABB3Ev6VIbV/r2DBZ1tMuDK2QvVi3EhgYWbHIKOUhNJ0g9fQN8toho5tKxFADPVgYbNttirqDZmMm9Lp2sLIti8JlAI8y0VB5wW77FI3P0X5srqyFL6f9+T4xIlRPeM/+XSktdLvWUSEvBvHJtd/fA2bjDb37W0a1CYN7+U+uV2+NcTA2rZpAsTpBArQiN8l9zmtL5mbeGsm8BxHlkxLS8koRcO5oANy12efUXu/IkePgenK+B4ZJSbafYz5/RlizMPs+q68EZQFm8MsDycAmlFtWk06xa50q4tdkfMO6glXO0nudOBc3rcS0fxTsr241t0xLjz2rvgooWdm3I6Vp31NiF24YkxkwROgIpEmRZO3hTL4n9Ok80m89uyWG1m4AWzEUs6/s7hN6s8ovVDPbdgXb8gUA+H1sF30r+Q3jYzE+BkkNkIxy65F8TJ3XpoPjt8f9xmqiXw== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY4PR11MB1288.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 357d0af2-b321-449e-9d35-08d84dc7dfe8 X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Aug 2020 16:06:52.2280 (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: LB1c1lkeTnck2CwXkaKzJ5IwkJm2ti4otnqJu9Z7a2tJWtWA0Z8caK8a9RfDmGqK8gfCI65vVYnAd13Pzb2k5A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1101MB2325 Return-Path: jiewen.yao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 U291bmRzIGdyZWF0LiBBcHByZWNpYXRlIHlvdXIgaGFyZCB3b3JrIG9uIHRoYXQuDQoNCldpbGwg eW91IHBvc3QgYSBwYXRjaCB0byBmaXggdGhlIGlzc3VlIGFnYWluPw0KDQpUaGFuayB5b3UNCllh byBKaWV3ZW4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXZlbEBl ZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiB3ZW55aSx4 aWUNCj4gdmlhIGdyb3Vwcy5pbw0KPiBTZW50OiBNb25kYXksIEF1Z3VzdCAzMSwgMjAyMCA3OjI0 IFBNDQo+IFRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBkZXZlbEBlZGsy Lmdyb3Vwcy5pbzsgTGFzemxvIEVyc2VrDQo+IDxsZXJzZWtAcmVkaGF0LmNvbT47IFdhbmcsIEpp YW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiBDYzogc29uZ2RvbmdrdWFuZ0BodWF3ZWku Y29tOyBNYXRoZXdzLCBKb2huIDxqb2huLm1hdGhld3NAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBS ZTogW2VkazItZGV2ZWxdIFtQQVRDSCBFREsyIHYyIDEvMV0NCj4gU2VjdXJpdHlQa2cvRHhlSW1h Z2VWZXJpZmljYXRpb25MaWI6RW5oYW5jZWQgdmVyaWZpY2F0aW9uIG9mIE9mZnNldA0KPiANCj4g SGnvvIxKaWV3ZW7vvIwNCj4gDQo+IEkgbW9kaWZ5IHRoZSBQRSBmaWxlIGFnYWluLCB0aGlzIHRp bWUgaXQgY2FuIHBhc3MgdGhlIGNoZWNrIGluIFBlQ29mZkxpYiBhbmQgY2F1c2UNCj4gb2Zmc2V0 IG92ZXJmbG93Lg0KPiANCj4gRmlyc3QsIGNyZWF0ZSBhIFBFIGZpbGUgYW5kIHNpZ24gaXQob25s eSBvbmUgc2lnbmF0dXJlKSwgdGhlbiB1c2luZyBiaW5hcnkgZWRpdCB0b29sDQo+IHRvIG1vZGlm eSBjb250ZW50IG9mIFBFIGZpbGUgbGlrZSBiZWxvdywNCj4gIDEuY2hlY2sgdGhlIHZhbHVlIG9m IFNlY0RhdGFEaXItPlZpcnR1YWxBZGRyZXNzLCBpbiBteSBQRSBmaWxlLCBpdCdzIDB4RTAwMA0K PiAgMi5jaGFuZ2luZyBTZWNEYXRhRGlyLT5TaXplIGZyb20gMHg1RjggdG8gMHhGRkZGMUZGQw0K PiAgMy5jaGFuZ2luZyBXaW5DZXJ0aWZpY2F0ZS0+ZHdMZW5ndGggZnJvbSAweDVGMSB0byAweEZG RkYxRkZCDQo+ICA0LnBhZGRpbmcgUEUgZmlsZSB3aXRoIDAgdW50aWwgdGhlIHNpemUgb2YgdGhl IGZpbGUgaXMgMHhGRkZGRkZGQyhpdCB3aWxsIG1ha2UgdGhlIFBFDQo+IGZpbGUgc28gbGFyZ2Up DQo+IE9mZlNldCArIFdpbkNlcnRpZmljYXRlLT5kd0xlbmd0aCArIEFMSUdOX1NJWkUgKFdpbkNl cnRpZmljYXRlLT5kd0xlbmd0aCkgaXMNCj4gMHhFMDAwICsgMHhGRkZGMUZGQiArIDB4NSA9IDB4 MTAwMDAwMDAwDQo+IA0KPiBCZWxvdyBpcyB0aGUgREVCVUcgY29kZSBhbmQgbG9nLCBpbiBzZWNv bmQgbG9vcCB0aGUgb2Zmc2V0IG92ZXJmbG93IGFuZA0KPiBiZWNvbWUgMA0KPiANCj4gZm9yIChP ZmZTZXQgPSBTZWNEYXRhRGlyLT5WaXJ0dWFsQWRkcmVzczsNCj4gICAgICBPZmZTZXQgPCAoU2Vj RGF0YURpci0+VmlydHVhbEFkZHJlc3MgKyBTZWNEYXRhRGlyLT5TaXplKTsNCj4gICAgICBPZmZT ZXQgKz0gKFdpbkNlcnRpZmljYXRlLT5kd0xlbmd0aCArIEFMSUdOX1NJWkUgKFdpbkNlcnRpZmlj YXRlLQ0KPiA+ZHdMZW5ndGgpKSkgew0KPiAgIFdpbkNlcnRpZmljYXRlID0gKFdJTl9DRVJUSUZJ Q0FURSAqKSAobUltYWdlQmFzZSArIE9mZlNldCk7DQo+ICAgREVCVUcoKERFQlVHX0lORk8sICJP ZmZTZXQ9MHgleC5cbiIsIE9mZlNldCkpOw0KPiAgIGlmICgoU2VjRGF0YURpci0+VmlydHVhbEFk ZHJlc3MgKyBTZWNEYXRhRGlyLT5TaXplIC0gT2ZmU2V0KSA8PSBzaXplb2YNCj4gKFdJTl9DRVJU SUZJQ0FURSkgfHwNCj4gICAgICAgKFNlY0RhdGFEaXItPlZpcnR1YWxBZGRyZXNzICsgU2VjRGF0 YURpci0+U2l6ZSAtIE9mZlNldCkgPCBXaW5DZXJ0aWZpY2F0ZS0NCj4gPmR3TGVuZ3RoKSB7DQo+ ICAgICBicmVhazsNCj4gICB9DQo+ICAgREVCVUcoKERFQlVHX0lORk8sICJXaW5DZXJ0aWZpY2F0 ZS0+ZHdMZW5ndGg9MHgleCwgQUxJR05fU0laRQ0KPiAoV2luQ2VydGlmaWNhdGUtPmR3TGVuZ3Ro KT0weCV4LlxuIiwgV2luQ2VydGlmaWNhdGUtPmR3TGVuZ3RoLA0KPiBBTElHTl9TSVpFKFdpbkNl cnRpZmljYXRlLT5kd0xlbmd0aCkpKTsNCj4gDQo+IA0KPiBTZWNEYXRhRGlyLT5WaXJ0dWFsQWRk cmVzcz0weEUwMDAsIFNlY0RhdGFEaXItPlNpemU9MHhGRkZGMUZGQy4NCj4gT2ZmU2V0PTB4RTAw MC4NCj4gV2luQ2VydGlmaWNhdGUtPmR3TGVuZ3RoPTB4RkZGRjFGRkIsIEFMSUdOX1NJWkUgKFdp bkNlcnRpZmljYXRlLQ0KPiA+ZHdMZW5ndGgpPTB4NS4NCj4gRHhlSW1hZ2VWZXJpZmljYXRpb25M aWI6IEltYWdlIGlzIHNpZ25lZCBidXQgc2lnbmF0dXJlIGlzIG5vdCBhbGxvd2VkIGJ5IERCIGFu ZA0KPiBTSEEyNTYgaGFzaCBvZiBpbWFnZSBpcyBub3RPZmZTZXQ9MHgwLg0KPiBXaW5DZXJ0aWZp Y2F0ZS0+ZHdMZW5ndGg9MHg1QTRELCBBTElHTl9TSVpFIChXaW5DZXJ0aWZpY2F0ZS0NCj4gPmR3 TGVuZ3RoKT0weDMuDQo+IE9mZlNldD0weDVBNTAuDQo+IFdpbkNlcnRpZmljYXRlLT5kd0xlbmd0 aD0weDkwMjQsIEFMSUdOX1NJWkUgKFdpbkNlcnRpZmljYXRlLQ0KPiA+ZHdMZW5ndGgpPTB4NC4N Cj4gT2ZmU2V0PTB4RUE3OC4NCj4gV2luQ2VydGlmaWNhdGUtPmR3TGVuZ3RoPTB4MCwgQUxJR05f U0laRSAoV2luQ2VydGlmaWNhdGUtPmR3TGVuZ3RoKT0weDAuDQo+IFRoZSBpbWFnZSBkb2Vzbid0 IHBhc3MgdmVyaWZpY2F0aW9uOiBWZW5Idyg1Q0YzMkUwQi04RURGLTJFNDQtOUNEQS0NCj4gOTMy MDVFOTlFQzFDLDAwMDAwMDAwKS9WZW5Idyg5NjRFNUIyMi02NDU5LTExRDItOEUzOS0NCj4gMDBB MEM5Njk3MjNCLDAwMDAwMDAwKS9cc2lnbmVkXzEyMzRfNEcuZWZpDQo+IA0KPiANCj4gUmVnYXJk cw0KPiBXZW55aQ0KPiANCj4gDQo+IE9uIDIwMjAvOC8yOCAxNDo0MywgWWFvLCBKaWV3ZW4gd3Jv dGU6DQo+ID4gQXBvbG9neSB0aGF0IEkgZGlkIG5vdCBzYXkgY2xlYXJseS4NCj4gPiBJIG1lYW4g eW91IHNob3VsZCBub3QgbW9kaWZ5IGFueSBjb2RlIHRvIHBlcmZvcm0gYW4gYXR0YWNrLg0KPiA+ DQo+ID4gSSBhbSBub3QgYXNraW5nIHlvdSB0byBleHBsb2l0IHRoZSBzeXN0ZW0uIEF0dGFjayBo ZXJlIGp1c3QgbWVhbnM6IHRvIGNhdXNlDQo+IHN5c3RlbSBoYW5nIG9yIGJ1ZmZlciBvdmVyZmxv dy4gVGhhdCBpcyBlbm91Z2guDQo+ID4gQnV0IHlvdSBjYW5ub3QgbW9kaWZ5IGNvZGUgdG8gcmVt b3ZlIGFueSBleGlzdGluZyBjaGVja2VyLg0KPiA+DQo+ID4gVGhhbmsgeW91DQo+ID4gWWFvIEpp ZXdlbg0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IGRl dmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mDQo+ IHdlbnlpLHhpZQ0KPiA+PiB2aWEgZ3JvdXBzLmlvDQo+ID4+IFNlbnQ6IEZyaWRheSwgQXVndXN0 IDI4LCAyMDIwIDI6MTggUE0NCj4gPj4gVG86IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVs LmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBMYXN6bG8NCj4gRXJzZWsNCj4gPj4gPGxlcnNl a0ByZWRoYXQuY29tPjsgV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+ID4+ IENjOiBzb25nZG9uZ2t1YW5nQGh1YXdlaS5jb207IE1hdGhld3MsIEpvaG4NCj4gPGpvaG4ubWF0 aGV3c0BpbnRlbC5jb20+DQo+ID4+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIEVE SzIgdjIgMS8xXQ0KPiA+PiBTZWN1cml0eVBrZy9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYjpFbmhh bmNlZCB2ZXJpZmljYXRpb24gb2YgT2Zmc2V0DQo+ID4+DQo+ID4+IEhp77yMSmlld2Vu77yMDQo+ ID4+DQo+ID4+IEkgZG9uJ3QgcmVhbGx5IGdldCB0aGUgbWVhbmluZyAiY3JlYXRlIGEgY2FzZSB0 aGF0IGJ5cGFzcyBhbGwgY2hlY2tzIGluDQo+IFBlQ29mZkxpYiIsDQo+ID4+IGRvIHlvdSBtZWFu IEkgbmVlZCB0byBjcmVhdGUgYSBQRSBmaWxlIHRoYXQgY2FuIGJ5cGFzcyBhbGwgY2hlY2sgaW4g UGVDb2ZmTGliDQo+ID4+IHdpdGhvdXQgbW9kaWZ5IGFueQ0KPiA+PiBjb2RlIGFuZCB0aGVuIGNh dXNlIHRoZSBwcm9ibGVtIGluIER4ZUltYWdlVmVyaWZpY2F0aW9uTGliLCBvciBqdXN0IG1vZGlm eQ0KPiA+PiBzb21lIGNvZGUgaW4gUGVDb2ZmTGliIHRvIGJ5cGFzcyBjaGVjayBpbnN0ZWFkIG9m IHJlbW92aW5nIHRoZSBjYWxsaW5nIG9mDQo+ID4+IFBlQ29mZkxvYWRlckdldEltYWdlSW5mby4g V291bGQNCj4gPj4geW91IG1pbmQgZXhwbGFpbmluZyBhIGxpdHRsZSBtb3JlIHNwZWNpZmljYWxs eT8gQXMgZmFyIGFzIEkgdHJpZWQsIGl0J3MgcmVhbGx5IGhhcmQNCj4gdG8NCj4gPj4gcmVwcm9k dWNlIHRoZSBpc3N1ZSB3aXRob3V0IHRvdWNoaW5nIGFueSBjb2RlLg0KPiA+Pg0KPiA+PiBUaGFu a3MNCj4gPj4gV2VueWkNCj4gPj4NCj4gPj4gT24gMjAyMC84LzI4IDExOjUwLCBZYW8sIEppZXdl biB3cm90ZToNCj4gPj4+IEhJIFdlbnlpDQo+ID4+PiBUaGFuayB5b3UgdmVyeSBtdWNoIHRvIHRh a2UgdGltZSB0byByZXByb2R1Y2UuDQo+ID4+Pg0KPiA+Pj4gSSBhbSBwYXJ0aWN1bGFyIGludGVy ZXN0ZWQgaW4gYmVsb3c6DQo+ID4+PiAJIkFzIFBFIGZpbGUgaXMgbW9kaWZpZWQsIGZ1bmN0aW9u IFBlQ29mZkxvYWRlckdldEltYWdlSW5mbyB3aWxsIHJldHVybg0KPiA+PiBlcnJvciwgc28gSSBo YXZlIHRvIHJlbW92ZSBpdCBzbyB0aGF0IGZvciBsb29wIGNhbiBiZSB0ZXN0ZWQgaW4NCj4gPj4g RHhlSW1hZ2VWZXJpZmljYXRpb25IYW5kbGVyLiINCj4gPj4+DQo+ID4+PiBCeSBkZXNpZ24sIHRo ZSBQZUNvZmZMaWIgc2hvdWxkIGNhdGNoIGlsbGVnYWwgUEUvQ09GRiBpbWFnZSBhbmQgcmV0dXJu IGVycm9yLg0KPiA+PiAoZXZlbiBpdCBjYW5ub3QgY2F0Y2ggYWxsLCBpdCBzaG91bGQgY2F0Y2gg bW9zdCBvbmVzKS4NCj4gPj4+IE90aGVyIFBFL0NPRkYgcGFyc2VyIG1heSByZWx5IG9uIHRoZSBj aGVja2VyIGluIFBlQ29mZkxpYiBhbmQgKm5vIG5lZWQqDQo+IHRvDQo+ID4+IGR1cGxpY2F0ZSBh bGwgY2hlY2tlcnMuDQo+ID4+PiBBcyBzdWNoLCBEeGVJbWFnZVZlcmlmaWNhdGlvbkxpYiAoYW5k IG90aGVyIFBlQ29mZiBjb25zdW1lcikganVzdCBuZWVkDQo+ID4+IGNoZWNrcyB3aGF0IGhhcyBw YXNzZWQgdGhlIGNoZWNrIGluIFBlQ29mZkxpYi4NCj4gPj4+DQo+ID4+PiBJIGRvbuKAmXQgdGhp bmsgeW91IHNob3VsZCByZW1vdmUgdGhlIGNoZWNrZXIuIElmIHBlb3BsZSBjYW4gcmVtb3ZlIHRo ZQ0KPiBjaGVja2VyLA0KPiA+PiBJIGFtIHN1cmUgdGhlIHJlc3QgY29kZSB3aWxsIGJlIHZ1bG5l cmFibGUsIGFjY29yZGluZyB0byB0aGUgY3VycmVudCBkZXNpZ24uDQo+ID4+PiBDb3VsZCB5b3Ug cGxlYXNlIHRvIGNyZWF0ZSBhIGNhc2UgdGhhdCBieXBhc3MgYWxsIGNoZWNrcyBpbiBQZUNvZmZM aWIsIHRoZW4NCj4gcnVuDQo+ID4+IGludG8gRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIgYW5kIGNh dXNlIHRoZSBwcm9ibGVtPyBUaGF0IHdvdWxkIGJlIG1vcmUNCj4gPj4gdmFsdWFibGUgZm9yIHVz Lg0KPiA+Pj4NCj4gPj4+IFRoYW5rIHlvdQ0KPiA+Pj4gWWFvIEppZXdlbg0KPiA+Pj4NCj4gPj4+ PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+IEZyb206IGRldmVsQGVkazIuZ3Jv dXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mDQo+ID4+IHdlbnlpLHhp ZQ0KPiA+Pj4+IHZpYSBncm91cHMuaW8NCj4gPj4+PiBTZW50OiBGcmlkYXksIEF1Z3VzdCAyOCwg MjAyMCAxMToxOCBBTQ0KPiA+Pj4+IFRvOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29t PjsgV2FuZywgSmlhbiBKDQo+ID4+IDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+Ow0KPiA+Pj4+IGRl dmVsQGVkazIuZ3JvdXBzLmlvOyBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ ID4+Pj4gQ2M6IHNvbmdkb25na3VhbmdAaHVhd2VpLmNvbTsgTWF0aGV3cywgSm9obg0KPiA+PiA8 am9obi5tYXRoZXdzQGludGVsLmNvbT4NCj4gPj4+PiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxd IFtQQVRDSCBFREsyIHYyIDEvMV0NCj4gPj4+PiBTZWN1cml0eVBrZy9EeGVJbWFnZVZlcmlmaWNh dGlvbkxpYjpFbmhhbmNlZCB2ZXJpZmljYXRpb24gb2YgT2Zmc2V0DQo+ID4+Pj4NCj4gPj4+PiBI ae+8jExhc3psbyBhbmQgZXZlcnlvbmXvvIwNCj4gPj4+Pg0KPiA+Pj4+IFRoZXNlIGRheXMgSSB0 cmllZCB0byByZXByb2R1Y2UgdGhlIGlzc3Vl77yMYW5kIG1hZGUgc29tZSBwcm9ncmVzcy4gSQ0K PiB0aGluaw0KPiA+Pj4+IHRoZXJlIGFyZSB0d28gd2F5IHRvIGNhdXNlIG92ZXJmbG93IGZyb20g YSBtYXRoZW1hdGljYWwgcG9pbnQgb2YgdmlldywNCj4gPj4+PiAxLkFzIExhc3psbyBhbmFseXNl ZCBiZWZvcmUsIGlmIFdpbkNlcnRpZmljYXRlLT5kd0xlbmd0aCBpcyBsYXJnZSBlbm91Z2gsDQo+ ID4+IGNsb3NlDQo+ID4+Pj4gdG8gTUFYX1VJTlQzMiwgdGhlbiAoV2luQ2VydGlmaWNhdGUtPmR3 TGVuZ3RoICsgQUxJR05fU0laRQ0KPiA+PiAoV2luQ2VydGlmaWNhdGUtDQo+ID4+Pj4+IGR3TGVu Z3RoKSkgd2lsbCBjYXVzZSBvdmVyZmxvdy4NCj4gPj4+PiAyLihXaW5DZXJ0aWZpY2F0ZS0+ZHdM ZW5ndGggKyBBTElHTl9TSVpFIChXaW5DZXJ0aWZpY2F0ZS0+ZHdMZW5ndGgpKSBpcw0KPiA+PiBn b29kLA0KPiA+Pj4+IE9mZlNldCBpcyBnb29kLCBidXQgT2ZmU2V0ICs9IChXaW5DZXJ0aWZpY2F0 ZS0+ZHdMZW5ndGggKyBBTElHTl9TSVpFDQo+ID4+Pj4gKFdpbkNlcnRpZmljYXRlLT5kd0xlbmd0 aCkpIGNhdXNlIG92ZXJmbG93Lg0KPiA+Pj4+DQo+ID4+Pj4gSGVyZSBJIGNob29zZSB0aGUgc2Vj b25kIHdheSB0byByZXByb2R1Y2UgdGhlIGlzc3VlLCBJIGNob29zZSBhIFBFIGZpbGUNCj4gYW5k DQo+ID4+IHNpZ24NCj4gPj4+PiBpdCB3aXRoIG15IG93biBkYiBjZXJ0aWZpY2F0ZS4gVGhlbiBJ IHVzZSBiaW5hcnkgZWRpdCB0b29sIHRvIG1vZGlmeSB0aGUgUEUNCj4gZmlsZQ0KPiA+PiBsaWtl DQo+ID4+Pj4gYmVsb3csDQo+ID4+Pj4NCj4gPj4+PiAxLmNoYW5nZSBTZWNEYXRhRGlyLT5TaXpl IGZyb20gMHg1RjggdG8gMHhGRkZGMUZGRg0KPiA+Pj4+IDIuY2hhbmdlIFdpbkNlcnRpZmljYXRl LT5kd0xlbmd0aCBmcm9tIDB4NUYxIHRvIDB4RkZGRjFGRkUNCj4gPj4+PiBTZWNEYXRhRGlyLT5W aXJ0dWFsQWRkcmVzcyBpbiBteSBQRSBpcyAweGUwMDAgYW5kIG5vIG5lZWQgdG8gY2hhbmdlLg0K PiA+Pj4+DQo+ID4+Pj4gQXMgUEUgZmlsZSBpcyBtb2RpZmllZCwgZnVuY3Rpb24gUGVDb2ZmTG9h ZGVyR2V0SW1hZ2VJbmZvIHdpbGwgcmV0dXJuIGVycm9yLA0KPiA+PiBzbyBJDQo+ID4+Pj4gaGF2 ZSB0byByZW1vdmUgaXQgc28gdGhhdCBmb3IgbG9vcCBjYW4gYmUgdGVzdGVkIGluDQo+ID4+IER4 ZUltYWdlVmVyaWZpY2F0aW9uSGFuZGxlci4NCj4gPj4+PiBUaGUgbG9nIGlzIGFzIGJlbG93LA0K PiA+Pj4+DQo+ID4+Pj4gU2VjRGF0YURpci0+VmlydHVhbEFkZHJlc3M9MHhFMDAwLCBTZWNEYXRh RGlyLT5TaXplPTB4RkZGRjFGRkYuDQo+ID4+Pj4gKEZpcnN0IExvb3ApDQo+ID4+Pj4gT2ZmU2V0 PTB4RTAwMC4NCj4gPj4+PiBXaW5DZXJ0aWZpY2F0ZS0+ZHdMZW5ndGg9MHhGRkZGMUZGRSwgQUxJ R05fU0laRSAoV2luQ2VydGlmaWNhdGUtDQo+ID4+Pj4+IGR3TGVuZ3RoKT0weDIuDQo+ID4+Pj4g KFNlY29uZCBMb29wKQ0KPiA+Pj4+IE9mZlNldD0weDAuDQo+ID4+Pj4gV2luQ2VydGlmaWNhdGUt PmR3TGVuZ3RoPTB4NUE0RCwgQUxJR05fU0laRSAoV2luQ2VydGlmaWNhdGUtDQo+ID4+Pj4+IGR3 TGVuZ3RoKT0weDMuDQo+ID4+Pj4gKFRoaXJkIExvb3ApDQo+ID4+Pj4gT2ZmU2V0PTB4NUE1MC4N Cj4gPj4+PiBXaW5DZXJ0aWZpY2F0ZS0+ZHdMZW5ndGg9MHg5MDI0LCBBTElHTl9TSVpFIChXaW5D ZXJ0aWZpY2F0ZS0NCj4gPj4+Pj4gZHdMZW5ndGgpPTB4NC4NCj4gPj4+PiAoRm9ydGggTG9vcCkN Cj4gPj4+PiBPZmZTZXQ9MHhFQTc4Lg0KPiA+Pj4+IFdpbkNlcnRpZmljYXRlLT5kd0xlbmd0aD0w eEFGQUZBRkFGLCBBTElHTl9TSVpFIChXaW5DZXJ0aWZpY2F0ZS0NCj4gPj4+Pj4gZHdMZW5ndGgp PTB4MS4NCj4gPj4+PiAoRmlmdGggTG9vcCkNCj4gPj4+PiBPZmZTZXQ9MHhBRkIwOUEyOC4NCj4g Pj4+Pg0KPiA+Pj4+IEFzIEkgbW9kaWZ5IFNlY0RhdGFEaXItPlNpemUgYW5kIFdpbkNlcnRpZmlj YXRlLT5kd0xlbmd0aCwgc28gaW4gZmlyc3QNCj4gbG9vcA0KPiA+PiB0aGUNCj4gPj4+PiBjb25k aXRpb24gY2hlY2sgd2hldGhlciB0aGUgU2VjdXJpdHkgRGF0YSBEaXJlY3RvcnkgaGFzIGVub3Vn aCByb29tIGxlZnQNCj4gPj4gZm9yDQo+ID4+Pj4gIldpbkNlcnRpZmljYXRlLT5kd0xlbmd0aCIg aXMgb2suDQo+ID4+Pj4NCj4gPj4+PiBpZiAoKFNlY0RhdGFEaXItPlZpcnR1YWxBZGRyZXNzICsg U2VjRGF0YURpci0+U2l6ZSAtIE9mZlNldCkgPD0gc2l6ZW9mDQo+ID4+Pj4gKFdJTl9DRVJUSUZJ Q0FURSkgfHwNCj4gPj4+PiAgICAgKFNlY0RhdGFEaXItPlZpcnR1YWxBZGRyZXNzICsgU2VjRGF0 YURpci0+U2l6ZSAtIE9mZlNldCkgPA0KPiBXaW5DZXJ0aWZpY2F0ZS0NCj4gPj4+Pj4gZHdMZW5n dGgpIHsNCj4gPj4+PiAgIGJyZWFrOw0KPiA+Pj4+IH0NCj4gPj4+Pg0KPiA+Pj4+IEluIHRoZSBi ZWdpbm5pbmcgb2Ygc2Vjb25kIGxvb3AsIFdpbkNlcnRpZmljYXRlLT5kd0xlbmd0aCArIEFMSUdO X1NJWkUNCj4gPj4+PiAoV2luQ2VydGlmaWNhdGUtPmR3TGVuZ3RoKSBpcyAweEZGRkYyMDAwLCBv ZmZzZXQgaXMgMHhFMDAwDQo+ID4+Pj4NCj4gPj4+PiBPZmZTZXQgKz0gKFdpbkNlcnRpZmljYXRl LT5kd0xlbmd0aCArIEFMSUdOX1NJWkUgKFdpbkNlcnRpZmljYXRlLQ0KPiA+Pj4gZHdMZW5ndGgp KQ0KPiA+Pj4+DQo+ID4+Pj4gT2Zmc2V0IG5vdyBpcyAwIGFuZCBvdmVyZmxvdyBoYXBwZW5zLiBT byBldmVuIGlmIG15IFBFIG9ubHkgaGF2ZSBvbmUNCj4gPj4gc2lnbmF0dXJlLA0KPiA+Pj4+IHRo ZSBmb3IgbG9vcCBpcyBzdGlsbCBnb2luZyB1bnRpbGwgZXhjZXB0aW9uIGhhcHBlbnMuDQo+ID4+ Pj4NCj4gPj4+Pg0KPiA+Pj4+IEkgY2FuJ3QgcmVwcm9kdWNlIHRoZSBpc3N1ZSB1c2luZyB0aGUg Zmlyc3Qgd2F5LCBiZWNhdXNlIGlmIFdpbkNlcnRpZmljYXRlLQ0KPiA+Pj4+PiBkd0xlbmd0aCBp cyBjbG9zZSB0byBNQVhfVUlOVDMyLCBpdCBtZWFucyBTZWNEYXRhRGlyLT5TaXplIHNob3VsZCBh bHNvDQo+ID4+IGNsb3NlDQo+ID4+Pj4gdG8gTUFYX1VJTlQzMiwgb3IgdGhlIGNvbmRpdGlvbiBj aGVjaw0KPiA+Pj4+ICIoU2VjRGF0YURpci0+VmlydHVhbEFkZHJlc3MgKyBTZWNEYXRhRGlyLT5T aXplIC0gT2ZmU2V0KSA8DQo+IFdpbkNlcnRpZmljYXRlLQ0KPiA+Pj4+PiBkd0xlbmd0aCIgd2ls bCBicmVhay4gQnV0IGlmIFNlY0RhdGFEaXItPlNpemUgaXMgdmVyeSBsYXJnZSwgU2VjRGF0YURp ci0NCj4gPj4+Pj4gVmlydHVhbEFkZHJlc3MgaGF2ZSB0byBiZSBzbWFsbGVyIHRoYW4gOCBieXRl cywNCj4gPj4+PiBiZWNhdXNlIFNlY0RhdGFEaXItPlZpcnR1YWxBZGRyZXNzICsgU2VjRGF0YURp ci0+U2l6ZSA8IE1BWF9VSU5UMzIuDQo+ID4+Pj4gU2VjRGF0YURpci0+VmlydHVhbEFkZHJlc3Mg aXMgdGhlIGJlZ2lubmluZyBhZGRyZXNzIG9mIHRoZSBzaWduYXR1cmUsIGFuZA0KPiA+PiBiZWZv cmUNCj4gPj4+PiBTZWNEYXRhRGlyLT5WaXJ0dWFsQWRkcmVzcyBpcyB0aGUgY29udGVudCBvZiBv cmlnaW4gUEUgZmlsZSwgSSB0aGluayBpdCdzDQo+ID4+IGltcG9zc2libGUNCj4gPj4+PiB0aGF0 IHRoZSBzaXplIG9mIFBFIGZpbGUgaXMgb25seSA4IGJ5dGVzLg0KPiA+Pj4+DQo+ID4+Pj4gQXMg SSBjaGFuZ2VkIHRoZSBvbmUgbGluZSBjb2RlIGluIER4ZUltYWdlVmVyaWZpY2F0aW9uSGFuZGxl ciB0bw0KPiByZXByb2R1Y2UNCj4gPj4gdGhlDQo+ID4+Pj4gaXNzdWUsIEknbSBub3Qgc3VyZSB3 aGV0aGVyIGl0J3Mgb2suDQo+ID4+Pj4NCj4gPj4+PiBUaGFua3MNCj4gPj4+PiBXZW55aQ0KPiA+ Pj4+DQo+ID4+Pj4gT24gMjAyMC84LzE5IDE3OjI2LCBMYXN6bG8gRXJzZWsgd3JvdGU6DQo+ID4+ Pj4+IE9uIDA4LzE4LzIwIDE3OjE4LCBNYXRoZXdzLCBKb2huIHdyb3RlOg0KPiA+Pj4+Pj4gSSBk dWcgdXAgdGhlIG9yaWdpbmFsIHJlcG9ydCBkZXRhaWxzLiAgVGhpcyB3YXMgbm90ZWQgYXMgYSBj b25jZXJuIGR1cmluZyBhDQo+ID4+Pj4gc291cmNlIGNvZGUgaW5zcGVjdGlvbi4gIFRoZXJlIHdh cyBubyBkZW1vbnN0cmF0aW9uIG9mIGhvdyBpdCBtaWdodCBiZQ0KPiA+Pj4+IHRyaWdnZXJlZC4N Cj4gPj4+Pj4+DQo+ID4+Pj4+PiAiIFRoZXJlIGlzIGFuIGludGVnZXIgb3ZlcmZsb3cgdnVsbmVy YWJpbGl0eSBpbiB0aGUNCj4gPj4+PiBEeGVJbWFnZVZlcmlmaWNhdGlvbkhhbmRsZXIgZnVuY3Rp b24gd2hlbg0KPiA+Pj4+Pj4gcGFyc2luZyB0aGUgUEUgZmlsZXMgYXR0cmlidXRlIGNlcnRpZmlj YXRlIHRhYmxlLiBJbiBjYXNlcyB3aGVyZQ0KPiA+PiBXaW5DZXJ0aWZpY2F0ZS0NCj4gPj4+Pj4g ZHdMZW5ndGggaXMNCj4gPj4+Pj4+IHN1ZmZpY2llbnRseSBsYXJnZSwgaXQncyBwb3NzaWJsZSB0 byBvdmVyZmxvdyBPZmZzZXQgYmFjayB0byAwIGNhdXNpbmcgYW4NCj4gPj4gZW5kbGVzcw0KPiA+ Pj4+IGxvb3AuIg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFRoZSByZWNvbW1lbmRhdGlvbiB3YXMgdG8g YWRkIHN0cmljdGVyIGNoZWNraW5nIG9mICJPZmZzZXQiIGFuZCB0aGUNCj4gPj4+PiBlbWJlZGRl ZCBsZW5ndGggZmllbGRzIG9mIGNlcnRpZmljYXRlIGRhdGENCj4gPj4+Pj4+IGJlZm9yZSB1c2lu ZyB0aGVtLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUaGFua3MgZm9yIGNoZWNraW5nIQ0KPiA+Pj4+Pg0K PiA+Pj4+PiBMYXN6bG8NCj4gPj4+Pj4NCj4gPj4+Pj4+DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4NCj4g Pj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4+PiBGcm9tOiBMYXN6bG8g RXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPg0KPiA+Pj4+Pj4gU2VudDogVHVlc2RheSwgQXVndXN0 IDE4LCAyMDIwIDE6NTkgQU0NCj4gPj4+Pj4+IFRvOiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5n QGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBZYW8sDQo+ID4+Pj4gSmlld2VuIDxq aWV3ZW4ueWFvQGludGVsLmNvbT47IHhpZXdlbnlpMkBodWF3ZWkuY29tDQo+ID4+Pj4+PiBDYzog aHVhbmdtaW5nMjNAaHVhd2VpLmNvbTsgc29uZ2RvbmdrdWFuZ0BodWF3ZWkuY29tOw0KPiBNYXRo ZXdzLA0KPiA+Pj4+IEpvaG4gPGpvaG4ubWF0aGV3c0BpbnRlbC5jb20+DQo+ID4+Pj4+PiBTdWJq ZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCBFREsyIHYyIDEvMV0NCj4gPj4+PiBTZWN1cml0 eVBrZy9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYjpFbmhhbmNlZCB2ZXJpZmljYXRpb24gb2YgT2Zm c2V0DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gT24gMDgvMTgvMjAgMDQ6MTAsIFdhbmcsIEppYW4gSiB3 cm90ZToNCj4gPj4+Pj4+PiBMYXN6bG8sDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBNeSBhcG9sb2dp ZXMgZm9yIHRoZSBzbG93IHJlc3BvbnNlLiBJJ20gbm90IHRoZSBvcmlnaW5hbCByZXBvcnRlciBi dXQNCj4gPj4+Pj4+PiBqdXN0IHRoZSBCWiBzdWJtaXR0ZXIuIEFuZCBJIGRpZG4ndCBkbyBkZWVw IGFuYWx5c2lzIHRvIHRoaXMgaXNzdWUuDQo+ID4+Pj4+Pj4gVGhlIGlzc3VlcyB3YXMgcmVwb3J0 ZWQgZnJvbSBvbmUgaW50ZXJuYWwgdGVhbS4gQWRkIEpvaG4gaW4gbG9vcCB0bw0KPiBzZWUNCj4g Pj4gaWYNCj4gPj4+PiBoZSBrbm93cyBtb3JlIGFib3V0IGl0IG9yIG5vdC4NCj4gPj4+Pj4+Pg0K PiA+Pj4+Pj4+IE15IHN1cGVyZmljaWFsIHVuZGVyc3RhbmRpbmcgb24gc3VjaCBpc3N1ZSBpcyB0 aGF0LCBpZiB0aGVyZSdzDQo+ID4+Pj4+Pj4gInBvdGVudGlhbCIgaXNzdWUgaW4gdGhlb3J5IGFu ZCBoYXJkIHRvIHJlcHJvZHVjZSwgaXQncyBzdGlsbCB3b3J0aHkNCj4gPj4+Pj4+PiBvZiB1c2lu ZyBhbiBhbHRlcm5hdGl2ZSB3YXkgdG8gcmVwbGFjZSB0aGUgb3JpZ2luYWwgaW1wbGVtZW50YXRp b24NCj4gPj4+Pj4+PiB3aXRoIG5vICJwb3RlbnRpYWwiIGlzc3VlIGF0IGFsbC4gTWF5YmUgd2Ug ZG9uJ3QgaGF2ZSB0byBwcm92ZSBvbGQgd2F5DQo+IGlzDQo+ID4+Pj4gc29tZXRoaW5nIHdyb25n IGJ1dCBtdXN0IHByb3ZlIHRoYXQgdGhlIG5ldyB3YXkgaXMgcmVhbGx5IHNhZmUuDQo+ID4+Pj4+ Pg0KPiA+Pj4+Pj4gSSBhZ3JlZSwgdGhhbmtzLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEl0IHdvdWxk IGJlIG5pY2UgdG8gaGVhciBtb3JlIGZyb20gdGhlIGludGVybmFsIHRlYW0gYWJvdXQgdGhlDQo+ IG9yaWdpbmFsbHkNCj4gPj4+PiByZXBvcnRlZCAoZXZlbiBpZiBoYXJkLXRvLXRyaWdnZXIpIGlz c3VlLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFRoYW5rcyENCj4gPj4+Pj4+IExhc3psbw0KPiA+Pj4+ Pj4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IFJlZ2FyZHMsDQo+ID4+Pj4+Pj4gSmlhbg0KPiA+Pj4+ Pj4+DQo+ID4+Pj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4+Pj4+IEZy b206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxm IE9mDQo+ID4+IExhc3psbw0KPiA+Pj4+Pj4+PiBFcnNlaw0KPiA+Pj4+Pj4+PiBTZW50OiBUdWVz ZGF5LCBBdWd1c3QgMTgsIDIwMjAgMTI6NTMgQU0NCj4gPj4+Pj4+Pj4gVG86IFlhbywgSmlld2Vu IDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOw0KPiA+Pj4+Pj4+ PiB4aWV3ZW55aTJAaHVhd2VpLmNvbTsgV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5j b20+DQo+ID4+Pj4+Pj4+IENjOiBodWFuZ21pbmcyM0BodWF3ZWkuY29tOyBzb25nZG9uZ2t1YW5n QGh1YXdlaS5jb20NCj4gPj4+Pj4+Pj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0gg RURLMiB2MiAxLzFdDQo+ID4+Pj4+Pj4+IFNlY3VyaXR5UGtnL0R4ZUltYWdlVmVyaWZpY2F0aW9u TGliOkVuaGFuY2VkIHZlcmlmaWNhdGlvbiBvZiBPZmZzZXQNCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+ Pj4gSGkgSmlld2VuLA0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBPbiAwOC8xNC8yMCAxMDo1Mywg WWFvLCBKaWV3ZW4gd3JvdGU6DQo+ID4+Pj4+Pj4+Pj4gVG8gSmlld2VuLA0KPiA+Pj4+Pj4+Pj4+ IFNvcnJ5LCBJIGRvbid0IGhhdmUgZW52aXJvbm1lbnQgdG8gcmVwcm9kdWNlIHRoZSBpc3N1ZS4N Cj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+PiBQbGVhc2UgaGVscCBtZSB1bmRlcnN0YW5kLCBpZiB5 b3UgZG9u4oCZdCBoYXZlIGVudmlyb25tZW50IHRvDQo+ID4+Pj4+Pj4+PiByZXByb2R1Y2UgdGhl DQo+ID4+Pj4+Pj4+IGlzc3VlLCBob3cgZG8geW91IGd1YXJhbnRlZSB0aGF0IHlvdXIgcGF0Y2gg ZG9lcyBmaXggdGhlIHByb2JsZW0gYW5kDQo+ID4+Pj4+Pj4+IHdlIGRvbuKAmXQgaGF2ZSBhbnkg b3RoZXIgdnVsbmVyYWJpbGl0aWVzPw0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBUaGUgb3JpZ2lu YWwgYnVnIHJlcG9ydCBpbg0KPiA+Pj4+Pj4+PiA8aHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUu b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE1I2MwPiBpcw0KPiBzZXJpb3VzbHkNCj4gPj4+Pj4+Pj4g bGFja2luZy4gSXQgZG9lcyBub3QgZ28gaW50byBkZXRhaWwgYWJvdXQgdGhlIGFsbGVnZWQgaW50 ZWdlciBvdmVyZmxvdy4NCj4gPj4+Pj4+Pj4gSXQgZG9lcyBub3QgcXVvdGUgdGhlIGNvZGUsIGRv ZXMgbm90IGV4cGxhaW4gdGhlIGNvbnRyb2wgZmxvdywgZG9lcw0KPiA+Pj4+Pj4+PiBub3QgaWRl bnRpZnkgdGhlIGV4YWN0IGVkazIgY29tbWl0IGF0IHdoaWNoIHRoZSB2dWxuZXJhYmlsaXR5IGV4 aXN0cy4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gVGhlIGJ1ZyByZXBvcnQgYWxzbyBkb2VzIG5v dCBvZmZlciBhIHJlcHJvZHVjZXIuDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IEFkZGl0aW9uYWxs eSwgdGhlIGV4YWN0IHN0YXRlbWVudCB0aGF0IHRoZSBidWcgcmVwb3J0IGRvZXMgbWFrZSwNCj4g Pj4+Pj4+Pj4gbmFtZWx5DQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+ICAgaXQncyBwb3NzaWJsZSB0 byBvdmVyZmxvdyBPZmZzZXQgYmFjayB0byAwIGNhdXNpbmcgYW4gZW5kbGVzcyBsb29wDQo+ID4+ Pj4+Pj4+DQo+ID4+Pj4+Pj4+IGlzIHdyb25nIChhcyBmYXIgYXMgSSBjYW4gdGVsbCBhbnl3YXkp LiBJdCBpcyBub3QgIk9mZlNldCIgdGhhdCBjYW4NCj4gPj4+Pj4+Pj4gYmUgb3ZlcmZsb3dlZCB0 byB6ZXJvLCBidXQgdGhlICphZGRlbmQqIHRoYXQgaXMgYWRkZWQgdG8gT2ZmU2V0IGNhbg0KPiA+ Pj4+Pj4+PiBiZSBvdmVyZmxvd2VkIHRvIHplcm8uIFRoZXJlZm9yZSB0aGUgaW5maW5pdGUgbG9v cCB3aWxsIGFyaXNlIGJlY2F1c2UNCj4gPj4+Pj4+Pj4gT2ZmU2V0IHJlbWFpbnMgc3R1Y2sgYXQg aXRzIHByZXNlbnQgdmFsdWUsIGFuZCBub3QgYmVjYXVzZSBPZmZTZXQNCj4gPj4+Pj4+Pj4gd2ls bCBiZSByZS1zZXQgdG8gemVyby4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gRm9yIHRoZSByZWFz b25zLCB3ZSBjYW4gb25seSBzcGVjdWxhdGUgYXMgdG8gd2hhdCB0aGUgYWN0dWFsIHByb2JsZW0N Cj4gPj4+Pj4+Pj4gaXMsIHVubGVzcyBKaWFuIGRlY2lkZXMgdG8gam9pbiB0aGUgZGlzY3Vzc2lv biBhbmQgY2xhcmlmaWVzIHdoYXQgaGUNCj4gPj4+Pj4+Pj4gaGFkIGluIG1pbmQgb3JpZ2luYWxs eS4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gTXkgdW5kZXJzdGFuZGluZyAob3IgZXZlbiAicmVj b25zdHJ1Y3Rpb24iKSBvZiB0aGUgdnVsbmVyYWJpbGl0eSBpcw0KPiA+Pj4+Pj4+PiBkZXNjcmli ZWQgYWJvdmUsIGFuZCBpbiB0aGUgcGF0Y2hlcyB0aGF0IEkgcHJvcG9zZWQuDQo+ID4+Pj4+Pj4+ DQo+ID4+Pj4+Pj4+IFdlIGNhbiB3cml0ZSBhIHBhdGNoIGJhc2VkIG9uIGNvZGUgYW5hbHlzaXMu IEl0J3MgcG9zc2libGUgdG8NCj4gPj4+Pj4+Pj4gaWRlbnRpZnkgaW50ZWdlciBvdmVyZmxvd3Mg YmFzZWQgb24gY29kZSBhbmFseXNpcywgYW5kIGl0J3MgcG9zc2libGUNCj4gPj4+Pj4+Pj4gdG8g dmVyaWZ5IHRoZSBjb3JyZWN0bmVzcyBvZiBmaXhlcyBieSBjb2RlIHJldmlldy4gT2J2aW91c2x5 IHRlc3RpbmcNCj4gPj4+Pj4+Pj4gaXMgYWx3YXlzIGdvb2QsIGJ1dCBtYW55IHRpbWVzLCBjb25z dHJ1Y3RpbmcgcmVwcm9kdWNlcnMgZm9yIHN1Y2gNCj4gPj4+Pj4+Pj4gaXNzdWVzIHRoYXQgd2Vy ZSBmb3VuZCBieSBjb2RlIHJldmlldywgaXMgZGlmZmljdWx0IGFuZCB0aW1lDQo+ID4+Pj4+Pj4+ IGNvbnN1bWluZy4gV2UgY2FuIHNheSB0aGF0IHdlIGRvbid0IGZpeCB2dWxuZXJhYmlsaXRpZXMg d2l0aG91dA0KPiA+Pj4+Pj4+PiByZXByb2R1Y2Vycywgb3Igd2UgY2FuIHNheSB0aGF0IHdlIG1h a2UgYW4gZWZmb3J0IHRvIGZpeCB0aGVtIGV2ZW4gaWYNCj4gPj4+Pj4+Pj4gYWxsIHdlIGhhdmUg aXMgY29kZSBhbmFseXNpcyAoYW5kIG5vdCBhIHJlcHJvZHVjZXIpLg0KPiA+Pj4+Pj4+Pg0KPiA+ Pj4+Pj4+PiBTbyB0aGUgYWJvdmUgcGFyYWdyYXBoIGNvbmNlcm5zICJjb3JyZWN0bmVzcyIuIFJl Z2FyZGluZw0KPiA+Pj4+Pj4+PiAiY29tcGxldGVuZXNzIiwgSSBndWFyYW50ZWUgeW91IHRoYXQg dGhpcyBwYXRjaCBkb2VzIG5vdCBmaXggKmFsbCoNCj4gPj4+Pj4+Pj4gcHJvYmxlbXMgcmVsYXRl ZCB0byBQRSBwYXJzaW5nLiAoU2VlIHRoZSBvdGhlciBCWiB0aWNrZXRzLikgSXQgZG9lcw0KPiA+ Pj4+Pj4+PiBmaXggKm9uZSogaXNzdWUgd2l0aCBQRSBwYXJzaW5nLiBXZSBjYW4gc2F5IHRoYXQg d2UgdHJ5IHRvIGZpeCBzdWNoDQo+ID4+Pj4+Pj4+IGlzc3VlcyBncmFkdWFsbHkgKGdpdmUgZGlm ZmVyZW50IENWRSBudW1iZXJzIHRvIGRpZmZlcmVudCBpc3N1ZXMsIGFuZA0KPiA+Pj4+Pj4+PiBh ZGRyZXNzIHRoZW0gb25lIGF0IGEgdGltZSksIG9yIHdlIGNhbiBzYXkgdGhhdCB3ZSByZXdyaXRl IFBFIHBhcnNpbmcNCj4gPj4+PiBmcm9tIHRoZSBncm91bmQgdXAuDQo+ID4+Pj4+Pj4+IChCVFc6 IEkgaGF2ZSBzZXJpb3VzbHkgYXR0ZW1wdGVkIHRoYXQgaW4gdGhlIHBhc3QsIGFuZCBJIGdhdmUg dXAsDQo+ID4+Pj4+Pj4+IGJlY2F1c2UgdGhlIFBFIGZvcm1hdCBpcyBGVUJBUi4pDQo+ID4+Pj4+ Pj4+DQo+ID4+Pj4+Pj4+IEluIHN1bW1hcnk6DQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IC0gdGhl IHByb2JsZW0gc3RhdGVtZW50IGlzIHVuY2xlYXIsDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IC0g aXQgc2VlbXMgbGlrZSB0aGVyZSBpcyBpbmRlZWQgYW4gaW50ZWdlciBvdmVyZmxvdyBwcm9ibGVt IGluIHRoZQ0KPiA+Pj4+Pj4+PiBTZWNEYXRhRGlyIHBhcnNpbmcgbG9vcCwgYnV0IGl0J3MgdW5j ZXJ0YWluIHdoZXRoZXIgdGhlIGJ1ZyByZXBvcnRlcg0KPiA+Pj4+Pj4+PiBoYWQgZXhhY3RseSB0 aGF0IGluIG1pbmQNCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gLSBQRSBwYXJzaW5nIGlzIGd1YXJh bnRlZWQgdG8gaGF2ZSBvdGhlciB2dWxuZXJhYmlsaXRpZXMgZWxzZXdoZXJlIGluDQo+ID4+Pj4+ Pj4+IGVkazIsIGJ1dCBJJ20gY3VycmVudGx5IHVuYXdhcmUgb2Ygb3RoZXIgc3VjaCBpc3N1ZXMg aW4NCj4gPj4+Pj4+Pj4gRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIgc3BlY2lmaWNhbGx5DQo+ID4+ Pj4+Pj4+DQo+ID4+Pj4+Pj4+IC0gZXZlbiBpZiB0aGVyZSBhcmUgb3RoZXIgc3VjaCBwcm9ibGVt cyAoaW4gRHhlSW1hZ2VWZXJpZmljYXRpb25MaWINCj4gPj4+Pj4+Pj4gb3IgZWxzd2VoZXJlKSwg Zml4aW5nIHRoaXMgYnVnIHRoYXQgd2Uga25vdyBhYm91dCBpcyBsaWtlbHkNCj4gPj4+Pj4+Pj4g d29ydGh3aGlsZQ0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiAtIGZvciBtYW55IHN1Y2ggYnVncywg Y29uc3RydWN0aW5nIGEgcmVwcm9kdWNlciBpcyBkaWZmaWN1bHQgYW5kIHRpbWUNCj4gPj4+Pj4+ Pj4gY29uc3VtaW5nOyBjb2RlIGFuYWx5c2lzLCBhbmQgKnJlZ3Jlc3Npb24tdGVzdGluZyogYXJl IGZyZXF1ZW50bHkgdGhlDQo+ID4+Pj4+Pj4+IG9ubHkgdG9vbHMgd2UgaGF2ZS4gVGhhdCBkb2Vz bid0IG1lYW4gd2Ugc2hvdWxkIGlnbm9yZSB0aGlzIGNsYXNzIG9mDQo+ID4+IGJ1Z3MuDQo+ID4+ Pj4+Pj4+DQo+ID4+Pj4+Pj4+IChGaXhpbmcgaW50ZWdlciBvdmVyZmxvd3MgcmV0cm8tYWN0aXZl bHkgaXMgbW9yZSBkaWZmaWN1bHQgdGhhbg0KPiA+Pj4+Pj4+PiB3cml0aW5nIG92ZXJmbG93LWZy ZWUgY29kZSBpbiB0aGUgZmlyc3QgcGxhY2UsIGJ1dCB0aGF0IHNoaXAgaGFzDQo+ID4+Pj4+Pj4+ IHNhaWxlZDsgc28gd2UgY2FuIG9ubHkgZmlnaHQgdGhlc2UgYnVncyBpbmNyZW1lbnRhbGx5IG5v dywgdW5sZXNzIHdlDQo+ID4+Pj4+Pj4+IGNhbiByZXdyaXRlIFBFIHBhcnNpbmcgd2l0aCBhIG5l dyBkYXRhIHN0cnVjdHVyZSBmcm9tIHRoZSBncm91bmQgdXAuDQo+ID4+Pj4+Pj4+IEFnYWluIEkg dHJpZWQgdGhhdCBhbmQgZ2F2ZSB1cCwgYmVjYXVzZSB0aGUgc3BlYyBpcyBub3QgcHVibGljLCBh bmQNCj4gPj4+Pj4+Pj4gd2hhdCBJIGRpZCBtYW5hZ2UgdG8gbGVhcm4gYWJvdXQgUEUsIHNob3dl ZCB0aGF0IGl0IHdhcyBpbnNhbmVseQ0KPiA+Pj4+Pj4+PiBvdmVyLWVuZ2luZWVyZWQuIEknbSBu b3Qgc2F5aW5nIHRoYXQgb3RoZXIgYmluYXJ5IC8gZXhlY3V0YWJsZQ0KPiA+Pj4+Pj4+PiBmb3Jt YXRzIGFyZSBiZXR0ZXIsIG9mIGNvdXJzZS4pDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IFBsZWFz ZSBjaGVjayBvdXQgbXkgcGF0Y2hlcyAoaW5saW5lZCBlbHNld2hlcmUgaW4gdGhpcyB0aHJlYWQp LCBhbmQNCj4gPj4+Pj4+Pj4gY29tbWVudCB3aGV0aGVyIHlvdSdkIGxpa2UgbWUgdG8gcG9zdCB0 aGVtIHRvIHRoZSBsaXN0IGFzIGENCj4gPj4+Pj4+Pj4gc3RhbmRhbG9uZSBzZXJpZXMuDQo+ID4+ Pj4+Pj4+DQo+ID4+Pj4+Pj4+IEppYW46IGl0IHdvdWxkbid0IGh1cnQgaWYgeW91IGNvbW1lbnRl ZCBhcyB3ZWxsLg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBUaGFua3MNCj4gPj4+Pj4+Pj4gTGFz emxvDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gPj4+Pj4+Pj4+PiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91 cHMuaW8+IE9uIEJlaGFsZg0KPiBPZg0KPiA+Pj4+Pj4+PiB3ZW55aSx4aWUNCj4gPj4+Pj4+Pj4+ PiB2aWEgZ3JvdXBzLmlvDQo+ID4+Pj4+Pj4+Pj4gU2VudDogRnJpZGF5LCBBdWd1c3QgMTQsIDIw MjAgMzo1NCBQTQ0KPiA+Pj4+Pj4+Pj4+IFRvOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQu Y29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW87IFlhbywNCj4gPj4+Pj4+Pj4+PiBKaWV3ZW4gPGpp ZXdlbi55YW9AaW50ZWwuY29tPjsgV2FuZywgSmlhbiBKDQo+ID4+IDxqaWFuLmoud2FuZ0BpbnRl bC5jb20+DQo+ID4+Pj4+Pj4+Pj4gQ2M6IGh1YW5nbWluZzIzQGh1YXdlaS5jb207IHNvbmdkb25n a3VhbmdAaHVhd2VpLmNvbQ0KPiA+Pj4+Pj4+Pj4+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0g W1BBVENIIEVESzIgdjIgMS8xXQ0KPiA+Pj4+Pj4+Pj4+IFNlY3VyaXR5UGtnL0R4ZUltYWdlVmVy aWZpY2F0aW9uTGliOkVuaGFuY2VkIHZlcmlmaWNhdGlvbiBvZg0KPiBPZmZzZXQNCj4gPj4+Pj4+ Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IFRvIExhc3psbywNCj4gPj4+Pj4+Pj4+PiBUaGFuayB5b3UgZm9y IHlvdXIgZGV0YWlsZWQgZGVzY3JpcHRpb24sIEkgYWdyZWUgd2l0aCB3aGF0IHlvdQ0KPiA+Pj4+ Pj4+Pj4+IGFuYWx5emVkIGFuZA0KPiA+Pj4+Pj4+PiBJJ20NCj4gPj4+Pj4+Pj4+PiBPSyB3aXRo IHlvdXIgcGF0Y2hlcywgaXQncw0KPiA+Pj4+Pj4+Pj4+IGNvcnJlY3QgYW5kIG11Y2ggc2ltcGxl ci4NCj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IFRvIEppZXdlbiwNCj4gPj4+Pj4+Pj4+PiBT b3JyeSwgSSBkb24ndCBoYXZlIGVudmlyb25tZW50IHRvIHJlcHJvZHVjZSB0aGUgaXNzdWUuDQo+ ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiBUaGFua3MNCj4gPj4+Pj4+Pj4+PiBXZW55aQ0KPiA+ Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4gT24gMjAyMC84LzE0IDI6NTAsIExhc3psbyBFcnNlayB3 cm90ZToNCj4gPj4+Pj4+Pj4+Pj4gT24gMDgvMTMvMjAgMTM6NTUsIFdlbnlpIFhpZSB3cm90ZToN Cj4gPj4+Pj4+Pj4+Pj4+IFJFRjpodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19i dWcuY2dpP2lkPTIyMTUNCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+PiBUaGVyZSBpcyBh biBpbnRlZ2VyIG92ZXJmbG93IHZ1bG5lcmFiaWxpdHkgaW4NCj4gPj4+Pj4+Pj4+Pj4+IER4ZUlt YWdlVmVyaWZpY2F0aW9uSGFuZGxlciBmdW5jdGlvbiB3aGVuIHBhcnNpbmcgdGhlIFBFIGZpbGVz DQo+ID4+Pj4+Pj4+Pj4+PiBhdHRyaWJ1dGUgY2VydGlmaWNhdGUgdGFibGUuIEluIGNhc2VzIHdo ZXJlDQo+ID4+Pj4+Pj4+Pj4+PiBXaW5DZXJ0aWZpY2F0ZS0+ZHdMZW5ndGggaXMgc3VmZmljaWVu dGx5IGxhcmdlLCBpdCdzIHBvc3NpYmxlIHRvDQo+ID4+Pj4gb3ZlcmZsb3cgT2Zmc2V0IGJhY2sg dG8gMCBjYXVzaW5nIGFuIGVuZGxlc3MgbG9vcC4NCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+ Pj4+PiBDaGVjayBvZmZzZXQgaW5iZXR3ZWVuIFZpcnR1YWxBZGRyZXNzIGFuZCBWaXJ0dWFsQWRk cmVzcyArIFNpemUuDQo+ID4+Pj4+Pj4+Pj4+PiBVc2luZyBTYWZlaW50TGliIHRvIGRvIG9mZnNl dCBhZGRpdGlvbiB3aXRoIHJlc3VsdCBjaGVjay4NCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+ Pj4+PiBDYzogSmlld2VuIFlhbyA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ID4+Pj4+Pj4+Pj4+ PiBDYzogSmlhbiBKIFdhbmcgPGppYW4uai53YW5nQGludGVsLmNvbT4NCj4gPj4+Pj4+Pj4+Pj4+ IENjOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPg0KPiA+Pj4+Pj4+Pj4+Pj4gU2ln bmVkLW9mZi1ieTogV2VueWkgWGllIDx4aWV3ZW55aTJAaHVhd2VpLmNvbT4NCj4gPj4+Pj4+Pj4+ Pj4+IC0tLQ0KPiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+IFNlY3VyaXR5UGtn L0xpYnJhcnkvRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIvRHhlSW1hZ2VWZXJpZmljYXRpb25MDQo+ ID4+Pj4+Pj4+Pj4+PiBpYi5pbmYNCj4gPj4+Pj4+Pj4gfA0KPiA+Pj4+Pj4+Pj4+IDEgKw0KPiA+ Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+IFNlY3VyaXR5UGtnL0xpYnJhcnkvRHhl SW1hZ2VWZXJpZmljYXRpb25MaWIvRHhlSW1hZ2VWZXJpZmljYXRpb25MDQo+ID4+Pj4+Pj4+Pj4+ PiBpYi5oDQo+ID4+Pj4+Pj4+IHwNCj4gPj4+Pj4+Pj4+PiAxICsNCj4gPj4+Pj4+Pj4+Pj4+DQo+ ID4+Pj4+Pj4+Pj4+Pg0KPiA+PiBTZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZUltYWdlVmVyaWZpY2F0 aW9uTGliL0R4ZUltYWdlVmVyaWZpY2F0aW9uTA0KPiA+Pj4+Pj4+Pj4+Pj4gaWIuYw0KPiA+Pj4+ Pj4+PiB8DQo+ID4+Pj4+Pj4+Pj4gMTExICsrKysrKysrKysrLS0tLS0tLS0tDQo+ID4+Pj4+Pj4+ Pj4+PiAgMyBmaWxlcyBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCA1MCBkZWxldGlvbnMoLSkN Cj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+PiBkaWZmIC0tZ2l0DQo+ID4+Pj4+Pj4+Pj4N Cj4gPj4gYS9TZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliL0R4ZUlt YWdlVmVyaWZpY2F0aW9uTA0KPiA+Pj4+Pj4+Pj4+IGliLmluZg0KPiA+Pj4+Pj4+Pj4+DQo+ID4+ IGIvU2VjdXJpdHlQa2cvTGlicmFyeS9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYi9EeGVJbWFnZVZl cmlmaWNhdGlvbkwNCj4gPj4+Pj4+Pj4+PiBpYi5pbmYNCj4gPj4+Pj4+Pj4+Pj4+IGluZGV4IDFl MWE2Mzk4NTdlMC4uYTdhYzQ4MzBiM2Q0IDEwMDY0NA0KPiA+Pj4+Pj4+Pj4+Pj4gLS0tDQo+ID4+ Pj4+Pj4+Pj4NCj4gPj4gYS9TZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZUltYWdlVmVyaWZpY2F0aW9u TGliL0R4ZUltYWdlVmVyaWZpY2F0aW9uTA0KPiA+Pj4+Pj4+Pj4+IGliLmluZg0KPiA+Pj4+Pj4+ Pj4+Pj4gKysrDQo+ID4+Pj4+Pj4+Pj4NCj4gPj4gYi9TZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZUlt YWdlVmVyaWZpY2F0aW9uTGliL0R4ZUltYWdlVmVyaWZpY2F0aW9uTA0KPiA+Pj4+Pj4+Pj4+IGli LmluZg0KPiA+Pj4+Pj4+Pj4+Pj4gQEAgLTUzLDYgKzUzLDcgQEAgW0xpYnJhcnlDbGFzc2VzXQ0K PiA+Pj4+Pj4+Pj4+Pj4gICAgU2VjdXJpdHlNYW5hZ2VtZW50TGliDQo+ID4+Pj4+Pj4+Pj4+PiAg ICBQZUNvZmZMaWINCj4gPj4+Pj4+Pj4+Pj4+ICAgIFRwbU1lYXN1cmVtZW50TGliDQo+ID4+Pj4+ Pj4+Pj4+PiArICBTYWZlSW50TGliDQo+ID4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4gIFtQ cm90b2NvbHNdDQo+ID4+Pj4+Pj4+Pj4+PiAgICBnRWZpRmlybXdhcmVWb2x1bWUyUHJvdG9jb2xH dWlkICAgICAgICMjDQo+ID4+IFNPTUVUSU1FU19DT05TVU1FUw0KPiA+Pj4+Pj4+Pj4+Pj4gZGlm ZiAtLWdpdA0KPiA+Pj4+Pj4+Pj4+DQo+ID4+IGEvU2VjdXJpdHlQa2cvTGlicmFyeS9EeGVJbWFn ZVZlcmlmaWNhdGlvbkxpYi9EeGVJbWFnZVZlcmlmaWNhdGlvbkwNCj4gPj4+Pj4+Pj4+PiBpYi5o DQo+ID4+Pj4+Pj4+Pj4NCj4gPj4gYi9TZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZUltYWdlVmVyaWZp Y2F0aW9uTGliL0R4ZUltYWdlVmVyaWZpY2F0aW9uTA0KPiA+Pj4+Pj4+Pj4+IGliLmgNCj4gPj4+ Pj4+Pj4+Pj4+IGluZGV4IDE3OTU1ZmY5Nzc0Yy4uMDYwMjczOTE3ZDVkIDEwMDY0NA0KPiA+Pj4+ Pj4+Pj4+Pj4gLS0tDQo+ID4+Pj4+Pj4+Pj4NCj4gPj4gYS9TZWN1cml0eVBrZy9MaWJyYXJ5L0R4 ZUltYWdlVmVyaWZpY2F0aW9uTGliL0R4ZUltYWdlVmVyaWZpY2F0aW9uTA0KPiA+Pj4+Pj4+Pj4+ IGliLmgNCj4gPj4+Pj4+Pj4+Pj4+ICsrKw0KPiA+Pj4+Pj4+Pj4+DQo+ID4+IGIvU2VjdXJpdHlQ a2cvTGlicmFyeS9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYi9EeGVJbWFnZVZlcmlmaWNhdGlvbkwN Cj4gPj4+Pj4+Pj4+PiBpYi5oDQo+ID4+Pj4+Pj4+Pj4+PiBAQCAtMjMsNiArMjMsNyBAQCBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLQ0KPiBQYXRlbnQNCj4gPj4+Pj4+Pj4+ Pj4+ICNpbmNsdWRlIDxMaWJyYXJ5L0RldmljZVBhdGhMaWIuaD4gICNpbmNsdWRlDQo+ID4+Pj4+ Pj4+Pj4+PiA8TGlicmFyeS9TZWN1cml0eU1hbmFnZW1lbnRMaWIuaD4gICNpbmNsdWRlDQo+IDxM aWJyYXJ5L1BlQ29mZkxpYi5oPg0KPiA+Pj4+Pj4+Pj4+Pj4gKyNpbmNsdWRlIDxMaWJyYXJ5L1Nh ZmVJbnRMaWIuaD4NCj4gPj4+Pj4+Pj4+Pj4+ICAjaW5jbHVkZSA8UHJvdG9jb2wvRmlybXdhcmVW b2x1bWUyLmg+ICAjaW5jbHVkZQ0KPiA+Pj4+Pj4+Pj4+Pj4gPFByb3RvY29sL0RldmljZVBhdGgu aD4gICNpbmNsdWRlIDxQcm90b2NvbC9CbG9ja0lvLmg+IGRpZmYgLS0NCj4gZ2l0DQo+ID4+Pj4+ Pj4+Pj4NCj4gPj4gYS9TZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZUltYWdlVmVyaWZpY2F0aW9uTGli L0R4ZUltYWdlVmVyaWZpY2F0aW9uTA0KPiA+Pj4+Pj4+Pj4+IGliLmMNCj4gPj4+Pj4+Pj4+Pg0K PiA+PiBiL1NlY3VyaXR5UGtnL0xpYnJhcnkvRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIvRHhlSW1h Z2VWZXJpZmljYXRpb25MDQo+ID4+Pj4+Pj4+Pj4gaWIuYw0KPiA+Pj4+Pj4+Pj4+Pj4gaW5kZXgg MzZiODdlMTZkNTNkLi5kYmMwM2UyOGMwNWIgMTAwNjQ0DQo+ID4+Pj4+Pj4+Pj4+PiAtLS0NCj4g Pj4+Pj4+Pj4NCj4gPj4gYS9TZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZUltYWdlVmVyaWZpY2F0aW9u TGliL0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliDQo+ID4+Pj4+Pj4+IC5jDQo+ID4+Pj4+Pj4+Pj4+ PiArKysNCj4gPj4+Pj4+Pj4+Pg0KPiA+PiBiL1NlY3VyaXR5UGtnL0xpYnJhcnkvRHhlSW1hZ2VW ZXJpZmljYXRpb25MaWIvRHhlSW1hZ2VWZXJpZmljYXRpb25MDQo+ID4+Pj4+Pj4+Pj4gaWIuYw0K PiA+Pj4+Pj4+Pj4+Pj4gQEAgLTE2NTgsNiArMTY1OCwxMCBAQCBEeGVJbWFnZVZlcmlmaWNhdGlv bkhhbmRsZXIgKA0KPiA+Pj4+Pj4+Pj4+Pj4gICAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICAg ICAgICAgICAgIEhhc2hTdGF0dXM7DQo+ID4+Pj4+Pj4+Pj4+PiAgICBFRklfU1RBVFVTICAgICAg ICAgICAgICAgICAgICAgICAgICAgRGJTdGF0dXM7DQo+ID4+Pj4+Pj4+Pj4+PiAgICBCT09MRUFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSXNGb3VuZDsNCj4gPj4+Pj4+Pj4+Pj4+ICsg IFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGlnbmVkTGVuZ3RoOw0KPiA+ Pj4+Pj4+Pj4+Pj4gKyAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc3Vs dDsNCj4gPj4+Pj4+Pj4+Pj4+ICsgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAg ICBBZGRTdGF0dXM7DQo+ID4+Pj4+Pj4+Pj4+PiArICBCT09MRUFOICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSXNBdXRoRGF0YUFzc2lnbmVkOw0KPiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+ Pj4+Pj4+ICAgIFNpZ25hdHVyZUxpc3QgICAgID0gTlVMTDsNCj4gPj4+Pj4+Pj4+Pj4+ICAgIFNp Z25hdHVyZUxpc3RTaXplID0gMDsNCj4gPj4+Pj4+Pj4+Pj4+IEBAIC0xNjY3LDYgKzE2NzEsNyBA QCBEeGVJbWFnZVZlcmlmaWNhdGlvbkhhbmRsZXIgKA0KPiA+Pj4+Pj4+Pj4+Pj4gICAgQWN0aW9u ICAgICAgICAgICAgPSBFRklfSU1BR0VfRVhFQ1VUSU9OX0FVVEhfVU5URVNURUQ7DQo+ID4+Pj4+ Pj4+Pj4+PiAgICBJc1ZlcmlmaWVkICAgICAgICA9IEZBTFNFOw0KPiA+Pj4+Pj4+Pj4+Pj4gICAg SXNGb3VuZCAgICAgICAgICAgPSBGQUxTRTsNCj4gPj4+Pj4+Pj4+Pj4+ICsgIFJlc3VsdCAgICAg ICAgICAgID0gMDsNCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+PiAgICAvLw0KPiA+Pj4+ Pj4+Pj4+Pj4gICAgLy8gQ2hlY2sgdGhlIGltYWdlIHR5cGUgYW5kIGdldCBwb2xpY3kgc2V0dGlu Zy4NCj4gPj4+Pj4+Pj4+Pj4+IEBAIC0xODUwLDkgKzE4NTUsMTAgQEAgRHhlSW1hZ2VWZXJpZmlj YXRpb25IYW5kbGVyICgNCj4gPj4+Pj4+Pj4+Pj4+ICAgIC8vIFRoZSBmaXJzdCBjZXJ0aWZpY2F0 ZSBzdGFydHMgYXQgb2Zmc2V0DQo+ID4+Pj4+Pj4+Pj4+PiAoU2VjRGF0YURpci0+VmlydHVhbEFk ZHJlc3MpIGZyb20NCj4gPj4+Pj4+Pj4gdGhlDQo+ID4+Pj4+Pj4+Pj4gc3RhcnQgb2YgdGhlIGZp bGUuDQo+ID4+Pj4+Pj4+Pj4+PiAgICAvLw0KPiA+Pj4+Pj4+Pj4+Pj4gICAgZm9yIChPZmZTZXQg PSBTZWNEYXRhRGlyLT5WaXJ0dWFsQWRkcmVzczsNCj4gPj4+Pj4+Pj4+Pj4+IC0gICAgICAgT2Zm U2V0IDwgKFNlY0RhdGFEaXItPlZpcnR1YWxBZGRyZXNzICsgU2VjRGF0YURpci0+U2l6ZSk7DQo+ ID4+Pj4+Pj4+Pj4+PiAtICAgICAgIE9mZlNldCArPSAoV2luQ2VydGlmaWNhdGUtPmR3TGVuZ3Ro ICsgQUxJR05fU0laRQ0KPiA+Pj4+IChXaW5DZXJ0aWZpY2F0ZS0NCj4gPj4+Pj4+Pj4+Pj4gZHdM ZW5ndGgpKSkgew0KPiA+Pj4+Pj4+Pj4+Pj4gKyAgICAgICAoT2ZmU2V0ID49IFNlY0RhdGFEaXIt PlZpcnR1YWxBZGRyZXNzKSAmJiAoT2ZmU2V0IDwNCj4gPj4+Pj4+Pj4+Pj4+ICsgKFNlY0RhdGFE aXItDQo+ID4+Pj4+Pj4+Pj4+IFZpcnR1YWxBZGRyZXNzICsgU2VjRGF0YURpci0+U2l6ZSkpOykg ew0KPiA+Pj4+Pj4+Pj4+Pj4gKyAgICBJc0F1dGhEYXRhQXNzaWduZWQgPSBGQUxTRTsNCj4gPj4+ Pj4+Pj4+Pj4+ICAgICAgV2luQ2VydGlmaWNhdGUgPSAoV0lOX0NFUlRJRklDQVRFICopIChtSW1h Z2VCYXNlICsgT2ZmU2V0KTsNCj4gPj4+Pj4+Pj4+Pj4+ICsgICAgQWxpZ25lZExlbmd0aCA9IFdp bkNlcnRpZmljYXRlLT5kd0xlbmd0aCArIEFMSUdOX1NJWkUNCj4gPj4+Pj4+Pj4gKFdpbkNlcnRp ZmljYXRlLQ0KPiA+Pj4+Pj4+Pj4+PiBkd0xlbmd0aCk7DQo+ID4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+ Pj4+Pj4+IEkgZGlzYWdyZWUgd2l0aCB0aGlzIHBhdGNoLg0KPiA+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+ Pj4+Pj4+PiBUaGUgcHJpbWFyeSByZWFzb24gZm9yIG15IGRpc2FncmVlbWVudCBpcyB0aGF0IHRo ZSBidWcgcmVwb3J0DQo+ID4+Pj4+Pj4+Pj4+IDxodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5v cmcvc2hvd19idWcuY2dpP2lkPTIyMTUjYzA+IGlzDQo+ID4+Pj4+Pj4+Pj4+IGluZXhhY3QsIGFu ZCBzbyB0aGlzIHBhdGNoIHRyaWVzIHRvIGZpeCB0aGUgd3JvbmcgdGhpbmcuDQo+ID4+Pj4+Pj4+ Pj4+DQo+ID4+Pj4+Pj4+Pj4+IFdpdGggZWRrMiBtYXN0ZXIgYXQgY29tbWl0IDY1OTA0Y2RiYjMz YywgaXQgaXMgKm5vdCogcG9zc2libGUgdG8NCj4gPj4+Pj4+Pj4+Pj4gb3ZlcmZsb3cgdGhlIE9m ZlNldCB2YXJpYWJsZSB0byB6ZXJvIHdpdGggIldpbkNlcnRpZmljYXRlLQ0KPiA+Pj4gZHdMZW5n dGgiDQo+ID4+Pj4+Pj4+Pj4+ICpwdXJlbHkqLCBhbmQgY2F1c2UgYW4gZW5kbGVzcyBsb29wLiBO b3RlIHRoYXQgd2UgaGF2ZSAoYXQNCj4gY29tbWl0DQo+ID4+Pj4+Pj4+Pj4+IDY1OTA0Y2RiYjMz Yyk6DQo+ID4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+ICAgZm9yIChPZmZTZXQgPSBTZWNEYXRh RGlyLT5WaXJ0dWFsQWRkcmVzczsNCj4gPj4+Pj4+Pj4+Pj4gICAgICAgIE9mZlNldCA8IChTZWNE YXRhRGlyLT5WaXJ0dWFsQWRkcmVzcyArIFNlY0RhdGFEaXItPlNpemUpOw0KPiA+Pj4+Pj4+Pj4+ PiAgICAgICAgT2ZmU2V0ICs9IChXaW5DZXJ0aWZpY2F0ZS0+ZHdMZW5ndGggKyBBTElHTl9TSVpF DQo+ID4+Pj4+Pj4+Pj4+IChXaW5DZXJ0aWZpY2F0ZS0NCj4gPj4+Pj4+Pj4+Pj4gZHdMZW5ndGgp KSkgew0KPiA+Pj4+Pj4+Pj4+PiAgICAgV2luQ2VydGlmaWNhdGUgPSAoV0lOX0NFUlRJRklDQVRF ICopIChtSW1hZ2VCYXNlICsgT2ZmU2V0KTsNCj4gPj4+Pj4+Pj4+Pj4gICAgIGlmICgoU2VjRGF0 YURpci0+VmlydHVhbEFkZHJlc3MgKyBTZWNEYXRhRGlyLT5TaXplIC0gT2ZmU2V0KQ0KPiA+Pj4+ Pj4+Pj4+PiA8PSBzaXplb2YNCj4gPj4+Pj4+Pj4+PiAoV0lOX0NFUlRJRklDQVRFKSB8fA0KPiA+ Pj4+Pj4+Pj4+PiAgICAgICAgIChTZWNEYXRhRGlyLT5WaXJ0dWFsQWRkcmVzcyArIFNlY0RhdGFE aXItPlNpemUgLSBPZmZTZXQpIDwNCj4gPj4+Pj4+Pj4gV2luQ2VydGlmaWNhdGUtDQo+ID4+Pj4+ Pj4+Pj4+IGR3TGVuZ3RoKSB7DQo+ID4+Pj4+Pj4+Pj4+ICAgICAgIGJyZWFrOw0KPiA+Pj4+Pj4+ Pj4+PiAgICAgfQ0KPiA+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+PiBUaGUgbGFzdCBzdWItY29u ZGl0aW9uIGNoZWNrcyB3aGV0aGVyIHRoZSBTZWN1cml0eSBEYXRhIERpcmVjdG9yeQ0KPiA+Pj4+ Pj4+Pj4+PiBoYXMgZW5vdWdoIHJvb20gbGVmdCBmb3IgIldpbkNlcnRpZmljYXRlLT5kd0xlbmd0 aCIuIElmIG5vdCwgdGhlbg0KPiA+Pj4+Pj4+Pj4+PiB3ZSBicmVhayBvdXQgb2YgdGhlIGxvb3Au DQo+ID4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+IElmIHdlICpkbyogaGF2ZSBlbm91Z2ggcm9v bSwgdGhhdCBpczoNCj4gPj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4gICAoU2VjRGF0YURpci0+ VmlydHVhbEFkZHJlc3MgKyBTZWNEYXRhRGlyLT5TaXplIC0gT2ZmU2V0KSA+PQ0KPiA+Pj4+Pj4+ PiBXaW5DZXJ0aWZpY2F0ZS0NCj4gPj4+Pj4+Pj4+Pj4gZHdMZW5ndGgNCj4gPj4+Pj4+Pj4+Pj4N Cj4gPj4+Pj4+Pj4+Pj4gdGhlbiB3ZSBoYXZlIChieSBhZGRpbmcgT2ZmU2V0IHRvIGJvdGggc2lk ZXMpOg0KPiA+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+PiAgIFNlY0RhdGFEaXItPlZpcnR1YWxB ZGRyZXNzICsgU2VjRGF0YURpci0+U2l6ZSA+PSBPZmZTZXQgKw0KPiA+Pj4+Pj4+Pj4+PiBXaW5D ZXJ0aWZpY2F0ZS0gZHdMZW5ndGgNCj4gPj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4gVGhlIGxl ZnQgaGFuZCBzaWRlIGlzIGEga25vd24tZ29vZCBVSU5UMzIsIGFuZCBzbyBpbmNyZW1lbnRpbmcN Cj4gPj4+Pj4+Pj4+Pj4gT2ZmU2V0IChhDQo+ID4+Pj4+Pj4+Pj4+IFVJTlQzMikgKnNvbGVseSog YnkgIldpbkNlcnRpZmljYXRlLT5kd0xlbmd0aCIgKGFsc28gYSBVSU5UMzIpDQo+ID4+Pj4+Pj4+ Pj4+IGRvZXMgbm90IGNhdXNlIGFuIG92ZXJmbG93Lg0KPiA+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+ Pj4+PiBJbnN0ZWFkLCB0aGUgcHJvYmxlbSBpcyB3aXRoIHRoZSBhbGlnbm1lbnQuIFRoZSAiaWYi IHN0YXRlbWVudA0KPiA+Pj4+Pj4+Pj4+PiBjaGVja3Mgd2hldGhlciB3ZSBoYXZlIGVub3VnaCBy b29tIGZvciAiZHdMZW5ndGgiLCBidXQgdGhlbg0KPiA+Pj4+Pj4+Pj4+PiAiT2ZmU2V0IiBpcyBh ZHZhbmNlZCBieSAiZHdMZW5ndGgiICphbGlnbmVkIHVwKiB0byB0aGUgbmV4dA0KPiA+Pj4+Pj4+ Pj4+PiBtdWx0aXBsZSBvZiA4LiBBbmQgdGhhdCBtYXkgaW5kZWVkIGNhdXNlIHZhcmlvdXMgb3Zl cmZsb3dzLg0KPiA+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+PiBOb3csIHRoZSBtYWluIHByb2Js ZW0gd2l0aCB0aGUgcHJlc2VudCBwYXRjaCBpcyB0aGF0IGl0IGRvZXMgbm90DQo+ID4+Pj4+Pj4+ Pj4+IGZpeCBvbmUgb2YgdGhvc2Ugb3ZlcmZsb3dzLiBOYW1lbHksIGNvbnNpZGVyIHRoYXQgImR3 TGVuZ3RoIiBpcw0KPiA+Pj4+Pj4+Pj4+PiB2ZXJ5IGNsb3NlIHRvDQo+ID4+Pj4+Pj4+Pj4+IE1B WF9VSU5UMzIgKG9yIGV2ZW4gdGhpbmsgaXQncyBleGFjdGx5IE1BWF9VSU5UMzIpLiBUaGVuDQo+ IGFsaWduaW5nDQo+ID4+Pj4+Pj4+Pj4+IGl0IHVwIHRvIHRoZSBuZXh0IG11bHRpcGxlIG9mIDgg d2lsbCB5aWVsZCAwLiBJbiBvdGhlciB3b3JkcywNCj4gPj4+PiAiQWxpZ25lZExlbmd0aCINCj4g Pj4+Pj4+Pj4+Pj4gd2lsbCBiZSB6ZXJvLg0KPiA+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+PiBB bmQgd2hlbiB0aGF0IGhhcHBlbnMsIHRoZXJlJ3MgZ29pbmcgdG8gYmUgYW4gaW5maW5pdGUgbG9v cCBqdXN0DQo+ID4+Pj4+Pj4+Pj4+IHRoZQ0KPiA+Pj4+Pj4+Pj4+PiBzYW1lOiAiT2ZmU2V0IiB3 aWxsIG5vdCBiZSB6ZXJvLCBidXQgaXQgd2lsbCBiZSAqc3R1Y2sqLiBUaGUNCj4gPj4+Pj4+Pj4+ Pj4gU2FmZVVpbnQzMkFkZCgpIGNhbGwgYXQgdGhlIGJvdHRvbSB3aWxsIHN1Y2NlZWQsIGJ1dCBp dCB3aWxsIG5vdA0KPiA+Pj4+Pj4+Pj4+PiBjaGFuZ2UgdGhlIHZhbHVlIG9mICJPZmZTZXQiLg0K PiA+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+PiBNb3JlIGF0IHRoZSBib3R0b20uDQo+ID4+Pj4+ Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+PiAgICAgIGlmICgoU2VjRGF0YURp ci0+VmlydHVhbEFkZHJlc3MgKyBTZWNEYXRhRGlyLT5TaXplIC0gT2ZmU2V0KQ0KPiA+Pj4+Pj4+ Pj4+Pj4gPD0gc2l6ZW9mDQo+ID4+Pj4+Pj4+Pj4gKFdJTl9DRVJUSUZJQ0FURSkgfHwNCj4gPj4+ Pj4+Pj4+Pj4+ICAgICAgICAgIChTZWNEYXRhRGlyLT5WaXJ0dWFsQWRkcmVzcyArIFNlY0RhdGFE aXItPlNpemUgLSBPZmZTZXQpDQo+ID4+Pj4+Pj4+Pj4+PiA8DQo+ID4+Pj4+Pj4+Pj4gV2luQ2Vy dGlmaWNhdGUtPmR3TGVuZ3RoKSB7DQo+ID4+Pj4+Pj4+Pj4+PiAgICAgICAgYnJlYWs7DQo+ID4+ Pj4+Pj4+Pj4+PiBAQCAtMTg3Miw2ICsxODc4LDggQEAgRHhlSW1hZ2VWZXJpZmljYXRpb25IYW5k bGVyICgNCj4gPj4+Pj4+Pj4+Pj4+ICAgICAgICB9DQo+ID4+Pj4+Pj4+Pj4+PiAgICAgICAgQXV0 aERhdGEgICA9IFBrY3NDZXJ0RGF0YS0+Q2VydERhdGE7DQo+ID4+Pj4+Pj4+Pj4+PiAgICAgICAg QXV0aERhdGFTaXplID0gUGtjc0NlcnREYXRhLT5IZHIuZHdMZW5ndGggLQ0KPiA+Pj4+Pj4+Pj4+ Pj4gc2l6ZW9mKFBrY3NDZXJ0RGF0YS0NCj4gPj4+Pj4+Pj4+IEhkcik7DQo+ID4+Pj4+Pj4+Pj4+ PiArICAgICAgSXNBdXRoRGF0YUFzc2lnbmVkID0gVFJVRTsNCj4gPj4+Pj4+Pj4+Pj4+ICsgICAg ICBIYXNoU3RhdHVzID0gSGFzaFBlSW1hZ2VCeVR5cGUgKEF1dGhEYXRhLCBBdXRoRGF0YVNpemUp Ow0KPiA+Pj4+Pj4+Pj4+Pj4gICAgICB9IGVsc2UgaWYgKFdpbkNlcnRpZmljYXRlLT53Q2VydGlm aWNhdGVUeXBlID09DQo+ID4+Pj4+Pj4+IFdJTl9DRVJUX1RZUEVfRUZJX0dVSUQpDQo+ID4+Pj4+ Pj4+Pj4gew0KPiA+Pj4+Pj4+Pj4+Pj4gICAgICAgIC8vDQo+ID4+Pj4+Pj4+Pj4+PiAgICAgICAg Ly8gVGhlIGNlcnRpZmljYXRlIGlzIGZvcm1hdHRlZCBhcw0KPiA+Pj4+Pj4+Pj4+Pj4gV0lOX0NF UlRJRklDQVRFX1VFRklfR1VJRCB3aGljaA0KPiA+Pj4+Pj4+PiBpcw0KPiA+Pj4+Pj4+Pj4+IGRl c2NyaWJlZCBpbiBVRUZJIFNwZWMuDQo+ID4+Pj4+Pj4+Pj4+PiBAQCAtMTg4MCw3MiArMTg4OCw3 NSBAQCBEeGVJbWFnZVZlcmlmaWNhdGlvbkhhbmRsZXIgKA0KPiA+Pj4+Pj4+Pj4+Pj4gICAgICAg IGlmIChXaW5DZXJ0VWVmaUd1aWQtPkhkci5kd0xlbmd0aCA8PQ0KPiA+Pj4+Pj4+Pj4+IE9GRlNF VF9PRihXSU5fQ0VSVElGSUNBVEVfVUVGSV9HVUlELCBDZXJ0RGF0YSkpIHsNCj4gPj4+Pj4+Pj4+ Pj4+ICAgICAgICAgIGJyZWFrOw0KPiA+Pj4+Pj4+Pj4+Pj4gICAgICAgIH0NCj4gPj4+Pj4+Pj4+ Pj4+IC0gICAgICBpZiAoIUNvbXBhcmVHdWlkICgmV2luQ2VydFVlZmlHdWlkLT5DZXJ0VHlwZSwN Cj4gPj4+PiAmZ0VmaUNlcnRQa2NzN0d1aWQpKQ0KPiA+Pj4+Pj4+PiB7DQo+ID4+Pj4+Pj4+Pj4+ PiAtICAgICAgICBjb250aW51ZTsNCj4gPj4+Pj4+Pj4+Pj4+ICsgICAgICBpZiAoQ29tcGFyZUd1 aWQgKCZXaW5DZXJ0VWVmaUd1aWQtPkNlcnRUeXBlLA0KPiA+Pj4+Pj4+Pj4+Pj4gKyAmZ0VmaUNl cnRQa2NzN0d1aWQpKQ0KPiA+Pj4+Pj4+PiB7DQo+ID4+Pj4+Pj4+Pj4+PiArICAgICAgICBBdXRo RGF0YSA9IFdpbkNlcnRVZWZpR3VpZC0+Q2VydERhdGE7DQo+ID4+Pj4+Pj4+Pj4+PiArICAgICAg ICBBdXRoRGF0YVNpemUgPSBXaW5DZXJ0VWVmaUd1aWQtPkhkci5kd0xlbmd0aCAtDQo+ID4+Pj4+ Pj4+Pj4gT0ZGU0VUX09GKFdJTl9DRVJUSUZJQ0FURV9VRUZJX0dVSUQsIENlcnREYXRhKTsNCj4g Pj4+Pj4+Pj4+Pj4+ICsgICAgICAgIElzQXV0aERhdGFBc3NpZ25lZCA9IFRSVUU7DQo+ID4+Pj4+ Pj4+Pj4+PiArICAgICAgICBIYXNoU3RhdHVzID0gSGFzaFBlSW1hZ2VCeVR5cGUgKEF1dGhEYXRh LA0KPiBBdXRoRGF0YVNpemUpOw0KPiA+Pj4+Pj4+Pj4+Pj4gICAgICAgIH0NCj4gPj4+Pj4+Pj4+ Pj4+IC0gICAgICBBdXRoRGF0YSA9IFdpbkNlcnRVZWZpR3VpZC0+Q2VydERhdGE7DQo+ID4+Pj4+ Pj4+Pj4+PiAtICAgICAgQXV0aERhdGFTaXplID0gV2luQ2VydFVlZmlHdWlkLT5IZHIuZHdMZW5n dGggLQ0KPiA+Pj4+Pj4+Pj4+IE9GRlNFVF9PRihXSU5fQ0VSVElGSUNBVEVfVUVGSV9HVUlELCBD ZXJ0RGF0YSk7DQo+ID4+Pj4+Pj4+Pj4+PiAgICAgIH0gZWxzZSB7DQo+ID4+Pj4+Pj4+Pj4+PiAg ICAgICAgaWYgKFdpbkNlcnRpZmljYXRlLT5kd0xlbmd0aCA8IHNpemVvZiAoV0lOX0NFUlRJRklD QVRFKSkgew0KPiA+Pj4+Pj4+Pj4+Pj4gICAgICAgICAgYnJlYWs7DQo+ID4+Pj4+Pj4+Pj4+PiAg ICAgICAgfQ0KPiA+Pj4+Pj4+Pj4+Pj4gLSAgICAgIGNvbnRpbnVlOw0KPiA+Pj4+Pj4+Pj4+Pj4g ICAgICB9DQo+ID4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4gLSAgICBIYXNoU3RhdHVzID0g SGFzaFBlSW1hZ2VCeVR5cGUgKEF1dGhEYXRhLCBBdXRoRGF0YVNpemUpOw0KPiA+Pj4+Pj4+Pj4+ Pj4gLSAgICBpZiAoRUZJX0VSUk9SIChIYXNoU3RhdHVzKSkgew0KPiA+Pj4+Pj4+Pj4+Pj4gLSAg ICAgIGNvbnRpbnVlOw0KPiA+Pj4+Pj4+Pj4+Pj4gLSAgICB9DQo+ID4+Pj4+Pj4+Pj4+PiAtDQo+ ID4+Pj4+Pj4+Pj4+PiAtICAgIC8vDQo+ID4+Pj4+Pj4+Pj4+PiAtICAgIC8vIENoZWNrIHRoZSBk aWdpdGFsIHNpZ25hdHVyZSBhZ2FpbnN0IHRoZSByZXZva2VkIGNlcnRpZmljYXRlDQo+IGluDQo+ ID4+Pj4+Pj4+IGZvcmJpZGRlbg0KPiA+Pj4+Pj4+Pj4+IGRhdGFiYXNlIChkYngpLg0KPiA+Pj4+ Pj4+Pj4+Pj4gLSAgICAvLw0KPiA+Pj4+Pj4+Pj4+Pj4gLSAgICBpZiAoSXNGb3JiaWRkZW5CeURi eCAoQXV0aERhdGEsIEF1dGhEYXRhU2l6ZSkpIHsNCj4gPj4+Pj4+Pj4+Pj4+IC0gICAgICBBY3Rp b24gPSBFRklfSU1BR0VfRVhFQ1VUSU9OX0FVVEhfU0lHX0ZBSUxFRDsNCj4gPj4+Pj4+Pj4+Pj4+ IC0gICAgICBJc1ZlcmlmaWVkID0gRkFMU0U7DQo+ID4+Pj4+Pj4+Pj4+PiAtICAgICAgYnJlYWs7 DQo+ID4+Pj4+Pj4+Pj4+PiAtICAgIH0NCj4gPj4+Pj4+Pj4+Pj4+IC0NCj4gPj4+Pj4+Pj4+Pj4+ IC0gICAgLy8NCj4gPj4+Pj4+Pj4+Pj4+IC0gICAgLy8gQ2hlY2sgdGhlIGRpZ2l0YWwgc2lnbmF0 dXJlIGFnYWluc3QgdGhlIHZhbGlkIGNlcnRpZmljYXRlIGluDQo+ID4+Pj4gYWxsb3dlZA0KPiA+ Pj4+Pj4+Pj4+IGRhdGFiYXNlIChkYikuDQo+ID4+Pj4+Pj4+Pj4+PiAtICAgIC8vDQo+ID4+Pj4+ Pj4+Pj4+PiAtICAgIGlmICghSXNWZXJpZmllZCkgew0KPiA+Pj4+Pj4+Pj4+Pj4gLSAgICAgIGlm IChJc0FsbG93ZWRCeURiIChBdXRoRGF0YSwgQXV0aERhdGFTaXplKSkgew0KPiA+Pj4+Pj4+Pj4+ Pj4gLSAgICAgICAgSXNWZXJpZmllZCA9IFRSVUU7DQo+ID4+Pj4+Pj4+Pj4+PiArICAgIGlmIChJ c0F1dGhEYXRhQXNzaWduZWQgJiYgIUVGSV9FUlJPUiAoSGFzaFN0YXR1cykpIHsNCj4gPj4+Pj4+ Pj4+Pj4+ICsgICAgICAvLw0KPiA+Pj4+Pj4+Pj4+Pj4gKyAgICAgIC8vIENoZWNrIHRoZSBkaWdp dGFsIHNpZ25hdHVyZSBhZ2FpbnN0IHRoZSByZXZva2VkDQo+ID4+Pj4+Pj4+Pj4+PiArIGNlcnRp ZmljYXRlIGluDQo+ID4+Pj4+Pj4+IGZvcmJpZGRlbg0KPiA+Pj4+Pj4+Pj4+IGRhdGFiYXNlIChk YngpLg0KPiA+Pj4+Pj4+Pj4+Pj4gKyAgICAgIC8vDQo+ID4+Pj4+Pj4+Pj4+PiArICAgICAgaWYg KElzRm9yYmlkZGVuQnlEYnggKEF1dGhEYXRhLCBBdXRoRGF0YVNpemUpKSB7DQo+ID4+Pj4+Pj4+ Pj4+PiArICAgICAgICBBY3Rpb24gPSBFRklfSU1BR0VfRVhFQ1VUSU9OX0FVVEhfU0lHX0ZBSUxF RDsNCj4gPj4+Pj4+Pj4+Pj4+ICsgICAgICAgIElzVmVyaWZpZWQgPSBGQUxTRTsNCj4gPj4+Pj4+ Pj4+Pj4+ICsgICAgICAgIGJyZWFrOw0KPiA+Pj4+Pj4+Pj4+Pj4gICAgICAgIH0NCj4gPj4+Pj4+ Pj4+Pj4+IC0gICAgfQ0KPiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+IC0gICAgLy8NCj4g Pj4+Pj4+Pj4+Pj4+IC0gICAgLy8gQ2hlY2sgdGhlIGltYWdlJ3MgaGFzaCB2YWx1ZS4NCj4gPj4+ Pj4+Pj4+Pj4+IC0gICAgLy8NCj4gPj4+Pj4+Pj4+Pj4+IC0gICAgRGJTdGF0dXMgPSBJc1NpZ25h dHVyZUZvdW5kSW5EYXRhYmFzZSAoDQo+ID4+Pj4+Pj4+Pj4+PiAtICAgICAgICAgICAgICAgICBF RklfSU1BR0VfU0VDVVJJVFlfREFUQUJBU0UxLA0KPiA+Pj4+Pj4+Pj4+Pj4gLSAgICAgICAgICAg ICAgICAgbUltYWdlRGlnZXN0LA0KPiA+Pj4+Pj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgJm1D ZXJ0VHlwZSwNCj4gPj4+Pj4+Pj4+Pj4+IC0gICAgICAgICAgICAgICAgIG1JbWFnZURpZ2VzdFNp emUsDQo+ID4+Pj4+Pj4+Pj4+PiAtICAgICAgICAgICAgICAgICAmSXNGb3VuZA0KPiA+Pj4+Pj4+ Pj4+Pj4gLSAgICAgICAgICAgICAgICAgKTsNCj4gPj4+Pj4+Pj4+Pj4+IC0gICAgaWYgKEVGSV9F UlJPUiAoRGJTdGF0dXMpIHx8IElzRm91bmQpIHsNCj4gPj4+Pj4+Pj4+Pj4+IC0gICAgICBBY3Rp b24gPSBFRklfSU1BR0VfRVhFQ1VUSU9OX0FVVEhfU0lHX0ZPVU5EOw0KPiA+Pj4+Pj4+Pj4+Pj4g LSAgICAgIERFQlVHICgoREVCVUdfSU5GTywgIkR4ZUltYWdlVmVyaWZpY2F0aW9uTGliOiBJbWFn ZSBpcw0KPiA+Pj4+IHNpZ25lZA0KPiA+Pj4+Pj4+PiBidXQgJXMNCj4gPj4+Pj4+Pj4+PiBoYXNo IG9mIGltYWdlIGlzIGZvdW5kIGluIERCWC5cbiIsIG1IYXNoVHlwZVN0cikpOw0KPiA+Pj4+Pj4+ Pj4+Pj4gLSAgICAgIElzVmVyaWZpZWQgPSBGQUxTRTsNCj4gPj4+Pj4+Pj4+Pj4+IC0gICAgICBi cmVhazsNCj4gPj4+Pj4+Pj4+Pj4+IC0gICAgfQ0KPiA+Pj4+Pj4+Pj4+Pj4gKyAgICAgIC8vDQo+ ID4+Pj4+Pj4+Pj4+PiArICAgICAgLy8gQ2hlY2sgdGhlIGRpZ2l0YWwgc2lnbmF0dXJlIGFnYWlu c3QgdGhlIHZhbGlkDQo+ID4+Pj4+Pj4+Pj4+PiArIGNlcnRpZmljYXRlIGluIGFsbG93ZWQNCj4g Pj4+Pj4+Pj4+PiBkYXRhYmFzZSAoZGIpLg0KPiA+Pj4+Pj4+Pj4+Pj4gKyAgICAgIC8vDQo+ID4+ Pj4+Pj4+Pj4+PiArICAgICAgaWYgKCFJc1ZlcmlmaWVkKSB7DQo+ID4+Pj4+Pj4+Pj4+PiArICAg ICAgICBpZiAoSXNBbGxvd2VkQnlEYiAoQXV0aERhdGEsIEF1dGhEYXRhU2l6ZSkpIHsNCj4gPj4+ Pj4+Pj4+Pj4+ICsgICAgICAgICAgSXNWZXJpZmllZCA9IFRSVUU7DQo+ID4+Pj4+Pj4+Pj4+PiAr ICAgICAgICB9DQo+ID4+Pj4+Pj4+Pj4+PiArICAgICAgfQ0KPiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+ Pj4+Pj4+Pj4+IC0gICAgaWYgKCFJc1ZlcmlmaWVkKSB7DQo+ID4+Pj4+Pj4+Pj4+PiArICAgICAg Ly8NCj4gPj4+Pj4+Pj4+Pj4+ICsgICAgICAvLyBDaGVjayB0aGUgaW1hZ2UncyBoYXNoIHZhbHVl Lg0KPiA+Pj4+Pj4+Pj4+Pj4gKyAgICAgIC8vDQo+ID4+Pj4+Pj4+Pj4+PiAgICAgICAgRGJTdGF0 dXMgPSBJc1NpZ25hdHVyZUZvdW5kSW5EYXRhYmFzZSAoDQo+ID4+Pj4+Pj4+Pj4+PiAtICAgICAg ICAgICAgICAgICAgIEVGSV9JTUFHRV9TRUNVUklUWV9EQVRBQkFTRSwNCj4gPj4+Pj4+Pj4+Pj4+ ICsgICAgICAgICAgICAgICAgICAgRUZJX0lNQUdFX1NFQ1VSSVRZX0RBVEFCQVNFMSwNCj4gPj4+ Pj4+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgbUltYWdlRGlnZXN0LA0KPiA+Pj4+Pj4+Pj4+ Pj4gICAgICAgICAgICAgICAgICAgICAmbUNlcnRUeXBlLA0KPiA+Pj4+Pj4+Pj4+Pj4gICAgICAg ICAgICAgICAgICAgICBtSW1hZ2VEaWdlc3RTaXplLA0KPiA+Pj4+Pj4+Pj4+Pj4gICAgICAgICAg ICAgICAgICAgICAmSXNGb3VuZA0KPiA+Pj4+Pj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAp Ow0KPiA+Pj4+Pj4+Pj4+Pj4gLSAgICAgIGlmICghRUZJX0VSUk9SIChEYlN0YXR1cykgJiYgSXNG b3VuZCkgew0KPiA+Pj4+Pj4+Pj4+Pj4gLSAgICAgICAgSXNWZXJpZmllZCA9IFRSVUU7DQo+ID4+ Pj4+Pj4+Pj4+PiAtICAgICAgfSBlbHNlIHsNCj4gPj4+Pj4+Pj4+Pj4+IC0gICAgICAgIERFQlVH ICgoREVCVUdfSU5GTywgIkR4ZUltYWdlVmVyaWZpY2F0aW9uTGliOiBJbWFnZSBpcw0KPiA+Pj4+ IHNpZ25lZA0KPiA+Pj4+Pj4+PiBidXQNCj4gPj4+Pj4+Pj4+PiBzaWduYXR1cmUgaXMgbm90IGFs bG93ZWQgYnkgREIgYW5kICVzIGhhc2ggb2YgaW1hZ2UgaXMgbm90IGZvdW5kIGluDQo+ID4+Pj4+ Pj4+IERCL0RCWC5cbiIsDQo+ID4+Pj4+Pj4+Pj4gbUhhc2hUeXBlU3RyKSk7DQo+ID4+Pj4+Pj4+ Pj4+PiArICAgICAgaWYgKEVGSV9FUlJPUiAoRGJTdGF0dXMpIHx8IElzRm91bmQpIHsNCj4gPj4+ Pj4+Pj4+Pj4+ICsgICAgICAgIEFjdGlvbiA9IEVGSV9JTUFHRV9FWEVDVVRJT05fQVVUSF9TSUdf Rk9VTkQ7DQo+ID4+Pj4+Pj4+Pj4+PiArICAgICAgICBERUJVRyAoKERFQlVHX0lORk8sICJEeGVJ bWFnZVZlcmlmaWNhdGlvbkxpYjogSW1hZ2UgaXMNCj4gPj4+Pj4+Pj4+Pj4+ICsgc2lnbmVkDQo+ ID4+Pj4+Pj4+Pj4gYnV0ICVzIGhhc2ggb2YgaW1hZ2UgaXMgZm91bmQgaW4gREJYLlxuIiwgbUhh c2hUeXBlU3RyKSk7DQo+ID4+Pj4+Pj4+Pj4+PiArICAgICAgICBJc1ZlcmlmaWVkID0gRkFMU0U7 DQo+ID4+Pj4+Pj4+Pj4+PiArICAgICAgICBicmVhazsNCj4gPj4+Pj4+Pj4+Pj4+ICAgICAgICB9 DQo+ID4+Pj4+Pj4+Pj4+PiArDQo+ID4+Pj4+Pj4+Pj4+PiArICAgICAgaWYgKCFJc1ZlcmlmaWVk KSB7DQo+ID4+Pj4+Pj4+Pj4+PiArICAgICAgICBEYlN0YXR1cyA9IElzU2lnbmF0dXJlRm91bmRJ bkRhdGFiYXNlICgNCj4gPj4+Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICBFRklfSU1B R0VfU0VDVVJJVFlfREFUQUJBU0UsDQo+ID4+Pj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAg ICAgbUltYWdlRGlnZXN0LA0KPiA+Pj4+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICZt Q2VydFR5cGUsDQo+ID4+Pj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgbUltYWdlRGln ZXN0U2l6ZSwNCj4gPj4+Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAmSXNGb3VuZA0K PiA+Pj4+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICk7DQo+ID4+Pj4+Pj4+Pj4+PiAr ICAgICAgICBpZiAoIUVGSV9FUlJPUiAoRGJTdGF0dXMpICYmIElzRm91bmQpIHsNCj4gPj4+Pj4+ Pj4+Pj4+ICsgICAgICAgICAgSXNWZXJpZmllZCA9IFRSVUU7DQo+ID4+Pj4+Pj4+Pj4+PiArICAg ICAgICB9IGVsc2Ugew0KPiA+Pj4+Pj4+Pj4+Pj4gKyAgICAgICAgICBERUJVRyAoKERFQlVHX0lO Rk8sICJEeGVJbWFnZVZlcmlmaWNhdGlvbkxpYjogSW1hZ2UNCj4gaXMNCj4gPj4+Pj4+Pj4+Pj4+ ICsgc2lnbmVkDQo+ID4+Pj4+Pj4+IGJ1dA0KPiA+Pj4+Pj4+Pj4+IHNpZ25hdHVyZSBpcyBub3Qg YWxsb3dlZCBieSBEQiBhbmQgJXMgaGFzaCBvZiBpbWFnZSBpcyBub3QgZm91bmQgaW4NCj4gPj4+ Pj4+Pj4gREIvREJYLlxuIiwNCj4gPj4+Pj4+Pj4+PiBtSGFzaFR5cGVTdHIpKTsNCj4gPj4+Pj4+ Pj4+Pj4+ICsgICAgICAgIH0NCj4gPj4+Pj4+Pj4+Pj4+ICsgICAgICB9DQo+ID4+Pj4+Pj4+Pj4+ PiArICAgIH0NCj4gPj4+Pj4+Pj4+Pj4+ICsNCj4gPj4+Pj4+Pj4+Pj4+ICsgICAgQWRkU3RhdHVz ID0gU2FmZVVpbnQzMkFkZCAoT2ZmU2V0LCBBbGlnbmVkTGVuZ3RoLCAmUmVzdWx0KTsNCj4gPj4+ Pj4+Pj4+Pj4+ICsgICAgaWYgKEVGSV9FUlJPUiAoQWRkU3RhdHVzKSkgew0KPiA+Pj4+Pj4+Pj4+ Pj4gKyAgICAgIGJyZWFrOw0KPiA+Pj4+Pj4+Pj4+Pj4gICAgICB9DQo+ID4+Pj4+Pj4+Pj4+PiAr ICAgIE9mZlNldCA9IFJlc3VsdDsNCj4gPj4+Pj4+Pj4+Pj4+ICAgIH0NCj4gPj4+Pj4+Pj4+Pj4+ DQo+ID4+Pj4+Pj4+Pj4+PiAgICBpZiAoT2ZmU2V0ICE9IChTZWNEYXRhRGlyLT5WaXJ0dWFsQWRk cmVzcyArIFNlY0RhdGFEaXItPlNpemUpKQ0KPiA+Pj4+Pj4+Pj4+Pj4gew0KPiA+Pj4+Pj4+Pj4+ Pj4NCj4gPj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4gVGhlcmUgYXJlIG90aGVyIChzbWFsbGVy KSByZWFzb25zIHdoeSBJIGRpc2xpa2UgdGhpcyBwYXRjaDoNCj4gPj4+Pj4+Pj4+Pj4NCj4gPj4+ Pj4+Pj4+Pj4gLSBUaGUgIklzQXV0aERhdGFBc3NpZ25lZCIgdmFyaWFibGUgaXMgc3VwZXJmbHVv dXM7IHdlIGNvdWxkIHVzZQ0KPiA+Pj4+Pj4+Pj4+PiB0aGUgZXhpc3RlbnQgIkF1dGhEYXRhIiB2 YXJpYWJsZSAod2l0aCBhIE5VTEwtY2hlY2sgYW5kIGENCj4gPj4+Pj4+Pj4+Pj4gTlVMTC1hc3Np Z25tZW50KSBzaW1pbGFybHkuDQo+ID4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+IC0gVGhlIHBh dGNoIGNvbXBsaWNhdGVzIC8gcmVvcmdhbml6ZXMgdGhlIGNvbnRyb2wgZmxvdyBuZWVkbGVzc2x5 Lg0KPiA+Pj4+Pj4+Pj4+PiBUaGlzIGNvbXBsaWNhdGlvbiBvcmlnaW5hdGVzIGZyb20gcGxhY2lu ZyB0aGUgY2hlY2tlZCAiT2ZmU2V0Ig0KPiA+Pj4+Pj4+Pj4+PiBpbmNyZW1lbnQgYXQgdGhlIGJv dHRvbSBvZiB0aGUgbG9vcCwgd2hpY2ggdGhlbiByZXF1aXJlcyB0aGUNCj4gPj4+Pj4+Pj4+Pj4g cmVtb3ZhbCBvZiBhbGwgdGhlICJjb250aW51ZSIgc3RhdGVtZW50cy4gQnV0IHdlIGRvbid0IG5l ZWQgdG8NCj4gPj4+Pj4+Pj4+Pj4gY2hlY2stYW5kLWluY3JlbWVudCBhdCB0aGUgYm90dG9tLiBX ZSBjYW4ga2VlcCB0aGUgaW5jcmVtZW50DQo+ID4+Pj4+Pj4+Pj4+IGluc2lkZSB0aGUgImZvciIg c3RhdGVtZW50LCBvbmx5IGV4dGVuZCB0aGUgKmV4aXN0ZW50KiByb29tIGNoZWNrDQo+ID4+Pj4+ Pj4+Pj4+ICh3aGljaCBJJ3ZlIHF1b3RlZCkgdG8gdGFrZSB0aGUgYWxpZ25tZW50IGludG8gYWNj b3VudCBhcyB3ZWxsLiBJZg0KPiA+Pj4+Pj4+Pj4+PiB0aGVyZSBpcyBlbm91Z2ggcm9vbSBmb3Ig dGhlIGFsaWdubWVudCBpbiB0aGUgc2VjdXJpdHkgZGF0YQ0KPiA+Pj4+Pj4+Pj4+PiBkaXJlY3Rv cnksIHRoZW4gdGhhdCBndWFyYW50ZWVzIHRoZXJlIHdvbid0IGJlIGEgVUlOVDMyIG92ZXJmbG93 DQo+ID4+Pj4gZWl0aGVyLg0KPiA+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+PiBBbGwgaW4gYWxs LCBJJ20gcHJvcG9zaW5nIHRoZSBmb2xsb3dpbmcgdGhyZWUgcGF0Y2hlcyBpbnN0ZWFkLiBUaGUN Cj4gPj4+Pj4+Pj4+Pj4gZmlyc3QgdHdvIHBhdGNoZXMgYXJlIHByZXBhcmF0aW9uLCB0aGUgbGFz dCBwYXRjaCBpcyB0aGUgZml4Lg0KPiA+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+PiBQYXRjaCMx Og0KPiA+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4gRnJvbSAxMWFmMGExMDRkMzRkMzliZjFi MWFhYjI1NjQyOGFlNGVkYmRkZDc3IE1vbiBTZXANCj4gMTcNCj4gPj4+Pj4+Pj4gMDA6MDA6MDAN Cj4gPj4+Pj4+Pj4+PiAyMDAxDQo+ID4+Pj4+Pj4+Pj4+PiBGcm9tOiBMYXN6bG8gRXJzZWsgPGxl cnNla0ByZWRoYXQuY29tPg0KPiA+Pj4+Pj4+Pj4+Pj4gRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAx OToxMTozOSArMDIwMA0KPiA+Pj4+Pj4+Pj4+Pj4gU3ViamVjdDogW1BBVENIIDEvM10gU2VjdXJp dHlQa2cvRHhlSW1hZ2VWZXJpZmljYXRpb25MaWI6DQo+IGV4dHJhY3QNCj4gPj4+Pj4+Pj4+Pj4+ IFNlY0RhdGFEaXJFbmQsIFNlY0RhdGFEaXJMZWZ0DQo+ID4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+ Pj4+Pj4gVGhlIGZvbGxvd2luZyB0d28gcXVhbnRpdGllczoNCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+ Pj4+Pj4+Pj4+PiAgIFNlY0RhdGFEaXItPlZpcnR1YWxBZGRyZXNzICsgU2VjRGF0YURpci0+U2l6 ZQ0KPiA+Pj4+Pj4+Pj4+Pj4gICBTZWNEYXRhRGlyLT5WaXJ0dWFsQWRkcmVzcyArIFNlY0RhdGFE aXItPlNpemUgLSBPZmZTZXQNCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+PiBhcmUgdXNl ZCBtdWx0aXBsZSB0aW1lcyBpbiBEeGVJbWFnZVZlcmlmaWNhdGlvbkhhbmRsZXIoKS4NCj4gPj4+ Pj4+Pj4+Pj4+IEludHJvZHVjZSBoZWxwZXIgdmFyaWFibGVzIGZvciB0aGVtOiAiU2VjRGF0YURp ckVuZCIgYW5kDQo+ID4+Pj4gIlNlY0RhdGFEaXJMZWZ0IiwgcmVzcGVjdGl2ZWx5Lg0KPiA+Pj4+ Pj4+Pj4+Pj4gVGhpcyBzYXZlcyB1cyBtdWx0aXBsZSBjYWxjdWxhdGlvbnMgYW5kIHNpZ25pZmlj YW50bHkgc2ltcGxpZmllcyB0aGUNCj4gPj4gY29kZS4NCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+ Pj4+Pj4+PiBOb3RlIHRoYXQgYWxsIHRocmVlIHN1bW1hbmRzIGFib3ZlIGhhdmUgdHlwZSBVSU5U MzIsDQo+IHRoZXJlZm9yZQ0KPiA+Pj4+Pj4+Pj4+Pj4gdGhlIG5ldyB2YXJpYWJsZXMgYXJlIGFs c28gb2YgdHlwZSBVSU5UMzIuDQo+ID4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4gVGhpcyBw YXRjaCBkb2VzIG5vdCBjaGFuZ2UgYmVoYXZpb3IuDQo+ID4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+ Pj4+Pj4gKE5vdGUgdGhhdCB0aGUgY29kZSBhbHJlYWR5IGhhbmRsZXMgdGhlIGNhc2Ugd2hlbiB0 aGUNCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+PiAgIFNlY0RhdGFEaXItPlZpcnR1YWxB ZGRyZXNzICsgU2VjRGF0YURpci0+U2l6ZQ0KPiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+ IFVJTlQzMiBhZGRpdGlvbiBvdmVyZmxvd3MgLS0gbmFtZWx5LCBpbiB0aGF0IGNhc2UsIHRoZQ0K PiA+Pj4+Pj4+Pj4+Pj4gY2VydGlmaWNhdGUgbG9vcCBpcyBuZXZlciBlbnRlcmVkLCBhbmQgdGhl IGNvcnJ1cHRpb24gY2hlY2sgcmlnaHQNCj4gPj4+Pj4+Pj4+Pj4+IGFmdGVyIHRoZSBsb29wIGZp cmVzLikNCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBMYXN6 bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPg0KPiA+Pj4+Pj4+Pj4+Pj4gLS0tDQo+ID4+Pj4+ Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4gU2VjdXJpdHlQa2cvTGlicmFyeS9EeGVJbWFn ZVZlcmlmaWNhdGlvbkxpYi9EeGVJbWFnZVZlcmlmaWNhdGlvbkwNCj4gPj4+Pj4+Pj4+Pj4+IGli LmMgfA0KPiA+Pj4+Pj4+PiAxMg0KPiA+Pj4+Pj4+Pj4+ICsrKysrKysrLS0tLQ0KPiA+Pj4+Pj4+ Pj4+Pj4gIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pDQo+ ID4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4gZGlmZiAtLWdpdA0KPiA+Pj4+Pj4+Pj4+DQo+ ID4+IGEvU2VjdXJpdHlQa2cvTGlicmFyeS9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYi9EeGVJbWFn ZVZlcmlmaWNhdGlvbkwNCj4gPj4+Pj4+Pj4+PiBpYi5jDQo+ID4+Pj4+Pj4+Pj4NCj4gPj4gYi9T ZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliL0R4ZUltYWdlVmVyaWZp Y2F0aW9uTA0KPiA+Pj4+Pj4+Pj4+IGliLmMNCj4gPj4+Pj4+Pj4+Pj4+IGluZGV4IDM2Yjg3ZTE2 ZDUzZC4uODc2MTk4MGM4OGFhIDEwMDY0NA0KPiA+Pj4+Pj4+Pj4+Pj4gLS0tDQo+ID4+Pj4+Pj4+ DQo+ID4+IGEvU2VjdXJpdHlQa2cvTGlicmFyeS9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYi9EeGVJ bWFnZVZlcmlmaWNhdGlvbkxpYg0KPiA+Pj4+Pj4+PiAuYw0KPiA+Pj4+Pj4+Pj4+Pj4gKysrDQo+ ID4+Pj4+Pj4+Pj4NCj4gPj4gYi9TZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZUltYWdlVmVyaWZpY2F0 aW9uTGliL0R4ZUltYWdlVmVyaWZpY2F0aW9uTA0KPiA+Pj4+Pj4+Pj4+IGliLmMNCj4gPj4+Pj4+ Pj4+Pj4+IEBAIC0xNjUyLDYgKzE2NTIsOCBAQCBEeGVJbWFnZVZlcmlmaWNhdGlvbkhhbmRsZXIg KA0KPiA+Pj4+Pj4+Pj4+Pj4gICAgVUlOVDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICpBdXRoRGF0YTsNCj4gPj4+Pj4+Pj4+Pj4+ICAgIFVJTlROICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBdXRoRGF0YVNpemU7DQo+ID4+Pj4+Pj4+Pj4+PiAgICBFRklfSU1BR0VfREFU QV9ESVJFQ1RPUlkgICAgICAgICAgICAgKlNlY0RhdGFEaXI7DQo+ID4+Pj4+Pj4+Pj4+PiArICBV SU5UMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VjRGF0YURpckVuZDsNCj4gPj4+ Pj4+Pj4+Pj4+ICsgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWNEYXRh RGlyTGVmdDsNCj4gPj4+Pj4+Pj4+Pj4+ICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBPZmZTZXQ7DQo+ID4+Pj4+Pj4+Pj4+PiAgICBDSEFSMTYgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKk5hbWVTdHI7DQo+ID4+Pj4+Pj4+Pj4+PiAgICBSRVRVUk5fU1RBVFVT ICAgICAgICAgICAgICAgICAgICAgICAgUGVDb2ZmU3RhdHVzOw0KPiA+Pj4+Pj4+Pj4+Pj4gQEAg LTE4NDksMTIgKzE4NTEsMTQgQEAgRHhlSW1hZ2VWZXJpZmljYXRpb25IYW5kbGVyICgNCj4gPj4+ Pj4+Pj4+Pj4+ICAgIC8vICJBdHRyaWJ1dGUgQ2VydGlmaWNhdGUgVGFibGUiLg0KPiA+Pj4+Pj4+ Pj4+Pj4gICAgLy8gVGhlIGZpcnN0IGNlcnRpZmljYXRlIHN0YXJ0cyBhdCBvZmZzZXQNCj4gPj4+ Pj4+Pj4+Pj4+IChTZWNEYXRhRGlyLT5WaXJ0dWFsQWRkcmVzcykgZnJvbQ0KPiA+Pj4+Pj4+PiB0 aGUNCj4gPj4+Pj4+Pj4+PiBzdGFydCBvZiB0aGUgZmlsZS4NCj4gPj4+Pj4+Pj4+Pj4+ICAgIC8v DQo+ID4+Pj4+Pj4+Pj4+PiArICBTZWNEYXRhRGlyRW5kID0gU2VjRGF0YURpci0+VmlydHVhbEFk ZHJlc3MgKyBTZWNEYXRhRGlyLQ0KPiA+U2l6ZTsNCj4gPj4+Pj4+Pj4+Pj4+ICAgIGZvciAoT2Zm U2V0ID0gU2VjRGF0YURpci0+VmlydHVhbEFkZHJlc3M7DQo+ID4+Pj4+Pj4+Pj4+PiAtICAgICAg IE9mZlNldCA8IChTZWNEYXRhRGlyLT5WaXJ0dWFsQWRkcmVzcyArIFNlY0RhdGFEaXItPlNpemUp Ow0KPiA+Pj4+Pj4+Pj4+Pj4gKyAgICAgICBPZmZTZXQgPCBTZWNEYXRhRGlyRW5kOw0KPiA+Pj4+ Pj4+Pj4+Pj4gICAgICAgICBPZmZTZXQgKz0gKFdpbkNlcnRpZmljYXRlLT5kd0xlbmd0aCArIEFM SUdOX1NJWkUNCj4gPj4+Pj4+Pj4+Pj4+IChXaW5DZXJ0aWZpY2F0ZS0NCj4gPj4+Pj4+Pj4+Pj4g ZHdMZW5ndGgpKSkgew0KPiA+Pj4+Pj4+Pj4+Pj4gICAgICBXaW5DZXJ0aWZpY2F0ZSA9IChXSU5f Q0VSVElGSUNBVEUgKikgKG1JbWFnZUJhc2UgKyBPZmZTZXQpOw0KPiA+Pj4+Pj4+Pj4+Pj4gLSAg ICBpZiAoKFNlY0RhdGFEaXItPlZpcnR1YWxBZGRyZXNzICsgU2VjRGF0YURpci0+U2l6ZSAtIE9m ZlNldCkgPD0NCj4gPj4+PiBzaXplb2YNCj4gPj4+Pj4+Pj4+PiAoV0lOX0NFUlRJRklDQVRFKSB8 fA0KPiA+Pj4+Pj4+Pj4+Pj4gLSAgICAgICAgKFNlY0RhdGFEaXItPlZpcnR1YWxBZGRyZXNzICsg U2VjRGF0YURpci0+U2l6ZSAtIE9mZlNldCkgPA0KPiA+Pj4+Pj4+Pj4+IFdpbkNlcnRpZmljYXRl LT5kd0xlbmd0aCkgew0KPiA+Pj4+Pj4+Pj4+Pj4gKyAgICBTZWNEYXRhRGlyTGVmdCA9IFNlY0Rh dGFEaXJFbmQgLSBPZmZTZXQ7DQo+ID4+Pj4+Pj4+Pj4+PiArICAgIGlmIChTZWNEYXRhRGlyTGVm dCA8PSBzaXplb2YgKFdJTl9DRVJUSUZJQ0FURSkgfHwNCj4gPj4+Pj4+Pj4+Pj4+ICsgICAgICAg IFNlY0RhdGFEaXJMZWZ0IDwgV2luQ2VydGlmaWNhdGUtPmR3TGVuZ3RoKSB7DQo+ID4+Pj4+Pj4+ Pj4+PiAgICAgICAgYnJlYWs7DQo+ID4+Pj4+Pj4+Pj4+PiAgICAgIH0NCj4gPj4+Pj4+Pj4+Pj4+ DQo+ID4+Pj4+Pj4+Pj4+PiBAQCAtMTk0OCw3ICsxOTUyLDcgQEAgRHhlSW1hZ2VWZXJpZmljYXRp b25IYW5kbGVyICgNCj4gPj4+Pj4+Pj4+Pj4+ICAgICAgfQ0KPiA+Pj4+Pj4+Pj4+Pj4gICAgfQ0K PiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+IC0gIGlmIChPZmZTZXQgIT0gKFNlY0RhdGFE aXItPlZpcnR1YWxBZGRyZXNzICsgU2VjRGF0YURpci0+U2l6ZSkpDQo+ID4+Pj4+Pj4+Pj4+PiB7 DQo+ID4+Pj4+Pj4+Pj4+PiArICBpZiAoT2ZmU2V0ICE9IFNlY0RhdGFEaXJFbmQpIHsNCj4gPj4+ Pj4+Pj4+Pj4+ICAgICAgLy8NCj4gPj4+Pj4+Pj4+Pj4+ICAgICAgLy8gVGhlIFNpemUgaW4gQ2Vy dGlmaWNhdGUgVGFibGUgb3IgdGhlIGF0dHJpYnV0ZQ0KPiA+Pj4+Pj4+Pj4+Pj4gY2VydGlmaWNh dGUgdGFibGUgaXMNCj4gPj4+Pj4+Pj4gY29ycnVwdGVkLg0KPiA+Pj4+Pj4+Pj4+Pj4gICAgICAv Lw0KPiA+Pj4+Pj4+Pj4+Pj4gLS0NCj4gPj4+Pj4+Pj4+Pj4+IDIuMTkuMS4zLmczMDI0N2FhNWQy MDENCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+IFBhdGNoIzI6 DQo+ID4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+PiBGcm9tIDcyMDEyYzA2NWE1MzU4MmY3ZGY2 OTVlN2I5NzMwYzQ1ZjQ5MjI2YzYgTW9uIFNlcA0KPiAxNw0KPiA+Pj4+IDAwOjAwOjAwDQo+ID4+ Pj4+Pj4+Pj4gMjAwMQ0KPiA+Pj4+Pj4+Pj4+Pj4gRnJvbTogTGFzemxvIEVyc2VrIDxsZXJzZWtA cmVkaGF0LmNvbT4NCj4gPj4+Pj4+Pj4+Pj4+IERhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTk6MTk6 MDYgKzAyMDANCj4gPj4+Pj4+Pj4+Pj4+IFN1YmplY3Q6IFtQQVRDSCAyLzNdIFNlY3VyaXR5UGtn L0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliOg0KPiBhc3NpZ24NCj4gPj4+Pj4+Pj4+Pj4+IFdpbkNl cnRpZmljYXRlIGFmdGVyIHNpemUgY2hlY2sNCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+ PiBDdXJyZW50bHkgdGhlIChTZWNEYXRhRGlyTGVmdCA8PSBzaXplb2YgKFdJTl9DRVJUSUZJQ0FU RSkpDQo+IGNoZWNrDQo+ID4+Pj4+Pj4+Pj4+PiBvbmx5IGd1YXJkcyB0aGUgZGUtcmVmZXJlbmNp bmcgb2YgdGhlICJXaW5DZXJ0aWZpY2F0ZSIgcG9pbnRlci4NCj4gPj4+Pj4+Pj4+Pj4+IEl0IGRv ZXMgbm90IGd1YXJkIHRoZSBjYWxjdWxhdGlvbiBvZiBodGUgcG9pbnRlciBpdHNlbGY6DQo+ID4+ Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4gICBXaW5DZXJ0aWZpY2F0ZSA9IChXSU5fQ0VSVElG SUNBVEUgKikgKG1JbWFnZUJhc2UgKyBPZmZTZXQpOw0KPiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+ Pj4+Pj4+IFRoaXMgaXMgd3Jvbmc7IGlmIHdlIGRvbid0IGtub3cgZm9yIHN1cmUgdGhhdCB3ZSBo YXZlIGVub3VnaA0KPiByb29tDQo+ID4+Pj4+Pj4+Pj4+PiBmb3IgYSBXSU5fQ0VSVElGSUNBVEUs IHRoZW4gZXZlbiBjcmVhdGluZyBzdWNoIGEgcG9pbnRlciwgbm90DQo+ID4+Pj4+Pj4+Pj4+PiBq dXN0IGRlLXJlZmVyZW5jaW5nIGl0LCBtYXkgaW52b2tlIHVuZGVmaW5lZCBiZWhhdmlvci4NCj4g Pj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+PiBNb3ZlIHRoZSBwb2ludGVyIGNhbGN1bGF0aW9u IGFmdGVyIHRoZSBzaXplIGNoZWNrLg0KPiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+IFNp Z25lZC1vZmYtYnk6IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+ID4+Pj4+Pj4+ Pj4+PiAtLS0NCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+Pg0KPiA+PiBTZWN1cml0eVBr Zy9MaWJyYXJ5L0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliL0R4ZUltYWdlVmVyaWZpY2F0aW9uTA0K PiA+Pj4+Pj4+Pj4+Pj4gaWIuYyB8DQo+ID4+Pj4+Pj4+IDgNCj4gPj4+Pj4+Pj4+PiArKysrKy0t LQ0KPiA+Pj4+Pj4+Pj4+Pj4gIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pDQo+ID4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4gZGlmZiAtLWdpdA0KPiA+ Pj4+Pj4+Pj4+DQo+ID4+IGEvU2VjdXJpdHlQa2cvTGlicmFyeS9EeGVJbWFnZVZlcmlmaWNhdGlv bkxpYi9EeGVJbWFnZVZlcmlmaWNhdGlvbkwNCj4gPj4+Pj4+Pj4+PiBpYi5jDQo+ID4+Pj4+Pj4+ Pj4NCj4gPj4gYi9TZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliL0R4 ZUltYWdlVmVyaWZpY2F0aW9uTA0KPiA+Pj4+Pj4+Pj4+IGliLmMNCj4gPj4+Pj4+Pj4+Pj4+IGlu ZGV4IDg3NjE5ODBjODhhYS4uNDYxZWQ3Y2ZiNWFjIDEwMDY0NA0KPiA+Pj4+Pj4+Pj4+Pj4gLS0t DQo+ID4+Pj4+Pj4+DQo+ID4+IGEvU2VjdXJpdHlQa2cvTGlicmFyeS9EeGVJbWFnZVZlcmlmaWNh dGlvbkxpYi9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYg0KPiA+Pj4+Pj4+PiAuYw0KPiA+Pj4+Pj4+ Pj4+Pj4gKysrDQo+ID4+Pj4+Pj4+Pj4NCj4gPj4gYi9TZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZUlt YWdlVmVyaWZpY2F0aW9uTGliL0R4ZUltYWdlVmVyaWZpY2F0aW9uTA0KPiA+Pj4+Pj4+Pj4+IGli LmMNCj4gPj4+Pj4+Pj4+Pj4+IEBAIC0xODU1LDEwICsxODU1LDEyIEBAIER4ZUltYWdlVmVyaWZp Y2F0aW9uSGFuZGxlciAoDQo+ID4+Pj4+Pj4+Pj4+PiAgICBmb3IgKE9mZlNldCA9IFNlY0RhdGFE aXItPlZpcnR1YWxBZGRyZXNzOw0KPiA+Pj4+Pj4+Pj4+Pj4gICAgICAgICBPZmZTZXQgPCBTZWNE YXRhRGlyRW5kOw0KPiA+Pj4+Pj4+Pj4+Pj4gICAgICAgICBPZmZTZXQgKz0gKFdpbkNlcnRpZmlj YXRlLT5kd0xlbmd0aCArIEFMSUdOX1NJWkUNCj4gPj4+Pj4+Pj4+Pj4+IChXaW5DZXJ0aWZpY2F0 ZS0NCj4gPj4+Pj4+Pj4+Pj4gZHdMZW5ndGgpKSkgew0KPiA+Pj4+Pj4+Pj4+Pj4gLSAgICBXaW5D ZXJ0aWZpY2F0ZSA9IChXSU5fQ0VSVElGSUNBVEUgKikgKG1JbWFnZUJhc2UgKw0KPiBPZmZTZXQp Ow0KPiA+Pj4+Pj4+Pj4+Pj4gICAgICBTZWNEYXRhRGlyTGVmdCA9IFNlY0RhdGFEaXJFbmQgLSBP ZmZTZXQ7DQo+ID4+Pj4+Pj4+Pj4+PiAtICAgIGlmIChTZWNEYXRhRGlyTGVmdCA8PSBzaXplb2Yg KFdJTl9DRVJUSUZJQ0FURSkgfHwNCj4gPj4+Pj4+Pj4+Pj4+IC0gICAgICAgIFNlY0RhdGFEaXJM ZWZ0IDwgV2luQ2VydGlmaWNhdGUtPmR3TGVuZ3RoKSB7DQo+ID4+Pj4+Pj4+Pj4+PiArICAgIGlm IChTZWNEYXRhRGlyTGVmdCA8PSBzaXplb2YgKFdJTl9DRVJUSUZJQ0FURSkpIHsNCj4gPj4+Pj4+ Pj4+Pj4+ICsgICAgICBicmVhazsNCj4gPj4+Pj4+Pj4+Pj4+ICsgICAgfQ0KPiA+Pj4+Pj4+Pj4+ Pj4gKyAgICBXaW5DZXJ0aWZpY2F0ZSA9IChXSU5fQ0VSVElGSUNBVEUgKikgKG1JbWFnZUJhc2Ug Kw0KPiBPZmZTZXQpOw0KPiA+Pj4+Pj4+Pj4+Pj4gKyAgICBpZiAoU2VjRGF0YURpckxlZnQgPCBX aW5DZXJ0aWZpY2F0ZS0+ZHdMZW5ndGgpIHsNCj4gPj4+Pj4+Pj4+Pj4+ICAgICAgICBicmVhazsN Cj4gPj4+Pj4+Pj4+Pj4+ICAgICAgfQ0KPiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+IC0t DQo+ID4+Pj4+Pj4+Pj4+PiAyLjE5LjEuMy5nMzAyNDdhYTVkMjAxDQo+ID4+Pj4+Pj4+Pj4+Pg0K PiA+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+PiBQYXRjaCMzOg0KPiA+Pj4+Pj4+Pj4+Pg0KPiA+ Pj4+Pj4+Pj4+Pj4gRnJvbSAwYmJiYTE1Yjg0ZjhmOWYyY2RjNzcwYTg5ZjQxOGFhZWM2Y2ZiMzFl IE1vbiBTZXAgMTcNCj4gPj4+PiAwMDowMDowMA0KPiA+Pj4+Pj4+Pj4+IDIwMDENCj4gPj4+Pj4+ Pj4+Pj4+IEZyb206IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+ID4+Pj4+Pj4+ Pj4+PiBEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE5OjM0OjMzICswMjAwDQo+ID4+Pj4+Pj4+Pj4+ PiBTdWJqZWN0OiBbUEFUQ0ggMy8zXSBTZWN1cml0eVBrZy9EeGVJbWFnZVZlcmlmaWNhdGlvbkxp YjogY2F0Y2gNCj4gPj4+Pj4+Pj4gYWxpZ25tZW50DQo+ID4+Pj4+Pj4+Pj4+PiAgb3ZlcmZsb3cg KENWRS0yMDE5LTE0NTYyKQ0KPiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+IFRoZSBEeGVJ bWFnZVZlcmlmaWNhdGlvbkhhbmRsZXIoKSBmdW5jdGlvbiBjdXJyZW50bHkgY2hlY2tzDQo+ID4+ Pj4+Pj4+Pj4+PiB3aGV0aGVyICJTZWNEYXRhRGlyIiBoYXMgZW5vdWdoIHJvb20gZm9yDQo+ID4+ Pj4+Pj4+Pj4+PiAiV2luQ2VydGlmaWNhdGUtPmR3TGVuZ3RoIi4gSG93ZXZlciwNCj4gPj4+Pj4+ Pj4+PiBmb3INCj4gPj4+Pj4+Pj4+Pj4+IGFkdmFuY2luZyAiT2ZmU2V0IiwgIldpbkNlcnRpZmlj YXRlLT5kd0xlbmd0aCIgaXMgYWxpZ25lZCB0byB0aGUNCj4gPj4+Pj4+Pj4+Pj4+IG5leHQgbXVs dGlwbGUgb2YgOC4gSWYgIldpbkNlcnRpZmljYXRlLT5kd0xlbmd0aCIgaXMgbGFyZ2UNCj4gPj4+ Pj4+Pj4+Pj4+IGVub3VnaCwgdGhlIGFsaWdubWVudCB3aWxsIHJldHVybiAwLCBhbmQgIk9mZlNl dCIgd2lsbCBiZSBzdHVjayBhdA0KPiA+PiB0aGUNCj4gPj4+PiBzYW1lIHZhbHVlLg0KPiA+Pj4+ Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+IENoZWNrIHdoZXRoZXIgIlNlY0RhdGFEaXIiIGhhcyBy b29tIGxlZnQgZm9yIGJvdGgNCj4gPj4+Pj4+Pj4+Pj4+ICJXaW5DZXJ0aWZpY2F0ZS0+ZHdMZW5n dGgiIGFuZCB0aGUgYWxpZ25tZW50Lg0KPiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+IFNp Z25lZC1vZmYtYnk6IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+ID4+Pj4+Pj4+ Pj4+PiAtLS0NCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+Pg0KPiA+PiBTZWN1cml0eVBr Zy9MaWJyYXJ5L0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliL0R4ZUltYWdlVmVyaWZpY2F0aW9uTA0K PiA+Pj4+Pj4+Pj4+Pj4gaWIuYyB8DQo+ID4+Pj4+Pj4+IDQNCj4gPj4+Pj4+Pj4+PiArKystDQo+ ID4+Pj4+Pj4+Pj4+PiAgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQ0KPiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+IGRpZmYgLS1naXQNCj4gPj4+Pj4+ Pj4+Pg0KPiA+PiBhL1NlY3VyaXR5UGtnL0xpYnJhcnkvRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIv RHhlSW1hZ2VWZXJpZmljYXRpb25MDQo+ID4+Pj4+Pj4+Pj4gaWIuYw0KPiA+Pj4+Pj4+Pj4+DQo+ ID4+IGIvU2VjdXJpdHlQa2cvTGlicmFyeS9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYi9EeGVJbWFn ZVZlcmlmaWNhdGlvbkwNCj4gPj4+Pj4+Pj4+PiBpYi5jDQo+ID4+Pj4+Pj4+Pj4+PiBpbmRleCA0 NjFlZDdjZmI1YWMuLmUzOGViOTgxYjdhMCAxMDA2NDQNCj4gPj4+Pj4+Pj4+Pj4+IC0tLQ0KPiA+ Pj4+Pj4+Pg0KPiA+PiBhL1NlY3VyaXR5UGtnL0xpYnJhcnkvRHhlSW1hZ2VWZXJpZmljYXRpb25M aWIvRHhlSW1hZ2VWZXJpZmljYXRpb25MaWINCj4gPj4+Pj4+Pj4gLmMNCj4gPj4+Pj4+Pj4+Pj4+ ICsrKw0KPiA+Pj4+Pj4+Pj4+DQo+ID4+IGIvU2VjdXJpdHlQa2cvTGlicmFyeS9EeGVJbWFnZVZl cmlmaWNhdGlvbkxpYi9EeGVJbWFnZVZlcmlmaWNhdGlvbkwNCj4gPj4+Pj4+Pj4+PiBpYi5jDQo+ ID4+Pj4+Pj4+Pj4+PiBAQCAtMTg2MCw3ICsxODYwLDkgQEAgRHhlSW1hZ2VWZXJpZmljYXRpb25I YW5kbGVyICgNCj4gPj4+Pj4+Pj4+Pj4+ICAgICAgICBicmVhazsNCj4gPj4+Pj4+Pj4+Pj4+ICAg ICAgfQ0KPiA+Pj4+Pj4+Pj4+Pj4gICAgICBXaW5DZXJ0aWZpY2F0ZSA9IChXSU5fQ0VSVElGSUNB VEUgKikgKG1JbWFnZUJhc2UgKyBPZmZTZXQpOw0KPiA+Pj4+Pj4+Pj4+Pj4gLSAgICBpZiAoU2Vj RGF0YURpckxlZnQgPCBXaW5DZXJ0aWZpY2F0ZS0+ZHdMZW5ndGgpIHsNCj4gPj4+Pj4+Pj4+Pj4+ ICsgICAgaWYgKFNlY0RhdGFEaXJMZWZ0IDwgV2luQ2VydGlmaWNhdGUtPmR3TGVuZ3RoIHx8DQo+ ID4+Pj4+Pj4+Pj4+PiArICAgICAgICAoU2VjRGF0YURpckxlZnQgLSBXaW5DZXJ0aWZpY2F0ZS0+ ZHdMZW5ndGggPA0KPiA+Pj4+Pj4+Pj4+Pj4gKyAgICAgICAgIEFMSUdOX1NJWkUgKFdpbkNlcnRp ZmljYXRlLT5kd0xlbmd0aCkpKSB7DQo+ID4+Pj4+Pj4+Pj4+PiAgICAgICAgYnJlYWs7DQo+ID4+ Pj4+Pj4+Pj4+PiAgICAgIH0NCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+PiAtLQ0KPiA+ Pj4+Pj4+Pj4+Pj4gMi4xOS4xLjMuZzMwMjQ3YWE1ZDIwMQ0KPiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+ Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4gSWYgV2VueWkgYW5kIHRoZSByZXZpZXdlcnMgYXJlIE9L IHdpdGggdGhlc2UgcGF0Y2hlcywgSSBjYW4NCj4gc3VibWl0DQo+ID4+Pj4+Pj4+Pj4+IHRoZW0g YXMgYSBzdGFuZGFsb25lIHBhdGNoIHNlcmllcy4NCj4gPj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+ Pj4gTm90ZSB0aGF0IEkgZG8gbm90IGhhdmUgYW55IHJlcHJvZHVjZXIgZm9yIHRoZSBpc3N1ZTsg dGhlIGJlc3QNCj4gPj4+Pj4+Pj4+Pj4gdGVzdGluZyB0aGF0IEkgY291bGQgb2ZmZXIgd291bGQg YmUgc29tZSBsaWdodC13ZWlnaHQgU2VjdXJlIEJvb3QNCj4gPj4+Pj4+Pj4+Pj4gcmVncmVzc2lv biB0ZXN0cy4NCj4gPj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4gVGhhbmtzDQo+ID4+Pj4+Pj4+ Pj4+IExhc3psbw0KPiA+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+PiAu DQo+ID4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+ DQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+ Pj4+DQo+ID4+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+PiAuDQo+ID4+Pj4+DQo+ID4+ Pj4NCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pg0KPiA+Pg0KPiA+Pg0KPiA+Pg0KPiA+DQo+IA0KPiAN Cj4gDQoNCg==