<?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>31933</bug_id>
          
          <creation_ts>2009-11-27 06:14:26 -0800</creation_ts>
          <short_desc>Get rid of JSObject::getPropertyAttributes() and all usage of it</short_desc>
          <delta_ts>2009-12-10 16:06:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>32119</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Hansen">kent.hansen</reporter>
          <assigned_to name="Kent Hansen">kent.hansen</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>ggaren</cc>
    
    <cc>hausmann</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>166887</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2009-11-27 06:14:26 -0800</bug_when>
    <thetext>JSObject::get(Own)PropertyDescriptor() provides the attributes, so getPropertyAttributes() is no longer needed.
JavaScriptCore should be refactored to only use get(Own)PropertyDescriptor().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166890</commentid>
    <comment_count>1</comment_count>
      <attachid>43949</attachid>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2009-11-27 06:21:39 -0800</bug_when>
    <thetext>Created attachment 43949
Proposed patch

Not sure what to do with the JSVariableObject::getPropertyAttributes() implementation. Is it really dead code after the move to getOwnPropertyDescriptor()? The tests that were added in r31225 still pass, but I&apos;m wondering about the change to set the DontDelete attribute (part of r33979, SquirrelFish merge). Should that be done in JSGlobalObject::getOwnPropertyDescriptor() now?

The alternative I see would be to reimplement getOwnPropertyDescriptor() in JSVariableObject, and set the DontDelete attribute on the result (to mimic getPropertyAttributes()). But then, really, JSActivationObject should reimplement getOwnPropertySlot() too, i.e. both those functions (and hasOwnPropertyForWrite()? and put()? and defineGetter()/Setter()?) should be moved from JSGlobalObject to JSVariableObject. JSVariableObject only implementing &quot;half&quot; the API is error-prone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167375</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-11-30 12:46:42 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 43949 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167465</commentid>
    <comment_count>3</comment_count>
      <attachid>43949</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2009-11-30 16:32:09 -0800</bug_when>
    <thetext>Comment on attachment 43949
Proposed patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167546</commentid>
    <comment_count>4</comment_count>
      <attachid>43949</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-01 02:17:14 -0800</bug_when>
    <thetext>Comment on attachment 43949
Proposed patch

Rejecting patch 43949 from commit-queue.

Failed to run &quot;[&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--quiet&apos;, &apos;--exit-after-n-failures=1&apos;]&quot; exit_code: 1
Running build-dumprendertree
Running tests from /Users/eseidel/Projects/CommitQueue/LayoutTests
Testing 11672 test cases.
http/tests/security/cross-frame-access-object-prototype.html -&gt; failed

Exiting early after 1 failures. 8886 tests run.
219.37s total testing time

8885 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
5 test cases (&lt;1%) had stderr output</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167579</commentid>
    <comment_count>5</comment_count>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2009-12-01 06:02:11 -0800</bug_when>
    <thetext>Sorry, I missed a test failure.

In LayoutTests/http/tests/security/cross-frame-access-object-prototype.html,

Object.prototype.propertyIsEnumerable.call(targetFrame, &apos;myProp&apos;)

is expected to return false, and it worked because the getPropertyAttributes() reimplementation in JSDOMWindow started like this:

    // Only allow getting property attributes properties by frames in the same origin.
    if (!allowsAccessFrom(exec))
        return false;

but it seems JSDOMWindow::getOwnPropertyDescriptor() is not as strict. I.e. if you &quot;transform&quot; the test to

Object.getOwnPropertyDescriptor(targetFrame, &apos;myProp&apos;).enumerable

it returns true. This is because JSDOMWindow::getOwnPropertyDescriptor() falls all the way through to calling the base implementation.

I would expect the security restrictions to be the same for both (the soon-to-be-dead-for-real-hopefully) getPropertyAttributes() and getOwnPropertyDescriptor(). Is it a bug in getOwnPropertyDescriptor() or is the test wrong?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167698</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2009-12-01 12:24:24 -0800</bug_when>
    <thetext>I think your instinct is right: it&apos;s a bug in getOwnPropertyDescriptor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168414</commentid>
    <comment_count>7</comment_count>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2009-12-03 08:26:41 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; I think your instinct is right: it&apos;s a bug in getOwnPropertyDescriptor.

