<?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>193709</bug_id>
          
          <creation_ts>2019-01-22 21:47:44 -0800</creation_ts>
          <short_desc>REGRESSION(r239612) Crash at runtime due to broken DFG assumption</short_desc>
          <delta_ts>2019-01-22 21:55:21 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1497231</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-01-22 21:47:44 -0800</bug_when>
    <thetext>REGRESSION(r239612) Crash at runtime due to broken DFG assumption</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497233</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-01-22 21:51:54 -0800</bug_when>
    <thetext>&lt;rdar://problem/47363838&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497234</commentid>
    <comment_count>2</comment_count>
      <attachid>359853</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-01-22 21:52:24 -0800</bug_when>
    <thetext>Created attachment 359853
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497235</commentid>
    <comment_count>3</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-01-22 21:55:21 -0800</bug_when>
    <thetext>Committed r240327: &lt;https://trac.webkit.org/changeset/240327&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359853</attachid>
            <date>2019-01-22 21:52:24 -0800</date>
            <delta_ts>2019-01-22 21:52:24 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-193709-20190122215223.patch</filename>
            <type>text/plain</type>
            <size>39475</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
ZjRlODhhYjhiN2Q1NWFkOWZjNjA2OTU2ZjhmZDIxNDllODE2MDlmLi40ZDQ2OGVmOTQ0ODRlYjhh
MTVlZGM0NmYxZmEzMjc1Y2JjNmVmNzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MyBAQAorMjAxOS0wMS0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFJFR1JFU1NJT04ocjIzOTYxMikgQ3Jhc2ggYXQgcnVudGltZSBkdWUgdG8g
YnJva2VuIERGRyBhc3N1bXB0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTM3MDkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3MzYzODM4Pgor
CisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxvdXQgdG8gd2F0Y2ggdGhlIHRlc3RzLgorCisgICAg
ICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZH
OjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMp
OgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUludHJpbnNpY0NhbGwpOgorICAgICAgICAqIGRmZy9E
RkdDbG9iYmVyaXplLmg6CisgICAgICAgIChKU0M6OkRGRzo6Y2xvYmJlcml6ZSk6CisgICAgICAg
ICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6ZG9lc0dDKToKKyAgICAg
ICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFz
ZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE9iamVj
dFRvU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoKKyAgICAg
ICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMu
aDoKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAg
ICAgICAqIGRmZy9ERkdTYWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRv
RXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdFRvU3RyaW5nKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZnRs
L0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRMQ2FwYWJpbGl0
aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKyAgICAgICAgKiBmdGwv
RlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9C
Mzo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpj
b21waWxlVG9TdHJpbmdPckNhbGxTdHJpbmdDb25zdHJ1Y3Rvck9yU3RyaW5nVmFsdWVPZik6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVPYmplY3RUb1N0cmlu
Zyk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9JbnRyaW5zaWMuY3BwOgorICAgICAgICAo
SlNDOjppbnRyaW5zaWNOYW1lKToKKyAgICAgICAgKiBydW50aW1lL0ludHJpbnNpYy5oOgorICAg
ICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6T2JqZWN0
UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVu
Y1RvU3RyaW5nKToKKyAgICAgICAgKiBydW50aW1lL09iamVjdFByb3RvdHlwZS5oOgorICAgICAg
ICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlSW5saW5lcy5oOiBSZW1vdmVkLgorICAgICAgICAq
IHJ1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaDoKKwogMjAxOS0wMS0yMiAgRGV2aW4gUm91c3Nv
ICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogZXhwb3NlIEF1
ZGl0IGFuZCBSZWNvcmRpbmcgdmVyc2lvbnMgdG8gdGhlIGZyb250ZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDg1MmNjMDRlOTQwM2Q5NTA2NTMwZTYxOWM3ZjYxODcxMTlhZGRh
Y2IuLjQwYWRhMmEyZjUzNGVjODZkNjkxYTZmYjNiNjM2Y2FiZTIxNWI3NzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC03MDE0LDcgKzcwMTQsNiBAQAogCQkJCUUzQzI5NURDMUVE
MkNCQUEwMEQzMDE2RiAvKiBPYmplY3RQcm9wZXJ0eUNoYW5nZUFkYXB0aXZlV2F0Y2hwb2ludC5o
ICovLAogCQkJCUJDMjY4MEM4MEUxNkQ0RTkwMEEwNkU5MiAvKiBPYmplY3RQcm90b3R5cGUuY3Bw
ICovLAogCQkJCUJDMjY4MEM5MEUxNkQ0RTkwMEEwNkU5MiAvKiBPYmplY3RQcm90b3R5cGUuaCAq
LywKLQkJCQk2RDBDQzlFMUNCQzE0OUFCOEY0MDM0MzQgLyogT2JqZWN0UHJvdG90eXBlSW5saW5l
cy5oICovLAogCQkJCUY2OTJBODc3MDI1NTU5N0QwMUZGNjBGNyAvKiBPcGVyYXRpb25zLmNwcCAq
LywKIAkJCQlGNjkyQTg3ODAyNTU1OTdEMDFGRjYwRjcgLyogT3BlcmF0aW9ucy5oICovLAogCQkJ
CTBGRTIyOEVBMTQzNkFCMjMwMDE5NkM0OCAvKiBPcHRpb25zLmNwcCAqLywKQEAgLTk0NjMsNyAr
OTQ2Miw2IEBACiAJCQkJMEZEM0U0MEExQjYxOEI2NjAwQzgwRTFFIC8qIE9iamVjdFByb3BlcnR5
Q29uZGl0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQzRTQwQzFCNjE4QjY2MDBDODBFMUUg
LyogT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThD
NDQ2MEUxNkY1Q0QwMEIzNDQ2MCAvKiBPYmplY3RQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAot
CQkJCTVFMTU4QUMzNTBCQzRFQzc4NzdEQzBGNCAvKiBPYmplY3RQcm90b3R5cGVJbmxpbmVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFMTI0QThGNzBFNTU1Nzc1MDAzMDkxRjEgLyogT3BhcXVlSlNT
dHJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0Rjc5RjcwMjE2RUFGRDIwMDA0NkQzOSAvKiBP
cGNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFNjQ4NzJFMjE0MUQwNDgwMEFCMEQzRSAvKiBP
cGNvZGVJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCBiOTY2
YWRjYmY3YTUwZTFmZDA3ZDgzNjExOGViODEwODhlZjhiNThlLi43NTgxYTFhNzc0NmU5ODcwZTc5
ZjkyZTIxNzhmYmQyYzk3NTkyMjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBAIC0yNjM1LDI0ICsy
NjM1LDYgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhl
Y3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICAgICAgYnJlYWs7CiAgICAgfQog
Ci0gICAgY2FzZSBPYmplY3RUb1N0cmluZzogewotICAgICAgICBBYnN0cmFjdFZhbHVlJiBzb3Vy
Y2UgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgYm9vbCBjbG9iYmVyaW5nID0g
bm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpICE9IE90aGVyVXNlOwotICAgICAgICBpZiAoSlNWYWx1
ZSBzb3VyY2VWYWx1ZSA9IHNvdXJjZS5tX3ZhbHVlKSB7Ci0gICAgICAgICAgICBpZiAoc291cmNl
VmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkgewotICAgICAgICAgICAgICAgIGlmIChjbG9iYmVy
aW5nKQotICAgICAgICAgICAgICAgICAgICBkaWRGb2xkQ2xvYmJlcldvcmxkKCk7Ci0gICAgICAg
ICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwgKm1fZ3JhcGguZnJlZXplKHNvdXJjZVZhbHVlLmlz
VW5kZWZpbmVkKCkgPyBtX3ZtLnNtYWxsU3RyaW5ncy51bmRlZmluZWRPYmplY3RTdHJpbmcoKSA6
IG1fdm0uc21hbGxTdHJpbmdzLm51bGxPYmplY3RTdHJpbmcoKSkpOwotICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGNsb2JiZXJp
bmcpCi0gICAgICAgICAgICBjbG9iYmVyV29ybGQoKTsKLSAgICAgICAgc2V0VHlwZUZvck5vZGUo
bm9kZSwgU3BlY1N0cmluZyk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQogICAgIGNhc2UgVG9P
YmplY3Q6CiAgICAgY2FzZSBDYWxsT2JqZWN0Q29uc3RydWN0b3I6IHsKICAgICAgICAgQWJzdHJh
Y3RWYWx1ZSYgc291cmNlID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDc4Y2E2NWY4MzNm
MThjODNiNmQ4NzA3YjRjNmY5NTY4ODA1NDE1ZjUuLmIxZGMyNWIxYjg3OGYwYjVkNGY0ZDQxZDQx
ZGYxZmRhZDkyMzYyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Qnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwCkBAIC0yNzEwLDEzICsyNzEwLDYgQEAgYm9vbCBCeXRlQ29kZVBhcnNl
cjo6aGFuZGxlSW50cmluc2ljQ2FsbChOb2RlKiBjYWxsZWUsIFZpcnR1YWxSZWdpc3RlciByZXN1
bHQsIEkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKLSAgICAgICAgY2Fz
ZSBPYmplY3RQcm90b3R5cGVUb1N0cmluZ0ludHJpbnNpYzogewotICAgICAgICAgICAgaW5zZXJ0
Q2hlY2tzKCk7Ci0gICAgICAgICAgICBOb2RlKiB2YWx1ZSA9IGdldCh2aXJ0dWFsUmVnaXN0ZXJG
b3JBcmd1bWVudCgwLCByZWdpc3Rlck9mZnNldCkpOwotICAgICAgICAgICAgc2V0UmVzdWx0KGFk
ZFRvR3JhcGgoT2JqZWN0VG9TdHJpbmcsIHZhbHVlKSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAgICAgfQotCiAgICAgICAgIGNhc2UgUmVmbGVjdEdldFByb3RvdHlwZU9mSW50cmlu
c2ljOiB7CiAgICAgICAgICAgICBpZiAoYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgIT0gMikK
ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ2xvYmJlcml6ZS5oCmluZGV4IDljMjcwNzMzMmM1ZTc1YWNmMDU4ODFiZDg4NDFhMTY4NTJj
NzE1YmMuLjdlOWIwZDg5NjlhY2VhYTBmY2ExMDM5YjBiY2M3NDZiZWI3Yjk1MzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC02NzgsMjAgKzY3OCw2IEBA
IHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5j
dG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIHdyaXRlKEhlYXApOwogICAgICAgICBy
ZXR1cm47CiAKLSAgICBjYXNlIE9iamVjdFRvU3RyaW5nOgotICAgICAgICBzd2l0Y2ggKG5vZGUt
PmNoaWxkMSgpLnVzZUtpbmQoKSkgewotICAgICAgICBjYXNlIE90aGVyVXNlOgotICAgICAgICAg
ICAgZGVmKFB1cmVWYWx1ZShub2RlKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGNh
c2UgVW50eXBlZFVzZToKLSAgICAgICAgICAgIHJlYWQoV29ybGQpOwotICAgICAgICAgICAgd3Jp
dGUoSGVhcCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9Ci0KICAgICBjYXNlIEF0b21pY3NBZGQ6CiAgICAgY2FzZSBBdG9taWNzQW5kOgog
ICAgIGNhc2UgQXRvbWljc0NvbXBhcmVFeGNoYW5nZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRG9lc0dDLmNwcAppbmRleCAzM2EyMGU1MzlhNmZkMmMyNmVmMTE0Mjc3YWM3YzY5ZjE3Yzg3
ODY2Li41NDE4MTI3YTIyOGUzMDdhYTlkZDBjYTA2M2FmZGU0M2M1MjlkYzJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCkBAIC0zNjYsNyArMzY2LDYgQEAgYm9vbCBk
b2VzR0MoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgU3RyaW5nUmVwbGFjZVJl
Z0V4cDoKICAgICBjYXNlIFN0cmluZ1NsaWNlOgogICAgIGNhc2UgU3RyaW5nVmFsdWVPZjoKLSAg
ICBjYXNlIE9iamVjdFRvU3RyaW5nOgogICAgIGNhc2UgQ3JlYXRlUmVzdDoKICAgICBjYXNlIFRv
TG93ZXJDYXNlOgogICAgIGNhc2UgQ2FsbERPTUdldHRlcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IGY0OWI5N2QyMzdhZmZiYmUyZDZmMjE5YzVl
MDQzZTkxMjc3Zjg4ZTAuLmQyZDRmYmZiNDRiMzU3MTUzNThjYTcxZTQ2ZjFlZDIwYzY4ZTJiZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApAQCAtMjE1
MCwxMSArMjE1MCw2IEBAIGNsYXNzIEZpeHVwUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAgICBjYXNlIE9iamVjdFRvU3RyaW5nOiB7
Ci0gICAgICAgICAgICBmaXh1cE9iamVjdFRvU3RyaW5nKG5vZGUpOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIH0KLQogICAgICAgICBjYXNlIFN0cmluZ1NsaWNlOiB7CiAgICAgICAgICAg
ICBmaXhFZGdlPFN0cmluZ1VzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgZml4RWRn
ZTxJbnQzMlVzZT4obm9kZS0+Y2hpbGQyKCkpOwpAQCAtMjk0NywxNSArMjk0Miw2IEBAIGNsYXNz
IEZpeHVwUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICB9CiAgICAgfQogCi0gICAgdm9p
ZCBmaXh1cE9iamVjdFRvU3RyaW5nKE5vZGUqIG5vZGUpCi0gICAgewotICAgICAgICBpZiAobm9k
ZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZU90aGVyKCkpIHsKLSAgICAgICAgICAgIGZpeEVk
Z2U8T3RoZXJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgIG5vZGUtPmNsZWFyRmxh
Z3MoTm9kZU11c3RHZW5lcmF0ZSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAg
ICB9Ci0KICAgICBib29sIGF0dGVtcHRUb01ha2VGYXN0U3RyaW5nQWRkKE5vZGUqIG5vZGUpCiAg
ICAgewogICAgICAgICBib29sIGdvb2RUb0dvID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZVR5cGUuaAppbmRleCBkZWQwZTI2ODBiOGU4MjAxOGMzZDQ4NjgzMzViNGQwM2U0
YWM4ZmQyLi5iZDNiZmUyZmQ0MGQyZDBiZDNiMWQzMDdhNDNhMTIyOTM1Mjg0ZTQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCkBAIC0yNjYsNyArMjY2LDYgQEAgbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3JvKEdldFByb3RvdHlwZU9mLCBO
b2RlTXVzdEdlbmVyYXRlIHwgTm9kZVJlc3VsdEpTKSBcCiAgICAgbWFjcm8oT2JqZWN0Q3JlYXRl
LCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZVJlc3VsdEpTKSBcCiAgICAgbWFjcm8oT2JqZWN0S2V5
cywgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVSZXN1bHRKUykgXAotICAgIG1hY3JvKE9iamVjdFRv
U3RyaW5nLCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZVJlc3VsdEpTKSBcCiAgICAgXAogICAgIC8q
IEF0b21pY3Mgb2JqZWN0IGZ1bmN0aW9ucy4gKi9cCiAgICAgbWFjcm8oQXRvbWljc0FkZCwgTm9k
ZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVIYXNWYXJBcmdzKSBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCA2MDc1ZWEzMjdjZWI5
MmIwYjljYmI3MjZkMmFmNjcwN2M0YWJjZGNkLi5kNGEwYTdhZWVlODhiZWU0ODNjYjRhZjUxODA5
NzEwODUzNWExMzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09w
ZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9u
cy5jcHAKQEAgLTYzLDcgKzYzLDYgQEAKICNpbmNsdWRlICJKU1dlYWtTZXQuaCIKICNpbmNsdWRl
ICJOdW1iZXJDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCi0j
aW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlSW5saW5lcy5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJQYXJzZUludC5oIgogI2luY2x1ZGUgIlJlZ0V4cENvbnN0cnVjdG9yLmgi
CkBAIC03Miw3ICs3MSw2IEBACiAjaW5jbHVkZSAiUmVwYXRjaC5oIgogI2luY2x1ZGUgIlNjb3Bl
ZEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIlN0cmluZ0NvbnN0cnVjdG9yLmgiCi0jaW5jbHVkZSAi
U3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmgiCiAjaW5jbHVkZSAiU3VwZXJTYW1wbGVyLmgiCiAj
aW5jbHVkZSAiU3ltYm9sLmgiCiAjaW5jbHVkZSAiVHlwZVByb2ZpbGVyTG9nLmgiCkBAIC0yMTU2
LDEzICsyMTU0LDYgQEAgSlNTdHJpbmcqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3RyaW5nVmFs
dWVPZihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGUKICAgICByZXR1cm4gbnVsbHB0
cjsKIH0KIAotSlNTdHJpbmcqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT2JqZWN0VG9TdHJpbmco
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBzb3VyY2UpCi17Ci0gICAgVk0mIHZtID0g
ZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7
Ci0gICAgcmV0dXJuIG9iamVjdFRvU3RyaW5nKGV4ZWMsIEpTVmFsdWU6OmRlY29kZShzb3VyY2Up
KTsKLX0KLQogSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0cmluZ1N1YnN0cihFeGVj
U3RhdGUqIGV4ZWMsIEpTQ2VsbCogY2VsbCwgaW50MzJfdCBmcm9tLCBpbnQzMl90IHNwYW4pCiB7
CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmgKaW5kZXggOGI3NmY0ZDZiZjM3NDAxZGUyYzRhOTdjMWMzMjA1NTI3Y2M2Mzk1
MS4uMzhjMTE2YTU0ZjkxYTYxNWI4MWMxNTExMjE0OGYyNWY5NGFkYjFlZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKQEAgLTIwNSw3ICsyMDUsNiBAQCBKU1N0
cmluZyogSklUX09QRVJBVElPTiBvcGVyYXRpb25TaW5nbGVDaGFyYWN0ZXJTdHJpbmcoRXhlY1N0
YXRlKiwgaW50MzJfdCk7CiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3RyaW5nU3Vi
c3RyKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIGludDMyX3QsIGludDMyX3QpOwogSlNTdHJpbmcqIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uU3RyaW5nVmFsdWVPZihFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSk7CiBKU1N0cmluZyogSklUX09QRVJBVElPTiBvcGVyYXRpb25Ub0xvd2VyQ2FzZShFeGVj
U3RhdGUqLCBKU1N0cmluZyosIHVpbnQzMl90KTsKLUpTU3RyaW5nKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbk9iamVjdFRvU3RyaW5nKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKTsKIAogY2hh
ciogSklUX09QRVJBVElPTiBvcGVyYXRpb25JbnQzMlRvU3RyaW5nKEV4ZWNTdGF0ZSosIGludDMy
X3QsIGludDMyX3QpOwogY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25JbnQ1MlRvU3RyaW5n
KEV4ZWNTdGF0ZSosIGludDY0X3QsIGludDMyX3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRl
eCBiMGQ0OWUwODUzOWJhYWZhZGQyMTVkZjUxYzc4NDkzOGNkZGVlMmY0Li5jMmFmZTViMzc4YWRk
N2FlNGQxZTliZDRmZDgzMjBhZTI3Njg3MDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAt
ODc5LDcgKzg3OSw2IEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDogcHVibGlj
IFBoYXNlIHsKICAgICAgICAgY2FzZSBTdHJpbmdWYWx1ZU9mOgogICAgICAgICBjYXNlIFN0cmlu
Z1NsaWNlOgogICAgICAgICBjYXNlIFRvTG93ZXJDYXNlOgotICAgICAgICBjYXNlIE9iamVjdFRv
U3RyaW5nOgogICAgICAgICAgICAgc2V0UHJlZGljdGlvbihTcGVjU3RyaW5nKTsKICAgICAgICAg
ICAgIGJyZWFrOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nh
ZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0
ZS5oCmluZGV4IGM0ZTU2NmNiNmM2YmExMjEzMzZiNmMyZTI4YmY3MGQ5NTE4NTdmZTEuLjg4M2Y3
OTk4OGJkNmE0YTRjMjczNTE3M2JjNWM1OThjNWE3NzY2NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC00NTMsNyArNDUzLDYgQEAgYm9vbCBz
YWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBoLCBOb2Rl
KiBub2RlLCBib29sIGlnbm8KICAgICBjYXNlIFN0cmluZ1ZhbHVlT2Y6CiAgICAgY2FzZSBTdHJp
bmdTbGljZToKICAgICBjYXNlIFRvTG93ZXJDYXNlOgotICAgIGNhc2UgT2JqZWN0VG9TdHJpbmc6
CiAgICAgY2FzZSBHZXRNYXBCdWNrZXQ6CiAgICAgY2FzZSBHZXRNYXBCdWNrZXRIZWFkOgogICAg
IGNhc2UgR2V0TWFwQnVja2V0TmV4dDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggOTQ4YmI5NzljOGU2NTQyOWY0YmM2MjBhMjQ2NzJl
Y2UyOTRiNTBhYy4uMmU4NjYzYTMzMTViOTQyMmNiOWQxOWQ0NzAwNjliODA2NDUwMjk0MCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAg
LTEyNDQwLDYzICsxMjQ0MCw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RL
ZXlzKE5vZGUqIG5vZGUpCiAgICAgfQogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
T2JqZWN0VG9TdHJpbmcoTm9kZSogbm9kZSkKLXsKLSAgICBzd2l0Y2ggKG5vZGUtPmNoaWxkMSgp
LnVzZUtpbmQoKSkgewotICAgIGNhc2UgT3RoZXJVc2U6IHsKLSAgICAgICAgSlNWYWx1ZU9wZXJh
bmQgc291cmNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24p
OwotICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwotCi0gICAgICAgIEpTVmFsdWVS
ZWdzIHNvdXJjZVJlZ3MgPSBzb3VyY2UuanNWYWx1ZVJlZ3MoKTsKLSAgICAgICAgR1BSUmVnIHJl
c3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKLQotICAgICAgICBzcGVjdWxhdGVPdGhlcihub2RlLT5j
aGlsZDEoKSwgc291cmNlUmVncyk7Ci0KLSAgICAgICAgYXV0byBpc1VuZGVmaW5lZCA9IG1faml0
LmJyYW5jaElmVW5kZWZpbmVkKHNvdXJjZVJlZ3MpOwotICAgICAgICBtX2ppdC5tb3ZlKFRydXN0
ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1faml0LmdyYXBoKCksIG1faml0LnZtKCktPnNtYWxsU3Ry
aW5ncy5udWxsT2JqZWN0U3RyaW5nKCkpLCByZXN1bHRHUFIpOwotICAgICAgICBhdXRvIGRvbmUg
PSBtX2ppdC5qdW1wKCk7Ci0gICAgICAgIGlzVW5kZWZpbmVkLmxpbmsoJm1faml0KTsKLSAgICAg
ICAgbV9qaXQubW92ZShUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2ppdC5ncmFwaCgpLCBt
X2ppdC52bSgpLT5zbWFsbFN0cmluZ3MudW5kZWZpbmVkT2JqZWN0U3RyaW5nKCkpLCByZXN1bHRH
UFIpOwotICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKLQotICAgICAgICBjZWxsUmVzdWx0KHJl
c3VsdEdQUiwgbm9kZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgY2FzZSBVbnR5cGVk
VXNlOiB7Ci0gICAgICAgIEpTVmFsdWVPcGVyYW5kIHNvdXJjZSh0aGlzLCBub2RlLT5jaGlsZDEo
KSk7Ci0KLSAgICAgICAgSlNWYWx1ZVJlZ3Mgc291cmNlUmVncyA9IHNvdXJjZS5qc1ZhbHVlUmVn
cygpOwotCi0gICAgICAgIEdQUlRlbXBvcmFyeSBzdHJ1Y3R1cmUodGhpcyk7Ci0gICAgICAgIEdQ
UlRlbXBvcmFyeSBzY3JhdGNoKHRoaXMpOwotCi0gICAgICAgIEdQUlJlZyBzdHJ1Y3R1cmVHUFIg
PSBzdHJ1Y3R1cmUuZ3ByKCk7Ci0gICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gc2NyYXRjaC5n
cHIoKTsKLQotICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IHNsb3dDYXNlczsKLSAgICAg
ICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hJZk5vdENlbGwoc291cmNlUmVncykpOwot
ICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaElmTm90T2JqZWN0KHNvdXJjZVJl
Z3MucGF5bG9hZEdQUigpKSk7Ci0KLSAgICAgICAgbV9qaXQuZW1pdExvYWRTdHJ1Y3R1cmUoKm1f
aml0LnZtKCksIHNvdXJjZVJlZ3MucGF5bG9hZEdQUigpLCBzdHJ1Y3R1cmVHUFIsIHNjcmF0Y2hH
UFIpOwotICAgICAgICBtX2ppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHJ1Y3R1
cmVHUFIsIFN0cnVjdHVyZTo6cHJldmlvdXNPclJhcmVEYXRhT2Zmc2V0KCkpLCBzY3JhdGNoR1BS
KTsKLQotICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxI
ZWxwZXJzOjpaZXJvLCBzY3JhdGNoR1BSKSk7Ci0gICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9q
aXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNj
cmF0Y2hHUFIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4obV9qaXQudm0oKS0+c3RydWN0dXJlU3RydWN0dXJlLT5zdHJ1Y3R1
cmVJRCgpKSkpKTsKLQotICAgICAgICBtX2ppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVz
cyhzY3JhdGNoR1BSLCBTdHJ1Y3R1cmVSYXJlRGF0YTo6b2Zmc2V0T2ZPYmplY3RUb1N0cmluZ1Zh
bHVlKCkpLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFu
Y2hUZXN0UHRyKENDYWxsSGVscGVyczo6WmVybywgc2NyYXRjaEdQUikpOwotCi0gICAgICAgIGFk
ZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbChzbG93Q2FzZXMsIHRoaXMsIG9wZXJhdGlv
bk9iamVjdFRvU3RyaW5nLCBzY3JhdGNoR1BSLCBzb3VyY2VSZWdzKSk7Ci0KLSAgICAgICAgY2Vs
bFJlc3VsdChzY3JhdGNoR1BSLCBub2RlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBk
ZWZhdWx0OgotICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbm9kZSwgIkJhZCB1c2Uga2luZCIp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotfQotCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlT2JqZWN0Q3JlYXRlKE5vZGUqIG5vZGUpCiB7CiAgICAgc3dpdGNoIChub2RlLT5jaGlsZDEo
KS51c2VLaW5kKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuaAppbmRleCBhMmFkNmJlZDQ4N2NiMzRkNjg3ZDdiZWRiNTFiNTU0MGQ2YmVmZDhhLi44
ZWQ4NWY2MzExZjE0YTk0MDUzMGUyZjE0NjI4OGFiNjEyYjEwYjNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC0xNDgwLDcgKzE0ODAsNiBA
QCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgdm9pZCBjb21waWxlTmV3VHlwZWRBcnJheShO
b2RlKik7CiAgICAgdm9pZCBjb21waWxlVG9UaGlzKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVP
YmplY3RLZXlzKE5vZGUqKTsKLSAgICB2b2lkIGNvbXBpbGVPYmplY3RUb1N0cmluZyhOb2RlKik7
CiAgICAgdm9pZCBjb21waWxlT2JqZWN0Q3JlYXRlKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVD
cmVhdGVUaGlzKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVOZXdPYmplY3QoTm9kZSopOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5j
cHAKaW5kZXggYzI5OWJjY2Q2MTMyMmMyZWJiZTgxMzY0NDdmMzRkMTVmNmI5NzU0NS4uNGRmZTlj
OTIzMjFkNzUzZDE3ODE0OGY0ZWQzNWY4OTczZjNlNmY1MiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC0zMTA1LDEx
ICszMTA1LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAg
ICAgICBjb21waWxlVG9TdHJpbmdPckNhbGxTdHJpbmdDb25zdHJ1Y3Rvck9yU3RyaW5nVmFsdWVP
Zihub2RlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotCi0gICAgY2FzZSBPYmplY3RUb1N0cmlu
ZzogewotICAgICAgICBjb21waWxlT2JqZWN0VG9TdHJpbmcobm9kZSk7Ci0gICAgICAgIGJyZWFr
OwotICAgIH0KICAgICAgICAgCiAgICAgY2FzZSBOZXdTdHJpbmdPYmplY3Q6IHsKICAgICAgICAg
Y29tcGlsZU5ld1N0cmluZ09iamVjdChub2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDMyZTA4Yzk5ZjQ2NWYwMDZjMTk3
MzFiZDJiYjBhMDJiNGMxNDg4YmEuLjdmOWUzODFiNzU1ZDI2NGNhNzVlM2U3ZGNhY2E4MGM4NzQx
ZGRlNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcApAQCAtMzM0NywxMSArMzM0Nyw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgY29tcGlsZVRvU3RyaW5nT3JDYWxsU3RyaW5nQ29u
c3RydWN0b3JPclN0cmluZ1ZhbHVlT2Yobm9kZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLQot
ICAgIGNhc2UgT2JqZWN0VG9TdHJpbmc6IHsKLSAgICAgICAgY29tcGlsZU9iamVjdFRvU3RyaW5n
KG5vZGUpOwotICAgICAgICBicmVhazsKLSAgICB9CiAgICAgICAgIAogICAgIGNhc2UgTmV3U3Ry
aW5nT2JqZWN0OiB7CiAgICAgICAgIGNvbXBpbGVOZXdTdHJpbmdPYmplY3Qobm9kZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRv
cnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9y
eS5oCmluZGV4IGI3ZTk5ODQ0Njk1MTE5YjgzZjM5YTkzZTgwZGMwNGM4NWMyYjllNDUuLjlmM2Fh
MmZlN2RjM2VjZmViMGM4NzBiODFhODdjYmMxMWYyODgwNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCkBAIC0xMjAs
NyArMTIwLDYgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3JvKFN0
cnVjdHVyZV9wcm90b3R5cGUsIFN0cnVjdHVyZTo6cHJvdG90eXBlT2Zmc2V0KCkpIFwKICAgICBt
YWNybyhTdHJ1Y3R1cmVfc3RydWN0dXJlSUQsIFN0cnVjdHVyZTo6c3RydWN0dXJlSURPZmZzZXQo
KSkgXAogICAgIG1hY3JvKFN0cnVjdHVyZVJhcmVEYXRhX2NhY2hlZE93bktleXMsIFN0cnVjdHVy
ZVJhcmVEYXRhOjpvZmZzZXRPZkNhY2hlZE93bktleXMoKSkgXAotICAgIG1hY3JvKFN0cnVjdHVy
ZVJhcmVEYXRhX29iamVjdFRvU3RyaW5nVmFsdWUsIFN0cnVjdHVyZVJhcmVEYXRhOjpvZmZzZXRP
Zk9iamVjdFRvU3RyaW5nVmFsdWUoKSkgXAogICAgIG1hY3JvKEhhc2hNYXBJbXBsX2NhcGFjaXR5
LCBIYXNoTWFwSW1wbDxIYXNoTWFwQnVja2V0PEhhc2hNYXBCdWNrZXREYXRhS2V5Pj46Om9mZnNl
dE9mQ2FwYWNpdHkoKSkgXAogICAgIG1hY3JvKEhhc2hNYXBJbXBsX2J1ZmZlciwgIEhhc2hNYXBJ
bXBsPEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFLZXk+Pjo6b2Zmc2V0T2ZCdWZmZXIo
KSkgXAogICAgIG1hY3JvKEhhc2hNYXBJbXBsX2hlYWQsICBIYXNoTWFwSW1wbDxIYXNoTWFwQnVj
a2V0PEhhc2hNYXBCdWNrZXREYXRhS2V5Pj46Om9mZnNldE9mSGVhZCgpKSBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggN2RiNWI1NmQzMjZk
ZGFkNjY2ZWM2OWNmYTRkOGQxODZkMjI0ZmY0YS4uMWZmMGMzMzdkYThjOTVjZTk0YzU2ZjhlYmUz
YTliNmE0ZTRkYWIxNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExD
YXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJp
bGl0aWVzLmNwcApAQCAtMzM0LDcgKzMzNCw2IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2Fu
Q29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgU3RyaW5nVmFsdWVPZjoKICAgICBjYXNlIFN0
cmluZ1NsaWNlOgogICAgIGNhc2UgVG9Mb3dlckNhc2U6Ci0gICAgY2FzZSBPYmplY3RUb1N0cmlu
ZzoKICAgICBjYXNlIE51bWJlclRvU3RyaW5nV2l0aFJhZGl4OgogICAgIGNhc2UgTnVtYmVyVG9T
dHJpbmdXaXRoVmFsaWRSYWRpeENvbnN0YW50OgogICAgIGNhc2UgQ2hlY2tTdWJDbGFzczoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCBlZGM2
ZjBkM2JjMjgzNTEwZTU4NzliNmFlNGVmYTM3MGY5YWZmNjcxLi5hZTFmYTkwOTEzNmY3NDY0N2M0
Y2VhMjg5ZGEwYThmYTZkM2ZhYTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExMb3dlckRGR1RvQjMuY3BwCkBAIC05MzcsOSArOTM3LDYgQEAgY2xhc3MgTG93ZXJERkdUb0Iz
IHsKICAgICAgICAgY2FzZSBTdHJpbmdGcm9tQ2hhckNvZGU6CiAgICAgICAgICAgICBjb21waWxl
U3RyaW5nRnJvbUNoYXJDb2RlKCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBP
YmplY3RUb1N0cmluZzoKLSAgICAgICAgICAgIGNvbXBpbGVPYmplY3RUb1N0cmluZygpOwotICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR2V0QnlPZmZzZXQ6CiAgICAgICAgIGNhc2Ug
R2V0R2V0dGVyU2V0dGVyQnlPZmZzZXQ6CiAgICAgICAgICAgICBjb21waWxlR2V0QnlPZmZzZXQo
KTsKQEAgLTY0MjUsNjEgKzY0MjIsNiBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9Ci0KLSAgICB2b2lkIGNvbXBpbGVPYmplY3RUb1N0
cmluZygpCi0gICAgewotICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgp
KSB7Ci0gICAgICAgIGNhc2UgT3RoZXJVc2U6IHsKLSAgICAgICAgICAgIHNwZWN1bGF0ZShtX25v
ZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgIExWYWx1ZSBzb3VyY2UgPSBsb3dKU1ZhbHVlKG1f
bm9kZS0+Y2hpbGQxKCksIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbik7Ci0gICAgICAgICAgICBM
VmFsdWUgcmVzdWx0ID0gbV9vdXQuc2VsZWN0KG1fb3V0LmVxdWFsKHNvdXJjZSwgbV9vdXQuY29u
c3RJbnQ2NChWYWx1ZVVuZGVmaW5lZCkpLAotICAgICAgICAgICAgICAgIHdlYWtQb2ludGVyKHZt
KCkuc21hbGxTdHJpbmdzLnVuZGVmaW5lZE9iamVjdFN0cmluZygpKSwgd2Vha1BvaW50ZXIodm0o
KS5zbWFsbFN0cmluZ3MubnVsbE9iamVjdFN0cmluZygpKSk7Ci0gICAgICAgICAgICBzZXRKU1Zh
bHVlKHJlc3VsdCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgY2Fz
ZSBVbnR5cGVkVXNlOiB7Ci0gICAgICAgICAgICBMQmFzaWNCbG9jayBjZWxsQ2FzZSA9IG1fb3V0
Lm5ld0Jsb2NrKCk7Ci0gICAgICAgICAgICBMQmFzaWNCbG9jayBvYmplY3RDYXNlID0gbV9vdXQu
bmV3QmxvY2soKTsKLSAgICAgICAgICAgIExCYXNpY0Jsb2NrIG5vdE51bGxDYXNlID0gbV9vdXQu
bmV3QmxvY2soKTsKLSAgICAgICAgICAgIExCYXNpY0Jsb2NrIHJhcmVEYXRhQ2FzZSA9IG1fb3V0
Lm5ld0Jsb2NrKCk7Ci0gICAgICAgICAgICBMQmFzaWNCbG9jayBzbG93Q2FzZSA9IG1fb3V0Lm5l
d0Jsb2NrKCk7Ci0gICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBtX291dC5u
ZXdCbG9jaygpOwotCi0gICAgICAgICAgICBMVmFsdWUgc291cmNlID0gbG93SlNWYWx1ZShtX25v
ZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc0NlbGwoc291cmNlLCBw
cm92ZW5UeXBlKG1fbm9kZS0+Y2hpbGQxKCkpKSwgdW5zdXJlKGNlbGxDYXNlKSwgdW5zdXJlKHNs
b3dDYXNlKSk7Ci0KLSAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBw
ZW5kVG8oY2VsbENhc2UsIG9iamVjdENhc2UpOwotICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGlz
T2JqZWN0KHNvdXJjZSwgcHJvdmVuVHlwZShtX25vZGUtPmNoaWxkMSgpKSAmIFNwZWNDZWxsKSwg
dW5zdXJlKG9iamVjdENhc2UpLCB1bnN1cmUoc2xvd0Nhc2UpKTsKLQotICAgICAgICAgICAgbV9v
dXQuYXBwZW5kVG8ob2JqZWN0Q2FzZSwgbm90TnVsbENhc2UpOwotICAgICAgICAgICAgTFZhbHVl
IHN0cnVjdHVyZSA9IGxvYWRTdHJ1Y3R1cmUoc291cmNlKTsKLSAgICAgICAgICAgIExWYWx1ZSBw
cmV2aW91c09yUmFyZURhdGEgPSBtX291dC5sb2FkUHRyKHN0cnVjdHVyZSwgbV9oZWFwcy5TdHJ1
Y3R1cmVfcHJldmlvdXNPclJhcmVEYXRhKTsKLSAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291
dC5ub3ROdWxsKHByZXZpb3VzT3JSYXJlRGF0YSksIHVuc3VyZShub3ROdWxsQ2FzZSksIHVuc3Vy
ZShzbG93Q2FzZSkpOwotCi0gICAgICAgICAgICBtX291dC5hcHBlbmRUbyhub3ROdWxsQ2FzZSwg
cmFyZURhdGFDYXNlKTsKLSAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKLSAgICAgICAgICAgICAg
ICBtX291dC5ub3RFcXVhbChtX291dC5sb2FkMzIocHJldmlvdXNPclJhcmVEYXRhLCBtX2hlYXBz
LkpTQ2VsbF9zdHJ1Y3R1cmVJRCksIG1fb3V0LmNvbnN0SW50MzIobV9ncmFwaC5tX3ZtLnN0cnVj
dHVyZVN0cnVjdHVyZS0+c3RydWN0dXJlSUQoKSkpLAotICAgICAgICAgICAgICAgIHVuc3VyZShy
YXJlRGF0YUNhc2UpLCB1bnN1cmUoc2xvd0Nhc2UpKTsKLQotICAgICAgICAgICAgbV9vdXQuYXBw
ZW5kVG8ocmFyZURhdGFDYXNlLCBzbG93Q2FzZSk7Ci0gICAgICAgICAgICBMVmFsdWUgb2JqZWN0
VG9TdHJpbmdWYWx1ZSA9IG1fb3V0LmxvYWRQdHIocHJldmlvdXNPclJhcmVEYXRhLCBtX2hlYXBz
LlN0cnVjdHVyZVJhcmVEYXRhX29iamVjdFRvU3RyaW5nVmFsdWUpOwotICAgICAgICAgICAgVmFs
dWVGcm9tQmxvY2sgZmFzdFJlc3VsdCA9IG1fb3V0LmFuY2hvcihvYmplY3RUb1N0cmluZ1ZhbHVl
KTsKLSAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5pc051bGwob2JqZWN0VG9TdHJpbmdW
YWx1ZSksIHVuc3VyZShzbG93Q2FzZSksIHVuc3VyZShjb250aW51YXRpb24pKTsKLQotICAgICAg
ICAgICAgbV9vdXQuYXBwZW5kVG8oc2xvd0Nhc2UsIGNvbnRpbnVhdGlvbik7Ci0gICAgICAgICAg
ICBMVmFsdWUgc2xvd1Jlc3VsdFZhbHVlID0gdm1DYWxsKHBvaW50ZXJUeXBlKCksIG1fb3V0Lm9w
ZXJhdGlvbihvcGVyYXRpb25PYmplY3RUb1N0cmluZyksIG1fY2FsbEZyYW1lLCBzb3VyY2UpOwot
ICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgc2xvd1Jlc3VsdCA9IG1fb3V0LmFuY2hvcihzbG93
UmVzdWx0VmFsdWUpOwotICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwotCi0g
ICAgICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKLSAgICAg
ICAgICAgIHNldEpTVmFsdWUobV9vdXQucGhpKHBvaW50ZXJUeXBlKCksIGZhc3RSZXN1bHQsIHNs
b3dSZXN1bHQpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBkZWZh
dWx0OgotICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgIkJhZCB1c2Uga2lu
ZCIpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQogICAgIAogICAgIHZv
aWQgY29tcGlsZVRvUHJpbWl0aXZlKCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50cmluc2ljLmNwcAppbmRleCBmM2RiNTg0MzQ5YWJlMTIyMzdlNWRiNThlOWU1MDc0
ZTkxZDZkNmU4Li5mYmM0ZWYzY2Q4ZjJlYzYyZGE5MzAwZGEyNzFiMTAyMzM5NzQzNGZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5jcHAKQEAgLTEyMSw4ICsx
MjEsNiBAQCBjb25zdCBjaGFyKiBpbnRyaW5zaWNOYW1lKEludHJpbnNpYyBpbnRyaW5zaWMpCiAg
ICAgICAgIHJldHVybiAiT2JqZWN0SXNJbnRyaW5zaWMiOwogICAgIGNhc2UgT2JqZWN0S2V5c0lu
dHJpbnNpYzoKICAgICAgICAgcmV0dXJuICJPYmplY3RLZXlzSW50cmluc2ljIjsKLSAgICBjYXNl
IE9iamVjdFByb3RvdHlwZVRvU3RyaW5nSW50cmluc2ljOgotICAgICAgICByZXR1cm4gIk9iamVj
dFByb3RvdHlwZVRvU3RyaW5nSW50cmluc2ljIjsKICAgICBjYXNlIFJlZmxlY3RHZXRQcm90b3R5
cGVPZkludHJpbnNpYzoKICAgICAgICAgcmV0dXJuICJSZWZsZWN0R2V0UHJvdG90eXBlT2ZJbnRy
aW5zaWMiOwogICAgIGNhc2UgU3RyaW5nUHJvdG90eXBlVmFsdWVPZkludHJpbnNpYzoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgKaW5kZXggMTVlYWIyNmJhYzZhNTYy
YzhlMmYyNGUzNWNkODJlMmVmNGIyNGQwNS4uYjQ3ZjQ2ZDllNGRlMDAxM2RlODM0NmU4MmU2ODE2
ZjVmZDAyZjc0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
cmluc2ljLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgK
QEAgLTczLDcgKzczLDYgQEAgZW51bSBJbnRyaW5zaWMgewogICAgIE9iamVjdEdldFByb3RvdHlw
ZU9mSW50cmluc2ljLAogICAgIE9iamVjdElzSW50cmluc2ljLAogICAgIE9iamVjdEtleXNJbnRy
aW5zaWMsCi0gICAgT2JqZWN0UHJvdG90eXBlVG9TdHJpbmdJbnRyaW5zaWMsCiAgICAgUmVmbGVj
dEdldFByb3RvdHlwZU9mSW50cmluc2ljLAogICAgIFN0cmluZ1Byb3RvdHlwZVZhbHVlT2ZJbnRy
aW5zaWMsCiAgICAgU3RyaW5nUHJvdG90eXBlUmVwbGFjZUludHJpbnNpYywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCmluZGV4IDA1MmVi
MjEyMGQzZGY5YmE3ZDMxMzMwMmJkOWZlYTlkZjEyN2ViYmIuLjFiZDg5MzA4MzRmZDY4MDIwNGQz
YmI4NmNlZTJjYWQwZDBjNTlkNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcApAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgIkpT
RnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKLSNpbmNsdWRlICJPYmplY3RQcm90b3R5cGVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiUHJvcGVy
dHlTbG90LmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlSW5saW5lcy5oIgogI2luY2x1ZGUgIlN0cnVj
dHVyZVJhcmVEYXRhSW5saW5lcy5oIgpAQCAtNDMsNyArNDIsNiBAQCBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNMb29rdXBHZXR0ZXIoRXhlY1N0YXRl
Kik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNM
b29rdXBTZXR0ZXIoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBvYmplY3RQcm90b0Z1bmNQcm9wZXJ0eUlzRW51bWVyYWJsZShFeGVjU3RhdGUqKTsKIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY1RvTG9jYWxl
U3RyaW5nKEV4ZWNTdGF0ZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
b2JqZWN0UHJvdG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKik7CiAKIFNUQVRJQ19BU1NFUlRfSVNf
VFJJVklBTExZX0RFU1RSVUNUSUJMRShPYmplY3RQcm90b3R5cGUpOwogCkBAIC02MCw3ICs1OCw3
IEBAIHZvaWQgT2JqZWN0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsK
ICAgICBkaWRCZWNvbWVQcm90b3R5cGUoKTsKICAgICAKLSAgICBKU0NfTkFUSVZFX0lOVFJJTlNJ
Q19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+dG9TdHJpbmcs
IG9iamVjdFByb3RvRnVuY1RvU3RyaW5nLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSwgMCwgT2JqZWN0UHJvdG90eXBlVG9TdHJpbmdJbnRyaW5zaWMp
OworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5
TmFtZXMtPnRvU3RyaW5nLCBvYmplY3RQcm90b0Z1bmNUb1N0cmluZywgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDApOwogICAgIEpTQ19OQVRJVkVf
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPnRvTG9jYWxlU3Ry
aW5nLCBvYmplY3RQcm90b0Z1bmNUb0xvY2FsZVN0cmluZywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDApOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJ
T05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPnZhbHVlT2YsIG9iamVjdFBy
b3RvRnVuY1ZhbHVlT2YsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pLCAwKTsKICAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VU
X1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+aGFzT3duUHJvcGVydHksIG9iamVjdFByb3Rv
RnVuY0hhc093blByb3BlcnR5LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKSwgMSwgSGFzT3duUHJvcGVydHlJbnRyaW5zaWMpOwpAQCAtMzEzLDggKzMx
MSw1MCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY1RvTG9j
YWxlU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBvYmplY3RQcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiB7CisgICAgVk0mIHZt
ID0gZXhlYy0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CisKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpLnRvVGhpcyhleGVj
LCBTdHJpY3RNb2RlKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG9iamVjdFRvU3RyaW5n
KGV4ZWMsIHRoaXNWYWx1ZSkpOworICAgIGlmICh0aGlzVmFsdWUuaXNVbmRlZmluZWRPck51bGwo
KSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aGlzVmFsdWUuaXNVbmRlZmluZWQo
KSA/IHZtLnNtYWxsU3RyaW5ncy51bmRlZmluZWRPYmplY3RTdHJpbmcoKSA6IHZtLnNtYWxsU3Ry
aW5ncy5udWxsT2JqZWN0U3RyaW5nKCkpOworICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0gdGhp
c1ZhbHVlLnRvT2JqZWN0KGV4ZWMpOworICAgIEVYQ0VQVElPTl9BU1NFUlQoISFzY29wZS5leGNl
cHRpb24oKSA9PSAhdGhpc09iamVjdCk7CisgICAgaWYgKCF0aGlzT2JqZWN0KQorICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworCisgICAgYXV0byByZXN1bHQg
PSB0aGlzT2JqZWN0LT5zdHJ1Y3R1cmUodm0pLT5vYmplY3RUb1N0cmluZ1ZhbHVlKCk7CisgICAg
aWYgKHJlc3VsdCkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOworCisg
ICAgUHJvcGVydHlOYW1lIHRvU3RyaW5nVGFnU3ltYm9sID0gdm0ucHJvcGVydHlOYW1lcy0+dG9T
dHJpbmdUYWdTeW1ib2w7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjpl
bmNvZGUodGhpc09iamVjdC0+Z2V0UHJvcGVydHlTbG90KGV4ZWMsIHRvU3RyaW5nVGFnU3ltYm9s
LCBbJl0gKGJvb2wgZm91bmQsIFByb3BlcnR5U2xvdCYgdG9TdHJpbmdUYWdTbG90KSAtPiBKU1Zh
bHVlIHsKKyAgICAgICAgaWYgKGZvdW5kKSB7CisgICAgICAgICAgICBKU1ZhbHVlIHN0cmluZ1Rh
ZyA9IHRvU3RyaW5nVGFnU2xvdC5nZXRWYWx1ZShleGVjLCB0b1N0cmluZ1RhZ1N5bWJvbCk7Cisg
ICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgICAgICAgICAg
aWYgKHN0cmluZ1RhZy5pc1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgSlNSb3BlU3RyaW5n
OjpSb3BlQnVpbGRlcjxSZWNvcmRPdmVyZmxvdz4gcm9wZUJ1aWxkZXIodm0pOworICAgICAgICAg
ICAgICAgIHJvcGVCdWlsZGVyLmFwcGVuZCh2bS5zbWFsbFN0cmluZ3Mub2JqZWN0U3RyaW5nU3Rh
cnQoKSk7CisgICAgICAgICAgICAgICAgcm9wZUJ1aWxkZXIuYXBwZW5kKGFzU3RyaW5nKHN0cmlu
Z1RhZykpOworICAgICAgICAgICAgICAgIHJvcGVCdWlsZGVyLmFwcGVuZCh2bS5zbWFsbFN0cmlu
Z3Muc2luZ2xlQ2hhcmFjdGVyU3RyaW5nKCddJykpOworICAgICAgICAgICAgICAgIGlmIChyb3Bl
QnVpbGRlci5oYXNPdmVyZmxvd2VkKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJv
d091dE9mTWVtb3J5RXJyb3IoZXhlYywgc2NvcGUpOworCisgICAgICAgICAgICAgICAgSlNTdHJp
bmcqIHJlc3VsdCA9IHJvcGVCdWlsZGVyLnJlbGVhc2UoKTsKKyAgICAgICAgICAgICAgICB0aGlz
T2JqZWN0LT5zdHJ1Y3R1cmUodm0pLT5zZXRPYmplY3RUb1N0cmluZ1ZhbHVlKGV4ZWMsIHZtLCBy
ZXN1bHQsIHRvU3RyaW5nVGFnU2xvdCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyB0YWcgPSB0aGlzT2Jq
ZWN0LT5tZXRob2RUYWJsZSh2bSktPnRvU3RyaW5nTmFtZSh0aGlzT2JqZWN0LCBleGVjKTsKKyAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICAgICAgU3RyaW5nIG5l
d1N0cmluZyA9IHRyeU1ha2VTdHJpbmcoIltvYmplY3QgIiwgV1RGTW92ZSh0YWcpLCAiXSIpOwor
ICAgICAgICBpZiAoIW5ld1N0cmluZykKKyAgICAgICAgICAgIHJldHVybiB0aHJvd091dE9mTWVt
b3J5RXJyb3IoZXhlYywgc2NvcGUpOworCisgICAgICAgIGF1dG8gcmVzdWx0ID0ganNOb250cml2
aWFsU3RyaW5nKCZ2bSwgbmV3U3RyaW5nKTsKKyAgICAgICAgdGhpc09iamVjdC0+c3RydWN0dXJl
KHZtKS0+c2V0T2JqZWN0VG9TdHJpbmdWYWx1ZShleGVjLCB2bSwgcmVzdWx0LCB0b1N0cmluZ1Rh
Z1Nsb3QpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0pKSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90
b3R5cGUuaAppbmRleCA2MDJiMTNkZGU4YTA5MzlmNTlkMjc0ZmRkNjI1Yzk3OTJmZTU1NmMxLi5i
NzBhODY1ODA1NDBmMGNiYzEyMTRkMDQ0YjBlZWJlMTdmOGEzYjk1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaApAQCAtNDUsNCArNDUsNiBA
QCBjbGFzcyBPYmplY3RQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7
CiAgICAgT2JqZWN0UHJvdG90eXBlKFZNJiwgU3RydWN0dXJlKik7CiB9OwogCitKU19FWFBPUlRf
UFJJVkFURSBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY1RvU3Ry
aW5nKEV4ZWNTdGF0ZSopOworCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZUlubGluZXMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZUlubGluZXMuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzMxOTkxZmJiZTdmMTEyNjBiMDQ3ZGI5YzRjNzcyNTcw
MzIxZjQwMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGVJbmxpbmVzLmgKKysr
IC9kZXYvbnVsbApAQCAtMSwxMTIgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDE5OTkt
MjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENvcHlyaWdodCAoQykgMjAw
OC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICog
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEz
MDEgIFVTQQotICoKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKLSNpbmNsdWRlICJKU09iamVjdC5oIgotI2luY2x1ZGUgIkpTU3RyaW5nLmgiCi0jaW5jbHVk
ZSAiT2JqZWN0UHJvdG90eXBlLmgiCi0jaW5jbHVkZSAiUHJvcGVydHlTbG90LmgiCi0jaW5jbHVk
ZSAiU3RydWN0dXJlSW5saW5lcy5oIgotI2luY2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhSW5saW5l
cy5oIgotCi1uYW1lc3BhY2UgSlNDIHsKLQotaW5saW5lIFN0cnVjdHVyZSogc3RydWN0dXJlRm9y
UHJpbWl0aXZlVmFsdWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2YWx1
ZSkKLXsKLSAgICBpZiAodmFsdWUuaXNDZWxsKCkpIHsKLSAgICAgICAgaWYgKHZhbHVlLmlzU3Ry
aW5nKCkpCi0gICAgICAgICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5zdHJpbmdPYmplY3RTdHJ1
Y3R1cmUoKTsKLSAgICAgICAgaWYgKHZhbHVlLmlzQmlnSW50KCkpCi0gICAgICAgICAgICByZXR1
cm4gZ2xvYmFsT2JqZWN0LT5iaWdJbnRPYmplY3RTdHJ1Y3R1cmUoKTsKLSAgICAgICAgQVNTRVJU
KHZhbHVlLmlzU3ltYm9sKCkpOwotICAgICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5zeW1ib2xP
YmplY3RTdHJ1Y3R1cmUoKTsKLSAgICB9Ci0KLSAgICBpZiAodmFsdWUuaXNOdW1iZXIoKSkKLSAg
ICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+bnVtYmVyT2JqZWN0U3RydWN0dXJlKCk7Ci0gICAg
aWYgKHZhbHVlLmlzQm9vbGVhbigpKQotICAgICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5ib29s
ZWFuT2JqZWN0U3RydWN0dXJlKCk7Ci0KLSAgICBBU1NFUlQodmFsdWUuaXNVbmRlZmluZWRPck51
bGwoKSk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLUFMV0FZU19JTkxJTkUgSlNTdHJpbmcq
IG9iamVjdFRvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB0aGlzVmFsdWUpCi17Ci0g
ICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7Ci0KLSAgICBKU09iamVjdCogdGhpc09iamVjdCA9IG51bGxwdHI7Ci0gICAgaWYg
KHRoaXNWYWx1ZS5pc09iamVjdCgpKSB7Ci0gICAgICAgIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNP
YmplY3QqPih0aGlzVmFsdWUpOwotICAgICAgICBpZiAoYXV0byogcmVzdWx0ID0gdGhpc09iamVj
dC0+c3RydWN0dXJlKHZtKS0+b2JqZWN0VG9TdHJpbmdWYWx1ZSgpKQotICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAodGhpc1ZhbHVlLmlzVW5kZWZp
bmVkT3JOdWxsKCkpCi0gICAgICAgICAgICByZXR1cm4gdGhpc1ZhbHVlLmlzVW5kZWZpbmVkKCkg
PyB2bS5zbWFsbFN0cmluZ3MudW5kZWZpbmVkT2JqZWN0U3RyaW5nKCkgOiB2bS5zbWFsbFN0cmlu
Z3MubnVsbE9iamVjdFN0cmluZygpOwotCi0gICAgICAgIGF1dG8qIHN0cnVjdHVyZSA9IHN0cnVj
dHVyZUZvclByaW1pdGl2ZVZhbHVlKGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgdGhpc1Zh
bHVlKTsKLSAgICAgICAgQVNTRVJUKHN0cnVjdHVyZSk7Ci0gICAgICAgIGlmIChhdXRvKiByZXN1
bHQgPSBzdHJ1Y3R1cmUtPm9iamVjdFRvU3RyaW5nVmFsdWUoKSkKLSAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgICAgIHRoaXNPYmplY3QgPSB0aGlzVmFsdWUudG9PYmplY3QoZXhlYyk7
Ci0gICAgICAgIEVYQ0VQVElPTl9BU1NFUlQoISFzY29wZS5leGNlcHRpb24oKSA9PSAhdGhpc09i
amVjdCk7Ci0gICAgICAgIGlmICghdGhpc09iamVjdCkKLSAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIH0KLQotICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgdGhpc09iamVjdC0+
Z2V0UHJvcGVydHlTbG90KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nVGFnU3ltYm9s
LCBbJl0gKGJvb2wgZm91bmQsIFByb3BlcnR5U2xvdCYgdG9TdHJpbmdUYWdTbG90KSAtPiBKU1N0
cmluZyogewotICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0g
ICAgICAgIGlmIChmb3VuZCkgewotICAgICAgICAgICAgSlNWYWx1ZSBzdHJpbmdUYWcgPSB0b1N0
cmluZ1RhZ1Nsb3QuZ2V0VmFsdWUoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+dG9TdHJpbmdUYWdT
eW1ib2wpOwotICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLSAg
ICAgICAgICAgIGlmIChzdHJpbmdUYWcuaXNTdHJpbmcoKSkgewotICAgICAgICAgICAgICAgIEpT
Um9wZVN0cmluZzo6Um9wZUJ1aWxkZXI8UmVjb3JkT3ZlcmZsb3c+IHJvcGVCdWlsZGVyKHZtKTsK
LSAgICAgICAgICAgICAgICByb3BlQnVpbGRlci5hcHBlbmQodm0uc21hbGxTdHJpbmdzLm9iamVj
dFN0cmluZ1N0YXJ0KCkpOwotICAgICAgICAgICAgICAgIHJvcGVCdWlsZGVyLmFwcGVuZChhc1N0
cmluZyhzdHJpbmdUYWcpKTsKLSAgICAgICAgICAgICAgICByb3BlQnVpbGRlci5hcHBlbmQodm0u
c21hbGxTdHJpbmdzLnNpbmdsZUNoYXJhY3RlclN0cmluZygnXScpKTsKLSAgICAgICAgICAgICAg
ICBpZiAocm9wZUJ1aWxkZXIuaGFzT3ZlcmZsb3dlZCgpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IHRocm93T3V0T2ZNZW1vcnlFcnJvcihleGVjLCBzY29wZSk7Ci0gICAgICAgICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIEpT
U3RyaW5nKiByZXN1bHQgPSByb3BlQnVpbGRlci5yZWxlYXNlKCk7Ci0gICAgICAgICAgICAgICAg
dGhpc09iamVjdC0+c3RydWN0dXJlKHZtKS0+c2V0T2JqZWN0VG9TdHJpbmdWYWx1ZShleGVjLCB2
bSwgcmVzdWx0LCB0b1N0cmluZ1RhZ1Nsb3QpOwotICAgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBTdHJpbmcgdGFnID0gdGhp
c09iamVjdC0+bWV0aG9kVGFibGUodm0pLT50b1N0cmluZ05hbWUodGhpc09iamVjdCwgZXhlYyk7
Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgICAgIFN0cmlu
ZyBuZXdTdHJpbmcgPSB0cnlNYWtlU3RyaW5nKCJbb2JqZWN0ICIsIFdURk1vdmUodGFnKSwgIl0i
KTsKLSAgICAgICAgaWYgKCFuZXdTdHJpbmcpIHsKLSAgICAgICAgICAgIHRocm93T3V0T2ZNZW1v
cnlFcnJvcihleGVjLCBzY29wZSk7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAg
ICAgfQotCi0gICAgICAgIGF1dG8gcmVzdWx0ID0ganNOb250cml2aWFsU3RyaW5nKCZ2bSwgV1RG
TW92ZShuZXdTdHJpbmcpKTsKLSAgICAgICAgdGhpc09iamVjdC0+c3RydWN0dXJlKHZtKS0+c2V0
T2JqZWN0VG9TdHJpbmdWYWx1ZShleGVjLCB2bSwgcmVzdWx0LCB0b1N0cmluZ1RhZ1Nsb3QpOwot
ICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0pKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgSlND
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJl
RGF0YS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEu
aAppbmRleCAxNzlhYTgyNGZiNTBiN2MzNGM2MGI3M2I1NjJlNjkyNDRkMjc0NmU3Li4zMzY3MzJk
MTFkODczZDQyZjIwZjk5MTA4NzFlMjhjMjcwZjZhODg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmgKQEAgLTgxLDExICs4MSw2IEBA
IGNsYXNzIFN0cnVjdHVyZVJhcmVEYXRhIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgdm9p
ZCBzZXRTaGFyZWRQb2x5UHJvdG9XYXRjaHBvaW50KEJveDxJbmxpbmVXYXRjaHBvaW50U2V0PiYm
IHNoYXJlZFBvbHlQcm90b1dhdGNocG9pbnQpIHsgbV9wb2x5UHJvdG9XYXRjaHBvaW50ID0gV1RG
TW92ZShzaGFyZWRQb2x5UHJvdG9XYXRjaHBvaW50KTsgfQogICAgIGJvb2wgaGFzU2hhcmVkUG9s
eVByb3RvV2F0Y2hwb2ludCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PGJvb2w+KG1fcG9s
eVByb3RvV2F0Y2hwb2ludCk7IH0KIAotICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZPYmpl
Y3RUb1N0cmluZ1ZhbHVlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0Yo
U3RydWN0dXJlUmFyZURhdGEsIG1fb2JqZWN0VG9TdHJpbmdWYWx1ZSk7Ci0gICAgfQotCiAgICAg
c3RhdGljIEpTSW1tdXRhYmxlQnV0dGVyZmx5KiBjYWNoZWRPd25LZXlzU2VudGluZWwoKSB7IHJl
dHVybiBiaXR3aXNlX2Nhc3Q8SlNJbW11dGFibGVCdXR0ZXJmbHkqPihzdGF0aWNfY2FzdDx1aW50
cHRyX3Q+KDEpKTsgfQogCiAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkNhY2hlZE93bktl
eXMoKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwpp
bmRleCBkODU1YmQ0NzJkYWZiYWFjZTcxZmQ3ZWMyMjE2YzJlMTE5ZDUyY2MzLi4yYmYwZDE4N2Yy
NDQ4NmZkYjhiMTVmNDRlZjYwYzI4YzQzMTZmZTQ2IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5n
ZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTAxLTIy
ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TihyMjM5NjEyKSBDcmFzaCBhdCBydW50aW1lIGR1ZSB0byBicm9rZW4gREZHIGFzc3VtcHRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzcwOQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDczNjM4Mzg+CisKKyAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbG91dCB0byB3YXRjaCB0aGUgdGVzdHMuCisKKyAgICAgICAgKiBzdHJlc3Mvb2JqZWN0LXRv
c3RyaW5nLWNoYW5nZWQtcHJvdG8uanM6IFJlbW92ZWQuCisgICAgICAgICogc3RyZXNzL29iamVj
dC10b3N0cmluZy1jaGFuZ2VkLmpzOiBSZW1vdmVkLgorICAgICAgICAqIHN0cmVzcy9vYmplY3Qt
dG9zdHJpbmctbWlzYy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBzdHJlc3Mvb2JqZWN0LXRvc3Ry
aW5nLW90aGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIHN0cmVzcy9vYmplY3QtdG9zdHJpbmct
dW50eXBlZC5qczogUmVtb3ZlZC4KKwogMjAxOS0wMS0yMiAgU2FhbSBCYXJhdGkgIDxzYmFyYXRp
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBSb2xsb3V0IHIyNDAyMjMuIEl0IHJl
Z3Jlc3NlZCBKZXRTdHJlYW0yIGJ5IDElLgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb2Jq
ZWN0LXRvc3RyaW5nLWNoYW5nZWQtcHJvdG8uanMgYi9KU1Rlc3RzL3N0cmVzcy9vYmplY3QtdG9z
dHJpbmctY2hhbmdlZC1wcm90by5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWEx
YTIyYjU2ZTAwZDFlYTI5NTllYmI3MTM4MGE2MDUwY2M5OGU3Zi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vYmplY3QtdG9zdHJp
bmctY2hhbmdlZC1wcm90by5qcworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLWZ1bmN0
aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpCi17Ci0gICAgaWYgKGFjdHVhbCAhPT0gZXhw
ZWN0ZWQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsK
LX0KLW5vSW5saW5lKHNob3VsZEJlKTsKLQotZnVuY3Rpb24gdGVzdCh2YWx1ZSkKLXsKLSAgICBy
ZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKTsKLX0KLW5vSW5saW5l
KHRlc3QpOwotCi12YXIgb2JqZWN0ID0ge307Ci1mb3IgKHZhciBpID0gMDsgaSA8IDFlNTsgKytp
KQotICAgIHNob3VsZEJlKHRlc3Qob2JqZWN0KSwgYFtvYmplY3QgT2JqZWN0XWApOwotT2JqZWN0
LnByb3RvdHlwZVtTeW1ib2wudG9TdHJpbmdUYWddID0gIkhlbGxvIjsKLXNob3VsZEJlKHRlc3Qo
b2JqZWN0KSwgYFtvYmplY3QgSGVsbG9dYCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9v
YmplY3QtdG9zdHJpbmctY2hhbmdlZC5qcyBiL0pTVGVzdHMvc3RyZXNzL29iamVjdC10b3N0cmlu
Zy1jaGFuZ2VkLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNGY3Mjc1ZDIzYjY5
YjEyNWRkMmYwYmIyZTIxODgxMDU4NThiNGRkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvc3RyZXNzL29iamVjdC10b3N0cmluZy1jaGFuZ2Vk
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotZnVuY3Rpb24gc2hvdWxkQmUoYWN0
dWFsLCBleHBlY3RlZCkKLXsKLSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwotfQotbm9JbmxpbmUoc2hv
dWxkQmUpOwotCi1mdW5jdGlvbiB0ZXN0KHZhbHVlKQotewotICAgIHJldHVybiBPYmplY3QucHJv
dG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpOwotfQotbm9JbmxpbmUodGVzdCk7Ci0KLXZhciBv
YmplY3QgPSB7fTsKLWZvciAodmFyIGkgPSAwOyBpIDwgMWU1OyArK2kpCi0gICAgc2hvdWxkQmUo
dGVzdChvYmplY3QpLCBgW29iamVjdCBPYmplY3RdYCk7Ci1vYmplY3RbU3ltYm9sLnRvU3RyaW5n
VGFnXSA9ICJIZWxsbyI7Ci1zaG91bGRCZSh0ZXN0KG9iamVjdCksIGBbb2JqZWN0IEhlbGxvXWAp
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb2JqZWN0LXRvc3RyaW5nLW1pc2MuanMgYi9K
U1Rlc3RzL3N0cmVzcy9vYmplY3QtdG9zdHJpbmctbWlzYy5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMWIwMGFlYjI2YmJkMTg4ZDFiN2E2NmExYjNkNzMzOTgwNGIyNmEzZC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3N0cmVz
cy9vYmplY3QtdG9zdHJpbmctbWlzYy5qcworKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAK
LWZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpCi17Ci0gICAgaWYgKGFjdHVhbCAh
PT0gZXhwZWN0ZWQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0
dWFsKTsKLX0KLW5vSW5saW5lKHNob3VsZEJlKTsKLQotZnVuY3Rpb24gdGVzdCh2YWx1ZSkKLXsK
LSAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKTsKLX0KLW5v
SW5saW5lKHRlc3QpOwotCi1mb3IgKHZhciBpID0gMDsgaSA8IDFlNjsgKytpKSB7Ci0gICAgc3dp
dGNoIChpICUgMykgewotICAgIGNhc2UgMDoKLSAgICAgICAgc2hvdWxkQmUodGVzdChudWxsKSwg
YFtvYmplY3QgTnVsbF1gKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAxOgotICAgICAgICBz
aG91bGRCZSh0ZXN0KHVuZGVmaW5lZCksIGBbb2JqZWN0IFVuZGVmaW5lZF1gKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSAyOgotICAgICAgICBzaG91bGRCZSh0ZXN0KHRydWUpLCBgW29iamVj
dCBCb29sZWFuXWApOwotICAgICAgICBicmVhazsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9vYmplY3QtdG9zdHJpbmctb3RoZXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9vYmpl
Y3QtdG9zdHJpbmctb3RoZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1N2Zi
YWZjYTMzMmVhYTYwZDJlZDVlNGE0MTQxNDMyZjNhMGYwYjguLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb2JqZWN0LXRvc3RyaW5n
LW90aGVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotZnVuY3Rpb24gc2hvdWxk
QmUoYWN0dWFsLCBleHBlY3RlZCkKLXsKLSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwotfQotbm9Jbmxp
bmUoc2hvdWxkQmUpOwotCi1mdW5jdGlvbiB0ZXN0KHZhbHVlKQotewotICAgIHJldHVybiBPYmpl
Y3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpOwotfQotbm9JbmxpbmUodGVzdCk7Ci0K
LWZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKLSAgICBpZiAoaSAmIDB4MSkKLSAgICAg
ICAgc2hvdWxkQmUodGVzdChudWxsKSwgYFtvYmplY3QgTnVsbF1gKTsKLSAgICBlbHNlCi0gICAg
ICAgIHNob3VsZEJlKHRlc3QodW5kZWZpbmVkKSwgYFtvYmplY3QgVW5kZWZpbmVkXWApOwotfQpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb2JqZWN0LXRvc3RyaW5nLXVudHlwZWQuanMgYi9K
U1Rlc3RzL3N0cmVzcy9vYmplY3QtdG9zdHJpbmctdW50eXBlZC5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZjc3Y2RkMGM2ZTc1MWVhNjk0ZDg3NTRjYTUxYWFiZWVjYTk2ODQ5Ni4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3N0
cmVzcy9vYmplY3QtdG9zdHJpbmctdW50eXBlZC5qcworKysgL2Rldi9udWxsCkBAIC0xLDUwICsw
LDAgQEAKLWZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpCi17Ci0gICAgaWYgKGFj
dHVhbCAhPT0gZXhwZWN0ZWQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAn
ICsgYWN0dWFsKTsKLX0KLW5vSW5saW5lKHNob3VsZEJlKTsKLQotZnVuY3Rpb24gdGVzdCh2YWx1
ZSkKLXsKLSAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKTsK
LX0KLW5vSW5saW5lKHRlc3QpOwotCi12YXIgdmFsdWUwID0ge307Ci12YXIgdmFsdWUxID0geyBb
U3ltYm9sLnRvU3RyaW5nVGFnXTogIkhlbGxvIiB9OwotdmFyIHZhbHVlMiA9IG5ldyBEYXRlKCk7
Ci12YXIgdmFsdWUzID0gIkhlbGxvIjsKLXZhciB2YWx1ZTQgPSA0MjsKLXZhciB2YWx1ZTUgPSBT
eW1ib2woIkNvY29hIik7Ci12YXIgdmFsdWU2ID0gNDIuMTk1OwotdmFyIHZhbHVlNyA9IGZhbHNl
OwotCi1mb3IgKHZhciBpID0gMDsgaSA8IDFlNjsgKytpKSB7Ci0gICAgc3dpdGNoIChpICUgOCkg
ewotICAgIGNhc2UgMDoKLSAgICAgICAgc2hvdWxkQmUodGVzdCh2YWx1ZTApLCBgW29iamVjdCBP
YmplY3RdYCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgMToKLSAgICAgICAgc2hvdWxkQmUo
dGVzdCh2YWx1ZTEpLCBgW29iamVjdCBIZWxsb11gKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSAyOgotICAgICAgICBzaG91bGRCZSh0ZXN0KHZhbHVlMiksIGBbb2JqZWN0IERhdGVdYCk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgMzoKLSAgICAgICAgc2hvdWxkQmUodGVzdCh2YWx1ZTMp
LCBgW29iamVjdCBTdHJpbmddYCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgNDoKLSAgICAg
ICAgc2hvdWxkQmUodGVzdCh2YWx1ZTQpLCBgW29iamVjdCBOdW1iZXJdYCk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgNToKLSAgICAgICAgc2hvdWxkQmUodGVzdCh2YWx1ZTUpLCBgW29iamVj
dCBTeW1ib2xdYCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgNjoKLSAgICAgICAgc2hvdWxk
QmUodGVzdCh2YWx1ZTYpLCBgW29iamVjdCBOdW1iZXJdYCk7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgNzoKLSAgICAgICAgc2hvdWxkQmUodGVzdCh2YWx1ZTcpLCBgW29iamVjdCBCb29sZWFu
XWApOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>