<?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>41839</bug_id>
          
          <creation_ts>2010-07-08 01:18:29 -0700</creation_ts>
          <short_desc>[Qt] QScriptEngine should work correctly even after global object changes</short_desc>
          <delta_ts>2010-07-14 07:35:22 -0700</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>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>31863</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jędrzej Nowacki">jedrzej.nowacki</reporter>
          <assigned_to name="Jędrzej Nowacki">jedrzej.nowacki</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jedrzej.nowacki</cc>
    
    <cc>kent.hansen</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>248065</commentid>
    <comment_count>0</comment_count>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-07-08 01:18:29 -0700</bug_when>
    <thetext>Some algorithms in the QScriptValue and in the QScriptEngine (like QSV::isError() method) are not prepared for Global Object changes. It would be nice to keep a reference to some of global object&apos;s properties in QScriptEnginePrivate, for future use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251113</commentid>
    <comment_count>1</comment_count>
      <attachid>61502</attachid>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-07-14 04:42:54 -0700</bug_when>
    <thetext>Created attachment 61502
Fix v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251156</commentid>
    <comment_count>2</comment_count>
      <attachid>61514</attachid>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-07-14 06:45:38 -0700</bug_when>
    <thetext>Created attachment 61514
Fix v1.01

Rebased against trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251159</commentid>
    <comment_count>3</comment_count>
      <attachid>61514</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-14 06:51:51 -0700</bug_when>
    <thetext>Comment on attachment 61514
Fix v1.01

Nice that you are concentrating all method that will need C api in the future. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251179</commentid>
    <comment_count>4</comment_count>
      <attachid>61514</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-14 07:35:18 -0700</bug_when>
    <thetext>Comment on attachment 61514
Fix v1.01

Clearing flags on attachment: 61514

Committed r63318: &lt;http://trac.webkit.org/changeset/63318&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251180</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-14 07:35:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61502</attachid>
            <date>2010-07-14 04:42:54 -0700</date>
            <delta_ts>2010-07-14 06:45:38 -0700</delta_ts>
            <desc>Fix v1</desc>
            <filename>ogb.diff</filename>
            <type>text/plain</type>
            <size>23281</size>
            <attacher name="Jędrzej Nowacki">jedrzej.nowacki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3Jl