All right, I spun it off as https://bugs.webkit.org/show_bug.cgi?id=32119, and
made it block this task.
I&apos;m not a security expert but I can try to dig into what other implementations
are doing, if necessary. I noticed that JSDOMWindow::getOwnPropertyDescriptor()
mentions cross-domain behavior and Firefox, but nothing about cross-frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170202</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-09 14:55:09 -0800</bug_when>
    <thetext>I&apos;m unsure of the status of this patch.  Should we r- it because it breaks a test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170208</commentid>
    <comment_count>9</comment_count>
      <attachid>43949</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2009-12-09 14:56:55 -0800</bug_when>
    <thetext>Comment on attachment 43949
Proposed patch

r- since the patch broke tests. Maybe the blocking bug fixed those tests, though?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170220</commentid>
    <comment_count>10</comment_count>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2009-12-09 15:21:42 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 43949 [details])
&gt; r- since the patch broke tests. Maybe the blocking bug fixed those tests,
&gt; though?

Correct, the blocking bug fixed the http/tests/security/cross-frame-access-object-prototype.html failure, and the patch still applies without modification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170479</commentid>
    <comment_count>11</comment_count>
      <attachid>43949</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2009-12-10 11:48:05 -0800</bug_when>
    <thetext>Comment on attachment 43949
Proposed patch

OK, since bug 32119 is fixed, I&apos;m going to r+ this bug again and see what the commit-queue bot says.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170490</commentid>
    <comment_count>12</comment_count>
      <attachid>43949</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-10 12:39:41 -0800</bug_when>
    <thetext>Comment on attachment 43949
Proposed patch

Queueing for commit per Geoff&apos;s above recommendation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170565</commentid>
    <comment_count>13</comment_count>
      <attachid>43949</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-10 16:06:24 -0800</bug_when>
    <thetext>Comment on attachment 43949
Proposed patch

Clearing flags on attachment: 43949

Committed r51971: &lt;http://trac.webkit.org/changeset/51971&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170566</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-10 16:06:30 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43949</attachid>
            <date>2009-11-27 06:21:39 -0800</date>
            <delta_ts>2009-12-10 16:06:23 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>removeGetPropertyAttributes.diff</filename>
            <type>text/plain</type>
            <size>15691</size>
            <attacher name="Kent Hansen">kent.hansen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBkNWQ1MDZlLi5lNGE2MDJjIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMDktMTEtMjcgIEtlbnQgSGFuc2VuICA8a2VudC5oYW5zZW5Abm9raWEuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBKU09i
