<?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>117862</bug_id>
          
          <creation_ts>2013-06-20 20:58:38 -0700</creation_ts>
          <short_desc>REGRESSION(r151808): fast/xmlhttprequest/xmlhttprequest-recursive-sync-event.html fails</short_desc>
          <delta_ts>2013-06-21 16:59:59 -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>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>LayoutTestFailure, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>117801</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>902423</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-06-20 20:58:38 -0700</bug_when>
    <thetext>fast/xmlhttprequest/xmlhttprequest-recursive-sync-event.html has been failing since http://trac.webkit.org/changeset/151808</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902425</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-06-20 21:01:08 -0700</bug_when>
    <thetext>Committed r151823: &lt;http://trac.webkit.org/changeset/151823&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902651</commentid>
    <comment_count>2</comment_count>
      <attachid>205210</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-06-21 13:22:48 -0700</bug_when>
    <thetext>Created attachment 205210
the fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902655</commentid>
    <comment_count>3</comment_count>
      <attachid>205212</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-06-21 13:32:07 -0700</bug_when>
    <thetext>Created attachment 205212
patch #2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902699</commentid>
    <comment_count>4</comment_count>
      <attachid>205212</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-06-21 15:57:37 -0700</bug_when>
    <thetext>Comment on attachment 205212
patch #2

View in context: https://bugs.webkit.org/attachment.cgi?id=205212&amp;action=review

r=me

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:-130
&gt; -    const size_t requiredStack = 32 * KB;
&gt; -    const size_t errorModeRequiredStack = 16 * KB;

I didn&apos;t realize that these values had just shrunk in r151808. Can we make them a little bigger? How about 128 required / 64 errorModeRequired? Would that work on Windows? 256 =&gt; 32 shrank by 8X, which seems like a risky move.

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:794
&gt; +    const VMStackBounds nativeStack(vm, wtfThreadData().stack());

Since the class is named VMStackBounds, the variable should be named vmStackBounds.

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:959
&gt; +    const VMStackBounds nativeStack(vm, wtfThreadData().stack());

Ditto.

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:1036
&gt; +    const VMStackBounds nativeStack(vm, wtfThreadData().stack());

Ditto.

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:1116
&gt; +    const VMStackBounds nativeStack(vm, wtfThreadData().stack());

Ditto.

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:1218
&gt; +    const VMStackBounds nativeStack(vm, wtfThreadData().stack());

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902705</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-06-21 16:15:29 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; I didn&apos;t realize that these values had just shrunk in r151808. Can we make them a little bigger? How about 128 required / 64 errorModeRequired? Would that work on Windows? 256 =&gt; 32 shrank by 8X, which seems like a risky move.

128/64 checks out fine for run-javascript-tests on Windows, where the256/64 values failed previously.  I will adopt these values and rerun the full tests on Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902719</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-06-21 16:59:59 -0700</bug_when>
    <thetext>Landed in r151869: &lt;http://trac.webkit.org/changeset/151869&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205210</attachid>
            <date>2013-06-21 13:22:48 -0700</date>
            <delta_ts>2013-06-21 13:23:18 -0700</delta_ts>
            <desc>the fix</desc>
            <filename>bug-117862.patch</filename>
            <type>text/plain</type>
            <size>19605</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUxODUwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBA
