From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6691586504498610176 X-Received: by 2002:a17:906:9411:: with SMTP id q17mr53555088ejx.219.1558949319201; Mon, 27 May 2019 02:28:39 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a17:906:4946:: with SMTP id f6ls3731767ejt.4.gmail; Mon, 27 May 2019 02:28:38 -0700 (PDT) X-Google-Smtp-Source: APXvYqwaUvVDfUPhzRNFV+dTrIpvpccDaDT2hJunB8nAhmCSRtWJHyr0EFL8rCKbh3Oyu+eS8MQp X-Received: by 2002:a17:906:1f93:: with SMTP id t19mr46302345ejr.48.1558949318760; Mon, 27 May 2019 02:28:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558949318; cv=none; d=google.com; s=arc-20160816; b=GYl9zIiea2U+3bFECcrcZKKvg/SMLrPHE2mhSdeddcu8ow3sc1u4F64QHh0Pbo2vDu oYXakgyrsHz454eiIMIoV8lpEk8DguOibWTbA3gHhEmY732mbppN2Jti2iQpC/t0tRbT vwoMFEYDELtbgvRGs/a0FtTNlExAYLZkF0N6mdyDZkbuPn6ACrR26JBih14HTo+RHqy1 ZzWqxEI383WcI/bGhfzWmZXOO5XyjBIXIpxR2H/MuASfJu9k9XJzWez7GJ39XV+DGJeU NDvQwEv9Jp+aP7daizkXAzHCHEX2own/yZt0GgryJWFAn/0UWvuhbx8XJ2K3OEL3zlGN qFfw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-language:in-reply-to:mime-version:user-agent:date :message-id:organization:from:references:cc:to:subject; bh=MpSL/NMSTzPE5j5HvC5kyKxfIxLk3jNM/tosOaCioyY=; b=n/esnU/tTvyILUWD0AjSuPaN34f6f0wqhzPkvi/dz7FWiGb0ZxUIUsbR93XFP/1yha 9GruBsbN7wh5u9JY4+vy1EbJaZ2x4pRpE7dEm/P9Kn4w68Xw2Bb8RJK+0O2zwT18rWZ1 GP6fJ2SClZZ8SdXktNXw3ya7YhFmeSyoqZug04yo9G60p1K0o3gFf9Y+fJXhDoVp0JeX 7RWbg5kjGND0C1tl3wMBUZWVW3p7v22dc0J8fyrkiPRcBjjxxvjZcCMEoWVgB+M82M26 qJxdpvCqsx2tH1QxJwXJF0lr0u3WTDWU8bQOFgGAve8b4u1i1uqnEpvtJVVC6AdNJIyk gtiA== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of mosipov@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=mosipov@ilbers.de Return-Path: Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id l30si617591edd.4.2019.05.27.02.28.38 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 27 May 2019 02:28:38 -0700 (PDT) Received-SPF: pass (google.com: domain of mosipov@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of mosipov@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=mosipov@ilbers.de Received: from [192.168.1.29] (195.165-131-109.adsl-dyn.isp.belgacom.be [109.131.165.195] (may be forged)) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8) with ESMTPSA id x4R9SWDK025337 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 27 May 2019 11:28:35 +0200 Subject: Re: [PATCH v4 0/8] pre-processing pipeline and transient package replacement To: Claudius Heine , isar-users@googlegroups.com Cc: Claudius Heine References: <20190523145521.23050-1-claudius.heine.ext@siemens.com> <7965f1ec-bc24-2c41-ad9a-0d9529b7a640@ilbers.de> <1ba7538a-4656-2e2f-fb85-afd661b75262@ilbers.de> <1a8bdc0e-b71f-0682-e2b4-b3c4147d02e0@siemens.com> From: "Maxim Yu. Osipov" Organization: ilbers GmbH Message-ID: <2b59b8df-c753-540e-e1f8-91a85615940d@ilbers.de> Date: Mon, 27 May 2019 11:28:28 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <1a8bdc0e-b71f-0682-e2b4-b3c4147d02e0@siemens.com> Content-Type: multipart/mixed; boundary="------------D5CA7924995F862DA5DF6916" Content-Language: en-US X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-TUID: tbblM7crw29d This is a multi-part message in MIME format. --------------D5CA7924995F862DA5DF6916 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Hi Claudius, On 5/27/19 10:24 AM, Claudius Heine wrote: > Hi Maxim, > > On 27/05/2019 10.10, Maxim Yu. Osipov wrote: >> Hi Claudius, >> >> On 5/27/19 9:56 AM, Claudius Heine wrote: >>> Hi Maxim, >>> >>> On 24/05/2019 14.56, Maxim Yu. Osipov wrote: >>>> Hi Claudius, >>>> >>>> CI passed OK. >>>> >>>> But when I tried to manually test SDK creation procedure (as exactly >>>> described in user_manual) it failed: >>> >>> Have you tested if it does not fail the same way in next when using >>> the base-apt repository? >> >> I've performed the following steps (actually exactly followed current >> SDK creation description in user_manual): >> >> 1) In clean tree with your patches applied, I've enabled cross >> compilation in local.conf and launched SDK creation procedure for >> qemuarm-stretch >> 'build bitbake -c do_populate_sdk >> multiconfig:qemuarm-stretch:isar-image-base' >> >> The build was OK (as expected because such SDK creation build passed >> in CI). >> >> 2) I've mounted needed directories mount_chroot.sh >> sdk-debian-stretch-armhf and chrooted into in. >> >> 3) In SDK chroot commands apt-get update and apt-get install >> libhello-dev:armhf failed (logs are below). >> >> >> I've performed the same procedure w/o your patches - it works as >> described in user_manual. > > Well that does not answer my question wherever or not you have enabled > ISAR_USE_CACHED_BASE_REPO, in both builds. The logs mention > 'file:/base-apt/debian' so I am reasonable sure that you had > `ISAR_USE_CACHED_BASE_REPO ="1"` and I just tried that with a filled > base-apt in current next resulting in the same error. You are right - I've just double checked from the scratch (my current local.conf is attached) - the only thing now is that resolv.conf is missing to sdkchroot, so 'apt-get update' complains (see below). When I copied resolv.conf from my host to sdk chroot 'apt-get update/apt-get install libhello-dev:armhf' in chroot succeeded. It's not a bug as sdk chroot may be distributed to other machines (or PC can be connected later to other network) and resolv.conf has to be substituted accordingly. I'll mention this explicitly in user manual. root@tiberius:/# dpkg -l | grep essen ii crossbuild-essential-armhf 12.3 all Informational list of cross-build-essential packages root@tiberius:/# apt-get update Get:1 file:/isar-apt isar InRelease Ign:1 file:/isar-apt isar InRelease Get:2 file:/isar-apt isar Release [3,569 B] Err:3 http://ftp.debian.org/debian stretch InRelease Temporary failure resolving 'ftp.debian.org' Err:4 http://ftp.debian.org/debian stretch-updates InRelease Temporary failure resolving 'ftp.debian.org' Err:5 http://security.debian.org stretch/updates InRelease Temporary failure resolving 'security.debian.org' Get:2 file:/isar-apt isar Release [3,569 B] Get:6 file:/isar-apt isar Release.gpg Ign:6 file:/isar-apt isar Release.gpg Get:7 file:/isar-apt isar/main armhf Packages [1,666 B] Reading package lists... Done W: Failed to fetch http://ftp.debian.org/debian/dists/stretch/InRelease Temporary failure resolving 'ftp.debian.org' W: Failed to fetch http://ftp.debian.org/debian/dists/stretch-updates/InRelease Temporary failure resolving 'ftp.debian.org' W: Failed to fetch http://security.debian.org/dists/stretch/updates/InRelease Temporary failure resolving 'security.debian.org' W: Some index files failed to download. They have been ignored, or old ones used instead. ls -l /etc/resolv.conf ls: cannot access '/etc/resolv.conf': No such file or directory root@tiberius:/# Regards, Maxim. >> >> Regards, >> Maxim. >> >> >>> regards, >>> Claudius >>> >>>> >>>> I've mounted needed directories with >>>> 'mount_chroot.sh sdk-debian-stretch-armhf >>>> >>>> and chroot'ed into sdk: >>>> >>>> root@tiberius:/#  apt-get install libhello-dev:armhf >>>> Reading package lists... Done >>>> Building dependency tree >>>> Reading state information... Done >>>> The following additional packages will be installed: >>>>    gcc-6-base:armhf libc6:armhf libgcc1:armhf libhello:armhf >>>> Suggested packages: >>>>    glibc-doc:armhf locales:armhf >>>> The following NEW packages will be installed: >>>>    gcc-6-base:armhf libc6:armhf libgcc1:armhf libhello:armhf >>>> libhello-dev:armhf >>>> 0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded. >>>> Need to get 0 B/2,564 kB of archives. >>>> After this operation, 8,987 kB of additional disk space will be used. >>>> Do you want to continue? [Y/n] >>>> Get:1 file:/base-apt/debian stretch/main armhf gcc-6-base armhf >>>> 6.3.0-18+deb9u1 [180 kB] >>>> Err:1 file:/base-apt/debian stretch/main armhf gcc-6-base armhf >>>> 6.3.0-18+deb9u1 >>>>    File not found - >>>> /base-apt/debian/pool/main/g/gcc-6/gcc-6-base_6.3.0-18+deb9u1_armhf.deb >>>> (2: No such file or directory) >>>> Get:2 file:/base-apt/debian stretch/main armhf libgcc1 armhf >>>> 1:6.3.0-18+deb9u1 [38.5 kB] >>>> Err:2 file:/base-apt/debian stretch/main armhf libgcc1 armhf >>>> 1:6.3.0-18+deb9u1 >>>>    File not found - >>>> /base-apt/debian/pool/main/g/gcc-6/libgcc1_6.3.0-18+deb9u1_armhf.deb >>>> (2: No such file or directory) >>>> Get:3 file:/base-apt/debian stretch/main armhf libc6 armhf >>>> 2.24-11+deb9u4 [2,341 kB] >>>> Err:3 file:/base-apt/debian stretch/main armhf libc6 armhf >>>> 2.24-11+deb9u4 >>>>    File not found - >>>> /base-apt/debian/pool/main/g/glibc/libc6_2.24-11+deb9u4_armhf.deb >>>> (2: No such file or directory) >>>> Get:4 file:/isar-apt isar/main armhf libhello armhf 0.1 [2,826 B] >>>> Get:5 file:/isar-apt isar/main armhf libhello-dev armhf 0.1 [2,418 B] >>>> E: Failed to fetch >>>> file:/base-apt/debian/pool/main/g/gcc-6/gcc-6-base_6.3.0-18+deb9u1_armhf.deb >>>>   File not found - >>>> /base-apt/debian/pool/main/g/gcc-6/gcc-6-base_6.3.0-18+deb9u1_armhf.deb >>>> (2: No such file or directory) >>>> E: Failed to fetch >>>> file:/base-apt/debian/pool/main/g/gcc-6/libgcc1_6.3.0-18+deb9u1_armhf.deb >>>>  File not found - >>>> /base-apt/debian/pool/main/g/gcc-6/libgcc1_6.3.0-18+deb9u1_armhf.deb >>>> (2: No such file or directory) >>>> E: Failed to fetch >>>> file:/base-apt/debian/pool/main/g/glibc/libc6_2.24-11+deb9u4_armhf.deb >>>> File not found - >>>> /base-apt/debian/pool/main/g/glibc/libc6_2.24-11+deb9u4_armhf.deb >>>> (2: No such file or directory) >>>> E: Unable to fetch some archives, maybe run apt-get update or try >>>> with --fix-missing? >>>> root@tiberius:/# apt-get update >>>> Get:1 file:/base-apt/debian stretch InRelease >>>> Ign:1 file:/base-apt/debian stretch InRelease >>>> Get:2 file:/isar-apt isar InRelease >>>> Ign:2 file:/isar-apt isar InRelease >>>> Get:3 file:/base-apt/debian stretch Release >>>> Ign:3 file:/base-apt/debian stretch Release >>>> Get:4 file:/isar-apt isar Release [3,584 B] >>>> Get:5 file:/base-apt/debian stretch/main armhf Packages >>>> Ign:5 file:/base-apt/debian stretch/main armhf Packages >>>> Get:6 file:/base-apt/debian stretch/main all Packages >>>> Ign:6 file:/base-apt/debian stretch/main all Packages >>>> Get:7 file:/base-apt/debian stretch/main amd64 Packages >>>> Ign:7 file:/base-apt/debian stretch/main amd64 Packages >>>> Get:8 file:/base-apt/debian stretch/main Translation-en_US >>>> Ign:8 file:/base-apt/debian stretch/main Translation-en_US >>>> Get:9 file:/base-apt/debian stretch/main Translation-en >>>> Ign:9 file:/base-apt/debian stretch/main Translation-en >>>> Get:4 file:/isar-apt isar Release [3,584 B] >>>> Get:5 file:/base-apt/debian stretch/main armhf Packages >>>> Ign:5 file:/base-apt/debian stretch/main armhf Packages >>>> Get:6 file:/base-apt/debian stretch/main all Packages >>>> Ign:6 file:/base-apt/debian stretch/main all Packages >>>> Get:7 file:/base-apt/debian stretch/main amd64 Packages >>>> Ign:7 file:/base-apt/debian stretch/main amd64 Packages >>>> Get:10 file:/isar-apt isar Release.gpg >>>> Ign:10 file:/isar-apt isar Release.gpg >>>> Get:8 file:/base-apt/debian stretch/main Translation-en_US >>>> Ign:8 file:/base-apt/debian stretch/main Translation-en_US >>>> Get:9 file:/base-apt/debian stretch/main Translation-en >>>> Ign:9 file:/base-apt/debian stretch/main Translation-en >>>> Get:5 file:/base-apt/debian stretch/main armhf Packages >>>> Ign:5 file:/base-apt/debian stretch/main armhf Packages >>>> Get:6 file:/base-apt/debian stretch/main all Packages >>>> Ign:6 file:/base-apt/debian stretch/main all Packages >>>> Get:7 file:/base-apt/debian stretch/main amd64 Packages >>>> Ign:7 file:/base-apt/debian stretch/main amd64 Packages >>>> Get:8 file:/base-apt/debian stretch/main Translation-en_US >>>> Ign:8 file:/base-apt/debian stretch/main Translation-en_US >>>> Get:9 file:/base-apt/debian stretch/main Translation-en >>>> Ign:9 file:/base-apt/debian stretch/main Translation-en >>>> Get:5 file:/base-apt/debian stretch/main armhf Packages >>>> Ign:5 file:/base-apt/debian stretch/main armhf Packages >>>> Get:6 file:/base-apt/debian stretch/main all Packages >>>> Ign:6 file:/base-apt/debian stretch/main all Packages >>>> Get:7 file:/base-apt/debian stretch/main amd64 Packages >>>> Ign:7 file:/base-apt/debian stretch/main amd64 Packages >>>> Get:8 file:/base-apt/debian stretch/main Translation-en_US >>>> Ign:8 file:/base-apt/debian stretch/main Translation-en_US >>>> Get:9 file:/base-apt/debian stretch/main Translation-en >>>> Ign:9 file:/base-apt/debian stretch/main Translation-en >>>> Get:5 file:/base-apt/debian stretch/main armhf Packages >>>> Ign:5 file:/base-apt/debian stretch/main armhf Packages >>>> Get:6 file:/base-apt/debian stretch/main all Packages >>>> Ign:6 file:/base-apt/debian stretch/main all Packages >>>> Get:7 file:/base-apt/debian stretch/main amd64 Packages >>>> Ign:7 file:/base-apt/debian stretch/main amd64 Packages >>>> Get:8 file:/base-apt/debian stretch/main Translation-en_US >>>> Ign:8 file:/base-apt/debian stretch/main Translation-en_US >>>> Get:9 file:/base-apt/debian stretch/main Translation-en >>>> Ign:9 file:/base-apt/debian stretch/main Translation-en >>>> Get:5 file:/base-apt/debian stretch/main armhf Packages >>>> Err:5 file:/base-apt/debian stretch/main armhf Packages >>>>    File not found - >>>> /base-apt/debian/dists/stretch/main/binary-armhf/Packages (2: No >>>> such file or directory) >>>> Get:6 file:/base-apt/debian stretch/main all Packages >>>> Ign:6 file:/base-apt/debian stretch/main all Packages >>>> Reading package lists... Done >>>> E: Failed to fetch >>>> file:/base-apt/debian/dists/stretch/main/binary-armhf/Packages  File >>>> not found - >>>> /base-apt/debian/dists/stretch/main/binary-armhf/Packages (2: No >>>> such file or directory) >>>> E: Some index files failed to download. They have been ignored, or >>>> old ones used instead. >>>> >>>> >>>> Regards, >>>> Maxim. >>>> >>>> On 5/23/19 4:55 PM, claudius.heine.ext@siemens.com wrote: >>>>> From: Claudius Heine >>>>> >>>>> Hi, >>>>> >>>>> I decided to heed Hennings advice and order the removal patch >>>>> before the split >>>>> patch. This way the transient package removal patch becomes more >>>>> complete. >>>>> >>>>> regards, >>>>> Claudius >>>>> >>>>> changes from v3: >>>>>   - ordered the transient package removal patch before the split >>>>> >>>>> changes from v2: >>>>>   - added 'copy-package-cache' to the ROOTFS_FEATURES in image.bbclass >>>>> >>>>> changes from v1: >>>>>   - rebased to current next >>>>>   - added some more documentation >>>>> >>>>> Claudius Heine (8): >>>>>    meta: remove transient package support >>>>>    split up isar-bootstrap helper and implement pre-process pipeline >>>>>    meta/classes: add image-locales-extension class >>>>>    meta/classes: add image-account-extension class >>>>>    doc: update description of image customization >>>>>    doc: some fixes >>>>>    meta-isar: local.conf.sample: update root password and isar user >>>>>      creation >>>>>    RECIPE-API-CHANGELOG: update transient package removal + root >>>>> password >>>>> >>>>>   RECIPE-API-CHANGELOG.md                       |  22 ++ >>>>>   doc/user_manual.md                            |  53 +++- >>>>>   meta-isar/conf/local.conf.sample              |  12 +- >>>>>   .../recipes-app/example-raw/files/postinst    |  13 - >>>>>   meta/classes/image-account-extension.bbclass  | 257 >>>>> ++++++++++++++++++ >>>>>   meta/classes/image-locales-extension.bbclass  |  97 +++++++ >>>>>   meta/classes/image.bbclass                    |  30 +- >>>>>   meta/classes/isar-bootstrap-helper.bbclass    | 143 ---------- >>>>>   meta/classes/rootfs.bbclass                   | 176 +++++++++++- >>>>>   .../isar-bootstrap/isar-bootstrap.inc         |   5 + >>>>>   .../buildchroot/buildchroot-host.bb           |  16 +- >>>>>   .../buildchroot/buildchroot-target.bb         |   2 - >>>>>   .../buildchroot/buildchroot.inc               |  26 +- >>>>>   meta/recipes-devtools/sdkchroot/sdkchroot.bb  |  48 ++-- >>>>>   .../isar-cfg-localepurge/files/postinst       |  15 - >>>>>   .../isar-cfg-localepurge.bb                   |  70 ----- >>>>>   .../isar-cfg-rootpw/files/postinst.tmpl       |  19 -- >>>>>   .../isar-cfg-rootpw/isar-cfg-rootpw.bb        |  19 -- >>>>>   18 files changed, 663 insertions(+), 360 deletions(-) >>>>>   create mode 100644 meta/classes/image-account-extension.bbclass >>>>>   create mode 100644 meta/classes/image-locales-extension.bbclass >>>>>   delete mode 100644 meta/classes/isar-bootstrap-helper.bbclass >>>>>   delete mode 100644 >>>>> meta/recipes-support/isar-cfg-localepurge/files/postinst >>>>>   delete mode 100644 >>>>> meta/recipes-support/isar-cfg-localepurge/isar-cfg-localepurge.bb >>>>>   delete mode 100644 >>>>> meta/recipes-support/isar-cfg-rootpw/files/postinst.tmpl >>>>>   delete mode 100644 >>>>> meta/recipes-support/isar-cfg-rootpw/isar-cfg-rootpw.bb >>>>> >>>> >>>> >>> >> >> > -- Maxim Osipov ilbers GmbH Maria-Merian-Str. 8 85521 Ottobrunn Germany +49 (151) 6517 6917 mosipov@ilbers.de http://ilbers.de/ Commercial register Munich, HRB 214197 General Manager: Baurzhan Ismagulov --------------D5CA7924995F862DA5DF6916 Content-Type: text/plain; charset=UTF-8; name="local.conf" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="local.conf" IwojIFRoaXMgZmlsZSBpcyB5b3VyIGxvY2FsIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgaXMg d2hlcmUgYWxsIGxvY2FsIHVzZXIgc2V0dGluZ3MKIyBhcmUgcGxhY2VkLiBUaGUgY29tbWVu dHMgaW4gdGhpcyBmaWxlIGdpdmUgc29tZSBndWlkZSB0byB0aGUgb3B0aW9ucyBhIG5ldyB1 c2VyCiMgdG8gdGhlIHN5c3RlbSBtaWdodCB3YW50IHRvIGNoYW5nZSBidXQgcHJldHR5IG11 Y2ggYW55IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGNhbgojIGJlIHNldCBpbiB0aGlzIGZpbGUu IE1vcmUgYWR2ZW50dXJvdXMgdXNlcnMgY2FuIGxvb2sgYXQgbG9jYWwuY29uZi5leHRlbmRl ZAojIHdoaWNoIGNvbnRhaW5zIG90aGVyIGV4YW1wbGVzIG9mIGNvbmZpZ3VyYXRpb24gd2hp Y2ggY2FuIGJlIHBsYWNlZCBpbiB0aGlzIGZpbGUKIyBidXQgbmV3IHVzZXJzIGxpa2VseSB3 b24ndCBuZWVkIGFueSBvZiB0aGVtIGluaXRpYWxseS4KIwojIExpbmVzIHN0YXJ0aW5nIHdp dGggdGhlICcjJyBjaGFyYWN0ZXIgYXJlIGNvbW1lbnRlZCBvdXQgYW5kIGluIHNvbWUgY2Fz ZXMgdGhlCiMgZGVmYXVsdCB2YWx1ZXMgYXJlIHByb3ZpZGVkIGFzIGNvbW1lbnRzIHRvIHNo b3cgcGVvcGxlIGV4YW1wbGUgc3ludGF4LiBFbmFibGluZwojIHRoZSBvcHRpb24gaXMgYSBx dWVzdGlvbiBvZiByZW1vdmluZyB0aGUgIyBjaGFyYWN0ZXIgYW5kIG1ha2luZyBhbnkgY2hh bmdlIHRvIHRoZQojIHZhcmlhYmxlIGFzIHJlcXVpcmVkLgoKIwojIE1hY2hpbmUgU2VsZWN0 aW9uCiMKIyBZb3UgbmVlZCB0byBzZWxlY3QgYSBzcGVjaWZpYyBtYWNoaW5lIHRvIHRhcmdl dCB0aGUgYnVpbGQgd2l0aC4gVGhlcmUgYXJlIGEgc2VsZWN0aW9uCiMgb2YgZW11bGF0ZWQg bWFjaGluZXMgYXZhaWxhYmxlIHdoaWNoIGNhbiBib290IGFuZCBydW4gaW4gdGhlIFFFTVUg ZW11bGF0b3I6CiMKIyBUaGlzIHNldHMgdGhlIGRlZmF1bHQgbWFjaGluZSB0byBiZSBxZW11 YXJtIGlmIG5vIG90aGVyIG1hY2hpbmUgaXMgc2VsZWN0ZWQ6Ck1BQ0hJTkUgPz89ICJxZW11 YXJtIgoKIwojIElzYXIgQ29uZmlndXJhdGlvbiBTZWxlY3Rpb24KIwojIFlvdSBuZWVkIHRv IHNlbGVjdCBhIHNwZWNpZmljIGRpc3RyaWJ1dGlvbiBjb25maWd1cmF0aW9uIHdoaWNoIHdp bGwgdXNlZCBmb3IgYm90aDoKIyBnZW5lcmF0aW9uIG9mIGJ1aWxkY2hyb290IGVudmlyb25t ZW50IGFuZCB0YXJnZXQgcm9vdCBmaWxlc3lzdGVtLgojCiMgVGhpcyBzZXRzIHRoZSBkZWZh dWx0IGRpc3RyaWJ1dGlvbiBjb25maWd1cmF0aW9uOgpESVNUUk8gPz89ICJkZWJpYW4tc3Ry ZXRjaCIKRElTVFJPX0FSQ0ggPz89ICJhcm1oZiIKCiMKIyBNdWx0aXBsZSBDb25maWd1cmF0 aW9uIFNlbGVjdGlvbgojCiMgSWYgeW91IHdhbnQgdG8gdXNlIG11bHRpcGxlIGNvbmZpZ3Vy YXRpb24gZmlsZXMgZm9yIHRoZSBidWlsZCwgbGlzdCB0aGVtIGluIHRoZQojIGZvbGxvd2lu ZyBvcHRpb24uCiMKIyBUaGlzIHNldHMgdGhlIGRlZmF1bHQgbXVsdGlwbGUgY29uZmlndXJh dGlvbnMgdXNlZDoKQkJNVUxUSUNPTkZJRyA9ICIgXAogICAgcWVtdWFybS1zdHJldGNoIFwK ICAgIHFlbXVhcm0tYnVzdGVyIFwKICAgIHFlbXVhcm02NC1zdHJldGNoIFwKICAgIHFlbXVh cm02NC1idXN0ZXIgXAogICAgcWVtdWkzODYtc3RyZXRjaCBcCiAgICBxZW11aTM4Ni1idXN0 ZXIgXAogICAgcWVtdWFtZDY0LXN0cmV0Y2ggXAogICAgYmFuYW5hcGktc3RyZXRjaCBcCiAg ICBkZTAtbmFuby1zb2Mtc3RyZXRjaCBcCiAgICBoaWtleS1zdHJldGNoIFwKICAgIHFlbXVh bWQ2NC1idXN0ZXIgXAogICAgcWVtdWFtZDY0LWJ1c3Rlci10Z3ogXAogICAgbmFuZC11Ymkt ZGVtby1idXN0ZXIgXAogICAgcnBpLXN0cmV0Y2ggXAoiCgojCiMgV2hlcmUgdG8gcGxhY2Ug ZG93bmxvYWRzCiMKIyBEdXJpbmcgYSBmaXJzdCBidWlsZCB0aGUgc3lzdGVtIHdpbGwgZG93 bmxvYWQgbWFueSBkaWZmZXJlbnQgc291cmNlIGNvZGUgdGFyYmFsbHMKIyBmcm9tIHZhcmlv dXMgdXBzdHJlYW0gcHJvamVjdHMuIFRoaXMgY2FuIHRha2UgYSB3aGlsZSwgcGFydGljdWxh cmx5IGlmIHlvdXIgbmV0d29yawojIGNvbm5lY3Rpb24gaXMgc2xvdy4gVGhlc2UgYXJlIGFs bCBzdG9yZWQgaW4gRExfRElSLiBXaGVuIHdpcGluZyBhbmQgcmVidWlsZGluZyB5b3UKIyBj YW4gcHJlc2VydmUgdGhpcyBkaXJlY3RvcnkgdG8gc3BlZWQgdXAgdGhpcyBwYXJ0IG9mIHN1 YnNlcXVlbnQgYnVpbGRzLiBUaGlzIGRpcmVjdG9yeQojIGlzIHNhZmUgdG8gc2hhcmUgYmV0 d2VlbiBtdWx0aXBsZSBidWlsZHMgb24gdGhlIHNhbWUgbWFjaGluZSB0b28uCiMKIyBUaGUg ZGVmYXVsdCBpcyBhIGRvd25sb2FkcyBkaXJlY3RvcnkgdW5kZXIgVE9QRElSIHdoaWNoIGlz IHRoZSBidWlsZCBkaXJlY3RvcnkuCiMKI0RMX0RJUiA/PSAiJHtUT1BESVJ9L2Rvd25sb2Fk cyIKCiMKIyBXaGVyZSB0byBwbGFjZSBzaGFyZWQtc3RhdGUgZmlsZXMKIwojIEJpdEJha2Ug aGFzIHRoZSBjYXBhYmlsaXR5IHRvIGFjY2VsZXJhdGUgYnVpbGRzIGJhc2VkIG9uIHByZXZp b3VzbHkgYnVpbHQgb3V0cHV0LgojIFRoaXMgaXMgZG9uZSB1c2luZyAic2hhcmVkIHN0YXRl IiBmaWxlcyB3aGljaCBjYW4gYmUgdGhvdWdodCBvZiBhcyBjYWNoZSBvYmplY3RzCiMgYW5k IHRoaXMgb3B0aW9uIGRldGVybWluZXMgd2hlcmUgdGhvc2UgZmlsZXMgYXJlIHBsYWNlZC4K IwojIFlvdSBjYW4gd2lwZSBvdXQgVE1QRElSIGxlYXZpbmcgdGhpcyBkaXJlY3RvcnkgaW50 YWN0IGFuZCB0aGUgYnVpbGQgd291bGQgcmVnZW5lcmF0ZQojIGZyb20gdGhlc2UgZmlsZXMg aWYgbm8gY2hhbmdlcyB3ZXJlIG1hZGUgdG8gdGhlIGNvbmZpZ3VyYXRpb24uIElmIGNoYW5n ZXMgd2VyZSBtYWRlCiMgdG8gdGhlIGNvbmZpZ3VyYXRpb24sIG9ubHkgc2hhcmVkIHN0YXRl IGZpbGVzIHdoZXJlIHRoZSBzdGF0ZSB3YXMgc3RpbGwgdmFsaWQgd291bGQKIyBiZSB1c2Vk IChkb25lIHVzaW5nIGNoZWNrc3VtcykuCiMKIyBUaGUgZGVmYXVsdCBpcyBhIHNzdGF0ZS1j YWNoZSBkaXJlY3RvcnkgdW5kZXIgVE9QRElSLgojCiNTU1RBVEVfRElSID89ICIke1RPUERJ Un0vc3N0YXRlLWNhY2hlIgoKIwojIFdoZXJlIHRvIHBsYWNlIHRoZSBidWlsZCBvdXRwdXQK IwojIFRoaXMgb3B0aW9uIHNwZWNpZmllcyB3aGVyZSB0aGUgYnVsayBvZiB0aGUgYnVpbGRp bmcgd29yayBzaG91bGQgYmUgZG9uZSBhbmQKIyB3aGVyZSBCaXRCYWtlIHNob3VsZCBwbGFj ZSBpdHMgdGVtcG9yYXJ5IGZpbGVzIGFuZCBvdXRwdXQuIEtlZXAgaW4gbWluZCB0aGF0CiMg dGhpcyBpbmNsdWRlcyB0aGUgZXh0cmFjdGlvbiBhbmQgY29tcGlsYXRpb24gb2YgbWFueSBh cHBsaWNhdGlvbnMgYW5kIHRoZSB0b29sY2hhaW4KIyB3aGljaCBjYW4gdXNlIEdpZ2FieXRl cyBvZiBoYXJkIGRpc2sgc3BhY2UuCiMKIyBUaGUgZGVmYXVsdCBpcyBhIHRtcCBkaXJlY3Rv cnkgdW5kZXIgVE9QRElSLgojCiNUTVBESVIgPSAiJHtUT1BESVJ9L3RtcCIKCiMKIyBJbnRl cmFjdGl2ZSBzaGVsbCBjb25maWd1cmF0aW9uCiMKIyBVbmRlciBjZXJ0YWluIGNpcmN1bXN0 YW5jZXMgdGhlIHN5c3RlbSBtYXkgbmVlZCBpbnB1dCBmcm9tIHlvdSBhbmQgdG8gZG8gdGhp cyBpdAojIGNhbiBsYXVuY2ggYW4gaW50ZXJhY3RpdmUgc2hlbGwuIEl0IG5lZWRzIHRvIGRv IHRoaXMgc2luY2UgdGhlIGJ1aWxkIGlzCiMgbXVsdGl0aHJlYWRlZCBhbmQgbmVlZHMgdG8g YmUgYWJsZSB0byBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgbW9yZSB0aGFuIG9uZSBwYXJhbGxl bAojIHByb2Nlc3MgbWF5IHJlcXVpcmUgdGhlIHVzZXIncyBhdHRlbnRpb24uIFRoZSBkZWZh dWx0IGlzIGl0ZXJhdGUgb3ZlciB0aGUgYXZhaWxhYmxlCiMgdGVybWluYWwgdHlwZXMgdG8g ZmluZCBvbmUgdGhhdCB3b3Jrcy4KIwojIEV4YW1wbGVzIG9mIHRoZSBvY2Nhc2lvbnMgdGhp cyBtYXkgaGFwcGVuIGFyZSB3aGVuIHJlc29sdmluZyBwYXRjaGVzIHdoaWNoIGNhbm5vdAoj IGJlIGFwcGxpZWQsIHRvIHVzZSB0aGUgZGV2c2hlbGwgb3IgdGhlIGtlcm5lbCBtZW51Y29u ZmlnCiMKIyBTdXBwb3J0ZWQgdmFsdWVzIGFyZSBhdXRvLCBnbm9tZSwgeGZjZSwgcnh2dCwg c2NyZWVuLCBrb25zb2xlIChLREUgMy54IG9ubHkpLCBub25lCiMgTm90ZTogY3VycmVudGx5 LCBLb25zb2xlIHN1cHBvcnQgb25seSB3b3JrcyBmb3IgS0RFIDMueCBkdWUgdG8gdGhlIHdh eQojIG5ld2VyIEtvbnNvbGUgdmVyc2lvbnMgYmVoYXZlCiNPRV9URVJNSU5BTCA9ICJhdXRv IgojIEJ5IGRlZmF1bHQgZGlzYWJsZSBpbnRlcmFjdGl2ZSBwYXRjaCByZXNvbHV0aW9uICh0 YXNrcyB3aWxsIGp1c3QgZmFpbCBpbnN0ZWFkKToKUEFUQ0hSRVNPTFZFID0gIm5vb3AiCgoj CiMgRGlzayBTcGFjZSBNb25pdG9yaW5nIGR1cmluZyB0aGUgYnVpbGQKIwojIE1vbml0b3Ig dGhlIGRpc2sgc3BhY2UgZHVyaW5nIHRoZSBidWlsZC4gSWYgdGhlcmUgaXMgbGVzcyB0aGF0 IDFHQiBvZiBzcGFjZSBvciBsZXNzCiMgdGhhbiAxMDBLIGlub2RlcyBpbiBhbnkga2V5IGJ1 aWxkIGxvY2F0aW9uIChUTVBESVIsIERMX0RJUiwgU1NUQVRFX0RJUiksIGdyYWNlZnVsbHkK IyBzaHV0ZG93biB0aGUgYnVpbGQuIElmIHRoZXJlIGlzIGxlc3MgdGhhdCAxMDBNQiBvciAx SyBpbm9kZXMsIHBlcmZvcm0gYSBoYXJkIGFib3J0CiMgb2YgdGhlIGJ1aWxkLiBUaGUgcmVh c29uIGZvciB0aGlzIGlzIHRoYXQgcnVubmluZyBjb21wbGV0ZWx5IG91dCBvZiBzcGFjZSBj YW4gY29ycnVwdAojIGZpbGVzIGFuZCBkYW1hZ2VzIHRoZSBidWlsZCBpbiB3YXlzIHdoaWNo IG1heSBub3QgYmUgZWFzaWx5IHJlY292ZXJhYmxlLgojIEl0J3MgbmVjZXNhcnkgdG8gbW9u aXRvciAvdG1wLCBpZiB0aGVyZSBpcyBubyBzcGFjZSBsZWZ0IHRoZSBidWlsZCB3aWxsIGZh aWwKIyB3aXRoIHZlcnkgZXhvdGljIGVycm9ycy4KQkJfRElTS01PTl9ESVJTID0gIlwKICAg IFNUT1BUQVNLUywke1RNUERJUn0sMUcsMTAwSyBcCiAgICBTVE9QVEFTS1MsJHtETF9ESVJ9 LDFHLDEwMEsgXAogICAgU1RPUFRBU0tTLCR7U1NUQVRFX0RJUn0sMUcsMTAwSyBcCiAgICBT VE9QVEFTS1MsL3RtcCwxMDBNLDEwMEsgXAogICAgQUJPUlQsJHtUTVBESVJ9LDEwME0sMUsg XAogICAgQUJPUlQsJHtETF9ESVJ9LDEwME0sMUsgXAogICAgQUJPUlQsJHtTU1RBVEVfRElS fSwxMDBNLDFLIFwKICAgIEFCT1JULC90bXAsMTBNLDFLIgoKIwojIFNoYXJlZC1zdGF0ZSBm aWxlcyBmcm9tIG90aGVyIGxvY2F0aW9ucwojCiMgQXMgbWVudGlvbmVkIGFib3ZlLCBzaGFy ZWQgc3RhdGUgZmlsZXMgYXJlIHByZWJ1aWx0IGNhY2hlIGRhdGEgb2JqZWN0cyB3aGljaCBj YW4KIyB1c2VkIHRvIGFjY2VsZXJhdGUgYnVpbGQgdGltZS4gVGhpcyB2YXJpYWJsZSBjYW4g YmUgdXNlZCB0byBjb25maWd1cmUgdGhlIHN5c3RlbQojIHRvIHNlYXJjaCBvdGhlciBtaXJy b3IgbG9jYXRpb25zIGZvciB0aGVzZSBvYmplY3RzIGJlZm9yZSBpdCBidWlsZHMgdGhlIGRh dGEgaXRzZWxmLgojCiMgVGhpcyBjYW4gYmUgYSBmaWxlc3lzdGVtIGRpcmVjdG9yeSwgb3Ig YSByZW1vdGUgdXJsIHN1Y2ggYXMgaHR0cCBvciBmdHAuIFRoZXNlCiMgd291bGQgY29udGFp biB0aGUgc3N0YXRlLWNhY2hlIHJlc3VsdHMgZnJvbSBwcmV2aW91cyBidWlsZHMgKHBvc3Np Ymx5IGZyb20gb3RoZXIKIyBtYWNoaW5lcykuIFRoaXMgdmFyaWFibGUgd29ya3MgbGlrZSBm ZXRjaGVyIE1JUlJPUlMvUFJFTUlSUk9SUyBhbmQgcG9pbnRzIHRvIHRoZQojIGNhY2hlIGxv Y2F0aW9ucyB0byBjaGVjayBmb3IgdGhlIHNoYXJlZCBvYmplY3RzLgojIE5PVEU6IGlmIHRo ZSBtaXJyb3IgdXNlcyB0aGUgc2FtZSBzdHJ1Y3R1cmUgYXMgU1NUQVRFX0RJUiwgeW91IG5l ZWQgdG8gYWRkIFBBVEgKIyBhdCB0aGUgZW5kIGFzIHNob3duIGluIHRoZSBleGFtcGxlcyBi ZWxvdy4gVGhpcyB3aWxsIGJlIHN1YnN0aXR1dGVkIHdpdGggdGhlCiMgY29ycmVjdCBwYXRo IHdpdGhpbiB0aGUgZGlyZWN0b3J5IHN0cnVjdHVyZS4KI1NTVEFURV9NSVJST1JTID89ICJc CiNmaWxlOi8vLiogaHR0cDovL3NvbWVzZXJ2ZXIudGxkL3NoYXJlL3NzdGF0ZS9QQVRIO2Rv d25sb2FkZmlsZW5hbWU9UEFUSCBcbiBcCiNmaWxlOi8vLiogZmlsZTovLy9zb21lL2xvY2Fs L2Rpci9zc3RhdGUvUEFUSCIKCiMgQ09ORl9WRVJTSU9OIGlzIGluY3JlYXNlZCBlYWNoIHRp bWUgYnVpbGQvY29uZi8gY2hhbmdlcyBpbmNvbXBhdGlibHkgYW5kIGlzIHVzZWQgdG8KIyB0 cmFjayB0aGUgdmVyc2lvbiBvZiB0aGlzIGZpbGUgd2hlbiBpdCB3YXMgZ2VuZXJhdGVkLiBU aGlzIGNhbiBzYWZlbHkgYmUgaWdub3JlZCBpZgojIHRoaXMgZG9lc24ndCBtZWFuIGFueXRo aW5nIHRvIHlvdS4KQ09ORl9WRVJTSU9OID0gIjEiCgojCiMgVGhlIGRlZmF1bHQgbGlzdCBv ZiBleHRyYSBwYWNrYWdlcyB0byBiZSBpbnN0YWxsZWQuCklNQUdFX0lOU1RBTEwgPSAiaGVs bG8taXNhciBleGFtcGxlLXJhdyBleGFtcGxlLW1vZHVsZS0ke0tFUk5FTF9OQU1FfSBlbmFi bGUtZnNjayIKCiMKIyBFbmFibGUgY3Jvc3MtY29tcGlsYXRpb24gc3VwcG9ydAojIE5PVEU6 IHRoaXMgd29ya3Mgb24gYnVpbGQgaG9zdCA+PSBzdHJldGNoIGZvciBhcm1oZiwgYXJtNjQg YW5kIGFtZDY0IHRhcmdldHMgZm9yIG5vdy4KSVNBUl9DUk9TU19DT01QSUxFID89ICIxIgoK IwojIFVuY29tbWVudCB0aGlzIHRvIGVuYWJsZSB1c2Ugb2YgY2FjaGVkIGJhc2UgcmVwb3Np dG9yeQojSVNBUl9VU0VfQ0FDSEVEX0JBU0VfUkVQTyA/PSAiMSIKCiMgU2V0IHJvb3QgcGFz c3dvcmQgdG8gJ3Jvb3QnCiMgUGFzc3dvcmQgd2FzIGVuY3J5cHRlZCB1c2luZyBmb2xsb3dp bmcgY29tbWFuZDoKIyAgIG1rcGFzc3dkIC1tIHNoYTUxMmNyeXB0IC1SIDEwMDAwCiMgbWtw YXNzd2QgaXMgcGFydCBvZiB0aGUgJ3dob2lzJyBwYWNrYWdlIG9mIERlYmlhbgpVU0VSUyAr PSAicm9vdCIKVVNFUl9yb290W3Bhc3N3b3JkXSA/Pz0gIiQ2JHJvdW5kcz0xMDAwMCRSWGVX cm5GbWtZJER0dVMvT21zQVMyY0NFRG8wQkY1cVFzaXpJcnE2alBnWG53djNQSHFSRUplS2Qx c1hkSFgvYXlRdHVRV1ZESGUwS0lPMC9zVkg4ZHZRbTFLdGhGMGQvIgoKR1JPVVBTICs9ICJp c2FyIgpHUk9VUF9pc2FyW2ZsYWdzXSA9ICJzeXN0ZW0iCgpVU0VSUyArPSAiaXNhciIKVVNF Ul9pc2FyW2dpZF0gPSAiaXNhciIKVVNFUl9pc2FyW2hvbWVdID0gIi92YXIvbGliL2lzYXIi ClVTRVJfaXNhcltjb21tZW50XSA9ICJNeSBpc2FyIHVzZXIiClVTRVJfaXNhcltmbGFnc10g PSAic3lzdGVtIGNyZWF0ZS1ob21lIgo= --------------D5CA7924995F862DA5DF6916--