<?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>94713</bug_id>
          
          <creation_ts>2012-08-22 08:17:46 -0700</creation_ts>
          <short_desc>[V8] Remove V8Proxy from V8DOMWrapper::instantiateV8Object()</short_desc>
          <delta_ts>2012-08-22 17:38:00 -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>WebCore JavaScript</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>85330</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>701928</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-22 08:17:46 -0700</bug_when>
    <thetext>V8DOMWrapper::instantiateV8Object() should receive Frame* instead of V8Proxy*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701931</commentid>
    <comment_count>1</comment_count>
      <attachid>159939</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-22 08:21:04 -0700</bug_when>
    <thetext>Created attachment 159939
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701933</commentid>
    <comment_count>2</comment_count>
      <attachid>159939</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-22 08:22:21 -0700</bug_when>
    <thetext>Comment on attachment 159939
Patch

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

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:3408
&gt; +    wrapper = V8DOMWrapper::instantiateV8Object(proxy ? proxy-&gt;frame() : 0, &amp;info, impl.get());

&apos;proxy&apos; will be removed from CodeGeneratorV8.pm in a follow-up patch (because removing &apos;proxy&apos; is not so trivial).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702195</commentid>
    <comment_count>3</comment_count>
      <attachid>159939</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-22 12:28:54 -0700</bug_when>
    <thetext>Comment on attachment 159939
Patch

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

&gt; Source/WebCore/bindings/v8/V8DOMWrapper.cpp:163
&gt; -v8::Local&lt;v8::Object&gt; V8DOMWrapper::instantiateV8Object(V8Proxy* proxy, WrapperTypeInfo* type, void* impl)
&gt; +v8::Local&lt;v8::Object&gt; V8DOMWrapper::instantiateV8Object(Frame* frame, WrapperTypeInfo* type, void* impl)

This should actually take a ScriptExecutionContext, but Frame is better than V8Proxy :)

&gt; Source/WebCore/bindings/v8/V8DOMWrapper.cpp:175
&gt; -                Frame* frame = V8DOMWindow::toNative(globalPrototype)-&gt;frame();
&gt; -                if (frame &amp;&amp; frame-&gt;script()-&gt;canExecuteScripts(NotAboutToExecuteScript))
&gt; -                    proxy = frame-&gt;script()-&gt;proxy();
&gt; +                Frame* globalFrame = V8DOMWindow::toNative(globalPrototype)-&gt;frame();
&gt; +                if (globalFrame &amp;&amp; globalFrame-&gt;script()-&gt;canExecuteScripts(NotAboutToExecuteScript))
&gt; +                    frame = globalFrame;

This code is wrong, but we can fix that in another patch.  Can you file a bug about V8DOMWrapper::instantiateV8Object needing to take a ScriptExecutionContext ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702461</commentid>
    <comment_count>4</comment_count>
      <attachid>159939</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-22 15:44:11 -0700</bug_when>
    <thetext>Comment on attachment 159939
Patch

Clearing flags on attachment: 159939

Committed r126362: &lt;http://trac.webkit.org/changeset/126362&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702462</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-22 15:44:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702559</commentid>
    <comment_count>6</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-22 17:38:00 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; This code is wrong, but we can fix that in another patch.  Can you file a bug about V8DOMWrapper::instantiateV8Object needing to take a ScriptExecutionContext ?

Filed a bug 94763.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159939</attachid>
            <date>2012-08-22 08:21:04 -0700</date>
            <delta_ts>2012-08-22 15:44:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94713-20120823002101.patch</filename>
            <type>text/plain</type>
            <size>18096</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2Mjk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDk5MmU0N2FlZjJlNTQ3