CisyMDEzLTA2LTIxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBJ
bnRyb2R1Y2luZyB0aGUgVk1TdGFja0JvdW5kcyBjbGFzcy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzg2Mi4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9y
LmNwcDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9y
KToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAg
KiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OkludGVycHJldGVy
OjpleGVjdXRlKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGVDYWxsKToKKyAg
ICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1Y3QpOgorICAgICAgICAoSlND
OjpJbnRlcnByZXRlcjo6cHJlcGFyZUZvclJlcGVhdENhbGwpOgorICAgICAgICAqIGludGVycHJl
dGVyL0ludGVycHJldGVyLmg6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjppc0luRXJyb3JI
YW5kbGluZ01vZGUpOgorICAgICAgICAqIHBhcnNlci9QYXJzZXIuY3BwOgorICAgICAgICAoSlND
Ojo6OlBhcnNlcik6CisgICAgICAgICogcGFyc2VyL1BhcnNlci5oOgorICAgICAgICAqIHJ1bnRp
bWUvU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5oOgorICAgICAgICAoSlNDOjpTdHJpbmdSZWN1cnNp
b25DaGVja2VyOjpwZXJmb3JtQ2hlY2spOgorICAgICAgICAqIHJ1bnRpbWUvVk1TdGFja0JvdW5k
cy5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6Vk1TdGFja0JvdW5kczo6Vk1TdGFja0JvdW5kcyk6
CisgICAgICAgIChKU0M6OlZNU3RhY2tCb3VuZHM6OmlzU2FmZVRvUmVjdXJzZSk6CisgICAgICAg
IChKU0M6OlZNU3RhY2tCb3VuZHM6OnJlcXVpcmVkQ2FwYWNpdHkpOgorCiAyMDEzLTA2LTIwICBN
YXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBDaGFuZ2Ugc3RhY2sgY2Fw
YWNpdHkgcmVxdWlyZW1lbnQgdG8gYmUgbW9yZSByZWFzb25hYmxlLgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE1MTgyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC04NzEsNiArODcxLDcgQEAKIAkJRkUyMENFOUUxNUYwNEE5NTAwREYzNDMwIC8qIExM
SW50Q0xvb3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEZFMjBDRTlDMTVGMDRBOTUwMERGMzQzMCAvKiBMTEludENMb29wLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkU0QTMzMUYxNUJEMkUwNzAwNkY1
NEYzIC8qIFZNSW5zcGVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEZFNEEzMzFEMTVCRDJFMDcwMDZGNTRGMyAvKiBWTUluc3BlY3Rvci5jcHAg
Ki87IH07CiAJCUZFNEEzMzIwMTVCRDJFMDcwMDZGNTRGMyAvKiBWTUluc3BlY3Rvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU0QTMzMUUxNUJEMkUw
NzAwNkY1NEYzIC8qIFZNSW5zcGVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJRkU2NjE3MjgxNzc0RTAzNTAwNDk1QjAwIC8qIFZNU3RhY2tC
b3VuZHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZF
NjYxNzI3MTc3NEUwMzUwMDQ5NUIwMCAvKiBWTVN0YWNrQm91bmRzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkVEMjg3QjIxNUVDOUE1NzAwREE4
MTYxIC8qIExMSW50T3Bjb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRUQyODdCMTE1RUM5QTU3MDBEQTgxNjEgLyogTExJbnRPcGNvZGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRUQ5NEYyRTE3
MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEOTRGMkIxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9n
LmNwcCAqLzsgfTsKIAkJRkVEOTRGMkYxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQ5NEYyQzE3MUUz
RTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMTgxNyw2ICsxODE4LDcgQEAKIAkJRkUyMENFOUMxNUYwNEE5
NTAwREYzNDMwIC8qIExMSW50Q0xvb3AuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gTExJbnRDTG9vcC5oOyBwYXRoID0gbGxpbnQvTExJbnRDTG9vcC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGRTRBMzMxRDE1QkQyRTA3MDA2RjU0RjMgLyogVk1JbnNwZWN0b3Iu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVk1JbnNwZWN0b3IuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTRBMzMxRTE1QkQyRTA3MDA2RjU0RjMg
LyogVk1JbnNwZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVk1JbnNw
ZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkU2NjE3MjcxNzc0RTAzNTAw
NDk1QjAwIC8qIFZNU3RhY2tCb3VuZHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVk1TdGFja0JvdW5kcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUQyODdC
MTE1RUM5QTU3MDBEQTgxNjEgLyogTExJbnRPcGNvZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gTExJbnRPcGNvZGUuaDsgcGF0aCA9IGxsaW50L0xMSW50T3Bjb2RlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFRDk0RjJCMTcxRTNFMjMwMEJFNzdBNCAvKiBX
YXRjaGRvZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXRjaGRv
Zy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFRDk0RjJDMTcxRTNFMjMwMEJF
NzdBNCAvKiBXYXRjaGRvZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXYXRj
aGRvZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjYxOCw2ICsyNjIwLDcgQEAK
IAkJCQk1RDUzNzI2RTBFMUM1NDg4MDAyMUU1NDkgLyogVHJhY2luZy5oICovLAogCQkJCTBGRUIz
RUNCMTYyMzdGNDcwMEFCNjdBRCAvKiBUeXBlZEFycmF5RGVzY3JpcHRvci5oICovLAogCQkJCTg2
NjczOUQxMTNCRkRFNzEwMDIzRDg3QyAvKiBVaW50MTZXaXRoRnJhY3Rpb24uaCAqLywKKwkJCQlG
RTY2MTcyNzE3NzRFMDM1MDA0OTVCMDAgLyogVk1TdGFja0JvdW5kcy5oICovLAogCQkJCUZFRDk0
RjJCMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5jcHAgKi8sCiAJCQkJRkVEOTRGMkMxNzFF
M0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggKi8sCiAJCQkJRkVEOTRGMkQxNzFFM0UyMzAwQkU3
N0E0IC8qIFdhdGNoZG9nTWFjLmNwcCAqLywKQEAgLTI5OTQsNiArMjk5Nyw3IEBACiAJCQkJQkMx
OEMzRTcwRTE2RjVDRDAwQjM0NDYwIC8qIEFycmF5UHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlDMkRGNDQzMDE3MDdBQzAxMDBBNUNBOTYgLyogU3VwZXJSZWdpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUMyMEIyNTk5MTcwNjUzNjIwMEMyMUY0RSAvKiBSZWdpb24uaCBpbiBIZWFkZXJz
ICovLAorCQkJCUZFNjYxNzI4MTc3NEUwMzUwMDQ5NUIwMCAvKiBWTVN0YWNrQm91bmRzLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDMjgzMTkwMDE2RkU0QjdEMDAxNTdCRkQgLyogSGFuZGxlQmxvY2su
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDFEMEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU0NsYXNz
UmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkUzQzYxRDE2N0JBQkVFMDA2RDc2MEEgLyogSlNW
aXJ0dWFsTWFjaGluZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
Y3BwCShyZXZpc2lvbiAxNTE4MjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc5LDcgKzE3OSw3
IEBAIEJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihWTSYKICNpZm5kZWYgTkRF
QlVHCiAgICAgLCBtX2xhc3RPcGNvZGVQb3NpdGlvbigwKQogI2VuZGlmCi0gICAgLCBtX3N0YWNr
KHd0ZlRocmVhZERhdGEoKS5zdGFjaygpKQorICAgICwgbV9zdGFjayh2bSwgd3RmVGhyZWFkRGF0
YSgpLnN0YWNrKCkpCiAgICAgLCBtX3VzZXNFeGNlcHRpb25zKGZhbHNlKQogICAgICwgbV9leHBy
ZXNzaW9uVG9vRGVlcChmYWxzZSkKIHsKQEAgLTIyOCw3ICsyMjgsNyBAQCBCeXRlY29kZUdlbmVy
YXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mCiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9sYXN0
T3Bjb2RlUG9zaXRpb24oMCkKICNlbmRpZgotICAgICwgbV9zdGFjayh3dGZUaHJlYWREYXRhKCku
c3RhY2soKSkKKyAgICAsIG1fc3RhY2sodm0sIHd0ZlRocmVhZERhdGEoKS5zdGFjaygpKQogICAg
ICwgbV91c2VzRXhjZXB0aW9ucyhmYWxzZSkKICAgICAsIG1fZXhwcmVzc2lvblRvb0RlZXAoZmFs
c2UpCiB7CkBAIC00MjUsNyArNDI1LDcgQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2Vu
ZXJhdG9yKFZNJgogI2lmbmRlZiBOREVCVUcKICAgICAsIG1fbGFzdE9wY29kZVBvc2l0aW9uKDAp
CiAjZW5kaWYKLSAgICAsIG1fc3RhY2sod3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkpCisgICAgLCBt
X3N0YWNrKHZtLCB3dGZUaHJlYWREYXRhKCkuc3RhY2soKSkKICAgICAsIG1fdXNlc0V4Y2VwdGlv
bnMoZmFsc2UpCiAgICAgLCBtX2V4cHJlc3Npb25Ub29EZWVwKGZhbHNlKQogewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuaAkocmV2aXNpb24gMTUxODI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCw3
IEBACiAjaW5jbHVkZSAiTm9kZXMuaCIKICNpbmNsdWRlICJTdGF0aWNQcm9wZXJ0eUFuYWx5emVy
LmgiCiAjaW5jbHVkZSAiVW5saW5rZWRDb2RlQmxvY2suaCIKKyNpbmNsdWRlICJWTVN0YWNrQm91
bmRzLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvU2VnbWVu
dGVkVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtODI1LDcgKzgyNiw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzaXplX3QgbV9sYXN0T3Bjb2RlUG9zaXRpb247CiAj
ZW5kaWYKIAotICAgICAgICBTdGFja0JvdW5kcyBtX3N0YWNrOworICAgICAgICBWTVN0YWNrQm91
bmRzIG1fc3RhY2s7CiAKICAgICAgICAgYm9vbCBtX3VzZXNFeGNlcHRpb25zOwogICAgICAgICBi
b29sIG1fZXhwcmVzc2lvblRvb0RlZXA7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAJKHJldmlzaW9uIDE1MTgyNSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTY0LDYgKzY0LDcgQEAKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKICNpbmNs
dWRlICJTdHJpY3RFdmFsQWN0aXZhdGlvbi5oIgogI2luY2x1ZGUgIlN0cm9uZ0lubGluZXMuaCIK
KyNpbmNsdWRlICJWTVN0YWNrQm91bmRzLmgiCiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVk
ZSA8c3RkaW8uaD4KICNpbmNsdWRlIDx3dGYvU3RhY2tTdGF0cy5oPgpAQCAtOTgsNDUgKzk5LDYg
QEAgSW50ZXJwcmV0ZXI6OkVycm9ySGFuZGxpbmdNb2RlOjp+RXJyb3JIYQogICAgICAgICBtX2lu
dGVycHJldGVyLnN0YWNrKCkuZGlzYWJsZUVycm9yU3RhY2tSZXNlcnZlKCk7CiB9CiAKLQotLy8g
VGhlIEludGVycHJldGVyOjpTdGFja1BvbGljeSBjbGFzcyBpcyB1c2VkIHRvIGNvbXB1dGUgYSBz
dGFjayBjYXBhY2l0eQotLy8gcmVxdWlyZW1lbnQgdG8gZW5zdXJlIHRoYXQgd2UgaGF2ZSBlbm91
Z2ggcm9vbSBvbiB0aGUgbmF0aXZlIHN0YWNrIGZvcjoKLS8vIDEuIHRoZSBtYXggY3VtdWxhdGl2
ZSBzdGFjayB1c2VkIGJ5IHRoZSBpbnRlcnByZXRlciBhbmQgYWxsIGNvZGUKLS8vICAgIHBhdGhz
IHN1YiBvZiBpdCB1cCB0aWxsIGxlYWYgZnVuY3Rpb25zLgotLy8gMi4gdGhlIG1heCBjdW11bGF0
aXZlIHN0YWNrIHVzZWQgYnkgdGhlIGludGVycHJldGVyIGJlZm9yZSBpdCByZWFjaGVzCi0vLyAg
ICB0aGUgbmV4dCBjaGVja3BvaW50IChleGVjdXRlLi4uKCkgZnVuY3Rpb24pIGluIHRoZSBpbnRl
cnByZXRlci4KLS8vIAotLy8gVGhlIGludGVycHJldGVyIGNhbiBiZSBydW4gb24gZGlmZmVyZW50
IHRocmVhZHMgYW5kIGhlbmNlLCBkaWZmZXJlbnQKLS8vIG5hdGl2ZSBzdGFja3MgKHdpdGggZGlm
ZmVyZW50IHNpemVzKSBiZWZvcmUgZXhpdGluZyBvdXQgb2YgdGhlIGZpcnN0Ci0vLyBmcmFtZS4g
SGVuY2UsIHRoZSByZXF1aXJlZCBjYXBhY2l0eSBuZWVkcyB0byBiZSByZS1jb21wdXRlZCBvbiBl
dmVyeQotLy8gZW50cnkgaW50byB0aGUgaW50ZXJwcmV0ZXIuCi0vLwotLy8gQ3VycmVudGx5IHRo
ZSByZXF1aXJlZFN0YWNrIGlzIGNvbXB1dGVkIGJhc2VkIG9uIGEgcG9saWN5LiBTZWUgY29tbWVu
dHMKLS8vIGluIFN0YWNrUG9saWN5OjpTdGFja1BvbGljeSgpIGZvciBkZXRhaWxzLgotCi1JbnRl
cnByZXRlcjo6U3RhY2tQb2xpY3k6OlN0YWNrUG9saWN5KEludGVycHJldGVyJiBpbnRlcnByZXRl
ciwgY29uc3QgU3RhY2tCb3VuZHMmIHN0YWNrKQotICAgIDogbV9pbnRlcnByZXRlcihpbnRlcnBy
ZXRlcikKLXsKLSAgICBjb25zdCBzaXplX3Qgc2l6ZSA9IHN0YWNrLnNpemUoKTsKLQotICAgIC8v
IFdlIGhhdmUgdHdvIHNlcGFyYXRlIHN0YWNrIGxpbWl0cywgb25lIGZvciByZWd1bGFyIEpTIGV4
ZWN1dGlvbiwgYW5kIG9uZQotICAgIC8vIGZvciB3aGVuIHdlJ3JlIGhhbmRsaW5nIGVycm9ycy4g
V2UgbmVlZCB0aGUgZXJyb3Igc3RhY2sgdG8gYmUgc21hbGxlcgotICAgIC8vIG90aGVyd2lzZSB0
aGVyZSB3b3VsZCBvYnZpb3VzbHkgbm90IGJlIGFueSBzdGFjayBsZWZ0IHRvIGV4ZWN1dGUgSlMg
aW4gd2hlbgotICAgIC8vIHRoZXJlJ3MgYSBzdGFjayBvdmVyZmxvdy4KLSAgICAvLwotICAgIC8v
IFRoZXNlIHNpemVzIHdlcmUgZGVyaXZlZCBmcm9tIHRoZSBzdGFjayB1c2FnZSBvZiBhIG51bWJl
ciBvZiBzaXRlcyB3aGVuCi0gICAgLy8gbGF5b3V0IG9jY3VycyB3aGVuIHdlJ3ZlIGFscmVhZHkg
Y29uc3VtZWQgbW9zdCBvZiB0aGUgQyBzdGFjay4KLSAgICBjb25zdCBzaXplX3QgcmVxdWlyZWRT
dGFjayA9IDMyICogS0I7Ci0gICAgY29uc3Qgc2l6ZV90IGVycm9yTW9kZVJlcXVpcmVkU3RhY2sg
PSAxNiAqIEtCOwotCi0gICAgc2l6ZV90IHJlcXVpcmVkQ2FwYWNpdHkgPSBtX2ludGVycHJldGVy
Lm1fZXJyb3JIYW5kbGluZ01vZGVSZWVudHJ5ID8gZXJyb3JNb2RlUmVxdWlyZWRTdGFjayA6IHJl
cXVpcmVkU3RhY2s7Ci0KLSAgICBSRUxFQVNFX0FTU0VSVChzaXplID49IHJlcXVpcmVkQ2FwYWNp
dHkpOwotICAgIAotICAgIG1fcmVxdWlyZWRDYXBhY2l0eSA9IHJlcXVpcmVkQ2FwYWNpdHk7ICAg
IAotfQotCi0KIHN0YXRpYyBDYWxsRnJhbWUqIGdldENhbGxlckluZm8oVk0qLCBDYWxsRnJhbWUq
LCB1bnNpZ25lZCYgYnl0ZWNvZGVPZmZzZXQsIENvZGVCbG9jayomIGNhbGxlck91dCk7CiAKIC8v
IFJldHVybnMgdGhlIGRlcHRoIG9mIHRoZSBzY29wZSBjaGFpbiB3aXRoaW4gYSBnaXZlbiBjYWxs
IGZyYW1lLgpAQCAtODI5LDkgKzc5MSw4IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUo
UHJvZ3JhbUV4ZWMKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogCiAgICAgU3RhY2tTdGF0czo6
Q2hlY2tQb2ludCBzdGFja0NoZWNrUG9pbnQ7Ci0gICAgY29uc3QgU3RhY2tCb3VuZHMmIG5hdGl2
ZVN0YWNrID0gd3RmVGhyZWFkRGF0YSgpLnN0YWNrKCk7Ci0gICAgU3RhY2tQb2xpY3kgcG9saWN5
KCp0aGlzLCBuYXRpdmVTdGFjayk7Ci0gICAgaWYgKCFuYXRpdmVTdGFjay5pc1NhZmVUb1JlY3Vy
c2UocG9saWN5LnJlcXVpcmVkQ2FwYWNpdHkoKSkpCisgICAgY29uc3QgVk1TdGFja0JvdW5kcyBu
YXRpdmVTdGFjayh2bSwgd3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkpOworICAgIGlmICghbmF0aXZl
U3RhY2suaXNTYWZlVG9SZWN1cnNlKCkpCiAgICAgICAgIHJldHVybiBjaGVja2VkUmV0dXJuKHRo
cm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOwogCiAgICAgLy8gRmlyc3QgY2hlY2sg
aWYgdGhlICJwcm9ncmFtIiBpcyBhY3R1YWxseSBqdXN0IGEgSlNPTiBvYmplY3QuIElmIHNvLApA
QCAtOTk1LDkgKzk1Niw4IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDYWxsKENhbGxG
cmEKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogCiAgICAgU3RhY2tTdGF0czo6Q2hlY2tQb2lu
dCBzdGFja0NoZWNrUG9pbnQ7Ci0gICAgY29uc3QgU3RhY2tCb3VuZHMmIG5hdGl2ZVN0YWNrID0g
d3RmVGhyZWFkRGF0YSgpLnN0YWNrKCk7Ci0gICAgU3RhY2tQb2xpY3kgcG9saWN5KCp0aGlzLCBu
YXRpdmVTdGFjayk7Ci0gICAgaWYgKCFuYXRpdmVTdGFjay5pc1NhZmVUb1JlY3Vyc2UocG9saWN5
LnJlcXVpcmVkQ2FwYWNpdHkoKSkpCisgICAgY29uc3QgVk1TdGFja0JvdW5kcyBuYXRpdmVTdGFj
ayh2bSwgd3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkpOworICAgIGlmICghbmF0aXZlU3RhY2suaXNT
YWZlVG9SZWN1cnNlKCkpCiAgICAgICAgIHJldHVybiBjaGVja2VkUmV0dXJuKHRocm93U3RhY2tP
dmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOwogCiAgICAgYm9vbCBpc0pTQ2FsbCA9IChjYWxsVHlw
ZSA9PSBDYWxsVHlwZUpTKTsKQEAgLTEwNzMsOSArMTAzMyw4IEBAIEpTT2JqZWN0KiBJbnRlcnBy
ZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdCgKICAgICAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4odGhy
b3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7CiAKICAgICBTdGFja1N0YXRzOjpDaGVj
a1BvaW50IHN0YWNrQ2hlY2tQb2ludDsKLSAgICBjb25zdCBTdGFja0JvdW5kcyYgbmF0aXZlU3Rh
Y2sgPSB3dGZUaHJlYWREYXRhKCkuc3RhY2soKTsKLSAgICBTdGFja1BvbGljeSBwb2xpY3koKnRo
aXMsIG5hdGl2ZVN0YWNrKTsKLSAgICBpZiAoIW5hdGl2ZVN0YWNrLmlzU2FmZVRvUmVjdXJzZShw
b2xpY3kucmVxdWlyZWRDYXBhY2l0eSgpKSkKKyAgICBjb25zdCBWTVN0YWNrQm91bmRzIG5hdGl2
ZVN0YWNrKHZtLCB3dGZUaHJlYWREYXRhKCkuc3RhY2soKSk7CisgICAgaWYgKCFuYXRpdmVTdGFj
ay5pc1NhZmVUb1JlY3Vyc2UoKSkKICAgICAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4odGhyb3dT
dGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7CiAKICAgICBib29sIGlzSlNDb25zdHJ1Y3Qg
PSAoY29uc3RydWN0VHlwZSA9PSBDb25zdHJ1Y3RUeXBlSlMpOwpAQCAtMTE1NCw5ICsxMTEzLDgg
QEAgQ2FsbEZyYW1lQ2xvc3VyZSBJbnRlcnByZXRlcjo6cHJlcGFyZUZvcgogICAgICAgICByZXR1
cm4gQ2FsbEZyYW1lQ2xvc3VyZSgpOwogCiAgICAgU3RhY2tTdGF0czo6Q2hlY2tQb2ludCBzdGFj
a0NoZWNrUG9pbnQ7Ci0gICAgY29uc3QgU3RhY2tCb3VuZHMmIG5hdGl2ZVN0YWNrID0gd3RmVGhy
ZWFkRGF0YSgpLnN0YWNrKCk7Ci0gICAgU3RhY2tQb2xpY3kgcG9saWN5KCp0aGlzLCBuYXRpdmVT
dGFjayk7Ci0gICAgaWYgKCFuYXRpdmVTdGFjay5pc1NhZmVUb1JlY3Vyc2UocG9saWN5LnJlcXVp
cmVkQ2FwYWNpdHkoKSkpIHsKKyAgICBjb25zdCBWTVN0YWNrQm91bmRzIG5hdGl2ZVN0YWNrKHZt
LCB3dGZUaHJlYWREYXRhKCkuc3RhY2soKSk7CisgICAgaWYgKCFuYXRpdmVTdGFjay5pc1NhZmVU
b1JlY3Vyc2UoKSkgewogICAgICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUp
OwogICAgICAgICByZXR1cm4gQ2FsbEZyYW1lQ2xvc3VyZSgpOwogICAgIH0KQEAgLTEyNTcsOSAr
MTIxNSw4IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoRXZhbEV4ZWN1dGEKICAgICBE
eW5hbWljR2xvYmFsT2JqZWN0U2NvcGUgZ2xvYmFsT2JqZWN0U2NvcGUodm0sIHNjb3BlLT5nbG9i
YWxPYmplY3QoKSk7CiAKICAgICBTdGFja1N0YXRzOjpDaGVja1BvaW50IHN0YWNrQ2hlY2tQb2lu
dDsKLSAgICBjb25zdCBTdGFja0JvdW5kcyYgbmF0aXZlU3RhY2sgPSB3dGZUaHJlYWREYXRhKCku
c3RhY2soKTsKLSAgICBTdGFja1BvbGljeSBwb2xpY3koKnRoaXMsIG5hdGl2ZVN0YWNrKTsKLSAg
ICBpZiAoIW5hdGl2ZVN0YWNrLmlzU2FmZVRvUmVjdXJzZShwb2xpY3kucmVxdWlyZWRDYXBhY2l0
eSgpKSkKKyAgICBjb25zdCBWTVN0YWNrQm91bmRzIG5hdGl2ZVN0YWNrKHZtLCB3dGZUaHJlYWRE
YXRhKCkuc3RhY2soKSk7CisgICAgaWYgKCFuYXRpdmVTdGFjay5pc1NhZmVUb1JlY3Vyc2UoKSkK
ICAgICAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4odGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2Fs
bEZyYW1lKSk7CiAKICAgICAvLyBDb21waWxlIHRoZSBjYWxsZWU6CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAkocmV2aXNpb24gMTUx
ODI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIxNiw2ICsyMTYsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgCiAgICAgICAgIFNhbXBsaW5nVG9vbCogc2FtcGxlcigpIHsgcmV0dXJuIG1fc2FtcGxlci5n
ZXQoKTsgfQogCisgICAgICAgIGJvb2wgaXNJbkVycm9ySGFuZGxpbmdNb2RlKCkgeyByZXR1cm4g
bV9lcnJvckhhbmRsaW5nTW9kZVJlZW50cnk7IH0KKwogICAgICAgICBORVZFUl9JTkxJTkUgSGFu
ZGxlckluZm8qIHRocm93RXhjZXB0aW9uKENhbGxGcmFtZSomLCBKU1ZhbHVlJiwgdW5zaWduZWQg
Ynl0ZWNvZGVPZmZzZXQpOwogICAgICAgICBORVZFUl9JTkxJTkUgdm9pZCBkZWJ1ZyhDYWxsRnJh
bWUqLCBEZWJ1Z0hvb2tJRCwgaW50IGZpcnN0TGluZSwgaW50IGxhc3RMaW5lLCBpbnQgY29sdW1u
KTsKICAgICAgICAgc3RhdGljIGNvbnN0IFN0cmluZyBnZXRUcmFjZUxpbmUoQ2FsbEZyYW1lKiwg
U3RhY2tGcmFtZUNvZGVUeXBlLCBjb25zdCBTdHJpbmcmLCBpbnQpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAkocmV2aXNpb24gMTUxODI1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Niw3
ICs2Niw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBMZXhlclR5cGU+CiBQYXJzZXI8TGV4ZXJUeXBl
Pjo6UGFyc2VyKFZNKiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBGdW5jdGlvblBhcmFt
ZXRlcnMqIHBhcmFtZXRlcnMsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEpTUGFyc2VyU3RyaWN0
bmVzcyBzdHJpY3RuZXNzLCBKU1BhcnNlck1vZGUgcGFyc2VyTW9kZSkKICAgICA6IG1fdm0odm0p
CiAgICAgLCBtX3NvdXJjZSgmc291cmNlKQotICAgICwgbV9zdGFjayh3dGZUaHJlYWREYXRhKCku
c3RhY2soKSkKKyAgICAsIG1fc3RhY2soKnZtLCB3dGZUaHJlYWREYXRhKCkuc3RhY2soKSkKICAg
ICAsIG1faGFzU3RhY2tPdmVyZmxvdyhmYWxzZSkKICAgICAsIG1fYWxsb3dzSW4odHJ1ZSkKICAg
ICAsIG1fbGFzdExpbmUoMCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFy
c2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIu
aAkocmV2aXNpb24gMTUxODI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJz
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIlNvdXJjZVBy
b3ZpZGVyLmgiCiAjaW5jbHVkZSAiU291cmNlUHJvdmlkZXJDYWNoZS5oIgogI2luY2x1ZGUgIlNv
dXJjZVByb3ZpZGVyQ2FjaGVJdGVtLmgiCisjaW5jbHVkZSAiVk1TdGFja0JvdW5kcy5oIgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5j
bHVkZSA8d3RmL093blB0ci5oPgpAQCAtOTM4LDcgKzkzOSw3IEBAIHByaXZhdGU6CiAgICAgUGFy
c2VyQXJlbmEqIG1fYXJlbmE7CiAgICAgT3duUHRyPExleGVyVHlwZT4gbV9sZXhlcjsKICAgICAK
LSAgICBTdGFja0JvdW5kcyBtX3N0YWNrOworICAgIFZNU3RhY2tCb3VuZHMgbV9zdGFjazsKICAg
ICBib29sIG1faGFzU3RhY2tPdmVyZmxvdzsKICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CiAg
ICAgSlNUb2tlbiBtX3Rva2VuOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ1JlY3Vyc2lvbkNoZWNrZXIuaAkocmV2aXNpb24gMTUxODI1KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjZGVmaW5lIFN0cmluZ1JlY3Vyc2lv
bkNoZWNrZXJfaAogCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJWTVN0YWNr
Qm91bmRzLmgiCiAjaW5jbHVkZSA8d3RmL1N0YWNrU3RhdHMuaD4KICNpbmNsdWRlIDx3dGYvV1RG
VGhyZWFkRGF0YS5oPgogCkBAIC00OSwxMCArNTAsMTEgQEAgcHJpdmF0ZToKIAogaW5saW5lIEpT
VmFsdWUgU3RyaW5nUmVjdXJzaW9uQ2hlY2tlcjo6cGVyZm9ybUNoZWNrKCkKIHsKLSAgICBjb25z
dCBTdGFja0JvdW5kcyYgbmF0aXZlU3RhY2sgPSB3dGZUaHJlYWREYXRhKCkuc3RhY2soKTsKKyAg
ICBWTSYgdm0gPSBtX2V4ZWMtPnZtKCk7CisgICAgY29uc3QgVk1TdGFja0JvdW5kcyBuYXRpdmVT
dGFjayh2bSwgd3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkpOwogICAgIGlmICghbmF0aXZlU3RhY2su
aXNTYWZlVG9SZWN1cnNlKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJv
cigpOwotICAgIGJvb2wgYWxyZWFkeVZpc2l0ZWQgPSAhbV9leGVjLT52bSgpLnN0cmluZ1JlY3Vy
c2lvbkNoZWNrVmlzaXRlZE9iamVjdHMuYWRkKG1fdGhpc09iamVjdCkuaXNOZXdFbnRyeTsKKyAg
ICBib29sIGFscmVhZHlWaXNpdGVkID0gIXZtLnN0cmluZ1JlY3Vyc2lvbkNoZWNrVmlzaXRlZE9i
amVjdHMuYWRkKG1fdGhpc09iamVjdCkuaXNOZXdFbnRyeTsKICAgICBpZiAoYWxyZWFkeVZpc2l0
ZWQpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOyAvLyBSZXR1cm4gZW1wdHkgc3RyaW5n
IHRvIGF2b2lkIGluZmluaXRlIHJlY3Vyc2lvbi4KICAgICByZXR1cm4gSlNWYWx1ZSgpOyAvLyBJ
bmRpY2F0ZSBzdWNjZXNzLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1T
dGFja0JvdW5kcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNU3RhY2tCb3VuZHMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNU3RhY2tCb3VuZHMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVk1T
dGFja0JvdW5kc19oCisjZGVmaW5lIFZNU3RhY2tCb3VuZHNfaAorCisjaW5jbHVkZSAiVk0uaCIK
KyNpbmNsdWRlIDx3dGYvU3RhY2tCb3VuZHMuaD4KKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNz
IFZNU3RhY2tCb3VuZHMgeworcHVibGljOgorICAgIFZNU3RhY2tCb3VuZHMoVk0mIHZtLCBjb25z
dCBTdGFja0JvdW5kcyYgYm91bmRzKQorICAgICAgICA6IG1fdm0odm0pCisgICAgICAgICwgbV9i
b3VuZHMoYm91bmRzKQorICAgIHsKKyAgICB9CisKKyAgICBib29sIGlzU2FmZVRvUmVjdXJzZSgp
IGNvbnN0IHsgcmV0dXJuIG1fYm91bmRzLmlzU2FmZVRvUmVjdXJzZShyZXF1aXJlZENhcGFjaXR5
KCkpOyB9CisKK3ByaXZhdGU6CisgICAgaW5saW5lIHNpemVfdCByZXF1aXJlZENhcGFjaXR5KCkg
Y29uc3QKKyAgICB7CisgICAgICAgIEludGVycHJldGVyKiBpbnRlcnByZXRlciA9IG1fdm0uaW50
ZXJwcmV0ZXI7CisKKyAgICAgICAgLy8gV2UgaGF2ZSB0d28gc2VwYXJhdGUgc3RhY2sgbGltaXRz
LCBvbmUgZm9yIHJlZ3VsYXIgSlMgZXhlY3V0aW9uLCBhbmQgb25lCisgICAgICAgIC8vIGZvciB3
aGVuIHdlJ3JlIGhhbmRsaW5nIGVycm9ycy4gV2UgbmVlZCB0aGUgZXJyb3Igc3RhY2sgdG8gYmUg
c21hbGxlcgorICAgICAgICAvLyBvdGhlcndpc2UgdGhlcmUgd291bGQgb2J2aW91c2x5IG5vdCBi
ZSBhbnkgc3RhY2sgbGVmdCB0byBleGVjdXRlIEpTIGluIHdoZW4KKyAgICAgICAgLy8gdGhlcmUn
cyBhIHN0YWNrIG92ZXJmbG93LgorICAgICAgICAvLworICAgICAgICAvLyBUaGVzZSBzaXplcyB3
ZXJlIGRlcml2ZWQgZnJvbSB0aGUgc3RhY2sgdXNhZ2Ugb2YgYSBudW1iZXIgb2Ygc2l0ZXMgd2hl
bgorICAgICAgICAvLyBsYXlvdXQgb2NjdXJzIHdoZW4gd2UndmUgYWxyZWFkeSBjb25zdW1lZCBt
b3N0IG9mIHRoZSBDIHN0YWNrLgorICAgICAgICBjb25zdCBzaXplX3QgcmVxdWlyZWRTdGFjayA9
IDMyICogS0I7CisgICAgICAgIGNvbnN0IHNpemVfdCBlcnJvck1vZGVSZXF1aXJlZFN0YWNrID0g
MTYgKiBLQjsKKworICAgICAgICBzaXplX3QgcmVxdWlyZWRDYXBhY2l0eSA9IGludGVycHJldGVy
LT5pc0luRXJyb3JIYW5kbGluZ01vZGUoKSA/IGVycm9yTW9kZVJlcXVpcmVkU3RhY2sgOiByZXF1
aXJlZFN0YWNrOworICAgICAgICBSRUxFQVNFX0FTU0VSVChtX2JvdW5kcy5zaXplKCkgPj0gcmVx
dWlyZWRDYXBhY2l0eSk7CisgICAgICAgIHJldHVybiByZXF1aXJlZENhcGFjaXR5OyAKKyAgICB9
CisKKyAgICBWTSYgbV92bTsKKyAgICBjb25zdCBTdGFja0JvdW5kcyYgbV9ib3VuZHM7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIFZNU3RhY2tCb3VuZHNfaAorCkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAxNTE4NTApCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxMy0wNi0yMSAgTWFyayBMYW0gIDxtYXJrLmxhbUBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2ZXJ0aW5nIGZhaWx1cmUgZXhwZWN0YXRpb24gZm9yIGZh
c3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtcmVjdXJzaXZlLXN5bmMtZXZlbnQuaHRt
bC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzg2
Mi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBs
YXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEzLTA2LTIwICBCcmVudCBGdWxnaGFt
ICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtXaW5kb3dzXSBBWDogUmFkaW8gYnV0
dG9ucyB3aXRoICJ0YWIiIHJvbGUgc2hvdWxkIGRlc2NyaWJlIHRoZW1zZWx2ZXMgYXMgdGFicy4K
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lv
biAxNTE4MjUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwko
d29ya2luZyBjb3B5KQpAQCAtMTMzNiw1ICsxMzM2LDMgQEAgd2Via2l0Lm9yZy9iLzExNjM4OCBm
YXN0L2pzL3Bvc3QtbWVzc2FnZQogd2Via2l0Lm9yZy9iLzExNjU4MiBbIERlYnVnIF0gaW5zcGVj
dG9yL3N0eWxlcy9pbXBvcnQtcHNldWRvY2xhc3MtY3Jhc2guaHRtbCBbIFBhc3MgQ3Jhc2ggXQog
CiB3ZWJraXQub3JnL2IvMTE2NTkyIGluc3BlY3Rvci9nZW9sb2NhdGlvbi1lcnJvci5odG1sIFsg
UGFzcyBGYWlsdXJlIF0KLQotd2Via2l0Lm9yZy9iLzExNzg2MiBmYXN0L3htbGh0dHByZXF1ZXN0
L3htbGh0dHByZXF1ZXN0LXJlY3Vyc2l2ZS1zeW5jLWV2ZW50Lmh0bWwgWyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205212</attachid>
            <date>2013-06-21 13:32:07 -0700</date>
            <delta_ts>2013-06-21 15:57:37 -0700</delta_ts>
            <desc>patch #2</desc>
            <filename>bug-117862.patch</filename>
            <type>text/plain</type>
            <size>20564</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUxODUwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBA
