<?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>73750</bug_id>
          
          <creation_ts>2011-12-03 10:40:29 -0800</creation_ts>
          <short_desc>[GTK] Move emissions of AtkDocument signals down to WebCore</short_desc>
          <delta_ts>2011-12-05 16:11:17 -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>Accessibility</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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mario Sanchez Prada">mario</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dglazkov</cc>
    
    <cc>japhet</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>514536</commentid>
    <comment_count>0</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-12-03 10:40:29 -0800</bug_when>
    <thetext>At the moment, the emission of the AtkDocument related signals (&apos;load-complete&apos;, &apos;load-stopped&apos; and &apos;reload&apos;) is being done from the FrameLoaderClientGtk class, in Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp.

This has not been a (big) problem so far, but now that we want to add a11y support to WK2 such a thing doesn&apos;t seem to be a good idea, because you would need to implement something similar in WebKit2 in case you wanted to see those signals in WebKit2GTK based browsers (and you will want that, be sure of it). Such implementation, also, should happen in the WebProcess, since that&apos;s were we have access to the AtkObject wrapping the WebCore&apos;s accessibility object for the webArea.

However, a better alternative seems to be to move the emission of those signals down to WebCore, so we would just emit them in one place, and both WebKitGTK and WebKit2GTK based browsers would see them without any extra work.

So, this bug is for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514542</commentid>
    <comment_count>1</comment_count>
      <attachid>117768</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-12-03 10:57:18 -0800</bug_when>
    <thetext>Created attachment 117768
Patch proposal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514554</commentid>
    <comment_count>2</comment_count>
      <attachid>117768</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-03 11:35:43 -0800</bug_when>
    <thetext>Comment on attachment 117768
Patch proposal

Attachment 117768 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10725811

New failing tests:
svg/custom/linking-uri-01-b.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514557</commentid>
    <comment_count>3</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-12-03 11:39:40 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 117768 [details])
&gt; Attachment 117768 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/10725811
&gt; 
&gt; New failing tests:
&gt; svg/custom/linking-uri-01-b.svg

Seems unrelated to me. Flaky test perhaps?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514672</commentid>
    <comment_count>4</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-12-04 04:07:09 -0800</bug_when>
    <thetext>Even if this patch shouldn&apos;t modify the behaviour in other ports different than GTK (it provides empty implementations for those ports using their own platform-specific versions of AXObjectCache), I guess Chris might be interested on taking a look to it, so adding him to CC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514876</commentid>
    <comment_count>5</comment_count>
      <attachid>117768</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-12-04 21:05:45 -0800</bug_when>
    <thetext>Comment on attachment 117768
Patch proposal

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

&gt; Source/WebCore/accessibility/AXObjectCache.h:153
&gt; +        AXLoadingReload,

this should be Reloaded

&gt; Source/WebCore/accessibility/AXObjectCache.h:158
&gt; +    void loadingEventNotification(Frame*, AXLoadingEvent);

i would name this frameLoadingEventNotification

&gt; Source/WebCore/accessibility/gtk/AXObjectCacheAtk.cpp:195
&gt; +    // Sanity check

comment is unnecessary

&gt; Source/WebCore/loader/FrameLoader.cpp:1123
&gt; +            : AXObjectCache::AXLoadingStarted;

probably not necessary to separate onto three lines</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515065</commentid>
    <comment_count>6</comment_count>
      <attachid>117768</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-12-05 07:25:48 -0800</bug_when>
    <thetext>Comment on attachment 117768
Patch proposal

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

Thanks a lot for the quick review, Chris. I assume you&apos;re reviewing- because of the things you pointed out but that overall you don&apos;t see it as a wrong approach. So, I will address your comments and upload a new version soon.

Now see my comments below...

&gt;&gt; Source/WebCore/accessibility/AXObjectCache.h:153
&gt;&gt; +        AXLoadingReload,
&gt; 
&gt; this should be Reloaded

Ok

&gt;&gt; Source/WebCore/accessibility/AXObjectCache.h:158
&gt;&gt; +    void loadingEventNotification(Frame*, AXLoadingEvent);
&gt; 
&gt; i would name this frameLoadingEventNotification

Sounds better indeed. I&apos;ll change it.

&gt;&gt; Source/WebCore/accessibility/gtk/AXObjectCacheAtk.cpp:195
&gt;&gt; +    // Sanity check
&gt; 
&gt; comment is unnecessary

Agreed :)

&gt;&gt; Source/WebCore/loader/FrameLoader.cpp:1123
&gt;&gt; +            : AXObjectCache::AXLoadingStarted;
&gt; 
&gt; probably not necessary to separate onto three lines

Well, it just looked better to my eyes but yeah... I agree it&apos;s not necessary. Will change that too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515078</commentid>
    <comment_count>7</comment_count>
      <attachid>117879</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-12-05 07:47:48 -0800</bug_when>
    <thetext>Created attachment 117879
Patch proposal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515156</commentid>
    <comment_count>8</comment_count>
      <attachid>117879</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-05 09:58:13 -0800</bug_when>
    <thetext>Comment on attachment 117879
Patch proposal

Attachment 117879 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10688644

New failing tests:
svg/custom/linking-uri-01-b.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515306</commentid>
    <comment_count>9</comment_count>
      <attachid>117879</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-12-05 12:37:26 -0800</bug_when>
    <thetext>Comment on attachment 117879
Patch proposal

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515480</commentid>
    <comment_count>10</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-12-05 16:11:17 -0800</bug_when>
    <thetext>Committed r102062: &lt;http://trac.webkit.org/changeset/102062&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117768</attachid>
            <date>2011-12-03 10:57:18 -0800</date>
            <delta_ts>2011-12-05 07:47:48 -0800</delta_ts>
            <desc>Patch proposal</desc>
            <filename>0001-2011-12-03-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>17585</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSBkNGY3MGYwOWViMTc1MThiYzlmZGIwZTg5MGZmYWZjY2Y3ZTE4YWIzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBTYXQsIDMgRGVjIDIwMTEgMTc6MDM6MDAgKzAxMDAKU3ViamVjdDogW1BBVENI
XSAyMDExLTEyLTAzICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4K
CiAgICAgICAgW0dUS10gTW92ZSBlbWlzc2lvbnMgb2YgQXRrRG9jdW1lbnQgc2lnbmFscyBkb3du
IHRvIFdlYkNvcmUKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzM3NTAKCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIElt
cGxlbWVudCB0aGUgbmVlZGVkIGluZnJhc3RydWN0dXJlIHRvIGFsbG93IG5vdGlmeWluZwogICAg
ICAgIGFjY2Vzc2liaWxpdHksIGluIGEgY3Jvc3MtcGxhdGZvcm0gd2F5LCB3aGVuIGEgZXZlbnQg
cmVsYXRlZCB0bwogICAgICAgIHRoZSBsb2FkIG9mIGEgZG9jdW1lbnQgaGFwcGVucy4gQWRkZWQg
YSBnZW5lcmljIG1ldGhvZCwgd2hpY2ggd2lsbAogICAgICAgIGJlIGNhbGxlZCBmcm9tIHRoZSBG
cmFtZUxvYWRlciwgYW5kIHBsYXRmb3JtIHNwZWNpZmljIHZlcnNpb25zIG9mCiAgICAgICAgaXQg
c28gZXZlcnkgcG9ydCBoYXMgYSBjaGFuY2UgdG8gZGVjaWRlIHdoYXQgdG8gZG8gd2l0aCB0aG9z
ZQogICAgICAgIG5vdGlmaWNhdGlvbnMuCgogICAgICAgIFRoaXMgcGF0Y2ggZG9lc24ndCBpbmNs
dWRlIGEgbmV3IHRlc3QgYmVjYXVzZSB0aGUgb25lIHRlc3RpbmcgdGhpcwogICAgICAgIGZ1bmN0
aW9uYWxpdHkgaXMgdGhlIEdUSy1zcGVjaWZpYyB1bml0IHRlc3QgYWRkZWQgYWxvbmcgd2l0aCBw
YXRjaAogICAgICAgIGZvciBidWcgNzM3NDY6IHRlc3RXZWJraXRBdGtEb2N1bWVudExvYWRpbmdF
dmVudHMuCgogICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CiAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmxvYWRpbmdFdmVudE5vdGlmaWNhdGlvbik6IE5ldywg
Y2FsbGVkCiAgICAgICAgZnJvbSB0aGUgRnJhbWVMb2FkZXIgdG8gbm90aWZ5IGFjY2Vzc2liaWxp
dHkgd2hlbiBhbiBldmVudCBoYXBwZW5zLgogICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpsb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IE5ldywKICAgICAgICBwbGF0Zm9y
bSBzcGVjaWZpYyBmdW5jdGlvbiB0byBsZXQgcG9ydHMgZGVjaWRlIHdoYXQgdG8gZG8uCiAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgogICAgICAgIChXZWJDb3JlOjpB
WE9iamVjdENhY2hlOjpsb2FkaW5nRXZlbnROb3RpZmljYXRpb24pOiBOZXcuCiAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHA6CiAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9u
KTogRHVtbXkKICAgICAgICBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgcGxhdGZvcm0gc3BlY2lmaWMg
ZnVuY3Rpb24gZm9yIGNocm9taXVtLgogICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQVhPYmpl
Y3RDYWNoZUF0ay5jcHA6CiAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmxvYWRpbmdF
dmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FY
T2JqZWN0Q2FjaGVNYWMubW06CiAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmxvYWRp
bmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKTogRHVtbXkKICAgICAgICBpbXBsZW1lbnRhdGlv
biBvZiB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgZnVuY3Rpb24gZm9yIHRoZSBNYWMuCiAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L3dpbi9BWE9iamVjdENhY2hlV2luLmNwcDoKICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6bG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOiBEdW1t
eQogICAgICAgIGltcGxlbWVudGF0aW9uIG9mIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBmdW5jdGlv
biBmb3IgV2luZG93cy4KCiAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgogICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6cHJlcGFyZUZvckxvYWRTdGFydCk6IE5vdGlmeSBhY2Nl
c3NpYmlsaXR5CiAgICAgICAgYnkgY2FsbGluZyB0aGUgbmV3IGxvYWRpbmdFdmVudE5vdGlmaWNh
dGlvbigpIGZ1bmN0aW9uLgogICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y2hlY2tMb2Fk
Q29tcGxldGVGb3JUaGlzRnJhbWUpOiBEaXR0by4KCjIwMTEtMTItMDMgIE1hcmlvIFNhbmNoZXog
UHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgoKICAgICAgICBbR1RLXSBNb3ZlIGVtaXNzaW9u
cyBvZiBBdGtEb2N1bWVudCBzaWduYWxzIGRvd24gdG8gV2ViQ29yZQogICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc1MAoKICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgUmVtb3ZlZCBjb2RlIGZvciBlbWlzc2lvbiBvZiBB
dGtEb2N1bWVudCBzaWduYWxzLgoKICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50R3RrLmNwcDoKICAgICAgICAoV2ViS2l0Ojpub3RpZnlTdGF0dXMpOiBSZW1vdmVkIG5v
IGxvbmdlciB1c2VkIGNvZGUuCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDQyICsrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgICAgIHwgICAxNCArKysrKysKIFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oICAgICAgIHwgICAxMiArKysr
KwogLi4uL2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHAgICAgICAgICAgICAgfCAg
ICA0ICsrCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BWE9iamVjdENhY2hlQXRrLmNw
cCB8ICAgMjkgKysrKysrKysrKysKIC4uLi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2Jq
ZWN0Q2FjaGVNYWMubW0gIHwgICAgNCArKwogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93aW4v
QVhPYmplY3RDYWNoZVdpbi5jcHAgfCAgICA0ICsrCiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwICAgICAgICAgICAgICB8ICAgMjMgKysrKysrKystCiBTb3VyY2UvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKysrKysKIC4uLi9n
dGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwICAgIHwgICA1MCAtLS0t
LS0tLS0tLS0tLS0tLS0tLQogMTAgZmlsZXMgY2hhbmdlZCwgMTQyIGluc2VydGlvbnMoKyksIDUy
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNjhiZTE4Li4wODM1NjdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNDUgQEAKKzIwMTEtMTItMDMgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2Fu
Y2hlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIE1vdmUgZW1pc3Npb25zIG9mIEF0a0Rv
Y3VtZW50IHNpZ25hbHMgZG93biB0byBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCB0aGUgbmVlZGVkIGluZnJhc3RydWN0dXJl
IHRvIGFsbG93IG5vdGlmeWluZworICAgICAgICBhY2Nlc3NpYmlsaXR5LCBpbiBhIGNyb3NzLXBs
YXRmb3JtIHdheSwgd2hlbiBhIGV2ZW50IHJlbGF0ZWQgdG8KKyAgICAgICAgdGhlIGxvYWQgb2Yg
YSBkb2N1bWVudCBoYXBwZW5zLiBBZGRlZCBhIGdlbmVyaWMgbWV0aG9kLCB3aGljaCB3aWxsCisg
ICAgICAgIGJlIGNhbGxlZCBmcm9tIHRoZSBGcmFtZUxvYWRlciwgYW5kIHBsYXRmb3JtIHNwZWNp
ZmljIHZlcnNpb25zIG9mCisgICAgICAgIGl0IHNvIGV2ZXJ5IHBvcnQgaGFzIGEgY2hhbmNlIHRv
IGRlY2lkZSB3aGF0IHRvIGRvIHdpdGggdGhvc2UKKyAgICAgICAgbm90aWZpY2F0aW9ucy4KKwor
ICAgICAgICBUaGlzIHBhdGNoIGRvZXNuJ3QgaW5jbHVkZSBhIG5ldyB0ZXN0IGJlY2F1c2UgdGhl
IG9uZSB0ZXN0aW5nIHRoaXMKKyAgICAgICAgZnVuY3Rpb25hbGl0eSBpcyB0aGUgR1RLLXNwZWNp
ZmljIHVuaXQgdGVzdCBhZGRlZCBhbG9uZyB3aXRoIHBhdGNoCisgICAgICAgIGZvciBidWcgNzM3
NDY6IHRlc3RXZWJraXRBdGtEb2N1bWVudExvYWRpbmdFdmVudHMuCisKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OmxvYWRpbmdFdmVudE5vdGlmaWNhdGlvbik6IE5ldywgY2FsbGVkCisgICAgICAgIGZyb20g
dGhlIEZyYW1lTG9hZGVyIHRvIG5vdGlmeSBhY2Nlc3NpYmlsaXR5IHdoZW4gYW4gZXZlbnQgaGFw
cGVucy4KKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmxvYWRpbmdFdmVudFBsYXRm
b3JtTm90aWZpY2F0aW9uKTogTmV3LAorICAgICAgICBwbGF0Zm9ybSBzcGVjaWZpYyBmdW5jdGlv
biB0byBsZXQgcG9ydHMgZGVjaWRlIHdoYXQgdG8gZG8uCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Omxv
YWRpbmdFdmVudE5vdGlmaWNhdGlvbik6IE5ldy4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2No
cm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpsb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IER1bW15CisgICAg
ICAgIGltcGxlbWVudGF0aW9uIG9mIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBmdW5jdGlvbiBmb3Ig
Y2hyb21pdW0uCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQVhPYmplY3RDYWNoZUF0ay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpsb2FkaW5nRXZlbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNo
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmxvYWRpbmdFdmVudFBs
YXRmb3JtTm90aWZpY2F0aW9uKTogRHVtbXkKKyAgICAgICAgaW1wbGVtZW50YXRpb24gb2YgdGhl
IHBsYXRmb3JtIHNwZWNpZmljIGZ1bmN0aW9uIGZvciB0aGUgTWFjLgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvd2luL0FYT2JqZWN0Q2FjaGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6bG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOiBEdW1teQorICAg
ICAgICBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgZnVuY3Rpb24gZm9y
IFdpbmRvd3MuCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXI6OnByZXBhcmVGb3JMb2FkU3RhcnQpOiBOb3RpZnkgYWNjZXNz
aWJpbGl0eQorICAgICAgICBieSBjYWxsaW5nIHRoZSBuZXcgbG9hZGluZ0V2ZW50Tm90aWZpY2F0
aW9uKCkgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y2hlY2tMb2Fk
Q29tcGxldGVGb3JUaGlzRnJhbWUpOiBEaXR0by4KKwogMjAxMS0xMS0zMCAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV1c2UgY2FjaGVkIHN0eWxlIGZ1bGx5
IGlmIHRoZSBwYXJlbnQgaW5oZXJpdGVkIHN0eWxlcyBhcmUgZXF1YWwgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBjYTE1NGE1Li5jNjA4
ODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAKQEAgLTUzOSw2ICs1MzksMjAgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5n
ZU5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBBWFRleHRDaGEKICAgICBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShyZW5kZXJlcik7CiAgICAgbm9kZVRl
eHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFuZ2UsIG9mZnNldCwgdGV4
dCk7CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6bG9hZGluZ0V2ZW50Tm90aWZpY2F0aW9uKEZy
YW1lKiBmcmFtZSwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQoreworICAgIGlmICghZnJh
bWUpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBwbGF0
Zm9ybQorICAgIFJlbmRlclZpZXcqIGNvbnRlbnRSZW5kZXJlciA9IGZyYW1lLT5jb250ZW50UmVu
ZGVyZXIoKTsKKyAgICBpZiAoIWNvbnRlbnRSZW5kZXJlcikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUoY29udGVudFJlbmRlcmVy
KTsKKyAgICBsb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIGxvYWRpbmdFdmVu
dCk7Cit9CiAjZW5kaWYKIAogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggZjliNDM0Ny4uYmQ5MDA5MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTE0
OCwxMSArMTQ4LDIxIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VOb3RpZmlj
YXRpb24oUmVuZGVyT2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0
IFN0cmluZyYpOwogCisgICAgZW51bSBBWExvYWRpbmdFdmVudCB7CisgICAgICAgIEFYTG9hZGlu
Z1N0YXJ0ZWQsCisgICAgICAgIEFYTG9hZGluZ1JlbG9hZCwKKyAgICAgICAgQVhMb2FkaW5nRmFp
bGVkLAorICAgICAgICBBWExvYWRpbmdGaW5pc2hlZAorICAgIH07CisKKyAgICB2b2lkIGxvYWRp
bmdFdmVudE5vdGlmaWNhdGlvbihGcmFtZSosIEFYTG9hZGluZ0V2ZW50KTsKKwogICAgIGJvb2wg
bm9kZUhhc1JvbGUoTm9kZSosIGNvbnN0IEF0b21pY1N0cmluZyYgcm9sZSk7CiAKIHByb3RlY3Rl
ZDoKICAgICB2b2lkIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiwgQVhOb3RpZmljYXRpb24pOwogICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgbG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KTsKIAogcHJpdmF0ZToK
ICAgICBEb2N1bWVudCogbV9kb2N1bWVudDsKQEAgLTE4Nyw2ICsxOTcsOCBAQCBpbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBE
b2N1bWVudCosIEFYTgogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlmaWNhdGlvbikgeyB9CiBpbmxp
bmUgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihSZW5kZXJP
YmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KIGlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmlu
ZyYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bG9hZGluZ0V2ZW50Tm90aWZpY2F0
aW9uKEZyYW1lKiwgQVhMb2FkaW5nRXZlbnQpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNo
ZTo6bG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYTG9hZGluZ0V2ZW50KSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUZv
Y3VzZWRVSUVsZW1lbnRDaGFuZ2VkKFJlbmRlck9iamVjdCosIFJlbmRlck9iamVjdCopIHsgfQog
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcihjb25zdCBO
b2RlKikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpjb250ZW50Q2hhbmdlZChSZW5k
ZXJPYmplY3QqKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
Y2hyb21pdW0vQVhPYmplY3RDYWNoZUNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvY2hyb21pdW0vQVhPYmplY3RDYWNoZUNocm9taXVtLmNwcAppbmRleCBmN2M1MzYx
Li45MTM2MTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2Nocm9t
aXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9jaHJvbWl1bS9BWE9iamVjdENhY2hlQ2hyb21pdW0uY3BwCkBAIC0xMDcsNiArMTA3
LDEwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUCiB7CiB9CiAKK3ZvaWQgQVhPYmplY3RDYWNo
ZTo6bG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYTG9hZGluZ0V2ZW50KQoreworfQorCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUZvY3Vz
ZWRVSUVsZW1lbnRDaGFuZ2VkKFJlbmRlck9iamVjdCosIFJlbmRlck9iamVjdCogbmV3Rm9jdXNl
ZFJlbmRlcmVyKQogewogICAgIGlmICghbmV3Rm9jdXNlZFJlbmRlcmVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQVhPYmplY3RDYWNoZUF0ay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BWE9iamVjdENhY2hlQXRrLmNwcAppbmRl
eCAxMjBkNzY3Li4wMzE3NjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2d0ay9BWE9iamVjdENhY2hlQXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2d0ay9BWE9iamVjdENhY2hlQXRrLmNwcApAQCAtMTkwLDYgKzE5MCwzNSBAQCB2b2lk
IEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCogb2JqZQogICAgIGVtaXRUZXh0Q2hhbmdlZChvYmplY3QsIHRleHRDaGFu
Z2UsIG9mZnNldCArIFRleHRJdGVyYXRvcjo6cmFuZ2VMZW5ndGgocmFuZ2UuZ2V0KCkpLCB0ZXh0
KTsKIH0KIAordm9pZCBBWE9iamVjdENhY2hlOjpsb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdF
dmVudCkKK3sKKyAgICAvLyBTYW5pdHkgY2hlY2sKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgQXRrT2JqZWN0KiBheE9iamVjdCA9IG9iamVjdC0+d3JhcHBlcigpOwor
ICAgIGlmICghYXhPYmplY3QgfHwgIUFUS19JU19ET0NVTUVOVChheE9iamVjdCkpCisgICAgICAg
IHJldHVybjsKKworICAgIHN3aXRjaCAobG9hZGluZ0V2ZW50KSB7CisgICAgY2FzZSBBWE9iamVj
dENhY2hlOjpBWExvYWRpbmdTdGFydGVkOgorICAgICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUo
YXhPYmplY3QsICJzdGF0ZS1jaGFuZ2UiLCAiYnVzeSIsIHRydWUpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYTG9hZGluZ1JlbG9hZDoKKyAgICAgICAgZ19zaWdu
YWxfZW1pdF9ieV9uYW1lKGF4T2JqZWN0LCAic3RhdGUtY2hhbmdlIiwgImJ1c3kiLCB0cnVlKTsK
KyAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGF4T2JqZWN0LCAicmVsb2FkIik7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhMb2FkaW5nRmFpbGVkOgorICAg
ICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUoYXhPYmplY3QsICJsb2FkLXN0b3BwZWQiKTsKKyAg
ICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGF4T2JqZWN0LCAic3RhdGUtY2hhbmdlIiwgImJ1
c3kiLCBmYWxzZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhM
b2FkaW5nRmluaXNoZWQ6CisgICAgICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShheE9iamVjdCwg
ImxvYWQtY29tcGxldGUiKTsKKyAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGF4T2JqZWN0
LCAic3RhdGUtY2hhbmdlIiwgImJ1c3kiLCBmYWxzZSk7CisgICAgICAgIGJyZWFrOworICAgIH0K
K30KKwogdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChS
ZW5kZXJPYmplY3QqIG9sZEZvY3VzZWRSZW5kZXIsIFJlbmRlck9iamVjdCogbmV3Rm9jdXNlZFJl
bmRlcikKIHsKICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gb2xkT2JqZWN0ID0gZ2V0
T3JDcmVhdGUob2xkRm9jdXNlZFJlbmRlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQppbmRleCA2YThjZmFmLi4xZjdhM2Ey
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENh
Y2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0
Q2FjaGVNYWMubW0KQEAgLTEzMiw2ICsxMzIsMTAgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpub2Rl
VGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFQK
IHsKIH0KIAordm9pZCBBWE9iamVjdENhY2hlOjpsb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhMb2FkaW5nRXZlbnQpCit7Cit9CisKIHZvaWQg
QVhPYmplY3RDYWNoZTo6aGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoUmVuZGVyT2JqZWN0
KiwgUmVuZGVyT2JqZWN0KikKIHsKICAgICB3a0FjY2Vzc2liaWxpdHlIYW5kbGVGb2N1c0NoYW5n
ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd2luL0FYT2Jq
ZWN0Q2FjaGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93aW4vQVhPYmpl
Y3RDYWNoZVdpbi5jcHAKaW5kZXggMmRiMDhjNy4uMDc2OWQ3ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93aW4vQVhPYmplY3RDYWNoZVdpbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93aW4vQVhPYmplY3RDYWNoZVdpbi5jcHAKQEAgLTEx
MSw2ICsxMTEsMTAgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFQKIHsKIH0KIAordm9pZCBBWE9i
amVjdENhY2hlOjpsb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiwgQVhMb2FkaW5nRXZlbnQpCit7Cit9CisKIEFYSUQgQVhPYmplY3RDYWNoZTo6cGxh
dGZvcm1HZW5lcmF0ZUFYSUQoKSBjb25zdAogewogICAgIHN0YXRpYyBBWElEIGxhc3RVc2VkSUQg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggNjdjNmNiYS4uMmM2
YjkyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0zNSw2ICszNSw3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKIAorI2lu
Y2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5o
IgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkJlZm9yZVVu
bG9hZEV2ZW50LmgiCkBAIC0xMTE0LDYgKzExMTUsMTUgQEAgdm9pZCBGcmFtZUxvYWRlcjo6cHJl
cGFyZUZvckxvYWRTdGFydCgpCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkp
CiAgICAgICAgIHBhZ2UtPnByb2dyZXNzKCktPnByb2dyZXNzU3RhcnRlZChtX2ZyYW1lKTsKICAg
ICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCgpOworCisgICAgLy8g
Tm90aWZ5IGFjY2Vzc2liaWxpdHkuCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxp
dHlFbmFibGVkKCkpIHsKKyAgICAgICAgQVhPYmplY3RDYWNoZTo6QVhMb2FkaW5nRXZlbnQgbG9h
ZGluZ0V2ZW50ID0gbG9hZFR5cGUoKSA9PSBGcmFtZUxvYWRUeXBlUmVsb2FkCisgICAgICAgICAg
ICA/IEFYT2JqZWN0Q2FjaGU6OkFYTG9hZGluZ1JlbG9hZAorICAgICAgICAgICAgOiBBWE9iamVj
dENhY2hlOjpBWExvYWRpbmdTdGFydGVkOworCisgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCkt
PmF4T2JqZWN0Q2FjaGUoKS0+bG9hZGluZ0V2ZW50Tm90aWZpY2F0aW9uKG1fZnJhbWUsIGxvYWRp
bmdFdmVudCk7CisgICAgfQogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpzZXR1cEZvclJlcGxhY2Uo
KQpAQCAtMjI2OSwxMCArMjI3OSwxOSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0xvYWRDb21w
bGV0ZUZvclRoaXNGcmFtZSgpCiAgICAgICAgICAgICAgICAgcGFnZS0+cHJvZ3Jlc3MoKS0+cHJv
Z3Jlc3NDb21wbGV0ZWQobV9mcmFtZSk7CiAKICAgICAgICAgICAgIGNvbnN0IFJlc291cmNlRXJy
b3ImIGVycm9yID0gZGwtPm1haW5Eb2N1bWVudEVycm9yKCk7Ci0gICAgICAgICAgICBpZiAoIWVy
cm9yLmlzTnVsbCgpKQorCisgICAgICAgICAgICBBWE9iamVjdENhY2hlOjpBWExvYWRpbmdFdmVu
dCBsb2FkaW5nRXZlbnQ7CisgICAgICAgICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKSB7CiAgICAg
ICAgICAgICAgICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkRmFpbExvYWQoZXJyb3IpOwotICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxvYWRpbmdFdmVudCA9IEFYT2JqZWN0Q2FjaGU6
OkFYTG9hZGluZ0ZhaWxlZDsKKyAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAg
bV9jbGllbnQtPmRpc3BhdGNoRGlkRmluaXNoTG9hZCgpOworICAgICAgICAgICAgICAgIGxvYWRp
bmdFdmVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYTG9hZGluZ0ZpbmlzaGVkOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAvLyBOb3RpZnkgYWNjZXNzaWJpbGl0eS4KKyAgICAgICAgICAgIGlm
IChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICAgICAgICAg
IG1fZnJhbWUtPmRvY3VtZW50KCktPmF4T2JqZWN0Q2FjaGUoKS0+bG9hZGluZ0V2ZW50Tm90aWZp
Y2F0aW9uKG1fZnJhbWUsIGxvYWRpbmdFdmVudCk7CiAKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDRiMzNiMjMuLjVmMGRiMTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cKQEAgLTEsNSArMSwxNyBAQAogMjAxMS0xMi0wMyAgTWFyaW8gU2FuY2hleiBQcmFkYSAg
PG1zYW5jaGV6QGlnYWxpYS5jb20+CiAKKyAgICAgICAgW0dUS10gTW92ZSBlbWlzc2lvbnMgb2Yg
QXRrRG9jdW1lbnQgc2lnbmFscyBkb3duIHRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNzUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCBjb2RlIGZvciBlbWlzc2lvbiBvZiBB
dGtEb2N1bWVudCBzaWduYWxzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0Ojpub3RpZnlTdGF0dXMpOiBSZW1vdmVk
IG5vIGxvbmdlciB1c2VkIGNvZGUuCisKKzIwMTEtMTItMDMgIE1hcmlvIFNhbmNoZXogUHJhZGEg
IDxtc2FuY2hlekBpZ2FsaWEuY29tPgorCiAgICAgICAgIFJlbW92aW5nIGRvY3VtZW50IHJlbGF0
ZWQgZXZlbnRzIGZyb20gRFJUCiAKICAgICAgICAgW0dUS10gRG9uJ3QgbG9nIGRvY3VtZW50IGV2
ZW50cyBpbiBEUlQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAppbmRleCAwYTE0YzEyLi43MzcwYjA3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRHdGsuY3BwCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRHdGsuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2Fj
aGUuaCIKLSNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCiAjaW5jbHVkZSAiQXJjaGl2
ZVJlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkRnJhbWUuaCIKICNpbmNsdWRlICJDb2xvci5o
IgpAQCAtMTI0LDUxICsxMjIsNiBAQCBTdHJpbmcgRnJhbWVMb2FkZXJDbGllbnQ6OnVzZXJBZ2Vu
dChjb25zdCBLVVJMJiB1cmwpCiAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgodXNlckFnZW50
U3RyaW5nLmdldCgpKTsKIH0KIAotc3RhdGljIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eVN0YXR1
cyhXZWJLaXRXZWJGcmFtZSogZnJhbWUsIFdlYktpdExvYWRTdGF0dXMgbG9hZFN0YXR1cykKLXsK
LSAgICBpZiAobG9hZFN0YXR1cyAhPSBXRUJLSVRfTE9BRF9QUk9WSVNJT05BTAotICAgICAgICAm
JiBsb2FkU3RhdHVzICE9IFdFQktJVF9MT0FEX0ZBSUxFRAotICAgICAgICAmJiBsb2FkU3RhdHVz
ICE9IFdFQktJVF9MT0FEX0ZJTklTSEVEKQotICAgICAgICByZXR1cm47Ci0KLSAgICBXZWJLaXRX
ZWJGcmFtZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKLSAgICBpZiAoIXByaXYtPmNvcmVG
cmFtZSB8fCAhcHJpdi0+Y29yZUZyYW1lLT5kb2N1bWVudCgpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBSZW5kZXJWaWV3KiBjb250ZW50UmVuZGVyZXIgPSBwcml2LT5jb3JlRnJhbWUtPmNvbnRl
bnRSZW5kZXJlcigpOwotICAgIGlmICghY29udGVudFJlbmRlcmVyKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBBWE9iamVjdENhY2hlKiBheE9iamVjdENhY2hlID0gcHJpdi0+Y29yZUZyYW1lLT5k
b2N1bWVudCgpLT5heE9iamVjdENhY2hlKCk7Ci0gICAgaWYgKCFheE9iamVjdENhY2hlKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlQXhPYmplY3QgPSBh
eE9iamVjdENhY2hlLT5nZXRPckNyZWF0ZShjb250ZW50UmVuZGVyZXIpOwotICAgIGlmICghY29y
ZUF4T2JqZWN0KQotICAgICAgICByZXR1cm47Ci0KLSAgICBBdGtPYmplY3QqIGF4T2JqZWN0ID0g
Y29yZUF4T2JqZWN0LT53cmFwcGVyKCk7Ci0gICAgaWYgKCFheE9iamVjdCB8fCAhQVRLX0lTX0RP
Q1VNRU5UKGF4T2JqZWN0KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc3dpdGNoIChsb2FkU3Rh
dHVzKSB7Ci0gICAgY2FzZSBXRUJLSVRfTE9BRF9QUk9WSVNJT05BTDoKLSAgICAgICAgZ19zaWdu
YWxfZW1pdF9ieV9uYW1lKGF4T2JqZWN0LCAic3RhdGUtY2hhbmdlIiwgImJ1c3kiLCB0cnVlKTsK
LSAgICAgICAgaWYgKGNvcmUoZnJhbWUpLT5sb2FkZXIoKS0+bG9hZFR5cGUoKSA9PSBGcmFtZUxv
YWRUeXBlUmVsb2FkKQotICAgICAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGF4T2JqZWN0
LCAicmVsb2FkIik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV0VCS0lUX0xPQURfRkFJTEVE
OgotICAgICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUoYXhPYmplY3QsICJsb2FkLXN0b3BwZWQi
KTsKLSAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGF4T2JqZWN0LCAic3RhdGUtY2hhbmdl
IiwgImJ1c3kiLCBmYWxzZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV0VCS0lUX0xPQURf
RklOSVNIRUQ6Ci0gICAgICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShheE9iamVjdCwgImxvYWQt
Y29tcGxldGUiKTsKLSAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGF4T2JqZWN0LCAic3Rh
dGUtY2hhbmdlIiwgImJ1c3kiLCBmYWxzZSk7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgYnJlYWs7
Ci0gICAgfQotfQotCiBzdGF0aWMgdm9pZCBub3RpZnlTdGF0dXMoV2ViS2l0V2ViRnJhbWUqIGZy
YW1lLCBXZWJLaXRMb2FkU3RhdHVzIGxvYWRTdGF0dXMpCiB7CiAgICAgZnJhbWUtPnByaXYtPmxv
YWRTdGF0dXMgPSBsb2FkU3RhdHVzOwpAQCAtMTc4LDkgKzEzMSw2IEBAIHN0YXRpYyB2b2lkIG5v
dGlmeVN0YXR1cyhXZWJLaXRXZWJGcmFtZSogZnJhbWUsIFdlYktpdExvYWRTdGF0dXMgbG9hZFN0
YXR1cykKICAgICBpZiAoZnJhbWUgPT0gd2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lKHdl
YlZpZXcpKSB7CiAgICAgICAgIHdlYlZpZXctPnByaXYtPmxvYWRTdGF0dXMgPSBsb2FkU3RhdHVz
OwogICAgICAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qod2ViVmlldyksICJsb2FkLXN0YXR1
cyIpOwotCi0gICAgICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
KQotICAgICAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eVN0YXR1cyhmcmFtZSwgbG9hZFN0YXR1
cyk7CiAgICAgfQogfQogCi0tIAoxLjcuNy4zCgo=
</data>
<flag name="commit-queue"
          id="117319"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117879</attachid>
            <date>2011-12-05 07:47:48 -0800</date>
            <delta_ts>2011-12-05 12:37:26 -0800</delta_ts>
            <desc>Patch proposal</desc>
            <filename>0001-2011-12-03-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>18000</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSA0OGIxM2Q1MWZjM2ZkMDBiYjNmNjA0MzdmNGI5M2E0ZWMxZjQzMzkwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBTYXQsIDMgRGVjIDIwMTEgMTc6MDM6MDAgKzAxMDAKU3ViamVjdDogW1BBVENI
XSAyMDExLTEyLTAzICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4K
CiAgICAgICAgW0dUS10gTW92ZSBlbWlzc2lvbnMgb2YgQXRrRG9jdW1lbnQgc2lnbmFscyBkb3du
IHRvIFdlYkNvcmUKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzM3NTAKCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIElt
cGxlbWVudCB0aGUgbmVlZGVkIGluZnJhc3RydWN0dXJlIHRvIGFsbG93IG5vdGlmeWluZwogICAg
ICAgIGFjY2Vzc2liaWxpdHksIGluIGEgY3Jvc3MtcGxhdGZvcm0gd2F5LCB3aGVuIGEgZXZlbnQg
cmVsYXRlZCB0bwogICAgICAgIHRoZSBsb2FkIG9mIGEgZG9jdW1lbnQgaGFwcGVucy4gQWRkZWQg
YSBnZW5lcmljIG1ldGhvZCwgd2hpY2ggd2lsbAogICAgICAgIGJlIGNhbGxlZCBmcm9tIHRoZSBG
cmFtZUxvYWRlciwgYW5kIHBsYXRmb3JtIHNwZWNpZmljIHZlcnNpb25zIG9mCiAgICAgICAgaXQg
c28gZXZlcnkgcG9ydCBoYXMgYSBjaGFuY2UgdG8gZGVjaWRlIHdoYXQgdG8gZG8gd2l0aCB0aG9z
ZQogICAgICAgIG5vdGlmaWNhdGlvbnMuCgogICAgICAgIFRoaXMgcGF0Y2ggZG9lc24ndCBpbmNs
dWRlIGEgbmV3IHRlc3QgYmVjYXVzZSB0aGUgb25lIHRlc3RpbmcgdGhpcwogICAgICAgIGZ1bmN0
aW9uYWxpdHkgaXMgdGhlIEdUSy1zcGVjaWZpYyB1bml0IHRlc3QgYWRkZWQgYWxvbmcgd2l0aCBw
YXRjaAogICAgICAgIGZvciBidWcgNzM3NDY6IHRlc3RXZWJraXRBdGtEb2N1bWVudExvYWRpbmdF
dmVudHMuCgogICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CiAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50Tm90aWZpY2F0aW9uKTog
TmV3LCBjYWxsZWQKICAgICAgICBmcm9tIHRoZSBGcmFtZUxvYWRlciB0byBub3RpZnkgYWNjZXNz
aWJpbGl0eSB3aGVuIGFuIGV2ZW50IGhhcHBlbnMuCiAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOiBOZXcsCiAgICAg
ICAgcGxhdGZvcm0gc3BlY2lmaWMgZnVuY3Rpb24gdG8gbGV0IHBvcnRzIGRlY2lkZSB3aGF0IHRv
IGRvLgogICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnROb3RpZmljYXRpb24pOiBO
ZXcuCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1
bS5jcHA6CiAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50
UGxhdGZvcm1Ob3RpZmljYXRpb24pOiBEdW1teQogICAgICAgIGltcGxlbWVudGF0aW9uIG9mIHRo
ZSBwbGF0Zm9ybSBzcGVjaWZpYyBmdW5jdGlvbiBmb3IgY2hyb21pdW0uCiAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2d0ay9BWE9iamVjdENhY2hlQXRrLmNwcDoKICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CiAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgogICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9u
KTogRHVtbXkKICAgICAgICBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgcGxhdGZvcm0gc3BlY2lmaWMg
ZnVuY3Rpb24gZm9yIHRoZSBNYWMuCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L3dpbi9BWE9iamVj
dENhY2hlV2luLmNwcDoKICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZnJhbWVMb2Fk
aW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IER1bW15CiAgICAgICAgaW1wbGVtZW50YXRp
b24gb2YgdGhlIHBsYXRmb3JtIHNwZWNpZmljIGZ1bmN0aW9uIGZvciBXaW5kb3dzLgoKICAgICAg
ICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CiAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
OjpwcmVwYXJlRm9yTG9hZFN0YXJ0KTogTm90aWZ5IGFjY2Vzc2liaWxpdHkKICAgICAgICBieSBj
YWxsaW5nIHRoZSBuZXcgZnJhbWVMb2FkaW5nRXZlbnROb3RpZmljYXRpb24oKSBmdW5jdGlvbi4K
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNrTG9hZENvbXBsZXRlRm9yVGhpc0Zy
YW1lKTogRGl0dG8uCgoyMDExLTEyLTAzICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpA
aWdhbGlhLmNvbT4KCiAgICAgICAgW0dUS10gTW92ZSBlbWlzc2lvbnMgb2YgQXRrRG9jdW1lbnQg
c2lnbmFscyBkb3duIHRvIFdlYkNvcmUKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzM3NTAKCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CgogICAgICAgIFJlbW92ZWQgY29kZSBmb3IgZW1pc3Npb24gb2YgQXRrRG9jdW1lbnQgc2lnbmFs
cy4KCiAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6CiAg
ICAgICAgKFdlYktpdDo6bm90aWZ5U3RhdHVzKTogUmVtb3ZlZCBubyBsb25nZXIgdXNlZCBjb2Rl
LgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICA0MiArKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuY3BwICAgICB8ICAgMTQgKysrKysrCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCAgICAgICB8ICAgMTIgKysrKysKIC4uLi9jaHJvbWl1bS9B
WE9iamVjdENhY2hlQ2hyb21pdW0uY3BwICAgICAgICAgICAgIHwgICAgNCArKwogLi4uL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9ndGsvQVhPYmplY3RDYWNoZUF0ay5jcHAgfCAgIDI5ICsrKysrKysr
KysrLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSAg
fCAgICA0ICsrCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dpbi9BWE9iamVjdENhY2hlV2lu
LmNwcCB8ICAgIDQgKysKIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgICAg
ICAgICAgICAgIHwgICAyMCArKysrKysrLQogU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDEyICsrKysrCiAuLi4vZ3RrL1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCAgICB8ICAgNTAgLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IDEwIGZpbGVzIGNoYW5nZWQsIDEzOCBpbnNlcnRpb25zKCspLCA1MyBkZWxldGlvbnMoLSkKCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggM2YzYTk4Zi4uYTFjNTdlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBA
CisyMDExLTEyLTAzICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4K
KworICAgICAgICBbR1RLXSBNb3ZlIGVtaXNzaW9ucyBvZiBBdGtEb2N1bWVudCBzaWduYWxzIGRv
d24gdG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzM3NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgdGhlIG5lZWRlZCBpbmZyYXN0cnVjdHVyZSB0byBhbGxvdyBub3RpZnlp
bmcKKyAgICAgICAgYWNjZXNzaWJpbGl0eSwgaW4gYSBjcm9zcy1wbGF0Zm9ybSB3YXksIHdoZW4g
YSBldmVudCByZWxhdGVkIHRvCisgICAgICAgIHRoZSBsb2FkIG9mIGEgZG9jdW1lbnQgaGFwcGVu
cy4gQWRkZWQgYSBnZW5lcmljIG1ldGhvZCwgd2hpY2ggd2lsbAorICAgICAgICBiZSBjYWxsZWQg
ZnJvbSB0aGUgRnJhbWVMb2FkZXIsIGFuZCBwbGF0Zm9ybSBzcGVjaWZpYyB2ZXJzaW9ucyBvZgor
ICAgICAgICBpdCBzbyBldmVyeSBwb3J0IGhhcyBhIGNoYW5jZSB0byBkZWNpZGUgd2hhdCB0byBk
byB3aXRoIHRob3NlCisgICAgICAgIG5vdGlmaWNhdGlvbnMuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBkb2Vzbid0IGluY2x1ZGUgYSBuZXcgdGVzdCBiZWNhdXNlIHRoZSBvbmUgdGVzdGluZyB0aGlz
CisgICAgICAgIGZ1bmN0aW9uYWxpdHkgaXMgdGhlIEdUSy1zcGVjaWZpYyB1bml0IHRlc3QgYWRk
ZWQgYWxvbmcgd2l0aCBwYXRjaAorICAgICAgICBmb3IgYnVnIDczNzQ2OiB0ZXN0V2Via2l0QXRr
RG9jdW1lbnRMb2FkaW5nRXZlbnRzLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmg6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdF
dmVudE5vdGlmaWNhdGlvbik6IE5ldywgY2FsbGVkCisgICAgICAgIGZyb20gdGhlIEZyYW1lTG9h
ZGVyIHRvIG5vdGlmeSBhY2Nlc3NpYmlsaXR5IHdoZW4gYW4gZXZlbnQgaGFwcGVucy4KKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3Rp
ZmljYXRpb24pOiBOZXcsCisgICAgICAgIHBsYXRmb3JtIHNwZWNpZmljIGZ1bmN0aW9uIHRvIGxl
dCBwb3J0cyBkZWNpZGUgd2hhdCB0byBkby4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZnJhbWVMb2Fk
aW5nRXZlbnROb3RpZmljYXRpb24pOiBOZXcuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9jaHJv
bWl1bS9BWE9iamVjdENhY2hlQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IER1bW15Cisg
ICAgICAgIGltcGxlbWVudGF0aW9uIG9mIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBmdW5jdGlvbiBm
b3IgY2hyb21pdW0uCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQVhPYmplY3RDYWNoZUF0
ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVu
dFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9i
amVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZnJhbWVM
b2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IER1bW15CisgICAgICAgIGltcGxlbWVu
dGF0aW9uIG9mIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBmdW5jdGlvbiBmb3IgdGhlIE1hYy4KKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L3dpbi9BWE9iamVjdENhY2hlV2luLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmlj
YXRpb24pOiBEdW1teQorICAgICAgICBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgcGxhdGZvcm0gc3Bl
Y2lmaWMgZnVuY3Rpb24gZm9yIFdpbmRvd3MuCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnByZXBhcmVGb3JMb2FkU3Rh
cnQpOiBOb3RpZnkgYWNjZXNzaWJpbGl0eQorICAgICAgICBieSBjYWxsaW5nIHRoZSBuZXcgZnJh
bWVMb2FkaW5nRXZlbnROb3RpZmljYXRpb24oKSBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyOjpjaGVja0xvYWRDb21wbGV0ZUZvclRoaXNGcmFtZSk6IERpdHRvLgorCiAy
MDExLTEyLTA1ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTAxOTgzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggMTJhYzMwNS4uMDhkMzlk
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CkBAIC01NDQsNiArNTQ0LDIwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VO
b3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgQVhUZXh0Q2hhCiAgICAgQWNjZXNz
aWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUocmVuZGVyZXIpOwogICAgIG5vZGVUZXh0
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlLCBvZmZzZXQsIHRleHQp
OwogfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50Tm90aWZpY2F0aW9u
KEZyYW1lKiBmcmFtZSwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQoreworICAgIGlmICgh
ZnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBw
bGF0Zm9ybQorICAgIFJlbmRlclZpZXcqIGNvbnRlbnRSZW5kZXJlciA9IGZyYW1lLT5jb250ZW50
UmVuZGVyZXIoKTsKKyAgICBpZiAoIWNvbnRlbnRSZW5kZXJlcikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUoY29udGVudFJlbmRl
cmVyKTsKKyAgICBmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgbG9h
ZGluZ0V2ZW50KTsKK30KICNlbmRpZgogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCA5MGY4ODY2Li41
NjBlMGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aApAQCAtMTQ5LDExICsxNDksMjEgQEAgcHVibGljOgogCiAgICAgdm9pZCBub2RlVGV4dENoYW5n
ZU5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNl
dCwgY29uc3QgU3RyaW5nJik7CiAKKyAgICBlbnVtIEFYTG9hZGluZ0V2ZW50IHsKKyAgICAgICAg
QVhMb2FkaW5nU3RhcnRlZCwKKyAgICAgICAgQVhMb2FkaW5nUmVsb2FkZWQsCisgICAgICAgIEFY
TG9hZGluZ0ZhaWxlZCwKKyAgICAgICAgQVhMb2FkaW5nRmluaXNoZWQKKyAgICB9OworCisgICAg
dm9pZCBmcmFtZUxvYWRpbmdFdmVudE5vdGlmaWNhdGlvbihGcmFtZSosIEFYTG9hZGluZ0V2ZW50
KTsKKwogICAgIGJvb2wgbm9kZUhhc1JvbGUoTm9kZSosIGNvbnN0IEF0b21pY1N0cmluZyYgcm9s
ZSk7CiAKIHByb3RlY3RlZDoKICAgICB2b2lkIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmljYXRpb24pOwogICAgIHZvaWQgbm9kZVRleHRDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdl
LCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgZnJhbWVMb2FkaW5n
RXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhMb2FkaW5n
RXZlbnQpOwogCiBwcml2YXRlOgogICAgIERvY3VtZW50KiBtX2RvY3VtZW50OwpAQCAtMTg5LDYg
KzE5OSw4IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOCiBpbmxpbmUgdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90
aWZpY2F0aW9uKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdl
Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0
IFN0cmluZyYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1
bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpm
cmFtZUxvYWRpbmdFdmVudE5vdGlmaWNhdGlvbihGcmFtZSosIEFYTG9hZGluZ0V2ZW50KSB7IH0K
K2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KSB7IH0KIGlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKFJlbmRl
ck9iamVjdCosIFJlbmRlck9iamVjdCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6
aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcihjb25zdCBOb2RlKikgeyB9CiBpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpjb250ZW50Q2hhbmdlZChSZW5kZXJPYmplY3QqKSB7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvY2hyb21pdW0vQVhPYmplY3RDYWNoZUNocm9t
aXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvY2hyb21pdW0vQVhPYmplY3RD
YWNoZUNocm9taXVtLmNwcAppbmRleCBmN2M1MzYxLi5lMDFhYWJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9jaHJvbWl1bS9BWE9iamVjdENh
Y2hlQ2hyb21pdW0uY3BwCkBAIC0xMDcsNiArMTA3LDEwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6
bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
QVhUCiB7CiB9CiAKK3ZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhMb2FkaW5nRXZlbnQpCit7Cit9
CisKIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoUmVu
ZGVyT2JqZWN0KiwgUmVuZGVyT2JqZWN0KiBuZXdGb2N1c2VkUmVuZGVyZXIpCiB7CiAgICAgaWYg
KCFuZXdGb2N1c2VkUmVuZGVyZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2d0ay9BWE9iamVjdENhY2hlQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvZ3RrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCmluZGV4IDEyMGQ3NjcuLjBkYzRlNTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FYT2JqZWN0Q2FjaGVB
dGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FYT2JqZWN0Q2Fj
aGVBdGsuY3BwCkBAIC0xODEsNyArMTgxLDYgQEAgc3RhdGljIHZvaWQgZW1pdFRleHRDaGFuZ2Vk
KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2gKIAog
dm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewotICAgIC8vIFNhbml0eSBjaGVjawog
ICAgIGlmICghb2JqZWN0IHx8ICFvYmplY3QtPmlzQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgp
IHx8IHRleHQuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTE5MCw2ICsxODksMzQg
QEAgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamUKICAgICBlbWl0VGV4dENoYW5nZWQob2JqZWN0LCB0
ZXh0Q2hhbmdlLCBvZmZzZXQgKyBUZXh0SXRlcmF0b3I6OnJhbmdlTGVuZ3RoKHJhbmdlLmdldCgp
KSwgdGV4dCk7CiB9CiAKK3ZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYTG9hZGluZ0V2
ZW50IGxvYWRpbmdFdmVudCkKK3sKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgQXRrT2JqZWN0KiBheE9iamVjdCA9IG9iamVjdC0+d3JhcHBlcigpOworICAgIGlmICgh
YXhPYmplY3QgfHwgIUFUS19JU19ET0NVTUVOVChheE9iamVjdCkpCisgICAgICAgIHJldHVybjsK
KworICAgIHN3aXRjaCAobG9hZGluZ0V2ZW50KSB7CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpB
WExvYWRpbmdTdGFydGVkOgorICAgICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUoYXhPYmplY3Qs
ICJzdGF0ZS1jaGFuZ2UiLCAiYnVzeSIsIHRydWUpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEFYT2JqZWN0Q2FjaGU6OkFYTG9hZGluZ1JlbG9hZGVkOgorICAgICAgICBnX3NpZ25hbF9lbWl0
X2J5X25hbWUoYXhPYmplY3QsICJzdGF0ZS1jaGFuZ2UiLCAiYnVzeSIsIHRydWUpOworICAgICAg
ICBnX3NpZ25hbF9lbWl0X2J5X25hbWUoYXhPYmplY3QsICJyZWxvYWQiKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWExvYWRpbmdGYWlsZWQ6CisgICAgICAgIGdf
c2lnbmFsX2VtaXRfYnlfbmFtZShheE9iamVjdCwgImxvYWQtc3RvcHBlZCIpOworICAgICAgICBn
X3NpZ25hbF9lbWl0X2J5X25hbWUoYXhPYmplY3QsICJzdGF0ZS1jaGFuZ2UiLCAiYnVzeSIsIGZh
bHNlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWExvYWRpbmdG
aW5pc2hlZDoKKyAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGF4T2JqZWN0LCAibG9hZC1j
b21wbGV0ZSIpOworICAgICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUoYXhPYmplY3QsICJzdGF0
ZS1jaGFuZ2UiLCAiYnVzeSIsIGZhbHNlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCiB2
b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKFJlbmRlck9i
amVjdCogb2xkRm9jdXNlZFJlbmRlciwgUmVuZGVyT2JqZWN0KiBuZXdGb2N1c2VkUmVuZGVyKQog
ewogICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBvbGRPYmplY3QgPSBnZXRPckNyZWF0
ZShvbGRGb2N1c2VkUmVuZGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IDZhOGNmYWYuLjUwZTJiYmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1h
Yy5tbQpAQCAtMTMyLDYgKzEzMiwxMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVAogewogfQog
Cit2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KQoreworfQorCiB2b2lkIEFY
T2JqZWN0Q2FjaGU6OmhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKFJlbmRlck9iamVjdCos
IFJlbmRlck9iamVjdCopCiB7CiAgICAgd2tBY2Nlc3NpYmlsaXR5SGFuZGxlRm9jdXNDaGFuZ2Vk
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dpbi9BWE9iamVj
dENhY2hlV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd2luL0FYT2JqZWN0
Q2FjaGVXaW4uY3BwCmluZGV4IDJkYjA4YzcuLjdhZDdhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvd2luL0FYT2JqZWN0Q2FjaGVXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd2luL0FYT2JqZWN0Q2FjaGVXaW4uY3BwCkBAIC0xMTEs
NiArMTExLDEwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUCiB7CiB9CiAKK3ZvaWQgQVhPYmpl
Y3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiwgQVhMb2FkaW5nRXZlbnQpCit7Cit9CisKIEFYSUQgQVhPYmplY3RDYWNoZTo6
cGxhdGZvcm1HZW5lcmF0ZUFYSUQoKSBjb25zdAogewogICAgIHN0YXRpYyBBWElEIGxhc3RVc2Vk
SUQgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggNjdjNmNiYS4u
MmYwMTVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0zNSw2ICsz
NSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKIAor
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9z
dC5oIgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkJlZm9y
ZVVubG9hZEV2ZW50LmgiCkBAIC0xMTE0LDYgKzExMTUsMTIgQEAgdm9pZCBGcmFtZUxvYWRlcjo6
cHJlcGFyZUZvckxvYWRTdGFydCgpCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdl
KCkpCiAgICAgICAgIHBhZ2UtPnByb2dyZXNzKCktPnByb2dyZXNzU3RhcnRlZChtX2ZyYW1lKTsK
ICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCgpOworCisgICAg
Ly8gTm90aWZ5IGFjY2Vzc2liaWxpdHkuCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgQVhPYmplY3RDYWNoZTo6QVhMb2FkaW5nRXZlbnQg
bG9hZGluZ0V2ZW50ID0gbG9hZFR5cGUoKSA9PSBGcmFtZUxvYWRUeXBlUmVsb2FkID8gQVhPYmpl
Y3RDYWNoZTo6QVhMb2FkaW5nUmVsb2FkZWQgOiBBWE9iamVjdENhY2hlOjpBWExvYWRpbmdTdGFy
dGVkOworICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5heE9iamVjdENhY2hlKCktPmZyYW1l
TG9hZGluZ0V2ZW50Tm90aWZpY2F0aW9uKG1fZnJhbWUsIGxvYWRpbmdFdmVudCk7CisgICAgfQog
fQogCiB2b2lkIEZyYW1lTG9hZGVyOjpzZXR1cEZvclJlcGxhY2UoKQpAQCAtMjI2OSwxMCArMjI3
NiwxOSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0xvYWRDb21wbGV0ZUZvclRoaXNGcmFtZSgp
CiAgICAgICAgICAgICAgICAgcGFnZS0+cHJvZ3Jlc3MoKS0+cHJvZ3Jlc3NDb21wbGV0ZWQobV9m
cmFtZSk7CiAKICAgICAgICAgICAgIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yID0gZGwtPm1h
aW5Eb2N1bWVudEVycm9yKCk7Ci0gICAgICAgICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKQorCisg
ICAgICAgICAgICBBWE9iamVjdENhY2hlOjpBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQ7Cisg
ICAgICAgICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKSB7CiAgICAgICAgICAgICAgICAgbV9jbGll
bnQtPmRpc3BhdGNoRGlkRmFpbExvYWQoZXJyb3IpOwotICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIGxvYWRpbmdFdmVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYTG9hZGluZ0ZhaWxlZDsK
KyAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpc3BhdGNo
RGlkRmluaXNoTG9hZCgpOworICAgICAgICAgICAgICAgIGxvYWRpbmdFdmVudCA9IEFYT2JqZWN0
Q2FjaGU6OkFYTG9hZGluZ0ZpbmlzaGVkOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAv
LyBOb3RpZnkgYWNjZXNzaWJpbGl0eS4KKyAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlOjph
Y2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICAgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50
KCktPmF4T2JqZWN0Q2FjaGUoKS0+ZnJhbWVMb2FkaW5nRXZlbnROb3RpZmljYXRpb24obV9mcmFt
ZSwgbG9hZGluZ0V2ZW50KTsKIAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cKaW5kZXggZWY2MGJmZS4uZGUyNTY5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDExLTEyLTAzICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdh
bGlhLmNvbT4KKworICAgICAgICBbR1RLXSBNb3ZlIGVtaXNzaW9ucyBvZiBBdGtEb2N1bWVudCBz
aWduYWxzIGRvd24gdG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzM3NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW1vdmVkIGNvZGUgZm9yIGVtaXNzaW9uIG9mIEF0a0RvY3VtZW50IHNp
Z25hbHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHA6CisgICAgICAgIChXZWJLaXQ6Om5vdGlmeVN0YXR1cyk6IFJlbW92ZWQgbm8gbG9uZ2VyIHVz
ZWQgY29kZS4KKwogMjAxMS0xMi0wNCAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGln
YWxpYS5jb20+CiAKICAgICAgICAgW0d0a10gQ2hlY2sgZm9yIHRoZSBsb2FkLWNvbXBsZXRlIGV2
ZW50IG9ubHkgaW4gdGhlIHVuaXQgdGVzdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKaW5kZXggZTdiOTZm
Zi4uZDkwN2IyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcApAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50R3RrLmgiCiAKLSNpbmNs
dWRlICJBWE9iamVjdENhY2hlLmgiCi0jaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU9iamVjdC5oIgog
I2luY2x1ZGUgIkFyY2hpdmVSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNhY2hlZEZyYW1lLmgiCiAj
aW5jbHVkZSAiQ29sb3IuaCIKQEAgLTEyNCw1MSArMTIyLDYgQEAgU3RyaW5nIEZyYW1lTG9hZGVy
Q2xpZW50Ojp1c2VyQWdlbnQoY29uc3QgS1VSTCYgdXJsKQogICAgIHJldHVybiBTdHJpbmc6OmZy
b21VVEY4KHVzZXJBZ2VudFN0cmluZy5nZXQoKSk7CiB9CiAKLXN0YXRpYyB2b2lkIG5vdGlmeUFj
Y2Vzc2liaWxpdHlTdGF0dXMoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBXZWJLaXRMb2FkU3RhdHVz
IGxvYWRTdGF0dXMpCi17Ci0gICAgaWYgKGxvYWRTdGF0dXMgIT0gV0VCS0lUX0xPQURfUFJPVklT
SU9OQUwKLSAgICAgICAgJiYgbG9hZFN0YXR1cyAhPSBXRUJLSVRfTE9BRF9GQUlMRUQKLSAgICAg
ICAgJiYgbG9hZFN0YXR1cyAhPSBXRUJLSVRfTE9BRF9GSU5JU0hFRCkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUtPnByaXY7Ci0gICAg
aWYgKCFwcml2LT5jb3JlRnJhbWUgfHwgIXByaXYtPmNvcmVGcmFtZS0+ZG9jdW1lbnQoKSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgUmVuZGVyVmlldyogY29udGVudFJlbmRlcmVyID0gcHJpdi0+
Y29yZUZyYW1lLT5jb250ZW50UmVuZGVyZXIoKTsKLSAgICBpZiAoIWNvbnRlbnRSZW5kZXJlcikK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgQVhPYmplY3RDYWNoZSogYXhPYmplY3RDYWNoZSA9IHBy
aXYtPmNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+YXhPYmplY3RDYWNoZSgpOwotICAgIGlmICghYXhP
YmplY3RDYWNoZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCog
Y29yZUF4T2JqZWN0ID0gYXhPYmplY3RDYWNoZS0+Z2V0T3JDcmVhdGUoY29udGVudFJlbmRlcmVy
KTsKLSAgICBpZiAoIWNvcmVBeE9iamVjdCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQXRrT2Jq
ZWN0KiBheE9iamVjdCA9IGNvcmVBeE9iamVjdC0+d3JhcHBlcigpOwotICAgIGlmICghYXhPYmpl
Y3QgfHwgIUFUS19JU19ET0NVTUVOVChheE9iamVjdCkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IHN3aXRjaCAobG9hZFN0YXR1cykgewotICAgIGNhc2UgV0VCS0lUX0xPQURfUFJPVklTSU9OQUw6
Ci0gICAgICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShheE9iamVjdCwgInN0YXRlLWNoYW5nZSIs
ICJidXN5IiwgdHJ1ZSk7Ci0gICAgICAgIGlmIChjb3JlKGZyYW1lKS0+bG9hZGVyKCktPmxvYWRU
eXBlKCkgPT0gRnJhbWVMb2FkVHlwZVJlbG9hZCkKLSAgICAgICAgICAgIGdfc2lnbmFsX2VtaXRf
YnlfbmFtZShheE9iamVjdCwgInJlbG9hZCIpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdF
QktJVF9MT0FEX0ZBSUxFRDoKLSAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGF4T2JqZWN0
LCAibG9hZC1zdG9wcGVkIik7Ci0gICAgICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShheE9iamVj
dCwgInN0YXRlLWNoYW5nZSIsICJidXN5IiwgZmFsc2UpOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIFdFQktJVF9MT0FEX0ZJTklTSEVEOgotICAgICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUo
YXhPYmplY3QsICJsb2FkLWNvbXBsZXRlIik7Ci0gICAgICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFt
ZShheE9iamVjdCwgInN0YXRlLWNoYW5nZSIsICJidXN5IiwgZmFsc2UpOwotICAgIGRlZmF1bHQ6
Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLX0KLQogc3RhdGljIHZvaWQgbm90aWZ5U3RhdHVzKFdl
YktpdFdlYkZyYW1lKiBmcmFtZSwgV2ViS2l0TG9hZFN0YXR1cyBsb2FkU3RhdHVzKQogewogICAg
IGZyYW1lLT5wcml2LT5sb2FkU3RhdHVzID0gbG9hZFN0YXR1czsKQEAgLTE3OCw5ICsxMzEsNiBA
QCBzdGF0aWMgdm9pZCBub3RpZnlTdGF0dXMoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBXZWJLaXRM
b2FkU3RhdHVzIGxvYWRTdGF0dXMpCiAgICAgaWYgKGZyYW1lID09IHdlYmtpdF93ZWJfdmlld19n
ZXRfbWFpbl9mcmFtZSh3ZWJWaWV3KSkgewogICAgICAgICB3ZWJWaWV3LT5wcml2LT5sb2FkU3Rh
dHVzID0gbG9hZFN0YXR1czsKICAgICAgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHdlYlZp
ZXcpLCAibG9hZC1zdGF0dXMiKTsKLQotICAgICAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNz
aWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlTdGF0dXMo
ZnJhbWUsIGxvYWRTdGF0dXMpOwogICAgIH0KIH0KIAotLSAKMS43LjcuMwoK
</data>
<flag name="review"
          id="117471"
          type_id="1"
          status="+"
          setter="cfleizach"
    />
    <flag name="commit-queue"
          id="117491"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>