NmM2YTRlMTY3OWZkMGMzZGYwYTE0ODE1Zi4uYjQwYTU4ZTdmOWQ5NzUzODFiMTQwODk4YjUwNWMx
MzBiZTUxYWY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTA4LTIyICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFJlbW92ZSBW
OFByb3h5IGZyb20gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KCkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzEzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8ga2lsbCBWOFByb3h5LCBW
OERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QoKSBzaG91bGQgcmVjZWl2ZSBGcmFtZSoK
KyAgICAgICAgaW5zdGVhZCBvZiBWOFByb3h5Ki4KKworICAgICAgICBObyB0ZXN0cy4gTm8gY2hh
bmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yVjgucG06CisgICAgICAgIChHZW5lcmF0ZVRvVjhDb252ZXJ0ZXJzKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VjhGbG9hdDY0QXJyYXk6OndyYXBTbG93KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlY4VGVzdEFjdGl2ZURPTU9iamVjdDo6d3JhcFNsb3cpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpWOFRlc3RDdXN0b21OYW1lZEdldHRlcjo6d3JhcFNsb3cpOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4VGVzdEV2ZW50Q29uc3RydWN0b3I6OndyYXBTbG93KToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VjhUZXN0RXZlbnRUYXJnZXQ6OndyYXBTbG93KToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlY4VGVzdEV4Y2VwdGlvbjo6d3JhcFNsb3cpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0SW50
ZXJmYWNlOjp3cmFwU2xvdyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6d3JhcFNsb3cpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlY4VGVzdE5hbWVkQ29uc3RydWN0b3I6OndyYXBTbG93KToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFRl
c3ROb2RlOjp3cmFwU2xvdyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RPYmo6OndyYXBTbG93KToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZTo6d3JhcFNsb3cpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9N
V3JhcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9N
V3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdCk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhE
T01XcmFwcGVyLmg6CisgICAgICAgIChWOERPTVdyYXBwZXIpOgorCiAyMDEyLTA4LTIyICBLd2Fu
Z1lvbmcgQ2hvaSAgPGt5MC5jaG9pQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIFN1cHBv
cnQgc2xpZGVyIHRpY2sgbWFyayBzbmFwcGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCAzMDBhMzY1YmUzN2ZjY2EzMjA1
ZjQyMDEwOTZhMDU2YjE1MDFjZTQ0Li5mNjZlOWExMDViNTk5YjZlYTAyYTg3NjE3N2QzMzkxN2Y0
NzkwMzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JWOC5wbQpAQCAtMzQwNSw3ICszNDA1LDcgQEAgRU5ECiAgICAgfQogCiAgICAgcHVz
aChAaW1wbENvbnRlbnQsIDw8RU5EKTsKLSAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0
YW50aWF0ZVY4T2JqZWN0KHByb3h5LCAmaW5mbywgaW1wbC5nZXQoKSk7CisgICAgd3JhcHBlciA9
IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChwcm94eSA/IHByb3h5LT5mcmFtZSgp
IDogMCwgJmluZm8sIGltcGwuZ2V0KCkpOwogRU5ECiAgICAgaWYgKElzTm9kZVN1YlR5cGUoJGRh
dGFOb2RlKSB8fCBJc1Zpc2libGVBY3Jvc3NPcmlnaW5zKCRkYXRhTm9kZSkpIHsKICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuY3BwCmluZGV4IGQwMzM5
MDhlOGNjOTA0ZDlkYWIzYzM1MGFjMDk2ZmEyNjgzZmUxYjYuLjM0N2Q0ZjdkN2Q2ODExZTQ3M2Uw
ZWI0MTMwOTNmOWYzOGJlNmVmZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmNwcApAQCAtMTUyLDcgKzE1
Miw3IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhGbG9hdDY0QXJyYXk6OndyYXBTbG93KFBh
c3NSZWZQdHI8RmxvYXQ2NEFycmF5PiBpbXBsLCB2CiAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiB3cmFwcGVyOwogICAgIEFTU0VSVChzdGF0aWNfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8QXJy
YXlCdWZmZXJWaWV3Kj4oaW1wbC5nZXQoKSkpID09IHN0YXRpY19jYXN0PHZvaWQqPihpbXBsLmdl
dCgpKSk7CiAgICAgVjhQcm94eSogcHJveHkgPSAwOwotICAgIHdyYXBwZXIgPSBWOERPTVdyYXBw
ZXI6Omluc3RhbnRpYXRlVjhPYmplY3QocHJveHksICZpbmZvLCBpbXBsLmdldCgpKTsKKyAgICB3
cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KHByb3h5ID8gcHJveHkt
PmZyYW1lKCkgOiAwLCAmaW5mbywgaW1wbC5nZXQoKSk7CiAgICAgaWYgKFVOTElLRUxZKHdyYXBw
ZXIuSXNFbXB0eSgpKSkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAgICAgdjg6OlBlcnNpc3Rl
bnQ8djg6Ok9iamVjdD4gd3JhcHBlckhhbmRsZSA9IFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVy
Rm9yRE9NT2JqZWN0KGltcGwsIHdyYXBwZXIsIGlzb2xhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZl
RE9NT2JqZWN0LmNwcAppbmRleCA2NTNlYjFlNDJiMzIxMDNiMDViNDFlNDcxMjQ4ZGQxY2ZmMjIz
YzcwLi4zNTJhODc5ZmU0MDM0MjZhMmZjYTZhMTIzYmU3OTllYTQ0MWJlMjk4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9N
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4gVjhUZXN0QWN0aXZlRE9NT2JqZWN0Ojp3cmFwU2xvdyhQYXNzUmVmUHRyPFRl
c3RBY3RpdmVET01PCiAgICAgICAgIGlmICghY29udGV4dC5Jc0VtcHR5KCkpCiAgICAgICAgICAg
ICBjb250ZXh0LT5FbnRlcigpOwogICAgIH0KLSAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjpp
bnN0YW50aWF0ZVY4T2JqZWN0KHByb3h5LCAmaW5mbywgaW1wbC5nZXQoKSk7CisgICAgd3JhcHBl
ciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChwcm94eSA/IHByb3h5LT5mcmFt
ZSgpIDogMCwgJmluZm8sIGltcGwuZ2V0KCkpOwogICAgIC8vIEV4aXQgdGhlIG5vZGUncyBjb250
ZXh0IGlmIGl0IHdhcyBlbnRlcmVkLgogICAgIGlmICghY29udGV4dC5Jc0VtcHR5KCkpCiAgICAg
ICAgIGNvbnRleHQtPkV4aXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3Bw
CmluZGV4IDBmOWU2NGFjN2JkZDZjNjM4OTM1NTJkOTYzYTMyZjgzYWE0NGI2ZTIuLjBiMjBlMGNi
YWExZjA2NWMwMmUzZWU0M2E5MTZlMzYwNWI4N2ZjZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3Rv
bU5hbWVkR2V0dGVyLmNwcApAQCAtMTE0LDcgKzExNCw3IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OndyYXBTbG93KFBhc3NSZWZQdHI8VGVzdEN1c3Rv
bU5hCiB7CiAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyOwogICAgIFY4UHJveHkq
IHByb3h5ID0gMDsKLSAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2Jq
ZWN0KHByb3h5LCAmaW5mbywgaW1wbC5nZXQoKSk7CisgICAgd3JhcHBlciA9IFY4RE9NV3JhcHBl
cjo6aW5zdGFudGlhdGVWOE9iamVjdChwcm94eSA/IHByb3h5LT5mcmFtZSgpIDogMCwgJmluZm8s
IGltcGwuZ2V0KCkpOwogICAgIGlmIChVTkxJS0VMWSh3cmFwcGVyLklzRW1wdHkoKSkpCiAgICAg
ICAgIHJldHVybiB3cmFwcGVyOwogICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBw
ZXJIYW5kbGUgPSBWOERPTVdyYXBwZXI6OnNldEpTV3JhcHBlckZvckRPTU9iamVjdChpbXBsLCB3
cmFwcGVyLCBpc29sYXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmNwcAppbmRl
eCAzMmUxM2FhMDM2ZTZhOWI3MGRiYTAzODk2NDMzYmE3YjRlNWFhZWZiLi4wMDhhOTBjZGE1NDQ3
ZWE0NzQ0NTRhMDI3YzEzNmYzYzU4NmY4MjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3Ry
dWN0b3IuY3BwCkBAIC0xNTEsNyArMTUxLDcgQEAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRl
c3RFdmVudENvbnN0cnVjdG9yOjp3cmFwU2xvdyhQYXNzUmVmUHRyPFRlc3RFdmVudENvbnMKIHsK
ICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXI7CiAgICAgVjhQcm94eSogcHJveHkg
PSAwOwotICAgIHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QocHJv
eHksICZpbmZvLCBpbXBsLmdldCgpKTsKKyAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0
YW50aWF0ZVY4T2JqZWN0KHByb3h5ID8gcHJveHktPmZyYW1lKCkgOiAwLCAmaW5mbywgaW1wbC5n
ZXQoKSk7CiAgICAgaWYgKFVOTElLRUxZKHdyYXBwZXIuSXNFbXB0eSgpKSkKICAgICAgICAgcmV0
dXJuIHdyYXBwZXI7CiAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlckhhbmRs
ZSA9IFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9NT2JqZWN0KGltcGwsIHdyYXBwZXIs
IGlzb2xhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5jcHAKaW5kZXggNDI3ZjFkNTMzODhlZWQ3
ZWI3NmUwYWE3MjUyMTgwMzc5NTQ3YTg1Zi4uNWQ5M2RjOThmZTFiMDUxNGE2OTRkNmVmMTQ3M2Nm
NzBjMzE0ZmIyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuY3BwCkBAIC0xNzUsNyArMTc1LDcg
QEAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RFdmVudFRhcmdldDo6d3JhcFNsb3coUGFz
c1JlZlB0cjxUZXN0RXZlbnRUYXJnZXQ+IGkKIHsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IHdyYXBwZXI7CiAgICAgVjhQcm94eSogcHJveHkgPSAwOwotICAgIHdyYXBwZXIgPSBWOERPTVdy
YXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QocHJveHksICZpbmZvLCBpbXBsLmdldCgpKTsKKyAg
ICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KHByb3h5ID8gcHJv
eHktPmZyYW1lKCkgOiAwLCAmaW5mbywgaW1wbC5nZXQoKSk7CiAgICAgaWYgKFVOTElLRUxZKHdy
YXBwZXIuSXNFbXB0eSgpKSkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAgICAgdjg6OlBlcnNp
c3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlckhhbmRsZSA9IFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFw
cGVyRm9yRE9NT2JqZWN0KGltcGwsIHdyYXBwZXIsIGlzb2xhdGUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV4Y2VwdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXhjZXB0aW9u
LmNwcAppbmRleCA5OWViNTIyZmFiMzAzMmQ3ZGUxZjE3Njg1MTZkMmIzNzEyM2YwYTc1Li5jNzg1
YTBjOGM1MDYxZTY0OTAzYjM0YmY2NTk4OGViYTI1ODdhNjFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXhjZXB0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXhjZXB0aW9u
LmNwcApAQCAtMTA1LDcgKzEwNSw3IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0RXhj
ZXB0aW9uOjp3cmFwU2xvdyhQYXNzUmVmUHRyPFRlc3RFeGNlcHRpb24+IGltcGwsCiB7CiAgICAg
djg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyOwogICAgIFY4UHJveHkqIHByb3h5ID0gMDsK
LSAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KHByb3h5LCAm
aW5mbywgaW1wbC5nZXQoKSk7CisgICAgd3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlh
dGVWOE9iamVjdChwcm94eSA/IHByb3h5LT5mcmFtZSgpIDogMCwgJmluZm8sIGltcGwuZ2V0KCkp
OwogICAgIGlmIChVTkxJS0VMWSh3cmFwcGVyLklzRW1wdHkoKSkpCiAgICAgICAgIHJldHVybiB3
cmFwcGVyOwogICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXJIYW5kbGUgPSBW
OERPTVdyYXBwZXI6OnNldEpTV3JhcHBlckZvckRPTU9iamVjdChpbXBsLCB3cmFwcGVyLCBpc29s
YXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKaW5kZXggOTZjZmQ3YTc5Mzk3MDhjNmNjZWRlMTUx
ZGIwMmExN2QyZTE0YTE0Ni4uOTUzNWRjMWFlYTRkYjUzZDAxOGViMWNkMWNjYzFkNDgxZDA0MGFl
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKQEAgLTM0OCw3ICszNDgsNyBAQCB2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+IFY4VGVzdEludGVyZmFjZTo6d3JhcFNsb3coUGFzc1JlZlB0cjxUZXN0SW50
ZXJmYWNlPiBpbXBsLAogewogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlcjsKICAg
ICBWOFByb3h5KiBwcm94eSA9IDA7Ci0gICAgd3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFu
dGlhdGVWOE9iamVjdChwcm94eSwgJmluZm8sIGltcGwuZ2V0KCkpOworICAgIHdyYXBwZXIgPSBW
OERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QocHJveHkgPyBwcm94eS0+ZnJhbWUoKSA6
IDAsICZpbmZvLCBpbXBsLmdldCgpKTsKICAgICBpZiAoVU5MSUtFTFkod3JhcHBlci5Jc0VtcHR5
KCkpKQogICAgICAgICByZXR1cm4gd3JhcHBlcjsKICAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2Jq
ZWN0PiB3cmFwcGVySGFuZGxlID0gVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JBY3RpdmVE
T01PYmplY3QoaW1wbCwgd3JhcHBlciwgaXNvbGF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKaW5kZXggMmVkZTEwYmRhMzk3YzUxMTMxZTgyM2I5OTE0
ZDFjNGQzM2IyNGYxOS4uZWMyZmRmOGI2NGZkMGMzYmFkMTBiY2FlYmFhZjNmMTdkYjU2OGU0YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcApAQCAtMTE0
LDcgKzExNCw3IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lcjo6d3JhcFNsb3coUGFzc1JlZlB0cjxUZXN0TWVkCiB7CiAgICAgdjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiB3cmFwcGVyOwogICAgIFY4UHJveHkqIHByb3h5ID0gMDsKLSAgICB3cmFwcGVy
ID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KHByb3h5LCAmaW5mbywgaW1wbC5n
ZXQoKSk7CisgICAgd3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChw
cm94eSA/IHByb3h5LT5mcmFtZSgpIDogMCwgJmluZm8sIGltcGwuZ2V0KCkpOwogICAgIGlmIChV
TkxJS0VMWSh3cmFwcGVyLklzRW1wdHkoKSkpCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogICAg
IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXJIYW5kbGUgPSBWOERPTVdyYXBwZXI6
OnNldEpTV3JhcHBlckZvckRPTU9iamVjdChpbXBsLCB3cmFwcGVyLCBpc29sYXRlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1l
ZENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAppbmRleCAyOTg5MjgwNmJlNzM5OTAyNzUzYjJi
NDZiYjlkZjYyNzY3YzgzNGYwLi4zODE4MjBhYWFhZGIwZDY2ZDhjNjdhNTBiNjQ3MDMwYzI4OGM5
N2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCkBAIC0xNTksNyArMTU5
LDcgQEAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3ROYW1lZENvbnN0cnVjdG9yOjp3cmFw
U2xvdyhQYXNzUmVmUHRyPFRlc3ROYW1lZENvbnMKIHsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+IHdyYXBwZXI7CiAgICAgVjhQcm94eSogcHJveHkgPSAwOwotICAgIHdyYXBwZXIgPSBWOERP
TVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QocHJveHksICZpbmZvLCBpbXBsLmdldCgpKTsK
KyAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KHByb3h5ID8g
cHJveHktPmZyYW1lKCkgOiAwLCAmaW5mbywgaW1wbC5nZXQoKSk7CiAgICAgaWYgKFVOTElLRUxZ
KHdyYXBwZXIuSXNFbXB0eSgpKSkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAgICAgdjg6OlBl
cnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlckhhbmRsZSA9IFY4RE9NV3JhcHBlcjo6c2V0SlNX
cmFwcGVyRm9yQWN0aXZlRE9NT2JqZWN0KGltcGwsIHdyYXBwZXIsIGlzb2xhdGUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5vZGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5vZGUu
Y3BwCmluZGV4IGMyYTEwOWYwNWIwYjQxMzEyNjljM2Y5YzA2YTQ0YjA1NjlhMDU4MDkuLjIxMDU1
YjlhYjZmYTExNjg1Mjk5M2JiYTg2YmE3MmE1ODc5MGE3NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROb2RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Tm9kZS5jcHAKQEAgLTEy
NSw3ICsxMjUsNyBAQCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdE5vZGU6OndyYXBTbG93
KFBhc3NSZWZQdHI8VGVzdE5vZGU+IGltcGwsIHY4OjpJc29sYQogICAgICAgICBpZiAoIWNvbnRl
eHQuSXNFbXB0eSgpKQogICAgICAgICAgICAgY29udGV4dC0+RW50ZXIoKTsKICAgICB9Ci0gICAg
d3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChwcm94eSwgJmluZm8s
IGltcGwuZ2V0KCkpOworICAgIHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhP
YmplY3QocHJveHkgPyBwcm94eS0+ZnJhbWUoKSA6IDAsICZpbmZvLCBpbXBsLmdldCgpKTsKICAg
ICAvLyBFeGl0IHRoZSBub2RlJ3MgY29udGV4dCBpZiBpdCB3YXMgZW50ZXJlZC4KICAgICBpZiAo
IWNvbnRleHQuSXNFbXB0eSgpKQogICAgICAgICBjb250ZXh0LT5FeGl0KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmlu
ZGV4IGE4YjE4YzgzMjVlNTA3OWYyMGQwNzk5OTNhMjUzNTBlOTM4ZTRiNTAuLmI4OWZhYjI3ZTY1
YWJhMThkNjhmZmEzZTNkMGVjMTQzM2QwOGRmNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCkBAIC0yMzIxLDcgKzIz
MjEsNyBAQCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdE9iajo6d3JhcFNsb3coUGFzc1Jl
ZlB0cjxUZXN0T2JqPiBpbXBsLCB2ODo6SXNvbGF0ZQogewogICAgIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gd3JhcHBlcjsKICAgICBWOFByb3h5KiBwcm94eSA9IDA7Ci0gICAgd3JhcHBlciA9IFY4
RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChwcm94eSwgJmluZm8sIGltcGwuZ2V0KCkp
OworICAgIHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QocHJveHkg
PyBwcm94eS0+ZnJhbWUoKSA6IDAsICZpbmZvLCBpbXBsLmdldCgpKTsKICAgICBpZiAoVU5MSUtF
TFkod3JhcHBlci5Jc0VtcHR5KCkpKQogICAgICAgICByZXR1cm4gd3JhcHBlcjsKICAgICBpbnN0
YWxsUGVyQ29udGV4dFByb3BlcnRpZXMod3JhcHBlciwgaW1wbC5nZXQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4
IDBmN2I4N2IxMjY0ZTgzOTUyYTllZDBkYzUxNDUyOGY2NTcwMjZkZDIuLjI5MGZlNzhiYTlmYjRm
ZTEwY2VlODI0MjBmMzJiYjAyMjVhMzk3YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCkBAIC0yOTcsNyArMjk3LDcgQEAg
djg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2U6OndyYXBTbG93KFBhc3NSZWZQdHIKIHsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdy
YXBwZXI7CiAgICAgVjhQcm94eSogcHJveHkgPSAwOwotICAgIHdyYXBwZXIgPSBWOERPTVdyYXBw
ZXI6Omluc3RhbnRpYXRlVjhPYmplY3QocHJveHksICZpbmZvLCBpbXBsLmdldCgpKTsKKyAgICB3
cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KHByb3h5ID8gcHJveHkt
PmZyYW1lKCkgOiAwLCAmaW5mbywgaW1wbC5nZXQoKSk7CiAgICAgaWYgKFVOTElLRUxZKHdyYXBw
ZXIuSXNFbXB0eSgpKSkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAgICAgdjg6OlBlcnNpc3Rl
bnQ8djg6Ok9iamVjdD4gd3JhcHBlckhhbmRsZSA9IFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVy
Rm9yRE9NT2JqZWN0KGltcGwsIHdyYXBwZXIsIGlzb2xhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKaW5kZXggMzFmZjMxZGEzZDA4MjhhMjZhOTRjN2Rk
OGEyNmUzZDdhZTMxYzBmNC4uNGNlN2U4ODEyYTg0MDVkMjczZjg3ZGU5NzU2ODc1OTJmZmE1MDQ1
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCkBAIC0x
MTAsMTIgKzExMCw2IEBAIHY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+IFY4RE9NV3JhcHBlcjo6Y29u
c3RydWN0b3JGb3JUeXBlKFdyYXBwZXJUeXBlSW5mbyogdHlwZSwKIH0KICNlbmRpZgogCi1WOFBl
ckNvbnRleHREYXRhKiBWOERPTVdyYXBwZXI6OnBlckNvbnRleHREYXRhKFY4UHJveHkqIHByb3h5
KQotewotICAgIFY4RE9NV2luZG93U2hlbGwqIHNoZWxsID0gcHJveHktPndpbmRvd1NoZWxsKCk7
Ci0gICAgcmV0dXJuIHNoZWxsID8gc2hlbGwtPnBlckNvbnRleHREYXRhKCkgOiAwOwotfQotCiAj
aWYgRU5BQkxFKFdPUktFUlMpCiBWOFBlckNvbnRleHREYXRhKiBWOERPTVdyYXBwZXI6OnBlckNv
bnRleHREYXRhKFdvcmtlckNvbnRleHQqKQogewpAQCAtMTY2LDIzICsxNjAsMTkgQEAgUGFzc1Jl
ZlB0cjxOb2RlRmlsdGVyPiBWOERPTVdyYXBwZXI6OndyYXBOYXRpdmVOb2RlRmlsdGVyKHY4OjpI
YW5kbGU8djg6OlZhbHVlPgogICAgIHJldHVybiBOb2RlRmlsdGVyOjpjcmVhdGUoVjhOb2RlRmls
dGVyQ29uZGl0aW9uOjpjcmVhdGUoZmlsdGVyKSk7CiB9CiAKLXY4OjpMb2NhbDx2ODo6T2JqZWN0
PiBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QoVjhQcm94eSogcHJveHksIFdyYXBw
ZXJUeXBlSW5mbyogdHlwZSwgdm9pZCogaW1wbCkKK3Y4OjpMb2NhbDx2ODo6T2JqZWN0PiBWOERP
TVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QoRnJhbWUqIGZyYW1lLCBXcmFwcGVyVHlwZUlu
Zm8qIHR5cGUsIHZvaWQqIGltcGwpCiB7CiAjaWYgRU5BQkxFKFdPUktFUlMpCiAgICAgV29ya2Vy
Q29udGV4dCogd29ya2VyQ29udGV4dCA9IDA7CiAjZW5kaWYKLSAgICBWOFBlckNvbnRleHREYXRh
KiBjb250ZXh0RGF0YSA9IDA7Ci0gICAgVjhJc29sYXRlZENvbnRleHQqIGlzb2xhdGVkQ29udGV4
dDsKLSAgICBpZiAoVU5MSUtFTFkoISEoaXNvbGF0ZWRDb250ZXh0ID0gVjhJc29sYXRlZENvbnRl
eHQ6OmdldEVudGVyZWQoKSkpKSB7Ci0gICAgICAgIGNvbnRleHREYXRhID0gaXNvbGF0ZWRDb250
ZXh0LT5wZXJDb250ZXh0RGF0YSgpOwotICAgIH0gZWxzZSBpZiAoIXByb3h5KSB7CisgICAgaWYg
KCFmcmFtZSkgewogICAgICAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0ID0gdjg6
OkNvbnRleHQ6OkdldEN1cnJlbnQoKTsKICAgICAgICAgaWYgKCFjb250ZXh0LklzRW1wdHkoKSkg
ewogICAgICAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBnbG9iYWxQcm90b3R5cGUgPSB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGNvbnRleHQtPkdsb2JhbCgpLT5HZXRQcm90b3R5
cGUoKSk7CiAgICAgICAgICAgICBpZiAoaXNXcmFwcGVyT2ZUeXBlKGdsb2JhbFByb3RvdHlwZSwg
JlY4RE9NV2luZG93OjppbmZvKSkgewotICAgICAgICAgICAgICAgIEZyYW1lKiBmcmFtZSA9IFY4
RE9NV2luZG93Ojp0b05hdGl2ZShnbG9iYWxQcm90b3R5cGUpLT5mcmFtZSgpOwotICAgICAgICAg
ICAgICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+c2NyaXB0KCktPmNhbkV4ZWN1dGVTY3JpcHRzKE5v
dEFib3V0VG9FeGVjdXRlU2NyaXB0KSkKLSAgICAgICAgICAgICAgICAgICAgcHJveHkgPSBmcmFt
ZS0+c2NyaXB0KCktPnByb3h5KCk7CisgICAgICAgICAgICAgICAgRnJhbWUqIGdsb2JhbEZyYW1l
ID0gVjhET01XaW5kb3c6OnRvTmF0aXZlKGdsb2JhbFByb3RvdHlwZSktPmZyYW1lKCk7CisgICAg
ICAgICAgICAgICAgaWYgKGdsb2JhbEZyYW1lICYmIGdsb2JhbEZyYW1lLT5zY3JpcHQoKS0+Y2Fu
RXhlY3V0ZVNjcmlwdHMoTm90QWJvdXRUb0V4ZWN1dGVTY3JpcHQpKQorICAgICAgICAgICAgICAg
ICAgICBmcmFtZSA9IGdsb2JhbEZyYW1lOwogICAgICAgICAgICAgfQogI2lmIEVOQUJMRShXT1JL
RVJTKQogICAgICAgICAgICAgZWxzZSBpZiAoaXNXcmFwcGVyT2ZUeXBlKGdsb2JhbFByb3RvdHlw
ZSwgJlY4V29ya2VyQ29udGV4dDo6aW5mbykpCkBAIC0xOTEsMjMgKzE4MSwyMSBAQCB2ODo6TG9j
YWw8djg6Ok9iamVjdD4gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KFY4UHJveHkq
IHByb3h5LCBXcmFwcGVyVAogICAgICAgICB9CiAgICAgfQogCi0gICAgdjg6OkxvY2FsPHY4OjpP
YmplY3Q+IGluc3RhbmNlOwotICAgIGlmICghY29udGV4dERhdGEpIHsKLSAgICAgICAgaWYgKHBy
b3h5KQotICAgICAgICAgICAgY29udGV4dERhdGEgPSBwZXJDb250ZXh0RGF0YShwcm94eSk7Cisg
ICAgVjhQZXJDb250ZXh0RGF0YSogY29udGV4dERhdGEgPSAwOworICAgIGlmIChmcmFtZSkKKyAg
ICAgICAgY29udGV4dERhdGEgPSBwZXJDb250ZXh0RGF0YUZvckN1cnJlbnRXb3JsZChmcmFtZSk7
CiAjaWYgRU5BQkxFKFdPUktFUlMpCi0gICAgICAgIGVsc2UgaWYgKHdvcmtlckNvbnRleHQpCi0g
ICAgICAgICAgICBjb250ZXh0RGF0YSA9IHBlckNvbnRleHREYXRhKHdvcmtlckNvbnRleHQpOwor
ICAgIGVsc2UgaWYgKHdvcmtlckNvbnRleHQpCisgICAgICAgIGNvbnRleHREYXRhID0gcGVyQ29u
dGV4dERhdGEod29ya2VyQ29udGV4dCk7CiAjZW5kaWYKLSAgICB9CiAKKyAgICB2ODo6TG9jYWw8
djg6Ok9iamVjdD4gaW5zdGFuY2U7CiAgICAgaWYgKGNvbnRleHREYXRhKQogICAgICAgICBpbnN0
YW5jZSA9IGNvbnRleHREYXRhLT5jcmVhdGVXcmFwcGVyRnJvbUNhY2hlKHR5cGUpOwogICAgIGVs
c2UgewogICAgICAgICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBmdW5jdGlvbiA9IHR5cGUtPmdl
dFRlbXBsYXRlKCktPkdldEZ1bmN0aW9uKCk7CiAgICAgICAgIGluc3RhbmNlID0gVjhPYmplY3RD
b25zdHJ1Y3Rvcjo6bmV3SW5zdGFuY2UoZnVuY3Rpb24pOwogICAgIH0KLQogICAgIGlmICghaW5z
dGFuY2UuSXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIEF2b2lkIHNldHRpbmcgdGhlIERPTSB3cmFw
cGVyIGZvciBmYWlsZWQgYWxsb2NhdGlvbnMuCiAgICAgICAgIHNldERPTVdyYXBwZXIoaW5zdGFu
Y2UsIHR5cGUsIGltcGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhET01XcmFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIu
aAppbmRleCBkOWU4MDU5ZTQyMGM2ZjNhYTg1ZjI2MDk5MzFjM2YyYTA2ZWM3ZGFjLi42OGQ1M2Rk
MzJmYTg2ZGQ0YmM4OGMzY2JkOGEyOGFmZTVmNjJhZTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOERPTVdyYXBwZXIuaApAQCAtMTI1LDcgKzEyNSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgc3RhdGljIHZvaWQgc2V0TmFtZWRIaWRkZW5SZWZlcmVuY2Uodjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiBwYXJlbnQsIGNvbnN0IGNoYXIqIG5hbWUsIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBjaGlsZCk7CiAgICAgICAgIHN0YXRpYyB2b2lkIHNldE5hbWVkSGlkZGVuV2luZG93
UmVmZXJlbmNlKEZyYW1lKiwgY29uc3QgY2hhciosIHY4OjpIYW5kbGU8djg6OlZhbHVlPik7CiAK
LSAgICAgICAgc3RhdGljIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBpbnN0YW50aWF0ZVY4T2JqZWN0
KFY4UHJveHkqIHByb3h5LCBXcmFwcGVyVHlwZUluZm8qLCB2b2lkKiBpbXBsKTsKKyAgICAgICAg
c3RhdGljIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBpbnN0YW50aWF0ZVY4T2JqZWN0KEZyYW1lKiwg
V3JhcHBlclR5cGVJbmZvKiwgdm9pZCopOwogCiAgICAgICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IGdldENhY2hlZFdyYXBwZXIoTm9kZSogbm9kZSkKICAgICAgICAgewpAQCAtMTQ4
LDcgKzE0OCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIHJldHVybiBkb21O
b2RlTWFwLmdldChub2RlKTsKICAgICAgICAgfQogICAgIHByaXZhdGU6Ci0gICAgICAgIHN0YXRp
YyBWOFBlckNvbnRleHREYXRhKiBwZXJDb250ZXh0RGF0YShWOFByb3h5Kik7CiAjaWYgRU5BQkxF
KFdPUktFUlMpCiAgICAgICAgIHN0YXRpYyBWOFBlckNvbnRleHREYXRhKiBwZXJDb250ZXh0RGF0
YShXb3JrZXJDb250ZXh0Kik7CiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>