L3F0L0NoYW5nZUxvZwppbmRleCA5MDYwZjg3Li5kYzk4MjE0IDEwMDY0NAotLS0gYS9KYXZhU2Ny
aXB0Q29yZS9xdC9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNTAgQEAKKzIwMTAtMDctMTQgIEplZHJ6ZWogTm93YWNraSAgPGplZHJ6ZWoubm93
YWNraUBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSW50cm9kdWNlIFFTY3JpcHRPcmlnaW5hbEdsb2JhbE9iamVjdC4KKworICAgICAg
ICBRdFNjcmlwdCBleHBvc2VzIG1vcmUgZnVuY3Rpb25hbGl0eSB0aGFuIEpTQyBDIEFQSS4gU29t
ZXRpbWVzIGl0IGlzCisgICAgICAgIG5lY2Vzc2FyeSB0byB0YWtlIGEgc2hvcnRjdXQgaW4gaW1w
bGVtZW50YXRpb24uIFJlYWxseSBvZnRlbiB3ZSBoYXZlCisgICAgICAgIHRvIHVzZSBhIHN0YW5k
YXJkIEpTIGZ1bmN0aW9uLiBUaGVzZSBmdW5jdGlvbiBjb3VsZCBiZSBjaGFuZ2VkIG9yCisgICAg
ICAgIGV2ZW4gZGVsZXRlZCBieSBhIHNjcmlwdCwgc28gYSBiYWNrdXAgb2YgYSByZWZlcmVuY2Ug
dG8gYW4gb2JqZWN0IGlzIG5lZWRlZC4KKworICAgICAgICBJbiB0aGVtIHNhbWUgdGltZSB0aGlz
IGlzIHJhdGhlciBhIHdvcmthcm91bmQgdGhlbiByZWFsIGZpeCwgc28gdGhlIGNvZGUKKyAgICAg
ICAgc2hvdWxkIGJlIHNlcGFyYXRlZCBhbmQgY2hhbmdlZCBlYXNpbHkgaW4gZnV0dXJlLiBJdCBp
cyB3aHkgd2UgbmVlZAorICAgICAgICB0aGUgbmV3IGludGVybmFsIGNsYXNzLgorCisgICAgICAg
IFRoZSBwYXRjaCBmaXhlcyBhIGZldyBjcmFzaGVzLgorCisgICAgICAgIFtRdF0gUVNjcmlwdEVu
Z2luZSBzaG91bGQgd29yayBjb3JyZWN0bHkgZXZlbiBhZnRlciBnbG9iYWwgb2JqZWN0IGNoYW5n
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxODM5
CisKKyAgICAgICAgKiBhcGkvUXRTY3JpcHQucHJvOgorICAgICAgICAqIGFwaS9xc2NyaXB0ZW5n
aW5lX3AuY3BwOgorICAgICAgICAoUVNjcmlwdEVuZ2luZVByaXZhdGU6OlFTY3JpcHRFbmdpbmVQ
cml2YXRlKToKKyAgICAgICAgKFFTY3JpcHRFbmdpbmVQcml2YXRlOjp+UVNjcmlwdEVuZ2luZVBy
aXZhdGUpOgorICAgICAgICAqIGFwaS9xc2NyaXB0ZW5naW5lX3AuaDoKKyAgICAgICAgKFFTY3Jp
cHRFbmdpbmVQcml2YXRlOjppc0FycmF5KToKKyAgICAgICAgKFFTY3JpcHRFbmdpbmVQcml2YXRl
Ojppc0Vycm9yKToKKyAgICAgICAgKFFTY3JpcHRFbmdpbmVQcml2YXRlOjpvYmplY3RIYXNPd25Q
cm9wZXJ0eSk6CisgICAgICAgIChRU2NyaXB0RW5naW5lUHJpdmF0ZTo6b2JqZWN0R2V0T3duUHJv
cGVydHlOYW1lcyk6CisgICAgICAgICogYXBpL3FzY3JpcHRvcmlnaW5hbGdsb2JhbG9iamVjdF9w
Lmg6IEFkZGVkLgorICAgICAgICAoUVNjcmlwdE9yaWdpbmFsR2xvYmFsT2JqZWN0OjpRU2NyaXB0
T3JpZ2luYWxHbG9iYWxPYmplY3QpOgorICAgICAgICAoUVNjcmlwdE9yaWdpbmFsR2xvYmFsT2Jq
ZWN0Ojppbml0aWFsaXplTWVtYmVyKToKKyAgICAgICAgKFFTY3JpcHRPcmlnaW5hbEdsb2JhbE9i
amVjdDo6flFTY3JpcHRPcmlnaW5hbEdsb2JhbE9iamVjdCk6CisgICAgICAgIChRU2NyaXB0T3Jp
Z2luYWxHbG9iYWxPYmplY3Q6Om9iamVjdEhhc093blByb3BlcnR5KToKKyAgICAgICAgKFFTY3Jp
cHRPcmlnaW5hbEdsb2JhbE9iamVjdDo6b2JqZWN0R2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAg
ICAgIChRU2NyaXB0T3JpZ2luYWxHbG9iYWxPYmplY3Q6OmlzQXJyYXkpOgorICAgICAgICAoUVNj
cmlwdE9yaWdpbmFsR2xvYmFsT2JqZWN0Ojppc0Vycm9yKToKKyAgICAgICAgKFFTY3JpcHRPcmln
aW5hbEdsb2JhbE9iamVjdDo6aXNUeXBlKToKKyAgICAgICAgKiBhcGkvcXNjcmlwdHZhbHVlX3Au
aDoKKyAgICAgICAgKFFTY3JpcHRWYWx1ZVByaXZhdGU6OmlzRXJyb3IpOgorICAgICAgICAoUVNj
cmlwdFZhbHVlUHJpdmF0ZTo6aGFzT3duUHJvcGVydHkpOgorICAgICAgICAqIGFwaS9xc2NyaXB0
dmFsdWVpdGVyYXRvcl9wLmg6CisgICAgICAgIChRU2NyaXB0VmFsdWVJdGVyYXRvclByaXZhdGU6
OlFTY3JpcHRWYWx1ZUl0ZXJhdG9yUHJpdmF0ZSk6CisgICAgICAgICogdGVzdHMvcXNjcmlwdHZh
bHVlL3RzdF9xc2NyaXB0dmFsdWUuY3BwOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6Z2xv
YmFsT2JqZWN0Q2hhbmdlcyk6CisgICAgICAgICogdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2Ny
aXB0dmFsdWUuaDoKKwogMjAxMC0wNy0wOSAgSmVkcnplaiBOb3dhY2tpICA8amVkcnplai5ub3dh
Y2tpQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlm
ZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9RdFNjcmlwdC5wcm8gYi9KYXZhU2NyaXB0
Q29yZS9xdC9hcGkvUXRTY3JpcHQucHJvCmluZGV4IGZiNDljZmUuLmMyYzZmODMgMTAwNjQ0Ci0t
LSBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9RdFNjcmlwdC5wcm8KKysrIGIvSmF2YVNjcmlwdENv
cmUvcXQvYXBpL1F0U2NyaXB0LnBybwpAQCAtNDIsNiArNDIsNyBAQCBIRUFERVJTICs9ICAkJFBX
RC9xdHNjcmlwdGdsb2JhbC5oIFwKICAgICAgICAgICAgICQkUFdEL3FzY3JpcHRwcm9ncmFtLmgg
XAogICAgICAgICAgICAgJCRQV0QvcXNjcmlwdHByb2dyYW1fcC5oIFwKICAgICAgICAgICAgICQk
UFdEL3FzY3JpcHRzeW50YXhjaGVja3Jlc3VsdC5oIFwKKyAgICAgICAgICAgICQkUFdEL3FzY3Jp
cHRvcmlnaW5hbGdsb2JhbG9iamVjdF9wLmggXAogCiAKICFzdGF0aWM6IERFRklORVMgKz0gUVRf
TUFLRURMTApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmVf
cC5jcHAgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZV9wLmNwcAppbmRleCAz
NjBkZTI5Li5lMzMxMWVkIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlw
dGVuZ2luZV9wLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZV9w
LmNwcApAQCAtMzIsMzIgKzMyLDEyIEBAIFFTY3JpcHRFbmdpbmVQcml2YXRlOjpRU2NyaXB0RW5n
aW5lUHJpdmF0ZShjb25zdCBRU2NyaXB0RW5naW5lKiBlbmdpbmUpCiAgICAgOiBxX3B0cihjb25z
dF9jYXN0PFFTY3JpcHRFbmdpbmUqPihlbmdpbmUpKQogICAgICwgbV9jb250ZXh0KEpTR2xvYmFs
Q29udGV4dENyZWF0ZSgwKSkKICAgICAsIG1fZXhjZXB0aW9uKDApCi0gICAgLCBtX2FycmF5Q29u
c3RydWN0b3IoMCkKLSAgICAsIG1fYXJyYXlQcm90b3R5cGUoMCkKKyAgICAsIG1fb3JpZ2luYWxH
bG9iYWxPYmplY3QobV9jb250ZXh0KQogewotICAgIEpTT2JqZWN0UmVmIGdsb2JhbE9iamVjdCA9
IEpTQ29udGV4dEdldEdsb2JhbE9iamVjdChtX2NvbnRleHQpOwotCi0gICAgLy8gU2F2ZSByZWZl
cmVuY2VzIHRvIHRoZSBBcnJheSBjb25zdHJ1Y3RvciBhbmQgcHJvdG90eXBlLgotICAgIEpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBhcnJheU5hbWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKCJBcnJheSIpKTsKLSAgICBKU1ZhbHVlUmVmIGFycmF5Q29uc3RydWN0b3IgPSBK
U09iamVjdEdldFByb3BlcnR5KG1fY29udGV4dCwgZ2xvYmFsT2JqZWN0LCBhcnJheU5hbWUuZ2V0
KCksIC8qIGV4Y2VwdGlvbiAqLyAwKTsKLSAgICBRX0FTU0VSVChKU1ZhbHVlSXNPYmplY3QobV9j
b250ZXh0LCBhcnJheUNvbnN0cnVjdG9yKSk7Ci0gICAgbV9hcnJheUNvbnN0cnVjdG9yID0gSlNW
YWx1ZVRvT2JqZWN0KG1fY29udGV4dCwgYXJyYXlDb25zdHJ1Y3RvciwgLyogZXhjZXB0aW9uICov
IDApOwotICAgIEpTVmFsdWVQcm90ZWN0KG1fY29udGV4dCwgbV9hcnJheUNvbnN0cnVjdG9yKTsK
LQotICAgIC8vIE5vdGUgdGhhdCB0aGlzIGlzIG5vdCB0aGUgW1tQcm90b3R5cGVdXSBpbnRlcm5h
bCBwcm9wZXJ0eSAod2hpY2ggd2UgY291bGQKLSAgICAvLyBnZXQgdmlhIEpTT2JqZWN0R2V0UHJv
dG90eXBlKSwgYnV0IHRoZSBBcnJheS5wcm90b3R5cGUsIHRoYXQgd2lsbCBiZSBzZXQKLSAgICAv
LyBhcyBbW1Byb3RvdHlwZV1dIG9mIEFycmF5IGluc3RhbmNlcy4KLSAgICBKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gcHJvdG90eXBlTmFtZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoInByb3RvdHlwZSIpKTsKLSAgICBKU1ZhbHVlUmVmIGFycmF5UHJvdG90eXBlID0gSlNP
YmplY3RHZXRQcm9wZXJ0eShtX2NvbnRleHQsIG1fYXJyYXlDb25zdHJ1Y3RvciwgcHJvdG90eXBl
TmFtZS5nZXQoKSwgLyogZXhjZXB0aW9uICovIDApOwotICAgIFFfQVNTRVJUKEpTVmFsdWVJc09i
amVjdChtX2NvbnRleHQsIGFycmF5UHJvdG90eXBlKSk7Ci0gICAgbV9hcnJheVByb3RvdHlwZSA9
IGFycmF5UHJvdG90eXBlOwotICAgIEpTVmFsdWVQcm90ZWN0KG1fY29udGV4dCwgbV9hcnJheVBy
b3RvdHlwZSk7CiB9CiAKIFFTY3JpcHRFbmdpbmVQcml2YXRlOjp+UVNjcmlwdEVuZ2luZVByaXZh
dGUoKQogewotICAgIEpTVmFsdWVVbnByb3RlY3QobV9jb250ZXh0LCBtX2FycmF5Q29uc3RydWN0
b3IpOwotICAgIEpTVmFsdWVVbnByb3RlY3QobV9jb250ZXh0LCBtX2FycmF5UHJvdG90eXBlKTsK
ICAgICBpZiAobV9leGNlcHRpb24pCiAgICAgICAgIEpTVmFsdWVVbnByb3RlY3QobV9jb250ZXh0
LCBtX2V4Y2VwdGlvbik7CiAgICAgSlNHbG9iYWxDb250ZXh0UmVsZWFzZShtX2NvbnRleHQpOwpk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmVfcC5oIGIvSmF2
YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmVfcC5oCmluZGV4IDQwMWMwNTEuLmQ1NGNk
Y2MgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lX3AuaAor
KysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZV9wLmgKQEAgLTIyLDYgKzIy
LDcgQEAKIAogI2luY2x1ZGUgInFzY3JpcHRjb252ZXJ0ZXJfcC5oIgogI2luY2x1ZGUgInFzY3Jp
cHRlbmdpbmUuaCIKKyNpbmNsdWRlICJxc2NyaXB0b3JpZ2luYWxnbG9iYWxvYmplY3RfcC5oIgog
I2luY2x1ZGUgInFzY3JpcHRzdHJpbmdfcC5oIgogI2luY2x1ZGUgInFzY3JpcHRzeW50YXhjaGVj
a3Jlc3VsdF9wLmgiCiAjaW5jbHVkZSAicXNjcmlwdHZhbHVlLmgiCkBAIC03OSwxMyArODAsMTUg
QEAgcHVibGljOgogICAgIGlubGluZSBvcGVyYXRvciBKU0dsb2JhbENvbnRleHRSZWYoKSBjb25z
dDsKIAogICAgIGlubGluZSBib29sIGlzQXJyYXkoSlNWYWx1ZVJlZiB2YWx1ZSkgY29uc3Q7Cisg
ICAgaW5saW5lIGJvb2wgaXNFcnJvcihKU1ZhbHVlUmVmIHZhbHVlKSBjb25zdDsKKyAgICBpbmxp
bmUgYm9vbCBvYmplY3RIYXNPd25Qcm9wZXJ0eShKU09iamVjdFJlZiBvYmplY3QsIEpTU3RyaW5n
UmVmIHByb3BlcnR5KSBjb25zdDsKKyAgICBpbmxpbmUgUVZlY3RvcjxKU1N0cmluZ1JlZj4gb2Jq
ZWN0R2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdFJlZiBvYmplY3QpIGNvbnN0OwogcHJpdmF0
ZToKICAgICBRU2NyaXB0RW5naW5lKiBxX3B0cjsKICAgICBKU0dsb2JhbENvbnRleHRSZWYgbV9j
b250ZXh0OwogICAgIEpTVmFsdWVSZWYgbV9leGNlcHRpb247CiAKLSAgICBKU09iamVjdFJlZiBt
X2FycmF5Q29uc3RydWN0b3I7Ci0gICAgSlNWYWx1ZVJlZiBtX2FycmF5UHJvdG90eXBlOworICAg
IFFTY3JpcHRPcmlnaW5hbEdsb2JhbE9iamVjdCBtX29yaWdpbmFsR2xvYmFsT2JqZWN0OwogfTsK
IAogCkBAIC0yMTgsOSArMjIxLDI0IEBAIFFTY3JpcHRFbmdpbmVQcml2YXRlOjpvcGVyYXRvciBK
U0dsb2JhbENvbnRleHRSZWYoKSBjb25zdAogCiBib29sIFFTY3JpcHRFbmdpbmVQcml2YXRlOjpp
c0FycmF5KEpTVmFsdWVSZWYgdmFsdWUpIGNvbnN0CiB7Ci0gICAgLy8gSlNDIEFQSSBkb2Vzbid0
IGV4cG9ydCB0aGUgW1tDbGFzc11dIGluZm9ybWF0aW9uIGZvciB0aGUgYnVpbHRpbnMuIEJ1dCB3
ZSBrbm93IHRoYXQgYSB2YWx1ZQotICAgIC8vIGlzIGFuIGFycmF5IGlmIGl0IHdhcyBjcmVhdGVk
IHdpdGggdGhlIEFycmF5IGNvbnN0cnVjdG9yIG9yIGlmIGl0IGlzIHRoZSBBcnJheS5wcm90b3R5
cGUuCi0gICAgcmV0dXJuIEpTVmFsdWVJc0luc3RhbmNlT2ZDb25zdHJ1Y3RvcihtX2NvbnRleHQs
IHZhbHVlLCBtX2FycmF5Q29uc3RydWN0b3IsIC8qIGV4Y2VwdGlvbiAqLyAwKSB8fCBKU1ZhbHVl
SXNTdHJpY3RFcXVhbChtX2NvbnRleHQsIHZhbHVlLCBtX2FycmF5UHJvdG90eXBlKTsKKyAgICBy
ZXR1cm4gbV9vcmlnaW5hbEdsb2JhbE9iamVjdC5pc0FycmF5KHZhbHVlKTsKK30KKworYm9vbCBR
U2NyaXB0RW5naW5lUHJpdmF0ZTo6aXNFcnJvcihKU1ZhbHVlUmVmIHZhbHVlKSBjb25zdAorewor
ICAgIHJldHVybiBtX29yaWdpbmFsR2xvYmFsT2JqZWN0LmlzRXJyb3IodmFsdWUpOworfQorCitp
bmxpbmUgYm9vbCBRU2NyaXB0RW5naW5lUHJpdmF0ZTo6b2JqZWN0SGFzT3duUHJvcGVydHkoSlNP
YmplY3RSZWYgb2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eSkgY29uc3QKK3sKKyAgICAvLyBG
SVhNRSBXZSBuZWVkIGEgSlNDIEMgQVBJIGZ1bmN0aW9uIGZvciB0aGlzLgorICAgIHJldHVybiBt
X29yaWdpbmFsR2xvYmFsT2JqZWN0Lm9iamVjdEhhc093blByb3BlcnR5KG9iamVjdCwgcHJvcGVy
dHkpOworfQorCitpbmxpbmUgUVZlY3RvcjxKU1N0cmluZ1JlZj4gUVNjcmlwdEVuZ2luZVByaXZh
dGU6Om9iamVjdEdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3RSZWYgb2JqZWN0KSBjb25zdAor
eworICAgIC8vIEZJWE1FIFdlIGNhbid0IHVzZSBDIEFQSSBmdW5jdGlvbiBKU09iamVjdEdldFBy
b3BlcnR5TmFtZXMgYXMgaXQgcmV0dXJucyBvbmx5IGVudW1lcmFibGUgcHJvcGVydGllcy4KKyAg
ICByZXR1cm4gbV9vcmlnaW5hbEdsb2JhbE9iamVjdC5vYmplY3RHZXRPd25Qcm9wZXJ0eU5hbWVz
KG9iamVjdCk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBp
L3FzY3JpcHRvcmlnaW5hbGdsb2JhbG9iamVjdF9wLmggYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkv
cXNjcmlwdG9yaWdpbmFsZ2xvYmFsb2JqZWN0X3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi44ZDA4MGZiCi0tLSAvZGV2L251bGwKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQv
YXBpL3FzY3JpcHRvcmlnaW5hbGdsb2JhbG9iamVjdF9wLmgKQEAgLTAsMCArMSwxODYgQEAKKy8q
CisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
CisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgcXNjcmlwdG9yaWdpbmFsZ2xvYmFsb2JqZWN0X3Bf
aAorI2RlZmluZSBxc2NyaXB0b3JpZ2luYWxnbG9iYWxvYmplY3RfcF9oCisKKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNS
ZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDxRdENvcmUvcXZlY3Rvci5oPgorCisvKiEKKyAgICBcaW50
ZXJuYWwKKyAgICBUaGlzIGNsYXNzIGlzIGEgd29ya2Fyb3VuZCBmb3IgbWlzc2luZyBKU0MgQyBB
UEkgZnVuY3Rpb25hbGl0eS4gVGhpcyBjbGFzcyBrZWVwcyBhbGwgaW1wb3J0YW50CisgICAgcHJv
cGVydGllcyBvZiBhbiBvcmlnaW5hbCAoZGVmYXVsdCkgZ2xvYmFsIG9iamVjdCwgc28gd2UgY2Fu
IHVzZSBpdCBldmVuIGlmIHRoZSBnbG9iYWwgb2JqZWN0IHdhcworICAgIGNoYW5nZWQuCisKKyAg
ICBGSVhNRSB0aGlzIGNsYXNzIGlzIGEgY29udGFpbmVyIGZvciB3b3JrYXJvdW5kcyA6LSkgaXQg
c2hvdWxkIGJlIHJlcGxhY2VkIGJ5IHByb3BlciBKU0MgQyBBUEkgY2FsbHMuCisKKyAgICBUaGUg
Y2xhc3MgaGF2ZSB0byBiZSBjcmVhdGVkIG9uIHRoZSBRU2NyaXB0RW5naW5lUHJpdmF0ZSBjcmVh
dGlvbiB0aW1lIChiZWZvcmUgYW55IGNoYW5nZSBnb3QgYXBwbGllZCB0bworICAgIGdsb2JhbCBv
YmplY3QpLgorKi8KK2NsYXNzIFFTY3JpcHRPcmlnaW5hbEdsb2JhbE9iamVjdCB7CitwdWJsaWM6
CisgICAgaW5saW5lIFFTY3JpcHRPcmlnaW5hbEdsb2JhbE9iamVjdChKU0dsb2JhbENvbnRleHRS
ZWYgY29udGV4dCk7CisgICAgaW5saW5lIH5RU2NyaXB0T3JpZ2luYWxHbG9iYWxPYmplY3QoKTsK
KworICAgIGlubGluZSBib29sIG9iamVjdEhhc093blByb3BlcnR5KEpTT2JqZWN0UmVmIG9iamVj
dCwgSlNTdHJpbmdSZWYgcHJvcGVydHkpIGNvbnN0OworICAgIGlubGluZSBRVmVjdG9yPEpTU3Ry
aW5nUmVmPiBvYmplY3RHZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0UmVmIG9iamVjdCkgY29u
c3Q7CisKKyAgICBpbmxpbmUgYm9vbCBpc0FycmF5KEpTVmFsdWVSZWYgdmFsdWUpIGNvbnN0Owor
ICAgIGlubGluZSBib29sIGlzRXJyb3IoSlNWYWx1ZVJlZiB2YWx1ZSkgY29uc3Q7Citwcml2YXRl
OgorICAgIGlubGluZSBib29sIGlzVHlwZShKU1ZhbHVlUmVmIHZhbHVlLCBKU09iamVjdFJlZiBj
b25zdHJ1Y3RvciwgSlNWYWx1ZVJlZiBwcm90b3R5cGUpIGNvbnN0OworICAgIGlubGluZSB2b2lk
IGluaXRpYWxpemVNZW1iZXIoSlNPYmplY3RSZWYgZ2xvYmFsT2JqZWN0LCBKU1N0cmluZ1JlZiBw
cm90b3R5cGVOYW1lLCBjb25zdCBjaGFyKiB0eXBlLCBKU09iamVjdFJlZiYgY29uc3RydWN0b3Is
IEpTVmFsdWVSZWYmIHByb3RvdHlwZSk7CisKKyAgICAvLyBDb3B5IG9mIHRoZSBnbG9iYWwgY29u
dGV4dCByZWZlcmVuY2UgKHRoZSBzYW1lIGFzIGluIFFTY3JpcHRFbmdpbmVQcml2YXRlKS4KKyAg
ICBKU0dsb2JhbENvbnRleHRSZWYgbV9jb250ZXh0OworCisgICAgLy8gQ29weSBvZiBjb25zdHJ1
Y3RvcnMgYW5kIHByb3RvdHlwZXMgdXNlZCBpbiBpc1R5cGUgZnVuY3Rpb25zLgorICAgIEpTT2Jq
ZWN0UmVmIG1fYXJyYXlDb25zdHJ1Y3RvcjsKKyAgICBKU1ZhbHVlUmVmIG1fYXJyYXlQcm90b3R5
cGU7CisgICAgSlNPYmplY3RSZWYgbV9lcnJvckNvbnN0cnVjdG9yOworICAgIEpTVmFsdWVSZWYg
bV9lcnJvclByb3RvdHlwZTsKKworICAgIC8vIFJlZmVyZW5jZSB0byBzdGFuZGFyZCBKUyBmdW5j
dGlvbnMgdGhhdCBhcmUgbm90IGV4cG9zZWQgYnkgSlNDIEMgQVBJLgorICAgIEpTT2JqZWN0UmVm
IG1faGFzT3duUHJvcGVydHlGdW5jdGlvbjsKKyAgICBKU09iamVjdFJlZiBtX2dldE93blByb3Bl
cnR5TmFtZXNGdW5jdGlvbjsKK307CisKK1FTY3JpcHRPcmlnaW5hbEdsb2JhbE9iamVjdDo6UVNj
cmlwdE9yaWdpbmFsR2xvYmFsT2JqZWN0KEpTR2xvYmFsQ29udGV4dFJlZiBjb250ZXh0KQorICAg
IDogbV9jb250ZXh0KEpTR2xvYmFsQ29udGV4dFJldGFpbihjb250ZXh0KSkKK3sKKyAgICBKU09i
amVjdFJlZiBnbG9iYWxPYmplY3QgPSBKU0NvbnRleHRHZXRHbG9iYWxPYmplY3QobV9jb250ZXh0
KTsKKyAgICBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiA9IDA7CisgICAgSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IHByb3BlcnR5TmFtZTsKKworICAgIHByb3BlcnR5TmFtZS5hZG9wdChKU1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygicHJvdG90eXBlIikpOworICAgIGluaXRpYWxpemVNZW1iZXIo
Z2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUuZ2V0KCksICJBcnJheSIsIG1fYXJyYXlDb25zdHJ1
Y3RvciwgbV9hcnJheVByb3RvdHlwZSk7CisgICAgaW5pdGlhbGl6ZU1lbWJlcihnbG9iYWxPYmpl
Y3QsIHByb3BlcnR5TmFtZS5nZXQoKSwgIkVycm9yIiwgbV9lcnJvckNvbnN0cnVjdG9yLCBtX2Vy
cm9yUHJvdG90eXBlKTsKKworICAgIHByb3BlcnR5TmFtZS5hZG9wdChKU1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiaGFzT3duUHJvcGVydHkiKSk7CisgICAgbV9oYXNPd25Qcm9wZXJ0eUZ1
bmN0aW9uID0gY29uc3RfY2FzdDxKU09iamVjdFJlZj4oSlNPYmplY3RHZXRQcm9wZXJ0eShtX2Nv
bnRleHQsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLmdldCgpLCAmZXhjZXB0aW9uKSk7Cisg
ICAgSlNWYWx1ZVByb3RlY3QobV9jb250ZXh0LCBtX2hhc093blByb3BlcnR5RnVuY3Rpb24pOwor
ICAgIFFfQVNTRVJUKEpTVmFsdWVJc09iamVjdChtX2NvbnRleHQsIG1faGFzT3duUHJvcGVydHlG
dW5jdGlvbikpOworICAgIFFfQVNTRVJUKEpTT2JqZWN0SXNGdW5jdGlvbihtX2NvbnRleHQsIG1f
aGFzT3duUHJvcGVydHlGdW5jdGlvbikpOworICAgIFFfQVNTRVJUKCFleGNlcHRpb24pOworCisg
ICAgcHJvcGVydHlOYW1lLmFkb3B0KEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJPYmpl
Y3QiKSk7CisgICAgSlNPYmplY3RSZWYgb2JqZWN0Q29uc3RydWN0b3IKKyAgICAgICAgICAgID0g
Y29uc3RfY2FzdDxKU09iamVjdFJlZj4oSlNPYmplY3RHZXRQcm9wZXJ0eShtX2NvbnRleHQsIGds
b2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLmdldCgpLCAmZXhjZXB0aW9uKSk7CisgICAgcHJvcGVy
dHlOYW1lLmFkb3B0KEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJnZXRPd25Qcm9wZXJ0
eU5hbWVzIikpOworICAgIG1fZ2V0T3duUHJvcGVydHlOYW1lc0Z1bmN0aW9uCisgICAgICAgICAg
ICA9IGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KEpTT2JqZWN0R2V0UHJvcGVydHkobV9jb250ZXh0
LCBvYmplY3RDb25zdHJ1Y3RvciwgcHJvcGVydHlOYW1lLmdldCgpLCAmZXhjZXB0aW9uKSk7Cisg
ICAgSlNWYWx1ZVByb3RlY3QobV9jb250ZXh0LCBtX2dldE93blByb3BlcnR5TmFtZXNGdW5jdGlv
bik7CisgICAgUV9BU1NFUlQoSlNWYWx1ZUlzT2JqZWN0KG1fY29udGV4dCwgbV9nZXRPd25Qcm9w
ZXJ0eU5hbWVzRnVuY3Rpb24pKTsKKyAgICBRX0FTU0VSVChKU09iamVjdElzRnVuY3Rpb24obV9j
b250ZXh0LCBtX2dldE93blByb3BlcnR5TmFtZXNGdW5jdGlvbikpOworICAgIFFfQVNTRVJUKCFl
eGNlcHRpb24pOworfQorCitpbmxpbmUgdm9pZCBRU2NyaXB0T3JpZ2luYWxHbG9iYWxPYmplY3Q6
OmluaXRpYWxpemVNZW1iZXIoSlNPYmplY3RSZWYgZ2xvYmFsT2JqZWN0LCBKU1N0cmluZ1JlZiBw
cm90b3R5cGVOYW1lLCBjb25zdCBjaGFyKiB0eXBlLCBKU09iamVjdFJlZiYgY29uc3RydWN0b3Is
IEpTVmFsdWVSZWYmIHByb3RvdHlwZSkKK3sKKyAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
dHlwZU5hbWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHR5cGUpKTsKKyAg
ICBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiA9IDA7CisKKyAgICAvLyBTYXZlIHJlZmVyZW5jZXMgdG8g
dGhlIFR5cGUgY29uc3RydWN0b3IgYW5kIHByb3RvdHlwZS4KKyAgICBKU1ZhbHVlUmVmIHR5cGVD
b25zdHJ1Y3RvciA9IEpTT2JqZWN0R2V0UHJvcGVydHkobV9jb250ZXh0LCBnbG9iYWxPYmplY3Qs
IHR5cGVOYW1lLmdldCgpLCAmZXhjZXB0aW9uKTsKKyAgICBRX0FTU0VSVChKU1ZhbHVlSXNPYmpl
Y3QobV9jb250ZXh0LCB0eXBlQ29uc3RydWN0b3IpKTsKKyAgICBjb25zdHJ1Y3RvciA9IEpTVmFs
dWVUb09iamVjdChtX2NvbnRleHQsIHR5cGVDb25zdHJ1Y3RvciwgJmV4Y2VwdGlvbik7CisgICAg
SlNWYWx1ZVByb3RlY3QobV9jb250ZXh0LCBjb25zdHJ1Y3Rvcik7CisKKyAgICAvLyBOb3RlIHRo
YXQgdGhpcyBpcyBub3QgdGhlIFtbUHJvdG90eXBlXV0gaW50ZXJuYWwgcHJvcGVydHkgKHdoaWNo
IHdlIGNvdWxkCisgICAgLy8gZ2V0IHZpYSBKU09iamVjdEdldFByb3RvdHlwZSksIGJ1dCB0aGUg
VHlwZS5wcm90b3R5cGUsIHRoYXQgd2lsbCBiZSBzZXQKKyAgICAvLyBhcyBbW1Byb3RvdHlwZV1d
IG9mIFR5cGUgaW5zdGFuY2VzLgorICAgIHByb3RvdHlwZSA9IEpTT2JqZWN0R2V0UHJvcGVydHko
bV9jb250ZXh0LCBjb25zdHJ1Y3RvciwgcHJvdG90eXBlTmFtZSwgJmV4Y2VwdGlvbik7CisgICAg
UV9BU1NFUlQoSlNWYWx1ZUlzT2JqZWN0KG1fY29udGV4dCwgcHJvdG90eXBlKSk7CisgICAgSlNW
YWx1ZVByb3RlY3QobV9jb250ZXh0LCBwcm90b3R5cGUpOworICAgIFFfQVNTRVJUKCFleGNlcHRp
b24pOworfQorCitRU2NyaXB0T3JpZ2luYWxHbG9iYWxPYmplY3Q6On5RU2NyaXB0T3JpZ2luYWxH
bG9iYWxPYmplY3QoKQoreworICAgIEpTVmFsdWVVbnByb3RlY3QobV9jb250ZXh0LCBtX2FycmF5
Q29uc3RydWN0b3IpOworICAgIEpTVmFsdWVVbnByb3RlY3QobV9jb250ZXh0LCBtX2FycmF5UHJv
dG90eXBlKTsKKyAgICBKU1ZhbHVlVW5wcm90ZWN0KG1fY29udGV4dCwgbV9lcnJvckNvbnN0cnVj
dG9yKTsKKyAgICBKU1ZhbHVlVW5wcm90ZWN0KG1fY29udGV4dCwgbV9lcnJvclByb3RvdHlwZSk7
CisgICAgSlNWYWx1ZVVucHJvdGVjdChtX2NvbnRleHQsIG1faGFzT3duUHJvcGVydHlGdW5jdGlv
bik7CisgICAgSlNWYWx1ZVVucHJvdGVjdChtX2NvbnRleHQsIG1fZ2V0T3duUHJvcGVydHlOYW1l
c0Z1bmN0aW9uKTsKKyAgICBKU0dsb2JhbENvbnRleHRSZWxlYXNlKG1fY29udGV4dCk7Cit9CisK
K2lubGluZSBib29sIFFTY3JpcHRPcmlnaW5hbEdsb2JhbE9iamVjdDo6b2JqZWN0SGFzT3duUHJv
cGVydHkoSlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eSkgY29uc3QKK3sK
KyAgICAvLyBGSVhNRSBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSByZXBsYWNlZCBieSBKU0MgQyBB
UEkuCisgICAgSlNWYWx1ZVJlZiBleGNlcHRpb24gPSAwOworICAgIEpTVmFsdWVSZWYgcHJvcGVy
dHlOYW1lW10gPSB7IEpTVmFsdWVNYWtlU3RyaW5nKG1fY29udGV4dCwgcHJvcGVydHkpIH07Cisg
ICAgSlNWYWx1ZVJlZiByZXN1bHQgPSBKU09iamVjdENhbGxBc0Z1bmN0aW9uKG1fY29udGV4dCwg
bV9oYXNPd25Qcm9wZXJ0eUZ1bmN0aW9uLCBvYmplY3QsIDEsIHByb3BlcnR5TmFtZSwgJmV4Y2Vw
dGlvbik7CisgICAgcmV0dXJuIGV4Y2VwdGlvbiA/IGZhbHNlIDogSlNWYWx1ZVRvQm9vbGVhbiht
X2NvbnRleHQsIHJlc3VsdCk7Cit9CisKKy8qIQorICAgIFxpbnRlcm5hbAorICAgIFRoaXMgbWV0
aG9kIGdpdmVzIG93bmVyc2hpcCBvZiBhbGwgSlNTdHJpbmdSZWZzLgorKi8KK2lubGluZSBRVmVj
dG9yPEpTU3RyaW5nUmVmPiBRU2NyaXB0T3JpZ2luYWxHbG9iYWxPYmplY3Q6Om9iamVjdEdldE93
blByb3BlcnR5TmFtZXMoSlNPYmplY3RSZWYgb2JqZWN0KSBjb25zdAoreworICAgIEpTVmFsdWVS
ZWYgZXhjZXB0aW9uID0gMDsKKyAgICBKU09iamVjdFJlZiBwcm9wZXJ0eU5hbWVzCisgICAgICAg
ICAgICA9IGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24obV9j
b250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbV9nZXRPd25Qcm9wZXJ0eU5hbWVzRnVuY3Rpb24sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGlzT2Jq
ZWN0ICovIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvKiBhcmd1bWVudENvdW50ICovIDEsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb2JqZWN0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmV4
Y2VwdGlvbikpOworICAgIFFfQVNTRVJUKEpTVmFsdWVJc09iamVjdChtX2NvbnRleHQsIHByb3Bl
cnR5TmFtZXMpKTsKKyAgICBRX0FTU0VSVCghZXhjZXB0aW9uKTsKKyAgICBKU1N0cmluZ1JlZiBs
ZW5ndGhOYW1lID0gUVNjcmlwdENvbnZlcnRlcjo6dG9TdHJpbmcoImxlbmd0aCIpOworICAgIGlu
dCBjb3VudCA9IEpTVmFsdWVUb051bWJlcihtX2NvbnRleHQsIEpTT2JqZWN0R2V0UHJvcGVydHko
bV9jb250ZXh0LCBwcm9wZXJ0eU5hbWVzLCBsZW5ndGhOYW1lLCAmZXhjZXB0aW9uKSwgJmV4Y2Vw
dGlvbik7CisKKyAgICBRX0FTU0VSVCghZXhjZXB0aW9uKTsKKyAgICBRVmVjdG9yPEpTU3RyaW5n
UmVmPiBuYW1lczsKKyAgICBuYW1lcy5yZXNlcnZlKGNvdW50KTsKKyAgICBmb3IgKGludCBpID0g
MDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgSlNWYWx1ZVJlZiB0bXAgPSBKU09iamVjdEdl
dFByb3BlcnR5QXRJbmRleChtX2NvbnRleHQsIHByb3BlcnR5TmFtZXMsIGksICZleGNlcHRpb24p
OworICAgICAgICBuYW1lcy5hcHBlbmQoSlNWYWx1ZVRvU3RyaW5nQ29weShtX2NvbnRleHQsIHRt
cCwgJmV4Y2VwdGlvbikpOworICAgICAgICBRX0FTU0VSVCghZXhjZXB0aW9uKTsKKyAgICB9Cisg
ICAgcmV0dXJuIG5hbWVzOworfQorCitpbmxpbmUgYm9vbCBRU2NyaXB0T3JpZ2luYWxHbG9iYWxP
YmplY3Q6OmlzQXJyYXkoSlNWYWx1ZVJlZiB2YWx1ZSkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNU
eXBlKHZhbHVlLCBtX2FycmF5Q29uc3RydWN0b3IsIG1fYXJyYXlQcm90b3R5cGUpOworfQorCitp
bmxpbmUgYm9vbCBRU2NyaXB0T3JpZ2luYWxHbG9iYWxPYmplY3Q6OmlzRXJyb3IoSlNWYWx1ZVJl
ZiB2YWx1ZSkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNUeXBlKHZhbHVlLCBtX2Vycm9yQ29uc3Ry
dWN0b3IsIG1fZXJyb3JQcm90b3R5cGUpOworfQorCitpbmxpbmUgYm9vbCBRU2NyaXB0T3JpZ2lu
YWxHbG9iYWxPYmplY3Q6OmlzVHlwZShKU1ZhbHVlUmVmIHZhbHVlLCBKU09iamVjdFJlZiBjb25z
dHJ1Y3RvciwgSlNWYWx1ZVJlZiBwcm90b3R5cGUpIGNvbnN0Cit7CisgICAgLy8gSlNDIEFQSSBk
b2Vzbid0IGV4cG9ydCB0aGUgW1tDbGFzc11dIGluZm9ybWF0aW9uIGZvciB0aGUgYnVpbHRpbnMu
IEJ1dCB3ZSBrbm93IHRoYXQgYSB2YWx1ZQorICAgIC8vIGlzIGFuIG9iamVjdCBvZiB0aGUgVHlw
ZSBpZiBpdCB3YXMgY3JlYXRlZCB3aXRoIHRoZSBUeXBlIGNvbnN0cnVjdG9yIG9yIGlmIGl0IGlz
IHRoZSBUeXBlLnByb3RvdHlwZS4KKyAgICBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiA9IDA7CisgICAg
Ym9vbCByZXN1bHQgPSBKU1ZhbHVlSXNJbnN0YW5jZU9mQ29uc3RydWN0b3IobV9jb250ZXh0LCB2
YWx1ZSwgY29uc3RydWN0b3IsICZleGNlcHRpb24pIHx8IEpTVmFsdWVJc1N0cmljdEVxdWFsKG1f
Y29udGV4dCwgdmFsdWUsIHByb3RvdHlwZSk7CisgICAgUV9BU1NFUlQoIWV4Y2VwdGlvbik7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworI2VuZGlmIC8vIHFzY3JpcHRvcmlnaW5hbGdsb2JhbG9i
amVjdF9wX2gKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWVf
cC5oIGIvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZV9wLmgKaW5kZXggMWQzMTli
YS4uNmU5M2EwNyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1
ZV9wLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZV9wLmgKQEAgLTE4
NCw3ICsxODQsNiBAQCBwcml2YXRlOgogICAgICAgICBWYWx1ZShRU3RyaW5nKiBzdHJpbmcpIDog
bV9zdHJpbmcoc3RyaW5nKSB7fQogICAgIH0gdTsKIAotICAgIGlubGluZSBib29sIGluaGVyaXRz
KGNvbnN0IGNoYXIqKTsKICAgICBpbmxpbmUgU3RhdGUgcmVmaW5lZEpTVmFsdWUoKTsKIAogICAg
IGlubGluZSBib29sIGlzSlNCYXNlZCgpIGNvbnN0OwpAQCAtNDE2LDcgKzQxNSw3IEBAIGJvb2wg
UVNjcmlwdFZhbHVlUHJpdmF0ZTo6aXNFcnJvcigpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgIC8vIEZhbGwtdGhyb3VnaC4KICAgICBjYXNlIEpTT2JqZWN0OgotICAgICAgICBy
ZXR1cm4gaW5oZXJpdHMoIkVycm9yIik7CisgICAgICAgIHJldHVybiBtX2VuZ2luZS0+aXNFcnJv
cigqdGhpcyk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAg
LTg2OCwxMyArODY3LDcgQEAgaW5saW5lIGJvb2wgUVNjcmlwdFZhbHVlUHJpdmF0ZTo6aGFzT3du
UHJvcGVydHkocXVpbnQzMiBwcm9wZXJ0eSkKIGlubGluZSBib29sIFFTY3JpcHRWYWx1ZVByaXZh
dGU6Omhhc093blByb3BlcnR5KEpTU3RyaW5nUmVmIHByb3BlcnR5KQogewogICAgIFFfQVNTRVJU
KGlzT2JqZWN0KCkpOwotICAgIC8vIEZJWE1FIGl0IGNvdWxkIGJlIGZhc3RlciwgYnV0IEpTQyBD
IEFQSSBkb2Vzbid0IGV4cG9zZSBuZWVkZWQgZnVuY3Rpb25hbGl0eS4KLSAgICBKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gaGFzT3duUHJvcGVydHlOYW1lKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiaGFzT3duUHJvcGVydHkiKSk7Ci0gICAgSlNWYWx1ZVJlZiBleGNlcHRp
b24gPSAwOwotICAgIEpTVmFsdWVSZWYgaGFzT3duUHJvcGVydHkgPSBKU09iamVjdEdldFByb3Bl
cnR5KCptX2VuZ2luZSwgKnRoaXMsIGhhc093blByb3BlcnR5TmFtZS5nZXQoKSwgJmV4Y2VwdGlv
bik7Ci0gICAgSlNWYWx1ZVJlZiBwcm9wZXJ0eU5hbWVbXSA9IHsgSlNWYWx1ZU1ha2VTdHJpbmco
Km1fZW5naW5lLCBwcm9wZXJ0eSkgfTsKLSAgICBKU1ZhbHVlUmVmIHJlc3VsdCA9IEpTT2JqZWN0
Q2FsbEFzRnVuY3Rpb24oKm1fZW5naW5lLCBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPihoYXNPd25Q
cm9wZXJ0eSksICp0aGlzLCAxLCBwcm9wZXJ0eU5hbWUsICZleGNlcHRpb24pOwotICAgIHJldHVy
biBleGNlcHRpb24gPyBmYWxzZSA6IEpTVmFsdWVUb0Jvb2xlYW4oKm1fZW5naW5lLCByZXN1bHQp
OworICAgIHJldHVybiBtX2VuZ2luZS0+b2JqZWN0SGFzT3duUHJvcGVydHkoKnRoaXMsIHByb3Bl
cnR5KTsKIH0KIAogLyohCkBAIC0xMTI0LDI0ICsxMTE3LDYgQEAgUVNjcmlwdFZhbHVlUHJpdmF0
ZTo6b3BlcmF0b3IgSlNPYmplY3RSZWYoKSBjb25zdAogCiAvKiEKICAgXGludGVybmFsCi0gIFJl
dHVybnMgdHJ1ZSBpZiBRU1YgaXMgY3JlYXRlZCBmcm9tIGNvbnN0cnVjdG9yIHdpdGggdGhlIGdp
dmVuIFxhIG5hbWUsIGl0IGhhcyB0byBiZSBhCi0gIGJ1aWx0LWluIHR5cGUuCi0qLwotYm9vbCBR
U2NyaXB0VmFsdWVQcml2YXRlOjppbmhlcml0cyhjb25zdCBjaGFyKiBuYW1lKQotewotICAgIFFf
QVNTRVJUKGlzSlNCYXNlZCgpKTsKLSAgICBKU09iamVjdFJlZiBnbG9iYWxPYmplY3QgPSBKU0Nv
bnRleHRHZXRHbG9iYWxPYmplY3QoKm1fZW5naW5lKTsKLSAgICBKU1N0cmluZ1JlZiBlcnJvckF0
dHJOYW1lID0gUVNjcmlwdENvbnZlcnRlcjo6dG9TdHJpbmcobmFtZSk7Ci0gICAgSlNWYWx1ZVJl
ZiBleGNlcHRpb24gPSAwOwotICAgIEpTVmFsdWVSZWYgZXJyb3IgPSBKU09iamVjdEdldFByb3Bl
cnR5KCptX2VuZ2luZSwgZ2xvYmFsT2JqZWN0LCBlcnJvckF0dHJOYW1lLCAmZXhjZXB0aW9uKTsK
LSAgICBKU1N0cmluZ1JlbGVhc2UoZXJyb3JBdHRyTmFtZSk7Ci0gICAgYm9vbCByZXN1bHQgPSBK
U1ZhbHVlSXNJbnN0YW5jZU9mQ29uc3RydWN0b3IoKm1fZW5naW5lLCAqdGhpcywgSlNWYWx1ZVRv
T2JqZWN0KCptX2VuZ2luZSwgZXJyb3IsICZleGNlcHRpb24pLCAmZXhjZXB0aW9uKTsKLSAgICBt
X2VuZ2luZS0+c2V0RXhjZXB0aW9uKGV4Y2VwdGlvbik7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0K
LQotLyohCi0gIFxpbnRlcm5hbAogICBSZWZpbmVzIHRoZSBzdGF0ZSBvZiB0aGlzIFFTY3JpcHRW
YWx1ZVByaXZhdGUuIFJldHVybnMgdGhlIG5ldyBzdGF0ZS4KICovCiBRU2NyaXB0VmFsdWVQcml2
YXRlOjpTdGF0ZSBRU2NyaXB0VmFsdWVQcml2YXRlOjpyZWZpbmVkSlNWYWx1ZSgpCmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlaXRlcmF0b3JfcC5oIGIvSmF2
YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZWl0ZXJhdG9yX3AuaAppbmRleCA3MjliMTlk
Li5iOTNiNTE4IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVl
aXRlcmF0b3JfcC5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWVpdGVy
YXRvcl9wLmgKQEAgLTYzLDQyICs2Myw4IEBAIGlubGluZSBRU2NyaXB0VmFsdWVJdGVyYXRvclBy
aXZhdGU6OlFTY3JpcHRWYWx1ZUl0ZXJhdG9yUHJpdmF0ZShjb25zdCBRU2NyaXB0VmFsCiAgICAg
OiBtX29iamVjdChjb25zdF9jYXN0PFFTY3JpcHRWYWx1ZVByaXZhdGUqPih2YWx1ZSkpCiAgICAg
LCBtX2lkeChtX25hbWVzKQogewotICAgIC8vIEZJWE1FIFRoZXJlIGlzIGFzc3VtcHRpb24gdGhh
dCBnbG9iYWwgb2JqZWN0IHdhc24ndCBjaGFuZ2VkIChidWcgNDE4MzkpLgotICAgIC8vIEZJWE1F
IFdlIGNhbid0IHVzZSBDIEFQSSBmdW5jdGlvbiBKU09iamVjdEdldFByb3BlcnR5TmFtZXMgYXMg
aXQgcmV0dXJucyBvbmx5IGVudW1lcmFibGUgcHJvcGVydGllcy4KLSAgICBpZiAoY29uc3RfY2Fz
dDxRU2NyaXB0VmFsdWVQcml2YXRlKj4odmFsdWUpLT5pc09iamVjdCgpKSB7Ci0gICAgICAgIHN0
YXRpYyBKU1N0cmluZ1JlZiBvYmplY3ROYW1lID0gUVNjcmlwdENvbnZlcnRlcjo6dG9TdHJpbmco
Ik9iamVjdCIpOwotICAgICAgICBzdGF0aWMgSlNTdHJpbmdSZWYgZ2V0T3duUHJvcGVydHlOYW1l
c05hbWUgPSBRU2NyaXB0Q29udmVydGVyOjp0b1N0cmluZygiZ2V0T3duUHJvcGVydHlOYW1lcyIp
OwotCi0gICAgICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uID0gMDsKLSAgICAgICAgSlNPYmplY3RS
ZWYgZ2xvYmFsT2JqZWN0ID0gSlNDb250ZXh0R2V0R2xvYmFsT2JqZWN0KCplbmdpbmUoKSk7Ci0g
ICAgICAgIFFfQVNTRVJUKEpTVmFsdWVJc09iamVjdCgqZW5naW5lKCksIGdsb2JhbE9iamVjdCkp
OwotICAgICAgICBKU1ZhbHVlUmVmIG9iamVjdENvbnN0cnVjdG9yID0gSlNPYmplY3RHZXRQcm9w
ZXJ0eSgqZW5naW5lKCksIGdsb2JhbE9iamVjdCwgb2JqZWN0TmFtZSwgJmV4Y2VwdGlvbik7Ci0g
ICAgICAgIFFfQVNTRVJUKEpTVmFsdWVJc09iamVjdCgqZW5naW5lKCksIG9iamVjdENvbnN0cnVj
dG9yKSk7Ci0gICAgICAgIFFfQVNTRVJUKCFleGNlcHRpb24pOwotICAgICAgICBKU1ZhbHVlUmVm
IHByb3BlcnR5TmFtZXNHZXR0ZXIgPSBKU09iamVjdEdldFByb3BlcnR5KCplbmdpbmUoKSwgY29u
c3RfY2FzdDxKU09iamVjdFJlZj4ob2JqZWN0Q29uc3RydWN0b3IpLCBnZXRPd25Qcm9wZXJ0eU5h
bWVzTmFtZSwgJmV4Y2VwdGlvbik7Ci0gICAgICAgIFFfQVNTRVJUKEpTVmFsdWVJc09iamVjdCgq
ZW5naW5lKCksIHByb3BlcnR5TmFtZXNHZXR0ZXIpKTsKLSAgICAgICAgUV9BU1NFUlQoIWV4Y2Vw
dGlvbik7Ci0KLSAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSA9IHsgKm1fb2JqZWN0LCB9
OwotICAgICAgICBKU09iamVjdFJlZiBwcm9wZXJ0eU5hbWVzCi0gICAgICAgICAgICAgICAgPSBj
b25zdF9jYXN0PEpTT2JqZWN0UmVmPihKU09iamVjdENhbGxBc0Z1bmN0aW9uKCplbmdpbmUoKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPihwcm9wZXJ0eU5hbWVzR2V0dGVyKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvKiB0aGlzT2JqZWN0ICovIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogYXJndW1lbnRDb3VudCAqLyAxLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFyZ3VtZW50cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAmZXhjZXB0aW9uKSk7Ci0gICAgICAgIFFfQVNTRVJU
KEpTVmFsdWVJc09iamVjdCgqZW5naW5lKCksIHByb3BlcnR5TmFtZXMpKTsKLSAgICAgICAgUV9B
U1NFUlQoIWV4Y2VwdGlvbik7Ci0gICAgICAgIHN0YXRpYyBKU1N0cmluZ1JlZiBsZW5ndGhOYW1l
ID0gUVNjcmlwdENvbnZlcnRlcjo6dG9TdHJpbmcoImxlbmd0aCIpOwotICAgICAgICBpbnQgY291
bnQgPSBKU1ZhbHVlVG9OdW1iZXIoKmVuZ2luZSgpLCBKU09iamVjdEdldFByb3BlcnR5KCplbmdp
bmUoKSwgcHJvcGVydHlOYW1lcywgbGVuZ3RoTmFtZSwgJmV4Y2VwdGlvbiksICZleGNlcHRpb24p
OwotCi0gICAgICAgIFFfQVNTRVJUKCFleGNlcHRpb24pOwotICAgICAgICBtX25hbWVzLnJlc2Vy
dmUoY291bnQpOwotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKLSAg
ICAgICAgICAgIEpTVmFsdWVSZWYgdG1wID0gSlNPYmplY3RHZXRQcm9wZXJ0eUF0SW5kZXgoKmVu
Z2luZSgpLCBwcm9wZXJ0eU5hbWVzLCBpLCAmZXhjZXB0aW9uKTsKLSAgICAgICAgICAgIG1fbmFt
ZXMuYXBwZW5kKEpTVmFsdWVUb1N0cmluZ0NvcHkoKmVuZ2luZSgpLCB0bXAsICZleGNlcHRpb24p
KTsKLSAgICAgICAgICAgIFFfQVNTRVJUKCFleGNlcHRpb24pOwotICAgICAgICB9CisgICAgaWYg
KG1fb2JqZWN0LT5pc09iamVjdCgpKSB7CisgICAgICAgIG1fbmFtZXMgPSBlbmdpbmUoKS0+b2Jq
ZWN0R2V0T3duUHJvcGVydHlOYW1lcygqbV9vYmplY3QpOwogICAgICAgICBtX2lkeCA9IG1fbmFt
ZXM7CiAgICAgfSBlbHNlCiAgICAgICAgIG1fb2JqZWN0ID0gMDsKZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmNwcCBiL0ph
dmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmNwcApp
bmRleCA3M2I1N2RjLi5hODIzNDdlIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0
cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUv
cXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuY3BwCkBAIC0xMjYxLDQgKzEy
NjEsMjggQEAgdm9pZCB0c3RfUVNjcmlwdFZhbHVlOjpwcm9wZXJ0eUZsYWcoKQogICAgIFFWRVJJ
RlkoIW9iamVjdC5wcm9wZXJ0eUZsYWdzKHByb3RvTmFtZUhhbmRsZSwgUVNjcmlwdFZhbHVlOjpS
ZXNvbHZlTG9jYWwpKTsKIH0KIAordm9pZCB0c3RfUVNjcmlwdFZhbHVlOjpnbG9iYWxPYmplY3RD
aGFuZ2VzKCkKK3sKKyAgICAvLyBBUEkgZnVuY3Rpb25hbGl0eSBzaG91bGRuJ3QgZGVwZW5kIG9u
IEdsb2JhbCBPYmplY3QuCisgICAgUVNjcmlwdEVuZ2luZSBlbmdpbmU7CisgICAgUVNjcmlwdFZh
bHVlIGFycmF5ID0gZW5naW5lLm5ld0FycmF5KCk7CisgICAgUVNjcmlwdFZhbHVlIGVycm9yID0g
ZW5naW5lLmV2YWx1YXRlKCJuZXcgRXJyb3IiKTsKKyAgICBRU2NyaXB0VmFsdWUgb2JqZWN0ID0g
ZW5naW5lLm5ld09iamVjdCgpOworCisgICAgb2JqZWN0LnNldFByb3BlcnR5KCJmb28iLCA1MTIp
OworCisgICAgLy8gUmVtb3ZlIHByb3BlcnRpZXMgZm9ybSBnbG9iYWwgb2JqZWN0LgorICAgIGVu
Z2luZS5ldmFsdWF0ZSgiZGVsZXRlIE9iamVjdDsgZGVsZXRlIEVycm9yOyBkZWxldGUgQXJyYXk7
Iik7CisKKyAgICBRVkVSSUZZKGFycmF5LmlzQXJyYXkoKSk7CisgICAgUVZFUklGWShlcnJvci5p
c0Vycm9yKCkpOworICAgIFFWRVJJRlkob2JqZWN0LmlzT2JqZWN0KCkpOworCisgICAgUVZFUklG
WShvYmplY3QucHJvcGVydHkoImZvbyIpLmlzVmFsaWQoKSk7CisgICAgUVZFUklGWShvYmplY3Qu
cHJvcGVydHkoImZvbyIsIFFTY3JpcHRWYWx1ZTo6UmVzb2x2ZUxvY2FsKS5pc1ZhbGlkKCkpOwor
ICAgIG9iamVjdC5zZXRQcm9wZXJ0eSgiZm9vIiwgUVNjcmlwdFZhbHVlKCkpOworICAgIFFWRVJJ
RlkoIW9iamVjdC5wcm9wZXJ0eSgiZm9vIikuaXNWYWxpZCgpKTsKKyAgICBRVkVSSUZZKCFvYmpl
Y3QucHJvcGVydHkoImZvbyIsIFFTY3JpcHRWYWx1ZTo6UmVzb2x2ZUxvY2FsKS5pc1ZhbGlkKCkp
OworfQorCiBRVEVTVF9NQUlOKHRzdF9RU2NyaXB0VmFsdWUpCmRpZmYgLS1naXQgYS9KYXZhU2Ny
aXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5oIGIvSmF2YVNj
cmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuaAppbmRleCA2
MTA4NDIzLi40MWI5OWNkIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2Ny
aXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3Rz
L3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmgKQEAgLTYwLDYgKzYwLDcgQEAgcHJpdmF0
ZSBzbG90czoKICAgICB2b2lkIGdldFByb3BlcnR5UmVzb2x2ZUZsYWcoKTsKICAgICB2b2lkIHBy
b3BlcnR5RmxhZ19kYXRhKCk7CiAgICAgdm9pZCBwcm9wZXJ0eUZsYWcoKTsKKyAgICB2b2lkIGds
b2JhbE9iamVjdENoYW5nZXMoKTsKIAogICAgIC8vIEdlbmVyYXRlZCB0ZXN0IGZ1bmN0aW9ucy4K
ICAgICB2b2lkIGlzQm9vbF9kYXRhKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61514</attachid>
            <date>2010-07-14 06:45:38 -0700</date>
            <delta_ts>2010-07-14 07:35:18 -0700</delta_ts>
            <desc>Fix v1.01</desc>
            <filename>ogb1.diff</filename>
            <type>text/plain</type>
            <size>23280</size>
            <attacher name="Jędrzej Nowacki">jedrzej.nowacki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3Jl
