<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>103009</bug_id>
          
          <creation_ts>2012-11-21 19:22:23 -0800</creation_ts>
          <short_desc>It should be possible to say dataLog(&quot;count = &quot;, count, &quot;\n&quot;) instead of dataLogF(&quot;count = %d\n&quot;, count)</short_desc>
          <delta_ts>2012-11-28 15:04:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>103000</dependson>
    
    <dependson>103001</dependson>
          <blocked>102999</blocked>
    
    <blocked>103492</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>andersca</cc>
    
    <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>mitz</cc>
    
    <cc>msaboff</cc>
    
    <cc>ojan</cc>
    
    <cc>oliver</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>773499</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-21 19:22:23 -0800</bug_when>
    <thetext>And we should also be able to provide overloads for logging objects by just overloading some print() function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773513</commentid>
    <comment_count>1</comment_count>
      <attachid>175572</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-21 20:11:44 -0800</bug_when>
    <thetext>Created attachment 175572
WRONG PATCH</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773517</commentid>
    <comment_count>2</comment_count>
      <attachid>175572</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-21 20:12:34 -0800</bug_when>
    <thetext>Comment on attachment 175572
WRONG PATCH

Ooops.  I posted this to the wrong bug. :-/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777605</commentid>
    <comment_count>3</comment_count>
      <attachid>176419</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-28 00:58:01 -0800</bug_when>
    <thetext>Created attachment 176419
the patch

For reals this time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778394</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-28 15:04:19 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/136066</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175572</attachid>
            <date>2012-11-21 20:11:44 -0800</date>
            <delta_ts>2012-11-22 12:08:38 -0800</delta_ts>
            <desc>WRONG PATCH</desc>
            <filename>printstream.patch</filename>
            <type>text/plain</type>
            <size>44604</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM1NDY0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBA
CisyMDEyLTExLTIxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
QW55IGZ1bmN0aW9uIHRoYXQgY2FuIGxvZyB0aGluZ3Mgc2hvdWxkIGJlIGFibGUgdG8gZWFzaWx5
IGxvZyB0aGVtIHRvIGEgbWVtb3J5IGJ1ZmZlciBhcyB3ZWxsCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMwMDAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgYWxsIHVzZXJzIG9mIFdURjo6ZGF0
YUZpbGUoKSB0byBleHBlY3QgYSBQcmludFN0cmVhbSYgcmF0aGVyIHRoYW4gYSBGSUxFKi4KKwor
ICAgICAgICAqIGJ5dGVjb2RlL09wZXJhbmRzLmg6CisgICAgICAgIChKU0M6Ok9wZXJhbmRWYWx1
ZVRyYWl0czo6ZHVtcCk6CisgICAgICAgIChKU0M6OmR1bXBPcGVyYW5kcyk6CisgICAgICAgIChK
U0MpOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpBYnN0cmFjdFN0YXRlOjpkdW1wKToKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RTdGF0
ZS5oOgorICAgICAgICAoQWJzdHJhY3RTdGF0ZSk6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0
VmFsdWUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdFZhbHVlOjpkdW1wKToKKyAgICAg
ICAgKiBkZmcvREZHQ29tbW9uLmg6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZUluZGV4VHJhaXRz
OjpkdW1wKToKKyAgICAgICAgKiBkZmcvREZHU3RydWN0dXJlQWJzdHJhY3RWYWx1ZS5oOgorICAg
ICAgICAoSlNDOjpERkc6OlN0cnVjdHVyZUFic3RyYWN0VmFsdWU6OmR1bXApOgorICAgICAgICAq
IGRmZy9ERkdWYXJpYWJsZUV2ZW50LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpWYXJpYWJsZUV2
ZW50OjpkdW1wKToKKyAgICAgICAgKEpTQzo6REZHOjpWYXJpYWJsZUV2ZW50OjpkdW1wRmlsbElu
Zm8pOgorICAgICAgICAoSlNDOjpERkc6OlZhcmlhYmxlRXZlbnQ6OmR1bXBTcGlsbEluZm8pOgor
ICAgICAgICAqIGRmZy9ERkdWYXJpYWJsZUV2ZW50Lmg6CisgICAgICAgIChWYXJpYWJsZUV2ZW50
KToKKyAgICAgICAgKiBkaXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmg6CisgICAgICAgIChKU0Mp
OgorICAgICAgICAoSlNDOjp0cnlUb0Rpc2Fzc2VtYmxlKToKKyAgICAgICAgKiBkaXNhc3NlbWJs
ZXIvVURpczg2RGlzYXNzZW1ibGVyLmNwcDoKKyAgICAgICAgKEpTQzo6dHJ5VG9EaXNhc3NlbWJs
ZSk6CisKIDIwMTItMTEtMjEgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBkdW1wT3BlcmFuZHMoKSBjbGFpbXMgdGhhdCBpdCBuZWVkcyBhIG5vbi1jb25zdCBPcGVy
YW5kcyYgd2hlbiB0aGF0IGlzIGNvbXBsZXRlbHkgZmFsc2UKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9PcGVyYW5kcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9PcGVyYW5kcy5oCShyZXZpc2lvbiAxMzUzNTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3BlcmFuZHMuaAkod29ya2luZyBjb3B5KQpAQCAtMjgs
NyArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiSlNPYmplY3Qu
aCIKLQorI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC00Myw3ICs0Myw3IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IHN0cnVjdCBPcGVyYW5kVmFsdWUKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBzdHJ1Y3QgT3Bl
cmFuZFZhbHVlVHJhaXRzIHsKICAgICBzdGF0aWMgVCBkZWZhdWx0VmFsdWUoKSB7IHJldHVybiBU
KCk7IH0KLSAgICBzdGF0aWMgdm9pZCBkdW1wKGNvbnN0IFQmIHZhbHVlLCBGSUxFKiBvdXQpIHsg
dmFsdWUuZHVtcChvdXQpOyB9CisgICAgc3RhdGljIHZvaWQgZHVtcChjb25zdCBUJiB2YWx1ZSwg
UHJpbnRTdHJlYW0mIG91dCkgeyB2YWx1ZS5kdW1wKG91dCk7IH0KIH07CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFQsIHR5cGVuYW1lIFRyYWl0cyA9IE9wZXJhbmRWYWx1ZVRyYWl0czxUPiA+CkBAIC0x
OTAsMzEgKzE5MCwyMSBAQCBwcml2YXRlOgogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlw
ZW5hbWUgVHJhaXRzPgotdm9pZCBkdW1wT3BlcmFuZHMoT3BlcmFuZHM8VCwgVHJhaXRzPiYgb3Bl
cmFuZHMsIEZJTEUqIG91dCkKK3ZvaWQgZHVtcE9wZXJhbmRzKGNvbnN0IE9wZXJhbmRzPFQsIFRy
YWl0cz4mIG9wZXJhbmRzLCBQcmludFN0cmVhbSYgb3V0KQogewogICAgIGZvciAoc2l6ZV90IGFy
Z3VtZW50ID0gMDsgYXJndW1lbnQgPCBvcGVyYW5kcy5udW1iZXJPZkFyZ3VtZW50cygpOyArK2Fy
Z3VtZW50KSB7CiAgICAgICAgIGlmIChhcmd1bWVudCkKLSAgICAgICAgICAgIGZwcmludGYob3V0
LCAiICIpOworICAgICAgICAgICAgb3V0LnByaW50ZigiICIpOwogICAgICAgICBUcmFpdHM6OmR1
bXAob3BlcmFuZHMuYXJndW1lbnQoYXJndW1lbnQpLCBvdXQpOwogICAgIH0KLSAgICBmcHJpbnRm
KG91dCwgIiA6ICIpOworICAgIG91dC5wcmludGYoIiA6ICIpOwogICAgIGZvciAoc2l6ZV90IGxv
Y2FsID0gMDsgbG9jYWwgPCBvcGVyYW5kcy5udW1iZXJPZkxvY2FscygpOyArK2xvY2FsKSB7CiAg
ICAgICAgIGlmIChsb2NhbCkKLSAgICAgICAgICAgIGZwcmludGYob3V0LCAiICIpOworICAgICAg
ICAgICAgb3V0LnByaW50ZigiICIpOwogICAgICAgICBUcmFpdHM6OmR1bXAob3BlcmFuZHMubG9j
YWwobG9jYWwpLCBvdXQpOwogICAgIH0KIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5h
bWUgVHJhaXRzPgotdm9pZCBkdW1wT3BlcmFuZHMoY29uc3QgT3BlcmFuZHM8VCwgVHJhaXRzPiYg
b3BlcmFuZHMsIEZJTEUqIG91dCkKLXsKLSAgICAvLyBVc2UgY29uc3QtY2FzdCBiZWNhdXNlOgot
ICAgIC8vIDEpIEkgZG9uJ3QgZmVlbCBsaWtlIHdyaXRpbmcgdGhpcyBjb2RlIHR3aWNlLCBhbmQK
LSAgICAvLyAyKSBTb21lIGR1bXAoKSBtZXRob2RzIG1heSBub3QgYmUgY29uc3QsIGFuZCBJIGRv
bid0IHJlYWxseSBjYXJlIGlmIHRoYXQncwotICAgIC8vICAgIHRoZSBjYXNlLgotICAgIGR1bXBP
cGVyYW5kcygqY29uc3RfY2FzdDxPcGVyYW5kczxULCBUcmFpdHM+Kj4oJm9wZXJhbmRzKSwgb3V0
KTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBPcGVyYW5kc19oCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAJKHJl
dmlzaW9uIDEzNTM1NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RT
dGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5NDIsNyArMTk0Miw3IEBAIGlubGluZSBib29s
IEFic3RyYWN0U3RhdGU6Om1lcmdlVmFyaWFibGUKICAgICByZXR1cm4gZGVzdGluYXRpb24ubWVy
Z2Uoc291cmNlKTsKIH0KIAotdm9pZCBBYnN0cmFjdFN0YXRlOjpkdW1wKEZJTEUqIG91dCkKK3Zv
aWQgQWJzdHJhY3RTdGF0ZTo6ZHVtcChQcmludFN0cmVhbSYgb3V0KQogewogICAgIGJvb2wgZmly
c3QgPSB0cnVlOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9ibG9jay0+c2l6ZSgpOyAr
K2kpIHsKQEAgLTE5NTMsOCArMTk1Myw4IEBAIHZvaWQgQWJzdHJhY3RTdGF0ZTo6ZHVtcChGSUxF
KiBvdXQpCiAgICAgICAgIGlmIChmaXJzdCkKICAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7CiAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIGZwcmludGYob3V0LCAiICIpOwotICAgICAgICBmcHJp
bnRmKG91dCwgIkAlbHU6Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZz4oaW5kZXgpKTsKKyAg
ICAgICAgICAgIG91dC5wcmludGYoIiAiKTsKKyAgICAgICAgb3V0LnByaW50ZigiQCVsdToiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nPihpbmRleCkpOwogICAgICAgICB2YWx1ZS5kdW1wKG91
dCk7CiAgICAgfQogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dFN0YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0
cmFjdFN0YXRlLmgJKHJldmlzaW9uIDEzNTM1NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQWJzdHJhY3RTdGF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODAsNyArMTgwLDcgQEAg
cHVibGljOgogICAgIC8vIE1lcmdlVG9TdWNjZXNzb3JzLgogICAgIGJvb2wgbWVyZ2VUb1N1Y2Nl
c3NvcnMoR3JhcGgmLCBCYXNpY0Jsb2NrKik7CiAgICAgCi0gICAgdm9pZCBkdW1wKEZJTEUqIG91
dCk7CisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpOwogICAgIAogcHJpdmF0ZToKICAg
ICB2b2lkIGNsb2JiZXJXb3JsZChjb25zdCBDb2RlT3JpZ2luJiwgdW5zaWduZWQgaW5kZXhJbkJs
b2NrKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RWYWx1ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RWYWx1
ZS5oCShyZXZpc2lvbiAxMzUzNTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fi
c3RyYWN0VmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMzcxLDE1ICszNzEsMTUgQEAgc3RydWN0
IEFic3RyYWN0VmFsdWUgewogICAgICAgICAvLyBjb21wbGV4aXR5IG9mIHRoZSBjb2RlLgogICAg
IH0KICAgICAKLSAgICB2b2lkIGR1bXAoRklMRSogb3V0KSBjb25zdAorICAgIHZvaWQgZHVtcChQ
cmludFN0cmVhbSYgb3V0KSBjb25zdAogICAgIHsKLSAgICAgICAgZnByaW50ZihvdXQsICIoJXMs
ICVzLCAiLCBzcGVjdWxhdGlvblRvU3RyaW5nKG1fdHlwZSksIGFycmF5TW9kZXNUb1N0cmluZyht
X2FycmF5TW9kZXMpKTsKKyAgICAgICAgb3V0LnByaW50ZigiKCVzLCAlcywgIiwgc3BlY3VsYXRp
b25Ub1N0cmluZyhtX3R5cGUpLCBhcnJheU1vZGVzVG9TdHJpbmcobV9hcnJheU1vZGVzKSk7CiAg
ICAgICAgIG1fY3VycmVudEtub3duU3RydWN0dXJlLmR1bXAob3V0KTsKLSAgICAgICAgZGF0YUxv
ZygiLCAiKTsKKyAgICAgICAgb3V0LnByaW50ZigiLCAiKTsKICAgICAgICAgbV9mdXR1cmVQb3Nz
aWJsZVN0cnVjdHVyZS5kdW1wKG91dCk7CiAgICAgICAgIGlmICghIW1fdmFsdWUpCi0gICAgICAg
ICAgICBmcHJpbnRmKG91dCwgIiwgJXMiLCBtX3ZhbHVlLmRlc2NyaXB0aW9uKCkpOwotICAgICAg
ICBmcHJpbnRmKG91dCwgIikiKTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIiwgJXMiLCBtX3Zh
bHVlLmRlc2NyaXB0aW9uKCkpOworICAgICAgICBvdXQucHJpbnRmKCIpIik7CiAgICAgfQogICAg
IAogICAgIC8vIEEgZ3JlYXQgd2F5IHRvIHRoaW5rIGFib3V0IHRoZSBkaWZmZXJlbmNlIGJldHdl
ZW4gbV9jdXJyZW50S25vd25TdHJ1Y3R1cmUgYW5kCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0NvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ29tbW9uLmgJKHJldmlzaW9uIDEzNTM1NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTkyLDEyICs5MiwxMiBAQCBzdGF0
aWMgY29uc3QgQmxvY2tJbmRleCBOb0Jsb2NrID0gVUlOVF9NCiAKIHN0cnVjdCBOb2RlSW5kZXhU
cmFpdHMgewogICAgIHN0YXRpYyBOb2RlSW5kZXggZGVmYXVsdFZhbHVlKCkgeyByZXR1cm4gTm9O
b2RlOyB9Ci0gICAgc3RhdGljIHZvaWQgZHVtcChOb2RlSW5kZXggdmFsdWUsIEZJTEUqIG91dCkK
KyAgICBzdGF0aWMgdm9pZCBkdW1wKE5vZGVJbmRleCB2YWx1ZSwgUHJpbnRTdHJlYW0mIG91dCkK
ICAgICB7CiAgICAgICAgIGlmICh2YWx1ZSA9PSBOb05vZGUpCi0gICAgICAgICAgICBmcHJpbnRm
KG91dCwgIi0iKTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIi0iKTsKICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgZnByaW50ZihvdXQsICJAJXUiLCB2YWx1ZSk7CisgICAgICAgICAgICBvdXQu
cHJpbnRmKCJAJXUiLCB2YWx1ZSk7CiAgICAgfQogfTsKIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlLmgJKHJldmlz
aW9uIDEzNTM1NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQWJz
dHJhY3RWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOTgsMTcgKzI5OCwxNyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBtX3N0cnVjdHVyZSA9PSBvdGhlci5tX3N0cnVjdHVyZTsKICAgICB9
CiAgICAgCi0gICAgdm9pZCBkdW1wKEZJTEUqIG91dCkgY29uc3QKKyAgICB2b2lkIGR1bXAoUHJp
bnRTdHJlYW0mIG91dCkgY29uc3QKICAgICB7CiAgICAgICAgIGlmIChpc1RvcCgpKSB7Ci0gICAg
ICAgICAgICBmcHJpbnRmKG91dCwgIlRPUCIpOworICAgICAgICAgICAgb3V0LnByaW50ZigiVE9Q
Iik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGZw
cmludGYob3V0LCAiWyIpOworICAgICAgICBvdXQucHJpbnRmKCJbIik7CiAgICAgICAgIGlmICht
X3N0cnVjdHVyZSkKLSAgICAgICAgICAgIGZwcmludGYob3V0LCAiJXAiLCBtX3N0cnVjdHVyZSk7
Ci0gICAgICAgIGZwcmludGYob3V0LCAiXSIpOworICAgICAgICAgICAgb3V0LnByaW50ZigiJXAi
LCBtX3N0cnVjdHVyZSk7CisgICAgICAgIG91dC5wcmludGYoIl0iKTsKICAgICB9CiAKIHByaXZh
dGU6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlRXZlbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVFdmVu
dC5jcHAJKHJldmlzaW9uIDEzNTM1NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
VmFyaWFibGVFdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDExICszMywxMSBAQAogCiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKLXZvaWQgVmFyaWFibGVFdmVudDo6ZHVt
cChGSUxFKiBvdXQpIGNvbnN0Cit2b2lkIFZhcmlhYmxlRXZlbnQ6OmR1bXAoUHJpbnRTdHJlYW0m
IG91dCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKGtpbmQoKSkgewogICAgIGNhc2UgUmVzZXQ6Ci0g
ICAgICAgIGZwcmludGYob3V0LCAiUmVzZXQiKTsKKyAgICAgICAgb3V0LnByaW50ZigiUmVzZXQi
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCaXJ0aFRvRmlsbDoKICAgICAgICAgZHVtcEZp
bGxJbmZvKCJCaXJ0aFRvRmlsbCIsIG91dCk7CkBAIC01MiwxMyArNTIsMTMgQEAgdm9pZCBWYXJp
YWJsZUV2ZW50OjpkdW1wKEZJTEUqIG91dCkgY29ucwogICAgICAgICBkdW1wU3BpbGxJbmZvKCJT
cGlsbCIsIG91dCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGVhdGg6Ci0gICAgICAgIGZw
cmludGYob3V0LCAiRGVhdGgoQCV1KSIsIG5vZGVJbmRleCgpKTsKKyAgICAgICAgb3V0LnByaW50
ZigiRGVhdGgoQCV1KSIsIG5vZGVJbmRleCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBN
b3ZIaW50OgotICAgICAgICBmcHJpbnRmKG91dCwgIk1vdkhpbnQoQCV1LCByJWQpIiwgbm9kZUlu
ZGV4KCksIG9wZXJhbmQoKSk7CisgICAgICAgIG91dC5wcmludGYoIk1vdkhpbnQoQCV1LCByJWQp
Iiwgbm9kZUluZGV4KCksIG9wZXJhbmQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2V0
TG9jYWxFdmVudDoKLSAgICAgICAgZnByaW50ZihvdXQsICJTZXRMb2NhbChyJWQsICVzKSIsIG9w
ZXJhbmQoKSwgZGF0YUZvcm1hdFRvU3RyaW5nKGRhdGFGb3JtYXQoKSkpOworICAgICAgICBvdXQu
cHJpbnRmKCJTZXRMb2NhbChyJWQsICVzKSIsIG9wZXJhbmQoKSwgZGF0YUZvcm1hdFRvU3RyaW5n
KGRhdGFGb3JtYXQoKSkpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTY2LDIzICs2NiwyMyBAQCB2b2lkIFZhcmlhYmxlRXZl
bnQ6OmR1bXAoRklMRSogb3V0KSBjb25zCiAgICAgfQogfQogCi12b2lkIFZhcmlhYmxlRXZlbnQ6
OmR1bXBGaWxsSW5mbyhjb25zdCBjaGFyKiBuYW1lLCBGSUxFKiBvdXQpIGNvbnN0Cit2b2lkIFZh
cmlhYmxlRXZlbnQ6OmR1bXBGaWxsSW5mbyhjb25zdCBjaGFyKiBuYW1lLCBQcmludFN0cmVhbSYg
b3V0KSBjb25zdAogewotICAgIGZwcmludGYob3V0LCAiJXMoQCV1LCAiLCBuYW1lLCBub2RlSW5k
ZXgoKSk7CisgICAgb3V0LnByaW50ZigiJXMoQCV1LCAiLCBuYW1lLCBub2RlSW5kZXgoKSk7CiAg
ICAgaWYgKGRhdGFGb3JtYXQoKSA9PSBEYXRhRm9ybWF0RG91YmxlKQotICAgICAgICBmcHJpbnRm
KG91dCwgIiVzIiwgRlBSSW5mbzo6ZGVidWdOYW1lKGZwcigpKSk7CisgICAgICAgIG91dC5wcmlu
dGYoIiVzIiwgRlBSSW5mbzo6ZGVidWdOYW1lKGZwcigpKSk7CiAjaWYgVVNFKEpTVkFMVUUzMl82
NCkKICAgICBlbHNlIGlmIChkYXRhRm9ybWF0KCkgJiBEYXRhRm9ybWF0SlMpCi0gICAgICAgIGZw
cmludGYob3V0LCAiJXM6JXMiLCBHUFJJbmZvOjpkZWJ1Z05hbWUodGFnR1BSKCkpLCBHUFJJbmZv
OjpkZWJ1Z05hbWUocGF5bG9hZEdQUigpKSk7CisgICAgICAgIG91dC5wcmludGYoIiVzOiVzIiwg
R1BSSW5mbzo6ZGVidWdOYW1lKHRhZ0dQUigpKSwgR1BSSW5mbzo6ZGVidWdOYW1lKHBheWxvYWRH
UFIoKSkpOwogI2VuZGlmCiAgICAgZWxzZQotICAgICAgICBmcHJpbnRmKG91dCwgIiVzIiwgR1BS
SW5mbzo6ZGVidWdOYW1lKGdwcigpKSk7Ci0gICAgZnByaW50ZihvdXQsICIsICVzKSIsIGRhdGFG
b3JtYXRUb1N0cmluZyhkYXRhRm9ybWF0KCkpKTsKKyAgICAgICAgb3V0LnByaW50ZigiJXMiLCBH
UFJJbmZvOjpkZWJ1Z05hbWUoZ3ByKCkpKTsKKyAgICBvdXQucHJpbnRmKCIsICVzKSIsIGRhdGFG
b3JtYXRUb1N0cmluZyhkYXRhRm9ybWF0KCkpKTsKIH0KIAotdm9pZCBWYXJpYWJsZUV2ZW50Ojpk
dW1wU3BpbGxJbmZvKGNvbnN0IGNoYXIqIG5hbWUsIEZJTEUqIG91dCkgY29uc3QKK3ZvaWQgVmFy
aWFibGVFdmVudDo6ZHVtcFNwaWxsSW5mbyhjb25zdCBjaGFyKiBuYW1lLCBQcmludFN0cmVhbSYg
b3V0KSBjb25zdAogewotICAgIGZwcmludGYob3V0LCAiJXMoQCV1LCByJWQsICVzKSIsIG5hbWUs
IG5vZGVJbmRleCgpLCB2aXJ0dWFsUmVnaXN0ZXIoKSwgZGF0YUZvcm1hdFRvU3RyaW5nKGRhdGFG
b3JtYXQoKSkpOworICAgIG91dC5wcmludGYoIiVzKEAldSwgciVkLCAlcykiLCBuYW1lLCBub2Rl
SW5kZXgoKSwgdmlydHVhbFJlZ2lzdGVyKCksIGRhdGFGb3JtYXRUb1N0cmluZyhkYXRhRm9ybWF0
KCkpKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdWYXJpYWJsZUV2ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdWYXJpYWJsZUV2ZW50LmgJKHJldmlzaW9uIDEzNTM1NCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVFdmVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNDAsMTEgKzI0MCwxMSBAQCBwdWJsaWM6CiAgICAgCiAgICAgY29uc3QgVmFyaWFi
bGVSZXByZXNlbnRhdGlvbiYgdmFyaWFibGVSZXByZXNlbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IHU7IH0KICAgICAKLSAgICB2b2lkIGR1bXAoRklMRSopIGNvbnN0OworICAgIHZvaWQgZHVtcChQ
cmludFN0cmVhbSYpIGNvbnN0OwogICAgIAogcHJpdmF0ZToKLSAgICB2b2lkIGR1bXBGaWxsSW5m
byhjb25zdCBjaGFyKiBuYW1lLCBGSUxFKikgY29uc3Q7Ci0gICAgdm9pZCBkdW1wU3BpbGxJbmZv
KGNvbnN0IGNoYXIqIG5hbWUsIEZJTEUqKSBjb25zdDsKKyAgICB2b2lkIGR1bXBGaWxsSW5mbyhj
b25zdCBjaGFyKiBuYW1lLCBQcmludFN0cmVhbSYpIGNvbnN0OworICAgIHZvaWQgZHVtcFNwaWxs
SW5mbyhjb25zdCBjaGFyKiBuYW1lLCBQcmludFN0cmVhbSYpIGNvbnN0OwogICAgIAogICAgIE5v
ZGVJbmRleCBtX2luZGV4OwogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fz
c2VtYmxlci9EaXNhc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5oCShyZXZpc2lvbiAxMzUzNTQpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiwxOCArMjYsMTcgQEAKICNpZm5kZWYgRGlzYXNzZW1ibGVyX2gKICNkZWZpbmUg
RGlzYXNzZW1ibGVyX2gKIAotI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8d3RmL1BsYXRm
b3JtLmg+Ci0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9Qcmlu
dFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyOwogCiAjaWYgRU5BQkxFKERJU0FTU0VNQkxFUikKLWJvb2wgdHJ5VG9EaXNhc3NlbWJsZShj
b25zdCBNYWNyb0Fzc2VtYmxlckNvZGVQdHImLCBzaXplX3QsIGNvbnN0IGNoYXIqIHByZWZpeCwg
RklMRSogb3V0KTsKK2Jvb2wgdHJ5VG9EaXNhc3NlbWJsZShjb25zdCBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHImLCBzaXplX3QsIGNvbnN0IGNoYXIqIHByZWZpeCwgUHJpbnRTdHJlYW0mKTsKICNlbHNl
Ci1pbmxpbmUgYm9vbCB0cnlUb0Rpc2Fzc2VtYmxlKGNvbnN0IE1hY3JvQXNzZW1ibGVyQ29kZVB0
ciYsIHNpemVfdCwgY29uc3QgY2hhciosIEZJTEUqKQoraW5saW5lIGJvb2wgdHJ5VG9EaXNhc3Nl
bWJsZShjb25zdCBNYWNyb0Fzc2VtYmxlckNvZGVQdHImLCBzaXplX3QsIGNvbnN0IGNoYXIqLCBQ
cmludFN0cmVhbSYpCiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9VRGlzODZEaXNhc3NlbWJsZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvVURpczg2RGlzYXNzZW1ibGVy
LmNwcAkocmV2aXNpb24gMTM1MzU0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2Vt
Ymxlci9VRGlzODZEaXNhc3NlbWJsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3
IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1ib29sIHRyeVRvRGlzYXNzZW1ibGUoY29uc3QgTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyJiBjb2RlUHRyLCBzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciogcHJl
Zml4LCBGSUxFKiBvdXQpCitib29sIHRyeVRvRGlzYXNzZW1ibGUoY29uc3QgTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyJiBjb2RlUHRyLCBzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciogcHJlZml4LCBQcmlu
dFN0cmVhbSYgb3V0KQogewogICAgIHVkX3QgZGlzYXNzZW1ibGVyOwogICAgIHVkX2luaXQoJmRp
c2Fzc2VtYmxlcik7CkBAIC01MCw3ICs1MCw3IEBAIGJvb2wgdHJ5VG9EaXNhc3NlbWJsZShjb25z
dCBNYWNyb0Fzc2VtYmwKICAgICB3aGlsZSAodWRfZGlzYXNzZW1ibGUoJmRpc2Fzc2VtYmxlcikp
IHsKICAgICAgICAgY2hhciBwY1N0cmluZ1syMF07CiAgICAgICAgIHNucHJpbnRmKHBjU3RyaW5n
LCBzaXplb2YocGNTdHJpbmcpLCAiMHglbHgiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nPihj
dXJyZW50UEMpKTsKLSAgICAgICAgZnByaW50ZihvdXQsICIlcyUxNnM6ICVzXG4iLCBwcmVmaXgs
IHBjU3RyaW5nLCB1ZF9pbnNuX2FzbSgmZGlzYXNzZW1ibGVyKSk7CisgICAgICAgIG91dC5wcmlu
dGYoIiVzJTE2czogJXNcbiIsIHByZWZpeCwgcGNTdHJpbmcsIHVkX2luc25fYXNtKCZkaXNhc3Nl
bWJsZXIpKTsKICAgICAgICAgY3VycmVudFBDID0gZGlzYXNzZW1ibGVyLnBjOwogICAgIH0KICAg
ICAKSW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYv
Q2hhbmdlTG9nCShyZXZpc2lvbiAxMzU0NjQpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDc5IEBACisyMDEyLTExLTIxICBGaWxpcCBQaXpsbyAgPGZw
aXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgQW55IGZ1bmN0aW9uIHRoYXQgY2FuIGxvZyB0aGlu
Z3Mgc2hvdWxkIGJlIGFibGUgdG8gZWFzaWx5IGxvZyB0aGVtIHRvIGEgbWVtb3J5IGJ1ZmZlciBh
cyB3ZWxsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDMwMDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZSBoYXZlIGEgbnVtYmVyIG9mIHBsYWNlcyB3aGVyZSB3ZSBwYXNzIGFyb3VuZCBhIEZJTEUqIGFz
IGEgdGFyZ2V0IHRvIHdoaWNoIHRvIHByaW50CisgICAgICAgIHNvbWUgbG9nZ2luZyBpbmZvcm1h
dGlvbi4gQnV0IHRoZSBwdXJwb3NlIG9mIHBhc3NpbmcgRklMRSogaW5zdGVhZCBvZiBhbHdheXMg
YXNzdW1pbmcKKyAgICAgICAgdGhhdCB3ZSBzaG91bGQgZHVtcCB0byBzdGRlcnIgaXMgdGhhdCBp
dCBtYXkgYmUgc29tZXRpbWVzIHVzZWZ1bCB0byBzZW5kIHRoZSBsb2dnaW5nCisgICAgICAgIGlu
Zm9ybWF0aW9uIGVsc3doZXJlLiBVbmZvcnR1bmF0ZWx5LCBGSUxFKiBpc24ndCBxdWl0ZSBwb3dl
cmZ1bCBlbm91Z2g6IGl0J3MgY29tYmVyc29tZQorICAgICAgICB0byB1c2UgaXQgdG8gc2VuZCBs
b2dnaW5nIHRvIGEgc3RyaW5nLCBmb3IgZXhhbXBsZS4KKyAgICAgICAgCisgICAgICAgIFdlIGNv
dWxkIGdldCBhcm91bmQgdGhpcyBieSB1c2luZyA8aW9zdHJlYW0+IGFuZCA8c3N0cmVhbT4sIGJ1
dCBzbyBmYXIgdGhpcyBhc3BlY3Qgb2YKKyAgICAgICAgQysrIGhhcyBub3QgYmVlbiBwYXJ0IG9m
IHRoZSBXZWJLaXQgY29kaW5nIGNvbnZlbnRpb25zLiBQZXJzb25hbGx5IEkgZmluZCA8aW9zdHJl
YW0+CisgICAgICAgIGF3a3dhcmQgZHVlIHRvIGl0cyBhYnVzZSBvZiBvcGVyYXRvciBvdmVybG9h
ZGluZy4KKyAgICAgICAgCisgICAgICAgIFNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyB0d28gbmV3
IGNsb3NlbHkgcmVsYXRlZCBwaWVjZXMgb2YgZnVuY3Rpb25hbGl0eToKKyAgICAgICAgCisgICAg
ICAgIDEpIFRoZSBQcmludFN0cmVhbSBhYnN0cmFjdCBjbGFzcywgd2hpY2ggb2ZmZXJzIHByaW50
Zi1saWtlIGZ1bmN0aW9uYWxpdHkgd2hpbGUKKyAgICAgICAgICAgY29tcGxldGVseSBhYnN0cmFj
dGluZyB0aGUgZGVzdGluYXRpb24gYW5kIG1lY2hhbmlzbSBvZiB0aGUgcHJpbnRpbmcgb3V0cHV0
LiBJdAorICAgICAgICAgICB3b3VsZCBiZSB0cml2aWFsIHRvIGltcGxlbWVudCBhIFN0cmluZ1By
aW50U3RyZWFtLCBmb3IgZXhhbXBsZS4gVGhpcyB3aWxsIGZlZWQKKyAgICAgICAgICAgaW50byB3
b3JrIG9uIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI5OTkKKyAg
ICAgICAgCisgICAgICAgIDIpIFRlbXBsYXRpemVkIHByaW50KCkgYW5kIHByaW50bG4oKSBtZXRo
b2RzIHRoYXQgYWxsb3cgc2F5aW5nIHRoaW5ncyBsaWtlCisgICAgICAgICAgIHByaW50bG4ob3V0
LCAiY291bnQgPSAiLCBjb3VudCkuIFRoaXMgd2lsbCBmZWVkIGludG8gd29yayBvbgorICAgICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMDA5CisgICAg
ICAgIAorICAgICAgICBUaGlzIHBhdGNoIGFsc28gY2hhbmdlcyBkYXRhTG9nKCkgdG8gdXNlIEZp
bGVQcmludFN0cmVhbSBpbnRlcm5hbGx5LCBhbmQgV1RGOjpkYXRhRmlsZSgpCisgICAgICAgIG5v
dyByZXR1cm5zIGEgRmlsZVByaW50U3RyZWFtJi4gQW55IHByZXZpb3VzIHVzZXJzIG9mIFdURjo6
ZGF0YUZpbGUoKSBoYXZlIGJlZW4gY2hhbmdlZAorICAgICAgICB0byBleHBlY3QgYSBQcmludFN0
cmVhbSYuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdURi5w
cm86CisgICAgICAgICogV1RGLnZjcHJvai9XVEYudmNwcm9qOgorICAgICAgICAqIFdURi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiB3dGYvRGF0YUxvZy5jcHA6CisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGOjpp
bml0aWFsaXplTG9nRmlsZU9uY2UpOgorICAgICAgICAoV1RGOjppbml0aWFsaXplTG9nRmlsZSk6
CisgICAgICAgIChXVEY6OmRhdGFGaWxlKToKKyAgICAgICAgKFdURjo6ZGF0YUxvZ1YpOgorICAg
ICAgICAoV1RGOjpkYXRhTG9nU3RyaW5nKToKKyAgICAgICAgKiB3dGYvRGF0YUxvZy5oOgorICAg
ICAgICAoV1RGKToKKyAgICAgICAgKiB3dGYvRmlsZVByaW50U3RyZWFtLmNwcDogQWRkZWQuCisg
ICAgICAgIChXVEYpOgorICAgICAgICAoV1RGOjpGaWxlUHJpbnRTdHJlYW06OkZpbGVQcmludFN0
cmVhbSk6CisgICAgICAgIChXVEY6OkZpbGVQcmludFN0cmVhbTo6fkZpbGVQcmludFN0cmVhbSk6
CisgICAgICAgIChXVEY6OkZpbGVQcmludFN0cmVhbTo6dnByaW50Zik6CisgICAgICAgIChXVEY6
OkZpbGVQcmludFN0cmVhbTo6Zmx1c2gpOgorICAgICAgICAqIHd0Zi9GaWxlUHJpbnRTdHJlYW0u
aDogQWRkZWQuCisgICAgICAgIChXVEYpOgorICAgICAgICAoRmlsZVByaW50U3RyZWFtKToKKyAg
ICAgICAgKFdURjo6RmlsZVByaW50U3RyZWFtOjpmaWxlKToKKyAgICAgICAgKiB3dGYvUHJpbnRT
dHJlYW0uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6OlByaW50U3Ry
ZWFtOjpQcmludFN0cmVhbSk6CisgICAgICAgIChXVEY6OlByaW50U3RyZWFtOjp+UHJpbnRTdHJl
YW0pOgorICAgICAgICAoV1RGOjpQcmludFN0cmVhbTo6cHJpbnRmKToKKyAgICAgICAgKFdURjo6
UHJpbnRTdHJlYW06OnByaW50KToKKyAgICAgICAgKFdURjo6UHJpbnRTdHJlYW06OnByaW50bG4p
OgorICAgICAgICAoV1RGOjpQcmludFN0cmVhbTo6Zmx1c2gpOgorICAgICAgICAoV1RGOjpwcmlu
dCk6CisgICAgICAgICogd3RmL1ByaW50U3RyZWFtLmg6IEFkZGVkLgorICAgICAgICAoV1RGKToK
KyAgICAgICAgKFByaW50U3RyZWFtKToKKyAgICAgICAgKFdURjo6cHJpbnQpOgorICAgICAgICAo
V1RGOjpwcmludGxuKToKKyAgICAgICAgKiB3dGYvUmF3UG9pbnRlci5oOiBBZGRlZC4KKyAgICAg
ICAgKFdURik6CisgICAgICAgIChSYXdQb2ludGVyKToKKyAgICAgICAgKFdURjo6UmF3UG9pbnRl
cjo6UmF3UG9pbnRlcik6CisgICAgICAgIChXVEY6OlJhd1BvaW50ZXI6OnZhbHVlKToKKwogMjAx
Mi0xMS0yMSAgQW50aG9ueSBHLiBCYXNpbGUgIDxibHVlbmVzc0BnZW50b28ub3JnPgogCiAgICAg
ICAgIFNvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwOiBmaXggYnVpbGQgb24gYSB1Q2xpYmMg
c3lzdGVtCkluZGV4OiBTb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxMzUzNTQpCisrKyBT
b3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3
LDggQEAgd3RmX3NvdXJjZXMgKz0gXAogICAgIFNvdXJjZS9XVEYvd3RmL0Zhc3RCaXRWZWN0b3Iu
aCBcCiAgICAgU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5jcHAgXAogICAgIFNvdXJjZS9XVEYv
d3RmL0Zhc3RNYWxsb2MuaCBcCisgICAgU291cmNlL1dURi93dGYvRmlsZVByaW50U3RyZWFtLmNw
cCBcCisgICAgU291cmNlL1dURi93dGYvRmlsZVByaW50U3RyZWFtLmggXAogICAgIFNvdXJjZS9X
VEYvd3RmL0ZpeGVkQXJyYXkuaCBcCiAgICAgU291cmNlL1dURi93dGYvRmxvYXQzMkFycmF5Lmgg
XAogICAgIFNvdXJjZS9XVEYvd3RmL0Zsb2F0NjRBcnJheS5oIFwKQEAgLTEyNiw5ICsxMjgsMTIg
QEAgd3RmX3NvdXJjZXMgKz0gXAogICAgIFNvdXJjZS9XVEYvd3RmL1Bhc3NUcmFpdHMuaCBcCiAg
ICAgU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBcCiAgICAgU291cmNlL1dURi93dGYvUG9zc2li
bHlOdWxsLmggXAorICAgIFNvdXJjZS9XVEYvd3RmL1ByaW50U3RyZWFtLmNwcCBcCisgICAgU291
cmNlL1dURi93dGYvUHJpbnRTdHJlYW0uaCBcCiAgICAgU291cmNlL1dURi93dGYvUmFuZG9tTnVt
YmVyLmNwcCBcCiAgICAgU291cmNlL1dURi93dGYvUmFuZG9tTnVtYmVyLmggXAogICAgIFNvdXJj
ZS9XVEYvd3RmL1JhbmRvbU51bWJlclNlZWQuaCBcCisgICAgU291cmNlL1dURi93dGYvUmF3UG9p
bnRlci5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9SZWRCbGFja1RyZWUuaCBcCiAgICAgU291cmNl
L1dURi93dGYvUmVmQ291bnRlZC5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9SZWZDb3VudGVkQXJy
YXkuaCBcCkluZGV4OiBTb3VyY2UvV1RGL1dURi5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dU
Ri9XVEYucHJvCShyZXZpc2lvbiAxMzUzNTQpCisrKyBTb3VyY2UvV1RGL1dURi5wcm8JKHdvcmtp
bmcgY29weSkKQEAgLTYxLDYgKzYxLDcgQEAgSEVBREVSUyArPSBcCiAgICAgRXhwb3J0TWFjcm9z
LmggXAogICAgIEZhc3RBbGxvY0Jhc2UuaCBcCiAgICAgRmFzdE1hbGxvYy5oIFwKKyAgICBGaWxl
UHJpbnRTdHJlYW0uaCBcCiAgICAgRml4ZWRBcnJheS5oIFwKICAgICBGbG9hdDMyQXJyYXkuaCBc
CiAgICAgRmxvYXQ2NEFycmF5LmggXApAQCAtMTI2LDggKzEyNywxMCBAQCBIRUFERVJTICs9IFwK
ICAgICBQYXNzVHJhaXRzLmggXAogICAgIFBsYXRmb3JtLmggXAogICAgIFBvc3NpYmx5TnVsbC5o
IFwKKyAgICBQcmludFN0cmVhbS5oIFwKICAgICBSYW5kb21OdW1iZXIuaCBcCiAgICAgUmFuZG9t
TnVtYmVyU2VlZC5oIFwKKyAgICBSYXdQb2ludGVyLmggXAogICAgIFJlZEJsYWNrVHJlZS5oIFwK
ICAgICBSZWZDb3VudGVkLmggXAogICAgIFJlZkNvdW50ZWRMZWFrQ291bnRlci5oIFwKQEAgLTIw
Nyw2ICsyMTAsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBkdG9hL2ZpeGVkLWR0b2EuY2MgXAogICAg
IGR0b2Evc3RydG9kLmNjIFwKICAgICBGYXN0TWFsbG9jLmNwcCBcCisgICAgRmlsZVByaW50U3Ry
ZWFtLmNwcCBcCiAgICAgR3JlZ29yaWFuRGF0ZVRpbWUuY3BwIFwKICAgICBnb2JqZWN0L0dPd25Q
dHIuY3BwIFwKICAgICBnb2JqZWN0L0dSZWZQdHIuY3BwIFwKQEAgLTIyNCw2ICsyMjgsNyBAQCBT
T1VSQ0VTICs9IFwKICAgICBQYWdlQWxsb2NhdGlvbkFsaWduZWQuY3BwIFwKICAgICBQYWdlQmxv
Y2suY3BwIFwKICAgICBQYXJhbGxlbEpvYnNHZW5lcmljLmNwcCBcCisgICAgUHJpbnRTdHJlYW0u
Y3BwIFwKICAgICBSYW5kb21OdW1iZXIuY3BwIFwKICAgICBSZWZDb3VudGVkTGVha0NvdW50ZXIu
Y3BwIFwKICAgICBTSEExLmNwcCBcCkluZGV4OiBTb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZj
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagkocmV2
aXNpb24gMTM1MzU0KQorKysgU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oJKHdvcmtp
bmcgY29weSkKQEAgLTc4MSw2ICs3ODEsMTQgQEAKIAkJCT4KIAkJPC9GaWxlPgogCQk8RmlsZQor
CQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcRmlsZVByaW50U3RyZWFtLmNwcCIKKwkJCT4KKwkJPC9G
aWxlPgorCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcRmlsZVByaW50U3RyZWFtLmgi
CisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKIAkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXEZpeGVk
QXJyYXkuaCIKIAkJCT4KIAkJPC9GaWxlPgpAQCAtMTA4OSw2ICsxMDk3LDE0IEBACiAJCQk+CiAJ
CTwvRmlsZT4KIAkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXFByaW50U3RyZWFtLmNw
cCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcUHJp
bnRTdHJlYW0uaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRoPSIu
Llx3dGZcUmFuZG9tTnVtYmVyLmNwcCIKIAkJCT4KIAkJPC9GaWxlPgpAQCAtMTEwMSw2ICsxMTE3
LDEwIEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5cd3Rm
XFJhd1BvaW50ZXIuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRo
PSIuLlx3dGZcUmVkQmxhY2tUcmVlLmgiCiAJCQk+CiAJCTwvRmlsZT4KSW5kZXg6IFNvdXJjZS9X
VEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dU
Ri9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTM1MzU0KQorKysgU291
cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
MjEsNiArMjEsMTEgQEAKIC8qIEVuZCBQQlhBZ2dyZWdhdGVUYXJnZXQgc2VjdGlvbiAqLwogCiAv
KiBCZWdpbiBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLworCQkwRjlEMzM2MDE2NURCQTczMDA1QUQz
ODcgLyogRmlsZVByaW50U3RyZWFtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGOUQzMzVCMTY1REJBNzMwMDVBRDM4NyAvKiBGaWxlUHJpbnRTdHJl
YW0uY3BwICovOyB9OworCQkwRjlEMzM2MTE2NURCQTczMDA1QUQzODcgLyogRmlsZVByaW50U3Ry
ZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlE
MzM1QzE2NURCQTczMDA1QUQzODcgLyogRmlsZVByaW50U3RyZWFtLmggKi87IH07CisJCTBGOUQz
MzYyMTY1REJBNzMwMDVBRDM4NyAvKiBQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlEMzM1RDE2NURCQTczMDA1QUQzODcgLyog
UHJpbnRTdHJlYW0uY3BwICovOyB9OworCQkwRjlEMzM2MzE2NURCQTczMDA1QUQzODcgLyogUHJp
bnRTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGOUQzMzVFMTY1REJBNzMwMDVBRDM4NyAvKiBQcmludFN0cmVhbS5oICovOyB9OworCQkwRjlE
MzM2NDE2NURCQTczMDA1QUQzODcgLyogUmF3UG9pbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5RDMzNUYxNjVEQkE3MzAwNUFEMzg3IC8qIFJh
d1BvaW50ZXIuaCAqLzsgfTsKIAkJMEZEODFBQzUxNTRGQjIyRTAwOTgzRTcyIC8qIEZhc3RCaXRW
ZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
RDgxQUM0MTU0RkIyMkUwMDk4M0U3MiAvKiBGYXN0Qml0VmVjdG9yLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJMTQzRjYxMUYxNTY1RjBGOTAwREI1MTRBIC8qIFJB
TVNpemUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MTQzRjYxMUQxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3BwICovOyB9OwogCQkxNDNGNjEy
MDE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMTQzRjYxMUUxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwpAQCAtMzEyLDYgKzMxNywx
MSBAQAogLyogRW5kIFBCWENvbnRhaW5lckl0ZW1Qcm94eSBzZWN0aW9uICovCiAKIC8qIEJlZ2lu
IFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLworCQkwRjlEMzM1QjE2NURCQTczMDA1QUQzODcg
LyogRmlsZVByaW50U3RyZWFtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEZpbGVQcmludFN0cmVhbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBG
OUQzMzVDMTY1REJBNzMwMDVBRDM4NyAvKiBGaWxlUHJpbnRTdHJlYW0uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVByaW50U3RyZWFtLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTBGOUQzMzVEMTY1REJBNzMwMDVBRDM4NyAvKiBQcmludFN0cmVhbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcmludFN0cmVhbS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGOUQzMzVFMTY1REJBNzMwMDVBRDM4NyAvKiBQ
cmludFN0cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcmludFN0cmVh
bS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjlEMzM1RjE2NURCQTczMDA1QUQz
ODcgLyogUmF3UG9pbnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYXdQ
b2ludGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRDgxQUM0MTU0RkIyMkUw
MDk4M0U3MiAvKiBGYXN0Qml0VmVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEZhc3RCaXRWZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQzRjYx
MUQxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUkFNU2l6ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTE0M0Y2MTFFMTU2NUYwRjkwMERCNTE0QSAvKiBSQU1TaXplLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJBTVNpemUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTcwNyw2ICs3MTcsOCBAQAogCQkJCTBGRDgxQUM0MTU0RkIyMkUwMDk4M0U3MiAvKiBGYXN0Qml0
VmVjdG9yLmggKi8sCiAJCQkJQThBNDcyQTExNTFBODI1QTAwNDEyM0ZGIC8qIEZhc3RNYWxsb2Mu
Y3BwICovLAogCQkJCUE4QTQ3MkEyMTUxQTgyNUEwMDQxMjNGRiAvKiBGYXN0TWFsbG9jLmggKi8s
CisJCQkJMEY5RDMzNUIxNjVEQkE3MzAwNUFEMzg3IC8qIEZpbGVQcmludFN0cmVhbS5jcHAgKi8s
CisJCQkJMEY5RDMzNUMxNjVEQkE3MzAwNUFEMzg3IC8qIEZpbGVQcmludFN0cmVhbS5oICovLAog
CQkJCUE4QTQ3MkEzMTUxQTgyNUEwMDQxMjNGRiAvKiBGaXhlZEFycmF5LmggKi8sCiAJCQkJQThB
NDcyQTQxNTFBODI1QTAwNDEyM0ZGIC8qIEZsb2F0MzJBcnJheS5oICovLAogCQkJCUE4QTQ3MkE1
MTUxQTgyNUEwMDQxMjNGRiAvKiBGbG9hdDY0QXJyYXkuaCAqLywKQEAgLTc4MywxMyArNzk1LDE1
IEBACiAJCQkJQThBNDcyRUQxNTFBODI1QjAwNDEyM0ZGIC8qIFBhc3NSZWZQdHIuaCAqLywKIAkJ
CQlBOEE0NzJFRTE1MUE4MjVCMDA0MTIzRkYgLyogUGFzc1RyYWl0cy5oICovLAogCQkJCUE4QTQ3
MkVGMTUxQTgyNUIwMDQxMjNGRiAvKiBQbGF0Zm9ybS5oICovLAotCQkJCUE4NzZEQkQ3MTUxODE2
RTUwMERBREI5NSAvKiBQbGF0Zm9ybS5oICovLAogCQkJCUE4QTQ3MkYzMTUxQTgyNUIwMDQxMjNG
RiAvKiBQb3NzaWJseU51bGwuaCAqLywKKwkJCQkwRjlEMzM1RDE2NURCQTczMDA1QUQzODcgLyog
UHJpbnRTdHJlYW0uY3BwICovLAorCQkJCTBGOUQzMzVFMTY1REJBNzMwMDVBRDM4NyAvKiBQcmlu
dFN0cmVhbS5oICovLAogCQkJCTE0M0Y2MTFEMTU2NUYwRjkwMERCNTE0QSAvKiBSQU1TaXplLmNw
cCAqLywKIAkJCQkxNDNGNjExRTE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5oICovLAogCQkJ
CUE4QTQ3MkZCMTUxQTgyNUIwMDQxMjNGRiAvKiBSYW5kb21OdW1iZXIuY3BwICovLAogCQkJCUE4
QTQ3MkZDMTUxQTgyNUIwMDQxMjNGRiAvKiBSYW5kb21OdW1iZXIuaCAqLywKIAkJCQlBOEE0NzJG
RDE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyU2VlZC5oICovLAorCQkJCTBGOUQzMzVG
MTY1REJBNzMwMDVBRDM4NyAvKiBSYXdQb2ludGVyLmggKi8sCiAJCQkJQThBNDcyRkUxNTFBODI1
QjAwNDEyM0ZGIC8qIFJlZEJsYWNrVHJlZS5oICovLAogCQkJCUE4QTQ3MkZGMTUxQTgyNUIwMDQx
MjNGRiAvKiBSZWZDb3VudGVkLmggKi8sCiAJCQkJQThBNDczMDAxNTFBODI1QjAwNDEyM0ZGIC8q
IFJlZkNvdW50ZWRBcnJheS5oICovLApAQCAtODQ4LDYgKzg2Miw3IEBACiAJCQkJQThBNDczNzIx
NTFBODI1QjAwNDEyM0ZGIC8qIFZNVGFncy5oICovLAogCQkJCUE4QTQ3MzdBMTUxQTgyNUIwMDQx
MjNGRiAvKiBXVEZUaHJlYWREYXRhLmNwcCAqLywKIAkJCQlBOEE0NzM3QjE1MUE4MjVCMDA0MTIz
RkYgLyogV1RGVGhyZWFkRGF0YS5oICovLAorCQkJCUE4NzZEQkQ3MTUxODE2RTUwMERBREI5NSAv
KiBQbGF0Zm9ybS5oICovLAogCQkJKTsKIAkJCXBhdGggPSB3dGY7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwpAQCAtMTIxNiw2ICsxMjMxLDkgQEAKIAkJCQlBOEE0NzQ4MDE1MUE4MjVCMDA0
MTIzRkYgLyogVk1UYWdzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQ0NjE1MUE4MjVCMDA0
MTIzRkYgLyogV1RGU3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQ4NzE1MUE4MjVC
MDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5RDMzNjEx
NjVEQkE3MzAwNUFEMzg3IC8qIEZpbGVQcmludFN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEY5RDMzNjMxNjVEQkE3MzAwNUFEMzg3IC8qIFByaW50U3RyZWFtLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRjlEMzM2NDE2NURCQTczMDA1QUQzODcgLyogUmF3UG9pbnRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CkBAIC0xMzgzLDYgKzE0MDEsOCBAQAogCQkJCUE4QTQ3NDY5MTUxQTgyNUIwMDQxMjNGRiAv
KiBVVEY4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3NDQ1MTUxQTgyNUIwMDQxMjNGRiAv
KiBXVEZTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0ODYxNTFBODI1QjAwNDEy
M0ZGIC8qIFdURlRocmVhZERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY5RDMzNjAxNjVE
QkE3MzAwNUFEMzg3IC8qIEZpbGVQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkw
RjlEMzM2MjE2NURCQTczMDA1QUQzODcgLyogUHJpbnRTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTM1MzU0KQorKysgU291cmNlL1dU
Ri93dGYvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAgU0VU
KFdURl9IRUFERVJTCiAgICAgRW5jb2Rlci5oCiAgICAgRmFzdEFsbG9jQmFzZS5oCiAgICAgRmFz
dE1hbGxvYy5oCisgICAgRmlsZVByaW50U3RyZWFtLmgKICAgICBGaXhlZEFycmF5LmgKICAgICBG
b3J3YXJkLmgKICAgICBHZXRQdHIuaApAQCAtNzUsOCArNzYsMTAgQEAgU0VUKFdURl9IRUFERVJT
CiAgICAgUGFyYWxsZWxKb2JzT3Blbk1QLmgKICAgICBQbGF0Zm9ybS5oCiAgICAgUG9zc2libHlO
dWxsLmgKKyAgICBQcmludFN0cmVhbS5oCiAgICAgUmFuZG9tTnVtYmVyLmgKICAgICBSYW5kb21O
dW1iZXJTZWVkLmgKKyAgICBSYXdQb2ludGVyLmgKICAgICBSZWRCbGFja1RyZWUuaAogICAgIFJl
ZkNvdW50ZWQuaAogICAgIFJlZkNvdW50ZWRMZWFrQ291bnRlci5oCkBAIC0xNTAsNiArMTUzLDcg
QEAgU0VUKFdURl9TT1VSQ0VTCiAgICAgRGVjaW1hbE51bWJlci5jcHAKICAgICBEeW5hbWljQW5u
b3RhdGlvbnMuY3BwCiAgICAgRmFzdE1hbGxvYy5jcHAKKyAgICBGaWxlUHJpbnRTdHJlYW0uY3Bw
CiAgICAgR3JlZ29yaWFuRGF0ZVRpbWUuY3BwCiAgICAgSGFzaFRhYmxlLmNwcAogICAgIE1ENS5j
cHAKQEAgLTE2Miw2ICsxNjYsNyBAQCBTRVQoV1RGX1NPVVJDRVMKICAgICBQYWdlQWxsb2NhdGlv
bkFsaWduZWQuY3BwCiAgICAgUGFnZUJsb2NrLmNwcAogICAgIFBhcmFsbGVsSm9ic0dlbmVyaWMu
Y3BwCisgICAgUHJpbnRTdHJlYW0uY3BwCiAgICAgUmFuZG9tTnVtYmVyLmNwcAogICAgIFJlZkNv
dW50ZWRMZWFrQ291bnRlci5jcHAKICAgICBTSEExLmNwcApJbmRleDogU291cmNlL1dURi93dGYv
RGF0YUxvZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvRGF0YUxvZy5jcHAJKHJl
dmlzaW9uIDEzNTM1NCkKKysrIFNvdXJjZS9XVEYvd3RmL0RhdGFMb2cuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiRGF0YUxvZy5oIgogI2luY2x1ZGUgPHN0
ZGFyZy5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDx3dGYvRmlsZVBy
aW50U3RyZWFtLmg+CiAKICNkZWZpbmUgREFUQV9MT0dfVE9fRklMRSAwCiAKQEAgLTM1LDM0ICsz
NiwzNyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotI2lmIERBVEFfTE9HX1RPX0ZJTEUKLXN0YXRp
YyBGSUxFKiBmaWxlOworI2lmIFVTRShQVEhSRUFEUykKK3N0YXRpYyBwdGhyZWFkX29uY2VfdCBp
bml0aWFsaXplTG9nRmlsZU9uY2VLZXkgPSBQVEhSRUFEX09OQ0VfSU5JVDsKKyNlbmRpZgorCitz
dGF0aWMgRmlsZVByaW50U3RyZWFtKiBmaWxlOwogCiBzdGF0aWMgdm9pZCBpbml0aWFsaXplTG9n
RmlsZU9uY2UoKQogeworI2lmIERBVEFfTE9HX1RPX0ZJTEUKICNpZmRlZiBEQVRBX0xPR19GSUxF
TkFNRQogICAgIGNvbnN0IGNoYXIqIGZpbGVuYW1lID0gREFUQV9MT0dfRklMRU5BTUU7CiAjZWxz
ZQogICAgIGNvbnN0IGNoYXIqIGZpbGVuYW1lID0gZ2V0ZW52KCJXVEZfREFUQV9MT0dfRklMRU5B
TUUiKTsKICNlbmRpZgogICAgIGlmIChmaWxlbmFtZSkgewotICAgICAgICBmaWxlID0gZm9wZW4o
ZmlsZW5hbWUsICJ3Iik7Ci0gICAgICAgIGlmICghZmlsZSkKKyAgICAgICAgRklMRSogcmF3Rmls
ZSA9IGZvcGVuKGZpbGVuYW1lLCAidyIpOworICAgICAgICBpZiAocmF3RmlsZSkKKyAgICAgICAg
ICAgIGZpbGUgPSBuZXcgRmlsZVByaW50U3RyZWFtKHJhd0ZpbGUpOworICAgICAgICBlbHNlCiAg
ICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIldhcm5pbmc6IENvdWxkIG5vdCBvcGVuIGxvZyBm
aWxlICVzIGZvciB3cml0aW5nLlxuIiwgZmlsZW5hbWUpOwogICAgIH0KKyNlbmRpZiAvLyBEQVRB
X0xPR19UT19GSUxFCiAgICAgaWYgKCFmaWxlKQotICAgICAgICBmaWxlID0gc3RkZXJyOworICAg
ICAgICBmaWxlID0gbmV3IEZpbGVQcmludFN0cmVhbShzdGRlcnIsIEZpbGVQcmludFN0cmVhbTo6
Qm9ycm93KTsKICAgICAKLSAgICBzZXR2YnVmKGZpbGUsIDAsIF9JT05CRiwgMCk7IC8vIFByZWZl
ciB1bmJ1ZmZlcmVkIG91dHB1dCwgc28gdGhhdCB3ZSBnZXQgYSBmdWxsIGxvZyB1cG9uIGNyYXNo
IG9yIGRlYWRsb2NrLgorICAgIHNldHZidWYoZmlsZS0+ZmlsZSgpLCAwLCBfSU9OQkYsIDApOyAv
LyBQcmVmZXIgdW5idWZmZXJlZCBvdXRwdXQsIHNvIHRoYXQgd2UgZ2V0IGEgZnVsbCBsb2cgdXBv
biBjcmFzaCBvciBkZWFkbG9jay4KIH0KIAotI2lmIE9TKERBUldJTikKLXN0YXRpYyBwdGhyZWFk
X29uY2VfdCBpbml0aWFsaXplTG9nRmlsZU9uY2VLZXkgPSBQVEhSRUFEX09OQ0VfSU5JVDsKLSNl
bmRpZgotCiBzdGF0aWMgdm9pZCBpbml0aWFsaXplTG9nRmlsZSgpCiB7Ci0jaWYgT1MoREFSV0lO
KQorI2lmIFVTRShQVEhSRUFEUykKICAgICBwdGhyZWFkX29uY2UoJmluaXRpYWxpemVMb2dGaWxl
T25jZUtleSwgaW5pdGlhbGl6ZUxvZ0ZpbGVPbmNlKTsKICNlbHNlCiAgICAgaWYgKCFmaWxlKQpA
QCAtNzAsMjEgKzc0LDE1IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVMb2dGaWxlKCkKICNlbmRp
ZgogfQogCi1GSUxFKiBkYXRhRmlsZSgpCitGaWxlUHJpbnRTdHJlYW0mIGRhdGFGaWxlKCkKIHsK
ICAgICBpbml0aWFsaXplTG9nRmlsZSgpOwotICAgIHJldHVybiBmaWxlOworICAgIHJldHVybiAq
ZmlsZTsKIH0KLSNlbHNlIC8vIERBVEFfTE9HX1RPX0ZJTEUKLUZJTEUqIGRhdGFGaWxlKCkKLXsK
LSAgICByZXR1cm4gc3RkZXJyOwotfQotI2VuZGlmIC8vIERBVEFfTE9HX1RPX0ZJTEUKIAogdm9p
ZCBkYXRhTG9nVihjb25zdCBjaGFyKiBmb3JtYXQsIHZhX2xpc3QgYXJnTGlzdCkKIHsKLSAgICB2
ZnByaW50ZihkYXRhRmlsZSgpLCBmb3JtYXQsIGFyZ0xpc3QpOworICAgIGRhdGFGaWxlKCkudnBy
aW50Zihmb3JtYXQsIGFyZ0xpc3QpOwogfQogCiB2b2lkIGRhdGFMb2coY29uc3QgY2hhciogZm9y
bWF0LCAuLi4pCkBAIC05Nyw3ICs5NSw3IEBAIHZvaWQgZGF0YUxvZyhjb25zdCBjaGFyKiBmb3Jt
YXQsIC4uLikKIAogdm9pZCBkYXRhTG9nU3RyaW5nKGNvbnN0IGNoYXIqIHN0cikKIHsKLSAgICBm
cHV0cyhzdHIsIGRhdGFGaWxlKCkpOworICAgIGRhdGFGaWxlKCkucHJpbnQoc3RyKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9EYXRhTG9nLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dURi93dGYvRGF0YUxvZy5oCShyZXZpc2lvbiAxMzUzNTQpCisrKyBT
b3VyY2UvV1RGL3d0Zi9EYXRhTG9nLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEyICsyOCwxMyBA
QAogCiAjaW5jbHVkZSA8c3RkYXJnLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3
dGYvRmlsZVByaW50U3RyZWFtLmg+CiAjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CiAjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIAotV1RGX0VYUE9SVF9Q
UklWQVRFIEZJTEUqIGRhdGFGaWxlKCk7CitXVEZfRVhQT1JUX1BSSVZBVEUgRmlsZVByaW50U3Ry
ZWFtJiBkYXRhRmlsZSgpOwogCiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkYXRhTG9nVihjb25z
dCBjaGFyKiBmb3JtYXQsIHZhX2xpc3QpIFdURl9BVFRSSUJVVEVfUFJJTlRGKDEsIDApOwogV1RG
X0VYUE9SVF9QUklWQVRFIHZvaWQgZGF0YUxvZyhjb25zdCBjaGFyKiBmb3JtYXQsIC4uLikgV1RG
X0FUVFJJQlVURV9QUklOVEYoMSwgMik7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9GaWxlUHJpbnRT
dHJlYW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0ZpbGVQcmludFN0cmVhbS5j
cHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV1RGL3d0Zi9GaWxlUHJpbnRTdHJlYW0uY3BwCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGaWxlUHJp
bnRTdHJlYW0uaCIKKworbmFtZXNwYWNlIFdURiB7CisKK0ZpbGVQcmludFN0cmVhbTo6RmlsZVBy
aW50U3RyZWFtKEZJTEUqIGZpbGUsIEFkb3B0aW9uTW9kZSBhZG9wdGlvbk1vZGUpCisgICAgOiBt
X2ZpbGUoZmlsZSkKKyAgICAsIG1fYWRvcHRpb25Nb2RlKGFkb3B0aW9uTW9kZSkKK3sKK30KKwor
RmlsZVByaW50U3RyZWFtOjp+RmlsZVByaW50U3RyZWFtKCkKK3sKKyAgICBpZiAobV9hZG9wdGlv
bk1vZGUgPT0gQm9ycm93KQorICAgICAgICByZXR1cm47CisgICAgZmNsb3NlKG1fZmlsZSk7Cit9
CisKK3ZvaWQgRmlsZVByaW50U3RyZWFtOjp2cHJpbnRmKGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFf
bGlzdCBhcmdMaXN0KQoreworICAgIHZmcHJpbnRmKG1fZmlsZSwgZm9ybWF0LCBhcmdMaXN0KTsK
K30KKwordm9pZCBGaWxlUHJpbnRTdHJlYW06OmZsdXNoKCkKK3sKKyAgICBmZmx1c2gobV9maWxl
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0ZpbGVQ
cmludFN0cmVhbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0ZpbGVQcmludFN0cmVh
bS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dURi93dGYvRmlsZVByaW50U3RyZWFtLmgJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBGaWxlUHJpbnRTdHJlYW1faAorI2RlZmluZSBGaWxl
UHJpbnRTdHJlYW1faAorCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvUHJpbnRT
dHJlYW0uaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIEZpbGVQcmludFN0cmVhbSA6IHB1
YmxpYyBQcmludFN0cmVhbSB7CitwdWJsaWM6CisgICAgZW51bSBBZG9wdGlvbk1vZGUgeworICAg
ICAgICBBZG9wdCwKKyAgICAgICAgQm9ycm93CisgICAgfTsKKyAgICAKKyAgICBGaWxlUHJpbnRT
dHJlYW0oRklMRSosIEFkb3B0aW9uTW9kZSA9IEFkb3B0KTsKKyAgICB2aXJ0dWFsIH5GaWxlUHJp
bnRTdHJlYW0oKTsKKyAgICAKKyAgICBGSUxFKiBmaWxlKCkgeyByZXR1cm4gbV9maWxlOyB9Cisg
ICAgCisgICAgdm9pZCB2cHJpbnRmKGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCk7CisgICAg
dm9pZCBmbHVzaCgpOworCitwcml2YXRlOgorICAgIEZJTEUqIG1fZmlsZTsKKyAgICBBZG9wdGlv
bk1vZGUgbV9hZG9wdGlvbk1vZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcg
V1RGOjpGaWxlUHJpbnRTdHJlYW07CisKKyNlbmRpZiAvLyBGaWxlUHJpbnRTdHJlYW1faAorCklu
ZGV4OiBTb3VyY2UvV1RGL3d0Zi9QcmludFN0cmVhbS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dURi93dGYvUHJpbnRTdHJlYW0uY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dURi93dGYv
UHJpbnRTdHJlYW0uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzMiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUHJpbnRTdHJlYW0uaCIKKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVk
ZSA8d3RmL0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFt
ZXNwYWNlIFdURiB7CisKK1ByaW50U3RyZWFtOjpQcmludFN0cmVhbSgpIHsgfQorUHJpbnRTdHJl
YW06On5QcmludFN0cmVhbSgpIHsgfSAvLyBGb3JjZSB0aGUgdnRhYmxlIHRvIGJlIGluIHRoaXMg
bW9kdWxlCisKK3ZvaWQgUHJpbnRTdHJlYW06OnByaW50Zihjb25zdCBjaGFyKiBmb3JtYXQsIC4u
LikKK3sKKyAgICB2YV9saXN0IGFyZ0xpc3Q7CisgICAgdmFfc3RhcnQoYXJnTGlzdCwgZm9ybWF0
KTsKKyAgICB2cHJpbnRmKGZvcm1hdCwgYXJnTGlzdCk7CisgICAgdmFfZW5kKGFyZ0xpc3QpOwor
fQorCit2b2lkIFByaW50U3RyZWFtOjpwcmludChjb25zdCBjaGFyKiBzdHJpbmcpCit7CisgICAg
cHJpbnRmKCIlcyIsIHN0cmluZyk7Cit9CisKK3ZvaWQgUHJpbnRTdHJlYW06OnByaW50KGNvbnN0
IENTdHJpbmcmIHN0cmluZykKK3sKKyAgICBwcmludChzdHJpbmcuZGF0YSgpKTsKK30KKwordm9p
ZCBQcmludFN0cmVhbTo6cHJpbnQoY29uc3QgU3RyaW5nJiBzdHJpbmcpCit7CisgICAgcHJpbnQo
c3RyaW5nLnV0ZjgoKSk7Cit9CisKK3ZvaWQgUHJpbnRTdHJlYW06OnByaW50bG4oY29uc3QgY2hh
ciogc3RyaW5nKQoreworICAgIHByaW50KHN0cmluZyk7CisgICAgcHJpbnRsbigpOworfQorCit2
b2lkIFByaW50U3RyZWFtOjpwcmludGxuKGNvbnN0IENTdHJpbmcmIHN0cmluZykKK3sKKyAgICBw
cmludChzdHJpbmcpOworICAgIHByaW50bG4oKTsKK30KKwordm9pZCBQcmludFN0cmVhbTo6cHJp
bnRsbihjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICBwcmludChzdHJpbmcpOworICAgIHBy
aW50bG4oKTsKK30KKwordm9pZCBQcmludFN0cmVhbTo6cHJpbnRsbigpCit7CisgICAgcHJpbnRm
KCJcbiIpOworfQorCit2b2lkIFByaW50U3RyZWFtOjpmbHVzaCgpCit7Cit9CisKK3ZvaWQgcHJp
bnQoUHJpbnRTdHJlYW0mIHN0cmVhbSwgYm9vbCB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUpCisg
ICAgICAgIHN0cmVhbS5wcmludGYoInRydWUiKTsKKyAgICBlbHNlCisgICAgICAgIHN0cmVhbS5w
cmludGYoImZhbHNlIik7Cit9CisKK3ZvaWQgcHJpbnQoUHJpbnRTdHJlYW0mIHN0cmVhbSwgaW50
IHZhbHVlKQoreworICAgIHN0cmVhbS5wcmludGYoIiVkIiwgdmFsdWUpOworfQorCit2b2lkIHBy
aW50KFByaW50U3RyZWFtJiBzdHJlYW0sIHVuc2lnbmVkIGludCB2YWx1ZSkKK3sKKyAgICBzdHJl
YW0ucHJpbnRmKCIldSIsIHZhbHVlKTsKK30KKwordm9pZCBwcmludChQcmludFN0cmVhbSYgc3Ry
ZWFtLCBsb25nIHZhbHVlKQoreworICAgIHN0cmVhbS5wcmludGYoIiVsZCIsIHZhbHVlKTsKK30K
Kwordm9pZCBwcmludChQcmludFN0cmVhbSYgc3RyZWFtLCB1bnNpZ25lZCBsb25nIHZhbHVlKQor
eworICAgIHN0cmVhbS5wcmludGYoIiVsdSIsIHZhbHVlKTsKK30KKwordm9pZCBwcmludChQcmlu
dFN0cmVhbSYgc3RyZWFtLCBsb25nIGxvbmcgdmFsdWUpCit7CisgICAgc3RyZWFtLnByaW50Zigi
JWxsZCIsIHZhbHVlKTsKK30KKwordm9pZCBwcmludChQcmludFN0cmVhbSYgc3RyZWFtLCB1bnNp
Z25lZCBsb25nIGxvbmcgdmFsdWUpCit7CisgICAgc3RyZWFtLnByaW50ZigiJWxsdSIsIHZhbHVl
KTsKK30KKwordm9pZCBwcmludChQcmludFN0cmVhbSYgc3RyZWFtLCBSYXdQb2ludGVyIHBvaW50
ZXIpCit7CisgICAgc3RyZWFtLnByaW50ZigiJXAiLCBwb2ludGVyLnZhbHVlKCkpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXVEYKKwpJbmRleDogU291cmNlL1dURi93dGYvUHJpbnRTdHJlYW0uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QcmludFN0cmVhbS5oCShyZXZpc2lvbiAwKQor
KysgU291cmNlL1dURi93dGYvUHJpbnRTdHJlYW0uaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
ODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBQcmludFN0cmVhbV9oCisjZGVmaW5lIFByaW50U3RyZWFtX2gKKworI2luY2x1ZGUgPHN0
ZGFyZy5oPgorI2luY2x1ZGUgPHd0Zi9GYXN0QWxsb2NCYXNlLmg+CisjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CisjaW5jbHVkZSA8d3RmL1Jh
d1BvaW50ZXIuaD4KKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisKK25hbWVzcGFjZSBX
VEYgeworCitjbGFzcyBDU3RyaW5nOworY2xhc3MgU3RyaW5nOworCitjbGFzcyBQcmludFN0cmVh
bSB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7IFdURl9NQUtFX05PTkNPUFlBQkxFKFBy
aW50U3RyZWFtKTsKK3B1YmxpYzoKKyAgICBQcmludFN0cmVhbSgpOworICAgIHZpcnR1YWwgflBy
aW50U3RyZWFtKCk7CisKKyAgICB2b2lkIHByaW50Zihjb25zdCBjaGFyKiBmb3JtYXQsIC4uLikg
V1RGX0FUVFJJQlVURV9QUklOVEYoMiwgMyk7CisgICAgdmlydHVhbCB2b2lkIHZwcmludGYoY29u
c3QgY2hhciogZm9ybWF0LCB2YV9saXN0KSA9IDA7CisgICAgdm9pZCBwcmludChjb25zdCBjaGFy
KiBzdHIpOworICAgIHZvaWQgcHJpbnQoY29uc3QgQ1N0cmluZyYpOworICAgIHZvaWQgcHJpbnQo
Y29uc3QgU3RyaW5nJik7IC8vIFBlcmZvcm1zIGxlbmllbnQgdXRmOCBjb252ZXJzaW9uLgorICAg
IHZvaWQgcHJpbnRsbihjb25zdCBjaGFyKiBzdHIpOworICAgIHZvaWQgcHJpbnRsbihjb25zdCBD
U3RyaW5nJik7CisgICAgdm9pZCBwcmludGxuKGNvbnN0IFN0cmluZyYpOyAvLyBQZXJmb3JtcyBs
ZW5pZW50IHV0ZjggY29udmVyc2lvbi4KKyAgICB2b2lkIHByaW50bG4oKTsKKworICAgIC8vIFR5
cGljYWxseSBhIG5vLW9wIGZvciBtYW55IHN1YmNsYXNzZXMgb2YgUHJpbnRTdHJlYW0sIHRoaXMg
aXMgYSBoaW50IHRoYXQKKyAgICAvLyB0aGUgaW1wbGVtZW50YXRpb24gc2hvdWxkIGZsdXNoIGl0
cyBidWZmZXJzIGlmIGl0IGhhZCBub3QgZG9uZSBzbyBhbHJlYWR5LgorICAgIHZpcnR1YWwgdm9p
ZCBmbHVzaCgpOworfTsKKworLy8gVXNlIHByaW50KCkgZnVuY3Rpb25zIHRoYXQgYXJlIG5vdCBw
YXJ0IG9mIHRoZSBjbGFzcyB0byBhbGxvdyBmb3IgYW55b25lIHRvCisvLyBleHRlbmQgaXQuIFRo
ZSBjb252ZW50aW9uIGlzIHRoYXQgaWYgeW91IGhhdmUgYSBkYXRhdHlwZSB0aGF0IGlzIHdvcnRo
IHByaW50aW5nLAorLy8geW91IHNob3VsZCBpbXBsZW1lbnQgYSBtZXRob2Qgd2l0aCB0aGlzIHNp
Z25hdHVyZToKKy8vCisvLyB2b2lkIHByaW50KFByaW50U3RyZWFtJiwgY29uc3QgTXlDbGFzcyYp
CisKK2lubGluZSB2b2lkIHByaW50KFByaW50U3RyZWFtJiBzdHJlYW0sIGNvbnN0IGNoYXIqIHN0
cmluZykKK3sKKyAgICBzdHJlYW0ucHJpbnQoc3RyaW5nKTsKK30KKworaW5saW5lIHZvaWQgcHJp
bnQoUHJpbnRTdHJlYW0mIHN0cmVhbSwgY29uc3QgQ1N0cmluZyYgc3RyaW5nKQoreworICAgIHN0
cmVhbS5wcmludChzdHJpbmcpOworfQorCitpbmxpbmUgdm9pZCBwcmludChQcmludFN0cmVhbSYg
c3RyZWFtLCBjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICBzdHJlYW0ucHJpbnQoc3RyaW5n
KTsKK30KKwordm9pZCBwcmludChQcmludFN0cmVhbSYsIGJvb2wpOwordm9pZCBwcmludChQcmlu
dFN0cmVhbSYsIGludCk7Cit2b2lkIHByaW50KFByaW50U3RyZWFtJiwgdW5zaWduZWQgaW50KTsK
K3ZvaWQgcHJpbnQoUHJpbnRTdHJlYW0mLCBsb25nKTsKK3ZvaWQgcHJpbnQoUHJpbnRTdHJlYW0m
LCB1bnNpZ25lZCBsb25nKTsKK3ZvaWQgcHJpbnQoUHJpbnRTdHJlYW0mLCBsb25nIGxvbmcpOwor
dm9pZCBwcmludChQcmludFN0cmVhbSYsIHVuc2lnbmVkIGxvbmcgbG9uZyk7Cit2b2lkIHByaW50
KFByaW50U3RyZWFtJiwgUmF3UG9pbnRlcik7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMj4KK3ZvaWQgcHJpbnQoUHJpbnRTdHJlYW0mIHN0cmVhbSwgVDEgdmFsdWUxLCBUMiB2
YWx1ZTIpCit7CisgICAgcHJpbnQoc3RyZWFtLCB2YWx1ZTEpOworICAgIHByaW50KHN0cmVhbSwg
dmFsdWUyKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFt
ZSBUMz4KK3ZvaWQgcHJpbnQoUHJpbnRTdHJlYW0mIHN0cmVhbSwgVDEgdmFsdWUxLCBUMiB2YWx1
ZTIsIFQzIHZhbHVlMykKK3sKKyAgICBwcmludChzdHJlYW0sIHZhbHVlMSk7CisgICAgcHJpbnQo
c3RyZWFtLCB2YWx1ZTIpOworICAgIHByaW50KHN0cmVhbSwgdmFsdWUzKTsKK30KKwordGVtcGxh
dGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQ+Cit2
b2lkIHByaW50KFByaW50U3RyZWFtJiBzdHJlYW0sIFQxIHZhbHVlMSwgVDIgdmFsdWUyLCBUMyB2
YWx1ZTMsIFQ0IHZhbHVlNCkKK3sKKyAgICBwcmludChzdHJlYW0sIHZhbHVlMSk7CisgICAgcHJp
bnQoc3RyZWFtLCB2YWx1ZTIpOworICAgIHByaW50KHN0cmVhbSwgdmFsdWUzKTsKKyAgICBwcmlu
dChzdHJlYW0sIHZhbHVlNCk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNT4KK3ZvaWQgcHJpbnQoUHJp
bnRTdHJlYW0mIHN0cmVhbSwgVDEgdmFsdWUxLCBUMiB2YWx1ZTIsIFQzIHZhbHVlMywgVDQgdmFs
dWU0LCBUNSB2YWx1ZTUpCit7CisgICAgcHJpbnQoc3RyZWFtLCB2YWx1ZTEpOworICAgIHByaW50
KHN0cmVhbSwgdmFsdWUyKTsKKyAgICBwcmludChzdHJlYW0sIHZhbHVlMyk7CisgICAgcHJpbnQo
c3RyZWFtLCB2YWx1ZTQpOworICAgIHByaW50KHN0cmVhbSwgdmFsdWU1KTsKK30KKwordGVtcGxh
dGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNj4KK3ZvaWQgcHJpbnQoUHJpbnRTdHJlYW0mIHN0cmVhbSwg
VDEgdmFsdWUxLCBUMiB2YWx1ZTIsIFQzIHZhbHVlMywgVDQgdmFsdWU0LCBUNSB2YWx1ZTUsIFQ2
IHZhbHVlNikKK3sKKyAgICBwcmludChzdHJlYW0sIHZhbHVlMSk7CisgICAgcHJpbnQoc3RyZWFt
LCB2YWx1ZTIpOworICAgIHByaW50KHN0cmVhbSwgdmFsdWUzKTsKKyAgICBwcmludChzdHJlYW0s
IHZhbHVlNCk7CisgICAgcHJpbnQoc3RyZWFtLCB2YWx1ZTUpOworICAgIHByaW50KHN0cmVhbSwg
dmFsdWU2KTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVDE+Cit2b2lkIHByaW50bG4oUHJpbnRT
dHJlYW0mIHN0cmVhbSwgVDEgdmFsdWUxKQoreworICAgIHByaW50KHN0cmVhbSwgdmFsdWUxKTsK
KyAgICBzdHJlYW0ucHJpbnRsbigpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDI+Cit2b2lkIHByaW50bG4oUHJpbnRTdHJlYW0mIHN0cmVhbSwgVDEgdmFsdWUxLCBUMiB2
YWx1ZTIpCit7CisgICAgcHJpbnQoc3RyZWFtLCB2YWx1ZTEsIHZhbHVlMik7CisgICAgc3RyZWFt
LnByaW50bG4oKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBl
bmFtZSBUMz4KK3ZvaWQgcHJpbnRsbihQcmludFN0cmVhbSYgc3RyZWFtLCBUMSB2YWx1ZTEsIFQy
IHZhbHVlMiwgVDMgdmFsdWUzKQoreworICAgIHByaW50KHN0cmVhbSwgdmFsdWUxLCB2YWx1ZTIs
IHZhbHVlMyk7CisgICAgc3RyZWFtLnByaW50bG4oKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQ+Cit2b2lkIHByaW50bG4o
UHJpbnRTdHJlYW0mIHN0cmVhbSwgVDEgdmFsdWUxLCBUMiB2YWx1ZTIsIFQzIHZhbHVlMywgVDQg
dmFsdWU0KQoreworICAgIHByaW50KHN0cmVhbSwgdmFsdWUxLCB2YWx1ZTIsIHZhbHVlMywgdmFs
dWU0KTsKKyAgICBzdHJlYW0ucHJpbnRsbigpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDU+Cit2b2lk
IHByaW50bG4oUHJpbnRTdHJlYW0mIHN0cmVhbSwgVDEgdmFsdWUxLCBUMiB2YWx1ZTIsIFQzIHZh
bHVlMywgVDQgdmFsdWU0LCBUNSB2YWx1ZTUpCit7CisgICAgcHJpbnQoc3RyZWFtLCB2YWx1ZTEs
IHZhbHVlMiwgdmFsdWUzLCB2YWx1ZTQsIHZhbHVlNSk7CisgICAgc3RyZWFtLnByaW50bG4oKTsK
K30KKwordGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNj4KK3ZvaWQgcHJpbnRsbihQcmludFN0
cmVhbSYgc3RyZWFtLCBUMSB2YWx1ZTEsIFQyIHZhbHVlMiwgVDMgdmFsdWUzLCBUNCB2YWx1ZTQs
IFQ1IHZhbHVlNSwgVDYgdmFsdWU2KQoreworICAgIHByaW50KHN0cmVhbSwgdmFsdWUxLCB2YWx1
ZTIsIHZhbHVlMywgdmFsdWU0LCB2YWx1ZTUsIHZhbHVlNik7CisgICAgc3RyZWFtLnByaW50bG4o
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6UHJpbnRTdHJlYW07CisK
KyNlbmRpZiAvLyBQcmludFN0cmVhbV9oCisKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1Jhd1BvaW50
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9SYXdQb2ludGVyLmgJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvV1RGL3d0Zi9SYXdQb2ludGVyLmgJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2lmbmRlZiBSYXdQb2ludGVyX2gKKyNkZWZpbmUgUmF3UG9pbnRlcl9oCisKK25hbWVzcGFjZSBX
VEYgeworCitjbGFzcyBSYXdQb2ludGVyIHsKK3B1YmxpYzoKKyAgICBSYXdQb2ludGVyKCkKKyAg
ICAgICAgOiBtX3ZhbHVlKDApCisgICAgeworICAgIH0KKyAgICAKKyAgICBleHBsaWNpdCBSYXdQ
b2ludGVyKHZvaWQqIHZhbHVlKQorICAgICAgICA6IG1fdmFsdWUodmFsdWUpCisgICAgeworICAg
IH0KKyAgICAKKyAgICB2b2lkKiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KKyAg
ICAKK3ByaXZhdGU6CisgICAgdm9pZCogbV92YWx1ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdU
RgorCisjZW5kaWYgLy8gUmF3UG9pbnRlcl9oCisK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176419</attachid>
            <date>2012-11-28 00:58:01 -0800</date>
            <delta_ts>2012-11-28 09:11:09 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>print.patch</filename>
            <type>text/plain</type>
            <size>21912</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM1OTgzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDEyLTExLTI4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
SXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHNheSBkYXRhTG9nKCJjb3VudCA9ICIsIGNvdW50LCAi
XG4iKSBpbnN0ZWFkIG9mIGRhdGFMb2dGKCJjb3VudCA9ICVkXG4iLCBjb3VudCkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzAwOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluc3RlYWQgb2YgY29udmVy
dGluZyBhbGwgb2YgSlNDIHRvIHVzZSB0aGUgbmV3IGRhdGFMb2coKS9wcmludCgpIG1ldGhvZHMs
IEkganVzdCBjaGFuZ2VkCisgICAgICAgIG9uZSBwbGFjZTogZHVtcGluZyBvZiBhYnN0cmFjdCB2
YWx1ZXMuIFRoaXMgaXMgbWFpbmx5IGp1c3QgdG8gZW5zdXJlIHRoYXQgdGhlIGNvZGUgSQorICAg
ICAgICBhZGRlZCB0byBXVEYgaXMgYWN0dWFsbHkgZG9pbmcgdGhpbmdzLgorCisgICAgICAgICog
Ynl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wKToK
KyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RWYWx1ZS5oOgorICAgICAgICAoSlNDOjpERkc6OkFi
c3RyYWN0VmFsdWU6OmR1bXApOgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdURjo6cHJpbnRJ
bnRlcm5hbCk6CisgICAgICAgICogZGZnL0RGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUuaDoKKyAg
ICAgICAgKEpTQzo6REZHOjpTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlOjpkdW1wKToKKyAgICAgICAg
KFdURik6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorCiAyMDEyLTExLTI3ICBGaWxp
cCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgQ29udmVydCBzb21lIHJlbWFp
bmluZyB1c2VzIG9mIEZJTEUqIHRvIFByaW50U3RyZWFtJi4KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAxMzU5ODEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDk3LDcgKzQ5Nyw3IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wKCkKICAgICAgICAgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQgbG9uZz4oaW5zdHJ1Y3Rpb25zKCkuc2l6ZSgpICogc2l6ZW9mKElu
c3RydWN0aW9uKSksCiAgICAgICAgIHRoaXMsIGNvZGVUeXBlVG9TdHJpbmcoY29kZVR5cGUoKSks
IG1fbnVtUGFyYW1ldGVycywgbV9udW1DYWxsZWVSZWdpc3RlcnMsCiAgICAgICAgIG1fbnVtVmFy
cyk7Ci0gICAgaWYgKHN5bWJvbFRhYmxlKCktPmNhcHR1cmVDb3VudCgpKQorICAgIGlmIChzeW1i
b2xUYWJsZSgpICYmIHN5bWJvbFRhYmxlKCktPmNhcHR1cmVDb3VudCgpKQogICAgICAgICBkYXRh
TG9nRigiOyAlZCBjYXB0dXJlZCB2YXIocykiLCBzeW1ib2xUYWJsZSgpLT5jYXB0dXJlQ291bnQo
KSk7CiAgICAgaWYgKHVzZXNBcmd1bWVudHMoKSkgewogICAgICAgICBkYXRhTG9nRigKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RWYWx1ZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RWYWx1ZS5oCShyZXZpc2lv
biAxMzU5ODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0VmFsdWUu
aAkod29ya2luZyBjb3B5KQpAQCAtMzczLDEzICszNzMsMTIgQEAgc3RydWN0IEFic3RyYWN0VmFs
dWUgewogICAgIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogICAgIHsK
LSAgICAgICAgb3V0LnByaW50ZigiKCVzLCAlcywgIiwgc3BlY3VsYXRpb25Ub1N0cmluZyhtX3R5
cGUpLCBhcnJheU1vZGVzVG9TdHJpbmcobV9hcnJheU1vZGVzKSk7Ci0gICAgICAgIG1fY3VycmVu
dEtub3duU3RydWN0dXJlLmR1bXAob3V0KTsKLSAgICAgICAgb3V0LnByaW50ZigiLCAiKTsKLSAg
ICAgICAgbV9mdXR1cmVQb3NzaWJsZVN0cnVjdHVyZS5kdW1wKG91dCk7CisgICAgICAgIG91dC5w
cmludCgKKyAgICAgICAgICAgICIoIiwgc3BlY3VsYXRpb25Ub1N0cmluZyhtX3R5cGUpLCAiLCAi
LCBhcnJheU1vZGVzVG9TdHJpbmcobV9hcnJheU1vZGVzKSwgIiwgIiwKKyAgICAgICAgICAgIG1f
Y3VycmVudEtub3duU3RydWN0dXJlLCAiLCAiLCBtX2Z1dHVyZVBvc3NpYmxlU3RydWN0dXJlKTsK
ICAgICAgICAgaWYgKCEhbV92YWx1ZSkKLSAgICAgICAgICAgIG91dC5wcmludGYoIiwgJXMiLCBt
X3ZhbHVlLmRlc2NyaXB0aW9uKCkpOwotICAgICAgICBvdXQucHJpbnRmKCIpIik7CisgICAgICAg
ICAgICBvdXQucHJpbnQoIiwgIiwgbV92YWx1ZS5kZXNjcmlwdGlvbigpKTsKKyAgICAgICAgb3V0
LnByaW50KCIpIik7CiAgICAgfQogICAgIAogICAgIC8vIEEgZ3JlYXQgd2F5IHRvIHRoaW5rIGFi
b3V0IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gbV9jdXJyZW50S25vd25TdHJ1Y3R1cmUgYW5kCkBA
IC01MzMsNiArNTMyLDE1IEBAIHByaXZhdGU6CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcK
IAorbmFtZXNwYWNlIFdURiB7CisKK2lubGluZSB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJl
YW0mIG91dCwgY29uc3QgSlNDOjpERkc6OkFic3RyYWN0VmFsdWUmIHZhbHVlKQoreworICAgIHZh
bHVlLmR1bXAob3V0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKICNlbmRpZiAvLyBFTkFC
TEUoREZHX0pJVCkKIAogI2VuZGlmIC8vIERGR0Fic3RyYWN0VmFsdWVfaApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVl
LmgJKHJldmlzaW9uIDEzNTk4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Ry
dWN0dXJlQWJzdHJhY3RWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMDEsMTQgKzMwMSwxNCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgewog
ICAgICAgICBpZiAoaXNUb3AoKSkgewotICAgICAgICAgICAgb3V0LnByaW50ZigiVE9QIik7Cisg
ICAgICAgICAgICBvdXQucHJpbnQoIlRPUCIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAgICAgICAgIAotICAgICAgICBvdXQucHJpbnRmKCJbIik7CisgICAgICAgIG91dC5wcmlu
dCgiWyIpOwogICAgICAgICBpZiAobV9zdHJ1Y3R1cmUpCi0gICAgICAgICAgICBvdXQucHJpbnRm
KCIlcCIsIG1fc3RydWN0dXJlKTsKLSAgICAgICAgb3V0LnByaW50ZigiXSIpOworICAgICAgICAg
ICAgb3V0LnByaW50KFJhd1BvaW50ZXIobV9zdHJ1Y3R1cmUpKTsKKyAgICAgICAgb3V0LnByaW50
KCJdIik7CiAgICAgfQogCiBwcml2YXRlOgpAQCAtMzIwLDYgKzMyMCwxNSBAQCBwcml2YXRlOgog
CiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAKK25hbWVzcGFjZSBXVEYgeworCitpbmxpbmUg
dm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIGNvbnN0IEpTQzo6REZHOjpTdHJ1
Y3R1cmVBYnN0cmFjdFZhbHVlJiB2YWx1ZSkKK3sKKyAgICB2YWx1ZS5kdW1wKG91dCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdURgorCiAjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCiAKICNlbmRp
ZiAvLyBERkdTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlX2gKSW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzU5ODMp
CisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBA
CisyMDEyLTExLTI4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
SXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHNheSBkYXRhTG9nKCJjb3VudCA9ICIsIGNvdW50LCAi
XG4iKSBpbnN0ZWFkIG9mIGRhdGFMb2dGKCJjb3VudCA9ICVkXG4iLCBjb3VudCkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzAwOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRoZSBhYmlsaXR5
IHRvIHVzZSBvdXQucHJpbnQoLi4uKSBhbmQgZGF0YUxvZyguLi4pIHZhcmlhZGljYWxseSBhbmQg
d2l0aAorICAgICAgICBXVEY6OnByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBjb25zdCBUJikg
b3ZlcmxvYWRzIGZvciBhbnkgdHlwZSBUIHRoYXQgeW91IHdhbnQKKyAgICAgICAgdG8gYmUgYWJs
ZSB0byBwYXNzIGFzIGFuIGFyZ3VtZW50IHRvIG91dC5wcmludCgpIG9yIGRhdGFMb2coKS4gQWxz
byBhZGRlZCBvbmUKKyAgICAgICAgZXhhbXBsZSBjbGFzcyBmb3IgZG9pbmcgdGhpczogUmF3UG9p
bnRlciwgd2hpY2ggY2FuIGJlIHVzZWQgdG8gZm9yY2UgYSBwb2ludGVyCisgICAgICAgIHRvIGJl
IHByaW50ZWQgYXMgIiVwIiByYXRoZXIgdGhhbiBtYXRjaGluZyBhbnkgb3ZlcmxvYWRzIHRoYXQg
eW91IG1pZ2h0IHdhbnQgdG8KKyAgICAgICAgaW50cm9kdWNlLgorCisgICAgICAgICogR05VbWFr
ZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXVEYuZ3lwaToKKyAgICAgICAgKiBXVEYucHJvOgor
ICAgICAgICAqIFdURi52Y3Byb2ovV1RGLnZjcHJvajoKKyAgICAgICAgKiBXVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogd3RmL0RhdGFMb2cuaDoKKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6OmRhdGFMb2cp
OgorICAgICAgICAqIHd0Zi9QcmludFN0cmVhbS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50
ZXJuYWwpOgorICAgICAgICAoV1RGKToKKyAgICAgICAgKiB3dGYvUHJpbnRTdHJlYW0uaDoKKyAg
ICAgICAgKFByaW50U3RyZWFtKToKKyAgICAgICAgKFdURjo6UHJpbnRTdHJlYW06OnByaW50KToK
KyAgICAgICAgKFdURik6CisgICAgICAgICogd3RmL1Jhd1BvaW50ZXIuaDogQWRkZWQuCisgICAg
ICAgIChXVEYpOgorICAgICAgICAoUmF3UG9pbnRlcik6CisgICAgICAgIChXVEY6OlJhd1BvaW50
ZXI6OlJhd1BvaW50ZXIpOgorICAgICAgICAoV1RGOjpSYXdQb2ludGVyOjp2YWx1ZSk6CisKIDIw
MTItMTEtMjcgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBDb252
ZXJ0IHNvbWUgcmVtYWluaW5nIHVzZXMgb2YgRklMRSogdG8gUHJpbnRTdHJlYW0mLgpJbmRleDog
U291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYv
R05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTM1OTgxKQorKysgU291cmNlL1dURi9HTlVt
YWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMzUsNiArMTM1LDcgQEAgd3RmX3Nv
dXJjZXMgKz0gXAogICAgIFNvdXJjZS9XVEYvd3RmL1JhbmRvbU51bWJlci5jcHAgXAogICAgIFNv
dXJjZS9XVEYvd3RmL1JhbmRvbU51bWJlci5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9SYW5kb21O
dW1iZXJTZWVkLmggXAorICAgIFNvdXJjZS9XVEYvd3RmL1Jhd1BvaW50ZXIuaFwgCiAgICAgU291
cmNlL1dURi93dGYvUmVkQmxhY2tUcmVlLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL1JlZkNvdW50
ZWQuaCBcCiAgICAgU291cmNlL1dURi93dGYvUmVmQ291bnRlZEFycmF5LmggXApJbmRleDogU291
cmNlL1dURi9XVEYuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL1dURi5neXBpCShyZXZp
c2lvbiAxMzU5ODEpCisrKyBTb3VyY2UvV1RGL1dURi5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC04
NSw2ICs4NSw3IEBACiAgICAgICAgICAgICAnd3RmL1Bvc3NpYmx5TnVsbC5oJywKICAgICAgICAg
ICAgICd3dGYvUHJpbnRTdHJlYW0uaCcsCiAgICAgICAgICAgICAnd3RmL1JhbmRvbU51bWJlci5o
JywKKyAgICAgICAgICAgICd3dGYvUmF3UG9pbnRlci5oJywKICAgICAgICAgICAgICd3dGYvUmVm
Q291bnRlZC5oJywKICAgICAgICAgICAgICd3dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmgnLAog
ICAgICAgICAgICAgJ3d0Zi9SZWZQdHIuaCcsCkluZGV4OiBTb3VyY2UvV1RGL1dURi5wcm8KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dURi9XVEYucHJvCShyZXZpc2lvbiAxMzU5ODEpCisrKyBTb3Vy
Y2UvV1RGL1dURi5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTEzMSw2ICsxMzEsNyBAQCBIRUFERVJT
ICs9IFwKICAgICBQcmludFN0cmVhbS5oIFwKICAgICBSYW5kb21OdW1iZXIuaCBcCiAgICAgUmFu
ZG9tTnVtYmVyU2VlZC5oIFwKKyAgICBSYXdQb2ludGVyLmggXAogICAgIFJlZEJsYWNrVHJlZS5o
IFwKICAgICBSZWZDb3VudGVkLmggXAogICAgIFJlZkNvdW50ZWRMZWFrQ291bnRlci5oIFwKSW5k
ZXg6IFNvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCShyZXZpc2lvbiAxMzU5ODEpCisrKyBTb3VyY2Uv
V1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMTEyNSw2ICsxMTI1
LDEwIEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5cd3Rm
XFJhd1BvaW50ZXIuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRo
PSIuLlx3dGZcUmVkQmxhY2tUcmVlLmgiCiAJCQk+CiAJCTwvRmlsZT4KSW5kZXg6IFNvdXJjZS9X
VEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dU
Ri9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTM1OTgxKQorKysgU291
cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
MjEsNiArMjEsNyBAQAogLyogRW5kIFBCWEFnZ3JlZ2F0ZVRhcmdldCBzZWN0aW9uICovCiAKIC8q
IEJlZ2luIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCisJCTBGODcxMDVBMTY2NDNGMTkwMDkwQjBB
RCAvKiBSYXdQb2ludGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjg3MTA1OTE2NjQzRjE5MDA5MEIwQUQgLyogUmF3UG9pbnRlci5oICovOyB9Owog
CQkwRjlEMzM2MDE2NURCQTczMDA1QUQzODcgLyogRmlsZVByaW50U3RyZWFtLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUQzMzVCMTY1REJBNzMw
MDVBRDM4NyAvKiBGaWxlUHJpbnRTdHJlYW0uY3BwICovOyB9OwogCQkwRjlEMzM2MTE2NURCQTcz
MDA1QUQzODcgLyogRmlsZVByaW50U3RyZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlEMzM1QzE2NURCQTczMDA1QUQzODcgLyogRmlsZVByaW50
U3RyZWFtLmggKi87IH07CiAJCTBGOUQzMzYyMTY1REJBNzMwMDVBRDM4NyAvKiBQcmludFN0cmVh
bS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlE
MzM1RDE2NURCQTczMDA1QUQzODcgLyogUHJpbnRTdHJlYW0uY3BwICovOyB9OwpAQCAtMzE4LDYg
KzMxOSw3IEBACiAvKiBFbmQgUEJYQ29udGFpbmVySXRlbVByb3h5IHNlY3Rpb24gKi8KIAogLyog
QmVnaW4gUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCisJCTBGODcxMDU5MTY2NDNGMTkwMDkw
QjBBRCAvKiBSYXdQb2ludGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJh
d1BvaW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5RDMzNUIxNjVEQkE3
MzAwNUFEMzg3IC8qIEZpbGVQcmludFN0cmVhbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBGaWxlUHJpbnRTdHJlYW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjlEMzM1QzE2NURCQTczMDA1QUQzODcgLyogRmlsZVByaW50U3RyZWFtLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVQcmludFN0cmVhbS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlEMzM1RDE2NURCQTczMDA1QUQzODcgLyogUHJpbnRT
dHJlYW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJpbnRTdHJl
YW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODA3LDYgKzgwOSw3IEBACiAJ
CQkJQThBNDcyRkIxNTFBODI1QjAwNDEyM0ZGIC8qIFJhbmRvbU51bWJlci5jcHAgKi8sCiAJCQkJ
QThBNDcyRkMxNTFBODI1QjAwNDEyM0ZGIC8qIFJhbmRvbU51bWJlci5oICovLAogCQkJCUE4QTQ3
MkZEMTUxQTgyNUIwMDQxMjNGRiAvKiBSYW5kb21OdW1iZXJTZWVkLmggKi8sCisJCQkJMEY4NzEw
NTkxNjY0M0YxOTAwOTBCMEFEIC8qIFJhd1BvaW50ZXIuaCAqLywKIAkJCQlBOEE0NzJGRTE1MUE4
MjVCMDA0MTIzRkYgLyogUmVkQmxhY2tUcmVlLmggKi8sCiAJCQkJQThBNDcyRkYxNTFBODI1QjAw
NDEyM0ZGIC8qIFJlZkNvdW50ZWQuaCAqLywKIAkJCQlBOEE0NzMwMDE1MUE4MjVCMDA0MTIzRkYg
LyogUmVmQ291bnRlZEFycmF5LmggKi8sCkBAIC0xMjM3LDYgKzEyNDAsNyBAQAogCQkJCUE4QTQ3
NDg3MTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZUaHJlYWREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjlEMzM2MTE2NURCQTczMDA1QUQzODcgLyogRmlsZVByaW50U3RyZWFtLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjlEMzM2MzE2NURCQTczMDA1QUQzODcgLyogUHJpbnRTdHJlYW0uaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGODcxMDVBMTY2NDNGMTkwMDkwQjBBRCAvKiBSYXdQb2ludGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMzU5ODEp
CisrKyBTb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtOTAs
NiArOTAsNyBAQCBTRVQoV1RGX0hFQURFUlMKICAgICBQcmludFN0cmVhbS5oCiAgICAgUmFuZG9t
TnVtYmVyLmgKICAgICBSYW5kb21OdW1iZXJTZWVkLmgKKyAgICBSYXdQb2ludGVyLmgKICAgICBS
ZWRCbGFja1RyZWUuaAogICAgIFJlZkNvdW50ZWQuaAogICAgIFJlZkNvdW50ZWRMZWFrQ291bnRl
ci5oCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9EYXRhTG9nLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dURi93dGYvRGF0YUxvZy5oCShyZXZpc2lvbiAxMzU5ODEpCisrKyBTb3VyY2UvV1RGL3d0Zi9E
YXRhTG9nLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDggKzQwLDY5IEBAIFdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIGRhdGFMb2dGVihjb25zdCAKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRhdGFM
b2dGKGNvbnN0IGNoYXIqIGZvcm1hdCwgLi4uKSBXVEZfQVRUUklCVVRFX1BSSU5URigxLCAyKTsK
IFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRhdGFMb2dGU3RyaW5nKGNvbnN0IGNoYXIqKTsKIAor
dGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgZGF0YUxvZyhjb25zdCBUJiB2YWx1ZSkKK3sKKyAg
ICBkYXRhRmlsZSgpLnByaW50KHZhbHVlKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5
cGVuYW1lIFQyPgordm9pZCBkYXRhTG9nKGNvbnN0IFQxJiB2YWx1ZTEsIGNvbnN0IFQyJiB2YWx1
ZTIpCit7CisgICAgZGF0YUZpbGUoKS5wcmludCh2YWx1ZTEsIHZhbHVlMik7Cit9CisKK3RlbXBs
YXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDM+Cit2b2lkIGRhdGFMb2co
Y29uc3QgVDEmIHZhbHVlMSwgY29uc3QgVDImIHZhbHVlMiwgY29uc3QgVDMmIHZhbHVlMykKK3sK
KyAgICBkYXRhRmlsZSgpLnByaW50KHZhbHVlMSwgdmFsdWUyLCB2YWx1ZTMpOworfQorCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUND4K
K3ZvaWQgZGF0YUxvZyhjb25zdCBUMSYgdmFsdWUxLCBjb25zdCBUMiYgdmFsdWUyLCBjb25zdCBU
MyYgdmFsdWUzLCBjb25zdCBUNCYgdmFsdWU0KQoreworICAgIGRhdGFGaWxlKCkucHJpbnQodmFs
dWUxLCB2YWx1ZTIsIHZhbHVlMywgdmFsdWU0KTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVDEs
IHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1Pgordm9p
ZCBkYXRhTG9nKGNvbnN0IFQxJiB2YWx1ZTEsIGNvbnN0IFQyJiB2YWx1ZTIsIGNvbnN0IFQzJiB2
YWx1ZTMsIGNvbnN0IFQ0JiB2YWx1ZTQsIGNvbnN0IFQ1JiB2YWx1ZTUpCit7CisgICAgZGF0YUZp
bGUoKS5wcmludCh2YWx1ZTEsIHZhbHVlMiwgdmFsdWUzLCB2YWx1ZTQsIHZhbHVlNSk7Cit9CisK
K3RlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDY+Cit2b2lkIGRhdGFMb2coY29uc3QgVDEmIHZh
bHVlMSwgY29uc3QgVDImIHZhbHVlMiwgY29uc3QgVDMmIHZhbHVlMywgY29uc3QgVDQmIHZhbHVl
NCwgY29uc3QgVDUmIHZhbHVlNSwgY29uc3QgVDYmIHZhbHVlNikKK3sKKyAgICBkYXRhRmlsZSgp
LnByaW50KHZhbHVlMSwgdmFsdWUyLCB2YWx1ZTMsIHZhbHVlNCwgdmFsdWU1LCB2YWx1ZTYpOwor
fQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNz4KK3ZvaWQgZGF0
YUxvZyhjb25zdCBUMSYgdmFsdWUxLCBjb25zdCBUMiYgdmFsdWUyLCBjb25zdCBUMyYgdmFsdWUz
LCBjb25zdCBUNCYgdmFsdWU0LCBjb25zdCBUNSYgdmFsdWU1LCBjb25zdCBUNiYgdmFsdWU2LCBj
b25zdCBUNyYgdmFsdWU3KQoreworICAgIGRhdGFGaWxlKCkucHJpbnQodmFsdWUxLCB2YWx1ZTIs
IHZhbHVlMywgdmFsdWU0LCB2YWx1ZTUsIHZhbHVlNiwgdmFsdWU3KTsKK30KKwordGVtcGxhdGU8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVu
YW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4Pgordm9pZCBkYXRh
TG9nKGNvbnN0IFQxJiB2YWx1ZTEsIGNvbnN0IFQyJiB2YWx1ZTIsIGNvbnN0IFQzJiB2YWx1ZTMs
IGNvbnN0IFQ0JiB2YWx1ZTQsIGNvbnN0IFQ1JiB2YWx1ZTUsIGNvbnN0IFQ2JiB2YWx1ZTYsIGNv
bnN0IFQ3JiB2YWx1ZTcsIGNvbnN0IFQ4JiB2YWx1ZTgpCit7CisgICAgZGF0YUZpbGUoKS5wcmlu
dCh2YWx1ZTEsIHZhbHVlMiwgdmFsdWUzLCB2YWx1ZTQsIHZhbHVlNSwgdmFsdWU2LCB2YWx1ZTcs
IHZhbHVlOCk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5h
bWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDk+Cit2b2lkIGRhdGFMb2coY29uc3QgVDEmIHZhbHVl
MSwgY29uc3QgVDImIHZhbHVlMiwgY29uc3QgVDMmIHZhbHVlMywgY29uc3QgVDQmIHZhbHVlNCwg
Y29uc3QgVDUmIHZhbHVlNSwgY29uc3QgVDYmIHZhbHVlNiwgY29uc3QgVDcmIHZhbHVlNywgY29u
c3QgVDgmIHZhbHVlOCwgY29uc3QgVDkmIHZhbHVlOSkKK3sKKyAgICBkYXRhRmlsZSgpLnByaW50
KHZhbHVlMSwgdmFsdWUyLCB2YWx1ZTMsIHZhbHVlNCwgdmFsdWU1LCB2YWx1ZTYsIHZhbHVlNywg
dmFsdWU4LCB2YWx1ZTkpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBl
bmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTA+Cit2b2lkIGRh
dGFMb2coY29uc3QgVDEmIHZhbHVlMSwgY29uc3QgVDImIHZhbHVlMiwgY29uc3QgVDMmIHZhbHVl
MywgY29uc3QgVDQmIHZhbHVlNCwgY29uc3QgVDUmIHZhbHVlNSwgY29uc3QgVDYmIHZhbHVlNiwg
Y29uc3QgVDcmIHZhbHVlNywgY29uc3QgVDgmIHZhbHVlOCwgY29uc3QgVDkmIHZhbHVlOSwgY29u
c3QgVDEwJiB2YWx1ZTEwKQoreworICAgIGRhdGFGaWxlKCkucHJpbnQodmFsdWUxLCB2YWx1ZTIs
IHZhbHVlMywgdmFsdWU0LCB2YWx1ZTUsIHZhbHVlNiwgdmFsdWU3LCB2YWx1ZTgsIHZhbHVlOSwg
dmFsdWUxMCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdURgogCit1c2luZyBXVEY6OmRhdGFMb2c7
CiB1c2luZyBXVEY6OmRhdGFMb2dGOwogdXNpbmcgV1RGOjpkYXRhTG9nRlN0cmluZzsKIApJbmRl
eDogU291cmNlL1dURi93dGYvUHJpbnRTdHJlYW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL1ByaW50U3RyZWFtLmNwcAkocmV2aXNpb24gMTM1OTgxKQorKysgU291cmNlL1dURi93
dGYvUHJpbnRTdHJlYW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw1ICs0Nyw3MyBAQCB2b2lk
IFByaW50U3RyZWFtOjpmbHVzaCgpCiB7CiB9CiAKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0
cmVhbSYgb3V0LCBjb25zdCBjaGFyKiBzdHJpbmcpCit7CisgICAgb3V0LnByaW50ZigiJXMiLCBz
dHJpbmcpOworfQorCit2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgY29uc3Qg
Q1N0cmluZyYgc3RyaW5nKQoreworICAgIG91dC5wcmludChzdHJpbmcuZGF0YSgpKTsKK30KKwor
dm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIGNvbnN0IFN0cmluZyYgc3RyaW5n
KQoreworICAgIG91dC5wcmludChzdHJpbmcudXRmOCgpKTsKK30KKwordm9pZCBwcmludEludGVy
bmFsKFByaW50U3RyZWFtJiBvdXQsIGJvb2wgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlKQorICAg
ICAgICBvdXQucHJpbnQoInRydWUiKTsKKyAgICBlbHNlCisgICAgICAgIG91dC5wcmludCgiZmFs
c2UiKTsKK30KKwordm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIGludCB2YWx1
ZSkKK3sKKyAgICBvdXQucHJpbnRmKCIlZCIsIHZhbHVlKTsKK30KKwordm9pZCBwcmludEludGVy
bmFsKFByaW50U3RyZWFtJiBvdXQsIHVuc2lnbmVkIHZhbHVlKQoreworICAgIG91dC5wcmludGYo
IiV1IiwgdmFsdWUpOworfQorCit2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwg
bG9uZyB2YWx1ZSkKK3sKKyAgICBvdXQucHJpbnRmKCIlbGQiLCB2YWx1ZSk7Cit9CisKK3ZvaWQg
cHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCB1bnNpZ25lZCBsb25nIHZhbHVlKQorewor
ICAgIG91dC5wcmludGYoIiVsdSIsIHZhbHVlKTsKK30KKwordm9pZCBwcmludEludGVybmFsKFBy
aW50U3RyZWFtJiBvdXQsIGxvbmcgbG9uZyB2YWx1ZSkKK3sKKyAgICBvdXQucHJpbnRmKCIlbGxk
IiwgdmFsdWUpOworfQorCit2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgdW5z
aWduZWQgbG9uZyBsb25nIHZhbHVlKQoreworICAgIG91dC5wcmludGYoIiVsbHUiLCB2YWx1ZSk7
Cit9CisKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBmbG9hdCB2YWx1ZSkK
K3sKKyAgICBvdXQucHJpbnQoc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSkpOworfQorCit2b2lk
IHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgZG91YmxlIHZhbHVlKQoreworICAgIG91
dC5wcmludGYoIiVsZiIsIHZhbHVlKTsKK30KKwordm9pZCBwcmludEludGVybmFsKFByaW50U3Ry
ZWFtJiBvdXQsIFJhd1BvaW50ZXIgdmFsdWUpCit7CisgICAgb3V0LnByaW50ZigiJXAiLCB2YWx1
ZS52YWx1ZSgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RGCiAKSW5kZXg6IFNvdXJjZS9XVEYv
d3RmL1ByaW50U3RyZWFtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUHJpbnRTdHJl
YW0uaAkocmV2aXNpb24gMTM1OTgxKQorKysgU291cmNlL1dURi93dGYvUHJpbnRTdHJlYW0uaAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPHd0Zi9GYXN0QWxsb2NC
YXNlLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1BsYXRm
b3JtLmg+CisjaW5jbHVkZSA8d3RmL1Jhd1BvaW50ZXIuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGli
RXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtNDksOCArNTAsMTI3IEBAIHB1YmxpYzoK
ICAgICAvLyBUeXBpY2FsbHkgYSBuby1vcCBmb3IgbWFueSBzdWJjbGFzc2VzIG9mIFByaW50U3Ry
ZWFtLCB0aGlzIGlzIGEgaGludCB0aGF0CiAgICAgLy8gdGhlIGltcGxlbWVudGF0aW9uIHNob3Vs
ZCBmbHVzaCBpdHMgYnVmZmVycyBpZiBpdCBoYWQgbm90IGRvbmUgc28gYWxyZWFkeS4KICAgICB2
aXJ0dWFsIHZvaWQgZmx1c2goKTsKKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAg
IHZvaWQgcHJpbnQoY29uc3QgVCYgdmFsdWUpCisgICAgeworICAgICAgICBwcmludEludGVybmFs
KCp0aGlzLCB2YWx1ZSk7CisgICAgfQorICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMj4KKyAgICB2b2lkIHByaW50KGNvbnN0IFQxJiB2YWx1ZTEsIGNvbnN0IFQyJiB2
YWx1ZTIpCisgICAgeworICAgICAgICBwcmludCh2YWx1ZTEpOworICAgICAgICBwcmludCh2YWx1
ZTIpOworICAgIH0KKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzPgorICAgIHZvaWQgcHJpbnQoY29uc3QgVDEmIHZhbHVlMSwgY29uc3QgVDIm
IHZhbHVlMiwgY29uc3QgVDMmIHZhbHVlMykKKyAgICB7CisgICAgICAgIHByaW50KHZhbHVlMSk7
CisgICAgICAgIHByaW50KHZhbHVlMik7CisgICAgICAgIHByaW50KHZhbHVlMyk7CisgICAgfQor
ICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMs
IHR5cGVuYW1lIFQ0PgorICAgIHZvaWQgcHJpbnQoY29uc3QgVDEmIHZhbHVlMSwgY29uc3QgVDIm
IHZhbHVlMiwgY29uc3QgVDMmIHZhbHVlMywgY29uc3QgVDQmIHZhbHVlNCkKKyAgICB7CisgICAg
ICAgIHByaW50KHZhbHVlMSk7CisgICAgICAgIHByaW50KHZhbHVlMik7CisgICAgICAgIHByaW50
KHZhbHVlMyk7CisgICAgICAgIHByaW50KHZhbHVlNCk7CisgICAgfQorICAgIAorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNT4KKyAgICB2b2lkIHByaW50KGNvbnN0IFQxJiB2YWx1ZTEsIGNvbnN0IFQyJiB2
YWx1ZTIsIGNvbnN0IFQzJiB2YWx1ZTMsIGNvbnN0IFQ0JiB2YWx1ZTQsIGNvbnN0IFQ1JiB2YWx1
ZTUpCisgICAgeworICAgICAgICBwcmludCh2YWx1ZTEpOworICAgICAgICBwcmludCh2YWx1ZTIp
OworICAgICAgICBwcmludCh2YWx1ZTMpOworICAgICAgICBwcmludCh2YWx1ZTQpOworICAgICAg
ICBwcmludCh2YWx1ZTUpOworICAgIH0KKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVu
YW1lIFQ2PgorICAgIHZvaWQgcHJpbnQoY29uc3QgVDEmIHZhbHVlMSwgY29uc3QgVDImIHZhbHVl
MiwgY29uc3QgVDMmIHZhbHVlMywgY29uc3QgVDQmIHZhbHVlNCwgY29uc3QgVDUmIHZhbHVlNSwg
Y29uc3QgVDYmIHZhbHVlNikKKyAgICB7CisgICAgICAgIHByaW50KHZhbHVlMSk7CisgICAgICAg
IHByaW50KHZhbHVlMik7CisgICAgICAgIHByaW50KHZhbHVlMyk7CisgICAgICAgIHByaW50KHZh
bHVlNCk7CisgICAgICAgIHByaW50KHZhbHVlNSk7CisgICAgICAgIHByaW50KHZhbHVlNik7Cisg
ICAgfQorICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5h
bWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
PgorICAgIHZvaWQgcHJpbnQoY29uc3QgVDEmIHZhbHVlMSwgY29uc3QgVDImIHZhbHVlMiwgY29u
c3QgVDMmIHZhbHVlMywgY29uc3QgVDQmIHZhbHVlNCwgY29uc3QgVDUmIHZhbHVlNSwgY29uc3Qg
VDYmIHZhbHVlNiwgY29uc3QgVDcmIHZhbHVlNykKKyAgICB7CisgICAgICAgIHByaW50KHZhbHVl
MSk7CisgICAgICAgIHByaW50KHZhbHVlMik7CisgICAgICAgIHByaW50KHZhbHVlMyk7CisgICAg
ICAgIHByaW50KHZhbHVlNCk7CisgICAgICAgIHByaW50KHZhbHVlNSk7CisgICAgICAgIHByaW50
KHZhbHVlNik7CisgICAgICAgIHByaW50KHZhbHVlNyk7CisgICAgfQorICAgIAorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOD4KKyAgICB2
b2lkIHByaW50KGNvbnN0IFQxJiB2YWx1ZTEsIGNvbnN0IFQyJiB2YWx1ZTIsIGNvbnN0IFQzJiB2
YWx1ZTMsIGNvbnN0IFQ0JiB2YWx1ZTQsIGNvbnN0IFQ1JiB2YWx1ZTUsIGNvbnN0IFQ2JiB2YWx1
ZTYsIGNvbnN0IFQ3JiB2YWx1ZTcsIGNvbnN0IFQ4JiB2YWx1ZTgpCisgICAgeworICAgICAgICBw
cmludCh2YWx1ZTEpOworICAgICAgICBwcmludCh2YWx1ZTIpOworICAgICAgICBwcmludCh2YWx1
ZTMpOworICAgICAgICBwcmludCh2YWx1ZTQpOworICAgICAgICBwcmludCh2YWx1ZTUpOworICAg
ICAgICBwcmludCh2YWx1ZTYpOworICAgICAgICBwcmludCh2YWx1ZTcpOworICAgICAgICBwcmlu
dCh2YWx1ZTgpOworICAgIH0KKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2
LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5PgorICAgIHZvaWQgcHJpbnQo
Y29uc3QgVDEmIHZhbHVlMSwgY29uc3QgVDImIHZhbHVlMiwgY29uc3QgVDMmIHZhbHVlMywgY29u
c3QgVDQmIHZhbHVlNCwgY29uc3QgVDUmIHZhbHVlNSwgY29uc3QgVDYmIHZhbHVlNiwgY29uc3Qg
VDcmIHZhbHVlNywgY29uc3QgVDgmIHZhbHVlOCwgY29uc3QgVDkmIHZhbHVlOSkKKyAgICB7Cisg
ICAgICAgIHByaW50KHZhbHVlMSk7CisgICAgICAgIHByaW50KHZhbHVlMik7CisgICAgICAgIHBy
aW50KHZhbHVlMyk7CisgICAgICAgIHByaW50KHZhbHVlNCk7CisgICAgICAgIHByaW50KHZhbHVl
NSk7CisgICAgICAgIHByaW50KHZhbHVlNik7CisgICAgICAgIHByaW50KHZhbHVlNyk7CisgICAg
ICAgIHByaW50KHZhbHVlOCk7CisgICAgICAgIHByaW50KHZhbHVlOSk7CisgICAgfQorICAgIAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVu
YW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBU
OCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMD4KKyAgICB2b2lkIHByaW50KGNvbnN0IFQxJiB2
YWx1ZTEsIGNvbnN0IFQyJiB2YWx1ZTIsIGNvbnN0IFQzJiB2YWx1ZTMsIGNvbnN0IFQ0JiB2YWx1
ZTQsIGNvbnN0IFQ1JiB2YWx1ZTUsIGNvbnN0IFQ2JiB2YWx1ZTYsIGNvbnN0IFQ3JiB2YWx1ZTcs
IGNvbnN0IFQ4JiB2YWx1ZTgsIGNvbnN0IFQ5JiB2YWx1ZTksIGNvbnN0IFQxMCYgdmFsdWUxMCkK
KyAgICB7CisgICAgICAgIHByaW50KHZhbHVlMSk7CisgICAgICAgIHByaW50KHZhbHVlMik7Cisg
ICAgICAgIHByaW50KHZhbHVlMyk7CisgICAgICAgIHByaW50KHZhbHVlNCk7CisgICAgICAgIHBy
aW50KHZhbHVlNSk7CisgICAgICAgIHByaW50KHZhbHVlNik7CisgICAgICAgIHByaW50KHZhbHVl
Nyk7CisgICAgICAgIHByaW50KHZhbHVlOCk7CisgICAgICAgIHByaW50KHZhbHVlOSk7CisgICAg
ICAgIHByaW50KHZhbHVlMTApOworICAgIH0KIH07CiAKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmlu
dFN0cmVhbSYsIGNvbnN0IGNoYXIqKTsKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYs
IGNvbnN0IENTdHJpbmcmKTsKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYsIGNvbnN0
IFN0cmluZyYpOwordm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiwgYm9vbCk7Cit2b2lk
IHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBpbnQpOwordm9pZCBwcmludEludGVybmFsKFBy
aW50U3RyZWFtJiwgdW5zaWduZWQpOwordm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiwg
bG9uZyk7Cit2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCB1bnNpZ25lZCBsb25nKTsK
K3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYsIGxvbmcgbG9uZyk7Cit2b2lkIHByaW50
SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCB1bnNpZ25lZCBsb25nIGxvbmcpOwordm9pZCBwcmludElu
dGVybmFsKFByaW50U3RyZWFtJiwgZmxvYXQpOwordm9pZCBwcmludEludGVybmFsKFByaW50U3Ry
ZWFtJiwgZG91YmxlKTsKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYsIFJhd1BvaW50
ZXIpOworCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogdXNpbmcgV1RGOjpQcmludFN0cmVhbTsKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL1Jhd1BvaW50ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L3d0Zi9SYXdQb2ludGVyLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV1RGL3d0Zi9SYXdQb2lu
dGVyLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSYXdQb2ludGVyX2gKKyNkZWZpbmUg
UmF3UG9pbnRlcl9oCisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBSYXdQb2ludGVyIHsKK3B1
YmxpYzoKKyAgICBSYXdQb2ludGVyKCkKKyAgICAgICAgOiBtX3ZhbHVlKDApCisgICAgeworICAg
IH0KKyAgICAKKyAgICBleHBsaWNpdCBSYXdQb2ludGVyKHZvaWQqIHZhbHVlKQorICAgICAgICA6
IG1fdmFsdWUodmFsdWUpCisgICAgeworICAgIH0KKyAgICAKKyAgICB2b2lkKiB2YWx1ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KKyAgICAKK3ByaXZhdGU6CisgICAgdm9pZCogbV92YWx1
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6OlJhd1BvaW50ZXI7CisK
KyNlbmRpZiAvLyBSYXdQb2ludGVyX2gK
</data>
<flag name="review"
          id="192194"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>