From mboxrd@z Thu Jan 1 00:00:00 1970 From: Federico Beffa Subject: bug#21829: guix import hackage failures Date: Sat, 14 Nov 2015 15:37:35 +0100 Message-ID: References: <87d1vghjhk.fsf@gnu.org> <87vb971t74.fsf@gnu.org> <87lha3ufxv.fsf@gnu.org> <87h9kp1ts2.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a11425b86033def0524811e68 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:59453) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zxbxv-0001yd-JC for bug-guix@gnu.org; Sat, 14 Nov 2015 09:38:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zxbxr-0001U5-KK for bug-guix@gnu.org; Sat, 14 Nov 2015 09:38:07 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:48034) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zxbxr-0001U1-Gu for bug-guix@gnu.org; Sat, 14 Nov 2015 09:38:03 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1Zxbxr-0001UH-2m for bug-guix@gnu.org; Sat, 14 Nov 2015 09:38:03 -0500 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <87h9kp1ts2.fsf@gnu.org> List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 21829@debbugs.gnu.org --001a11425b86033def0524811e68 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Fri, Nov 13, 2015 at 10:19 PM, Ludovic Court=C3=A8s wrote= : > Federico Beffa skribis: > >> --------------------------------------------------------------- >> (define (canonical-newline-port port) >> "Return an input port that wraps PORT such that all newlines consist >> of a single carriage return." >> (define (get-position) >> (if (port-has-port-position? port) (port-position port) #f)) >> (define (set-position! position) >> (if (port-has-set-port-position!? port) >> (set-port-position! position port) >> #f)) >> (define (close) (close-port port)) >> (define (read! bv start n) >> (let loop ((count 0) >> (byte (get-u8 port))) >> (cond ((or (eof-object? byte) (=3D count n)) count) > > BYTE is lost here in the case it is not EOF. Ooops. Thanks for catching it! > It may be best to move the (=3D count n) case right before the recursive > call below. > >> ((eqv? byte (char->integer #\return)) (loop count (get-u8 po= rt))) > > In practice this discards LF even if it=E2=80=99s not following CR; that= =E2=80=99s > probably a good enough approximation, but an XXX comment would be > welcome. This is intentional because, in my ignorance, I only know of uses of '\r' before or after '\n'. Do you know of any other use in text files? I've added an "XXX" comment, but I'm not sure what's its use. > >> (else >> (bytevector-u8-set! bv (+ start count) byte) >> (loop (+ count 1) (get-u8 port)))))) >> (make-custom-binary-input-port "canonical-newline-port" >> read! >> get-position >> set-position! >> close)) >> --------------------------------------------------------------- >> >> IMO this is general enough that it could go into "guix/utils.scm". Are >> you OK with this? > > Looks good! Could you make a patch that does that, along with adding a > test or two in tests/utils.scm? The attached patches fix the parsing of all but two of the failures reported by Paul. Two cabal files are still not imported correctly because they are buggy: * streaming-commons: indentation changes from 4 to 2. But this is explicitly forbidden. From [1]: "Field names may be indented, but all field values in the same section must use the same indentation." * fgl: uses braces to delimit the value of a field. As far as I understand this is not allowed by [1]: "To continue a field value, indent the next line relative to the field name." and "Flags, conditionals, library and executable sections use layout to indicate structure. ... As an alternative to using layout you can also use explicit braces {}. ". Thus I understand that braces may be used to delimit sections, not field values. Obviously the official 'cabal' program is more permissive than the description in the documentation. Regards, Fede [1] https://www.haskell.org/cabal/users-guide/developing-packages.html --001a11425b86033def0524811e68 Content-Type: text/x-diff; charset=US-ASCII; name="0001-import-hackage-Add-recognition-of-true-and-false-sym.patch" Content-Disposition: attachment; filename="0001-import-hackage-Add-recognition-of-true-and-false-sym.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_igz726r60 RnJvbSBkMTNmMDYzODNkMDdlMGFkNDA5NmZmN2ViNzE1MjY0NDYzNzM4YjBjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGZWRlcmljbyBCZWZmYSA8YmVmZmFAZmJlbmdpbmVlcmluZy5j aD4KRGF0ZTogV2VkLCAxMSBOb3YgMjAxNSAxMDozOTozOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MS82XSBpbXBvcnQ6IGhhY2thZ2U6IEFkZCByZWNvZ25pdGlvbiBvZiAndHJ1ZScgYW5kICdmYWxz ZScKIHN5bWJvbHMuCgoqIGd1aXgvaW1wb3J0L2NhYmFsLnNjbSAoaXMtdHJ1ZSwgaXMtZmFsc2Us IGxleC10cnVlLCBsZXgtZmFsc2UpOiBOZXcgcHJvY2VkdXJlcy4KICAobGV4LXdvcmQpOiBVc2Ug dGhlbS4KICAobWFrZS1jYWJhbC1wYXJzZXIpOiBBZGQgVFJVRSBhbmQgRkFMU0UgdG9rZW5zLgog IChldmFsKTogQWRkIGVudHJpZXMgZm9yICd0cnVlIGFuZCAnZmFsc2Ugc3ltYm9scy4KLS0tCiBn dWl4L2ltcG9ydC9jYWJhbC5zY20gfCAxNiArKysrKysrKysrKysrKystCiAxIGZpbGUgY2hhbmdl ZCwgMTUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2d1aXgvaW1w b3J0L2NhYmFsLnNjbSBiL2d1aXgvaW1wb3J0L2NhYmFsLnNjbQppbmRleCA0NWQ2NDRhLi44ZDg0 ZTA5IDEwMDY0NAotLS0gYS9ndWl4L2ltcG9ydC9jYWJhbC5zY20KKysrIGIvZ3VpeC9pbXBvcnQv Y2FiYWwuc2NtCkBAIC0xMzgsNyArMTM4LDcgQEAgdG8gdGhlIHN0YWNrLiIKICAgIkdlbmVyYXRl IGEgcGFyc2VyIGZvciBDYWJhbCBmaWxlcy4iCiAgIChsYWxyLXBhcnNlcgogICAgOzsgLS0tIHRv a2VuIGRlZmluaXRpb25zCi0gICAoQ0NVUkxZIFZDQ1VSTFkgT1BBUkVOIENQQVJFTiBURVNUIElE IFZFUlNJT04gUkVMQVRJT04KKyAgIChDQ1VSTFkgVkNDVVJMWSBPUEFSRU4gQ1BBUkVOIFRFU1Qg SUQgVkVSU0lPTiBSRUxBVElPTiBUUlVFIEZBTFNFCiAgICAgICAgICAgIChyaWdodDogSUYgRkxB RyBFWEVDIFRFU1QtU1VJVEUgU09VUkNFLVJFUE8gQkVOQ0hNQVJLIExJQiBPQ1VSTFkpCiAgICAg ICAgICAgIChsZWZ0OiBPUikKICAgICAgICAgICAgKGxlZnQ6IFBST1BFUlRZIEFORCkKQEAgLTIw Niw2ICsyMDYsOCBAQCB0byB0aGUgc3RhY2suIgogICAgKGlmLXRoZW4gICAgIChJRiB0ZXN0cyBP Q1VSTFkgZXhwcnMgQ0NVUkxZKSA6IGAoaWYgLCQyICwkNCAoKSkKICAgICAgICAgICAgICAgICAo SUYgdGVzdHMgb3BlbiBleHBycyBjbG9zZSkgICAgOiBgKGlmICwkMiAsJDQgKCkpKQogICAgKHRl c3RzICAgICAgIChURVNUIE9QQVJFTiBJRCBDUEFSRU4pICAgICAgICA6IGAoLCQxICwkMykKKyAg ICAgICAgICAgICAgICAoVFJVRSkgICAgICAgICAgICAgICAgICAgICAgICAgOiAndHJ1ZQorICAg ICAgICAgICAgICAgIChGQUxTRSkgICAgICAgICAgICAgICAgICAgICAgICA6ICdmYWxzZQogICAg ICAgICAgICAgICAgIChURVNUIE9QQVJFTiBJRCBSRUxBVElPTiBWRVJTSU9OIENQQVJFTikKICAg ICAgICAgICAgICAgICA6IGAoLCQxICwoc3RyaW5nLWFwcGVuZCAkMyAiICIgJDQgIiAiICQ1KSkK ICAgICAgICAgICAgICAgICAoVEVTVCBPUEFSRU4gSUQgUkVMQVRJT04gVkVSU0lPTiBBTkQgUkVM QVRJT04gVkVSU0lPTiBDUEFSRU4pCkBAIC0zNTAsNiArMzUyLDEwIEBAIG1hdGNoaW5nIGEgc3Ry aW5nIGFnYWluc3QgdGhlIGNyZWF0ZWQgcmVnZXhwLiIKIAogKGRlZmluZSAoaXMtaWYgcykgKHN0 cmluZy1jaT0/IHMgImlmIikpCiAKKyhkZWZpbmUgKGlzLXRydWUgcykgKHN0cmluZy1jaT0/IHMg InRydWUiKSkKKworKGRlZmluZSAoaXMtZmFsc2UgcykgKHN0cmluZy1jaT0/IHMgImZhbHNlIikp CisKIChkZWZpbmUgKGlzLWFuZCBzKSAoc3RyaW5nPT8gcyAiJiYiKSkKIAogKGRlZmluZSAoaXMt b3IgcykgKHN0cmluZz0/IHMgInx8IikpCkBAIC00MjQsNiArNDMwLDEwIEBAIHN0cmluZyB3aXRo IHRoZSByZWFkIGNoYXJhY3RlcnMuIgogCiAoZGVmaW5lIChsZXgtaWYgbG9jKSAobWFrZS1sZXhp Y2FsLXRva2VuICdJRiBsb2MgI2YpKQogCisoZGVmaW5lIChsZXgtdHJ1ZSBsb2MpIChtYWtlLWxl eGljYWwtdG9rZW4gJ1RSVUUgbG9jICN0KSkKKworKGRlZmluZSAobGV4LWZhbHNlIGxvYykgKG1h a2UtbGV4aWNhbC10b2tlbiAnRkFMU0UgbG9jICNmKSkKKwogKGRlZmluZSAobGV4LWFuZCBsb2Mp IChtYWtlLWxleGljYWwtdG9rZW4gJ0FORCBsb2MgI2YpKQogCiAoZGVmaW5lIChsZXgtb3IgbG9j KSAobWFrZS1sZXhpY2FsLXRva2VuICdPUiBsb2MgI2YpKQpAQCAtNDg5LDYgKzQ5OSw4IEBAIExP QyBpcyB0aGUgY3VycmVudCBwb3J0IGxvY2F0aW9uLiIKICAgKGxldCogKCh3IChyZWFkLWRlbGlt aXRlZCAiICgpXHRcbiIgcG9ydCAncGVlaykpKQogICAgIChjb25kICgoaXMtaWYgdykgKGxleC1p ZiBsb2MpKQogICAgICAgICAgICgoaXMtdGVzdCB3IHBvcnQpIChsZXgtdGVzdCB3IGxvYykpCisg ICAgICAgICAgKChpcy10cnVlIHcpIChsZXgtdHJ1ZSBsb2MpKQorICAgICAgICAgICgoaXMtZmFs c2UgdykgKGxleC1mYWxzZSBsb2MpKQogICAgICAgICAgICgoaXMtYW5kIHcpIChsZXgtYW5kIGxv YykpCiAgICAgICAgICAgKChpcy1vciB3KSAobGV4LW9yIGxvYykpCiAgICAgICAgICAgKChpcy1p ZCB3KSAobGV4LWlkIHcgbG9jKSkKQEAgLTcxNCw2ICs3MjYsOCBAQCB0aGUgb3JkZXJpbmcgb3Bl cmF0aW9uIGFuZCB0aGUgdmVyc2lvbi4iCiAgICAgICAoKCdvcyBuYW1lKSAob3MgbmFtZSkpCiAg ICAgICAoKCdhcmNoIG5hbWUpIChhcmNoIG5hbWUpKQogICAgICAgKCgnaW1wbCBuYW1lKSAoaW1w bCBuYW1lKSkKKyAgICAgICgndHJ1ZSAjdCkKKyAgICAgICgnZmFsc2UgI2YpCiAgICAgICAoKCdu b3QgbmFtZSkgKG5vdCAoZXZhbCBuYW1lKSkpCiAgICAgICA7OyAnYW5kJyBhbmQgJ29yJyBhcmVu J3QgZnVuY3Rpb25zLCB0aHVzIHdlIGNhbid0IHVzZSBhcHBseQogICAgICAgKCgnYW5kIGFyZ3Mg Li4uKSAoZm9sZCAobGFtYmRhIChlIHMpIChhbmQgZSBzKSkgI3QgKGV2YWwgYXJncykpKQotLSAK Mi40LjMKCg== --001a11425b86033def0524811e68 Content-Type: text/x-diff; charset=US-ASCII; name="0002-import-hackage-Imporve-parsing-of-tests.patch" Content-Disposition: attachment; filename="0002-import-hackage-Imporve-parsing-of-tests.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_igz726ry1 RnJvbSA0NDVmMWI2MTk3YzBlMjY2MDI3YWMwMzNjNTI2MjlkOTkwMTM3MTcxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGZWRlcmljbyBCZWZmYSA8YmVmZmFAZmJlbmdpbmVlcmluZy5j aD4KRGF0ZTogV2VkLCAxMSBOb3YgMjAxNSAxMToyMjo0MiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg Mi82XSBpbXBvcnQ6IGhhY2thZ2U6IEltcG9ydmUgcGFyc2luZyBvZiB0ZXN0cy4KCiogZ3VpeC9p bXBvcnQvY2FiYWwuc2NtIChsZXgtd29yZCk6IEFkZCBzdXBwb3J0IGZvciB0ZXN0cyB3aXRoIG5v IHNwYWNlcy4KICAoaW1wbCk6IEZpeCBoYW5kbGluZyBvZiBvcGVyYXRvciAiPT0iLgotLS0KIGd1 aXgvaW1wb3J0L2NhYmFsLnNjbSB8IDEwICsrKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGlu c2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ3VpeC9pbXBvcnQvY2Fi YWwuc2NtIGIvZ3VpeC9pbXBvcnQvY2FiYWwuc2NtCmluZGV4IDhkODRlMDkuLjYxNWVjYTIgMTAw NjQ0Ci0tLSBhL2d1aXgvaW1wb3J0L2NhYmFsLnNjbQorKysgYi9ndWl4L2ltcG9ydC9jYWJhbC5z Y20KQEAgLTQ5Niw3ICs0OTYsNyBAQCBsb2NhdGlvbi4iCiAoZGVmaW5lIChsZXgtd29yZCBwb3J0 IGxvYykKICAgIlByb2Nlc3MgdG9rZW5zIHdoaWNoIGNhbiBiZSByZWNvZ25pemVkIGJ5IHJlYWRp bmcgdGhlIG5leHQgd29yZCBmb3JtIFBPUlQuCiBMT0MgaXMgdGhlIGN1cnJlbnQgcG9ydCBsb2Nh dGlvbi4iCi0gIChsZXQqICgodyAocmVhZC1kZWxpbWl0ZWQgIiAoKVx0XG4iIHBvcnQgJ3BlZWsp KSkKKyAgKGxldCogKCh3IChyZWFkLWRlbGltaXRlZCAiIDw+PSgpXHRcbiIgcG9ydCAncGVlaykp KQogICAgIChjb25kICgoaXMtaWYgdykgKGxleC1pZiBsb2MpKQogICAgICAgICAgICgoaXMtdGVz dCB3IHBvcnQpIChsZXgtdGVzdCB3IGxvYykpCiAgICAgICAgICAgKChpcy10cnVlIHcpIChsZXgt dHJ1ZSBsb2MpKQpAQCAtNjg4LDcgKzY4OCwxMSBAQCB0aGUgb3JkZXJpbmcgb3BlcmF0aW9uIGFu ZCB0aGUgdmVyc2lvbi4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN1dCBtYXRjaDpz dWJzdHJpbmcgPD4gMikpKQogICAgICAgICAgICAodmVyc2lvbiAoYW5kPT4gKHdpdGgtdmVyLW1h dGNoZXItZm4gc3BlYykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjdXQgbWF0Y2g6c3Vi c3RyaW5nIDw+IDMpKSkpCi0gICAgICAodmFsdWVzIG5hbWUgb3BlcmF0b3IgdmVyc2lvbikpKQor ICAgICAgKHZhbHVlcyBuYW1lCisgICAgICAgICAgICAgIChpZiAoYW5kIChzdHJpbmc/IG9wZXJh dG9yKSAoc3RyaW5nPSBvcGVyYXRvciAiPT0iKSkKKyAgICAgICAgICAgICAgICAgICI9IgorICAg ICAgICAgICAgICAgICAgb3BlcmF0b3IpCisgICAgICAgICAgICAgIHZlcnNpb24pKSkKICAgCiAg IChkZWZpbmUgKGltcGwgaGFza2VsbCkKICAgICAobGV0Ki12YWx1ZXMgKCgoY29tcC1uYW1lIGNv bXAtdmVyKQpAQCAtNjk3LDcgKzcwMSw3IEBAIHRoZSBvcmRlcmluZyBvcGVyYXRpb24gYW5kIHRo ZSB2ZXJzaW9uLiIKICAgICAgICAgICAgICAgICAgICAoY29tcC1zcGVjLW5hbWUrb3ArdmVyc2lv biBoYXNrZWxsKSkpCiAgICAgICAoaWYgKGFuZCBzcGVjLXZlciBjb21wLXZlcikKICAgICAgICAg ICAoZXZhbC1zdHJpbmcKLSAgICAgICAgICAgKHN0cmluZy1hcHBlbmQgIihzdHJpbmciIHNwZWMt b3AgIiBcIiIgY29tcC1uYW1lICJcIiIKKyAgICAgICAgICAgKHN0cmluZy1hcHBlbmQgIihzdHJp bmciIHNwZWMtb3AgIiBcIiIgY29tcC1uYW1lICItIiBjb21wLXZlciAiXCIiCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICIgXCIiIHNwZWMtbmFtZSAiLSIgc3BlYy12ZXIgIlwiKSIpKQogICAg ICAgICAgIChzdHJpbmctbWF0Y2ggc3BlYy1uYW1lIGNvbXAtbmFtZSkpKSkKICAgCi0tIAoyLjQu MwoK --001a11425b86033def0524811e68 Content-Type: text/x-diff; charset=US-ASCII; name="0003-import-hackage-Make-it-resilient-to-missing-final-ne.patch" Content-Disposition: attachment; filename="0003-import-hackage-Make-it-resilient-to-missing-final-ne.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_igz726s62 RnJvbSBmNzk2ZDgxNDgyMTI4OWE5OGU0MDFhM2UzZGYxMzMzNGEyZTg2ODliIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGZWRlcmljbyBCZWZmYSA8YmVmZmFAZmJlbmdpbmVlcmluZy5j aD4KRGF0ZTogV2VkLCAxMSBOb3YgMjAxNSAxNTozMTo0NiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg My82XSBpbXBvcnQ6IGhhY2thZ2U6IE1ha2UgaXQgcmVzaWxpZW50IHRvIG1pc3NpbmcgZmluYWwK IG5ld2xpbmUuCgoqIGd1aXgvaW1wb3J0L2NhYmFsLnNjbSAocGVlay1uZXh0LWxpbmUtaW5kZW50 KTogQ2hlY2sgZm9yIG1pc3NpbmcgZmluYWwKICBuZXdsaW5lLgotLS0KIGd1aXgvaW1wb3J0L2Nh YmFsLnNjbSB8IDMxICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCAxOCBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9ndWl4 L2ltcG9ydC9jYWJhbC5zY20gYi9ndWl4L2ltcG9ydC9jYWJhbC5zY20KaW5kZXggNjE1ZWNhMi4u Y2E4OGZmNSAxMDA2NDQKLS0tIGEvZ3VpeC9pbXBvcnQvY2FiYWwuc2NtCisrKyBiL2d1aXgvaW1w b3J0L2NhYmFsLnNjbQpAQCAtMjI2LDE5ICsyMjYsMjQgQEAgdG8gdGhlIHN0YWNrLiIKICAgIlRo aXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCB3aGVuIHRoZSBuZXh0IGNoYXJhY3RlciBvbiBQT1JU IGlzICNcbmV3bGluZQogYW5kIHJldHVybnMgdGhlIGluZGVudGF0aW9uIG9mIHRoZSBsaW5lIHN0 YXJ0aW5nIGFmdGVyIHRoZSAjXG5ld2xpbmUKIGNoYXJhY3Rlci4gIERpc2NhcmQgKGFuZCBjb25z dW1lKSBlbXB0eSBhbmQgY29tbWVudCBsaW5lcy4iCi0gIChsZXQgKChpbml0aWFsLW5ld2xpbmUg KHN0cmluZyAocmVhZC1jaGFyIHBvcnQpKSkpCi0gICAgKGxldCBsb29wICgoY2hhciAocGVlay1j aGFyIHBvcnQpKQotICAgICAgICAgICAgICAgKHdvcmQgIiIpKQotICAgICAgKGNvbmQgKChlcXY/ IGNoYXIgI1xuZXdsaW5lKSAocmVhZC1jaGFyIHBvcnQpCi0gICAgICAgICAgICAgKGxvb3AgKHBl ZWstY2hhciBwb3J0KSAiIikpCi0gICAgICAgICAgICAoKG9yIChlcXY/IGNoYXIgI1xzcGFjZSkg KGVxdj8gY2hhciAjXHRhYikpCi0gICAgICAgICAgICAgKGxldCAoKGMgKHJlYWQtY2hhciBwb3J0 KSkpCi0gICAgICAgICAgICAgICAobG9vcCAocGVlay1jaGFyIHBvcnQpIChzdHJpbmctYXBwZW5k IHdvcmQgKHN0cmluZyBjKSkpKSkKLSAgICAgICAgICAgICgoY29tbWVudC1saW5lIHBvcnQgY2hh cikgKGxvb3AgKHBlZWstY2hhciBwb3J0KSAiIikpCi0gICAgICAgICAgICAoZWxzZQotICAgICAg ICAgICAgIChsZXQgKChsZW4gKHN0cmluZy1sZW5ndGggd29yZCkpKQotICAgICAgICAgICAgICAg KHVucmVhZC1zdHJpbmcgKHN0cmluZy1hcHBlbmQgaW5pdGlhbC1uZXdsaW5lIHdvcmQpIHBvcnQp Ci0gICAgICAgICAgICAgICBsZW4pKSkpKSkKKyAgKGlmIChlb2Ytb2JqZWN0PyAocGVlay1jaGFy IHBvcnQpKQorICAgICAgOzsgSWYgdGhlIGZpbGUgaXMgbWlzc2luZyB0aGUgI1xuZXdsaW5lIG9u IHRoZSBsYXN0IGxpbmUsIGFkZCBpdCBhbmQgYWN0CisgICAgICA7OyBhcyBpZiBpdCB3ZXJlIHRo ZXJlLiBUaGlzIGlzIG5lZWRlZCBmb3IgcHJvcG9lciBvcGVyYXRpb24gb2YKKyAgICAgIDs7IGlu ZGVudGF0aW9uIGJhc2VkIGJsb2NrIHJlY29nbml0aW9uLgorICAgICAgKGJlZ2luICh1bnJlYWQt Y2hhciAjXG5ld2xpbmUgcG9ydCkgKHJlYWQtY2hhciBwb3J0KSAwKQorICAgICAgKGxldCAoKGlu aXRpYWwtbmV3bGluZSAoc3RyaW5nIChyZWFkLWNoYXIgcG9ydCkpKSkKKyAgICAgICAgKGxldCBs b29wICgoY2hhciAocGVlay1jaGFyIHBvcnQpKQorICAgICAgICAgICAgICAgICAgICh3b3JkICIi KSkKKyAgICAgICAgICAoY29uZCAoKGVxdj8gY2hhciAjXG5ld2xpbmUpIChyZWFkLWNoYXIgcG9y dCkKKyAgICAgICAgICAgICAgICAgKGxvb3AgKHBlZWstY2hhciBwb3J0KSAiIikpCisgICAgICAg ICAgICAgICAgKChvciAoZXF2PyBjaGFyICNcc3BhY2UpIChlcXY/IGNoYXIgI1x0YWIpKQorICAg ICAgICAgICAgICAgICAobGV0ICgoYyAocmVhZC1jaGFyIHBvcnQpKSkKKyAgICAgICAgICAgICAg ICAgICAobG9vcCAocGVlay1jaGFyIHBvcnQpIChzdHJpbmctYXBwZW5kIHdvcmQgKHN0cmluZyBj KSkpKSkKKyAgICAgICAgICAgICAgICAoKGNvbW1lbnQtbGluZSBwb3J0IGNoYXIpIChsb29wIChw ZWVrLWNoYXIgcG9ydCkgIiIpKQorICAgICAgICAgICAgICAgIChlbHNlCisgICAgICAgICAgICAg ICAgIChsZXQgKChsZW4gKHN0cmluZy1sZW5ndGggd29yZCkpKQorICAgICAgICAgICAgICAgICAg ICh1bnJlYWQtc3RyaW5nIChzdHJpbmctYXBwZW5kIGluaXRpYWwtbmV3bGluZSB3b3JkKSBwb3J0 KQorICAgICAgICAgICAgICAgICAgIGxlbikpKSkpKSkKIAogKGRlZmluZSogKHJlYWQtdmFsdWUg cG9ydCB2YWx1ZSBtaW4taW5kZW50ICM6b3B0aW9uYWwgKHNlcGFyYXRvciAiICIpKQogICAiVGhl IG5leHQgY2hhcmFjdGVyIG9uIFBPUlQgbXVzdCBiZSAjXG5ld2xpbmUuICBBcHBlbmQgdG8gVkFM VUUgdGhlCi0tIAoyLjQuMwoK --001a11425b86033def0524811e68 Content-Type: text/x-diff; charset=US-ASCII; name="0004-import-hackage-Make-parsing-of-tests-and-fields-more.patch" Content-Disposition: attachment; filename="0004-import-hackage-Make-parsing-of-tests-and-fields-more.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_igz726se3 RnJvbSAyMjUxNjRkMjM1NWFmZDZmOTQ1NTI1MWQ4N2NiZDM0YjA4ZjY4Y2RiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGZWRlcmljbyBCZWZmYSA8YmVmZmFAZmJlbmdpbmVlcmluZy5j aD4KRGF0ZTogV2VkLCAxMSBOb3YgMjAxNSAxNjoyMDo0NSArMDEwMApTdWJqZWN0OiBbUEFUQ0gg NC82XSBpbXBvcnQ6IGhhY2thZ2U6IE1ha2UgcGFyc2luZyBvZiB0ZXN0cyBhbmQgZmllbGRzIG1v cmUKIGZsZXhpYmxlLgoKKiBndWl4L2ltcG9ydC9jYWJhbC5zY20gKGlzLXRlc3QpOiBBbGxvdyBz cGFjZXMgYmV0d2VlbiBrZXl3b3JkIGFuZAogIHBhcmVudGhlc2VzLgogIChpcy1pZCk6IEFkZCBh cmd1bWVudCAncG9ydCcuICBBbGxvdyBzcGFjZXMgYmV0d2VlbiBrZXl3b3JkIGFuZCBjb2x1bW4u CiAgKGxleC13b3JkKTogQWRqdXN0IGNhbGwgdG8gJ2lzLWlkJy4KLS0tCiBndWl4L2ltcG9ydC9j YWJhbC5zY20gfCAxOSArKysrKysrKysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTMgaW5z ZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9ndWl4L2ltcG9ydC9jYWJh bC5zY20gYi9ndWl4L2ltcG9ydC9jYWJhbC5zY20KaW5kZXggY2E4OGZmNS4uMjU3YWZhNSAxMDA2 NDQKLS0tIGEvZ3VpeC9pbXBvcnQvY2FiYWwuc2NtCisrKyBiL2d1aXgvaW1wb3J0L2NhYmFsLnNj bQpAQCAtMzMyLDcgKzMzMiw3IEBAIG1hdGNoaW5nIGEgc3RyaW5nIGFnYWluc3QgdGhlIGNyZWF0 ZWQgcmVnZXhwLiIKICAgICAgICAgICAgICAgICAobWFrZS1yZWdleHAgcGF0KSkpKQogICAgIChj dXQgcmVnZXhwLWV4ZWMgcnggPD4pKSkKIAotKGRlZmluZSBpcy1wcm9wZXJ0eSAobWFrZS1yeC1t YXRjaGVyICIoW2EtejAtOS1dKyk6WyBcdF0qKFxcdz8uKikkIgorKGRlZmluZSBpcy1wcm9wZXJ0 eSAobWFrZS1yeC1tYXRjaGVyICIoW2EtejAtOS1dKylbIFx0XSo6WyBcdF0qKFxcdz8uKikkIgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2V4cC9pY2FzZSkpCiAKIChk ZWZpbmUgaXMtZmxhZyAobWFrZS1yeC1tYXRjaGVyICJeZmxhZyArKFthLXowLTlfLV0rKSIKQEAg LTM2NSwxNyArMzY1LDI0IEBAIG1hdGNoaW5nIGEgc3RyaW5nIGFnYWluc3QgdGhlIGNyZWF0ZWQg cmVnZXhwLiIKIAogKGRlZmluZSAoaXMtb3IgcykgKHN0cmluZz0/IHMgInx8IikpCiAKLShkZWZp bmUgKGlzLWlkIHMpCisoZGVmaW5lIChpcy1pZCBzIHBvcnQpCiAgIChsZXQgKChjYWJhbC1yZXNl cnZlZC13b3JkcwogICAgICAgICAgJygiaWYiICJlbHNlIiAibGlicmFyeSIgImZsYWciICJleGVj dXRhYmxlIiAidGVzdC1zdWl0ZSIKLSAgICAgICAgICAgInNvdXJjZS1yZXBvc2l0b3J5IiAiYmVu Y2htYXJrIikpKQorICAgICAgICAgICAic291cmNlLXJlcG9zaXRvcnkiICJiZW5jaG1hcmsiKSkK KyAgICAgICAgKHNwYWNlcyAocmVhZC13aGlsZSAoY3V0IGNoYXItc2V0LWNvbnRhaW5zPyBjaGFy LXNldDpibGFuayA8PikgcG9ydCkpCisgICAgICAgIChjIChwZWVrLWNoYXIgcG9ydCkpKQorICAg ICh1bnJlYWQtc3RyaW5nIHNwYWNlcyBwb3J0KQogICAgIChhbmQgKGV2ZXJ5IChjdXQgc3RyaW5n LWNpPD4gcyA8PikgY2FiYWwtcmVzZXJ2ZWQtd29yZHMpCi0gICAgICAgICAobm90IChjaGFyPT8g KGxhc3QgKHN0cmluZy0+bGlzdCBzKSkgI1w6KSkpKSkKKyAgICAgICAgIChhbmQgKG5vdCAoY2hh cj0/IChsYXN0IChzdHJpbmctPmxpc3QgcykpICNcOikpCisgICAgICAgICAgICAgIChub3QgKGNo YXI9PyAjXDogYykpKSkpKQogCiAoZGVmaW5lIChpcy10ZXN0IHMgcG9ydCkKICAgKGxldCAoKHRl c3RzLXJ4IChtYWtlLXJlZ2V4cCAib3N8YXJjaHxmbGFnfGltcGwiKSkKKyAgICAgICAgKHNwYWNl cyAocmVhZC13aGlsZSAoY3V0IGNoYXItc2V0LWNvbnRhaW5zPyBjaGFyLXNldDpibGFuayA8Pikg cG9ydCkpCiAgICAgICAgIChjIChwZWVrLWNoYXIgcG9ydCkpKQotICAgIChhbmQgKHJlZ2V4cC1l eGVjIHRlc3RzLXJ4IHMpIChjaGFyPT8gI1woIGMpKSkpCisgICAgKGlmIChhbmQgKHJlZ2V4cC1l eGVjIHRlc3RzLXJ4IHMpIChjaGFyPT8gI1woIGMpKQorICAgICAgICAjdAorICAgICAgICAoYmVn aW4gKHVucmVhZC1zdHJpbmcgc3BhY2VzIHBvcnQpICNmKSkpKQogCiA7OyBMZXhlcnMgZm9yIGlu ZGl2aWR1YWwgdG9rZW5zLgogCkBAIC01MDgsNyArNTE1LDcgQEAgTE9DIGlzIHRoZSBjdXJyZW50 IHBvcnQgbG9jYXRpb24uIgogICAgICAgICAgICgoaXMtZmFsc2UgdykgKGxleC1mYWxzZSBsb2Mp KQogICAgICAgICAgICgoaXMtYW5kIHcpIChsZXgtYW5kIGxvYykpCiAgICAgICAgICAgKChpcy1v ciB3KSAobGV4LW9yIGxvYykpCi0gICAgICAgICAgKChpcy1pZCB3KSAobGV4LWlkIHcgbG9jKSkK KyAgICAgICAgICAoKGlzLWlkIHcgcG9ydCkgKGxleC1pZCB3IGxvYykpCiAgICAgICAgICAgKGVs c2UgKHVucmVhZC1zdHJpbmcgdyBwb3J0KSAjZikpKSkKIAogKGRlZmluZSAobGV4LWxpbmUgcG9y dCBsb2MpCi0tIAoyLjQuMwoK --001a11425b86033def0524811e68 Content-Type: text/x-diff; charset=US-ASCII; name="0005-utils-Add-canonical-newline-port.patch" Content-Disposition: attachment; filename="0005-utils-Add-canonical-newline-port.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_igz726sm4 RnJvbSAxYjI2NDEwZjRhN2E5MjAzODI3NTBiZmZiZjUzODEzOTRhY2FmZGJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGZWRlcmljbyBCZWZmYSA8YmVmZmFAZmJlbmdpbmVlcmluZy5j aD4KRGF0ZTogU2F0LCAxNCBOb3YgMjAxNSAxNTowMDozNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg NS82XSB1dGlsczogQWRkICdjYW5vbmljYWwtbmV3bGluZS1wb3J0Jy4KCiogZ3VpeC91dGlscy5z Y20gKGNhbm9uaWNhbC1uZXdsaW5lLXBvcnQpOiBOZXcgcHJvY2VkdXJlLgoqIHRlc3RzL3V0aWxz LnNjbSAoImNhbm9uaWNhbC1uZXdsaW5lLXBvcnQiKTogTmV3IHRlc3QuCi0tLQogZ3VpeC91dGls cy5zY20gIHwgMzQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogdGVzdHMvdXRp bHMuc2NtIHwgIDYgKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ3VpeC91dGlscy5zY20gYi9ndWl4L3V0aWxzLnNj bQppbmRleCAxNTQyZTg2Li43YjU4OWU2IDEwMDY0NAotLS0gYS9ndWl4L3V0aWxzLnNjbQorKysg Yi9ndWl4L3V0aWxzLnNjbQpAQCAtMjksNyArMjksOCBAQAogICAjOnVzZS1tb2R1bGUgKHNyZmkg c3JmaS0zOSkKICAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktNjApCiAgICM6dXNlLW1vZHVsZSAo cm5ycyBieXRldmVjdG9ycykKLSAgIzp1c2UtbW9kdWxlICgocm5ycyBpbyBwb3J0cykgIzpzZWxl Y3QgKHB1dC1ieXRldmVjdG9yKSkKKyAgIzp1c2UtbW9kdWxlIChybnJzIGlvIHBvcnRzKQorICAj OnVzZS1tb2R1bGUgKChybnJzIGJ5dGV2ZWN0b3JzKSAjOnNlbGVjdCAoYnl0ZXZlY3Rvci11OC1z ZXQhKSkKICAgIzp1c2UtbW9kdWxlICgoZ3VpeCBidWlsZCB1dGlscykKICAgICAgICAgICAgICAg ICAjOnNlbGVjdCAoZHVtcC1wb3J0IHBhY2thZ2UtbmFtZS0+bmFtZSt2ZXJzaW9uKSkKICAgIzp1 c2UtbW9kdWxlICgoZ3VpeCBidWlsZCBzeXNjYWxscykgIzpzZWxlY3QgKGVycm5vIG1rZHRlbXAh KSkKQEAgLTkwLDcgKzkxLDggQEAKICAgICAgICAgICAgIGRlY29tcHJlc3NlZC1wb3J0CiAgICAg ICAgICAgICBjYWxsLXdpdGgtZGVjb21wcmVzc2VkLXBvcnQKICAgICAgICAgICAgIGNvbXByZXNz ZWQtb3V0cHV0LXBvcnQKLSAgICAgICAgICAgIGNhbGwtd2l0aC1jb21wcmVzc2VkLW91dHB1dC1w b3J0KSkKKyAgICAgICAgICAgIGNhbGwtd2l0aC1jb21wcmVzc2VkLW91dHB1dC1wb3J0CisgICAg ICAgICAgICBjYW5vbmljYWwtbmV3bGluZS1wb3J0KSkKIAogDAogOzs7CkBAIC03NDYsNiArNzQ4 LDM0IEBAIGVsZW1lbnRzIGFmdGVyIEUuIgogICAgICAgICAgICAgKGlmIHN1Y2Nlc3M/CiAgICAg ICAgICAgICAgICAgKGxvb3AgKGFic29sdXRlIHRhcmdldCkgKCsgZGVwdGggMSkpCiAgICAgICAg ICAgICAgICAgZmlsZSkpKSkpKQorCisoZGVmaW5lIChjYW5vbmljYWwtbmV3bGluZS1wb3J0IHBv cnQpCisgICJSZXR1cm4gYW4gaW5wdXQgcG9ydCB0aGF0IHdyYXBzIFBPUlQgc3VjaCB0aGF0IGFs bCBuZXdsaW5lcyBjb25zaXN0CisgIG9mIGEgc2luZ2xlIGNhcnJpYWdlIHJldHVybi4iCisgIChk ZWZpbmUgKGdldC1wb3NpdGlvbikKKyAgICAoaWYgKHBvcnQtaGFzLXBvcnQtcG9zaXRpb24/IHBv cnQpIChwb3J0LXBvc2l0aW9uIHBvcnQpICNmKSkKKyAgKGRlZmluZSAoc2V0LXBvc2l0aW9uISBw b3NpdGlvbikKKyAgICAoaWYgKHBvcnQtaGFzLXNldC1wb3J0LXBvc2l0aW9uIT8gcG9ydCkKKyAg ICAgICAgKHNldC1wb3J0LXBvc2l0aW9uISBwb3NpdGlvbiBwb3J0KQorICAgICAgICAjZikpCisg IChkZWZpbmUgKGNsb3NlKSAoY2xvc2UtcG9ydCBwb3J0KSkKKyAgKGRlZmluZSAocmVhZCEgYnYg c3RhcnQgbikKKyAgICAobGV0IGxvb3AgKChjb3VudCAwKQorICAgICAgICAgICAgICAgKGJ5dGUg KGdldC11OCBwb3J0KSkpCisgICAgICAoY29uZCAoKGVvZi1vYmplY3Q/IGJ5dGUpIGNvdW50KQor ICAgICAgICAgICAgKCg9IGNvdW50ICgtIG4gMSkpCisgICAgICAgICAgICAgKGJ5dGV2ZWN0b3It dTgtc2V0ISBidiAoKyBzdGFydCBjb3VudCkgYnl0ZSkKKyAgICAgICAgICAgICBuKQorICAgICAg ICAgICAgOzsgWFhYOiBjb25zdW1lIGFsbCBMRnMgZXZlbiBpZiBub3QgZm9sbG93ZWQgYnkgQ1Iu CisgICAgICAgICAgICAoKGVxdj8gYnl0ZSAoY2hhci0+aW50ZWdlciAjXHJldHVybikpIChsb29w IGNvdW50IChnZXQtdTggcG9ydCkpKQorICAgICAgICAgICAgKGVsc2UKKyAgICAgICAgICAgICAo Ynl0ZXZlY3Rvci11OC1zZXQhIGJ2ICgrIHN0YXJ0IGNvdW50KSBieXRlKQorICAgICAgICAgICAg IChsb29wICgrIGNvdW50IDEpIChnZXQtdTggcG9ydCkpKSkpKQorICAobWFrZS1jdXN0b20tYmlu YXJ5LWlucHV0LXBvcnQgImNhbm9uaWNhbC1uZXdsaW5lLXBvcnQiCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZWFkIQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z2V0LXBvc2l0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQtcG9zaXRp b24hCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZSkpCiAMCiA7OzsKIDs7 OyBTb3VyY2UgbG9jYXRpb24uCmRpZmYgLS1naXQgYS90ZXN0cy91dGlscy5zY20gYi90ZXN0cy91 dGlscy5zY20KaW5kZXggYjY1ZDZkMi4uOWQzNDVlMCAxMDA2NDQKLS0tIGEvdGVzdHMvdXRpbHMu c2NtCisrKyBiL3Rlc3RzL3V0aWxzLnNjbQpAQCAtMzE4LDYgKzMxOCwxMiBAQAogICAgKHN0cmlu Zy1hcHBlbmQgKCVzdG9yZS1wcmVmaXgpCiAgICAgICAgICAgICAgICAgICAiL3F2czJyajJpYTV2 Y2kzd3NkYjdxdnlkcm1hY2lnNHBnLWJhc2gtNC4yLXAyNCIpKSkKIAorKHRlc3QtZXF1YWwgImNh bm9uaWNhbC1uZXdsaW5lLXBvcnQiCisgICJUaGlzIGlzIGEgam91cm5leSIKKyAgKGxldCAoKHBv cnQgKG9wZW4tc3RyaW5nLWlucHV0LXBvcnQKKyAgICAgICAgICAgICAgICJUaGlzIGlzIGEgam91 cm5leVxyXG4iKSkpCisgICAgKGdldC1saW5lIChjYW5vbmljYWwtbmV3bGluZS1wb3J0IHBvcnQp KSkpCisKICh0ZXN0LWVuZCkKIAogKGZhbHNlLWlmLWV4Y2VwdGlvbiAoZGVsZXRlLWZpbGUgdGVt cC1maWxlKSkKLS0gCjIuNC4zCgo= --001a11425b86033def0524811e68 Content-Type: text/x-diff; charset=US-ASCII; name="0006-import-hackage-Handle-CRLF-end-of-line-style.patch" Content-Disposition: attachment; filename="0006-import-hackage-Handle-CRLF-end-of-line-style.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_igz726st5 RnJvbSBjNTdiZThjYWU5YjM2NDJiZWZmMTQ2MmFjZDMyYTBhZWU1NGFkN2M2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGZWRlcmljbyBCZWZmYSA8YmVmZmFAZmJlbmdpbmVlcmluZy5j aD4KRGF0ZTogU2F0LCAxNCBOb3YgMjAxNSAxNToxNTowMCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg Ni82XSBpbXBvcnQ6IGhhY2thZ2U6IEhhbmRsZSBDUkxGIGVuZCBvZiBsaW5lIHN0eWxlLgoKKiBn dWl4L2ltcG9ydC9oYWNrYWdlLnNjbSAoaGFja2FnZS1mZXRjaCwgaGFja2FnZS0+Z3VpeC1wYWNr YWdlKTogRG8gaXQuCi0tLQogZ3VpeC9pbXBvcnQvaGFja2FnZS5zY20gfCA4ICsrKysrLS0tCiAx IGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2d1aXgvaW1wb3J0L2hhY2thZ2Uuc2NtIGIvZ3VpeC9pbXBvcnQvaGFja2FnZS5zY20KaW5k ZXggM2JhYTUxNC4uODcyNWZmYSAxMDA2NDQKLS0tIGEvZ3VpeC9pbXBvcnQvaGFja2FnZS5zY20K KysrIGIvZ3VpeC9pbXBvcnQvaGFja2FnZS5zY20KQEAgLTIyLDcgKzIyLDggQEAKICAgIzp1c2Ut bW9kdWxlIChzcmZpIHNyZmktMTEpCiAgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTEpCiAgICM6 dXNlLW1vZHVsZSAoKGd1aXggZG93bmxvYWQpICM6c2VsZWN0IChkb3dubG9hZC10by1zdG9yZSkp Ci0gICM6dXNlLW1vZHVsZSAoKGd1aXggdXRpbHMpICM6c2VsZWN0IChwYWNrYWdlLW5hbWUtPm5h bWUrdmVyc2lvbikpCisgICM6dXNlLW1vZHVsZSAoKGd1aXggdXRpbHMpICM6c2VsZWN0IChwYWNr YWdlLW5hbWUtPm5hbWUrdmVyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY2Fub25pY2FsLW5ld2xpbmUtcG9ydCkpCiAgICM6dXNlLW1vZHVsZSAoZ3VpeCBpbXBv cnQgdXRpbHMpCiAgICM6dXNlLW1vZHVsZSAoZ3VpeCBpbXBvcnQgY2FiYWwpCiAgICM6dXNlLW1v ZHVsZSAoZ3VpeCBzdG9yZSkKQEAgLTg0LDcgKzg1LDggQEAgdmVyc2lvbi4iCiAgICAgKGNhbGwt d2l0aC10ZW1wb3Jhcnktb3V0cHV0LWZpbGUKICAgICAgKGxhbWJkYSAodGVtcCBwb3J0KQogICAg ICAgIChhbmQgKHVybC1mZXRjaCB1cmwgdGVtcCkKLSAgICAgICAgICAgIChjYWxsLXdpdGgtaW5w dXQtZmlsZSB0ZW1wIHJlYWQtY2FiYWwpKSkpKSkKKyAgICAgICAgICAgIChjYWxsLXdpdGgtaW5w dXQtZmlsZSB0ZW1wCisgICAgICAgICAgICAgIChjb21wb3NlIHJlYWQtY2FiYWwgY2Fub25pY2Fs LW5ld2xpbmUtcG9ydCkpKSkpKSkKIAogKGRlZmluZSBzdHJpbmctPmxpY2Vuc2UKICAgOzsgTGlz dCBvZiB2YWxpZCB2YWx1ZXMgZnJvbQpAQCAtMjE2LDcgKzIxOCw3IEBAIHRvIHRoZSBDYWJhbCBm aWxlIGZvcm1hdCBkZWZpbml0aW9uLiAgVGhlIGRlZmF1bHQgdmFsdWUgYXNzb2NpYXRlZCB3aXRo IHRoZQoga2V5cyBcIm9zXCIsIFwiYXJjaFwiIGFuZCBcImltcGxcIiBpcyBcImxpbnV4XCIsIFwi eDg2XzY0XCIgYW5kIFwiZ2hjXCIKIHJlc3BlY3RpdmVseS4iCiAgIChsZXQgKChjYWJhbC1tZXRh IChpZiBwb3J0Ci0gICAgICAgICAgICAgICAgICAgICAgICAocmVhZC1jYWJhbCBwb3J0KQorICAg ICAgICAgICAgICAgICAgICAgICAgKHJlYWQtY2FiYWwgKGNhbm9uaWNhbC1uZXdsaW5lLXBvcnQg cG9ydCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAoaGFja2FnZS1mZXRjaCBwYWNrYWdlLW5h bWUpKSkpCiAgICAgKGFuZD0+IGNhYmFsLW1ldGEgKGNvbXBvc2UgKGN1dCBoYWNrYWdlLW1vZHVs ZS0+c2V4cCA8PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzppbmNsdWRl LXRlc3QtZGVwZW5kZW5jaWVzPyAKLS0gCjIuNC4zCgo= --001a11425b86033def0524811e68--