CisyMDEzLTA2LTIxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBJ
bnRyb2R1Y2luZyB0aGUgVk1TdGFja0JvdW5kcyBjbGFzcy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzg2Mi4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIFJlbW92ZWQgSW50ZXJwcmV0ZXI6OlN0YWNr
UG9saWN5LgorICAgICAgICAtIFRoZSBuZXcgVk1TdGFja0JvdW5kcyB3aWxsIHRha2Ugb3ZlciBj
aG9vc2luZyB0aGUgYXBwcm9wcmlhdGUgc3RhY2sKKyAgICAgICAgICBzaXplIHJlcXVpcmVtZW50
cywgYW5kIGludm9raW5nIHRoZSB1bmRlcmx5aW5nIFdURjo6U3RhY2tCb3VuZHMgdG8KKyAgICAg
ICAgICB0byB0aGUgcmVhbCBib3VuZHMgY2hlY2suCisgICAgICAgIC0gVk1TdGFja0JvdW5kcyB3
aWxsIG5vdyBiZSB1c2VkIHVuaXZlcnNhbGx5IHRocm91Z2hvdXQgSlNDIGluc3RlYWQgb2YKKyAg
ICAgICAgICBXVEY6OlN0YWNrQm91bmRzLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVH
ZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVH
ZW5lcmF0b3IpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oOgor
ICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SW50
ZXJwcmV0ZXI6OmV4ZWN1dGUpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZUNh
bGwpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdCk6CisgICAg
ICAgIChKU0M6OkludGVycHJldGVyOjpwcmVwYXJlRm9yUmVwZWF0Q2FsbCk6CisgICAgICAgICog
aW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaDoKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6Omlz
SW5FcnJvckhhbmRsaW5nTW9kZSk6CisgICAgICAgICogcGFyc2VyL1BhcnNlci5jcHA6CisgICAg
ICAgIChKU0M6Ojo6UGFyc2VyKToKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmg6CisgICAgICAg
ICogcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVja2VyLmg6CisgICAgICAgIChKU0M6OlN0cmlu
Z1JlY3Vyc2lvbkNoZWNrZXI6OnBlcmZvcm1DaGVjayk6CisgICAgICAgICogcnVudGltZS9WTVN0
YWNrQm91bmRzLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpWTVN0YWNrQm91bmRzOjpWTVN0YWNr
Qm91bmRzKToKKyAgICAgICAgKEpTQzo6Vk1TdGFja0JvdW5kczo6aXNTYWZlVG9SZWN1cnNlKToK
KyAgICAgICAgKEpTQzo6Vk1TdGFja0JvdW5kczo6cmVxdWlyZWRDYXBhY2l0eSk6CisKIDIwMTMt
MDYtMjAgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIENoYW5nZSBz
dGFjayBjYXBhY2l0eSByZXF1aXJlbWVudCB0byBiZSBtb3JlIHJlYXNvbmFibGUuCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTUxODI1KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdv
cmtpbmcgY29weSkKQEAgLTg3MSw2ICs4NzEsNyBAQAogCQlGRTIwQ0U5RTE1RjA0QTk1MDBERjM0
MzAgLyogTExJbnRDTG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkUyMENFOUMxNUYwNEE5NTAwREYzNDMwIC8qIExMSW50Q0xvb3AuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRTRBMzMxRjE1QkQy
RTA3MDA2RjU0RjMgLyogVk1JbnNwZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkU0QTMzMUQxNUJEMkUwNzAwNkY1NEYzIC8qIFZNSW5zcGVj
dG9yLmNwcCAqLzsgfTsKIAkJRkU0QTMzMjAxNUJEMkUwNzAwNkY1NEYzIC8qIFZNSW5zcGVjdG9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTRBMzMx
RTE1QkQyRTA3MDA2RjU0RjMgLyogVk1JbnNwZWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGRTY2MTcyODE3NzRFMDM1MDA0OTVCMDAgLyog
Vk1TdGFja0JvdW5kcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRkU2NjE3MjcxNzc0RTAzNTAwNDk1QjAwIC8qIFZNU3RhY2tCb3VuZHMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRUQyODdCMjE1RUM5
QTU3MDBEQTgxNjEgLyogTExJbnRPcGNvZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZFRDI4N0IxMTVFQzlBNTcwMERBODE2MSAvKiBMTEludE9wY29k
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZF
RDk0RjJFMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQ5NEYyQjE3MUUzRTIzMDBCRTc3QTQgLyog
V2F0Y2hkb2cuY3BwICovOyB9OwogCQlGRUQ5NEYyRjE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hk
b2cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRDk0
RjJDMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xODE3LDYgKzE4MTgsNyBAQAogCQlGRTIwQ0U5
QzE1RjA0QTk1MDBERjM0MzAgLyogTExJbnRDTG9vcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBMTEludENMb29wLmg7IHBhdGggPSBsbGludC9MTEludENMb29wLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFNEEzMzFEMTVCRDJFMDcwMDZGNTRGMyAvKiBWTUlu
c3BlY3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWTUluc3Bl
Y3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFNEEzMzFFMTVCRDJFMDcw
MDZGNTRGMyAvKiBWTUluc3BlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBWTUluc3BlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRTY2MTcyNzE3
NzRFMDM1MDA0OTVCMDAgLyogVk1TdGFja0JvdW5kcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBWTVN0YWNrQm91bmRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUZFRDI4N0IxMTVFQzlBNTcwMERBODE2MSAvKiBMTEludE9wY29kZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBMTEludE9wY29kZS5oOyBwYXRoID0gbGxpbnQvTExJbnRPcGNv
ZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVEOTRGMkIxNzFFM0UyMzAwQkU3
N0E0IC8qIFdhdGNoZG9nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdhdGNoZG9nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVEOTRGMkMxNzFF
M0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdhdGNoZG9nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjE4LDYgKzI2
MjAsNyBAQAogCQkJCTVENTM3MjZFMEUxQzU0ODgwMDIxRTU0OSAvKiBUcmFjaW5nLmggKi8sCiAJ
CQkJMEZFQjNFQ0IxNjIzN0Y0NzAwQUI2N0FEIC8qIFR5cGVkQXJyYXlEZXNjcmlwdG9yLmggKi8s
CiAJCQkJODY2NzM5RDExM0JGREU3MTAwMjNEODdDIC8qIFVpbnQxNldpdGhGcmFjdGlvbi5oICov
LAorCQkJCUZFNjYxNzI3MTc3NEUwMzUwMDQ5NUIwMCAvKiBWTVN0YWNrQm91bmRzLmggKi8sCiAJ
CQkJRkVEOTRGMkIxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNwcCAqLywKIAkJCQlGRUQ5
NEYyQzE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuaCAqLywKIAkJCQlGRUQ5NEYyRDE3MUUz
RTIzMDBCRTc3QTQgLyogV2F0Y2hkb2dNYWMuY3BwICovLApAQCAtMjk5NCw2ICsyOTk3LDcgQEAK
IAkJCQlCQzE4QzNFNzBFMTZGNUNEMDBCMzQ0NjAgLyogQXJyYXlQcm90b3R5cGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUMyREY0NDMwMTcwN0FDMDEwMEE1Q0E5NiAvKiBTdXBlclJlZ2lvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQzIwQjI1OTkxNzA2NTM2MjAwQzIxRjRFIC8qIFJlZ2lvbi5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRkU2NjE3MjgxNzc0RTAzNTAwNDk1QjAwIC8qIFZNU3RhY2tCb3Vu
ZHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyODMxOTAwMTZGRTRCN0QwMDE1N0JGRCAvKiBIYW5k
bGVCbG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MUQwRTE2RjVDRDAwQjM0NDYwIC8q
IEpTQ2xhc3NSZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RTNDNjFEMTY3QkFCRUUwMDZENzYw
QSAvKiBKU1ZpcnR1YWxNYWNoaW5lSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5jcHAJKHJldmlzaW9uIDE1MTgyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzks
NyArMTc5LDcgQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJgogI2lm
bmRlZiBOREVCVUcKICAgICAsIG1fbGFzdE9wY29kZVBvc2l0aW9uKDApCiAjZW5kaWYKLSAgICAs
IG1fc3RhY2sod3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkpCisgICAgLCBtX3N0YWNrKHZtLCB3dGZU
aHJlYWREYXRhKCkuc3RhY2soKSkKICAgICAsIG1fdXNlc0V4Y2VwdGlvbnMoZmFsc2UpCiAgICAg
LCBtX2V4cHJlc3Npb25Ub29EZWVwKGZhbHNlKQogewpAQCAtMjI4LDcgKzIyOCw3IEBAIEJ5dGVj
b2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihWTSYKICNpZm5kZWYgTkRFQlVHCiAgICAg
LCBtX2xhc3RPcGNvZGVQb3NpdGlvbigwKQogI2VuZGlmCi0gICAgLCBtX3N0YWNrKHd0ZlRocmVh
ZERhdGEoKS5zdGFjaygpKQorICAgICwgbV9zdGFjayh2bSwgd3RmVGhyZWFkRGF0YSgpLnN0YWNr
KCkpCiAgICAgLCBtX3VzZXNFeGNlcHRpb25zKGZhbHNlKQogICAgICwgbV9leHByZXNzaW9uVG9v
RGVlcChmYWxzZSkKIHsKQEAgLTQyNSw3ICs0MjUsNyBAQCBCeXRlY29kZUdlbmVyYXRvcjo6Qnl0
ZWNvZGVHZW5lcmF0b3IoVk0mCiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9sYXN0T3Bjb2RlUG9z
aXRpb24oMCkKICNlbmRpZgotICAgICwgbV9zdGFjayh3dGZUaHJlYWREYXRhKCkuc3RhY2soKSkK
KyAgICAsIG1fc3RhY2sodm0sIHd0ZlRocmVhZERhdGEoKS5zdGFjaygpKQogICAgICwgbV91c2Vz
RXhjZXB0aW9ucyhmYWxzZSkKICAgICAsIG1fZXhwcmVzc2lvblRvb0RlZXAoZmFsc2UpCiB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9y
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5oCShyZXZpc2lvbiAxNTE4MjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0
LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJOb2Rlcy5oIgogI2luY2x1ZGUgIlN0YXRpY1Byb3BlcnR5
QW5hbHl6ZXIuaCIKICNpbmNsdWRlICJVbmxpbmtlZENvZGVCbG9jay5oIgorI2luY2x1ZGUgIlZN
U3RhY2tCb3VuZHMuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9TZWdtZW50ZWRWZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC04MjUsNyAr
ODI2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHNpemVfdCBtX2xhc3RPcGNvZGVQb3Np
dGlvbjsKICNlbmRpZgogCi0gICAgICAgIFN0YWNrQm91bmRzIG1fc3RhY2s7CisgICAgICAgIFZN
U3RhY2tCb3VuZHMgbV9zdGFjazsKIAogICAgICAgICBib29sIG1fdXNlc0V4Y2VwdGlvbnM7CiAg
ICAgICAgIGJvb2wgbV9leHByZXNzaW9uVG9vRGVlcDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAkocmV2aXNpb24gMTUxODI1
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjQsNiArNjQsNyBAQAogI2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5o
IgogI2luY2x1ZGUgIlN0cmljdEV2YWxBY3RpdmF0aW9uLmgiCiAjaW5jbHVkZSAiU3Ryb25nSW5s
aW5lcy5oIgorI2luY2x1ZGUgIlZNU3RhY2tCb3VuZHMuaCIKICNpbmNsdWRlIDxsaW1pdHMuaD4K
ICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHd0Zi9TdGFja1N0YXRzLmg+CkBAIC05OCw0
NSArOTksNiBAQCBJbnRlcnByZXRlcjo6RXJyb3JIYW5kbGluZ01vZGU6On5FcnJvckhhCiAgICAg
ICAgIG1faW50ZXJwcmV0ZXIuc3RhY2soKS5kaXNhYmxlRXJyb3JTdGFja1Jlc2VydmUoKTsKIH0K
IAotCi0vLyBUaGUgSW50ZXJwcmV0ZXI6OlN0YWNrUG9saWN5IGNsYXNzIGlzIHVzZWQgdG8gY29t
cHV0ZSBhIHN0YWNrIGNhcGFjaXR5Ci0vLyByZXF1aXJlbWVudCB0byBlbnN1cmUgdGhhdCB3ZSBo
YXZlIGVub3VnaCByb29tIG9uIHRoZSBuYXRpdmUgc3RhY2sgZm9yOgotLy8gMS4gdGhlIG1heCBj
dW11bGF0aXZlIHN0YWNrIHVzZWQgYnkgdGhlIGludGVycHJldGVyIGFuZCBhbGwgY29kZQotLy8g
ICAgcGF0aHMgc3ViIG9mIGl0IHVwIHRpbGwgbGVhZiBmdW5jdGlvbnMuCi0vLyAyLiB0aGUgbWF4
IGN1bXVsYXRpdmUgc3RhY2sgdXNlZCBieSB0aGUgaW50ZXJwcmV0ZXIgYmVmb3JlIGl0IHJlYWNo
ZXMKLS8vICAgIHRoZSBuZXh0IGNoZWNrcG9pbnQgKGV4ZWN1dGUuLi4oKSBmdW5jdGlvbikgaW4g
dGhlIGludGVycHJldGVyLgotLy8gCi0vLyBUaGUgaW50ZXJwcmV0ZXIgY2FuIGJlIHJ1biBvbiBk
aWZmZXJlbnQgdGhyZWFkcyBhbmQgaGVuY2UsIGRpZmZlcmVudAotLy8gbmF0aXZlIHN0YWNrcyAo
d2l0aCBkaWZmZXJlbnQgc2l6ZXMpIGJlZm9yZSBleGl0aW5nIG91dCBvZiB0aGUgZmlyc3QKLS8v
IGZyYW1lLiBIZW5jZSwgdGhlIHJlcXVpcmVkIGNhcGFjaXR5IG5lZWRzIHRvIGJlIHJlLWNvbXB1
dGVkIG9uIGV2ZXJ5Ci0vLyBlbnRyeSBpbnRvIHRoZSBpbnRlcnByZXRlci4KLS8vCi0vLyBDdXJy
ZW50bHkgdGhlIHJlcXVpcmVkU3RhY2sgaXMgY29tcHV0ZWQgYmFzZWQgb24gYSBwb2xpY3kuIFNl
ZSBjb21tZW50cwotLy8gaW4gU3RhY2tQb2xpY3k6OlN0YWNrUG9saWN5KCkgZm9yIGRldGFpbHMu
Ci0KLUludGVycHJldGVyOjpTdGFja1BvbGljeTo6U3RhY2tQb2xpY3koSW50ZXJwcmV0ZXImIGlu
dGVycHJldGVyLCBjb25zdCBTdGFja0JvdW5kcyYgc3RhY2spCi0gICAgOiBtX2ludGVycHJldGVy
KGludGVycHJldGVyKQotewotICAgIGNvbnN0IHNpemVfdCBzaXplID0gc3RhY2suc2l6ZSgpOwot
Ci0gICAgLy8gV2UgaGF2ZSB0d28gc2VwYXJhdGUgc3RhY2sgbGltaXRzLCBvbmUgZm9yIHJlZ3Vs
YXIgSlMgZXhlY3V0aW9uLCBhbmQgb25lCi0gICAgLy8gZm9yIHdoZW4gd2UncmUgaGFuZGxpbmcg
ZXJyb3JzLiBXZSBuZWVkIHRoZSBlcnJvciBzdGFjayB0byBiZSBzbWFsbGVyCi0gICAgLy8gb3Ro
ZXJ3aXNlIHRoZXJlIHdvdWxkIG9idmlvdXNseSBub3QgYmUgYW55IHN0YWNrIGxlZnQgdG8gZXhl
Y3V0ZSBKUyBpbiB3aGVuCi0gICAgLy8gdGhlcmUncyBhIHN0YWNrIG92ZXJmbG93LgotICAgIC8v
Ci0gICAgLy8gVGhlc2Ugc2l6ZXMgd2VyZSBkZXJpdmVkIGZyb20gdGhlIHN0YWNrIHVzYWdlIG9m
IGEgbnVtYmVyIG9mIHNpdGVzIHdoZW4KLSAgICAvLyBsYXlvdXQgb2NjdXJzIHdoZW4gd2UndmUg
YWxyZWFkeSBjb25zdW1lZCBtb3N0IG9mIHRoZSBDIHN0YWNrLgotICAgIGNvbnN0IHNpemVfdCBy
ZXF1aXJlZFN0YWNrID0gMzIgKiBLQjsKLSAgICBjb25zdCBzaXplX3QgZXJyb3JNb2RlUmVxdWly
ZWRTdGFjayA9IDE2ICogS0I7Ci0KLSAgICBzaXplX3QgcmVxdWlyZWRDYXBhY2l0eSA9IG1faW50
ZXJwcmV0ZXIubV9lcnJvckhhbmRsaW5nTW9kZVJlZW50cnkgPyBlcnJvck1vZGVSZXF1aXJlZFN0
YWNrIDogcmVxdWlyZWRTdGFjazsKLQotICAgIFJFTEVBU0VfQVNTRVJUKHNpemUgPj0gcmVxdWly
ZWRDYXBhY2l0eSk7Ci0gICAgCi0gICAgbV9yZXF1aXJlZENhcGFjaXR5ID0gcmVxdWlyZWRDYXBh
Y2l0eTsgICAgCi19Ci0KLQogc3RhdGljIENhbGxGcmFtZSogZ2V0Q2FsbGVySW5mbyhWTSosIENh
bGxGcmFtZSosIHVuc2lnbmVkJiBieXRlY29kZU9mZnNldCwgQ29kZUJsb2NrKiYgY2FsbGVyT3V0
KTsKIAogLy8gUmV0dXJucyB0aGUgZGVwdGggb2YgdGhlIHNjb3BlIGNoYWluIHdpdGhpbiBhIGdp
dmVuIGNhbGwgZnJhbWUuCkBAIC04MjksOSArNzkxLDggQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6
ZXhlY3V0ZShQcm9ncmFtRXhlYwogICAgICAgICByZXR1cm4ganNOdWxsKCk7CiAKICAgICBTdGFj
a1N0YXRzOjpDaGVja1BvaW50IHN0YWNrQ2hlY2tQb2ludDsKLSAgICBjb25zdCBTdGFja0JvdW5k
cyYgbmF0aXZlU3RhY2sgPSB3dGZUaHJlYWREYXRhKCkuc3RhY2soKTsKLSAgICBTdGFja1BvbGlj
eSBwb2xpY3koKnRoaXMsIG5hdGl2ZVN0YWNrKTsKLSAgICBpZiAoIW5hdGl2ZVN0YWNrLmlzU2Fm
ZVRvUmVjdXJzZShwb2xpY3kucmVxdWlyZWRDYXBhY2l0eSgpKSkKKyAgICBjb25zdCBWTVN0YWNr
Qm91bmRzIG5hdGl2ZVN0YWNrKHZtLCB3dGZUaHJlYWREYXRhKCkuc3RhY2soKSk7CisgICAgaWYg
KCFuYXRpdmVTdGFjay5pc1NhZmVUb1JlY3Vyc2UoKSkKICAgICAgICAgcmV0dXJuIGNoZWNrZWRS
ZXR1cm4odGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7CiAKICAgICAvLyBGaXJz
dCBjaGVjayBpZiB0aGUgInByb2dyYW0iIGlzIGFjdHVhbGx5IGp1c3QgYSBKU09OIG9iamVjdC4g
SWYgc28sCkBAIC05OTUsOSArOTU2LDggQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNh
bGwoQ2FsbEZyYQogICAgICAgICByZXR1cm4ganNOdWxsKCk7CiAKICAgICBTdGFja1N0YXRzOjpD
aGVja1BvaW50IHN0YWNrQ2hlY2tQb2ludDsKLSAgICBjb25zdCBTdGFja0JvdW5kcyYgbmF0aXZl
U3RhY2sgPSB3dGZUaHJlYWREYXRhKCkuc3RhY2soKTsKLSAgICBTdGFja1BvbGljeSBwb2xpY3ko
KnRoaXMsIG5hdGl2ZVN0YWNrKTsKLSAgICBpZiAoIW5hdGl2ZVN0YWNrLmlzU2FmZVRvUmVjdXJz
ZShwb2xpY3kucmVxdWlyZWRDYXBhY2l0eSgpKSkKKyAgICBjb25zdCBWTVN0YWNrQm91bmRzIG5h
dGl2ZVN0YWNrKHZtLCB3dGZUaHJlYWREYXRhKCkuc3RhY2soKSk7CisgICAgaWYgKCFuYXRpdmVT
dGFjay5pc1NhZmVUb1JlY3Vyc2UoKSkKICAgICAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4odGhy
b3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7CiAKICAgICBib29sIGlzSlNDYWxsID0g
KGNhbGxUeXBlID09IENhbGxUeXBlSlMpOwpAQCAtMTA3Myw5ICsxMDMzLDggQEAgSlNPYmplY3Qq
IEludGVycHJldGVyOjpleGVjdXRlQ29uc3RydWN0KAogICAgICAgICByZXR1cm4gY2hlY2tlZFJl
dHVybih0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKIAogICAgIFN0YWNrU3Rh
dHM6OkNoZWNrUG9pbnQgc3RhY2tDaGVja1BvaW50OwotICAgIGNvbnN0IFN0YWNrQm91bmRzJiBu
YXRpdmVTdGFjayA9IHd0ZlRocmVhZERhdGEoKS5zdGFjaygpOwotICAgIFN0YWNrUG9saWN5IHBv
bGljeSgqdGhpcywgbmF0aXZlU3RhY2spOwotICAgIGlmICghbmF0aXZlU3RhY2suaXNTYWZlVG9S
ZWN1cnNlKHBvbGljeS5yZXF1aXJlZENhcGFjaXR5KCkpKQorICAgIGNvbnN0IFZNU3RhY2tCb3Vu
ZHMgbmF0aXZlU3RhY2sodm0sIHd0ZlRocmVhZERhdGEoKS5zdGFjaygpKTsKKyAgICBpZiAoIW5h
dGl2ZVN0YWNrLmlzU2FmZVRvUmVjdXJzZSgpKQogICAgICAgICByZXR1cm4gY2hlY2tlZFJldHVy
bih0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKIAogICAgIGJvb2wgaXNKU0Nv
bnN0cnVjdCA9IChjb25zdHJ1Y3RUeXBlID09IENvbnN0cnVjdFR5cGVKUyk7CkBAIC0xMTU0LDkg
KzExMTMsOCBAQCBDYWxsRnJhbWVDbG9zdXJlIEludGVycHJldGVyOjpwcmVwYXJlRm9yCiAgICAg
ICAgIHJldHVybiBDYWxsRnJhbWVDbG9zdXJlKCk7CiAKICAgICBTdGFja1N0YXRzOjpDaGVja1Bv
aW50IHN0YWNrQ2hlY2tQb2ludDsKLSAgICBjb25zdCBTdGFja0JvdW5kcyYgbmF0aXZlU3RhY2sg
PSB3dGZUaHJlYWREYXRhKCkuc3RhY2soKTsKLSAgICBTdGFja1BvbGljeSBwb2xpY3koKnRoaXMs
IG5hdGl2ZVN0YWNrKTsKLSAgICBpZiAoIW5hdGl2ZVN0YWNrLmlzU2FmZVRvUmVjdXJzZShwb2xp
Y3kucmVxdWlyZWRDYXBhY2l0eSgpKSkgeworICAgIGNvbnN0IFZNU3RhY2tCb3VuZHMgbmF0aXZl
U3RhY2sodm0sIHd0ZlRocmVhZERhdGEoKS5zdGFjaygpKTsKKyAgICBpZiAoIW5hdGl2ZVN0YWNr
LmlzU2FmZVRvUmVjdXJzZSgpKSB7CiAgICAgICAgIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNh
bGxGcmFtZSk7CiAgICAgICAgIHJldHVybiBDYWxsRnJhbWVDbG9zdXJlKCk7CiAgICAgfQpAQCAt
MTI1Nyw5ICsxMjE1LDggQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShFdmFsRXhlY3V0
YQogICAgIER5bmFtaWNHbG9iYWxPYmplY3RTY29wZSBnbG9iYWxPYmplY3RTY29wZSh2bSwgc2Nv
cGUtPmdsb2JhbE9iamVjdCgpKTsKIAogICAgIFN0YWNrU3RhdHM6OkNoZWNrUG9pbnQgc3RhY2tD
aGVja1BvaW50OwotICAgIGNvbnN0IFN0YWNrQm91bmRzJiBuYXRpdmVTdGFjayA9IHd0ZlRocmVh
ZERhdGEoKS5zdGFjaygpOwotICAgIFN0YWNrUG9saWN5IHBvbGljeSgqdGhpcywgbmF0aXZlU3Rh
Y2spOwotICAgIGlmICghbmF0aXZlU3RhY2suaXNTYWZlVG9SZWN1cnNlKHBvbGljeS5yZXF1aXJl
ZENhcGFjaXR5KCkpKQorICAgIGNvbnN0IFZNU3RhY2tCb3VuZHMgbmF0aXZlU3RhY2sodm0sIHd0
ZlRocmVhZERhdGEoKS5zdGFjaygpKTsKKyAgICBpZiAoIW5hdGl2ZVN0YWNrLmlzU2FmZVRvUmVj
dXJzZSgpKQogICAgICAgICByZXR1cm4gY2hlY2tlZFJldHVybih0aHJvd1N0YWNrT3ZlcmZsb3dF
cnJvcihjYWxsRnJhbWUpKTsKIAogICAgIC8vIENvbXBpbGUgdGhlIGNhbGxlZToKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oCShyZXZp
c2lvbiAxNTE4MjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJw
cmV0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjE2LDYgKzIxNiw4IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICAKICAgICAgICAgU2FtcGxpbmdUb29sKiBzYW1wbGVyKCkgeyByZXR1cm4gbV9z
YW1wbGVyLmdldCgpOyB9CiAKKyAgICAgICAgYm9vbCBpc0luRXJyb3JIYW5kbGluZ01vZGUoKSB7
IHJldHVybiBtX2Vycm9ySGFuZGxpbmdNb2RlUmVlbnRyeTsgfQorCiAgICAgICAgIE5FVkVSX0lO
TElORSBIYW5kbGVySW5mbyogdGhyb3dFeGNlcHRpb24oQ2FsbEZyYW1lKiYsIEpTVmFsdWUmLCB1
bnNpZ25lZCBieXRlY29kZU9mZnNldCk7CiAgICAgICAgIE5FVkVSX0lOTElORSB2b2lkIGRlYnVn
KENhbGxGcmFtZSosIERlYnVnSG9va0lELCBpbnQgZmlyc3RMaW5lLCBpbnQgbGFzdExpbmUsIGlu
dCBjb2x1bW4pOwogICAgICAgICBzdGF0aWMgY29uc3QgU3RyaW5nIGdldFRyYWNlTGluZShDYWxs
RnJhbWUqLCBTdGFja0ZyYW1lQ29kZVR5cGUsIGNvbnN0IFN0cmluZyYsIGludCk7CkBAIC0yMjks
MTYgKzIzMSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSB2
b2lkIGR1bXBDYWxsRnJhbWUoQ2FsbEZyYW1lKik7CiAKICAgICBwcml2YXRlOgotICAgICAgICBj
bGFzcyBTdGFja1BvbGljeSB7Ci0gICAgICAgIHB1YmxpYzoKLSAgICAgICAgICAgIFN0YWNrUG9s
aWN5KEludGVycHJldGVyJiwgY29uc3QgU3RhY2tCb3VuZHMmKTsKLSAgICAgICAgICAgIGlubGlu
ZSBzaXplX3QgcmVxdWlyZWRDYXBhY2l0eSgpIHsgcmV0dXJuIG1fcmVxdWlyZWRDYXBhY2l0eTsg
fQotCi0gICAgICAgIHByaXZhdGU6Ci0gICAgICAgICAgICBJbnRlcnByZXRlciYgbV9pbnRlcnBy
ZXRlcjsKLSAgICAgICAgICAgIHNpemVfdCBtX3JlcXVpcmVkQ2FwYWNpdHk7Ci0gICAgICAgIH07
Ci0KICAgICAgICAgZW51bSBFeGVjdXRpb25GbGFnIHsgTm9ybWFsLCBJbml0aWFsaXplQW5kUmV0
dXJuIH07CiAKICAgICAgICAgQ2FsbEZyYW1lQ2xvc3VyZSBwcmVwYXJlRm9yUmVwZWF0Q2FsbChG
dW5jdGlvbkV4ZWN1dGFibGUqLCBDYWxsRnJhbWUqLCBKU0Z1bmN0aW9uKiwgaW50IGFyZ3VtZW50
Q291bnRJbmNsdWRpbmdUaGlzLCBKU1Njb3BlKik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1BhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXIuY3BwCShyZXZpc2lvbiAxNTE4MjUpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1BhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2LDcgKzY2LDcgQEAg
dGVtcGxhdGUgPHR5cGVuYW1lIExleGVyVHlwZT4KIFBhcnNlcjxMZXhlclR5cGU+OjpQYXJzZXIo
Vk0qIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEZ1bmN0aW9uUGFyYW1ldGVycyogcGFy
YW1ldGVycywgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgSlNQYXJzZXJTdHJpY3RuZXNzIHN0cmlj
dG5lc3MsIEpTUGFyc2VyTW9kZSBwYXJzZXJNb2RlKQogICAgIDogbV92bSh2bSkKICAgICAsIG1f
c291cmNlKCZzb3VyY2UpCi0gICAgLCBtX3N0YWNrKHd0ZlRocmVhZERhdGEoKS5zdGFjaygpKQor
ICAgICwgbV9zdGFjaygqdm0sIHd0ZlRocmVhZERhdGEoKS5zdGFjaygpKQogICAgICwgbV9oYXNT
dGFja092ZXJmbG93KGZhbHNlKQogICAgICwgbV9hbGxvd3NJbih0cnVlKQogICAgICwgbV9sYXN0
TGluZSgwKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oCShyZXZpc2lv
biAxNTE4MjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiU291cmNlUHJvdmlkZXIuaCIK
ICNpbmNsdWRlICJTb3VyY2VQcm92aWRlckNhY2hlLmgiCiAjaW5jbHVkZSAiU291cmNlUHJvdmlk
ZXJDYWNoZUl0ZW0uaCIKKyNpbmNsdWRlICJWTVN0YWNrQm91bmRzLmgiCiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYv
T3duUHRyLmg+CkBAIC05MzgsNyArOTM5LDcgQEAgcHJpdmF0ZToKICAgICBQYXJzZXJBcmVuYSog
bV9hcmVuYTsKICAgICBPd25QdHI8TGV4ZXJUeXBlPiBtX2xleGVyOwogICAgIAotICAgIFN0YWNr
Qm91bmRzIG1fc3RhY2s7CisgICAgVk1TdGFja0JvdW5kcyBtX3N0YWNrOwogICAgIGJvb2wgbV9o
YXNTdGFja092ZXJmbG93OwogICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKICAgICBKU1Rva2Vu
IG1fdG9rZW47CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdSZWN1
cnNpb25DaGVja2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5oCShyZXZpc2lvbiAxNTE4MjUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVja2VyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNkZWZpbmUgU3RyaW5nUmVjdXJzaW9uQ2hlY2tlcl9o
CiAKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIlZNU3RhY2tCb3VuZHMuaCIK
ICNpbmNsdWRlIDx3dGYvU3RhY2tTdGF0cy5oPgogI2luY2x1ZGUgPHd0Zi9XVEZUaHJlYWREYXRh
Lmg+CiAKQEAgLTQ5LDEwICs1MCwxMSBAQCBwcml2YXRlOgogCiBpbmxpbmUgSlNWYWx1ZSBTdHJp
bmdSZWN1cnNpb25DaGVja2VyOjpwZXJmb3JtQ2hlY2soKQogewotICAgIGNvbnN0IFN0YWNrQm91
bmRzJiBuYXRpdmVTdGFjayA9IHd0ZlRocmVhZERhdGEoKS5zdGFjaygpOworICAgIFZNJiB2bSA9
IG1fZXhlYy0+dm0oKTsKKyAgICBjb25zdCBWTVN0YWNrQm91bmRzIG5hdGl2ZVN0YWNrKHZtLCB3
dGZUaHJlYWREYXRhKCkuc3RhY2soKSk7CiAgICAgaWYgKCFuYXRpdmVTdGFjay5pc1NhZmVUb1Jl
Y3Vyc2UoKSkKICAgICAgICAgcmV0dXJuIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKCk7Ci0gICAg
Ym9vbCBhbHJlYWR5VmlzaXRlZCA9ICFtX2V4ZWMtPnZtKCkuc3RyaW5nUmVjdXJzaW9uQ2hlY2tW
aXNpdGVkT2JqZWN0cy5hZGQobV90aGlzT2JqZWN0KS5pc05ld0VudHJ5OworICAgIGJvb2wgYWxy
ZWFkeVZpc2l0ZWQgPSAhdm0uc3RyaW5nUmVjdXJzaW9uQ2hlY2tWaXNpdGVkT2JqZWN0cy5hZGQo
bV90aGlzT2JqZWN0KS5pc05ld0VudHJ5OwogICAgIGlmIChhbHJlYWR5VmlzaXRlZCkKICAgICAg
ICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IC8vIFJldHVybiBlbXB0eSBzdHJpbmcgdG8gYXZvaWQg
aW5maW5pdGUgcmVjdXJzaW9uLgogICAgIHJldHVybiBKU1ZhbHVlKCk7IC8vIEluZGljYXRlIHN1
Y2Nlc3MuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVN0YWNrQm91bmRz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1TdGFja0Jv
dW5kcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1T
dGFja0JvdW5kcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBWTVN0YWNrQm91bmRz
X2gKKyNkZWZpbmUgVk1TdGFja0JvdW5kc19oCisKKyNpbmNsdWRlICJWTS5oIgorI2luY2x1ZGUg
PHd0Zi9TdGFja0JvdW5kcy5oPgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgVk1TdGFja0Jv
dW5kcyB7CitwdWJsaWM6CisgICAgVk1TdGFja0JvdW5kcyhWTSYgdm0sIGNvbnN0IFN0YWNrQm91
bmRzJiBib3VuZHMpCisgICAgICAgIDogbV92bSh2bSkKKyAgICAgICAgLCBtX2JvdW5kcyhib3Vu
ZHMpCisgICAgeworICAgIH0KKworICAgIGJvb2wgaXNTYWZlVG9SZWN1cnNlKCkgY29uc3QgeyBy
ZXR1cm4gbV9ib3VuZHMuaXNTYWZlVG9SZWN1cnNlKHJlcXVpcmVkQ2FwYWNpdHkoKSk7IH0KKwor
cHJpdmF0ZToKKyAgICBpbmxpbmUgc2l6ZV90IHJlcXVpcmVkQ2FwYWNpdHkoKSBjb25zdAorICAg
IHsKKyAgICAgICAgSW50ZXJwcmV0ZXIqIGludGVycHJldGVyID0gbV92bS5pbnRlcnByZXRlcjsK
KworICAgICAgICAvLyBXZSBoYXZlIHR3byBzZXBhcmF0ZSBzdGFjayBsaW1pdHMsIG9uZSBmb3Ig
cmVndWxhciBKUyBleGVjdXRpb24sIGFuZCBvbmUKKyAgICAgICAgLy8gZm9yIHdoZW4gd2UncmUg
aGFuZGxpbmcgZXJyb3JzLiBXZSBuZWVkIHRoZSBlcnJvciBzdGFjayB0byBiZSBzbWFsbGVyCisg
ICAgICAgIC8vIG90aGVyd2lzZSB0aGVyZSB3b3VsZCBvYnZpb3VzbHkgbm90IGJlIGFueSBzdGFj
ayBsZWZ0IHRvIGV4ZWN1dGUgSlMgaW4gd2hlbgorICAgICAgICAvLyB0aGVyZSdzIGEgc3RhY2sg
b3ZlcmZsb3cuCisgICAgICAgIC8vCisgICAgICAgIC8vIFRoZXNlIHNpemVzIHdlcmUgZGVyaXZl
ZCBmcm9tIHRoZSBzdGFjayB1c2FnZSBvZiBhIG51bWJlciBvZiBzaXRlcyB3aGVuCisgICAgICAg
IC8vIGxheW91dCBvY2N1cnMgd2hlbiB3ZSd2ZSBhbHJlYWR5IGNvbnN1bWVkIG1vc3Qgb2YgdGhl
IEMgc3RhY2suCisgICAgICAgIGNvbnN0IHNpemVfdCByZXF1aXJlZFN0YWNrID0gMzIgKiBLQjsK
KyAgICAgICAgY29uc3Qgc2l6ZV90IGVycm9yTW9kZVJlcXVpcmVkU3RhY2sgPSAxNiAqIEtCOwor
CisgICAgICAgIHNpemVfdCByZXF1aXJlZENhcGFjaXR5ID0gaW50ZXJwcmV0ZXItPmlzSW5FcnJv
ckhhbmRsaW5nTW9kZSgpID8gZXJyb3JNb2RlUmVxdWlyZWRTdGFjayA6IHJlcXVpcmVkU3RhY2s7
CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fYm91bmRzLnNpemUoKSA+PSByZXF1aXJlZENhcGFj
aXR5KTsKKyAgICAgICAgcmV0dXJuIHJlcXVpcmVkQ2FwYWNpdHk7IAorICAgIH0KKworICAgIFZN
JiBtX3ZtOworICAgIGNvbnN0IFN0YWNrQm91bmRzJiBtX2JvdW5kczsKK307CisKK30gLy8gbmFt
ZXNwYWNlIEpTQworCisjZW5kaWYgLy8gVk1TdGFja0JvdW5kc19oCisKSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDE1MTg1MCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDEyIEBACisyMDEzLTA2LTIxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4K
KworICAgICAgICBSZXZlcnRpbmcgZmFpbHVyZSBleHBlY3RhdGlvbiBmb3IgZmFzdC94bWxodHRw
cmVxdWVzdC94bWxodHRwcmVxdWVzdC1yZWN1cnNpdmUtc3luYy1ldmVudC5odG1sLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3ODYyLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTMtMDYtMjAgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hh
bUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbmRvd3NdIEFYOiBSYWRpbyBidXR0b25zIHdpdGgg
InRhYiIgcm9sZSBzaG91bGQgZGVzY3JpYmUgdGhlbXNlbHZlcyBhcyB0YWJzLgpJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDE1MTgyNSkK
KysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzM2LDUgKzEzMzYsMyBAQCB3ZWJraXQub3JnL2IvMTE2Mzg4IGZhc3QvanMvcG9z
dC1tZXNzYWdlCiB3ZWJraXQub3JnL2IvMTE2NTgyIFsgRGVidWcgXSBpbnNwZWN0b3Ivc3R5bGVz
L2ltcG9ydC1wc2V1ZG9jbGFzcy1jcmFzaC5odG1sIFsgUGFzcyBDcmFzaCBdCiAKIHdlYmtpdC5v
cmcvYi8xMTY1OTIgaW5zcGVjdG9yL2dlb2xvY2F0aW9uLWVycm9yLmh0bWwgWyBQYXNzIEZhaWx1
cmUgXQotCi13ZWJraXQub3JnL2IvMTE3ODYyIGZhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJl
cXVlc3QtcmVjdXJzaXZlLXN5bmMtZXZlbnQuaHRtbCBbIEZhaWx1cmUgXQo=
</data>
<flag name="review"
          id="226700"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>