L3F0L0NoYW5nZUxvZwppbmRleCAyNTk5YWVkLi5iMGMwOWM4IDEwMDY0NAotLS0gYS9KYXZhU2Ny
aXB0Q29yZS9xdC9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNTAgQEAKKzIwMTAtMDctMTQgIEplZHJ6ZWogTm93YWNraSAgPGplZHJ6ZWoubm93
YWNraUBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSW50cm9kdWNlIFFTY3JpcHRPcmlnaW5hbEdsb2JhbE9iamVjdC4KKworICAgICAg
ICBRdFNjcmlwdCBleHBvc2VzIG1vcmUgZnVuY3Rpb25hbGl0eSB0aGFuIEpTQyBDIEFQSS4gU29t
ZXRpbWVzIGl0IGlzCisgICAgICAgIG5lY2Vzc2FyeSB0byB0YWtlIGEgc2hvcnRjdXQgaW4gaW1w
bGVtZW50YXRpb24uIFJlYWxseSBvZnRlbiB3ZSBoYXZlCisgICAgICAgIHRvIHVzZSBhIHN0YW5k
YXJkIEpTIGZ1bmN0aW9uLiBUaGVzZSBmdW5jdGlvbiBjb3VsZCBiZSBjaGFuZ2VkIG9yCisgICAg
ICAgIGV2ZW4gZGVsZXRlZCBieSBhIHNjcmlwdCwgc28gYSBiYWNrdXAgb2YgYSByZWZlcmVuY2Ug
dG8gYW4gb2JqZWN0IGlzIG5lZWRlZC4KKworICAgICAgICBJbiB0aGVtIHNhbWUgdGltZSB0aGlz
IGlzIHJhdGhlciBhIHdvcmthcm91bmQgdGhlbiByZWFsIGZpeCwgc28gdGhlIGNvZGUKKyAgICAg
ICAgc2hvdWxkIGJlIHNlcGFyYXRlZCBhbmQgY2hhbmdlZCBlYXNpbHkgaW4gZnV0dXJlLiBJdCBp
cyB3aHkgd2UgbmVlZAorICAgICAgICB0aGUgbmV3IGludGVybmFsIGNsYXNzLgorCisgICAgICAg
IFRoZSBwYXRjaCBmaXhlcyBhIGZldyBjcmFzaGVzLgorCisgICAgICAgIFtRdF0gUVNjcmlwdEVu
Z2luZSBzaG91bGQgd29yayBjb3JyZWN0bHkgZXZlbiBhZnRlciBnbG9iYWwgb2JqZWN0IGNoYW5n
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxODM5
CisKKyAgICAgICAgKiBhcGkvUXRTY3JpcHQucHJvOgorICAgICAgICAqIGFwaS9xc2NyaXB0ZW5n
aW5lX3AuY3BwOgorICAgICAgICAoUVNjcmlwdEVuZ2luZVByaXZhdGU6OlFTY3JpcHRFbmdpbmVQ
cml2YXRlKToKKyAgICAgICAgKFFTY3JpcHRFbmdpbmVQcml2YXRlOjp+UVNjcmlwdEVuZ2luZVBy
aXZhdGUpOgorICAgICAgICAqIGFwaS9xc2NyaXB0ZW5naW5lX3AuaDoKKyAgICAgICAgKFFTY3Jp
cHRFbmdpbmVQcml2YXRlOjppc0FycmF5KToKKyAgICAgICAgKFFTY3JpcHRFbmdpbmVQcml2YXRl
Ojppc0Vycm9yKToKKyAgICAgICAgKFFTY3JpcHRFbmdpbmVQcml2YXRlOjpvYmplY3RIYXNPd25Q
cm9wZXJ0eSk6CisgICAgICAgIChRU2NyaXB0RW5naW5lUHJpdmF0ZTo6b2JqZWN0R2V0T3duUHJv
cGVydHlOYW1lcyk6CisgICAgICAgICogYXBpL3FzY3JpcHRvcmlnaW5hbGdsb2JhbG9iamVjdF9w
Lmg6IEFkZGVkLgorICAgICAgICAoUVNjcmlwdE9yaWdpbmFsR2xvYmFsT2JqZWN0OjpRU2NyaXB0
T3JpZ2luYWxHbG9iYWxPYmplY3QpOgorICAgICAgICAoUVNjcmlwdE9yaWdpbmFsR2xvYmFsT2Jq
ZWN0Ojppbml0aWFsaXplTWVtYmVyKToKKyAgICAgICAgKFFTY3JpcHRPcmlnaW5hbEdsb2JhbE9i
amVjdDo6flFTY3JpcHRPcmlnaW5hbEdsb2JhbE9iamVjdCk6CisgICAgICAgIChRU2NyaXB0T3Jp
Z2luYWxHbG9iYWxPYmplY3Q6Om9iamVjdEhhc093blByb3BlcnR5KToKKyAgICAgICAgKFFTY3Jp
cHRPcmlnaW5hbEdsb2JhbE9iamVjdDo6b2JqZWN0R2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAg
ICAgIChRU2NyaXB0T3JpZ2luYWxHbG9iYWxPYmplY3Q6OmlzQXJyYXkpOgorICAgICAgICAoUVNj
cmlwdE9yaWdpbmFsR2xvYmFsT2JqZWN0Ojppc0Vycm9yKToKKyAgICAgICAgKFFTY3JpcHRPcmln
aW5hbEdsb2JhbE9iamVjdDo6aXNUeXBlKToKKyAgICAgICAgKiBhcGkvcXNjcmlwdHZhbHVlX3Au
aDoKKyAgICAgICAgKFFTY3JpcHRWYWx1ZVByaXZhdGU6OmlzRXJyb3IpOgorICAgICAgICAoUVNj
cmlwdFZhbHVlUHJpdmF0ZTo6aGFzT3duUHJvcGVydHkpOgorICAgICAgICAqIGFwaS9xc2NyaXB0
dmFsdWVpdGVyYXRvcl9wLmg6CisgICAgICAgIChRU2NyaXB0VmFsdWVJdGVyYXRvclByaXZhdGU6
OlFTY3JpcHRWYWx1ZUl0ZXJhdG9yUHJpdmF0ZSk6CisgICAgICAgICogdGVzdHMvcXNjcmlwdHZh
bHVlL3RzdF9xc2NyaXB0dmFsdWUuY3BwOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6Z2xv
YmFsT2JqZWN0Q2hhbmdlcyk6CisgICAgICAgICogdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2Ny
aXB0dmFsdWUuaDoKKwogMjAxMC0wNy0xMyAgSmVkcnplaiBOb3dhY2tpICA8amVkcnplai5ub3dh
Y2tpQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KZGlm
ZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9RdFNjcmlwdC5wcm8gYi9KYXZhU2NyaXB0
Q29yZS9xdC9hcGkvUXRTY3JpcHQucHJvCmluZGV4IGZiNDljZmUuLmMyYzZmODMgMTAwNjQ0Ci0t
LSBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9RdFNjcmlwdC5wcm8KKysrIGIvSmF2YVNjcmlwdENv
cmUvcXQvYXBpL1F0U2NyaXB0LnBybwpAQCAtNDIsNiArNDIsNyBAQCBIRUFERVJTICs9ICAkJFBX
RC9xdHNjcmlwdGdsb2JhbC5oIFwKICAgICAgICAgICAgICQkUFdEL3FzY3JpcHRwcm9ncmFtLmgg
XAogICAgICAgICAgICAgJCRQV0QvcXNjcmlwdHByb2dyYW1fcC5oIFwKICAgICAgICAgICAgICQk
UFdEL3FzY3JpcHRzeW50YXhjaGVja3Jlc3VsdC5oIFwKKyAgICAgICAgICAgICQkUFdEL3FzY3Jp
cHRvcmlnaW5hbGdsb2JhbG9iamVjdF9wLmggXAogCiAKICFzdGF0aWM6IERFRklORVMgKz0gUVRf
TUFLRURMTApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmVf
cC5jcHAgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZV9wLmNwcAppbmRleCAz
NjBkZTI5Li5lMzMxMWVkIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlw
dGVuZ2luZV9wLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZV9w
LmNwcApAQCAtMzIsMzIgKzMyLDEyIEBAIFFTY3JpcHRFbmdpbmVQcml2YXRlOjpRU2NyaXB0RW5n
aW5lUHJpdmF0ZShjb25zdCBRU2NyaXB0RW5naW5lKiBlbmdpbmUpCiAgICAgOiBxX3B0cihjb25z
dF9jYXN0PFFTY3JpcHRFbmdpbmUqPihlbmdpbmUpKQogICAgICwgbV9jb250ZXh0KEpTR2xvYmFs
Q29udGV4dENyZWF0ZSgwKSkKICAgICAsIG1fZXhjZXB0aW9uKDApCi0gICAgLCBtX2FycmF5Q29u
c3RydWN0b3IoMCkKLSAgICAsIG1fYXJyYXlQcm90b3R5cGUoMCkKKyAgICAsIG1fb3JpZ2luYWxH
bG9iYWxPYmplY3QobV9jb250ZXh0KQogewotICAgIEpTT2JqZWN0UmVmIGdsb2JhbE9iamVjdCA9
IEpTQ29udGV4dEdldEdsb2JhbE9iamVjdChtX2NvbnRleHQpOwotCi0gICAgLy8gU2F2ZSByZWZl
cmVuY2VzIHRvIHRoZSBBcnJheSBjb25zdHJ1Y3RvciBhbmQgcHJvdG90eXBlLgotICAgIEpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBhcnJheU5hbWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKCJBcnJheSIpKTsKLSAgICBKU1ZhbHVlUmVmIGFycmF5Q29uc3RydWN0b3IgPSBK
U09iamVjdEdldFByb3BlcnR5KG1fY29udGV4dCwgZ2xvYmFsT2JqZWN0LCBhcnJheU5hbWUuZ2V0
KCksIC8qIGV4Y2VwdGlvbiAqLyAwKTsKLSAgICBRX0FTU0VSVChKU1ZhbHVlSXNPYmplY3QobV9j
b250ZXh0LCBhcnJheUNvbnN0cnVjdG9yKSk7Ci0gICAgbV9hcnJheUNvbnN0cnVjdG9yID0gSlNW
YWx1ZVRvT2JqZWN0KG1fY29udGV4dCwgYXJyYXlDb25zdHJ1Y3RvciwgLyogZXhjZXB0aW9uICov
IDApOwotICAgIEpTVmFsdWVQcm90ZWN0KG1fY29udGV4dCwgbV9hcnJheUNvbnN0cnVjdG9yKTsK
LQotICAgIC8vIE5vdGUgdGhhdCB0aGlzIGlzIG5vdCB0aGUgW1tQcm90b3R5cGVdXSBpbnRlcm5h
bCBwcm9wZXJ0eSAod2hpY2ggd2UgY291bGQKLSAgICAvLyBnZXQgdmlhIEpTT2JqZWN0R2V0UHJv
dG90eXBlKSwgYnV0IHRoZSBBcnJheS5wcm90b3R5cGUsIHRoYXQgd2lsbCBiZSBzZXQKLSAgICAv
LyBhcyBbW1Byb3RvdHlwZV1dIG9mIEFycmF5IGluc3RhbmNlcy4KLSAgICBKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gcHJvdG90eXBlTmFtZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoInByb3RvdHlwZSIpKTsKLSAgICBKU1ZhbHVlUmVmIGFycmF5UHJvdG90eXBlID0gSlNP
YmplY3RHZXRQcm9wZXJ0eShtX2NvbnRleHQsIG1fYXJyYXlDb25zdHJ1Y3RvciwgcHJvdG90eXBl
TmFtZS5nZXQoKSwgLyogZXhjZXB0aW9uICovIDApOwotICAgIFFfQVNTRVJUKEpTVmFsdWVJc09i
amVjdChtX2NvbnRleHQsIGFycmF5UHJvdG90eXBlKSk7Ci0gICAgbV9hcnJheVByb3RvdHlwZSA9
IGFycmF5UHJvdG90eXBlOwotICAgIEpTVmFsdWVQcm90ZWN0KG1fY29udGV4dCwgbV9hcnJheVBy
b3RvdHlwZSk7CiB9CiAKIFFTY3JpcHRFbmdpbmVQcml2YXRlOjp+UVNjcmlwdEVuZ2luZVByaXZh
dGUoKQogewotICAgIEpTVmFsdWVVbnByb3RlY3QobV9jb250ZXh0LCBtX2FycmF5Q29uc3RydWN0
b3IpOwotICAgIEpTVmFsdWVVbnByb3RlY3QobV9jb250ZXh0LCBtX2FycmF5UHJvdG90eXBlKTsK
ICAgICBpZiAobV9leGNlcHRpb24pCiAgICAgICAgIEpTVmFsdWVVbnByb3RlY3QobV9jb250ZXh0
LCBtX2V4Y2VwdGlvbik7CiAgICAgSlNHbG9iYWxDb250ZXh0UmVsZWFzZShtX2NvbnRleHQpOwpk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmVfcC5oIGIvSmF2
YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmVfcC5oCmluZGV4IDQwMWMwNTEuLmQ1NGNk
Y2MgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lX3AuaAor
KysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZV9wLmgKQEAgLTIyLDYgKzIy
LDcgQEAKIAogI2luY2x1ZGUgInFzY3JpcHRjb252ZXJ0ZXJfcC5oIgogI2luY2x1ZGUgInFzY3Jp
cHRlbmdpbmUuaCIKKyNpbmNsdWRlICJxc2NyaXB0b3JpZ2luYWxnbG9iYWxvYmplY3RfcC5oIgog
I2luY2x1ZGUgInFzY3JpcHRzdHJpbmdfcC5oIgogI2luY2x1ZGUgInFzY3JpcHRzeW50YXhjaGVj
a3Jlc3VsdF9wLmgiCiAjaW5jbHVkZSAicXNjcmlwdHZhbHVlLmgiCkBAIC03OSwxMyArODAsMTUg
QEAgcHVibGljOgogICAgIGlubGluZSBvcGVyYXRvciBKU0dsb2JhbENvbnRleHRSZWYoKSBjb25z
dDsKIAogICAgIGlubGluZSBib29sIGlzQXJyYXkoSlNWYWx1ZVJlZiB2YWx1ZSkgY29uc3Q7Cisg
ICAgaW5saW5lIGJvb2wgaXNFcnJvcihKU1ZhbHVlUmVmIHZhbHVlKSBjb25zdDsKKyAgICBpbmxp
bmUgYm9vbCBvYmplY3RIYXNPd25Qcm9wZXJ0eShKU09iamVjdFJlZiBvYmplY3QsIEpTU3RyaW5n
UmVmIHByb3BlcnR5KSBjb25zdDsKKyAgICBpbmxpbmUgUVZlY3RvcjxKU1N0cmluZ1JlZj4gb2Jq
ZWN0R2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdFJlZiBvYmplY3QpIGNvbnN0OwogcHJpdmF0
ZToKICAgICBRU2NyaXB0RW5naW5lKiBxX3B0cjsKICAgICBKU0dsb2JhbENvbnRleHRSZWYgbV9j
b250ZXh0OwogICAgIEpTVmFsdWVSZWYgbV9leGNlcHRpb247CiAKLSAgICBKU09iamVjdFJlZiBt
X2FycmF5Q29uc3RydWN0b3I7Ci0gICAgSlNWYWx1ZVJlZiBtX2FycmF5UHJvdG90eXBlOworICAg
IFFTY3JpcHRPcmlnaW5hbEdsb2JhbE9iamVjdCBtX29yaWdpbmFsR2xvYmFsT2JqZWN0OwogfTsK
IAogCkBAIC0yMTgsOSArMjIxLDI0IEBAIFFTY3JpcHRFbmdpbmVQcml2YXRlOjpvcGVyYXRvciBK
U0dsb2JhbENvbnRleHRSZWYoKSBjb25zdAogCiBib29sIFFTY3JpcHRFbmdpbmVQcml2YXRlOjpp
c0FycmF5KEpTVmFsdWVSZWYgdmFsdWUpIGNvbnN0CiB7Ci0gICAgLy8gSlNDIEFQSSBkb2Vzbid0
IGV4cG9ydCB0aGUgW1tDbGFzc11dIGluZm9ybWF0aW9uIGZvciB0aGUgYnVpbHRpbnMuIEJ1dCB3
ZSBrbm93IHRoYXQgYSB2YWx1ZQotICAgIC8vIGlzIGFuIGFycmF5IGlmIGl0IHdhcyBjcmVhdGVk
IHdpdGggdGhlIEFycmF5IGNvbnN0cnVjdG9yIG9yIGlmIGl0IGlzIHRoZSBBcnJheS5wcm90b3R5
cGUuCi0gICAgcmV0dXJuIEpTVmFsdWVJc0luc3RhbmNlT2ZDb25zdHJ1Y3RvcihtX2NvbnRleHQs
IHZhbHVlLCBtX2FycmF5Q29uc3RydWN0b3IsIC8qIGV4Y2VwdGlvbiAqLyAwKSB8fCBKU1ZhbHVl
SXNTdHJpY3RFcXVhbChtX2NvbnRleHQsIHZhbHVlLCBtX2FycmF5UHJvdG90eXBlKTsKKyAgICBy
ZXR1cm4gbV9vcmlnaW5hbEdsb2JhbE9iamVjdC5pc0FycmF5KHZhbHVlKTsKK30KKworYm9vbCBR
U2NyaXB0RW5naW5lUHJpdmF0ZTo6aXNFcnJvcihKU1ZhbHVlUmVmIHZhbHVlKSBjb25zdAorewor
ICAgIHJldHVybiBtX29yaWdpbmFsR2xvYmFsT2JqZWN0LmlzRXJyb3IodmFsdWUpOworfQorCitp
bmxpbmUgYm9vbCBRU2NyaXB0RW5naW5lUHJpdmF0ZTo6b2JqZWN0SGFzT3duUHJvcGVydHkoSlNP
YmplY3RSZWYgb2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eSkgY29uc3QKK3sKKyAgICAvLyBG
SVhNRSBXZSBuZWVkIGEgSlNDIEMgQVBJIGZ1bmN0aW9uIGZvciB0aGlzLgorICAgIHJldHVybiBt
X29yaWdpbmFsR2xvYmFsT2JqZWN0Lm9iamVjdEhhc093blByb3BlcnR5KG9iamVjdCwgcHJvcGVy
dHkpOworfQorCitpbmxpbmUgUVZlY3RvcjxKU1N0cmluZ1JlZj4gUVNjcmlwdEVuZ2luZVByaXZh
dGU6Om9iamVjdEdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3RSZWYgb2JqZWN0KSBjb25zdAor
eworICAgIC8vIEZJWE1FIFdlIGNhbid0IHVzZSBDIEFQSSBmdW5jdGlvbiBKU09iamVjdEdldFBy
b3BlcnR5TmFtZXMgYXMgaXQgcmV0dXJucyBvbmx5IGVudW1lcmFibGUgcHJvcGVydGllcy4KKyAg
ICByZXR1cm4gbV9vcmlnaW5hbEdsb2JhbE9iamVjdC5vYmplY3RHZXRPd25Qcm9wZXJ0eU5hbWVz
KG9iamVjdCk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBp
L3FzY3JpcHRvcmlnaW5hbGdsb2JhbG9iamVjdF9wLmggYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkv
cXNjcmlwdG9yaWdpbmFsZ2xvYmFsb2JqZWN0X3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi44ZDA4MGZiCi0tLSAvZGV2L251bGwKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQv
YXBpL3FzY3JpcHRvcmlnaW5hbGdsb2JhbG9iamVjdF9wLmgKQEAgLTAsMCArMSwxODYgQEAKKy8q
CisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
CisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgcXNjcmlwdG9yaWdpbmFsZ2xvYmFsb2JqZWN0X3Bf
aAorI2RlZmluZSBxc2NyaXB0b3JpZ2luYWxnbG9iYWxvYmplY3RfcF9oCisKKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNS
ZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDxRdENvcmUvcXZlY3Rvci5oPgorCisvKiEKKyAgICBcaW50
ZXJuYWwKKyAgICBUaGlzIGNsYXNzIGlzIGEgd29ya2Fyb3VuZCBmb3IgbWlzc2luZyBKU0MgQyBB
UEkgZnVuY3Rpb25hbGl0eS4gVGhpcyBjbGFzcyBrZWVwcyBhbGwgaW1wb3J0YW50CisgICAgcHJv
cGVydGllcyBvZiBhbiBvcmlnaW5hbCAoZGVmYXVsdCkgZ2xvYmFsIG9iamVjdCwgc28gd2UgY2Fu
IHVzZSBpdCBldmVuIGlmIHRoZSBnbG9iYWwgb2JqZWN0IHdhcworICAgIGNoYW5nZWQuCisKKyAg
ICBGSVhNRSB0aGlzIGNsYXNzIGlzIGEgY29udGFpbmVyIGZvciB3b3JrYXJvdW5kcyA6LSkgaXQg
c2hvdWxkIGJlIHJlcGxhY2VkIGJ5IHByb3BlciBKU0MgQyBBUEkgY2FsbHMuCisKKyAgICBUaGUg
Y2xhc3MgaGF2ZSB0byBiZSBjcmVhdGVkIG9uIHRoZSBRU2NyaXB0RW5naW5lUHJpdmF0ZSBjcmVh
dGlvbiB0aW1lIChiZWZvcmUgYW55IGNoYW5nZSBnb3QgYXBwbGllZCB0bworICAgIGdsb2JhbCBv
YmplY3QpLgorKi8KK2NsYXNzIFFTY3JpcHRPcmlnaW5hbEdsb2JhbE9iamVjdCB7CitwdWJsaWM6
CisgICAgaW5saW5lIFFTY3JpcHRPcmlnaW5hbEdsb2JhbE9iamVjdChKU0dsb2JhbENvbnRleHRS
ZWYgY29udGV4dCk7CisgICAgaW5saW5lIH5RU2NyaXB0T3JpZ2luYWxHbG9iYWxPYmplY3QoKTsK
KworICAgIGlubGluZSBib29sIG9iamVjdEhhc093blByb3BlcnR5KEpTT2JqZWN0UmVmIG9iamVj
dCwgSlNTdHJpbmdSZWYgcHJvcGVydHkpIGNvbnN0OworICAgIGlubGluZSBRVmVjdG9yPEpTU3Ry
aW5nUmVmPiBvYmplY3RHZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0UmVmIG9iamVjdCkgY29u
c3Q7CisKKyAgICBpbmxpbmUgYm9vbCBpc0FycmF5KEpTVmFsdWVSZWYgdmFsdWUpIGNvbnN0Owor
ICAgIGlubGluZSBib29sIGlzRXJyb3IoSlNWYWx1ZVJlZiB2YWx1ZSkgY29uc3Q7Citwcml2YXRl
OgorICAgIGlubGluZSBib29sIGlzVHlwZShKU1ZhbHVlUmVmIHZhbHVlLCBKU09iamVjdFJlZiBj
b25zdHJ1Y3RvciwgSlNWYWx1ZVJlZiBwcm90b3R5cGUpIGNvbnN0OworICAgIGlubGluZSB2b2lk
IGluaXRpYWxpemVNZW1iZXIoSlNPYmplY3RSZWYgZ2xvYmFsT2JqZWN0LCBKU1N0cmluZ1JlZiBw
cm90b3R5cGVOYW1lLCBjb25zdCBjaGFyKiB0eXBlLCBKU09iamVjdFJlZiYgY29uc3RydWN0b3Is
IEpTVmFsdWVSZWYmIHByb3RvdHlwZSk7CisKKyAgICAvLyBDb3B5IG9mIHRoZSBnbG9iYWwgY29u
dGV4dCByZWZlcmVuY2UgKHRoZSBzYW1lIGFzIGluIFFTY3JpcHRFbmdpbmVQcml2YXRlKS4KKyAg
ICBKU0dsb2JhbENvbnRleHRSZWYgbV9jb250ZXh0OworCisgICAgLy8gQ29weSBvZiBjb25zdHJ1
Y3RvcnMgYW5kIHByb3RvdHlwZXMgdXNlZCBpbiBpc1R5cGUgZnVuY3Rpb25zLgorICAgIEpTT2Jq
ZWN0UmVmIG1fYXJyYXlDb25zdHJ1Y3RvcjsKKyAgICBKU1ZhbHVlUmVmIG1fYXJyYXlQcm90b3R5
cGU7CisgICAgSlNPYmplY3RSZWYgbV9lcnJvckNvbnN0cnVjdG9yOworICAgIEpTVmFsdWVSZWYg
bV9lcnJvclByb3RvdHlwZTsKKworICAgIC8vIFJlZmVyZW5jZSB0byBzdGFuZGFyZCBKUyBmdW5j
dGlvbnMgdGhhdCBhcmUgbm90IGV4cG9zZWQgYnkgSlNDIEMgQVBJLgorICAgIEpTT2JqZWN0UmVm
IG1faGFzT3duUHJvcGVydHlGdW5jdGlvbjsKKyAgICBKU09iamVjdFJlZiBtX2dldE93blByb3Bl
cnR5TmFtZXNGdW5jdGlvbjsKK307CisKK1FTY3JpcHRPcmlnaW5hbEdsb2JhbE9iamVjdDo6UVNj
cmlwdE9yaWdpbmFsR2xvYmFsT2JqZWN0KEpTR2xvYmFsQ29udGV4dFJlZiBjb250ZXh0KQorICAg
IDogbV9jb250ZXh0KEpTR2xvYmFsQ29udGV4dFJldGFpbihjb250ZXh0KSkKK3sKKyAgICBKU09i
amVjdFJlZiBnbG9iYWxPYmplY3QgPSBKU0NvbnRleHRHZXRHbG9iYWxPYmplY3QobV9jb250ZXh0
KTsKKyAgICBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiA9IDA7CisgICAgSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IHByb3BlcnR5TmFtZTsKKworICAgIHByb3BlcnR5TmFtZS5hZG9wdChKU1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygicHJvdG90eXBlIikpOworICAgIGluaXRpYWxpemVNZW1iZXIo
Z2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUuZ2V0KCksICJBcnJheSIsIG1fYXJyYXlDb25zdHJ1
Y3RvciwgbV9hcnJheVByb3RvdHlwZSk7CisgICAgaW5pdGlhbGl6ZU1lbWJlcihnbG9iYWxPYmpl
Y3QsIHByb3BlcnR5TmFtZS5nZXQoKSwgIkVycm9yIiwgbV9lcnJvckNvbnN0cnVjdG9yLCBtX2Vy
cm9yUHJvdG90eXBlKTsKKworICAgIHByb3BlcnR5TmFtZS5hZG9wdChKU1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiaGFzT3duUHJvcGVydHkiKSk7CisgICAgbV9oYXNPd25Qcm9wZXJ0eUZ1
bmN0aW9uID0gY29uc3RfY2FzdDxKU09iamVjdFJlZj4oSlNPYmplY3RHZXRQcm9wZXJ0eShtX2Nv
bnRleHQsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLmdldCgpLCAmZXhjZXB0aW9uKSk7Cisg
ICAgSlNWYWx1ZVByb3RlY3QobV9jb250ZXh0LCBtX2hhc093blByb3BlcnR5RnVuY3Rpb24pOwor
ICAgIFFfQVNTRVJUKEpTVmFsdWVJc09iamVjdChtX2NvbnRleHQsIG1faGFzT3duUHJvcGVydHlG
dW5jdGlvbikpOworICAgIFFfQVNTRVJUKEpTT2JqZWN0SXNGdW5jdGlvbihtX2NvbnRleHQsIG1f
aGFzT3duUHJvcGVydHlGdW5jdGlvbikpOworICAgIFFfQVNTRVJUKCFleGNlcHRpb24pOworCisg
ICAgcHJvcGVydHlOYW1lLmFkb3B0KEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJPYmpl
Y3QiKSk7CisgICAgSlNPYmplY3RSZWYgb2JqZWN0Q29uc3RydWN0b3IKKyAgICAgICAgICAgID0g
Y29uc3RfY2FzdDxKU09iamVjdFJlZj4oSlNPYmplY3RHZXRQcm9wZXJ0eShtX2NvbnRleHQsIGds
b2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLmdldCgpLCAmZXhjZXB0aW9uKSk7CisgICAgcHJvcGVy
dHlOYW1lLmFkb3B0KEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJnZXRPd25Qcm9wZXJ0
eU5hbWVzIikpOworICAgIG1fZ2V0T3duUHJvcGVydHlOYW1lc0Z1bmN0aW9uCisgICAgICAgICAg
ICA9IGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KEpTT2JqZWN0R2V0UHJvcGVydHkobV9jb250ZXh0
LCBvYmplY3RDb25zdHJ1Y3RvciwgcHJvcGVydHlOYW1lLmdldCgpLCAmZXhjZXB0aW9uKSk7Cisg
ICAgSlNWYWx1ZVByb3RlY3QobV9jb250ZXh0LCBtX2dldE93blByb3BlcnR5TmFtZXNGdW5jdGlv
bik7CisgICAgUV9BU1NFUlQoSlNWYWx1ZUlzT2JqZWN0KG1fY29udGV4dCwgbV9nZXRPd25Qcm9w
ZXJ0eU5hbWVzRnVuY3Rpb24pKTsKKyAgICBRX0FTU0VSVChKU09iamVjdElzRnVuY3Rpb24obV9j
b250ZXh0LCBtX2dldE93blByb3BlcnR5TmFtZXNGdW5jdGlvbikpOworICAgIFFfQVNTRVJUKCFl
eGNlcHRpb24pOworfQorCitpbmxpbmUgdm9pZCBRU2NyaXB0T3JpZ2luYWxHbG9iYWxPYmplY3Q6
OmluaXRpYWxpemVNZW1iZXIoSlNPYmplY3RSZWYgZ2xvYmFsT2JqZWN0LCBKU1N0cmluZ1JlZiBw
cm90b3R5cGVOYW1lLCBjb25zdCBjaGFyKiB0eXBlLCBKU09iamVjdFJlZiYgY29uc3RydWN0b3Is
IEpTVmFsdWVSZWYmIHByb3RvdHlwZSkKK3sKKyAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
dHlwZU5hbWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHR5cGUpKTsKKyAg
ICBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiA9IDA7CisKKyAgICAvLyBTYXZlIHJlZmVyZW5jZXMgdG8g
dGhlIFR5cGUgY29uc3RydWN0b3IgYW5kIHByb3RvdHlwZS4KKyAgICBKU1ZhbHVlUmVmIHR5cGVD
b25zdHJ1Y3RvciA9IEpTT2JqZWN0R2V0UHJvcGVydHkobV9jb250ZXh0LCBnbG9iYWxPYmplY3Qs
IHR5cGVOYW1lLmdldCgpLCAmZXhjZXB0aW9uKTsKKyAgICBRX0FTU0VSVChKU1ZhbHVlSXNPYmpl
Y3QobV9jb250ZXh0LCB0eXBlQ29uc3RydWN0b3IpKTsKKyAgICBjb25zdHJ1Y3RvciA9IEpTVmFs
dWVUb09iamVjdChtX2NvbnRleHQsIHR5cGVDb25zdHJ1Y3RvciwgJmV4Y2VwdGlvbik7CisgICAg
SlNWYWx1ZVByb3RlY3QobV9jb250ZXh0LCBjb25zdHJ1Y3Rvcik7CisKKyAgICAvLyBOb3RlIHRo
YXQgdGhpcyBpcyBub3QgdGhlIFtbUHJvdG90eXBlXV0gaW50ZXJuYWwgcHJvcGVydHkgKHdoaWNo
IHdlIGNvdWxkCisgICAgLy8gZ2V0IHZpYSBKU09iamVjdEdldFByb3RvdHlwZSksIGJ1dCB0aGUg
VHlwZS5wcm90b3R5cGUsIHRoYXQgd2lsbCBiZSBzZXQKKyAgICAvLyBhcyBbW1Byb3RvdHlwZV1d
IG9mIFR5cGUgaW5zdGFuY2VzLgorICAgIHByb3RvdHlwZSA9IEpTT2JqZWN0R2V0UHJvcGVydHko
bV9jb250ZXh0LCBjb25zdHJ1Y3RvciwgcHJvdG90eXBlTmFtZSwgJmV4Y2VwdGlvbik7CisgICAg
UV9BU1NFUlQoSlNWYWx1ZUlzT2JqZWN0KG1fY29udGV4dCwgcHJvdG90eXBlKSk7CisgICAgSlNW
YWx1ZVByb3RlY3QobV9jb250ZXh0LCBwcm90b3R5cGUpOworICAgIFFfQVNTRVJUKCFleGNlcHRp
b24pOworfQorCitRU2NyaXB0T3JpZ2luYWxHbG9iYWxPYmplY3Q6On5RU2NyaXB0T3JpZ2luYWxH
bG9iYWxPYmplY3QoKQoreworICAgIEpTVmFsdWVVbnByb3RlY3QobV9jb250ZXh0LCBtX2FycmF5
Q29uc3RydWN0b3IpOworICAgIEpTVmFsdWVVbnByb3RlY3QobV9jb250ZXh0LCBtX2FycmF5UHJv
dG90eXBlKTsKKyAgICBKU1ZhbHVlVW5wcm90ZWN0KG1fY29udGV4dCwgbV9lcnJvckNvbnN0cnVj
dG9yKTsKKyAgICBKU1ZhbHVlVW5wcm90ZWN0KG1fY29udGV4dCwgbV9lcnJvclByb3RvdHlwZSk7
CisgICAgSlNWYWx1ZVVucHJvdGVjdChtX2NvbnRleHQsIG1faGFzT3duUHJvcGVydHlGdW5jdGlv
bik7CisgICAgSlNWYWx1ZVVucHJvdGVjdChtX2NvbnRleHQsIG1fZ2V0T3duUHJvcGVydHlOYW1l
c0Z1bmN0aW9uKTsKKyAgICBKU0dsb2JhbENvbnRleHRSZWxlYXNlKG1fY29udGV4dCk7Cit9CisK
K2lubGluZSBib29sIFFTY3JpcHRPcmlnaW5hbEdsb2JhbE9iamVjdDo6b2JqZWN0SGFzT3duUHJv
cGVydHkoSlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eSkgY29uc3QKK3sK
KyAgICAvLyBGSVhNRSBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSByZXBsYWNlZCBieSBKU0MgQyBB
UEkuCisgICAgSlNWYWx1ZVJlZiBleGNlcHRpb24gPSAwOworICAgIEpTVmFsdWVSZWYgcHJvcGVy
dHlOYW1lW10gPSB7IEpTVmFsdWVNYWtlU3RyaW5nKG1fY29udGV4dCwgcHJvcGVydHkpIH07Cisg
ICAgSlNWYWx1ZVJlZiByZXN1bHQgPSBKU09iamVjdENhbGxBc0Z1bmN0aW9uKG1fY29udGV4dCwg
bV9oYXNPd25Qcm9wZXJ0eUZ1bmN0aW9uLCBvYmplY3QsIDEsIHByb3BlcnR5TmFtZSwgJmV4Y2Vw
dGlvbik7CisgICAgcmV0dXJuIGV4Y2VwdGlvbiA/IGZhbHNlIDogSlNWYWx1ZVRvQm9vbGVhbiht
X2NvbnRleHQsIHJlc3VsdCk7Cit9CisKKy8qIQorICAgIFxpbnRlcm5hbAorICAgIFRoaXMgbWV0
aG9kIGdpdmVzIG93bmVyc2hpcCBvZiBhbGwgSlNTdHJpbmdSZWZzLgorKi8KK2lubGluZSBRVmVj
dG9yPEpTU3RyaW5nUmVmPiBRU2NyaXB0T3JpZ2luYWxHbG9iYWxPYmplY3Q6Om9iamVjdEdldE93
blByb3BlcnR5TmFtZXMoSlNPYmplY3RSZWYgb2JqZWN0KSBjb25zdAoreworICAgIEpTVmFsdWVS
ZWYgZXhjZXB0aW9uID0gMDsKKyAgICBKU09iamVjdFJlZiBwcm9wZXJ0eU5hbWVzCisgICAgICAg
ICAgICA9IGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24obV9j
b250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbV9nZXRPd25Qcm9wZXJ0eU5hbWVzRnVuY3Rpb24sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGlzT2Jq
ZWN0ICovIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvKiBhcmd1bWVudENvdW50ICovIDEsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb2JqZWN0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmV4
Y2VwdGlvbikpOworICAgIFFfQVNTRVJUKEpTVmFsdWVJc09iamVjdChtX2NvbnRleHQsIHByb3Bl
cnR5TmFtZXMpKTsKKyAgICBRX0FTU0VSVCghZXhjZXB0aW9uKTsKKyAgICBKU1N0cmluZ1JlZiBs
ZW5ndGhOYW1lID0gUVNjcmlwdENvbnZlcnRlcjo6dG9TdHJpbmcoImxlbmd0aCIpOworICAgIGlu
dCBjb3VudCA9IEpTVmFsdWVUb051bWJlcihtX2NvbnRleHQsIEpTT2JqZWN0R2V0UHJvcGVydHko
bV9jb250ZXh0LCBwcm9wZXJ0eU5hbWVzLCBsZW5ndGhOYW1lLCAmZXhjZXB0aW9uKSwgJmV4Y2Vw
dGlvbik7CisKKyAgICBRX0FTU0VSVCghZXhjZXB0aW9uKTsKKyAgICBRVmVjdG9yPEpTU3RyaW5n
UmVmPiBuYW1lczsKKyAgICBuYW1lcy5yZXNlcnZlKGNvdW50KTsKKyAgICBmb3IgKGludCBpID0g
MDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgSlNWYWx1ZVJlZiB0bXAgPSBKU09iamVjdEdl
dFByb3BlcnR5QXRJbmRleChtX2NvbnRleHQsIHByb3BlcnR5TmFtZXMsIGksICZleGNlcHRpb24p
OworICAgICAgICBuYW1lcy5hcHBlbmQoSlNWYWx1ZVRvU3RyaW5nQ29weShtX2NvbnRleHQsIHRt
cCwgJmV4Y2VwdGlvbikpOworICAgICAgICBRX0FTU0VSVCghZXhjZXB0aW9uKTsKKyAgICB9Cisg
ICAgcmV0dXJuIG5hbWVzOworfQorCitpbmxpbmUgYm9vbCBRU2NyaXB0T3JpZ2luYWxHbG9iYWxP
YmplY3Q6OmlzQXJyYXkoSlNWYWx1ZVJlZiB2YWx1ZSkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNU
eXBlKHZhbHVlLCBtX2FycmF5Q29uc3RydWN0b3IsIG1fYXJyYXlQcm90b3R5cGUpOworfQorCitp
bmxpbmUgYm9vbCBRU2NyaXB0T3JpZ2luYWxHbG9iYWxPYmplY3Q6OmlzRXJyb3IoSlNWYWx1ZVJl
ZiB2YWx1ZSkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNUeXBlKHZhbHVlLCBtX2Vycm9yQ29uc3Ry
dWN0b3IsIG1fZXJyb3JQcm90b3R5cGUpOworfQorCitpbmxpbmUgYm9vbCBRU2NyaXB0T3JpZ2lu
YWxHbG9iYWxPYmplY3Q6OmlzVHlwZShKU1ZhbHVlUmVmIHZhbHVlLCBKU09iamVjdFJlZiBjb25z
dHJ1Y3RvciwgSlNWYWx1ZVJlZiBwcm90b3R5cGUpIGNvbnN0Cit7CisgICAgLy8gSlNDIEFQSSBk
b2Vzbid0IGV4cG9ydCB0aGUgW1tDbGFzc11dIGluZm9ybWF0aW9uIGZvciB0aGUgYnVpbHRpbnMu
IEJ1dCB3ZSBrbm93IHRoYXQgYSB2YWx1ZQorICAgIC8vIGlzIGFuIG9iamVjdCBvZiB0aGUgVHlw
ZSBpZiBpdCB3YXMgY3JlYXRlZCB3aXRoIHRoZSBUeXBlIGNvbnN0cnVjdG9yIG9yIGlmIGl0IGlz
IHRoZSBUeXBlLnByb3RvdHlwZS4KKyAgICBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiA9IDA7CisgICAg
Ym9vbCByZXN1bHQgPSBKU1ZhbHVlSXNJbnN0YW5jZU9mQ29uc3RydWN0b3IobV9jb250ZXh0LCB2
YWx1ZSwgY29uc3RydWN0b3IsICZleGNlcHRpb24pIHx8IEpTVmFsdWVJc1N0cmljdEVxdWFsKG1f
Y29udGV4dCwgdmFsdWUsIHByb3RvdHlwZSk7CisgICAgUV9BU1NFUlQoIWV4Y2VwdGlvbik7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworI2VuZGlmIC8vIHFzY3JpcHRvcmlnaW5hbGdsb2JhbG9i
amVjdF9wX2gKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWVf
cC5oIGIvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZV9wLmgKaW5kZXggMWQzMTli
YS4uNmU5M2EwNyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1
ZV9wLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZV9wLmgKQEAgLTE4
NCw3ICsxODQsNiBAQCBwcml2YXRlOgogICAgICAgICBWYWx1ZShRU3RyaW5nKiBzdHJpbmcpIDog
bV9zdHJpbmcoc3RyaW5nKSB7fQogICAgIH0gdTsKIAotICAgIGlubGluZSBib29sIGluaGVyaXRz
KGNvbnN0IGNoYXIqKTsKICAgICBpbmxpbmUgU3RhdGUgcmVmaW5lZEpTVmFsdWUoKTsKIAogICAg
IGlubGluZSBib29sIGlzSlNCYXNlZCgpIGNvbnN0OwpAQCAtNDE2LDcgKzQxNSw3IEBAIGJvb2wg
UVNjcmlwdFZhbHVlUHJpdmF0ZTo6aXNFcnJvcigpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgIC8vIEZhbGwtdGhyb3VnaC4KICAgICBjYXNlIEpTT2JqZWN0OgotICAgICAgICBy
ZXR1cm4gaW5oZXJpdHMoIkVycm9yIik7CisgICAgICAgIHJldHVybiBtX2VuZ2luZS0+aXNFcnJv
cigqdGhpcyk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAg
LTg2OCwxMyArODY3LDcgQEAgaW5saW5lIGJvb2wgUVNjcmlwdFZhbHVlUHJpdmF0ZTo6aGFzT3du
UHJvcGVydHkocXVpbnQzMiBwcm9wZXJ0eSkKIGlubGluZSBib29sIFFTY3JpcHRWYWx1ZVByaXZh
dGU6Omhhc093blByb3BlcnR5KEpTU3RyaW5nUmVmIHByb3BlcnR5KQogewogICAgIFFfQVNTRVJU
KGlzT2JqZWN0KCkpOwotICAgIC8vIEZJWE1FIGl0IGNvdWxkIGJlIGZhc3RlciwgYnV0IEpTQyBD
IEFQSSBkb2Vzbid0IGV4cG9zZSBuZWVkZWQgZnVuY3Rpb25hbGl0eS4KLSAgICBKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gaGFzT3duUHJvcGVydHlOYW1lKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiaGFzT3duUHJvcGVydHkiKSk7Ci0gICAgSlNWYWx1ZVJlZiBleGNlcHRp
b24gPSAwOwotICAgIEpTVmFsdWVSZWYgaGFzT3duUHJvcGVydHkgPSBKU09iamVjdEdldFByb3Bl
cnR5KCptX2VuZ2luZSwgKnRoaXMsIGhhc093blByb3BlcnR5TmFtZS5nZXQoKSwgJmV4Y2VwdGlv
bik7Ci0gICAgSlNWYWx1ZVJlZiBwcm9wZXJ0eU5hbWVbXSA9IHsgSlNWYWx1ZU1ha2VTdHJpbmco
Km1fZW5naW5lLCBwcm9wZXJ0eSkgfTsKLSAgICBKU1ZhbHVlUmVmIHJlc3VsdCA9IEpTT2JqZWN0
Q2FsbEFzRnVuY3Rpb24oKm1fZW5naW5lLCBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPihoYXNPd25Q
cm9wZXJ0eSksICp0aGlzLCAxLCBwcm9wZXJ0eU5hbWUsICZleGNlcHRpb24pOwotICAgIHJldHVy
biBleGNlcHRpb24gPyBmYWxzZSA6IEpTVmFsdWVUb0Jvb2xlYW4oKm1fZW5naW5lLCByZXN1bHQp
OworICAgIHJldHVybiBtX2VuZ2luZS0+b2JqZWN0SGFzT3duUHJvcGVydHkoKnRoaXMsIHByb3Bl
cnR5KTsKIH0KIAogLyohCkBAIC0xMTI0LDI0ICsxMTE3LDYgQEAgUVNjcmlwdFZhbHVlUHJpdmF0
ZTo6b3BlcmF0b3IgSlNPYmplY3RSZWYoKSBjb25zdAogCiAvKiEKICAgXGludGVybmFsCi0gIFJl
dHVybnMgdHJ1ZSBpZiBRU1YgaXMgY3JlYXRlZCBmcm9tIGNvbnN0cnVjdG9yIHdpdGggdGhlIGdp
dmVuIFxhIG5hbWUsIGl0IGhhcyB0byBiZSBhCi0gIGJ1aWx0LWluIHR5cGUuCi0qLwotYm9vbCBR
U2NyaXB0VmFsdWVQcml2YXRlOjppbmhlcml0cyhjb25zdCBjaGFyKiBuYW1lKQotewotICAgIFFf
QVNTRVJUKGlzSlNCYXNlZCgpKTsKLSAgICBKU09iamVjdFJlZiBnbG9iYWxPYmplY3QgPSBKU0Nv
bnRleHRHZXRHbG9iYWxPYmplY3QoKm1fZW5naW5lKTsKLSAgICBKU1N0cmluZ1JlZiBlcnJvckF0
dHJOYW1lID0gUVNjcmlwdENvbnZlcnRlcjo6dG9TdHJpbmcobmFtZSk7Ci0gICAgSlNWYWx1ZVJl
ZiBleGNlcHRpb24gPSAwOwotICAgIEpTVmFsdWVSZWYgZXJyb3IgPSBKU09iamVjdEdldFByb3Bl
cnR5KCptX2VuZ2luZSwgZ2xvYmFsT2JqZWN0LCBlcnJvckF0dHJOYW1lLCAmZXhjZXB0aW9uKTsK
LSAgICBKU1N0cmluZ1JlbGVhc2UoZXJyb3JBdHRyTmFtZSk7Ci0gICAgYm9vbCByZXN1bHQgPSBK
U1ZhbHVlSXNJbnN0YW5jZU9mQ29uc3RydWN0b3IoKm1fZW5naW5lLCAqdGhpcywgSlNWYWx1ZVRv
T2JqZWN0KCptX2VuZ2luZSwgZXJyb3IsICZleGNlcHRpb24pLCAmZXhjZXB0aW9uKTsKLSAgICBt
X2VuZ2luZS0+c2V0RXhjZXB0aW9uKGV4Y2VwdGlvbik7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0K
LQotLyohCi0gIFxpbnRlcm5hbAogICBSZWZpbmVzIHRoZSBzdGF0ZSBvZiB0aGlzIFFTY3JpcHRW
YWx1ZVByaXZhdGUuIFJldHVybnMgdGhlIG5ldyBzdGF0ZS4KICovCiBRU2NyaXB0VmFsdWVQcml2
YXRlOjpTdGF0ZSBRU2NyaXB0VmFsdWVQcml2YXRlOjpyZWZpbmVkSlNWYWx1ZSgpCmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlaXRlcmF0b3JfcC5oIGIvSmF2
YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZWl0ZXJhdG9yX3AuaAppbmRleCA2NmZjMDAx
Li5iOTNiNTE4IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVl
aXRlcmF0b3JfcC5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWVpdGVy
YXRvcl9wLmgKQEAgLTYzLDQyICs2Myw4IEBAIGlubGluZSBRU2NyaXB0VmFsdWVJdGVyYXRvclBy
aXZhdGU6OlFTY3JpcHRWYWx1ZUl0ZXJhdG9yUHJpdmF0ZShjb25zdCBRU2NyaXB0VmFsCiAgICAg
OiBtX29iamVjdChjb25zdF9jYXN0PFFTY3JpcHRWYWx1ZVByaXZhdGUqPih2YWx1ZSkpCiAgICAg
LCBtX2lkeChtX25hbWVzKQogewotICAgIC8vIEZJWE1FIFRoZXJlIGlzIGFzc3VtcHRpb24gdGhh
dCBnbG9iYWwgb2JqZWN0IHdhc24ndCBjaGFuZ2VkIChidWcgNDE4MzkpLgotICAgIC8vIEZJWE1F
IFdlIGNhbid0IHVzZSBDIEFQSSBmdW5jdGlvbiBKU09iamVjdEdldFByb3BlcnR5TmFtZXMgYXMg
aXQgcmV0dXJucyBvbmx5IGVudW1lcmFibGUgcHJvcGVydGllcy4KLSAgICBpZiAoY29uc3RfY2Fz
dDxRU2NyaXB0VmFsdWVQcml2YXRlKj4odmFsdWUpLT5pc09iamVjdCgpKSB7Ci0gICAgICAgIHN0
YXRpYyBKU1N0cmluZ1JlZiBvYmplY3ROYW1lID0gUVNjcmlwdENvbnZlcnRlcjo6dG9TdHJpbmco
Ik9iamVjdCIpOwotICAgICAgICBzdGF0aWMgSlNTdHJpbmdSZWYgZ2V0T3duUHJvcGVydHlOYW1l
c05hbWUgPSBRU2NyaXB0Q29udmVydGVyOjp0b1N0cmluZygiZ2V0T3duUHJvcGVydHlOYW1lcyIp
OwotCi0gICAgICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uID0gMDsKLSAgICAgICAgSlNPYmplY3RS
ZWYgZ2xvYmFsT2JqZWN0ID0gSlNDb250ZXh0R2V0R2xvYmFsT2JqZWN0KCplbmdpbmUoKSk7Ci0g
ICAgICAgIFFfQVNTRVJUKEpTVmFsdWVJc09iamVjdCgqZW5naW5lKCksIGdsb2JhbE9iamVjdCkp
OwotICAgICAgICBKU1ZhbHVlUmVmIG9iamVjdENvbnN0cnVjdG9yID0gSlNPYmplY3RHZXRQcm9w
ZXJ0eSgqZW5naW5lKCksIGdsb2JhbE9iamVjdCwgb2JqZWN0TmFtZSwgJmV4Y2VwdGlvbik7Ci0g
ICAgICAgIFFfQVNTRVJUKEpTVmFsdWVJc09iamVjdCgqZW5naW5lKCksIG9iamVjdENvbnN0cnVj
dG9yKSk7Ci0gICAgICAgIFFfQVNTRVJUKCFleGNlcHRpb24pOwotICAgICAgICBKU1ZhbHVlUmVm
IHByb3BlcnR5TmFtZXNHZXR0ZXIgPSBKU09iamVjdEdldFByb3BlcnR5KCplbmdpbmUoKSwgY29u
c3RfY2FzdDxKU09iamVjdFJlZj4ob2JqZWN0Q29uc3RydWN0b3IpLCBnZXRPd25Qcm9wZXJ0eU5h
bWVzTmFtZSwgJmV4Y2VwdGlvbik7Ci0gICAgICAgIFFfQVNTRVJUKEpTVmFsdWVJc09iamVjdCgq
ZW5naW5lKCksIHByb3BlcnR5TmFtZXNHZXR0ZXIpKTsKLSAgICAgICAgUV9BU1NFUlQoIWV4Y2Vw
dGlvbik7Ci0KLSAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSA9IHsgKm1fb2JqZWN0IH07
Ci0gICAgICAgIEpTT2JqZWN0UmVmIHByb3BlcnR5TmFtZXMKLSAgICAgICAgICAgICAgICA9IGNv
bnN0X2Nhc3Q8SlNPYmplY3RSZWY+KEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oKmVuZ2luZSgpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KHByb3BlcnR5TmFtZXNHZXR0ZXIpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8qIHRoaXNPYmplY3QgKi8gMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBhcmd1bWVudENvdW50ICovIDEsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXJndW1lbnRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICZleGNlcHRpb24pKTsKLSAgICAgICAgUV9BU1NFUlQo
SlNWYWx1ZUlzT2JqZWN0KCplbmdpbmUoKSwgcHJvcGVydHlOYW1lcykpOwotICAgICAgICBRX0FT
U0VSVCghZXhjZXB0aW9uKTsKLSAgICAgICAgc3RhdGljIEpTU3RyaW5nUmVmIGxlbmd0aE5hbWUg
PSBRU2NyaXB0Q29udmVydGVyOjp0b1N0cmluZygibGVuZ3RoIik7Ci0gICAgICAgIGludCBjb3Vu
dCA9IEpTVmFsdWVUb051bWJlcigqZW5naW5lKCksIEpTT2JqZWN0R2V0UHJvcGVydHkoKmVuZ2lu
ZSgpLCBwcm9wZXJ0eU5hbWVzLCBsZW5ndGhOYW1lLCAmZXhjZXB0aW9uKSwgJmV4Y2VwdGlvbik7
Ci0KLSAgICAgICAgUV9BU1NFUlQoIWV4Y2VwdGlvbik7Ci0gICAgICAgIG1fbmFtZXMucmVzZXJ2
ZShjb3VudCk7Ci0gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgewotICAg
ICAgICAgICAgSlNWYWx1ZVJlZiB0bXAgPSBKU09iamVjdEdldFByb3BlcnR5QXRJbmRleCgqZW5n
aW5lKCksIHByb3BlcnR5TmFtZXMsIGksICZleGNlcHRpb24pOwotICAgICAgICAgICAgbV9uYW1l
cy5hcHBlbmQoSlNWYWx1ZVRvU3RyaW5nQ29weSgqZW5naW5lKCksIHRtcCwgJmV4Y2VwdGlvbikp
OwotICAgICAgICAgICAgUV9BU1NFUlQoIWV4Y2VwdGlvbik7Ci0gICAgICAgIH0KKyAgICBpZiAo
bV9vYmplY3QtPmlzT2JqZWN0KCkpIHsKKyAgICAgICAgbV9uYW1lcyA9IGVuZ2luZSgpLT5vYmpl
Y3RHZXRPd25Qcm9wZXJ0eU5hbWVzKCptX29iamVjdCk7CiAgICAgICAgIG1faWR4ID0gbV9uYW1l
czsKICAgICB9IGVsc2UKICAgICAgICAgbV9vYmplY3QgPSAwOwpkaWZmIC0tZ2l0IGEvSmF2YVNj
cmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuY3BwIGIvSmF2
YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuY3BwCmlu
ZGV4IDczYjU3ZGMuLmE4MjM0N2UgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3Rz
L3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9x
dC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5jcHAKQEAgLTEyNjEsNCArMTI2
MSwyOCBAQCB2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnByb3BlcnR5RmxhZygpCiAgICAgUVZFUklG
WSghb2JqZWN0LnByb3BlcnR5RmxhZ3MocHJvdG9OYW1lSGFuZGxlLCBRU2NyaXB0VmFsdWU6OlJl
c29sdmVMb2NhbCkpOwogfQogCit2b2lkIHRzdF9RU2NyaXB0VmFsdWU6Omdsb2JhbE9iamVjdENo
YW5nZXMoKQoreworICAgIC8vIEFQSSBmdW5jdGlvbmFsaXR5IHNob3VsZG4ndCBkZXBlbmQgb24g
R2xvYmFsIE9iamVjdC4KKyAgICBRU2NyaXB0RW5naW5lIGVuZ2luZTsKKyAgICBRU2NyaXB0VmFs
dWUgYXJyYXkgPSBlbmdpbmUubmV3QXJyYXkoKTsKKyAgICBRU2NyaXB0VmFsdWUgZXJyb3IgPSBl
bmdpbmUuZXZhbHVhdGUoIm5ldyBFcnJvciIpOworICAgIFFTY3JpcHRWYWx1ZSBvYmplY3QgPSBl
bmdpbmUubmV3T2JqZWN0KCk7CisKKyAgICBvYmplY3Quc2V0UHJvcGVydHkoImZvbyIsIDUxMik7
CisKKyAgICAvLyBSZW1vdmUgcHJvcGVydGllcyBmb3JtIGdsb2JhbCBvYmplY3QuCisgICAgZW5n
aW5lLmV2YWx1YXRlKCJkZWxldGUgT2JqZWN0OyBkZWxldGUgRXJyb3I7IGRlbGV0ZSBBcnJheTsi
KTsKKworICAgIFFWRVJJRlkoYXJyYXkuaXNBcnJheSgpKTsKKyAgICBRVkVSSUZZKGVycm9yLmlz
RXJyb3IoKSk7CisgICAgUVZFUklGWShvYmplY3QuaXNPYmplY3QoKSk7CisKKyAgICBRVkVSSUZZ
KG9iamVjdC5wcm9wZXJ0eSgiZm9vIikuaXNWYWxpZCgpKTsKKyAgICBRVkVSSUZZKG9iamVjdC5w
cm9wZXJ0eSgiZm9vIiwgUVNjcmlwdFZhbHVlOjpSZXNvbHZlTG9jYWwpLmlzVmFsaWQoKSk7Cisg
ICAgb2JqZWN0LnNldFByb3BlcnR5KCJmb28iLCBRU2NyaXB0VmFsdWUoKSk7CisgICAgUVZFUklG
WSghb2JqZWN0LnByb3BlcnR5KCJmb28iKS5pc1ZhbGlkKCkpOworICAgIFFWRVJJRlkoIW9iamVj
dC5wcm9wZXJ0eSgiZm9vIiwgUVNjcmlwdFZhbHVlOjpSZXNvbHZlTG9jYWwpLmlzVmFsaWQoKSk7
Cit9CisKIFFURVNUX01BSU4odHN0X1FTY3JpcHRWYWx1ZSkKZGlmZiAtLWdpdCBhL0phdmFTY3Jp
cHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmggYi9KYXZhU2Ny
aXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5oCmluZGV4IDYx
MDg0MjMuLjQxYjk5Y2QgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3Jp
cHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMv
cXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuaApAQCAtNjAsNiArNjAsNyBAQCBwcml2YXRl
IHNsb3RzOgogICAgIHZvaWQgZ2V0UHJvcGVydHlSZXNvbHZlRmxhZygpOwogICAgIHZvaWQgcHJv
cGVydHlGbGFnX2RhdGEoKTsKICAgICB2b2lkIHByb3BlcnR5RmxhZygpOworICAgIHZvaWQgZ2xv
YmFsT2JqZWN0Q2hhbmdlcygpOwogCiAgICAgLy8gR2VuZXJhdGVkIHRlc3QgZnVuY3Rpb25zLgog
ICAgIHZvaWQgaXNCb29sX2RhdGEoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>