amVjdDo6Z2V0UHJvcGVydHlBdHRyaWJ1dGVzKCkgYW5kIGFsbCB1c2FnZSBvZiBpdC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxOTMzCisKKyAgICAg
ICAgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKCkgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZC4KKwor
ICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5v
cmRlcjoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZGVmOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5j
cHA6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKToKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaDoKKyAgICAg
ICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnByb3Bl
cnR5SXNFbnVtZXJhYmxlKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAg
ICogcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTVmFy
aWFibGVPYmplY3QuaDoKKwogMjAwOS0xMS0yNCAgRG1pdHJ5IFRpdG92ICA8ZGltaWNoQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBh
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cCBiL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLmV4cAppbmRleCBiYWY0MTczLi5jOWNjYWJiIDEwMDY0NAotLS0gYS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKKysrIGIvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUuZXhwCkBAIC0zNTQsNyArMzU0LDYgQEAgX19aTkszSlNDMTFJbnRlcnByZXRlcjE4cmV0
cmlldmVMYXN0Q2FsbGVyRVBOU185RXhlY1N0YXRlRVJpUmxSTlNfN1VTdHJpbmdFUk5TXzcKIF9f
Wk5LM0pTQzE0SlNHbG9iYWxPYmplY3QxNGlzRHluYW1pY1Njb3BlRXYKIF9fWk5LM0pTQzE2SW50
ZXJuYWxGdW5jdGlvbjljbGFzc0luZm9FdgogX19aTkszSlNDMTZKU1ZhcmlhYmxlT2JqZWN0MTZp
c1ZhcmlhYmxlT2JqZWN0RXYKLV9fWk5LM0pTQzE2SlNWYXJpYWJsZU9iamVjdDIxZ2V0UHJvcGVy
dHlBdHRyaWJ1dGVzRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJqCiBfX1pOSzNK
U0MxN0RlYnVnZ2VyQ2FsbEZyYW1lMTB0aGlzT2JqZWN0RXYKIF9fWk5LM0pTQzE3RGVidWdnZXJD
YWxsRnJhbWUxMmZ1bmN0aW9uTmFtZUV2CiBfX1pOSzNKU0MxN0RlYnVnZ2VyQ2FsbEZyYW1lMjJj
YWxjdWxhdGVkRnVuY3Rpb25OYW1lRXYKQEAgLTM5Niw3ICszOTUsNiBAQCBfX1pOSzNKU0M4SlNP
YmplY3QxMWhhc1Byb3BlcnR5RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQogX19a
TkszSlNDOEpTT2JqZWN0MTFoYXNQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVqCiBfX1pOSzNKU0M4
SlNPYmplY3QxMmRlZmF1bHRWYWx1ZUVQTlNfOUV4ZWNTdGF0ZUVOU18yMlByZWZlcnJlZFByaW1p
dGl2ZVR5cGVFCiBfX1pOSzNKU0M4SlNPYmplY3QxMnRvVGhpc09iamVjdEVQTlNfOUV4ZWNTdGF0
ZUUKLV9fWk5LM0pTQzhKU09iamVjdDIxZ2V0UHJvcGVydHlBdHRyaWJ1dGVzRVBOU185RXhlY1N0
YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJqCiBfX1pOSzNKU0M4SlNPYmplY3Q4dG9OdW1iZXJFUE5T
XzlFeGVjU3RhdGVFCiBfX1pOSzNKU0M4SlNPYmplY3Q4dG9PYmplY3RFUE5TXzlFeGVjU3RhdGVF
CiBfX1pOSzNKU0M4SlNPYmplY3Q4dG9TdHJpbmdFUE5TXzlFeGVjU3RhdGVFCmRpZmYgLS1naXQg
YS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlciBiL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLm9yZGVyCmluZGV4IDNhZTNlYzYuLmQ2ZjZjYWEgMTAwNjQ0Ci0tLSBhL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVyCisrKyBiL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLm9yZGVyCkBAIC0xNjI1LDcgKzE2MjUsNiBAQCBfX1pOM0pTQzE4RW1wdHlT
dGF0ZW1lbnROb2RlMTJlbWl0Qnl0ZWNvZGVFUk5TXzE3Qnl0ZWNvZGVHZW5lcmF0b3JFUE5TXzEw
UmVnaXN0ZQogX19aTjNKU0NMMjdjb21wYXJlQnlTdHJpbmdQYWlyRm9yUVNvcnRFUEt2UzFfCiBf
X1oyMmpzY19wY3JlX3VjcF9vdGhlcmNhc2VqCiBfX1pOM0pTQ0wzNW9iamVjdFByb3RvRnVuY1By
b3BlcnR5SXNFbnVtZXJhYmxlRVBOU185RXhlY1N0YXRlRVBOU184SlNPYmplY3RFTlNfN0pTVmFs
dWVFUktOU183QXJnTGlzdEUKLV9fWk5LM0pTQzhKU09iamVjdDIxZ2V0UHJvcGVydHlBdHRyaWJ1
dGVzRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJqCiBfX1pOM1dURjdIYXNoTWFw
SWpOM0pTQzdKU1ZhbHVlRU5TXzdJbnRIYXNoSWpFRU5TXzEwSGFzaFRyYWl0c0lqRUVOUzVfSVMy
X0VFRTNzZXRFUktqUktTMl8KIF9fWk4zV1RGOUhhc2hUYWJsZUlqU3Q0cGFpcklqTjNKU0M3SlNW
YWx1ZUVFTlNfMThQYWlyRmlyc3RFeHRyYWN0b3JJUzRfRUVOU183SW50SGFzaElqRUVOU18xNFBh
aXJIYXNoVHJhaXRzSU5TXzEwSGFzaFRyYWl0c0lqRUUKIF9fWk4zSlNDMTJSZWdpc3RlckZpbGUy
MXJlbGVhc2VFeGNlc3NDYXBhY2l0eUV2CkBAIC0xODQxLDcgKzE4NDAsNiBAQCBfX1pOM0pTQzZK
U0NlbGwxNHRvVGhpc0pTU3RyaW5nRVBOU185RXhlY1N0YXRlRQogX19aTkszSlNDNkpTQ2VsbDEy
dG9UaGlzU3RyaW5nRVBOU185RXhlY1N0YXRlRQogX19aTjNKU0NMMjdvYmplY3RQcm90b0Z1bmNM
b29rdXBTZXR0ZXJFUE5TXzlFeGVjU3RhdGVFUE5TXzhKU09iamVjdEVOU183SlNWYWx1ZUVSS05T
XzdBcmdMaXN0RQogX19aTjNKU0M4SlNPYmplY3QxMmxvb2t1cFNldHRlckVQTlNfOUV4ZWNTdGF0
ZUVSS05TXzEwSWRlbnRpZmllckUKLV9fWk5LM0pTQzE2SlNWYXJpYWJsZU9iamVjdDIxZ2V0UHJv
cGVydHlBdHRyaWJ1dGVzRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJqCiBfX1pO
M0pTQzlFeGVjU3RhdGUyMnJlZ0V4cENvbnN0cnVjdG9yVGFibGVFUFMwXwogX19aTjNKU0NMMjRy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjdFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJF
UktOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDTDI0cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4
RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJLTlNfMTJQcm9wZXJ0eVNsb3RFCmRp
ZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUuZGVmIGIvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
dmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgppbmRleCA0MzMyNTMwLi5i
ZGVhOTFhIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ov
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCisrKyBiL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKQEAg
LTE1NSw4ICsxNTUsNiBAQCBFWFBPUlRTCiAgICAgP2dldFByaW1pdGl2ZU51bWJlckBKU0NlbGxA
SlNDQEBVQUVfTlBBVkV4ZWNTdGF0ZUAyQEFBTkFBVkpTVmFsdWVAMkBAWgogICAgID9nZXRQcmlt
aXRpdmVOdW1iZXJASlNPYmplY3RASlNDQEBVQUVfTlBBVkV4ZWNTdGF0ZUAyQEFBTkFBVkpTVmFs
dWVAMkBAWgogICAgID9nZXRQcmltaXRpdmVOdW1iZXJASlNTdHJpbmdASlNDQEBFQUVfTlBBVkV4
ZWNTdGF0ZUAyQEFBTkFBVkpTVmFsdWVAMkBAWgotICAgID9nZXRQcm9wZXJ0eUF0dHJpYnV0ZXNA
SlNPYmplY3RASlNDQEBVQkVfTlBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBBQUlAWgot
ICAgID9nZXRQcm9wZXJ0eUF0dHJpYnV0ZXNASlNWYXJpYWJsZU9iamVjdEBKU0NAQFVCRV9OUEFW
RXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQEFBSUBaCiAgICAgP2dldFByb3BlcnR5RGVzY3Jp
cHRvckBKU09iamVjdEBKU0NAQFFBRV9OUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQEFB
VlByb3BlcnR5RGVzY3JpcHRvckAyQEBaCiAgICAgP2dldFByb3BlcnR5TmFtZXNASlNPYmplY3RA
SlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUFWUHJvcGVydHlOYW1lQXJyYXlAMkBAWgogICAgID9n
ZXRTbGljZUBBcmdMaXN0QEpTQ0BAUUJFWEhBQVYxMkBAWgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlw
dENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcCBiL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKaW5kZXggNWNjOWE5Zi4uZDQ3ZGI1YiAxMDA2
NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAor
KysgYi9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCkBAIC03
Niw5ICs3Niw5IEBAIHZvaWQgRGVidWdnZXJBY3RpdmF0aW9uOjpnZXRPd25Qcm9wZXJ0eU5hbWVz
KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmCiAgICAgbV9hY3RpdmF0aW9uLT5n
ZXRQcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOwogfQogCi1ib29sIERlYnVnZ2Vy
QWN0aXZhdGlvbjo6Z2V0UHJvcGVydHlBdHRyaWJ1dGVzKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIHVuc2lnbmVkJiBhdHRyaWJ1dGVzKSBjb25z
dAorYm9vbCBEZWJ1Z2dlckFjdGl2YXRpb246OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNj
cmlwdG9yJiBkZXNjcmlwdG9yKQogewotICAgIHJldHVybiBtX2FjdGl2YXRpb24tPmdldFByb3Bl
cnR5QXR0cmlidXRlcyhleGVjLCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMpOworICAgIHJldHVy
biBtX2FjdGl2YXRpb24tPmdldE93blByb3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5h
bWUsIGRlc2NyaXB0b3IpOwogfQogCiB2b2lkIERlYnVnZ2VyQWN0aXZhdGlvbjo6ZGVmaW5lR2V0
dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09i
amVjdCogZ2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCmRpZmYgLS1naXQgYS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaCBiL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCmluZGV4IDYzY2Y2MzUuLjM3M2U2MmQg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5o
CisrKyBiL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCkBAIC00
Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0
aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0
ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3Bl
cnR5TmFtZUFycmF5Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRQcm9wZXJ0eUF0dHJpYnV0
ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCB1bnNpZ25lZCYg
YXR0cmlidXRlcykgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRv
ciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGVmaW5lR2V0dGVyKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIGdldHRlckZ1bmN0aW9uLCB1bnNp
Z25lZCBhdHRyaWJ1dGVzKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRlZmluZVNldHRlcihFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBzZXR0ZXJG
dW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcyk7CiAgICAgICAgIHZpcnR1YWwgSlNWYWx1ZSBs
b29rdXBHZXR0ZXIoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsK
ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKaW5kZXggNjkzMmRlZC4uZTE3MjE3ZCAxMDA2
NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTQwNiwyNiArNDA2LDEwIEBAIGJvb2wg
SlNPYmplY3Q6Omhhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgSlNW
YWx1ZSBwcm90bykKIAogYm9vbCBKU09iamVjdDo6cHJvcGVydHlJc0VudW1lcmFibGUoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpIGNvbnN0CiB7Ci0gICAg
dW5zaWduZWQgYXR0cmlidXRlczsKLSAgICBpZiAoIWdldFByb3BlcnR5QXR0cmlidXRlcyhleGVj
LCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMpKQorICAgIFByb3BlcnR5RGVzY3JpcHRvciBkZXNj
cmlwdG9yOworICAgIGlmICghY29uc3RfY2FzdDxKU09iamVjdCo+KHRoaXMpLT5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIHJldHVybiAhKGF0dHJpYnV0ZXMgJiBEb250RW51bSk7Ci19Ci0K
LWJvb2wgSlNPYmplY3Q6OmdldFByb3BlcnR5QXR0cmlidXRlcyhFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgdW5zaWduZWQmIGF0dHJpYnV0ZXMpIGNvbnN0
Ci17Ci0gICAgSlNDZWxsKiBzcGVjaWZpY1ZhbHVlOwotICAgIGlmIChtX3N0cnVjdHVyZS0+Z2V0
KHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcywgc3BlY2lmaWNWYWx1ZSkgIT0gV1RGOjpub3RGb3Vu
ZCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgCi0gICAgLy8gTG9vayBpbiB0aGUgc3RhdGlj
IGhhc2h0YWJsZSBvZiBwcm9wZXJ0aWVzCi0gICAgY29uc3QgSGFzaEVudHJ5KiBlbnRyeSA9IGZp
bmRQcm9wZXJ0eUhhc2hFbnRyeShleGVjLCBwcm9wZXJ0eU5hbWUpOwotICAgIGlmIChlbnRyeSkg
ewotICAgICAgICBhdHRyaWJ1dGVzID0gZW50cnktPmF0dHJpYnV0ZXMoKTsKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgfQotICAgIAotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gZGVz
Y3JpcHRvci5lbnVtZXJhYmxlKCk7CiB9CiAKIGJvb2wgSlNPYmplY3Q6OmdldFByb3BlcnR5U3Bl
Y2lmaWNWYWx1ZShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
Q2VsbComIHNwZWNpZmljVmFsdWUpIGNvbnN0CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT2JqZWN0LmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5k
ZXggZDgzNzVhYy4uYTJhZjJjZiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdC5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtMTM1
LDcgKzEzNSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB0
b1RoaXNPYmplY3QoRXhlY1N0YXRlKikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgSlNPYmplY3Qq
IHVud3JhcHBlZE9iamVjdCgpOwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRQcm9wZXJ0eUF0
dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCB1bnNp
Z25lZCYgYXR0cmlidXRlcykgY29uc3Q7CiAgICAgICAgIGJvb2wgZ2V0UHJvcGVydHlTcGVjaWZp
Y1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U0NlbGwqJiBzcGVjaWZpY0Z1bmN0aW9uKSBjb25zdDsKIAogICAgICAgICAvLyBUaGlzIGdldCBm
dW5jdGlvbiBvbmx5IGxvb2tzIGF0IHRoZSBwcm9wZXJ0eSBtYXAuCmRpZmYgLS1naXQgYS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuY3BwIGIvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmNwcAppbmRleCA2NTg2MzkzLi4zYWE5ZTYyIDEwMDY0
NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuY3BwCisrKyBi
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5jcHAKQEAgLTUzLDE2ICs1
Myw2IEBAIHZvaWQgSlNWYXJpYWJsZU9iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3Rh
dGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwCiAgICAgSlNPYmplY3Q6OmdldE93blByb3Bl
cnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7CiB9CiAKLWJvb2wgSlNWYXJpYWJsZU9iamVj
dDo6Z2V0UHJvcGVydHlBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCB1bnNpZ25lZCYgYXR0cmlidXRlcykgY29uc3QKLXsKLSAgICBTeW1i
b2xUYWJsZUVudHJ5IGVudHJ5ID0gc3ltYm9sVGFibGUoKS5nZXQocHJvcGVydHlOYW1lLnVzdHJp
bmcoKS5yZXAoKSk7Ci0gICAgaWYgKCFlbnRyeS5pc051bGwoKSkgewotICAgICAgICBhdHRyaWJ1
dGVzID0gZW50cnkuZ2V0QXR0cmlidXRlcygpIHwgRG9udERlbGV0ZTsKLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgfQotICAgIHJldHVybiBKU09iamVjdDo6Z2V0UHJvcGVydHlBdHRyaWJ1dGVz
KGV4ZWMsIHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcyk7Ci19Ci0KIGJvb2wgSlNWYXJpYWJsZU9i
amVjdDo6aXNWYXJpYWJsZU9iamVjdCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CmRpZmYg
LS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaCBiL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oCmluZGV4IGQ4YjE0NzkuLjE1ZDZm
ZjUgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5o
CisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oCkBAIC01NCw4
ICs1NCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNWYXJpYWJs
ZU9iamVjdCgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNEeW5hbWljU2NvcGUoKSBj
b25zdCA9IDA7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldFByb3BlcnR5QXR0cmlidXRlcyhF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIHVuc2lnbmVkJiBhdHRy
aWJ1dGVzKSBjb25zdDsKLQogICAgICAgICBSZWdpc3RlciYgcmVnaXN0ZXJBdChpbnQgaW5kZXgp
IGNvbnN0IHsgcmV0dXJuIGQtPnJlZ2lzdGVyc1tpbmRleF07IH0KIAogICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWQ1NmY3MS4uMzhlZWE2ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAwOS0xMS0yNyAgS2VudCBIYW5zZW4g
IDxrZW50LmhhbnNlbkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGdldFByb3BlcnR5QXR0cmlidXRlcygpIGZyb20gSmF2
YVNjcmlwdCBiaW5kaW5ncy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMxOTMzCisKKyAgICAgICAgVGhlIGZ1bmN0aW9uYWxpdHkgaXMgcHJvdmlkZWQg
YnkgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKCkuCisKKyAgICAgICAgKiBXZWJDb3JlLm9yZGVy
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd1NoZWxsLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG06CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorCiAyMDA5LTExLTI2
ICBBbnRvbiBNdWhpbiAgPGFudG9ubUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5vcmRlciBiL1dlYkNv
cmUvV2ViQ29yZS5vcmRlcgppbmRleCBjMTA0MGUyLi4zMTQ0ZWMxIDEwMDY0NAotLS0gYS9XZWJD
b3JlL1dlYkNvcmUub3JkZXIKKysrIGIvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCkBAIC0xOTc0Nyw4
ICsxOTc0Nyw2IEBAIF9fWk43V2ViQ29yZTE1SlNNaW1lVHlwZUFycmF5MTFpbmRleEdldHRlckVQ
TjNKU0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmllckVSCiBfX1pON1dlYkNvcmUxM01pbWVU
eXBlQXJyYXk0aXRlbUVqCiBfX1pON1dlYkNvcmUxNGpzTWltZVR5cGVUeXBlRVBOM0pTQzlFeGVj
U3RhdGVFUktOUzBfMTBJZGVudGlmaWVyRVJLTlMwXzEyUHJvcGVydHlTbG90RQogX19aTks3V2Vi
Q29yZThNaW1lVHlwZTR0eXBlRXYKLV9fWk5LN1dlYkNvcmUxNkpTRE9NV2luZG93U2hlbGwyMWdl
dFByb3BlcnR5QXR0cmlidXRlc0VQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmllckVS
agotX19aTks3V2ViQ29yZTExSlNET01XaW5kb3cyMWdldFByb3BlcnR5QXR0cmlidXRlc0VQTjNK
U0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmllckVSagogX19aTks3V2ViQ29yZTlSZW5kZXJC
b3gyMGZpcnN0TGluZUJveEJhc2VsaW5lRXYKIF9fWk43V2ViQ29yZTEwQ2xpZW50UmVjdEMxRXYK
IF9fWk43V2ViQ29yZTEwQ2xpZW50UmVjdEMyRXYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0N1c3RvbS5jcHAKaW5kZXggODAxNWFjYS4uNjU5YzdhZSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTQ4MiwxNCArNDgyLDYgQEAgdm9pZCBKU0RP
TVdpbmRvdzo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFt
ZUFycmF5JiBwcm9wZXIKICAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3Bl
cnR5TmFtZXMpOwogfQogCi1ib29sIEpTRE9NV2luZG93OjpnZXRQcm9wZXJ0eUF0dHJpYnV0ZXMo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIHVuc2lnbmVk
JiBhdHRyaWJ1dGVzKSBjb25zdAotewotICAgIC8vIE9ubHkgYWxsb3cgZ2V0dGluZyBwcm9wZXJ0
eSBhdHRyaWJ1dGVzIHByb3BlcnRpZXMgYnkgZnJhbWVzIGluIHRoZSBzYW1lIG9yaWdpbi4KLSAg
ICBpZiAoIWFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICByZXR1cm4gQmFzZTo6Z2V0UHJvcGVydHlBdHRyaWJ1dGVzKGV4ZWMsIHByb3BlcnR5TmFtZSwg
YXR0cmlidXRlcyk7Ci19Ci0KIHZvaWQgSlNET01XaW5kb3c6OmRlZmluZUdldHRlcihFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIGdldHRl
ckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQogewogICAgIC8vIE9ubHkgYWxsb3cgZGVm
aW5pbmcgZ2V0dGVycyBieSBmcmFtZXMgaW4gdGhlIHNhbWUgb3JpZ2luLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcCBiL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKaW5kZXggZTExZWYzZi4uMDkxNDFlZSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCkBAIC0xMjQsMTEgKzEyNCw2IEBA
IHZvaWQgSlNET01XaW5kb3dTaGVsbDo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4
ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwCiAgICAgbV93aW5kb3ctPmdldE93blByb3BlcnR5TmFt
ZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7CiB9CiAKLWJvb2wgSlNET01XaW5kb3dTaGVsbDo6Z2V0
UHJvcGVydHlBdHRyaWJ1dGVzKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIHVuc2lnbmVkJiBhdHRyaWJ1dGVzKSBjb25zdAotewotICAgIHJldHVy
biBtX3dpbmRvdy0+Z2V0UHJvcGVydHlBdHRyaWJ1dGVzKGV4ZWMsIHByb3BlcnR5TmFtZSwgYXR0
cmlidXRlcyk7Ci19Ci0KIHZvaWQgSlNET01XaW5kb3dTaGVsbDo6ZGVmaW5lR2V0dGVyKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCogZ2V0
dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCiB7CiAgICAgbV93aW5kb3ctPmRlZmlu
ZUdldHRlcihleGVjLCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0aW9uLCBhdHRyaWJ1dGVzKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKaW5kZXggNmZjYWI3MS4uMjcwMzZk
NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKQEAgLTc3LDcgKzc3LDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVy
dHkoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRQcm9wZXJ0eU5hbWVzKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJv
cGVydHlOYW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmKTsKLSAg
ICAgICAgdmlydHVhbCBib29sIGdldFByb3BlcnR5QXR0cmlidXRlcyhKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCB1bnNpZ25lZCYgYXR0cmlidXRl
cykgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZWZpbmVHZXR0ZXIoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCog
Z2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgZGVmaW5lU2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqIHNldHRlckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRy
aWJ1dGVzKTsKICAgICAgICAgdmlydHVhbCBib29sIGRlZmluZU93blByb3BlcnR5KEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVy
dHlEZXNjcmlwdG9yJiwgYm9vbCBzaG91bGRUaHJvdyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA1YzM5MGRjLi42YTE2NzJhIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTY1MCw5ICs2NTAsNiBA
QCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6Ok92ZXJy
aWRlc0dldFByb3BlcnR5TmFtZXMifSA9IDE7ICAgICAgIAogICAgIH0KIAotICAgICMgQ3VzdG9t
IGdldFByb3BlcnR5QXR0cmlidXRlcyBmdW5jdGlvbgotICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgdmlydHVhbCBib29sIGdldFByb3BlcnR5QXR0cmlidXRlcyhKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIHVuc2lnbmVkJiBhdHRyaWJ1dGVzKSBjb25zdDtcbiIp
IGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldFByb3BlcnR5QXR0
cmlidXRlcyJ9OwotCiAgICAgIyBDdXN0b20gZGVmaW5lR2V0dGVyIGZ1bmN0aW9uCiAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgZGVmaW5lR2V0dGVyKEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmpl
Y3QqIGdldHRlckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTtcbiIpIGlmICRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbURlZmluZUdldHRlciJ9OwogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aWRsCmluZGV4IGU4MzM5OTguLjQ3ZTg0MGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaWRsCisrKyBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC0zMSw3ICszMSw2
IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBDdXN0b21EZWZpbmVTZXR0ZXIsCiAgICAgICAg
IEN1c3RvbURlbGV0ZVByb3BlcnR5LAogICAgICAgICBDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3Qs
Ci0gICAgICAgIEN1c3RvbUdldFByb3BlcnR5QXR0cmlidXRlcywKICAgICAgICAgQ3VzdG9tR2V0
UHJvcGVydHlOYW1lcywKICAgICAgICAgQ3VzdG9tTG9va3VwR2V0dGVyLAogICAgICAgICBDdXN0
b21Mb29rdXBTZXR0ZXIsCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>