Re: [Unattended-Dev] Unattended: build from source
Stanislav German-Evtushenko <[email protected]> Thu, 13 Sep 2012 14:03:52 +0400
| Newsgroups | gmane.comp.windows.unattended.devel |
|---|---|
| Message-ID | <CAPeRZrWB91LD=Vw_ev6GrJ9aH4dLXHSdH=m2zGa1c29jQOUHYA@mail.gmail.com> |
--20cf303dd33eb65fb504c9926cca
Content-Type: multipart/alternative; boundary=20cf303dd33eb65fb004c9926cc8
--20cf303dd33eb65fb004c9926cc8
Content-Type: text/plain; charset=UTF-8
Hello Juanjo, hello everybody,
I have some ideas to make unattended architecture simpler so that
unattended could be easier improved in future. Idea is to separate
completely boot disk and installation scripts. That would allow to use
installation scripts on any Linux distribution just like an application.
I've made some tests and and found such kind of separation possible.
What has been done. I make some dirty modifications to scripts in order to
run it from Ubuntu LiveCD and it works! I was not clear job and was done
only to see if was possible.
Configuration:
Installer: nt5x-install
Server name: ntinstall.company.lan mounts with user "guest"
Network path: \\ntinstall.company.lan\install
Boot CD: Ubuntu 12.04 Desktop (LiveCD)
Steps to reproduce (patch files are attached):
*********************************************************************
# Set variables
Z_PATH=//ntinstall.company.lan/install
Z_PATH=${Z_PATH//\//\\}
export Z_PATH
export Z_USER=guest
export Z_PASS=guest
# Create dirs
mkdir /z
mkdir /c
# Create some symlinks
ln -s /usr/bin/lspci /sbin/lspci
ln -s /dev/sda /dev/dsk
ln -s /dev/sda1 /dev/dsk1
# Mount network directory
mount.cifs "$Z_PATH" /z
# Download boot sector binaries and necessary scripts
wget -O /usr/lib/freedos-mbr.bin
http://unattended.svn.sourceforge.net/viewvc/unattended/trunk/linuxboot/misc/freedos-mbr.bin
wget -O /usr/lib/unatt-functions.sh
http://unattended.svn.sourceforge.net/viewvc/unattended/trunk/linuxboot/misc/unatt-functions.sh
wget -O /usr/bin/nt5x-install
http://unattended.svn.sourceforge.net/viewvc/unattended/trunk/linuxboot/misc/nt5x-install;
chmod +x /usr/bin/nt5x-install
mkdir /usr/lib/ntldrbin
wget -O /usr/lib/ntldrbin/ntldr_boot_code_install
http://unattended.svn.sourceforge.net/viewvc/unattended/trunk/linuxboot/misc/ntldrbin/ntldr_boot_code_install
wget -O /usr/lib/ntldrbin/ntldr_boot_code_sektor0
http://unattended.svn.sourceforge.net/viewvc/unattended/trunk/linuxboot/misc/ntldrbin/ntldr_boot_code_sektor0
wget -O /usr/lib/ntldrbin/ntldr_boot_code_sektor12
http://unattended.svn.sourceforge.net/viewvc/unattended/trunk/linuxboot/misc/ntldrbin/ntldr_boot_code_sektor12
# Modify install.pl and master
cp /z/dosbin/install.pl /tmp
patch -i /tmp/install.pl.patch /tmp/install.pl
wget -O /tmp/master
http://unattended.svn.sourceforge.net/viewvc/unattended/trunk/linuxboot/misc/master
patch -i /tmp/master.patch /tmp/master; chmod +x /tmp/master
# Run master
chmod +x /tmp/master
/tmp/master
*********************************************************************
What about creation a new branch for this job?
Best Regards,
Stanislav
--20cf303dd33eb65fb004c9926cc8
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Hello Juanjo, hello everybody,<br><br>I have some ideas to make unattended =
architecture simpler so that unattended could be easier improved in future.=
Idea is to separate completely boot disk and installation scripts. That wo=
uld allow to use installation scripts on any Linux distribution just like a=
n application.<br>
<br>I've made some tests and and found such kind of separation possible=
.<br>What has been done. I make some dirty modifications to scripts in orde=
r to run it from Ubuntu LiveCD and it works! I was not clear job and was do=
ne only to see if was possible.<br>
<br>Configuration:<br>Installer: nt5x-install<br>Server name: ntinstall.com=
pany.lan mounts with user "guest"<br>Network path: \\ntinstall.co=
mpany.lan\install<br>Boot CD: Ubuntu 12.04 Desktop (LiveCD)<br><br>Steps to=
reproduce (patch files are attached):<br>
*********************************************************************<br># =
Set variables<br>Z_PATH=3D//ntinstall.company.lan/install<br>Z_PATH=3D${Z_P=
ATH//\//\\}<br>export Z_PATH<br>export Z_USER=3Dguest<br>export Z_PASS=3Dgu=
est<br>
<br># Create dirs<br>mkdir /z<br>mkdir /c<br><br># Create some symlinks<br>=
ln -s /usr/bin/lspci /sbin/lspci<br>ln -s /dev/sda /dev/dsk<br>ln -s /dev/s=
da1 /dev/dsk1<br><br># Mount network directory<br>mount.cifs "$Z_PATH&=
quot; /z<br>
<br># Download boot sector binaries and necessary scripts<br>wget -O /usr/l=
ib/freedos-mbr.bin <a href=3D"http://unattended.svn.sourceforge.net/viewvc/=
unattended/trunk/linuxboot/misc/freedos-mbr.bin">http://unattended.svn.sour=
ceforge.net/viewvc/unattended/trunk/linuxboot/misc/freedos-mbr.bin</a><br>
wget -O /usr/lib/unatt-functions.sh <a href=3D"http://unattended.svn.source=
forge.net/viewvc/unattended/trunk/linuxboot/misc/unatt-functions.sh">http:/=
/unattended.svn.sourceforge.net/viewvc/unattended/trunk/linuxboot/misc/unat=
t-functions.sh</a><br>
wget -O /usr/bin/nt5x-install <a href=3D"http://unattended.svn.sourceforge.=
net/viewvc/unattended/trunk/linuxboot/misc/nt5x-install">http://unattended.=
svn.sourceforge.net/viewvc/unattended/trunk/linuxboot/misc/nt5x-install</a>=
; chmod +x /usr/bin/nt5x-install<br>
mkdir /usr/lib/ntldrbin<br>wget -O /usr/lib/ntldrbin/ntldr_boot_code_instal=
l <a href=3D"http://unattended.svn.sourceforge.net/viewvc/unattended/trunk/=
linuxboot/misc/ntldrbin/ntldr_boot_code_install">http://unattended.svn.sour=
ceforge.net/viewvc/unattended/trunk/linuxboot/misc/ntldrbin/ntldr_boot_code=
_install</a><br>
wget -O /usr/lib/ntldrbin/ntldr_boot_code_sektor0 <a href=3D"http://unatten=
ded.svn.sourceforge.net/viewvc/unattended/trunk/linuxboot/misc/ntldrbin/ntl=
dr_boot_code_sektor0">http://unattended.svn.sourceforge.net/viewvc/unattend=
ed/trunk/linuxboot/misc/ntldrbin/ntldr_boot_code_sektor0</a><br>
wget -O /usr/lib/ntldrbin/ntldr_boot_code_sektor12 <a href=3D"http://unatte=
nded.svn.sourceforge.net/viewvc/unattended/trunk/linuxboot/misc/ntldrbin/nt=
ldr_boot_code_sektor12">http://unattended.svn.sourceforge.net/viewvc/unatte=
nded/trunk/linuxboot/misc/ntldrbin/ntldr_boot_code_sektor12</a><br>
<br># Modify <a href=3D"http://install.pl">install.pl</a> and master<br>cp =
/z/dosbin/<a href=3D"http://install.pl">install.pl</a> /tmp<br>patch -i /tm=
p/install.pl.patch /tmp/<a href=3D"http://install.pl">install.pl</a><br>wge=
t -O /tmp/master <a href=3D"http://unattended.svn.sourceforge.net/viewvc/un=
attended/trunk/linuxboot/misc/master">http://unattended.svn.sourceforge.net=
/viewvc/unattended/trunk/linuxboot/misc/master</a><br>
patch -i /tmp/master.patch /tmp/master; chmod +x /tmp/master<br><br># Run m=
aster<br>chmod +x /tmp/master<br>/tmp/master<br>***************************=
******************************************<br><br>What about creation a new=
branch for this job?<br>
<br>Best Regards,<br>Stanislav<br>
--20cf303dd33eb65fb004c9926cc8--
--20cf303dd33eb65fb504c9926cca
Content-Type: application/octet-stream; name="master.patch"
Content-Disposition: attachment; filename="master.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_h71oow120
LS0tIC90bXAvbWFzdGVyLm9yaWcJMjAxMi0wOS0xMiAxNTo0MDowNy41OTY1MzU5OTUgKzAwMDAK
KysrIC90bXAvbWFzdGVyCTIwMTItMDktMTIgMTU6NDU6MzcuOTYwNTM1NzE1ICswMDAwCkBAIC02
LDM3MiArNiw3IEBACiAgICAgZXhlYyBiYXNoID4mMgogfQogCi0jIERpc2FibGUgY29uc29sZSBi
bGFua2luZy4KLWVjaG8gLWUgIlxFWzk7MF0iCi0KLSMgU2V0IFZFUlNJT04gZW52aXJvbm1lbnQg
dmFyaWFibGUuCi1leHBvcnQgVkVSU0lPTj0kKDwgL2V0Yy92ZXJzaW9uKQotCi1pZiBbIC16ICIk
Q01ETElORSIgXSA7IHRoZW4gCi0gICAgcHJvY19jbWRsaW5lPS9wcm9jL2NtZGxpbmUKLSAgICBb
IC1yICIkcHJvY19jbWRsaW5lIiBdIFwKLSAgICAgICAgfHwgZGllICJVbmFibGUgdG8gcmVhZCAk
cHJvY19jbWRsaW5lIgotICAgIENNRExJTkU9JCg8ICRwcm9jX2NtZGxpbmUpCi0gICAgdW5zZXQg
cHJvY19jbWRsaW5lCi1maQotCi0jIEdldCBhIGNvbW1hbmQtbGluZSBwYXJhbWV0ZXIgb2YgdGhl
IGZvcm0gImZvbz1iYXIiIG9yIGp1c3QgImZvbyIsCi0jIGZvciBhcmd1bWVudCBmb28uCi1nZXRf
Y21kbGluZV9wYXJhbSAoKSB7Ci0gICAgbG9jYWwgd2hhdD0iJDEiCi0KLSAgICAjIE9yZGVyIG1h
dHRlcnMgaGVyZSwgYmVjYXVzZSBjb21tYW5kIGxpbmUgc2hvdWxkIG92ZXJyaWRlIERIQ1AKLSAg
ICAjIG9wdGlvbi4KLSAgICBmb3IgdG9rZW4gaW4gJENNRExJTkUgJHVuYXR0ZW5kIDsgZG8KLSAg
ICAgICAgbG9jYWwgdmFyPSR7dG9rZW4lJT0qfQotICAgICAgICBpZiBbICIkdmFyIiA9PSAiJHdo
YXQiIF0gOyB0aGVuCi0gICAgICAgICAgICBlY2hvICIkdG9rZW4iCi0gICAgICAgICAgICByZXR1
cm4KLSAgICAgICAgZmkKLSAgICBkb25lCi19Ci0KLSMgU29ydCBtb2R1bGVzIGNvbnNpc3RlbnQg
d2l0aCBvcmRlciBpbiAvZXRjL21vZHVsZS1vcmRlci50eHQuCi1tb2R1bGVfb3JkZXI9JChzZWQg
LWUgcy9cIy5cKi8vIC9ldGMvbW9kdWxlLW9yZGVyLnR4dCkKLXNvcnRfbW9kdWxlcyAoKSB7Ci0g
ICAgbG9jYWwgbW9kdWxlcz0iICQqICIKLSAgICBsb2NhbCByZXQ9IiIKLQotICAgIGZvciBtb2R1
bGUgaW4gJG1vZHVsZV9vcmRlciA7IGRvCi0gICAgICAgIG5ld19tb2R1bGVzPSR7bW9kdWxlcy8v
ICRtb2R1bGUgLyB9Ci0gICAgICAgIFsgIiRuZXdfbW9kdWxlcyIgPT0gIiRtb2R1bGVzIiBdIFwK
LSAgICAgICAgICAgICYmIGNvbnRpbnVlCi0gICAgICAgIHJldD0iJHJldCAkbW9kdWxlIgotICAg
ICAgICBtb2R1bGVzPSIkbmV3X21vZHVsZXMiCi0gICAgZG9uZQotCi0gICAgcmV0PSIkcmV0ICRt
b2R1bGVzIgotCi0gICAgZWNobyAkcmV0Ci19Ci0KLWxvYWRfbW9kdWxlcyAoKSB7Ci0gICAgbG9j
YWwgbW9kdWxlcz0iJDEiCi0KLSAgICBmb3IgbW9kdWxlIGluICRtb2R1bGVzIDsgZG8KLSAgICAg
ICAgaWYgbHNtb2QgfCBncmVwIC1xICJeJG1vZHVsZVtbOnNwYWNlOl1dIiA7IHRoZW4KLSAgICAg
ICAgICAgIGVjaG8gIihtb2R1bGUgJG1vZHVsZSBhbHJlYWR5IGxvYWRlZCkiCi0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIGVjaG8gIkxvYWRpbmcgJG1vZHVsZS4uLiIKLSAgICAgICAgICAgIG1v
ZHByb2JlICRtb2R1bGUKLSAgICAgICAgICAgIGVjaG8gIi4uLmRvbmUgbG9hZGluZyAkbW9kdWxl
IgotICAgICAgICBmaQotICAgIGRvbmUKLX0KLQotIyBTZWUgaWYgL3ogaXMgYWxyZWFkeSBtb3Vu
dGVkLgotY2hlY2tfeiAoKSB7Ci0gICAgY2F0IC96L2Rvc2Jpbi9pbnN0YWxsLnBsID4gL2Rldi9u
dWxsIDI+JjEKLX0KLQotZWNobyAiKioqIE9LLCBoZXJlIHdlIGdvLiIKLWVjaG8KLWVjaG8gIioq
KiAoSWYgeW91IGJvb3RlZCBmcm9tIENELVJPTSwgeW91IG1heSBlamVjdCBpdCBub3cuKSIKLWVj
aG8KLQotIyBWYXJpb3VzIHRoaW5ncyBicmVhayBmb3IgbWUgb24gbGFwdG9wIGhhcmR3YXJlIGlm
IEkgb21pdCB0aGlzIGRlbGF5LgotIyBGb3IgaW5zdGFuY2UsIGNhcmRtZ3Igb25seSBtb25pdG9y
cyBvbmUgc29ja2V0IChvZiB0d28pLgotIyBPciBhIDNjNTc1IGRvZXMgbm90IGFwcGVhciBpbiAv
c3lzL2J1cy9wY2kuCi0jIEkgaGF2ZSBubyBpZGVhIHdoeSwgZXhhY3RseS4gIEZJWE1FPwotc2xl
ZXAgMgotCi1lY2hvICIqKiogRmlyc3QsIGxldCdzIGxvYWQgVVNCIHN1cHBvcnQgaW4gY2FzZSB5
b3UgaGF2ZSBhIFVTQiBrZXlib2FyZC4uLiIKLQotIyBQQ0kgY2xhc3NlcyAweDBjMDNubiBhcmUg
VVNCIGNvbnRyb2xsZXJzLgotbG9hZF9tb2R1bGVzICIkKGZpbmQtbW9kdWxlcy1wY2kgMHgwYyAw
eDAzKSIKLQotIyBGSVhNRTogV2Ugc2hvdWxkIG9ubHkgbG9hZCB0aGlzIGlmIHdlIGFjdHVhbGx5
IGhhdmUgYSBVU0Iga2V5Ym9hcmQKLSMgYXR0YWNoZWQuCi1sb2FkX21vZHVsZXMgdXNiaGlkCi0K
LSMgSElEIG1vZHVsZSB0YWtlcyBhIHdoaWxlIHRvIGluaXRpYWxpemUuICBEb2ghCi1zbGVlcCAy
Ci0KLSMgQ29uZmlndXJlIHRoZSBrZXlib2FyZCwgaWYgcmVxdWVzdGVkLgota2JkPSQoZ2V0X2Nt
ZGxpbmVfcGFyYW0ga2JkKQotWyAtbiAiJGtiZCIgXSBcCi0gICAgJiYgbG9hZGtleXMgJHtrYmQj
Kj19Ci0KLWNoZWNrX3NoZWxsPSQoZ2V0X2NtZGxpbmVfcGFyYW0gc2hlbGwpCi0KLVsgLW4gIiRj
aGVja19zaGVsbCIgXSBcCi0gICAgJiYgZGllICInc2hlbGwnIGtlcm5lbCBwYXJhbWV0ZXIgZm91
bmQiCi0KLWVjaG8gIioqKiBOZXh0LCB3ZSdsbCBsb29rIGZvciBQQ0kgRXRoZXJuZXQgaGFyZHdh
cmUuLi4iCi0KLSMgUENJIGNsYXNzZXMgMHgwMjAwbm4gYXJlIEV0aGVybmV0IGNvbnRyb2xsZXJz
LgotbmV0d29ya19tb2R1bGVzPSIkKGZpbmQtbW9kdWxlcy1wY2kgMHgwMiAweDAwKSIKLSMgRm9y
IHNvbWUgcmVhc29uLCBuVmlkaWEgQ0s4UyBvbi1ib2FyZCBFdGhlcm5ldCBoYXMgY2xhc3MgMHgw
NjgweHguCi1uZXR3b3JrX21vZHVsZXM9IiRuZXR3b3JrX21vZHVsZXMgJChmaW5kLW1vZHVsZXMt
cGNpIDB4MDYgMHg4MCkiCi1sb2FkX21vZHVsZXMgIiQoc29ydF9tb2R1bGVzICRuZXR3b3JrX21v
ZHVsZXMpIgotCi1lY2hvICIqKiogTm93IHRoYXQgd2UgaGF2ZSBsb2FkZWQgdGhlIG1vZHVsZXMg
KG1heWJlKSwgbGV0J3MgdHJ5IERIQ1AuLi4iCi11bnNldCBnb3RfbGVhc2UKLWZvciBpZmFjZSBp
biBldGgwIGV0aDEgZXRoMiA7IGRvCi0gICAgaWYgISBpZmNvbmZpZyAkaWZhY2UgPi9kZXYvdXJh
bmRvbSAyPiYxIDsgdGhlbgotICAgICAgICBlY2hvICIqKiogJGlmYWNlIG5vdCBmb3VuZCIKLSAg
ICAgICAgY29udGludWUKLSAgICBmaQotCi0gICAgIyBUcnkgdGhpcyBpbnRlcmZhY2Ugb25jZSwg
YW5kIHJldHJ5IGZvciAxMCBzZWNvbmRzLiAgV29ya3MgYXJvdW5kCi0gICAgIyBwcm9ibGVtcyB3
ZSBoYXZlIGhhZCB3aXRoIGRyaXZlcnMgdGFraW5nIGEgd2hpbGUgdG8gaW5pdGlhbGl6ZS4KLSAg
ICBlY2hvICIqKiogVHJ5aW5nIERIQ1Agb24gJGlmYWNlLi4uIgotICAgIHN0YXJ0PSRTRUNPTkRT
Ci0gICAgd2hpbGUgOiA7IGRvCi0gICAgICAgIGlmIHVkaGNwYyAtLWludGVyZmFjZT0kaWZhY2Ug
XAotICAgICAgICAgICAgLS1ub3cgLS1zY3JpcHQ9L2V0Yy91ZGhjcGMtc2NyaXB0IC0tcmV0cmll
cz01IDsgdGhlbgotICAgICAgICAgICAgZWNobyAiKioqIERIQ1Agb24gJGlmYWNlIHdvcmtlZCEi
Ci0gICAgICAgICAgICBnb3RfbGVhc2U9MQotICAgICAgICAgICAgIyBCcmVhayB0byB0b3AgbGV2
ZWwuCi0gICAgICAgICAgICBicmVhayAyCi0gICAgICAgIGZpCi0gICAgICAgIGlmIFsgJFNFQ09O
RFMgLWdlICQoKCRzdGFydCArIDYwKSkgXSA7IHRoZW4KLSAgICAgICAgICAgIGVjaG8gIioqKiBE
SENQIG9uICRpZmFjZSBmYWlsZWQuICBHaXZpbmcgdXAuIgotICAgICAgICAgICAgYnJlYWsKLSAg
ICAgICAgZmkKLSAgICAgICAgZWNobyAiKioqIFJldHJ5aW5nIERIQ1Agb24gJGlmYWNlLi4uIgot
ICAgICAgICBzbGVlcCAxCi0gICAgZG9uZQotZG9uZQotCi1bIC16ICIkZ290X2xlYXNlIiBdIFwK
LSAgICAmJiBkaWUgIkZhaWxlZCB0byBvYnRhaW4gREhDUCBsZWFzZS4iCi0KLSMgSGF2aW5nIG9i
dGFpbmVkIGEgbGVhc2UsIHJlYWQgaXRzIGluZm8uICBJbiBwYXJ0aWN1bGFyLCBoZXJlIHdlIHNl
dAotIyAidW5hdHRlbmQiIHRvIHRoZSB2YWx1ZSBmcm9tIGxvY2FsIERIQ1Agb3B0aW9uIDIzMy4K
LVsgLWYgL3RtcC9kaGNwLm91dCBdIFwKLSAgICAmJiAuIC90bXAvZGhjcC5vdXQKLQotZWNobyAi
KioqIE5vdyB3ZSBuZWVkIHRvIG1hcCB0aGUgL3ogZHJpdmUuIgotCi13aGlsZSA6IDsgZG8KLSAg
ICBaX1VTRVI9Z3Vlc3QKLSAgICBaX1BBU1M9Z3Vlc3QKLSAgICBaX1BBVEg9Ly9udGluc3RhbGwv
aW5zdGFsbAotCi0gICAgdmFsPSQoZ2V0X2NtZGxpbmVfcGFyYW0gel91c2VyKQotICAgIFsgLW4g
IiR2YWwiIF0gJiYgWl9VU0VSPSR7dmFsIyo9fQotICAgIHZhbD0kKGdldF9jbWRsaW5lX3BhcmFt
IHpfcGFzcykKLSAgICBbIC1uICIkdmFsIiBdICYmIFpfUEFTUz0ke3ZhbCMqPX0KLSAgICB2YWw9
JChnZXRfY21kbGluZV9wYXJhbSB6X3BhdGgpCi0gICAgWyAtbiAiJHZhbCIgXSAmJiBaX1BBVEg9
JHt2YWwjKj19Ci0KLSAgICAjIFJlYWQgb25lIGNoYXJhY3RlciB3aXRoIGEgNS1zZWNvbmQgdGlt
ZW91dAotICAgIHJlYWQgLW4gMSAtdCA1IC1wIFwKLSAgICAgICAgIk92ZXJyaWRlIGJvb3RkaXNr
IGRlZmF1bHRzIChpZiB1bnN1cmUsIHNheSB5ZXMpIFtZL04vWF0/ICIgXAotICAgICAgICBpbnB1
dAotICAgIGVjaG8KLQotICAgIFtbICIkaW5wdXQiID09IFt4WF0gXV0gXAotICAgICAgICAmJiBk
aWUgIkV4aXRpbmcuIgotCi0gICAgaWYgW1sgIiRpbnB1dCIgPT0gW3lZXSBdXSA7IHRoZW4KLSAg
ICAgICAgIyBBbGxvdyBlZGl0aW5nLCBhbmQgZG8gbm90IHRyZWF0IGJhY2tzbGFzaCBzcGVjaWFs
bHkuCi0gICAgICAgIHJlYWQgLWUgLXIgLXAgIkVudGVyIGxvY2F0aW9uIG9mIGluc3RhbGwgc2hh
cmUgKGRlZmF1bHQgJFpfUEFUSCk6ICIgXAotICAgICAgICAgICAgaW5wdXQKLSAgICAgICAgWyAt
biAiJGlucHV0IiBdICYmIFpfUEFUSD0iJGlucHV0IgotICAgICAgICByZWFkIC1lIC1yIFwKLSAg
ICAgICAgICAgIC1wICJFbnRlciB1c2VybmFtZSBmb3IgbWFwcGluZyBpbnN0YWxsIHNoYXJlIChk
ZWZhdWx0ICRaX1VTRVIpOiAiIFwKLSAgICAgICAgICAgIGlucHV0Ci0gICAgICAgIFsgLW4gIiRp
bnB1dCIgXSAmJiBaX1VTRVI9IiRpbnB1dCIKLSAgICAgICAgd2hpbGUgOiA7IGRvCi0gICAgICAg
ICAgICByZWFkIC1lIC1yIC1zIC1wICJFbnRlciBwYXNzd29yZCBmb3IgbWFwcGluZyBpbnN0YWxs
IHNoYXJlOiAiIFwKLSAgICAgICAgICAgICAgICBpbnB1dAotICAgICAgICAgICAgZWNobwotICAg
ICAgICAgICAgcmVhZCAtZSAtciAtcyAtcCAiQ29uZmlybSBwYXNzd29yZDogIiBaX1BBU1MKLSAg
ICAgICAgICAgIGVjaG8KLSAgICAgICAgICAgIFsgIiRpbnB1dCIgPT0gIiRaX1BBU1MiIF0gXAot
ICAgICAgICAgICAgICAgICYmIGJyZWFrCi0gICAgICAgICAgICBlY2hvICJQYXNzd29yZHMgZG8g
bm90IG1hdGNoLiAgUGxlYXNlIHRyeSBhZ2Fpbi4iCi0gICAgICAgIGRvbmUKLSAgICBmaQotCi0g
ICAgIyBSZXBsYWNlIGFsbCBzbGFzaGVzIHdpdGggYmFja3NsYXNoZXMsIHNpbmNlIFpfUEFUSCB3
aWxsCi0gICAgIyB1bHRpbWF0ZWx5IGFwcGVhciBpbiBwZXJtY3JlZHMuYmF0IHdoaWNoIGlzIHJl
YWQgYnkgV2luZG93cy4KLSAgICBaX1BBVEg9JHtaX1BBVEgvL1wvL1xcfQotCi0gICAgaWYgW1sg
IiRaX1VTRVIiID09ICovKiAmJiAiJFpfVVNFUiIgIT0gKlxcKiBdXSA7IHRoZW4KLSAgICAgICAg
IyBaX1VTRVIgY29udGFpbnMgYSBzbGFzaCBidXQgbm90IGEgYmFja3NsYXNoLCBzbyB3ZSBhc3N1
bWUgaXQKLSAgICAgICAgIyBpcyBpbiAiU2FtYmEgZm9ybWF0IiAodXNlcm5hbWUvRE9NQUlOKS4g
IENvbnZlcnQgaXQgdG8KLSAgICAgICAgIyBET01BSU5cdXNlcm5hbWUuCi0KLSAgICAgICAgIyBT
cGxpdCBaX1VTRVIgYXQgKGZpbmFsKSBzbGFzaCwgcmV2ZXJzZSwgYW5kIHJlYXNzZW1ibGUuCi0g
ICAgICAgIFpfVVNFUj0iJHtaX1VTRVIjIyovfVxcJHtaX1VTRVIlLyp9IgotICAgIGZpCi0KLSAg
ICB1c2VybmFtZT0ke1pfVVNFUiMqXFx9ICAgICAgICAgICAgICAjIGV2ZXJ5dGhpbmcgYWZ0ZXIg
Zmlyc3QgYmFja3NsYXNoCi0gICAgWyAiJHVzZXJuYW1lIiA9PSAiJFpfVVNFUiIgXSBcCi0gICAg
ICAgIHx8IGRvbWFpbj0ke1pfVVNFUiUlXFwqfSAgICAgICAgIyBldmVyeXRpbmcgYmVmb3JlIGZp
cnN0IGJhY2tzbGFzaAotCi0gICAgIyBEZWZhdWx0IG1vdW50IG9wdGlvbnM6IHVzZXJuYW1lLCBy
ZWFkLW9ubHkgbW91bnQKLSAgICAjIFRPRE86IFRpY2tldCAjMTIgbm9zZXJ2ZXJpbm8gaGFzIHBy
b2JsZW1zIHdpdGggaGFyZCBsaW5rcwotICAgIG1vdW50X29wdHM9InVzZXJuYW1lPSR1c2VybmFt
ZSxybyxub2Nhc2Usbm9zZXJ2ZXJpbm8iCi0KLSAgICAjIEFwcGVuZCBkb21haW4gKHdvcmtncm91
cCksIGlmIGFueS4KLSAgICBbIC1uICIkZG9tYWluIiBdIFwKLSAgICAgICAgJiYgbW91bnRfb3B0
cz0iJG1vdW50X29wdHMsd29ya2dyb3VwPSRkb21haW4iCi0KLSAgICAjIEFkZCBleHRyYSBtb3Vu
dCBvcHRpb25zLCBpZiBhbnkuCi0gICAgel9vcHRzPSQoZ2V0X2NtZGxpbmVfcGFyYW0gel9vcHRz
KQotICAgIHpfb3B0cz0ke3pfb3B0cyMqPX0KLSAgICBbIC1uICIkel9vcHRzIiBdIFwKLSAgICAg
ICAgJiYgbW91bnRfb3B0cz0iJG1vdW50X29wdHMsJHpfb3B0cyIKLQotICAgIGV4cG9ydCBQQVNT
V0Q9IiRaX1BBU1MiCi0KLSAgICBpZiBjaGVja196IDsgdGhlbgotICAgICAgICBlY2hvICIqKiog
L3ogYWxyZWFkeSBtb3VudGVkOyBza2lwcGluZyBtb3VudCIKLSAgICAgICAgYnJlYWsKLSAgICBm
aQotCi0gICAgIyBJbiBjYXNlIHNvbWV0aGluZyBicm9rZW4gaXMgYWxyZWFkeSBtb3VudGVkIG9u
IC96Ci0gICAgdW1vdW50IC96ID4vZGV2L251bGwgMj4mMQotCi0gICAgZWNobyAiKioqIFRyeWlu
ZyBtb3VudC5jaWZzICRaX1BBVEggL3ogLW8gJG1vdW50X29wdHMiCi0JI3RvIHVzZSByZWFsIG5v
Y2FzZSB3ZSBoYXZlIHRvIGRpc2FibGUgdW5peCBleHRlbnNpb25zIGJlZm9yZQotCSNmaXJzdCBt
b2Rwcm9iZSBjaWZzCi0gICAgICAgIG1vZHByb2JlIGNpZnMKLSAgICAgICAgZWNobyAwID4gL3By
b2MvZnMvY2lmcy9MaW51eEV4dGVuc2lvbnNFbmFibGVkCi0KLSAgICBpZiBtb3VudC5jaWZzICIk
Wl9QQVRIIiAveiAtbyAiJG1vdW50X29wdHMiIDsgdGhlbgotICAgICAgICBjaGVja196IFwKLSAg
ICAgICAgICAgICYmIGJyZWFrCi0gICAgICAgIGVjaG8gIioqKiBtb3VudC5jaWZzIFwic3VjY2Vl
ZGVkXCIsIGJ1dCAvei9kb3NiaW4vaW5zdGFsbC5wbCBub3QgZm91bmQiCi0gICAgICAgIHVtb3Vu
dCAvegotICAgIGVsc2UKLSAgICAgICAgZWNobyAiKioqIG1vdW50LmNpZnMgZmFpbGVkLiIKLSAg
ICBmaQotCi0gICAgdW5zZXQgUEFTU1dECi0KLSAgICBlY2hvICIqKiogRmFpbGVkIHRvIG1vdW50
IC96LiAgUmV0cnlpbmcuLi4iCi1kb25lCi0KLXVuc2V0IFBBU1NXRAotCi1bIC1kIC96L2xpbnV4
YXV4IF0gXAotICAgIHx8IGRpZSAiSW52YWxpZCBpbnN0YWxsIHNoYXJlOiAvei9saW51eGF1eCBk
aXJlY3Rvcnkgbm90IGZvdW5kLiIKLQotZWNobyAiKioqIE5vdywgbGV0J3MgdHJ5IGFnYWluIHRv
IGNvbmZpZ3VyZSBrZXliYXJkLi4uIgotIyBDb25maWd1cmUgdGhlIGtleWJvYXJkIGFnYWluLCBp
biBjYXNlIGl0IHdhcyBwcm92aWRlZCB2aWEgREhDUC4KLWtiZD0kKGdldF9jbWRsaW5lX3BhcmFt
IGtiZCkKLVsgLW4gIiRrYmQiIF0gXAotICAgICYmIGxvYWRrZXlzICR7a2JkIyo9fQotCi1lY2hv
ICIqKiogRXhjZWxsZW50LiAgTm93LCBsZXQncyBzZWUgYWJvdXQgbWFzcyBzdG9yYWdlIGNvbnRy
b2xsZXJzLi4uIgotCi0jIFBDSSBjbGFzc2VzIDB4MDFubm5uIGFyZSBtYXNzIHN0b3JhZ2UgY29u
dHJvbGxlcnMuCi1zdG9yYWdlX21vZHVsZXM9IiQoZmluZC1tb2R1bGVzLXBjaSAweDAxKSIKLQot
IyBQQ0kgY2xhc3NlcyAweDBlMDBubiBhcmUgSTJPIGludGVsbGlnZW50IGNvbnRyb2xsZXJzLCB3
aGljaCBtaWdodAotIyBoYXZlIHN0b3JhZ2UgZGV2aWNlcyBhdHRhY2hlZCB0byB0aGVtLgotc3Rv
cmFnZV9tb2R1bGVzPSIkc3RvcmFnZV9tb2R1bGVzICQoZmluZC1tb2R1bGVzLXBjaSAweDBlIDB4
MDApIgotCi0jIERlbGwgUG93ZXJFZGdlIDI0MDAgUEVSQzIvU2kgdXNlcyBQQ0kgY2xhc3MgMHgw
NTA4bm4gKCJtZW1vcnkKLSMgY29udHJvbGxlciIpIGZvciBubyBhcHBhcmVudCByZWFzb24uCi1z
dG9yYWdlX21vZHVsZXM9IiRzdG9yYWdlX21vZHVsZXMgJChmaW5kLW1vZHVsZXMtcGNpIDB4MDUg
MHgwOCkiCi0KLVsgLXogIiRzdG9yYWdlX21vZHVsZXMiIF0gXAotICAgICYmIGRpZSAiTm8gbWFz
cyBzdG9yYWdlIGhhcmR3YXJlIGZvdW5kIChtaXNzaW5nIGRyaXZlcnM/KSIKLQotbG9hZF9tb2R1
bGVzICIkKHNvcnRfbW9kdWxlcyAkc3RvcmFnZV9tb2R1bGVzKSIKLQotIyBJZiB3ZSBsb2FkZWQg
Z2VuZXJpYyBTQ1NJIHN1cHBvcnQsIGFsc28gbG9hZCBTQ1NJIGRpc2sgc3VwcG9ydC4KLWxzbW9k
IHwgZ3JlcCAtcSAiXnNjc2lfbW9kW1s6c3BhY2U6XV0iIFwKLSAgICAmJiBsb2FkX21vZHVsZXMg
c2RfbW9kCi0KLSMgTG9hZCBFREQgbW9kdWxlLCB3aGljaCB3ZSB1c2UgdG8gbG9jYXRlIHRoZSBi
b290IGRpc2sgYW5kIHRvCi0jIGRldGVybWluZSB0aGUgbGVnYWN5IGRpc2sgZ2VvbWV0cnkuCi1l
Y2hvICIqKiogTm93IHdlIHdpbGwgbG9hZCB0aGUgRUREIG1vZHVsZS4uLiIKLWxvYWRfbW9kdWxl
cyBlZGQKLQotc2xlZXAgMiAgICAgICAgICMgcGFyYW5vaWEKLQotZWNobyAiKioqIC4uLmFuZCBs
b2NhdGUgdGhlIGJvb3QgZGV2aWNlIgotaGRhPWBmaW5kLWJvb3QtZGV2aWNlYCBcCi0gICAgfHwg
ZGllICIqKiogZmluZC1ib290LWRldmljZSBmYWlsZWQiCi0KLW1ha2UtYmxrZGV2LW5vZGVzICIk
aGRhIiBcCi0gICAgfHwgZGllICIqKiogVW5hYmxlIHRvIG1ha2UtYmxrZGV2LW5vZGVzICRoZGEu
ICBTbyBjbG9zZSEgIE9oLCB3ZWxsLiIKLQotdW5zZXQgcAotCi0jIERldmljZXMgbGlrZSAvZGV2
L3NkYSBoYXZlIHBhcnRpdGlvbiBuYW1lcyBsaWtlIC9kZXYvc2RhMSwgd2hpbGUKLSMgZGV2aWNl
cyBsaWtlIC9kZXYvcmQvYzBkMCBoYXZlIHBhcnRpdGlvbiBuYW1lcyBsaWtlIC9kZXYvcmQvYzBk
MHAxLgotIyBUaGF0IGlzLCB3ZSBtdXN0IGFwcGVuZCAicFgiIGlmIHRoZSBsYXN0IGNoYXJhY3Rl
ciBpcyBhIGRpZ2l0LiAgU2VlCi0jIGRpc2tfbmFtZSgpIGluIGxpbnV4L2ZzL3BhcnRpdGlvbnMv
Y2hlY2suYy4KLVtbICRoZGEgPSAqWzAtOV0gXV0gXAotICAgICYmIHA9cAotCi0jIERPU0VNVSBz
a2lwcyBleGFjdGx5IGVpZ2h0IGNoYXJhY3RlcnMgaW50byB0aGUgZGV2aWNlIG5hbWUgdG8gcmVh
ZAotIyB0aGUgcGFydGl0aW9uIG51bWJlci4gIFllcywgcmVhbGx5LiAgU28gd2UgaGF2ZSB0byB1
c2UgYSBuYW1lIGxpa2UKLSMgIi9kZXYvZHNrIiwgbm90ICIvZGV2L2Rpc2siLgotbG4gLXNmICRo
ZGEgL2Rldi9kc2sKLWZvciBwYXJ0IGluIDEgMiAzIDQgNSA2IDcgOCA5IDsgZG8KLSAgICBsbiAt
c2YgJGhkYSRwJHBhcnQgL2Rldi9kc2skcGFydAotZG9uZQotCi1lZGRfZGlyPS9zeXMvZmlybXdh
cmUvZWRkL2ludDEzX2RldjgwCi1lY2hvICIqKiogLi4uYW5kIGxvb2sgZm9yIGxlZ2FjeSBCSU9T
IGRpc2sgZ2VvbWV0cnkgaW4gJGVkZF9kaXIiCi0KLSMgSGVyZSB3ZSBzaGFtZWxlc3NseSBhc3N1
bWUgdGhhdCB3ZSBoYXZlIGZvdW5kIHRoZSBib290IGRldmljZSAoQklPUwotIyBkaXNrIDgwaCks
IGFuZCB0aGF0IHRoaXMgaXMgdGhlIGRldmljZSB0aGUgdXNlciB3YW50ZWQuICBOZWVkIHRvIGRv
Ci0jIGJldHRlciBzb21lZGF5LiAgRklYTUUuCi1pZiBbIC1kICIkZWRkX2RpciIgXSA7IHRoZW4K
LSAgICBkZWNsYXJlIC1pIExFR0FDWV9CSU9TX0hFQUQgTEVHQUNZX0JJT1NfU0VDVAotICAgIGhl
YWRzX2ZpbGU9IiRlZGRfZGlyL2xlZ2FjeV9tYXhfaGVhZCI7Ci0gICAgaWYgWyAtZSAiJGhlYWRz
X2ZpbGUiIF0gOyB0aGVuIAotICAgICAgICBleHBvcnQgTEVHQUNZX0JJT1NfSEVBRD0iJCg8ICRo
ZWFkc19maWxlKSIKLSAgICAgICAgIyBIZWFkcyB2YWx1ZSBpcyB1c2VsZXNzIHVudGlsIGluY3Jl
bWVudGVkCi0gICAgICAgIGxldCBMRUdBQ1lfQklPU19IRUFEKysKLSAgICBmaQotICAgIHNlY3Rv
cnNfZmlsZT0iJGVkZF9kaXIvbGVnYWN5X3NlY3RvcnNfcGVyX3RyYWNrIjsKLSAgICBbIC1lICIk
c2VjdG9yc19maWxlIiBdIFwKLSAgICAgICAgJiYgZXhwb3J0IExFR0FDWV9CSU9TX1NFQ1Q9IiQo
PCAkc2VjdG9yc19maWxlKSIKLWVsc2UKLSAgICBlY2hvICJEaXJlY3Rvcnkgbm90IGZvdW5kLiIK
LWZpCi0KLWlmIFsgLW4gIiRMRUdBQ1lfQklPU19IRUFEIiBdICYmIFsgLW4gIiRMRUdBQ1lfQklP
U19TRUNUIiBdIDsgdGhlbgotICAgIGVjaG8gIioqKiBMZWdhY3kgQklPUyBzYXlzICRMRUdBQ1lf
QklPU19IRUFEIGhlYWRzIGFuZCAkTEVHQUNZX0JJT1NfU0VDVCBzZWN0b3JzIgotZWxzZQotICAg
IGVjaG8gIioqKiBGb3VuZCBubyBsZWdhY3kgQklPUyBkYXRhLiAgUHJvYmFibHkgbm8gYmlnIGRl
YWwuICBDb250aW51aW5nLiIKLWZpCi0KLWlmIFsgLXcgIi9wcm9jL2lkZS8kaGRhL3NldHRpbmdz
IiBdIDsgdGhlbgotICAgIGVjaG8gLW4gIioqKiBNYWtpbmcgSURFIGRyaXZlciBpbnRlcnJ1cHRp
YmxlIGZvciAkaGRhLi4uIgotICAgIGVjaG8gdW5tYXNraXJxOjEgPj4gIi9wcm9jL2lkZS8kaGRh
L3NldHRpbmdzIgotICAgIGVjaG8gImRvbmUuIgotZmkKLQotIyBQQ0kgY2xhc3MgMHgwNDAzIGFy
ZSBBdWRpbyBjb250cm9sbGVycy4KLWVjaG8gIioqKiBMb2FkIEF1ZGlvIENvbnRyb2xsZXIgc3Vw
cG9ydCBmb3IgQUxTQSBIREFVRElPIHN1cHBvcnQuLi4iCi1sb2FkX21vZHVsZXMgIiQoZmluZC1t
b2R1bGVzLXBjaSAweDA0IDB4MDMpIgotCi0jIHJlcXVpcmVkIGJ5IGxzdXNiCi1lY2hvICIqKiog
TW91bnQgL3Byb2MvYnVzL3VzYi4uLiIKLVsgLWYgL3Byb2MvYnVzL3VzYi9kZXZpY2VzIF0gfHwg
bW91bnQgLXQgdXNiZnMgbm9uZSAvcHJvYy9idXMvdXNiCi0KLWVjaG8gIioqKiBCeSBKb3ZlLCBJ
IHRoaW5rIHdlJ3ZlIGdvdCBpdCEiCi0KLSMgaW5zdGFsbC5wbCByZWxpZXMgb24gdGhlc2UgZW52
aXJvbm1lbnQgdmFyaWFibGVzCi0jIChzZWUgYWxzbyBMRUdBQ1lfQklPU19IRUFEIGFuZCBMRUdB
Q1lfQklPU19TRUNUIGFib3ZlKQotZXhwb3J0IFpfUEFUSCBaX1VTRVIgWl9QQVNTCi0KLSMgVXNl
ZCBhcyBzdGFnaW5nIGFyZWEgYnkgaW5zdGFsbC5wbAotWyAtZCAvYyBdIHx8IG1rZGlyIC9jCi0K
LXBlcmwgLUkvei9saWIgL3ovZG9zYmluL2luc3RhbGwucGwgXAorcGVybCAtSS96L2xpYiAvdG1w
L2luc3RhbGwucGwgXAogICAgIHx8IGRpZSAiaW5zdGFsbC5wbCBleGl0ZWQgbm9uLXplcm8iCiAK
ICMgRGV0ZXJtaW5lIHBhcnRpdGlvbiBudW1iZXIgdG8gdXNlLgpAQCAtNDQwLDYgKzc1LDYgQEAK
IAogZWNobyAiYWxsIGRvbmUhIgogCi1yZWJvb3QgLWYKKyNyZWJvb3QgLWYKIAotZXhlYyBiYXNo
CisjZXhlYyBiYXNoCg==
--20cf303dd33eb65fb504c9926cca
Content-Type: application/octet-stream; name="install.pl.patch"
Content-Disposition: attachment; filename="install.pl.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_h71op0911
LS0tIC96L2Rvc2Jpbi9pbnN0YWxsLnBsCTIwMTEtMDYtMDYgMTE6NDk6MTEuMDAwMDAwMDAwICsw
MDAwCisrKyAvdG1wL2luc3RhbGwucGwJMjAxMi0wOS0xMSAxNDoyMzoxMi4wNDYxNTk4NTIgKzAw
MDAKQEAgLTQ3Myw3ICs0NzMsNyBAQAogDQogICAgICAgICAjIEdldCBzaXplIG9mIGRpc2sgaW4g
c2VjdG9ycy4NCiAgICAgICAgIG15ICRzeXNfaGRhID0gJGhkYTsNCi0gICAgICAgICRzeXNfaGRh
ID1+IHMvXC8vIS9nOw0KKyAgICAgICAgJHN5c19oZGEgPX4gcy8uKlwvLy9nOw0KICAgICAgICAg
bXkgJHNpemVfZmlsZSA9ICIvc3lzL2Jsb2NrLyRzeXNfaGRhL3NpemUiOw0KICAgICAgICAgb3Bl
biBTSVpFLCAkc2l6ZV9maWxlDQogICAgICAgICAgICAgb3IgZGllICJVbmFibGUgdG8gb3BlbiAk
c2l6ZV9maWxlIGZvciByZWFkaW5nOiAkXkUiOw0KQEAgLTE2OTEsMjkgKzE2OTEsMjkgQEAKICAg
ICAgICAgICAgIDogJGNtZCk7DQogfQ0KIA0KLWlmICgkaXNfbGludXgpIHsNCi0gICAgIyBPbiBM
aW51eCwgd2UgKHJlLSljcmVhdGUgdGhlIGRldmljZSBub2RlcyBhZnRlciBtb2RpZnlpbmcgdGhl
DQotICAgICMgcGFydGl0aW9uIHRhYmxlLg0KLSAgICBteSAkaGRhID0gcmVhZGxpbmsgKCcvZGV2
L2RzaycpOw0KLSAgICBkZWZpbmVkICRoZGENCi0gICAgICAgIG9yIGRpZSAicmVhZGxpbmsgL2Rl
di9kc2sgZmFpbGVkOiAkXkUiOw0KLSAgICAwID09IHN5c3RlbSAnbWFrZS1ibGtkZXYtbm9kZXMn
LCAkaGRhDQotICAgICAgICBvciBkaWUgIm1ha2UtYmxrZGV2LW5vZGVzICRoZGEgZmFpbGVkOiAk
PyI7DQotfQ0KLWVsc2Ugew0KLSAgICAjIElmIHBhcnRpdGlvbiB0YWJsZSBoYXMgY2hhbmdlZCwg
cmVib290Lg0KLSAgICBwcmludCAiXG5SZS1jaGVja2luZyBwYXJ0aXRpb24gdGFibGUuLi4iOw0K
LSAgICBpZiAoJHBhcnRpdGlvbl90YWJsZSBuZSBwYXJ0aXRpb25fdGFibGUgKDEpIHx8DQotICAg
ICAgICAoJHBhcnRpdGlvbl90YWJsZSBlcSAnJyAmJiBkZWZpbmVkICRpc19mZGlzaykpIHsNCi0g
ICAgICAgIHByaW50ICJjaGFuZ2VkLiAgUmVib290aW5nLi4uXG4iOw0KLSAgICAgICAgc2xlZXAg
MjsNCi0gICAgICAgIHN5c3RlbSAoJ2ZkaXNrIC9yZWJvb3QnKTsNCi0gICAgICAgIGRpZSAiSW50
ZXJuYWwgZXJyb3IiOw0KLSAgICB9DQotICAgIGVsc2Ugew0KLSAgICAgICAgcHJpbnQgIm5vIGNo
YW5nZS4gIENvbnRpbnVpbmcuXG4iOw0KLSAgICB9DQotfQ0KKyNpZiAoJGlzX2xpbnV4KSB7DQor
IyAgICAjIE9uIExpbnV4LCB3ZSAocmUtKWNyZWF0ZSB0aGUgZGV2aWNlIG5vZGVzIGFmdGVyIG1v
ZGlmeWluZyB0aGUNCisjICAgICMgcGFydGl0aW9uIHRhYmxlLg0KKyMgICAgbXkgJGhkYSA9IHJl
YWRsaW5rICgnL2Rldi9kc2snKTsNCisjICAgIGRlZmluZWQgJGhkYQ0KKyMgICAgICAgIG9yIGRp
ZSAicmVhZGxpbmsgL2Rldi9kc2sgZmFpbGVkOiAkXkUiOw0KKyMgICAgMCA9PSBzeXN0ZW0gJ21h
a2UtYmxrZGV2LW5vZGVzJywgJGhkYQ0KKyMgICAgICAgIG9yIGRpZSAibWFrZS1ibGtkZXYtbm9k
ZXMgJGhkYSBmYWlsZWQ6ICQ/IjsNCisjfQ0KKyNlbHNlIHsNCisjICAgICMgSWYgcGFydGl0aW9u
IHRhYmxlIGhhcyBjaGFuZ2VkLCByZWJvb3QuDQorIyAgICBwcmludCAiXG5SZS1jaGVja2luZyBw
YXJ0aXRpb24gdGFibGUuLi4iOw0KKyMgICAgaWYgKCRwYXJ0aXRpb25fdGFibGUgbmUgcGFydGl0
aW9uX3RhYmxlICgxKSB8fA0KKyMgICAgICAgICgkcGFydGl0aW9uX3RhYmxlIGVxICcnICYmIGRl
ZmluZWQgJGlzX2ZkaXNrKSkgew0KKyMgICAgICAgIHByaW50ICJjaGFuZ2VkLiAgUmVib290aW5n
Li4uXG4iOw0KKyMgICAgICAgIHNsZWVwIDI7DQorIyAgICAgICAgc3lzdGVtICgnZmRpc2sgL3Jl
Ym9vdCcpOw0KKyMgICAgICAgIGRpZSAiSW50ZXJuYWwgZXJyb3IiOw0KKyMgICAgfQ0KKyMgICAg
ZWxzZSB7DQorIyAgICAgICAgcHJpbnQgIm5vIGNoYW5nZS4gIENvbnRpbnVpbmcuXG4iOw0KKyMg
ICAgfQ0KKyN9DQogDQogIyBSdW4gZm9ybWF0dGluZyBjb21tYW5kLCBpZiBhbnkuDQogbXkgJGZv
cm1hdF9jbWQgPSAkdS0+eydfbWV0YSd9LT57J2Zvcm1hdF9jbWQnfTsNCg==
--20cf303dd33eb65fb504c9926cca
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
------------------------------------------------------------------------------
How fast is your code?
3 out of 4 devs don\\\'t know how their code performs in production.
Find out how slow your code is with AppDynamics Lite.
http://ad.doubleclick.net/clk;262219672;13503038;z?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
--20cf303dd33eb65fb504c9926cca
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
unattended-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/unattended-devel
--20cf303dd33eb65fb504c9926cca--