From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Vibhav Pant Newsgroups: gmane.emacs.devel Subject: Re: scratch/comp-static-data 5aa3db2f11: comp: Add support for compiling elisp constants into static data. Date: Thu, 17 Nov 2022 00:56:53 +0530 Message-ID: <8a44ed3bfb1e6077a5b62e278cc8a231a1778b3f.camel@gmail.com> References: <166844679660.19180.3470364122428955894@vcs2.savannah.gnu.org> <20221114172637.78215C0E4C7@vcs2.savannah.gnu.org> <871qq5hxf9.fsf@yahoo.com> Reply-To: vibhavp@gmail.com Mime-Version: 1.0 Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="=-xk+h7qJlHMpt9P9f51NP" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="11712"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Evolution 3.46.1 To: Po Lu , emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Nov 16 20:27:51 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ovO4c-0002vL-TL for ged-emacs-devel@m.gmane-mx.org; Wed, 16 Nov 2022 20:27:51 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ovO3r-0005vj-P9; Wed, 16 Nov 2022 14:27:03 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ovO3q-0005uj-54 for emacs-devel@gnu.org; Wed, 16 Nov 2022 14:27:02 -0500 Original-Received: from mail-pf1-x436.google.com ([2607:f8b0:4864:20::436]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ovO3n-000355-Pt for emacs-devel@gnu.org; Wed, 16 Nov 2022 14:27:01 -0500 Original-Received: by mail-pf1-x436.google.com with SMTP id y13so18426917pfp.7 for ; Wed, 16 Nov 2022 11:26:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:user-agent:references:in-reply-to:date:to:reply-to :from:subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=oTzcD9kOe6/BpbsH8CiIpLCSR+Ku6v6N6p0zzQ7y/8c=; b=DsNTPkbwvpZi9JnCzIKU4nVXTk68+OD+d+IcbHM8M+fvLowHkEHt4SRCBxopbFJSMk yI6d4jF4LSz9sDUZ5HgkrXgcHlkKuN5shcwGH4bPdcUyKFpTC77Vk3Bggit3Uwm7lbTp Sm5m22uUBjNlUSeCnotWhc3s7kT2VBd5I94ToYB4ZhM2zGuBgfEVE25g+HjvMbwfHAS/ Nfw9uRZ0Bq40m/XOLHGv6l87H8OsNNiEucXwPYY0nGkuISDMrEo9lqgGhzrE1airQhzv MGnk3Ga5dj2Kgr2GE0r7R2s5GK7r1ZUqiNzvV4tQBWe1PoAeweIEe9o73Q/frLjCRJi6 EQsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:user-agent:references:in-reply-to:date:to:reply-to :from:subject:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=oTzcD9kOe6/BpbsH8CiIpLCSR+Ku6v6N6p0zzQ7y/8c=; b=b0l1LisgrdY2IcsdifFCMojk1sMmfJ/4x6wYbndiEJB4bprHTztmQu3gdKeS1YFWIQ 9LZeO1HMzbqtOO8V1RJh3JerM9T7RC6ZaaejZ5phYFIQJh5t5lqziRfsu1qXKK7qKboc BjNkrf//CgOCkNSyYeQ/woXWrH5eIKHtuyDlznskYEPJ4q2Vh8uq5qwl5YMSK7owwcjB HunTj1kPB+GDPHtRXnRhlLra2bahqYgmG/zqt21oHX33seh/Cbhr8IRdUcFMHYSxGjYh jkB/EkZIDf7mMbmF6DNYdofQ8hDhfu+C64HpSyDwXO9CcpzqTAXaDo5CeYT6pMswbKpD jXDA== X-Gm-Message-State: ANoB5pnuTyRMx4Mn0aujfOSNWYL7mQlZlgCpRR7J1IOQNtF3RLZH2Lx0 80g/AbHl/NyAqPDVeeulP9Y= X-Google-Smtp-Source: AA0mqf7d7ffWEIKwY9YL0n8l61gd5NCln4dNCI/o/Wkika1wAzUY4im3SW7tc93lJBywG9SQAj5EsQ== X-Received: by 2002:a62:14c8:0:b0:572:5a7f:9f4a with SMTP id 191-20020a6214c8000000b005725a7f9f4amr11131711pfu.33.1668626817542; Wed, 16 Nov 2022 11:26:57 -0800 (PST) Original-Received: from [192.168.1.7] ([182.69.183.47]) by smtp.gmail.com with ESMTPSA id g190-20020a6252c7000000b0057255b82bd1sm5095725pfb.217.2022.11.16.11.26.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Nov 2022 11:26:56 -0800 (PST) In-Reply-To: <871qq5hxf9.fsf@yahoo.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::436; envelope-from=vibhavp@gmail.com; helo=mail-pf1-x436.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:299972 Archived-At: --=-xk+h7qJlHMpt9P9f51NP Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 T24gVHVlLCAyMDIyLTExLTE1IGF0IDA4OjMwICswODAwLCBQbyBMdSB3cm90ZToKPiBUaGFua3Mu wqAgU29tZSBtaW5vciBzdHlsZSBjb21tZW50cyBiZWxvdzoKPiAKPiA+ICtjb25zdCBzaXplX3Qg YmxvY2tfYWxpZ24gPSBCTE9DS19BTElHTjsKPiAKPiBbLi4uXQo+IAo+ID4gK2NvbnN0IHNpemVf dCBmbG9hdF9ibG9ja19mbG9hdHNfbGVuZ3RoID0gRkxPQVRfQkxPQ0tfU0laRTsKPiA+ICtjb25z dCBzaXplX3QgZmxvYXRfYmxvY2tfZ2NtYXJrYml0c19sZW5ndGggPQo+ID4gK8KgIDEgKyBGTE9B VF9CTE9DS19TSVpFIC8gQklUU19QRVJfQklUU19XT1JEOwo+IAo+IFsuLi5dCj4gCj4gPiArY29u c3Qgc2l6ZV90IGNvbnNfYmxvY2tfY29uc2VzX2xlbmd0aCA9IENPTlNfQkxPQ0tfU0laRTsKPiA+ ICtjb25zdCBzaXplX3QgY29uc19ibG9ja19nY21hcmtiaXRzX2xlbmd0aAo+ID4gK8KgID0gMSAr IENPTlNfQkxPQ0tfU0laRSAvIEJJVFNfUEVSX0JJVFNfV09SRDsKPiAKPiBUaGVzZSBzaG91bGQg YmUgZGVmaW5lZCBvdXQgd2l0aCBIQVZFX05BVElWRV9DT01QSUxBVElPTi7CoCBJbgo+IGFkZGl0 aW9uLAo+IHRoZSA9IG11c3QgY29tZSBvbiBhIG5ldyBsaW5lLsKgIE91ciBzdHlsZSBpczoKPiAK PiDCoCBmb29fbG9uZwo+IMKgwqDCoCA9IGxvbmdfYmFyICgpOwo+IAo+IGluc3RlYWQgb2Y6Cj4g Cj4gwqAgZm9vX2xvbmcgPQo+IMKgwqDCoCBsb25nX2JhciAoKTsKPiAKPiA+IMKgCj4gPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtYXJrX3N0YWNrX3B1c2hfdmFsdWVzIChw dHItPmNvbnRlbnRzLAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2l6ZQo+ID4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICYKPiA+IFBTRVVET1ZFQ1RPUl9TSVpFX01BU0sp Owo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IExpc3BfTmF0 aXZlX0NvbXBfVW5pdCAqY29tcF91Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgPSBYTkFUSVZFX0NPTVBfVU5JVCAob2JqKTsKPiAKPiBIZXJlLCB5b3UgdXNlZCBz cGFjZXMgZm9yIGluZGVudGF0aW9uIGluc3RlYWQgb2YgdGFicy4KPiAKPiA+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoY29tcF91LT5oYXZlX3N0YXRpY19saXNwX2RhdGEp Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHsKPiA+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGVhc3NlcnQgKE5JTFAgKGNvbXBfdS0+ bGFtYmRhX2djX2d1YXJkX2gpICYmCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBOSUxQIChjb21wX3UtPmxhbWJkYV9jX25hbWVf aWR4X2gpCj4gPiAmJgo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgTklMUCAoY29tcF91LT5kYXRhX3ZlYykgJiYKPiA+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIE5J TFAgKGNvbXBfdS0+ZGF0YV9pbXB1cmVfdmVjKSAmJgo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29tcF91LT5kYXRhX2ltcF9y ZWxvY3MgPT0gTlVMTCk7Cj4gCj4gSW4gRW1hY3MgY29kZSwgd2hlbmV2ZXIgeW91IGZlZWwgdGhl IHRlbXB0YXRpb24gdG8gd3JpdGU6Cj4gCj4gwqAgZm9vX2NvbmRpdGlvbiAoKSAmJgo+IMKgIGJh cl9jb25kaXRpb24gKCkKPiAKPiB3cml0ZSB0aGlzIGluc3RlYWQ6Cj4gCj4gwqAgZm9vX2NvbmRp dGlvbiAoKQo+IMKgICYmIGJhcl9jb25kaXRpb24gKCkKPiAKPiA+ICtzdGF0aWMgZ2NjX2ppdF9y dmFsdWUgKgo+ID4gK2NvbXBfbGlzcF9jb25zdF9nZXRfbGlzcF9vYmpfcnZhbCAoTGlzcF9PYmpl Y3Qgb2JqLAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbXBfbGlzcF9jb25zdF90IGV4cHIpOwo+ID4gK3N0 YXRpYyBjb21wX2xpc3BfY29uc3RfdCBlbWl0X2NvbXBfbGlzcF9vYmogKExpc3BfT2JqZWN0IG9i aiwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIExpc3BfT2JqZWN0Cj4gPiBh bGxvY19jbGFzcyk7Cj4gCj4gVGhpcyBvdWdodCB0byByZWFkOgo+IAo+IHN0YXRpYyBnY2Nfaml0 X3J2YWx1ZSAqY29tcF9saXNwX2NvbnN0X2dldF9saXNwX29ial9ydmFsCj4gKExpc3BfT2JqZWN0 LAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoAo+IGNvbXBfbGlzcF9jb25zdF90KTsKPiBzdGF0aWMgY29tcF9saXNwX2NvbnN0X3QgZW1p dF9jb21wX2xpc3Bfb2JqIChMaXNwX09iamVjdCwKPiBMaXNwX09iamVjdCk7Cj4gCj4gPiArwqAg biA9Cj4gPiArwqDCoMKgIGVtaXRfYmluYXJ5X29wIChHQ0NfSklUX0JJTkFSWV9PUF9QTFVTLAo+ ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb21wLmVtYWNzX3VpbnRf dHlwZSwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZW1pdF9iaW5h cnlfb3AgKEdDQ19KSVRfQklOQVJZX09QX0xTSElGVCwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb21wLmVt YWNzX3VpbnRfdHlwZSwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb21wLmxpc3BfaW50MCwKPiA+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGVtaXRfcnZhbHVlX2Zyb21fZW1hY3NfdWludAo+ID4gKFZBTEJJVFMpKSwKPiA+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbik7Cj4gPiArCj4gCj4gUGxl YXNlLCBwbGFjZSB0aGUgPSBvbiBhIG5ldyBsaW5lLgo+IAo+ID4gK3N0YXRpYyBnY2Nfaml0X3J2 YWx1ZSAqCj4gPiArZW1pdF9tYWtlX2ZpeG51bSAoZ2NjX2ppdF9ydmFsdWUgKm9iaikKPiA+ICt7 Cj4gPiArwqAgZW1pdF9jb21tZW50ICgibWFrZV9maXhudW0iKTsKPiA+ICvCoCByZXR1cm4gVVNF X0xTQl9UQUcKPiA+ICvCoMKgwqAgPyBlbWl0X21ha2VfZml4bnVtX0xTQl9UQUcgKG9iaikKPiA+ ICvCoMKgwqAgOiBlbWl0X21ha2VfZml4bnVtX01TQl9UQUcgKG9iaik7Cj4gPiArfQo+IAo+IFRo aXMgc2hvdWxkIHJlYWQ6Cj4gCj4gwqAgcmV0dXJuIChVU0VfTFNCX1RBRwo+IMKgwqDCoMKgwqDC oMKgwqDCoCA/IGVtaXRfbWFrZV9maXhudW1fTFNCX1RBRyAob2JqKQo+IMKgwqDCoMKgwqDCoMKg wqDCoCA/IGVtaXRfbWFrZV9maXhudW1fTVNCX1RBRyAob2JqKSk7Cj4gCj4gaW5zdGVhZC4KPiAK PiA+ICt0eXBlZGVmIHN0cnVjdCB7Cj4gPiArwqAgcHRyZGlmZl90IHNpemU7Cj4gPiArwqAgZ2Nj X2ppdF9maWVsZCAqaGVhZGVyOwo+ID4gK8KgIGdjY19qaXRfZmllbGQgKmNvbnRlbnRzOwo+ID4g K8KgIGdjY19qaXRfdHlwZSAqbGlzcF92ZWN0b3JfdHlwZTsKPiA+ICvCoCBnY2Nfaml0X3R5cGUg KmNvbnRlbnRzX3R5cGU7Cj4gPiArfSBqaXRfdmVjdG9yX3R5cGVfdDsKPiAKPiBQbGVhc2UgcGxh Y2UgdGhlIG9wZW5pbmcgYnJhY2Ugb2YgdGhpcyBzdHJ1Y3Qgb24gYSBuZXcgbGluZS4KPiAKPiA+ ICvCoMKgwqDCoMKgIHZlYy5oZWFkZXIgPQo+ID4gK8KgwqDCoMKgwqDCoMKgZ2NjX2ppdF9jb250 ZXh0X25ld19maWVsZCAoY29tcC5jdHh0LAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBOVUxMLAo+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBjb21wLnB0cmRpZmZfdHlwZSwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgImhlYWRlciIpOwo+IAo+IFBs ZWFzZSBwbGFjZSB0aGUgPSBvbiBhIG5ldyBsaW5lLCBoZXJlLCBhbmQgYmVsb3c6Cj4gCj4gPiAr wqDCoMKgwqDCoCB2ZWMuY29udGVudHMgPQo+ID4gK8KgwqDCoMKgwqDCoMKgZ2NjX2ppdF9jb250 ZXh0X25ld19maWVsZCAoY29tcC5jdHh0LAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBOVUxMLAo+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCB2ZWMuY29udGVudHNfdHlwZSwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgImNvbnRlbnRzIik7Cj4gCj4g PiArwqDCoMKgID0gU1RSSU5HX01VTFRJQllURSAoc3RyKQo+ID4gK8KgwqDCoMKgwqDCoMKgID8g Z2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQgKGNvbXAuY3R4dCwKPiA+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb21wLnB0cmRpZmZfdHlwZSwKPiA+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBTQllURVMgKHN0cikpCj4gPiArwqDC oMKgIC8vIE1hcmsgdW5pYnl0ZSBzdHJpbmdzIGFzIGltbW92YWJsZSwgc28gdGhhdCBwaW5fc3Ry aW5nIGRvZXMKPiA+IG5vdAo+ID4gK8KgwqDCoCAvLyBhdHRlbXB0IHRvIG1vZGlmeSB0aGVtLgo+ ID4gK8KgwqDCoMKgwqDCoMKgIDogZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQg KGNvbXAuY3R4dCwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb21w LnB0cmRpZmZfdHlwZSwKPiA+IC0zKTsKPiAKPiBXaGVuIHlvdSB3cml0ZToKPiAKPiDCoCBmb28g PSBhYmNkZWZnCj4gwqDCoMKgID8gYmNkZWZnaGlqCj4gwqDCoMKgIDoga2xtbm9wcXJzCj4gCj4g ZXZlcnl0aGluZyBhcm91bmQgdGhlIHRlcm5hcnkgbXVzdCBiZSBwbGFjZWQgaW4gcGFyZW50aGVz ZXMgYW5kCj4gaW5kZW50ZWQKPiBhcyBzdWNoLgo+IAo+IAo+ID4gK3N0YXRpYyBpbmxpbmUgYm9v bAo+ID4gK2NvbXBfZnVuY19sX3AgKExpc3BfT2JqZWN0IGZ1bmMpCj4gPiArewo+ID4gK8KgIHJl dHVybiAhTklMUCAoQ0FMTDFJIChjb21wLWZ1bmMtbC1wLCBmdW5jKSk7Cj4gPiArfQo+ID4gKwo+ ID4gK3N0YXRpYyBpbmxpbmUgYm9vbAo+ID4gK2NvbXBfZnVuY19kX3AgKExpc3BfT2JqZWN0IGZ1 bmMpCj4gPiArewo+ID4gK8KgIHJldHVybiAhTklMUCAoQ0FMTDFJIChjb21wLWZ1bmMtZC1wLCBm dW5jKSk7Cj4gPiArfQo+IAo+IEluIGdlbmVyYWwsIHRoZXJlIGlzIG5vIG5lZWQgdG8gd3JpdGUg ImlubGluZSIgaW4gQzk5OiBzaW1wbGUKPiBleHByZXNzaW9ucyBsaWtlIHRoZXNlIHdpbGwgYmUg aW5saW5lZCBhbnl3YXksIGFuZCBvdGhlcndpc2UsIHRoZQo+IGNvbXBpbGVyIHdpbGwgbWFrZSBp dHMgb3duIGp1ZGdlbWVudC4KPiAKPiA+ICt0eXBlZGVmIHN0cnVjdCB7Cj4gPiArwqAgcHRyZGlm Zl90IGNvbnNfYmxvY2tfbGlzdF9pZHg7Cj4gPiArwqAgcHRyZGlmZl90IGNvbnNfYmxvY2tfY29u c2VzX2lkeDsKPiA+ICt9IGNvbnNfYmxvY2tfZW50cnlfdDsKPiAKPiBQbGVhc2UgcGxhY2UgdGhl IG9wZW5pbmcgYnJhY2Ugb2YgdGhpcyBzdHJ1Y3Qgb24gYSBuZXcgbGluZS4KPiAKPiA+ICtzdGF0 aWMgTGlzcF9PYmplY3QKPiA+ICtjb25zX2Jsb2NrX2xpc3RfZ2V0X2Jsb2NrX2VudHJ5IChjb25z X2Jsb2NrX2VudHJ5X3QgZW50cnkpCj4gPiArewo+ID4gK8KgIHB0cmRpZmZfdCBsaXN0X2lkeCA9 IFhGSVhOVU0gKEZsZW5ndGggKGNvbXAuY29uc19ibG9ja19saXN0KSkgLQo+ID4gMQo+ID4gK8Kg wqDCoCAtIGVudHJ5LmNvbnNfYmxvY2tfbGlzdF9pZHg7Cj4gPiArwqAgcmV0dXJuIEZudGggKG1h a2VfZml4bnVtIChsaXN0X2lkeCksIGNvbXAuY29uc19ibG9ja19saXN0KTsKPiA+ICt9Cj4gCj4g SW5zdGVhZCBvZiB3cml0aW5nOgo+IAo+IMKgIGZvbyA9IDA3Nzc3Nzc3Nzc3Nzc3Nwo+IMKgwqAg LSAwNzc3Nzc3Nzc3Nzc3NjsKPiAKPiBvdXIgY29kaW5nIHN0eWxlIGlzOgo+IAo+IMKgIGZvbyA9 ICgwNzc3Nzc3Nzc3Nzc3NzcKPiDCoMKgwqDCoMKgwqDCoMKgIC0gMDc3Nzc3Nzc3Nzc3NzYpCj4g Cj4gUGxlYXNlIGFkanVzdCB0aGlzIGNvZGUgYWNjb3JkaW5nbHkuCj4gCj4gPiArwqAgTGlzcF9P YmplY3QgYmxvY2s7Cj4gPiArwqAgaWYgKE5JTFAgKGNvbXAuZmxvYXRfYmxvY2tfbGlzdCkpCj4g PiArwqDCoMKgIGJsb2NrID0gcHVzaF9mbG9hdF9ibG9jaygpOwo+IAo+IFRoZXJlIGlzIGEgbWlz c2luZyBzcGFjZSBoZXJlLgo+IAo+ID4gK8KgIGlmIChleHByLmV4cHJfdHlwZSA9PSBDT01QX0xJ U1BfQ09OU1RfU0VMRl9SRVBSIHx8Cj4gPiArwqDCoMKgwqDCoCBleHByLmV4cHJfdHlwZSA9PSBD T01QX0xJU1BfQ09OU1RfVkFSKQo+ID4gK8KgwqDCoCByZXR1cm4gZXhwci5leHByLmxpc3Bfb2Jq Owo+IAo+IFBsZWFzZSB3cml0ZToKPiAKPiDCoCBpZiAoZXhwci5leHByX3R5cGUgPT0gQ09NUF9M SVNQX0NPTlNUX1NFTEZfUkVQUgo+IMKgwqDCoMKgwqAgfHwgZXhwci5leHByX3R5cGUgPT0gQ09N UF9MSVNQX0NPTlNUX1ZBUikKPiDCoMKgwqDCoCByZXR1cm4gZXhwci5leHByLmxpc3Bfb2JqOwo+ IAo+IGluc3RlYWQuCj4gCj4gCj4gPiArwqAgYm9vbCB2YWxpZCA9IEVRIChhbGxvY19jbGFzcywg UWRfZGVmYXVsdCkgfHwKPiA+ICvCoMKgwqAgRVEgKGFsbG9jX2NsYXNzLCBRZF9pbXB1cmUpIHx8 Cj4gPiArwqDCoMKgIEVRIChhbGxvY19jbGFzcywgUWRfZXBoZW1lcmFsKTsKPiAKPiBXaGF0IHdh cyBzYWlkIGFib3V0IHBhcmVudGhlc2VzIGVhcmxpZXIgYXBwbGllcyBoZXJlIHRvby4KPiAKPiA+ ICvCoCBpZiAoRklYTlVNUCAob2JqKSkKPiA+ICvCoMKgwqAgZXhwciA9IChjb21wX2xpc3BfY29u c3RfdCl7IC5leHByLmxpc3Bfb2JqCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgID0gZW1pdF9ydmFsdWVfZnJvbV9saXNwX29iaiAob2JqKSwKPiA+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLmNvbnN0 X2V4cHJfcCA9IHRydWUsCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIC5leHByX3R5cGUgPSBDT01QX0xJU1BfQ09OU1RfU0VMRl9SRVBSIH07Cj4g PiArwqAgZWxzZSBpZiAoQkFSRV9TWU1CT0xfUCAob2JqKSAmJiBjX3N5bWJvbF9wIChYQkFSRV9T WU1CT0wgKG9iaikpKQo+ID4gK8KgwqDCoMKgwqAgZXhwcgo+ID4gK8KgwqDCoMKgwqDCoMKgID0g KGNvbXBfbGlzcF9jb25zdF90KXsgLmV4cHIubGlzcF9vYmoKPiA+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgPSBlbWl0X3J2YWx1ZV9mcm9tX2xpc3Bf b2JqIChvYmopLAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAuY29uc3RfZXhwcl9wID0gdHJ1ZSwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLmV4cHJfdHlwZSA9IENPTVBfTElTUF9DT05TVF9T RUxGX1JFUFIgfTsKPiAKPiBJbiB0aGlzIGNvbXBvdW5kIGxpdGVyYWwsIHBsZWFzZSBwbGFjZSBh IHNwYWNlIGJldHdlZW4gdGhlIHBhcnQgdGhhdAo+IGxvb2tzIGxpa2UgYSBjYXN0IGFuZCB0aGUg aW5pdGlhbGl6ZXIgbGlzdC4KPiAKPiA+ICvCoMKgwqAgewo+ID4gK8KgwqDCoMKgwqAgTGlzcF9P YmplY3QgZnVuYyA9Cj4gPiArwqDCoMKgwqDCoMKgwqBGZ2V0aGFzaCAob2JqLAo+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIENBTEwxSSAoY29tcC1jdHh0LWJ5dGUtZnVuYy10 by1mdW5jLWgsCj4gPiBWY29tcF9jdHh0KSwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBRbmlsKTsKPiAKPiBQbGVhc2UgcGxhY2UgdGhlIGFzc2lnbm1lbnQgb3BlcmF0b3Ig b24gdGhlIG5ldyBsaW5lLgo+IAo+ID4gK2NvbnN0IGNoYXIgKmxpc3BfdHlwZV9uYW1lW0xpc3Bf RmxvYXQgKyAxXSA9IHsKPiA+ICvCoCAiTGlzcF9TeW1ib2wiLAo+ID4gK8KgICJMaXNwX1R5cGVf VW51c2VkMCIsCj4gPiArwqAgIkxpc3BfSW50MCIsCj4gPiArwqAgIkxpc3BfSW50MSIsCj4gPiAr wqAgIkxpc3BfU3RyaW5nIiwKPiA+ICvCoCAiTGlzcF9WZWN0b3JsaWtlIiwKPiA+ICvCoCAiTGlz cF9Db25zIiwKPiA+ICvCoCAiTGlzcF9GbG9hdCIKPiA+ICt9Owo+IAo+IFBsZWFzZSBwbGFjZSB0 aGUgb3BlbmluZyBicmFjZSBoZXJlIG9uIGEgbmV3IGxpbmUuCj4gCj4gPiArwqAgY29tcC5kX2Rl ZmF1bHRfcnZhbHMgPQo+ID4gK8KgwqDCoCBlbWl0X3N0YXRpY19kYXRhX2NvbnRhaW5lciAoQ0FM TDFJIChjb21wLWN0eHQtZC1kZWZhdWx0LAo+ID4gVmNvbXBfY3R4dCksCj4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBRZF9k ZWZhdWx0KTsKPiA+ICvCoCBjb21wLmRfaW1wdXJlX3J2YWxzID0KPiA+ICvCoMKgwqAgZW1pdF9z dGF0aWNfZGF0YV9jb250YWluZXIgKENBTEwxSSAoY29tcC1jdHh0LWQtaW1wdXJlLAo+ID4gVmNv bXBfY3R4dCksCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBRZF9pbXB1cmUpOwo+ID4gK8KgIGNvbXAuZF9lcGhlbWVyYWxf cnZhbHMgPQo+ID4gK8KgwqDCoCBlbWl0X3N0YXRpY19kYXRhX2NvbnRhaW5lciAoQ0FMTDFJIChj b21wLWN0eHQtZC1lcGhlbWVyYWwsCj4gPiBWY29tcF9jdHh0KSwKPiA+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFFkX2VwaGVt ZXJhbCk7Cj4gPiArfQo+IAo+IFBsZWFzZSBwdXQgdGhlIGFzc2lnbm1lbnQgb3BlcmF0b3JzIG9u IHRoZSBuZXcgbGluZS4KPiAKPiA+ICsjaWYKPiA+IGRlZmluZWQoTElCR0NDSklUX0hBVkVfUkVG TEVDVElPTinCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAKPiA+IFwKPiA+ICvCoCAmJgo+ID4gZGVmaW5lZChMSUJHQ0NKSVRf SEFWRV9DVE9SUynCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwKPiA+ICvCoCAmJgo+ID4gZGVmaW5lZChMSUJH Q0NKSVRfSEFWRV9nY2Nfaml0X3R5cGVfZ2V0X2FsaWduZWQpwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgXAo+ID4gK8KgICYmIGRlZmluZWQoTElCR0NDSklUX0hBVkVfQUxJR05N RU5UKSAmJgo+ID4gVVNFX1NUQUNLX0xJU1BfT0JKRUNUU8KgwqDCoMKgwqDCoMKgXAo+ID4gK8Kg ICYmICFkZWZpbmVkKEdDX0NIRUNLX01BUktFRF9PQkpFQ1RTKQo+IAo+IFBsZWFzZSB3cml0ZToK PiAKPiAjaWYgZGVmaW5lZCAoRk9PKQo+IAo+IG9yCj4gCj4gI2lmIGRlZmluZWQgRk9PCj4gCj4g aW5zdGVhZCBvZjoKPiAKPiAjaWYgZGVmaW5lZChGT08pCj4gCj4gSW4gYWRkaXRpb24sIG1vc3Qg b2YgeW91ciBjaGFuZ2VzIGNvbnNpc3Qgb2YgbGluZXMgaW5kZW50ZWQgd2l0aCB0YWJzCj4gYW5k IHNwYWNlcywgd2hpY2ggaXMgY29ycmVjdCwgYnV0IGl0IGFsc28gY29udGFpbnMgbWFueSBsaW5l cwo+IGluZGVudGVkCj4gc29sZWx5IHdpdGggc3BhY2VzLsKgIFBsZWFzZSBmaXggdGhvc2UuCj4g Cj4gVGhhbmtzLgoKSGksCgpUaGFua3MgZm9yIHRoZSBmZWVkYmFjaywgSSB0cmllZCB0byBhZGRy ZXNzIG1vc3Qgb2YgaXQgeWVzdGVyZGF5LgpBZGRpdGlvbmFsbHksIEkgYWxzbyBwdXNoZWQgYSBm ZXcgbW9yZSBydWxlcyB0byAuY2xhbmctZm9ybWF0IHdoaWNoCnNob3VsZCBoZWxwIGJvdGggY2xh bmctZm9ybWF0IGFuZCBjbGFuZ2Qgd2l0aCBmb3JtYXR0aW5nIGNvZGUuCgpUaGFua3MsClZpYmhh dgoKLS0gClZpYmhhdiBQYW50CnZpYmhhdnBAZ21haWwuY29tCkdQRzogN0VEMSBENDhDIDUxM0Mg QTAyNCBCRTNBICA3ODVGIEUzRkIgMjhDQiA2QUI1IDk1OTgK --=-xk+h7qJlHMpt9P9f51NP Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEEftHUjFE8oCS+Onhf4/soy2q1lZgFAmN1OX0ACgkQ4/soy2q1 lZiEbgf/fGHQhe3W/xOjKsKyZiP8B2lQvUWar+yrLWT6meLW5RQUEa5AaZjc9tM9 oBKh6NtwREKzamzm/wDiKMb0EPf9yBAXV4o5gs5PuUpllGJpBLq7663UDfkivTGp Id4ik/DJGl8x8pJwZVlrni6zSEX9D2GCKIOtBqzZ3SkYCE75tbEQkntzvjspjkdc dEXt8IIT9QeUNDwoUoimyfZGD8gTglZxxeoNBbj57BNzBC2fTtV49YwDy6arAeIK jqmSK4Vybggaee2Tmgrd6h+/88hliLO8ya9MtHPwQC7F7qaUo+17aWo1/C/V+A/y qup+vfSxy+tqxomcBnIjZv2YnT3vvQ== =VO6j -----END PGP SIGNATURE----- --=-xk+h7qJlHMpt9P9f51NP--