<?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>72753</bug_id>
          
          <creation_ts>2011-11-18 13:30:29 -0800</creation_ts>
          <short_desc>[WK2][Qt] Move Accelerated Composite animations to UIProcess</short_desc>
          <delta_ts>2011-11-27 10:36:52 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>72806</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Igor Trindade Oliveira">igor.oliveira</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>arvid2.nilsson</cc>
    
    <cc>dglazkov</cc>
    
    <cc>hausmann</cc>
    
    <cc>noam</cc>
    
    <cc>ossy</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>506009</commentid>
    <comment_count>0</comment_count>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2011-11-18 13:30:29 -0800</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506017</commentid>
    <comment_count>1</comment_count>
      <attachid>115864</attachid>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2011-11-18 13:39:43 -0800</bug_when>
    <thetext>Created attachment 115864
Patch

Proposed patch version 1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506111</commentid>
    <comment_count>2</comment_count>
      <attachid>115864</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-11-18 15:14:59 -0800</bug_when>
    <thetext>Comment on attachment 115864
Patch

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

Awesome! See comments, they are mainly nitpicks.

&gt; Source/WebCore/ChangeLog:6
&gt; +        Add helper method to synchronize animations.

... in TextureMapper.

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperNode.cpp:987
&gt; +void TextureMapperNode::syncAnimationsRecursively(GraphicsLayerTextureMapper* graphicsLayer)

The argument might not be necessary. See next comment.

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperNode.cpp:994
&gt; +        Vector&lt;GraphicsLayer*&gt; children = graphicsLayer-&gt;children();

You probably want to use the TextureMapperNode&apos;s children and not the graphicsLayer&apos;s children, otherwise you might be syncing animations for items that aren&apos;t in the synchronized tree yet.

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperNode.cpp:1000
&gt; +        }

early return.

&gt; Source/WebKit2/UIProcess/LayerTreeHostProxy.h:129
&gt; +    void updateSceneGraphUpdateTimerFired(Timer&lt;LayerTreeHostProxy&gt;*);

I believe the convention is didFireViewportUpdateTimer

&gt; Source/WebKit2/UIProcess/LayerTreeHostProxy.h:130
&gt; +    Timer&lt;LayerTreeHostProxy&gt; m_sceneGraphUpdateTimer;

Let&apos;s use viewport instead of scenegraph

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:283
&gt; +#if PLATFORM(QT)

Why QT only? This seems cross-platform. Nobody else uses WebGraphicsLayer yet so don&apos;t worry :)

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:306
&gt; +#if PLATFORM(QT)

ditto

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:318
&gt; +#if PLATFORM(QT)

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506162</commentid>
    <comment_count>3</comment_count>
      <attachid>115897</attachid>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2011-11-18 15:57:58 -0800</bug_when>
    <thetext>Created attachment 115897
Patch

Patch v2. Implement all suggestions proposed by Noam.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506199</commentid>
    <comment_count>4</comment_count>
      <attachid>115907</attachid>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2011-11-18 16:34:24 -0800</bug_when>
    <thetext>Created attachment 115907
Patch

Patch v2. Improve Changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506219</commentid>
    <comment_count>5</comment_count>
      <attachid>115907</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-11-18 16:57:20 -0800</bug_when>
    <thetext>Comment on attachment 115907
Patch

Awsomeness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506271</commentid>
    <comment_count>6</comment_count>
      <attachid>115907</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-18 18:23:49 -0800</bug_when>
    <thetext>Comment on attachment 115907
Patch

Clearing flags on attachment: 115907

Committed r100834: &lt;http://trac.webkit.org/changeset/100834&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506272</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-18 18:23:53 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506389</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-11-19 05:33:50 -0800</bug_when>
    <thetext>Many tests started to crash after this patch:
http://build.webkit.sed.hu/results/x86-32%20Linux%20Qt%20Release%20WebKit2/r100834%20%2815660%29/results.html

Unfortunately it made run-webkit-test exit before finishing. :(

Could you check it please as soon as possible?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506391</commentid>
    <comment_count>9</comment_count>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2011-11-19 05:42:32 -0800</bug_when>
    <thetext>Ok Ossy, i am investigating right now


(In reply to comment #8)
&gt; Many tests started to crash after this patch:
&gt; http://build.webkit.sed.hu/results/x86-32%20Linux%20Qt%20Release%20WebKit2/r100834%20%2815660%29/results.html
&gt; 
&gt; Unfortunately it made run-webkit-test exit before finishing. :(
&gt; 
&gt; Could you check it please as soon as possible?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506820</commentid>
    <comment_count>10</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-11-21 02:42:59 -0800</bug_when>
    <thetext>Rolled out by http://trac.webkit.org/changeset/100859</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506913</commentid>
    <comment_count>11</comment_count>
      <attachid>116076</attachid>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2011-11-21 06:32:34 -0800</bug_when>
    <thetext>Created attachment 116076
Patch

Proposed patch. This patch fixes the crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506929</commentid>
    <comment_count>12</comment_count>
      <attachid>116076</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-11-21 07:02:18 -0800</bug_when>
    <thetext>Comment on attachment 116076
Patch

Cool, Please commit yourself when you can watch the bots :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506999</commentid>
    <comment_count>13</comment_count>
      <attachid>116076</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-21 08:42:14 -0800</bug_when>
    <thetext>Comment on attachment 116076
Patch

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

New failing tests:
inspector/extensions/extensions-events.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509447</commentid>
    <comment_count>14</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-11-27 10:14:02 -0800</bug_when>
    <thetext>Igor, should we close this bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509450</commentid>
    <comment_count>15</comment_count>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2011-11-27 10:36:52 -0800</bug_when>
    <thetext>Committed r100922: http://trac.webkit.org/changeset/100922

(In reply to comment #14)
&gt; Igor, should we close this bug?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115864</attachid>
            <date>2011-11-18 13:39:43 -0800</date>
            <delta_ts>2011-11-18 15:57:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-WK2-Qt-Move-Accelerated-Composite-animations-to-UIPr.patch</filename>
            <type>text/plain</type>
            <size>20410</size>
            <attacher name="Igor Trindade Oliveira">igor.oliveira</attacher>
            
              <data encoding="base64">RnJvbSBiZDcyOTNhMGI4YmVjMjZiMjU2MjI0MjNiZTYxMWU0MTAxMWQ1MmRhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJZ29yIE9saXZlaXJhIDxpZ29yLm9saXZlaXJhQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IEZyaSwgMTggTm92IDIwMTEgMTY6NTg6NTYgLTA0MDAKU3ViamVjdDogW1BB
VENIXSBbV0syXVtRdF0gTW92ZSBBY2NlbGVyYXRlZCBDb21wb3NpdGUgYW5pbWF0aW9ucyB0byBV
SVByb2Nlc3MKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDEzICsrKysrCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJOb2RlLmNwcCB8ICAgMjAgKysrKysrKysKIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaCAgIHwgICAgMSArCiBTb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzQgKysrKysrKysrKysrKysKIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwICAgIHwgICA0OCAr
KysrKysrKysrLS0tLS0tLS0tLQogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oICAgICAgfCAgICA2ICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTGF5ZXJU
cmVlSW5mby5jcHAgICAgICAgICB8ICAgMjQgKysrKysrKysrLQogU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkxheWVyVHJlZUluZm8uaCAgICAgICAgICAgfCAgIDIwICsrKysrKysrCiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmggICAgICB8ICAgIDUgKysKIC4u
Li9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXllclRyZWVIb3N0UHJveHlRdC5jcHAgIHwgICAzMiAr
KysrKysrKysrKystCiAuLi4vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xh
eWVyLmNwcCB8ICAgMzQgKysrKysrKysrKysrKysKIDExIGZpbGVzIGNoYW5nZWQsIDIwNiBpbnNl
cnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTZiYjBmZC4uNDg0NDI4
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDExLTExLTE4ICBJZ29yIE9saXZlaXJh
ICA8aWdvci5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFtXSzJdW1F0XSBNb3Zl
IEFjY2VsZXJhdGVkIENvbXBvc2l0ZSBhbmltYXRpb25zIHRvIFVJUHJvY2VzcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3NTMKKworICAgICAgICBB
ZGQgaGVscGVyIG1ldGhvZCB0byBzeW5jaHJvbml6ZSBhbmltYXRpb25zLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVN
YXBwZXJOb2RlOjpzeW5jQW5pbWF0aW9uc1JlY3Vyc2l2ZWx5KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaDoKKwogMjAxMS0xMS0xOCAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICAtd2Via2l0LWNy
b3NzLWZhZGUgcmVuZGVyZWQgaW5jb3JyZWN0bHkgaW4gb3ZlcmZsb3cgZGl2cwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJO
b2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyTm9kZS5jcHAKaW5kZXggYWI1OTcwMy4uZWNmNjRiNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ck5vZGUuY3BwCkBAIC05ODQsNiArOTg0LDI2IEBAIHZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OnN5
bmNBbmltYXRpb25zKEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiBsYXllcikKICAgICB9CiB9
CiAKK3ZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OnN5bmNBbmltYXRpb25zUmVjdXJzaXZlbHkoR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXIqIGdyYXBoaWNzTGF5ZXIpCit7CisgICAgc3luY0FuaW1h
dGlvbnMoZ3JhcGhpY3NMYXllcik7CisKKyAgICBjb21wdXRlQWxsVHJhbnNmb3JtcygpOworCisg
ICAgaWYgKGdyYXBoaWNzTGF5ZXIpIHsKKyAgICAgICAgVmVjdG9yPEdyYXBoaWNzTGF5ZXIqPiBj
aGlsZHJlbiA9IGdyYXBoaWNzTGF5ZXItPmNoaWxkcmVuKCk7CisgICAgICAgIGZvciAoaW50IGkg
PSBjaGlsZHJlbi5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgeworICAgICAgICAgICAgVGV4dHVy
ZU1hcHBlck5vZGUqIG5vZGUgPSB0b1RleHR1cmVNYXBwZXJOb2RlKGNoaWxkcmVuW2ldKTsKKyAg
ICAgICAgICAgIGlmICghbm9kZSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgIG5vZGUtPnN5bmNBbmltYXRpb25zUmVjdXJzaXZlbHkodG9HcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlcihjaGlsZHJlbltpXSkpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAg
Zm9yIChpbnQgaSA9IG1fY2hpbGRyZW4uc2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpCisgICAgICAg
ICAgbV9jaGlsZHJlbltpXS0+c3luY0FuaW1hdGlvbnNSZWN1cnNpdmVseSgwKTsKKyAgICB9Cit9
CisKIHZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OnN5bmNDb21wb3NpdGluZ1N0YXRlKEdyYXBoaWNz
TGF5ZXJUZXh0dXJlTWFwcGVyKiBncmFwaGljc0xheWVyLCBUZXh0dXJlTWFwcGVyKiB0ZXh0dXJl
TWFwcGVyLCBpbnQgb3B0aW9ucykKIHsKICAgICBpZiAoZ3JhcGhpY3NMYXllciAmJiAhKG9wdGlv
bnMgJiBDb21wdXRhdGlvbnNPbmx5KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaAppbmRleCA0YTRm
Y2ZmLi45NTI3MzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaApAQCAtMTQxLDYgKzE0MSw3IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgc3luY0NvbXBvc2l0aW5nU3RhdGUoR3JhcGhpY3NMYXllclRl
eHR1cmVNYXBwZXIqLCBpbnQgc3luY09wdGlvbnMgPSAwKTsKICAgICB2b2lkIHN5bmNDb21wb3Np
dGluZ1N0YXRlKEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiwgVGV4dHVyZU1hcHBlciosIGlu
dCBzeW5jT3B0aW9ucyA9IDApOworICAgIHZvaWQgc3luY0FuaW1hdGlvbnNSZWN1cnNpdmVseShH
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciopOwogICAgIEludFNpemUgc2l6ZSgpIGNvbnN0IHsg
cmV0dXJuIEludFNpemUobV9zaXplLndpZHRoKCksIG1fc2l6ZS5oZWlnaHQoKSk7IH0KICAgICB2
b2lkIHNldFRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwogICAgIHZvaWQg
c2V0T3BhY2l0eShmbG9hdCB2YWx1ZSkgeyBtX29wYWNpdHkgPSB2YWx1ZTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IGUzMjk1MjcuLmNkZTk5YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMS0x
MS0xOCAgSWdvciBPbGl2ZWlyYSAgPGlnb3Iub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KKworICAg
ICAgICBbV0syXVtRdF0gTW92ZSBBY2NlbGVyYXRlZCBDb21wb3NpdGUgYW5pbWF0aW9ucyB0byBV
SVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcyNzUzCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlcyB0aGUgYWNjZWxlcmF0ZWQgY29tcG9z
aXRpbmcgYW5pbWF0aW9ucyB0byBVSVByb2Nlc3MuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cDoKKyAgICAgICAgKENvcmVJUEM6Ojo6ZW5jb2RlKToKKyAgICAgICAgKENvcmVJUEM6Ojo6ZGVj
b2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAg
ICogU2hhcmVkL1dlYkxheWVyVHJlZUluZm8uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXll
ckluZm86OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVySW5mbzo6ZGVjb2RlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJBbmltYXRpb246OmVuY29kZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkxheWVyQW5pbWF0aW9uOjpkZWNvZGUpOgorICAgICAgICBDcmVhdGUgV2ViTGF5
ZXJBbmltYXRpb24gc3RydWN0LCBpdCBpcyB1c2VkIHRvIHNlbmQgYW5pbWF0aW9uIGluZm9ybWF0
aW9uCisgICAgICAgIHRvIFVJUHJvY2Vzcy4KKyAgICAgICAgKiBTaGFyZWQvV2ViTGF5ZXJUcmVl
SW5mby5oOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllckFuaW1hdGlvbjo6V2ViTGF5ZXJBbmlt
YXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvcXQvTGF5ZXJUcmVlSG9zdFByb3h5UXQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpMYXllclRyZWVIb3N0UHJveHk6OkxheWVyVHJlZUhvc3RQcm94eSk6CisgICAgICAgIChX
ZWJLaXQ6OkxheWVyVHJlZUhvc3RQcm94eTo6cGFpbnRUb0N1cnJlbnRHTENvbnRleHQpOgorICAg
ICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0UHJveHk6OnVwZGF0ZVNjZW5lR3JhcGhVcGRhdGVU
aW1lckZpcmVkKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdFByb3h5OjpzeW5jTGF5
ZXJQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdy
YXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR3JhcGhpY3NMYXllcjo6YWRk
QW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdyYXBoaWNzTGF5ZXI6OnBhdXNlQW5p
bWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdyYXBoaWNzTGF5ZXI6OnJlbW92ZUFuaW1h
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHcmFwaGljc0xheWVyOjpzeW5jQ29tcG9zaXRp
bmdTdGF0ZUZvclRoaXNMYXllck9ubHkpOgorCiAyMDExLTExLTE4IE5vJ2FtIFJvc2VudGhhbCAg
PG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KIAogICAgICAgICBXZWJLaXQyOiBFbmFibGUgc2Vy
aWFsaXppbmcgb2YgZGF0YSB0eXBlcyBuZWVkZWQgZm9yIGNyb3NzLXByb2Nlc3MgYWNjZWxlcmF0
ZWQgY29tcG9zaXRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5jcHAKaW5kZXggMDVhNjI5Zi4uNzNhZTg2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTY0Nyw3ICs2NDcsNiBAQCBi
b29sIEFyZ3VtZW50Q29kZXI8TGVuZ3RoPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2Rl
ciwgTGVuZ3RoJiBsZW5ndGgpCiAgICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGVuZ3Ro
Pjo6ZGVjb2RlKGRlY29kZXIsIGxlbmd0aCk7CiB9CiAKLQogdm9pZCBBcmd1bWVudENvZGVyPFRy
YW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgY29u
c3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybWF0aW9uTWF0cml4KQogewogICAgIFNp
bXBsZUFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjplbmNvZGUoZW5jb2Rlciwg
dHJhbnNmb3JtYXRpb25NYXRyaXgpOwpAQCAtMTA2MiwxOCArMTA2MSwxOCBAQCBzdGF0aWMgdm9p
ZCBlbmNvZGVCb29sQW5kRW51bVZhbHVlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgYm9vbCBp
c1NldCwgVCB2YWx1ZQogICAgICAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKHZhbHVlKTsKIH0KIAot
dm9pZCBBcmd1bWVudENvZGVyPEFuaW1hdGlvbj46OmVuY29kZShBcmd1bWVudEVuY29kZXIqIGVu
Y29kZXIsIGNvbnN0IEFuaW1hdGlvbiYgYW5pbWF0aW9uKQordm9pZCBBcmd1bWVudENvZGVyPFJl
ZlB0cjxBbmltYXRpb24+ID46OmVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0
IFJlZlB0cjxBbmltYXRpb24+JiBhbmltYXRpb24pCiB7Ci0gICAgZW5jb2RlQm9vbEFuZFZhbHVl
KGVuY29kZXIsIGFuaW1hdGlvbi5pc0RlbGF5U2V0KCksIGFuaW1hdGlvbi5kZWxheSgpKTsKLSAg
ICBlbmNvZGVCb29sQW5kRW51bVZhbHVlKGVuY29kZXIsIGFuaW1hdGlvbi5pc0RpcmVjdGlvblNl
dCgpLCBhbmltYXRpb24uZGlyZWN0aW9uKCkpOwotICAgIGVuY29kZUJvb2xBbmRWYWx1ZShlbmNv
ZGVyLCBhbmltYXRpb24uaXNEdXJhdGlvblNldCgpLCBhbmltYXRpb24uZHVyYXRpb24oKSk7Ci0g
ICAgZW5jb2RlQm9vbEFuZFZhbHVlKGVuY29kZXIsIGFuaW1hdGlvbi5pc0ZpbGxNb2RlU2V0KCks
IGFuaW1hdGlvbi5maWxsTW9kZSgpKTsKLSAgICBlbmNvZGVCb29sQW5kVmFsdWUoZW5jb2Rlciwg
YW5pbWF0aW9uLmlzSXRlcmF0aW9uQ291bnRTZXQoKSwgYW5pbWF0aW9uLml0ZXJhdGlvbkNvdW50
KCkpOwotICAgIGVuY29kZUJvb2xBbmRWYWx1ZShlbmNvZGVyLCBhbmltYXRpb24uaXNOYW1lU2V0
KCksIGFuaW1hdGlvbi5uYW1lKCkpOwotICAgIGVuY29kZUJvb2xBbmRFbnVtVmFsdWUoZW5jb2Rl
ciwgYW5pbWF0aW9uLmlzUGxheVN0YXRlU2V0KCksIGFuaW1hdGlvbi5wbGF5U3RhdGUoKSk7Ci0g
ICAgZW5jb2RlQm9vbEFuZFZhbHVlKGVuY29kZXIsIGFuaW1hdGlvbi5pc1Byb3BlcnR5U2V0KCks
IGFuaW1hdGlvbi5wcm9wZXJ0eSgpKTsKLSAgICBlbmNvZGVCb29sQW5kVmFsdWU8UmVmUHRyPFRp
bWluZ0Z1bmN0aW9uPiA+KGVuY29kZXIsIGFuaW1hdGlvbi5pc1RpbWluZ0Z1bmN0aW9uU2V0KCks
IGFuaW1hdGlvbi50aW1pbmdGdW5jdGlvbigpKTsKLSAgICBlbmNvZGVyLT5lbmNvZGVCb29sKGFu
aW1hdGlvbi5pc05vbmVBbmltYXRpb24oKSk7CisgICAgZW5jb2RlQm9vbEFuZFZhbHVlKGVuY29k
ZXIsIGFuaW1hdGlvbi0+aXNEZWxheVNldCgpLCBhbmltYXRpb24tPmRlbGF5KCkpOworICAgIGVu
Y29kZUJvb2xBbmRFbnVtVmFsdWUoZW5jb2RlciwgYW5pbWF0aW9uLT5pc0RpcmVjdGlvblNldCgp
LCBhbmltYXRpb24tPmRpcmVjdGlvbigpKTsKKyAgICBlbmNvZGVCb29sQW5kVmFsdWUoZW5jb2Rl
ciwgYW5pbWF0aW9uLT5pc0R1cmF0aW9uU2V0KCksIGFuaW1hdGlvbi0+ZHVyYXRpb24oKSk7Cisg
ICAgZW5jb2RlQm9vbEFuZFZhbHVlKGVuY29kZXIsIGFuaW1hdGlvbi0+aXNGaWxsTW9kZVNldCgp
LCBhbmltYXRpb24tPmZpbGxNb2RlKCkpOworICAgIGVuY29kZUJvb2xBbmRWYWx1ZShlbmNvZGVy
LCBhbmltYXRpb24tPmlzSXRlcmF0aW9uQ291bnRTZXQoKSwgYW5pbWF0aW9uLT5pdGVyYXRpb25D
b3VudCgpKTsKKyAgICBlbmNvZGVCb29sQW5kVmFsdWUoZW5jb2RlciwgYW5pbWF0aW9uLT5pc05h
bWVTZXQoKSwgYW5pbWF0aW9uLT5uYW1lKCkpOworICAgIGVuY29kZUJvb2xBbmRFbnVtVmFsdWUo
ZW5jb2RlciwgYW5pbWF0aW9uLT5pc1BsYXlTdGF0ZVNldCgpLCBhbmltYXRpb24tPnBsYXlTdGF0
ZSgpKTsKKyAgICBlbmNvZGVCb29sQW5kVmFsdWUoZW5jb2RlciwgYW5pbWF0aW9uLT5pc1Byb3Bl
cnR5U2V0KCksIGFuaW1hdGlvbi0+cHJvcGVydHkoKSk7CisgICAgZW5jb2RlQm9vbEFuZFZhbHVl
PFJlZlB0cjxUaW1pbmdGdW5jdGlvbj4gPihlbmNvZGVyLCBhbmltYXRpb24tPmlzVGltaW5nRnVu
Y3Rpb25TZXQoKSwgYW5pbWF0aW9uLT50aW1pbmdGdW5jdGlvbigpKTsKKyAgICBlbmNvZGVyLT5l
bmNvZGVCb29sKGFuaW1hdGlvbi0+aXNOb25lQW5pbWF0aW9uKCkpOwogfQogCiAKQEAgLTEwOTks
NyArMTA5OCw3IEBAIHN0YXRpYyBib29sIGRlY29kZUJvb2xBbmRFbnVtVmFsdWUoQXJndW1lbnRE
ZWNvZGVyKiBkZWNvZGVyLCBib29sJiBpc1NldCwgVCYgdmFsCiAgICAgcmV0dXJuIGRlY29kZXIt
PmRlY29kZUVudW0odmFsdWUpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8QW5pbWF0aW9uPjo6
ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgQW5pbWF0aW9uJiBhbmltYXRpb24pCiti
b29sIEFyZ3VtZW50Q29kZXI8UmVmUHRyPEFuaW1hdGlvbj4gPjo6ZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciogZGVjb2RlciwgUmVmUHRyPEFuaW1hdGlvbj4mIGFuaW1hdGlvbikKIHsKICAgICBib29s
IGlzRGVsYXlTZXQsIGlzRGlyZWN0aW9uU2V0LCBpc0R1cmF0aW9uU2V0LCBpc0ZpbGxNb2RlU2V0
LCBpc0l0ZXJhdGlvbkNvdW50U2V0LCBpc05hbWVTZXQsIGlzUGxheVN0YXRlU2V0LCBpc1Byb3Bl
cnR5U2V0LCBpc1RpbWluZ0Z1bmN0aW9uU2V0OwogICAgIGludCBwcm9wZXJ0eSwgaXRlcmF0aW9u
Q291bnQsIGZpbGxNb2RlOwpAQCAtMTEwNyw4ICsxMTA2LDYgQEAgYm9vbCBBcmd1bWVudENvZGVy
PEFuaW1hdGlvbj46OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEFuaW1hdGlvbiYg
YW5pbWEKICAgICBSZWZQdHI8VGltaW5nRnVuY3Rpb24+IHRpbWluZ0Z1bmN0aW9uOwogICAgIFN0
cmluZyBuYW1lOwogCi0gICAgYW5pbWF0aW9uLmNsZWFyQWxsKCk7Ci0KICAgICBkb3VibGUgZGVs
YXk7CiAgICAgaWYgKCFkZWNvZGVCb29sQW5kVmFsdWUoZGVjb2RlciwgaXNEZWxheVNldCwgZGVs
YXkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMTMzLDI0ICsxMTMwLDI3IEBAIGJvb2wg
QXJndW1lbnRDb2RlcjxBbmltYXRpb24+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVy
LCBBbmltYXRpb24mIGFuaW1hCiAgICAgaWYgKCFkZWNvZGVCb29sQW5kVmFsdWU8UmVmUHRyPFRp
bWluZ0Z1bmN0aW9uPiA+KGRlY29kZXIsIGlzVGltaW5nRnVuY3Rpb25TZXQsIHRpbWluZ0Z1bmN0
aW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgYW5pbWF0aW9uID0gQW5pbWF0aW9u
OjpjcmVhdGUoKTsKKyAgICBhbmltYXRpb24tPmNsZWFyQWxsKCk7CisKICAgICBpZiAoaXNEZWxh
eVNldCkKLSAgICAgICAgYW5pbWF0aW9uLnNldERlbGF5KGRlbGF5KTsKKyAgICAgICAgYW5pbWF0
aW9uLT5zZXREZWxheShkZWxheSk7CiAgICAgaWYgKGlzRGlyZWN0aW9uU2V0KQotICAgICAgICBh
bmltYXRpb24uc2V0RGlyZWN0aW9uKGRpcmVjdGlvbik7CisgICAgICAgIGFuaW1hdGlvbi0+c2V0
RGlyZWN0aW9uKGRpcmVjdGlvbik7CiAgICAgaWYgKGlzRHVyYXRpb25TZXQpCi0gICAgICAgIGFu
aW1hdGlvbi5zZXREdXJhdGlvbihkdXJhdGlvbik7CisgICAgICAgIGFuaW1hdGlvbi0+c2V0RHVy
YXRpb24oZHVyYXRpb24pOwogICAgIGlmIChpc0ZpbGxNb2RlU2V0KQotICAgICAgICBhbmltYXRp
b24uc2V0RmlsbE1vZGUoZmlsbE1vZGUpOworICAgICAgICBhbmltYXRpb24tPnNldEZpbGxNb2Rl
KGZpbGxNb2RlKTsKICAgICBpZiAoaXNJdGVyYXRpb25Db3VudFNldCkKLSAgICAgICAgYW5pbWF0
aW9uLnNldEl0ZXJhdGlvbkNvdW50KGl0ZXJhdGlvbkNvdW50KTsKKyAgICAgICAgYW5pbWF0aW9u
LT5zZXRJdGVyYXRpb25Db3VudChpdGVyYXRpb25Db3VudCk7CiAgICAgaWYgKGlzTmFtZVNldCkK
LSAgICAgICAgYW5pbWF0aW9uLnNldE5hbWUobmFtZSk7CisgICAgICAgIGFuaW1hdGlvbi0+c2V0
TmFtZShuYW1lKTsKICAgICBpZiAoaXNQbGF5U3RhdGVTZXQpCi0gICAgICAgIGFuaW1hdGlvbi5z
ZXRQbGF5U3RhdGUocGxheVN0YXRlKTsKKyAgICAgICAgYW5pbWF0aW9uLT5zZXRQbGF5U3RhdGUo
cGxheVN0YXRlKTsKICAgICBpZiAoaXNQcm9wZXJ0eVNldCkKLSAgICAgICAgYW5pbWF0aW9uLnNl
dFByb3BlcnR5KHByb3BlcnR5KTsKKyAgICAgICAgYW5pbWF0aW9uLT5zZXRQcm9wZXJ0eShwcm9w
ZXJ0eSk7CiAgICAgaWYgKGlzVGltaW5nRnVuY3Rpb25TZXQpCi0gICAgICAgIGFuaW1hdGlvbi5z
ZXRUaW1pbmdGdW5jdGlvbih0aW1pbmdGdW5jdGlvbik7CisgICAgICAgIGFuaW1hdGlvbi0+c2V0
VGltaW5nRnVuY3Rpb24odGltaW5nRnVuY3Rpb24pOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggMTdl
MGQ5MC4uMDU1MDQxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaApAQCAtMjg4LDkgKzI4OCw5IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6VHJhbnNmb3JtT3BlcmF0aW9ucz4gewogICAgIHN0YXRpYyBib29sIGRl
Y29kZShBcmd1bWVudERlY29kZXIqLCBXZWJDb3JlOjpUcmFuc2Zvcm1PcGVyYXRpb25zJik7CiB9
OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkFuaW1hdGlvbj4g
ewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqLCBjb25zdCBXZWJDb3Jl
OjpBbmltYXRpb24mKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiwg
V2ViQ29yZTo6QW5pbWF0aW9uJik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFJl
ZlB0cjxXZWJDb3JlOjpBbmltYXRpb24+ID4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1
bWVudEVuY29kZXIqLCBjb25zdCBSZWZQdHI8V2ViQ29yZTo6QW5pbWF0aW9uPiYpOworICAgIHN0
YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBSZWZQdHI8V2ViQ29yZTo6QW5pbWF0
aW9uPiYpOwogfTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViTGF5ZXJUcmVlSW5mby5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTGF5ZXJUcmVl
SW5mby5jcHAKaW5kZXggZWRiNjJhMi4uYTU3OTUxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkxheWVyVHJlZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJMYXllclRyZWVJbmZvLmNwcApAQCAtMzUsNyArMzUsNyBAQCB2b2lkIFdlYkxheWVySW5m
bzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKIHsKICAg
ICAvLyBXZSBoYXZlIHRvIGRpdmlkZSBpdCB0byBzZXZlcmFsIGxpbmVzLCBiZWNhdXNlIENvcmVJ
UEM6OkluL091dCB0YWtlcyBhIG1heGltdW0gb2YgMTAgYXJndW1lbnRzLgogICAgIGVuY29kZXIt
PmVuY29kZShDb3JlSVBDOjpJbihpZCwgbmFtZSwgcGFyZW50LCBjaGlsZHJlbiwgZmxhZ3MsIHJl
cGxpY2EsIG1hc2ssIGltYWdlQmFja2luZ1N0b3JlSUQpKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUo
Q29yZUlQQzo6SW4ocG9zLCBzaXplLCB0cmFuc2Zvcm0sIG9wYWNpdHksIGFuY2hvclBvaW50LCBj
aGlsZHJlblRyYW5zZm9ybSwgY29udGVudHNSZWN0KSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKENv
cmVJUEM6OkluKHBvcywgc2l6ZSwgdHJhbnNmb3JtLCBvcGFjaXR5LCBhbmNob3JQb2ludCwgY2hp
bGRyZW5UcmFuc2Zvcm0sIGNvbnRlbnRzUmVjdCwgYW5pbWF0aW9ucykpOwogfQogCiBib29sIFdl
YkxheWVySW5mbzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2Vi
TGF5ZXJJbmZvJiBpbmZvKQpAQCAtNDMsOCArNDMsOSBAQCBib29sIFdlYkxheWVySW5mbzo6ZGVj
b2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViTGF5ZXJJbmZvJiBpbmZv
KQogICAgIC8vIFdlIGhhdmUgdG8gZGl2aWRlIGl0IHRvIHNldmVyYWwgbGluZXMsIGJlY2F1c2Ug
Q29yZUlQQzo6SW4vT3V0IHRha2VzIGEgbWF4aW11bSBvZiAxMCBhcmd1bWVudHMuCiAgICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6T3V0KGluZm8uaWQsIGluZm8ubmFtZSwgaW5mby5w
YXJlbnQsIGluZm8uY2hpbGRyZW4sIGluZm8uZmxhZ3MsIGluZm8ucmVwbGljYSwgaW5mby5tYXNr
LCBpbmZvLmltYWdlQmFja2luZ1N0b3JlSUQpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dChpbmZvLnBvcywgaW5mby5zaXplLCBp
bmZvLnRyYW5zZm9ybSwgaW5mby5vcGFjaXR5LCBpbmZvLmFuY2hvclBvaW50LCBpbmZvLmNoaWxk
cmVuVHJhbnNmb3JtLCBpbmZvLmNvbnRlbnRzUmVjdCkpKQorICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlKENvcmVJUEM6Ok91dChpbmZvLnBvcywgaW5mby5zaXplLCBpbmZvLnRyYW5zZm9ybSwgaW5m
by5vcGFjaXR5LCBpbmZvLmFuY2hvclBvaW50LCBpbmZvLmNoaWxkcmVuVHJhbnNmb3JtLCBpbmZv
LmNvbnRlbnRzUmVjdCwgaW5mby5hbmltYXRpb25zKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
KwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC02OCw1ICs2OSwyNCBAQCBib29sIFdlYkxheWVy
VXBkYXRlSW5mbzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2Vi
TGF5ZXJVcGRhdAogICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6T3V0KGluZm8u
bGF5ZXJJRCwgaW5mby5yZWN0LCBpbmZvLmJpdG1hcEhhbmRsZSkpOwogfQogCit2b2lkIFdlYkxh
eWVyQW5pbWF0aW9uOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBj
b25zdAoreworICAgIGVuY29kZXItPmVuY29kZUVudW0ob3BlcmF0aW9uKTsKKyAgICBlbmNvZGVy
LT5lbmNvZGUoa2V5ZnJhbWVMaXN0KTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4o
bmFtZSwgc3RhcnRUaW1lLCBib3hTaXplLCBhbmltYXRpb24sIGtleWZyYW1lTGlzdCkpOworfQor
Citib29sIFdlYkxheWVyQW5pbWF0aW9uOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBkZWNvZGVyLCBXZWJMYXllckFuaW1hdGlvbiYgaW5mbykKK3sKKyAgICBpZiAoIWRlY29kZXIt
PmRlY29kZUVudW0oaW5mby5vcGVyYXRpb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUoaW5mby5rZXlmcmFtZUxpc3QpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6T3V0KGluZm8ubmFtZSwg
aW5mby5zdGFydFRpbWUsIGluZm8uYm94U2l6ZSwgaW5mby5hbmltYXRpb24pKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0KICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkxheWVyVHJlZUluZm8uaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJMYXllclRyZWVJbmZvLmgKaW5kZXggMjUwMDNlNy4uNTZhNGY2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkxheWVyVHJlZUluZm8uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTGF5ZXJUcmVlSW5mby5oCkBAIC00OSw2ICs0OSwy
NSBAQCBzdHJ1Y3QgV2ViTGF5ZXJVcGRhdGVJbmZvIHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgV2ViTGF5ZXJVcGRhdGVJbmZvJik7CiB9OwogCitz
dHJ1Y3QgV2ViTGF5ZXJBbmltYXRpb24geworICAgIFdlYkxheWVyQW5pbWF0aW9uKCkgOiBrZXlm
cmFtZUxpc3QoQW5pbWF0ZWRQcm9wZXJ0eUludmFsaWQpIHsgfQorICAgIFdlYkxheWVyQW5pbWF0
aW9uKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QpIAorICAgICAgICA6IGtleWZy
YW1lTGlzdCh2YWx1ZUxpc3QpIHsgfQorICAgIFN0cmluZyBuYW1lOworICAgIGVudW0gT3BlcmF0
aW9uIHsKKyAgICAgICAgQWRkQW5pbWF0aW9uLAorICAgICAgICBSZW1vdmVBbmltYXRpb24sCisg
ICAgICAgIFBhdXNlQW5pbWF0aW9uCisgICAgfSBvcGVyYXRpb247CisgICAgSW50U2l6ZSBib3hT
aXplOworICAgIFJlZlB0cjxBbmltYXRpb24+IGFuaW1hdGlvbjsKKyAgICBLZXlmcmFtZVZhbHVl
TGlzdCBrZXlmcmFtZUxpc3Q7CisgICAgZG91YmxlIHN0YXJ0VGltZTsKKworICAgIHZvaWQgZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHN0YXRpYyBib29sIGRl
Y29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBXZWJMYXllckFuaW1hdGlvbiYpOworfTsK
Kwogc3RydWN0IFdlYkxheWVySW5mbyB7CiAgICAgU3RyaW5nIG5hbWU7CiAgICAgV2ViTGF5ZXJJ
RCBpZDsKQEAgLTc5LDYgKzk4LDcgQEAgc3RydWN0IFdlYkxheWVySW5mbyB7CiAgICAgICAgIHVu
c2lnbmVkIGludCBmbGFnczsKICAgICB9OwogICAgIFZlY3RvcjxXZWJMYXllcklEPiBjaGlsZHJl
bjsKKyAgICBWZWN0b3I8V2ViTGF5ZXJBbmltYXRpb24+IGFuaW1hdGlvbnM7CiAgICAgUmVmUHRy
PFNoYXJlYWJsZUJpdG1hcD4gaW1hZ2VCYWNraW5nU3RvcmU7CiAKICAgICB2b2lkIGVuY29kZShD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaAppbmRleCA0NWU4ZGY2Li4wMmU5MzQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5oCkBAIC0xMjUsNiAr
MTI1LDExIEBAIHByb3RlY3RlZDoKICAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9yb290TGF5
ZXI7CiAgICAgVmVjdG9yPFdlYkxheWVySUQ+IG1fbGF5ZXJzVG9EZWxldGU7CiAKKyNpZiBQTEFU
Rk9STShRVCkKKyAgICB2b2lkIHVwZGF0ZVNjZW5lR3JhcGhVcGRhdGVUaW1lckZpcmVkKFRpbWVy
PExheWVyVHJlZUhvc3RQcm94eT4qKTsKKyAgICBUaW1lcjxMYXllclRyZWVIb3N0UHJveHk+IG1f
c2NlbmVHcmFwaFVwZGF0ZVRpbWVyOworI2VuZGlmCisKICAgICBMYXllck1hcCBtX2xheWVyczsK
ICAgICBXZWJMYXllcklEIG1fcm9vdExheWVySUQ7CiAgICAgaW50IG1faWQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvTGF5ZXJUcmVlSG9zdFByb3h5UXQuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0xheWVyVHJlZUhvc3RQcm94eVF0LmNwcAppbmRl
eCAwYzAzNmU0Li5lNjI4ZjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvTGF5ZXJUcmVlSG9zdFByb3h5UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9MYXllclRyZWVIb3N0UHJveHlRdC5jcHAKQEAgLTE1NCw2ICsxNTQsNyBAQCBQYXNzT3du
UHRyPEdyYXBoaWNzTGF5ZXI+IExheWVyVHJlZUhvc3RQcm94eTo6Y3JlYXRlTGF5ZXIoV2ViTGF5
ZXJJRCBsYXllcklEKQogTGF5ZXJUcmVlSG9zdFByb3h5OjpMYXllclRyZWVIb3N0UHJveHkoRHJh
d2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWFQcm94eSkKICAgICA6IG1fYW5pbWF0aW9uVGltZXIo
UnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmTGF5ZXJUcmVlSG9zdFByb3h5Ojp1cGRhdGVWaWV3cG9y
dCkKICAgICAsIG1fZHJhd2luZ0FyZWFQcm94eShkcmF3aW5nQXJlYVByb3h5KQorICAgICwgbV9z
Y2VuZUdyYXBoVXBkYXRlVGltZXIodGhpcywgJkxheWVyVHJlZUhvc3RQcm94eTo6dXBkYXRlU2Nl
bmVHcmFwaFVwZGF0ZVRpbWVyRmlyZWQpCiAgICAgLCBtX3Jvb3RMYXllcklEKDApCiB7CiB9CkBA
IC0yMDgsOCArMjA5LDE1IEBAIHZvaWQgTGF5ZXJUcmVlSG9zdFByb3h5OjpwYWludFRvQ3VycmVu
dEdMQ29udGV4dChjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0CiAKICAgICBtX3RleHR1
cmVNYXBwZXItPmVuZFBhaW50aW5nKCk7CiAKLSAgICBpZiAobm9kZS0+ZGVzY2VuZGFudHNPclNl
bGZIYXZlUnVubmluZ0FuaW1hdGlvbnMoKSkKLSAgICAgICAgdXBkYXRlVmlld3BvcnQoKTsKKyAg
ICBpZiAobm9kZS0+ZGVzY2VuZGFudHNPclNlbGZIYXZlUnVubmluZ0FuaW1hdGlvbnMoKSkgewor
ICAgICAgICBub2RlLT5zeW5jQW5pbWF0aW9uc1JlY3Vyc2l2ZWx5KHRvR3JhcGhpY3NMYXllclRl
eHR1cmVNYXBwZXIoY3VycmVudFJvb3RMYXllcikpOworICAgICAgICBtX3NjZW5lR3JhcGhVcGRh
dGVUaW1lci5zdGFydE9uZVNob3QoMCk7CisgICAgfQorfQorCit2b2lkIExheWVyVHJlZUhvc3RQ
cm94eTo6dXBkYXRlU2NlbmVHcmFwaFVwZGF0ZVRpbWVyRmlyZWQoVGltZXI8TGF5ZXJUcmVlSG9z
dFByb3h5PiopCit7CisgICAgdXBkYXRlVmlld3BvcnQoKTsKIH0KIAogdm9pZCBMYXllclRyZWVI
b3N0UHJveHk6OnVwZGF0ZVZpZXdwb3J0KCkKQEAgLTI3Miw2ICsyODAsMjYgQEAgdm9pZCBMYXll
clRyZWVIb3N0UHJveHk6OnN5bmNMYXllclBhcmFtZXRlcnMoY29uc3QgV2ViTGF5ZXJJbmZvJiBs
YXllckluZm8pCiAgICAgfQogICAgIGxheWVyLT5zZXRDaGlsZHJlbihjaGlsZHJlbik7CiAKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxheWVySW5mby5hbmltYXRpb25zLnNpemUoKTsgKytp
KSB7CisgICAgICAgIGNvbnN0IFdlYktpdDo6V2ViTGF5ZXJBbmltYXRpb24gYW5pbSA9IGxheWVy
SW5mby5hbmltYXRpb25zW2ldOworCisgICAgICAgIHN3aXRjaCAoYW5pbS5vcGVyYXRpb24pIHsK
KyAgICAgICAgY2FzZSBXZWJLaXQ6OldlYkxheWVyQW5pbWF0aW9uOjpBZGRBbmltYXRpb246IHsK
KyAgICAgICAgICAgIGNvbnN0IEludFNpemUgYm94U2l6ZSA9IGFuaW0uYm94U2l6ZTsKKyAgICAg
ICAgICAgIGRvdWJsZSBvZmZzZXQgPSBXVEY6OmN1cnJlbnRUaW1lKCkgLSBhbmltLnN0YXJ0VGlt
ZTsKKyAgICAgICAgICAgIGxheWVyLT5hZGRBbmltYXRpb24oYW5pbS5rZXlmcmFtZUxpc3QsIGJv
eFNpemUsIGFuaW0uYW5pbWF0aW9uLmdldCgpLCBhbmltLm5hbWUsIG9mZnNldCk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIFdlYktpdDo6V2ViTGF5ZXJBbmlt
YXRpb246OlJlbW92ZUFuaW1hdGlvbjoKKyAgICAgICAgICAgIGxheWVyLT5yZW1vdmVBbmltYXRp
b24oYW5pbS5uYW1lKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYktpdDo6
V2ViTGF5ZXJBbmltYXRpb246OlBhdXNlQW5pbWF0aW9uOgorICAgICAgICAgICAgZG91YmxlIG9m
ZnNldCA9IFdURjo6Y3VycmVudFRpbWUoKSAtIGFuaW0uc3RhcnRUaW1lOworICAgICAgICAgICAg
bGF5ZXItPnBhdXNlQW5pbWF0aW9uKGFuaW0ubmFtZSwgb2Zmc2V0KTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgfQorCiAgICAgaWYgKGxheWVySW5mby5pc1Jvb3RMYXllciAm
JiBtX3Jvb3RMYXllcklEICE9IGlkKQogICAgICAgICBzZXRSb290TGF5ZXJJRChpZCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdy
YXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJHcmFwaGljc0xheWVyLmNwcAppbmRleCA3MDg0MzI0Li4wYjdmZWU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
R3JhcGhpY3NMYXllci5jcHAKQEAgLTI4MCwxNSArMjgwLDQ4IEBAIHZvaWQgV2ViR3JhcGhpY3NM
YXllcjo6bm90aWZ5QW5pbWF0aW9uU3RhcnRlZChkb3VibGUgdGltZSkKIC8vIFdlIHB1dCB0aGVz
ZSBzdHViIGltcGxlbWVudGF0aW9ucyBoZXJlIGZvciB3aGVuIHdlIGltcGxlbWVudCBhY2NlbGVy
YXRlZCBjcm9zcy1wcm9jZXNzIGFuaW1hdGlvbnMuCiBib29sIFdlYkdyYXBoaWNzTGF5ZXI6OmFk
ZEFuaW1hdGlvbihjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBJbnRT
aXplJiBib3hTaXplLCBjb25zdCBBbmltYXRpb24qIGFuaW0sIGNvbnN0IFN0cmluZyYga2V5ZnJh
bWVzTmFtZSwgZG91YmxlIHRpbWVPZmZzZXQpCiB7CisjaWYgUExBVEZPUk0oUVQpCisgICAgaWYg
KCFhbmltIHx8IGFuaW0tPmlzRW1wdHlPclplcm9EdXJhdGlvbigpIHx8IHZhbHVlTGlzdC5zaXpl
KCkgPCAyIHx8ICh2YWx1ZUxpc3QucHJvcGVydHkoKSAhPSBBbmltYXRlZFByb3BlcnR5V2Via2l0
VHJhbnNmb3JtICYmIHZhbHVlTGlzdC5wcm9wZXJ0eSgpICE9IEFuaW1hdGVkUHJvcGVydHlPcGFj
aXR5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgV2ViTGF5ZXJBbmltYXRpb24gd2Vi
QW5pbWF0aW9uKHZhbHVlTGlzdCk7CisgICAgd2ViQW5pbWF0aW9uLm5hbWUgPSBrZXlmcmFtZXNO
YW1lOworICAgIHdlYkFuaW1hdGlvbi5vcGVyYXRpb24gPSBXZWJMYXllckFuaW1hdGlvbjo6QWRk
QW5pbWF0aW9uOworICAgIHdlYkFuaW1hdGlvbi5ib3hTaXplID0gYm94U2l6ZTsKKyAgICB3ZWJB
bmltYXRpb24uYW5pbWF0aW9uID0gQW5pbWF0aW9uOjpjcmVhdGUoYW5pbSk7CisgICAgd2ViQW5p
bWF0aW9uLnN0YXJ0VGltZSA9IFdURjo6Y3VycmVudFRpbWUoKSAtIHRpbWVPZmZzZXQ7CisgICAg
bV9sYXllckluZm8uYW5pbWF0aW9ucy5hcHBlbmQod2ViQW5pbWF0aW9uKTsKKworICAgIG1faGFz
UGVuZGluZ0FuaW1hdGlvbnMgPSB0cnVlOworICAgIG5vdGlmeUNoYW5nZSgpOworCisgICAgcmV0
dXJuIHRydWU7CisjZWxzZQogICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgogfQogCiB2b2lkIFdl
YkdyYXBoaWNzTGF5ZXI6OnBhdXNlQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFt
ZSwgZG91YmxlIHRpbWVPZmZzZXQpCiB7CisjaWYgUExBVEZPUk0oUVQpCisgICAgV2ViTGF5ZXJB
bmltYXRpb24gYW5pbWF0aW9uOworICAgIGFuaW1hdGlvbi5uYW1lID0gYW5pbWF0aW9uTmFtZTsK
KyAgICBhbmltYXRpb24ub3BlcmF0aW9uID0gV2ViTGF5ZXJBbmltYXRpb246OlBhdXNlQW5pbWF0
aW9uOworICAgIGFuaW1hdGlvbi5zdGFydFRpbWUgPSBXVEY6OmN1cnJlbnRUaW1lKCkgLSB0aW1l
T2Zmc2V0OworICAgIG1fbGF5ZXJJbmZvLmFuaW1hdGlvbnMuYXBwZW5kKGFuaW1hdGlvbik7Cisg
ICAgbm90aWZ5Q2hhbmdlKCk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJHcmFwaGljc0xheWVyOjpy
ZW1vdmVBbmltYXRpb24oY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lKQogeworI2lmIFBMQVRG
T1JNKFFUKQorICAgIFdlYkxheWVyQW5pbWF0aW9uIGFuaW1hdGlvbjsKKyAgICBhbmltYXRpb24u
bmFtZSA9IGFuaW1hdGlvbk5hbWU7CisgICAgYW5pbWF0aW9uLm9wZXJhdGlvbiA9IFdlYkxheWVy
QW5pbWF0aW9uOjpSZW1vdmVBbmltYXRpb247CisgICAgbV9sYXllckluZm8uYW5pbWF0aW9ucy5h
cHBlbmQoYW5pbWF0aW9uKTsKKyAgICBub3RpZnlDaGFuZ2UoKTsKKyNlbmRpZgogfQogCiB2b2lk
IFdlYkdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzTmVlZHNEaXNwbGF5KCkKQEAgLTQwMiw2ICs0
MzUsNyBAQCB2b2lkIFdlYkdyYXBoaWNzTGF5ZXI6OnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhp
c0xheWVyT25seSgpCiAgICAgbV9sYXllckluZm8uaW1hZ2VJc1VwZGF0ZWQgPSBmYWxzZTsKICAg
ICBpZiAobV9oYXNQZW5kaW5nQW5pbWF0aW9ucykKICAgICAgICAgbm90aWZ5QW5pbWF0aW9uU3Rh
cnRlZChXVEY6OmN1cnJlbnRUaW1lKCkpOworICAgIG1fbGF5ZXJJbmZvLmFuaW1hdGlvbnMuY2xl
YXIoKTsKICAgICBtX2hhc1BlbmRpbmdBbmltYXRpb25zID0gZmFsc2U7CiB9CiAKLS0gCjEuNy40
LjEKCg==
</data>
<flag name="review"
          id="114890"
          type_id="1"
          status="-"
          setter="noam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115897</attachid>
            <date>2011-11-18 15:57:58 -0800</date>
            <delta_ts>2011-11-18 16:34:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-WK2-Qt-Move-Accelerated-Composite-animations-to-UIPr.patch</filename>
            <type>text/plain</type>
            <size>19781</size>
            <attacher name="Igor Trindade Oliveira">igor.oliveira</attacher>
            
              <data encoding="base64">RnJvbSA2NzAwYjEyMTg4Y2FkMjUxZDZlNmEyZjNkMGNmYTk5ZDE2NmQ0MGM0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJZ29yIE9saXZlaXJhIDxpZ29yLm9saXZlaXJhQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IEZyaSwgMTggTm92IDIwMTEgMTY6NTg6NTYgLTA0MDAKU3ViamVjdDogW1BB
VENIXSBbV0syXVtRdF0gTW92ZSBBY2NlbGVyYXRlZCBDb21wb3NpdGUgYW5pbWF0aW9ucyB0byBV
SVByb2Nlc3MKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDEzICsrKysrCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJOb2RlLmNwcCB8ICAgMTAgKysrKwogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyTm9kZS5oICAgfCAgICAxICsKIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNCArKysrKysrKysrKysrKwogU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgICAgfCAgIDQ4ICsrKysr
KysrKystLS0tLS0tLS0tCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmggICAgICB8ICAgIDYgKy0KIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJMYXllclRyZWVJ
bmZvLmNwcCAgICAgICAgIHwgICAyNCArKysrKysrKystCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViTGF5ZXJUcmVlSW5mby5oICAgICAgICAgICB8ICAgMjAgKysrKysrKysKIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaCAgICAgIHwgICAgNSArKwogLi4uL1dl
YktpdDIvVUlQcm9jZXNzL3F0L0xheWVyVHJlZUhvc3RQcm94eVF0LmNwcCAgfCAgIDMyICsrKysr
KysrKysrKy0KIC4uLi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIu
Y3BwIHwgICAyOCArKysrKysrKysrKy0KIDExIGZpbGVzIGNoYW5nZWQsIDE4OSBpbnNlcnRpb25z
KCspLCAzMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTZiYjBmZC4uMmJkMjI4YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDExLTExLTE4ICBJZ29yIE9saXZlaXJhICA8aWdv
ci5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFtXSzJdW1F0XSBNb3ZlIEFjY2Vs
ZXJhdGVkIENvbXBvc2l0ZSBhbmltYXRpb25zIHRvIFVJUHJvY2VzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3NTMKKworICAgICAgICBBZGQgaGVs
cGVyIG1ldGhvZCB0byBzeW5jaHJvbml6ZSBhbmltYXRpb25zIGluIFRleHR1cmVNYXBwZXIuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dHVyZU1hcHBlck5vZGU6OnN5bmNBbmltYXRpb25zUmVjdXJzaXZlbHkpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oOgorCiAyMDEx
LTExLTE4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAg
IC13ZWJraXQtY3Jvc3MtZmFkZSByZW5kZXJlZCBpbmNvcnJlY3RseSBpbiBvdmVyZmxvdyBkaXZz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcAppbmRleCBhYjU5NzAzLi4wYWY4ZDczIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyTm9kZS5jcHAKQEAgLTk4NCw2ICs5ODQsMTYgQEAgdm9pZCBUZXh0dXJlTWFw
cGVyTm9kZTo6c3luY0FuaW1hdGlvbnMoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqIGxheWVy
KQogICAgIH0KIH0KIAordm9pZCBUZXh0dXJlTWFwcGVyTm9kZTo6c3luY0FuaW1hdGlvbnNSZWN1
cnNpdmVseSgpCit7CisgICAgc3luY0FuaW1hdGlvbnMoMCk7CisKKyAgICBjb21wdXRlQWxsVHJh
bnNmb3JtcygpOworCisgICAgZm9yIChpbnQgaSA9IG1fY2hpbGRyZW4uc2l6ZSgpIC0gMTsgaSA+
PSAwOyAtLWkpCisgICAgICAgIG1fY2hpbGRyZW5baV0tPnN5bmNBbmltYXRpb25zUmVjdXJzaXZl
bHkoKTsKK30KKwogdm9pZCBUZXh0dXJlTWFwcGVyTm9kZTo6c3luY0NvbXBvc2l0aW5nU3RhdGUo
R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqIGdyYXBoaWNzTGF5ZXIsIFRleHR1cmVNYXBwZXIq
IHRleHR1cmVNYXBwZXIsIGludCBvcHRpb25zKQogewogICAgIGlmIChncmFwaGljc0xheWVyICYm
ICEob3B0aW9ucyAmIENvbXB1dGF0aW9uc09ubHkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oCmlu
ZGV4IDRhNGZjZmYuLmViOWM2OTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaApAQCAtMTQxLDYg
KzE0MSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc3luY0NvbXBvc2l0aW5nU3RhdGUoR3JhcGhp
Y3NMYXllclRleHR1cmVNYXBwZXIqLCBpbnQgc3luY09wdGlvbnMgPSAwKTsKICAgICB2b2lkIHN5
bmNDb21wb3NpdGluZ1N0YXRlKEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiwgVGV4dHVyZU1h
cHBlciosIGludCBzeW5jT3B0aW9ucyA9IDApOworICAgIHZvaWQgc3luY0FuaW1hdGlvbnNSZWN1
cnNpdmVseSgpOwogICAgIEludFNpemUgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIEludFNpemUobV9z
aXplLndpZHRoKCksIG1fc2l6ZS5oZWlnaHQoKSk7IH0KICAgICB2b2lkIHNldFRyYW5zZm9ybShj
b25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwogICAgIHZvaWQgc2V0T3BhY2l0eShmbG9hdCB2
YWx1ZSkgeyBtX29wYWNpdHkgPSB2YWx1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGUzMjk1MjcuLmNkZTk5
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMS0xMS0xOCAgSWdvciBPbGl2ZWly
YSAgPGlnb3Iub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBbV0syXVtRdF0gTW92
ZSBBY2NlbGVyYXRlZCBDb21wb3NpdGUgYW5pbWF0aW9ucyB0byBVSVByb2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzUzCisKKyAgICAgICAg
VGhpcyBwYXRjaCBtb3ZlcyB0aGUgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgYW5pbWF0aW9ucyB0
byBVSVByb2Nlc3MuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKENvcmVJ
UEM6Ojo6ZW5jb2RlKToKKyAgICAgICAgKENvcmVJUEM6Ojo6ZGVjb2RlKToKKyAgICAgICAgKiBT
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU2hhcmVkL1dlYkxheWVy
VHJlZUluZm8uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllckluZm86OmVuY29kZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkxheWVySW5mbzo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViTGF5ZXJBbmltYXRpb246OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyQW5p
bWF0aW9uOjpkZWNvZGUpOgorICAgICAgICBDcmVhdGUgV2ViTGF5ZXJBbmltYXRpb24gc3RydWN0
LCBpdCBpcyB1c2VkIHRvIHNlbmQgYW5pbWF0aW9uIGluZm9ybWF0aW9uCisgICAgICAgIHRvIFVJ
UHJvY2Vzcy4KKyAgICAgICAgKiBTaGFyZWQvV2ViTGF5ZXJUcmVlSW5mby5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJMYXllckFuaW1hdGlvbjo6V2ViTGF5ZXJBbmltYXRpb24pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQv
TGF5ZXJUcmVlSG9zdFByb3h5UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0
UHJveHk6OkxheWVyVHJlZUhvc3RQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhv
c3RQcm94eTo6cGFpbnRUb0N1cnJlbnRHTENvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpMYXll
clRyZWVIb3N0UHJveHk6OnVwZGF0ZVNjZW5lR3JhcGhVcGRhdGVUaW1lckZpcmVkKToKKyAgICAg
ICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdFByb3h5OjpzeW5jTGF5ZXJQYXJhbWV0ZXJzKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR3JhcGhpY3NMYXllcjo6YWRkQW5pbWF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdyYXBoaWNzTGF5ZXI6OnBhdXNlQW5pbWF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdyYXBoaWNzTGF5ZXI6OnJlbW92ZUFuaW1hdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHcmFwaGljc0xheWVyOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXll
ck9ubHkpOgorCiAyMDExLTExLTE4IE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5v
a2lhLmNvbT4KIAogICAgICAgICBXZWJLaXQyOiBFbmFibGUgc2VyaWFsaXppbmcgb2YgZGF0YSB0
eXBlcyBuZWVkZWQgZm9yIGNyb3NzLXByb2Nlc3MgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXgg
MDVhNjI5Zi4uNzNhZTg2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHAKQEAgLTY0Nyw3ICs2NDcsNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8
TGVuZ3RoPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgTGVuZ3RoJiBsZW5ndGgp
CiAgICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGVuZ3RoPjo6ZGVjb2RlKGRlY29kZXIs
IGxlbmd0aCk7CiB9CiAKLQogdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4
Pjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIHRyYW5zZm9ybWF0aW9uTWF0cml4KQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8
VHJhbnNmb3JtYXRpb25NYXRyaXg+OjplbmNvZGUoZW5jb2RlciwgdHJhbnNmb3JtYXRpb25NYXRy
aXgpOwpAQCAtMTA2MiwxOCArMTA2MSwxOCBAQCBzdGF0aWMgdm9pZCBlbmNvZGVCb29sQW5kRW51
bVZhbHVlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgYm9vbCBpc1NldCwgVCB2YWx1ZQogICAg
ICAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKHZhbHVlKTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVy
PEFuaW1hdGlvbj46OmVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IEFuaW1h
dGlvbiYgYW5pbWF0aW9uKQordm9pZCBBcmd1bWVudENvZGVyPFJlZlB0cjxBbmltYXRpb24+ID46
OmVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IFJlZlB0cjxBbmltYXRpb24+
JiBhbmltYXRpb24pCiB7Ci0gICAgZW5jb2RlQm9vbEFuZFZhbHVlKGVuY29kZXIsIGFuaW1hdGlv
bi5pc0RlbGF5U2V0KCksIGFuaW1hdGlvbi5kZWxheSgpKTsKLSAgICBlbmNvZGVCb29sQW5kRW51
bVZhbHVlKGVuY29kZXIsIGFuaW1hdGlvbi5pc0RpcmVjdGlvblNldCgpLCBhbmltYXRpb24uZGly
ZWN0aW9uKCkpOwotICAgIGVuY29kZUJvb2xBbmRWYWx1ZShlbmNvZGVyLCBhbmltYXRpb24uaXNE
dXJhdGlvblNldCgpLCBhbmltYXRpb24uZHVyYXRpb24oKSk7Ci0gICAgZW5jb2RlQm9vbEFuZFZh
bHVlKGVuY29kZXIsIGFuaW1hdGlvbi5pc0ZpbGxNb2RlU2V0KCksIGFuaW1hdGlvbi5maWxsTW9k
ZSgpKTsKLSAgICBlbmNvZGVCb29sQW5kVmFsdWUoZW5jb2RlciwgYW5pbWF0aW9uLmlzSXRlcmF0
aW9uQ291bnRTZXQoKSwgYW5pbWF0aW9uLml0ZXJhdGlvbkNvdW50KCkpOwotICAgIGVuY29kZUJv
b2xBbmRWYWx1ZShlbmNvZGVyLCBhbmltYXRpb24uaXNOYW1lU2V0KCksIGFuaW1hdGlvbi5uYW1l
KCkpOwotICAgIGVuY29kZUJvb2xBbmRFbnVtVmFsdWUoZW5jb2RlciwgYW5pbWF0aW9uLmlzUGxh
eVN0YXRlU2V0KCksIGFuaW1hdGlvbi5wbGF5U3RhdGUoKSk7Ci0gICAgZW5jb2RlQm9vbEFuZFZh
bHVlKGVuY29kZXIsIGFuaW1hdGlvbi5pc1Byb3BlcnR5U2V0KCksIGFuaW1hdGlvbi5wcm9wZXJ0
eSgpKTsKLSAgICBlbmNvZGVCb29sQW5kVmFsdWU8UmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiA+KGVu
Y29kZXIsIGFuaW1hdGlvbi5pc1RpbWluZ0Z1bmN0aW9uU2V0KCksIGFuaW1hdGlvbi50aW1pbmdG
dW5jdGlvbigpKTsKLSAgICBlbmNvZGVyLT5lbmNvZGVCb29sKGFuaW1hdGlvbi5pc05vbmVBbmlt
YXRpb24oKSk7CisgICAgZW5jb2RlQm9vbEFuZFZhbHVlKGVuY29kZXIsIGFuaW1hdGlvbi0+aXNE
ZWxheVNldCgpLCBhbmltYXRpb24tPmRlbGF5KCkpOworICAgIGVuY29kZUJvb2xBbmRFbnVtVmFs
dWUoZW5jb2RlciwgYW5pbWF0aW9uLT5pc0RpcmVjdGlvblNldCgpLCBhbmltYXRpb24tPmRpcmVj
dGlvbigpKTsKKyAgICBlbmNvZGVCb29sQW5kVmFsdWUoZW5jb2RlciwgYW5pbWF0aW9uLT5pc0R1
cmF0aW9uU2V0KCksIGFuaW1hdGlvbi0+ZHVyYXRpb24oKSk7CisgICAgZW5jb2RlQm9vbEFuZFZh
bHVlKGVuY29kZXIsIGFuaW1hdGlvbi0+aXNGaWxsTW9kZVNldCgpLCBhbmltYXRpb24tPmZpbGxN
b2RlKCkpOworICAgIGVuY29kZUJvb2xBbmRWYWx1ZShlbmNvZGVyLCBhbmltYXRpb24tPmlzSXRl
cmF0aW9uQ291bnRTZXQoKSwgYW5pbWF0aW9uLT5pdGVyYXRpb25Db3VudCgpKTsKKyAgICBlbmNv
ZGVCb29sQW5kVmFsdWUoZW5jb2RlciwgYW5pbWF0aW9uLT5pc05hbWVTZXQoKSwgYW5pbWF0aW9u
LT5uYW1lKCkpOworICAgIGVuY29kZUJvb2xBbmRFbnVtVmFsdWUoZW5jb2RlciwgYW5pbWF0aW9u
LT5pc1BsYXlTdGF0ZVNldCgpLCBhbmltYXRpb24tPnBsYXlTdGF0ZSgpKTsKKyAgICBlbmNvZGVC
b29sQW5kVmFsdWUoZW5jb2RlciwgYW5pbWF0aW9uLT5pc1Byb3BlcnR5U2V0KCksIGFuaW1hdGlv
bi0+cHJvcGVydHkoKSk7CisgICAgZW5jb2RlQm9vbEFuZFZhbHVlPFJlZlB0cjxUaW1pbmdGdW5j
dGlvbj4gPihlbmNvZGVyLCBhbmltYXRpb24tPmlzVGltaW5nRnVuY3Rpb25TZXQoKSwgYW5pbWF0
aW9uLT50aW1pbmdGdW5jdGlvbigpKTsKKyAgICBlbmNvZGVyLT5lbmNvZGVCb29sKGFuaW1hdGlv
bi0+aXNOb25lQW5pbWF0aW9uKCkpOwogfQogCiAKQEAgLTEwOTksNyArMTA5OCw3IEBAIHN0YXRp
YyBib29sIGRlY29kZUJvb2xBbmRFbnVtVmFsdWUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBi
b29sJiBpc1NldCwgVCYgdmFsCiAgICAgcmV0dXJuIGRlY29kZXItPmRlY29kZUVudW0odmFsdWUp
OwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8QW5pbWF0aW9uPjo6ZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciogZGVjb2RlciwgQW5pbWF0aW9uJiBhbmltYXRpb24pCitib29sIEFyZ3VtZW50Q29kZXI8
UmVmUHRyPEFuaW1hdGlvbj4gPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUmVm
UHRyPEFuaW1hdGlvbj4mIGFuaW1hdGlvbikKIHsKICAgICBib29sIGlzRGVsYXlTZXQsIGlzRGly
ZWN0aW9uU2V0LCBpc0R1cmF0aW9uU2V0LCBpc0ZpbGxNb2RlU2V0LCBpc0l0ZXJhdGlvbkNvdW50
U2V0LCBpc05hbWVTZXQsIGlzUGxheVN0YXRlU2V0LCBpc1Byb3BlcnR5U2V0LCBpc1RpbWluZ0Z1
bmN0aW9uU2V0OwogICAgIGludCBwcm9wZXJ0eSwgaXRlcmF0aW9uQ291bnQsIGZpbGxNb2RlOwpA
QCAtMTEwNyw4ICsxMTA2LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPEFuaW1hdGlvbj46OmRlY29k
ZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEFuaW1hdGlvbiYgYW5pbWEKICAgICBSZWZQdHI8
VGltaW5nRnVuY3Rpb24+IHRpbWluZ0Z1bmN0aW9uOwogICAgIFN0cmluZyBuYW1lOwogCi0gICAg
YW5pbWF0aW9uLmNsZWFyQWxsKCk7Ci0KICAgICBkb3VibGUgZGVsYXk7CiAgICAgaWYgKCFkZWNv
ZGVCb29sQW5kVmFsdWUoZGVjb2RlciwgaXNEZWxheVNldCwgZGVsYXkpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC0xMTMzLDI0ICsxMTMwLDI3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxBbmlt
YXRpb24+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBBbmltYXRpb24mIGFuaW1h
CiAgICAgaWYgKCFkZWNvZGVCb29sQW5kVmFsdWU8UmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiA+KGRl
Y29kZXIsIGlzVGltaW5nRnVuY3Rpb25TZXQsIHRpbWluZ0Z1bmN0aW9uKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCisgICAgYW5pbWF0aW9uID0gQW5pbWF0aW9uOjpjcmVhdGUoKTsKKyAgICBh
bmltYXRpb24tPmNsZWFyQWxsKCk7CisKICAgICBpZiAoaXNEZWxheVNldCkKLSAgICAgICAgYW5p
bWF0aW9uLnNldERlbGF5KGRlbGF5KTsKKyAgICAgICAgYW5pbWF0aW9uLT5zZXREZWxheShkZWxh
eSk7CiAgICAgaWYgKGlzRGlyZWN0aW9uU2V0KQotICAgICAgICBhbmltYXRpb24uc2V0RGlyZWN0
aW9uKGRpcmVjdGlvbik7CisgICAgICAgIGFuaW1hdGlvbi0+c2V0RGlyZWN0aW9uKGRpcmVjdGlv
bik7CiAgICAgaWYgKGlzRHVyYXRpb25TZXQpCi0gICAgICAgIGFuaW1hdGlvbi5zZXREdXJhdGlv
bihkdXJhdGlvbik7CisgICAgICAgIGFuaW1hdGlvbi0+c2V0RHVyYXRpb24oZHVyYXRpb24pOwog
ICAgIGlmIChpc0ZpbGxNb2RlU2V0KQotICAgICAgICBhbmltYXRpb24uc2V0RmlsbE1vZGUoZmls
bE1vZGUpOworICAgICAgICBhbmltYXRpb24tPnNldEZpbGxNb2RlKGZpbGxNb2RlKTsKICAgICBp
ZiAoaXNJdGVyYXRpb25Db3VudFNldCkKLSAgICAgICAgYW5pbWF0aW9uLnNldEl0ZXJhdGlvbkNv
dW50KGl0ZXJhdGlvbkNvdW50KTsKKyAgICAgICAgYW5pbWF0aW9uLT5zZXRJdGVyYXRpb25Db3Vu
dChpdGVyYXRpb25Db3VudCk7CiAgICAgaWYgKGlzTmFtZVNldCkKLSAgICAgICAgYW5pbWF0aW9u
LnNldE5hbWUobmFtZSk7CisgICAgICAgIGFuaW1hdGlvbi0+c2V0TmFtZShuYW1lKTsKICAgICBp
ZiAoaXNQbGF5U3RhdGVTZXQpCi0gICAgICAgIGFuaW1hdGlvbi5zZXRQbGF5U3RhdGUocGxheVN0
YXRlKTsKKyAgICAgICAgYW5pbWF0aW9uLT5zZXRQbGF5U3RhdGUocGxheVN0YXRlKTsKICAgICBp
ZiAoaXNQcm9wZXJ0eVNldCkKLSAgICAgICAgYW5pbWF0aW9uLnNldFByb3BlcnR5KHByb3BlcnR5
KTsKKyAgICAgICAgYW5pbWF0aW9uLT5zZXRQcm9wZXJ0eShwcm9wZXJ0eSk7CiAgICAgaWYgKGlz
VGltaW5nRnVuY3Rpb25TZXQpCi0gICAgICAgIGFuaW1hdGlvbi5zZXRUaW1pbmdGdW5jdGlvbih0
aW1pbmdGdW5jdGlvbik7CisgICAgICAgIGFuaW1hdGlvbi0+c2V0VGltaW5nRnVuY3Rpb24odGlt
aW5nRnVuY3Rpb24pOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggMTdlMGQ5MC4uMDU1MDQxZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMjg4
LDkgKzI4OCw5IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VHJh
bnNmb3JtT3BlcmF0aW9ucz4gewogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29k
ZXIqLCBXZWJDb3JlOjpUcmFuc2Zvcm1PcGVyYXRpb25zJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkFuaW1hdGlvbj4gewotICAgIHN0YXRpYyB2b2lk
IGVuY29kZShBcmd1bWVudEVuY29kZXIqLCBjb25zdCBXZWJDb3JlOjpBbmltYXRpb24mKTsKLSAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiwgV2ViQ29yZTo6QW5pbWF0aW9u
Jik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFJlZlB0cjxXZWJDb3JlOjpBbmlt
YXRpb24+ID4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqLCBjb25z
dCBSZWZQdHI8V2ViQ29yZTo6QW5pbWF0aW9uPiYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShB
cmd1bWVudERlY29kZXIqLCBSZWZQdHI8V2ViQ29yZTo6QW5pbWF0aW9uPiYpOwogfTsKICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTGF5ZXJUcmVlSW5mby5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTGF5ZXJUcmVlSW5mby5jcHAKaW5kZXggZWRi
NjJhMi4uYTU3OTUxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkxheWVy
VHJlZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJMYXllclRyZWVJbmZv
LmNwcApAQCAtMzUsNyArMzUsNyBAQCB2b2lkIFdlYkxheWVySW5mbzo6ZW5jb2RlKENvcmVJUEM6
OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKIHsKICAgICAvLyBXZSBoYXZlIHRvIGRp
dmlkZSBpdCB0byBzZXZlcmFsIGxpbmVzLCBiZWNhdXNlIENvcmVJUEM6OkluL091dCB0YWtlcyBh
IG1heGltdW0gb2YgMTAgYXJndW1lbnRzLgogICAgIGVuY29kZXItPmVuY29kZShDb3JlSVBDOjpJ
bihpZCwgbmFtZSwgcGFyZW50LCBjaGlsZHJlbiwgZmxhZ3MsIHJlcGxpY2EsIG1hc2ssIGltYWdl
QmFja2luZ1N0b3JlSUQpKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4ocG9zLCBz
aXplLCB0cmFuc2Zvcm0sIG9wYWNpdHksIGFuY2hvclBvaW50LCBjaGlsZHJlblRyYW5zZm9ybSwg
Y29udGVudHNSZWN0KSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKENvcmVJUEM6OkluKHBvcywgc2l6
ZSwgdHJhbnNmb3JtLCBvcGFjaXR5LCBhbmNob3JQb2ludCwgY2hpbGRyZW5UcmFuc2Zvcm0sIGNv
bnRlbnRzUmVjdCwgYW5pbWF0aW9ucykpOwogfQogCiBib29sIFdlYkxheWVySW5mbzo6ZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViTGF5ZXJJbmZvJiBpbmZvKQpA
QCAtNDMsOCArNDMsOSBAQCBib29sIFdlYkxheWVySW5mbzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgV2ViTGF5ZXJJbmZvJiBpbmZvKQogICAgIC8vIFdlIGhhdmUg
dG8gZGl2aWRlIGl0IHRvIHNldmVyYWwgbGluZXMsIGJlY2F1c2UgQ29yZUlQQzo6SW4vT3V0IHRh
a2VzIGEgbWF4aW11bSBvZiAxMCBhcmd1bWVudHMuCiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
Q29yZUlQQzo6T3V0KGluZm8uaWQsIGluZm8ubmFtZSwgaW5mby5wYXJlbnQsIGluZm8uY2hpbGRy
ZW4sIGluZm8uZmxhZ3MsIGluZm8ucmVwbGljYSwgaW5mby5tYXNrLCBpbmZvLmltYWdlQmFja2lu
Z1N0b3JlSUQpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlKENvcmVJUEM6Ok91dChpbmZvLnBvcywgaW5mby5zaXplLCBpbmZvLnRyYW5zZm9ybSwgaW5m
by5vcGFjaXR5LCBpbmZvLmFuY2hvclBvaW50LCBpbmZvLmNoaWxkcmVuVHJhbnNmb3JtLCBpbmZv
LmNvbnRlbnRzUmVjdCkpKQorICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dChp
bmZvLnBvcywgaW5mby5zaXplLCBpbmZvLnRyYW5zZm9ybSwgaW5mby5vcGFjaXR5LCBpbmZvLmFu
Y2hvclBvaW50LCBpbmZvLmNoaWxkcmVuVHJhbnNmb3JtLCBpbmZvLmNvbnRlbnRzUmVjdCwgaW5m
by5hbmltYXRpb25zKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHJldHVybiB0cnVl
OwogfQogCkBAIC02OCw1ICs2OSwyNCBAQCBib29sIFdlYkxheWVyVXBkYXRlSW5mbzo6ZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViTGF5ZXJVcGRhdAogICAgIHJl
dHVybiBkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6T3V0KGluZm8ubGF5ZXJJRCwgaW5mby5yZWN0
LCBpbmZvLmJpdG1hcEhhbmRsZSkpOwogfQogCit2b2lkIFdlYkxheWVyQW5pbWF0aW9uOjplbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29k
ZXItPmVuY29kZUVudW0ob3BlcmF0aW9uKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoa2V5ZnJhbWVM
aXN0KTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4obmFtZSwgc3RhcnRUaW1lLCBi
b3hTaXplLCBhbmltYXRpb24sIGtleWZyYW1lTGlzdCkpOworfQorCitib29sIFdlYkxheWVyQW5p
bWF0aW9uOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJMYXll
ckFuaW1hdGlvbiYgaW5mbykKK3sKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZUVudW0oaW5mby5v
cGVyYXRpb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGUoaW5mby5rZXlmcmFtZUxpc3QpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6T3V0KGluZm8ubmFtZSwgaW5mby5zdGFydFRpbWUsIGlu
Zm8uYm94U2l6ZSwgaW5mby5hbmltYXRpb24pKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgcmV0dXJuIHRydWU7Cit9CisKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkxheWVyVHJlZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJM
YXllclRyZWVJbmZvLmgKaW5kZXggMjUwMDNlNy4uNTZhNGY2NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkxheWVyVHJlZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViTGF5ZXJUcmVlSW5mby5oCkBAIC00OSw2ICs0OSwyNSBAQCBzdHJ1Y3QgV2ViTGF5
ZXJVcGRhdGVJbmZvIHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiwgV2ViTGF5ZXJVcGRhdGVJbmZvJik7CiB9OwogCitzdHJ1Y3QgV2ViTGF5ZXJBbmlt
YXRpb24geworICAgIFdlYkxheWVyQW5pbWF0aW9uKCkgOiBrZXlmcmFtZUxpc3QoQW5pbWF0ZWRQ
cm9wZXJ0eUludmFsaWQpIHsgfQorICAgIFdlYkxheWVyQW5pbWF0aW9uKGNvbnN0IEtleWZyYW1l
VmFsdWVMaXN0JiB2YWx1ZUxpc3QpIAorICAgICAgICA6IGtleWZyYW1lTGlzdCh2YWx1ZUxpc3Qp
IHsgfQorICAgIFN0cmluZyBuYW1lOworICAgIGVudW0gT3BlcmF0aW9uIHsKKyAgICAgICAgQWRk
QW5pbWF0aW9uLAorICAgICAgICBSZW1vdmVBbmltYXRpb24sCisgICAgICAgIFBhdXNlQW5pbWF0
aW9uCisgICAgfSBvcGVyYXRpb247CisgICAgSW50U2l6ZSBib3hTaXplOworICAgIFJlZlB0cjxB
bmltYXRpb24+IGFuaW1hdGlvbjsKKyAgICBLZXlmcmFtZVZhbHVlTGlzdCBrZXlmcmFtZUxpc3Q7
CisgICAgZG91YmxlIHN0YXJ0VGltZTsKKworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciopIGNvbnN0OworICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqLCBXZWJMYXllckFuaW1hdGlvbiYpOworfTsKKwogc3RydWN0IFdlYkxheWVy
SW5mbyB7CiAgICAgU3RyaW5nIG5hbWU7CiAgICAgV2ViTGF5ZXJJRCBpZDsKQEAgLTc5LDYgKzk4
LDcgQEAgc3RydWN0IFdlYkxheWVySW5mbyB7CiAgICAgICAgIHVuc2lnbmVkIGludCBmbGFnczsK
ICAgICB9OwogICAgIFZlY3RvcjxXZWJMYXllcklEPiBjaGlsZHJlbjsKKyAgICBWZWN0b3I8V2Vi
TGF5ZXJBbmltYXRpb24+IGFuaW1hdGlvbnM7CiAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4g
aW1hZ2VCYWNraW5nU3RvcmU7CiAKICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXIqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXll
clRyZWVIb3N0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0
UHJveHkuaAppbmRleCA0NWU4ZGY2Li45Y2UwZGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5oCkBAIC0xMjUsNiArMTI1LDExIEBAIHByb3RlY3Rl
ZDoKICAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9yb290TGF5ZXI7CiAgICAgVmVjdG9yPFdl
YkxheWVySUQ+IG1fbGF5ZXJzVG9EZWxldGU7CiAKKyNpZiBQTEFURk9STShRVCkKKyAgICB2b2lk
IGRpZEZpcmVWaWV3cG9ydFVwZGF0ZVRpbWVyKFRpbWVyPExheWVyVHJlZUhvc3RQcm94eT4qKTsK
KyAgICBUaW1lcjxMYXllclRyZWVIb3N0UHJveHk+IG1fdmlld3BvcnRVcGRhdGVUaW1lcjsKKyNl
bmRpZgorCiAgICAgTGF5ZXJNYXAgbV9sYXllcnM7CiAgICAgV2ViTGF5ZXJJRCBtX3Jvb3RMYXll
cklEOwogICAgIGludCBtX2lkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L0xheWVyVHJlZUhvc3RQcm94eVF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9MYXllclRyZWVIb3N0UHJveHlRdC5jcHAKaW5kZXggMGMwMzZlNC4uOWNiMTk4OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0xheWVyVHJlZUhvc3RQcm94eVF0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvTGF5ZXJUcmVlSG9zdFByb3h5UXQu
Y3BwCkBAIC0xNTQsNiArMTU0LDcgQEAgUGFzc093blB0cjxHcmFwaGljc0xheWVyPiBMYXllclRy
ZWVIb3N0UHJveHk6OmNyZWF0ZUxheWVyKFdlYkxheWVySUQgbGF5ZXJJRCkKIExheWVyVHJlZUhv
c3RQcm94eTo6TGF5ZXJUcmVlSG9zdFByb3h5KERyYXdpbmdBcmVhUHJveHkqIGRyYXdpbmdBcmVh
UHJveHkpCiAgICAgOiBtX2FuaW1hdGlvblRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJkxh
eWVyVHJlZUhvc3RQcm94eTo6dXBkYXRlVmlld3BvcnQpCiAgICAgLCBtX2RyYXdpbmdBcmVhUHJv
eHkoZHJhd2luZ0FyZWFQcm94eSkKKyAgICAsIG1fdmlld3BvcnRVcGRhdGVUaW1lcih0aGlzLCAm
TGF5ZXJUcmVlSG9zdFByb3h5OjpkaWRGaXJlVmlld3BvcnRVcGRhdGVUaW1lcikKICAgICAsIG1f
cm9vdExheWVySUQoMCkKIHsKIH0KQEAgLTIwOCw4ICsyMDksMTUgQEAgdm9pZCBMYXllclRyZWVI
b3N0UHJveHk6OnBhaW50VG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0
cml4JiBtYXQKIAogICAgIG1fdGV4dHVyZU1hcHBlci0+ZW5kUGFpbnRpbmcoKTsKIAotICAgIGlm
IChub2RlLT5kZXNjZW5kYW50c09yU2VsZkhhdmVSdW5uaW5nQW5pbWF0aW9ucygpKQotICAgICAg
ICB1cGRhdGVWaWV3cG9ydCgpOworICAgIGlmIChub2RlLT5kZXNjZW5kYW50c09yU2VsZkhhdmVS
dW5uaW5nQW5pbWF0aW9ucygpKSB7CisgICAgICAgIG5vZGUtPnN5bmNBbmltYXRpb25zUmVjdXJz
aXZlbHkoKTsKKyAgICAgICAgbV92aWV3cG9ydFVwZGF0ZVRpbWVyLnN0YXJ0T25lU2hvdCgwKTsK
KyAgICB9Cit9CisKK3ZvaWQgTGF5ZXJUcmVlSG9zdFByb3h5OjpkaWRGaXJlVmlld3BvcnRVcGRh
dGVUaW1lcihUaW1lcjxMYXllclRyZWVIb3N0UHJveHk+KikKK3sKKyAgICB1cGRhdGVWaWV3cG9y
dCgpOwogfQogCiB2b2lkIExheWVyVHJlZUhvc3RQcm94eTo6dXBkYXRlVmlld3BvcnQoKQpAQCAt
MjcyLDYgKzI4MCwyNiBAQCB2b2lkIExheWVyVHJlZUhvc3RQcm94eTo6c3luY0xheWVyUGFyYW1l
dGVycyhjb25zdCBXZWJMYXllckluZm8mIGxheWVySW5mbykKICAgICB9CiAgICAgbGF5ZXItPnNl
dENoaWxkcmVuKGNoaWxkcmVuKTsKIAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGF5ZXJJ
bmZvLmFuaW1hdGlvbnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgY29uc3QgV2ViS2l0OjpXZWJM
YXllckFuaW1hdGlvbiBhbmltID0gbGF5ZXJJbmZvLmFuaW1hdGlvbnNbaV07CisKKyAgICAgICAg
c3dpdGNoIChhbmltLm9wZXJhdGlvbikgeworICAgICAgICBjYXNlIFdlYktpdDo6V2ViTGF5ZXJB
bmltYXRpb246OkFkZEFuaW1hdGlvbjogeworICAgICAgICAgICAgY29uc3QgSW50U2l6ZSBib3hT
aXplID0gYW5pbS5ib3hTaXplOworICAgICAgICAgICAgZG91YmxlIG9mZnNldCA9IFdURjo6Y3Vy
cmVudFRpbWUoKSAtIGFuaW0uc3RhcnRUaW1lOworICAgICAgICAgICAgbGF5ZXItPmFkZEFuaW1h
dGlvbihhbmltLmtleWZyYW1lTGlzdCwgYm94U2l6ZSwgYW5pbS5hbmltYXRpb24uZ2V0KCksIGFu
aW0ubmFtZSwgb2Zmc2V0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAg
IGNhc2UgV2ViS2l0OjpXZWJMYXllckFuaW1hdGlvbjo6UmVtb3ZlQW5pbWF0aW9uOgorICAgICAg
ICAgICAgbGF5ZXItPnJlbW92ZUFuaW1hdGlvbihhbmltLm5hbWUpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgV2ViS2l0OjpXZWJMYXllckFuaW1hdGlvbjo6UGF1c2VBbmltYXRp
b246CisgICAgICAgICAgICBkb3VibGUgb2Zmc2V0ID0gV1RGOjpjdXJyZW50VGltZSgpIC0gYW5p
bS5zdGFydFRpbWU7CisgICAgICAgICAgICBsYXllci0+cGF1c2VBbmltYXRpb24oYW5pbS5uYW1l
LCBvZmZzZXQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKICAgICBp
ZiAobGF5ZXJJbmZvLmlzUm9vdExheWVyICYmIG1fcm9vdExheWVySUQgIT0gaWQpCiAgICAgICAg
IHNldFJvb3RMYXllcklEKGlkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDcw
ODQzMjQuLjU4ZjdjZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmNwcApAQCAtMjgwLDE1ICsy
ODAsNDAgQEAgdm9pZCBXZWJHcmFwaGljc0xheWVyOjpub3RpZnlBbmltYXRpb25TdGFydGVkKGRv
dWJsZSB0aW1lKQogLy8gV2UgcHV0IHRoZXNlIHN0dWIgaW1wbGVtZW50YXRpb25zIGhlcmUgZm9y
IHdoZW4gd2UgaW1wbGVtZW50IGFjY2VsZXJhdGVkIGNyb3NzLXByb2Nlc3MgYW5pbWF0aW9ucy4K
IGJvb2wgV2ViR3JhcGhpY3NMYXllcjo6YWRkQW5pbWF0aW9uKGNvbnN0IEtleWZyYW1lVmFsdWVM
aXN0JiB2YWx1ZUxpc3QsIGNvbnN0IEludFNpemUmIGJveFNpemUsIGNvbnN0IEFuaW1hdGlvbiog
YW5pbSwgY29uc3QgU3RyaW5nJiBrZXlmcmFtZXNOYW1lLCBkb3VibGUgdGltZU9mZnNldCkKIHsK
LSAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFhbmltIHx8IGFuaW0tPmlzRW1wdHlPclplcm9E
dXJhdGlvbigpIHx8IHZhbHVlTGlzdC5zaXplKCkgPCAyIHx8ICh2YWx1ZUxpc3QucHJvcGVydHko
KSAhPSBBbmltYXRlZFByb3BlcnR5V2Via2l0VHJhbnNmb3JtICYmIHZhbHVlTGlzdC5wcm9wZXJ0
eSgpICE9IEFuaW1hdGVkUHJvcGVydHlPcGFjaXR5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgV2ViTGF5ZXJBbmltYXRpb24gd2ViQW5pbWF0aW9uKHZhbHVlTGlzdCk7CisgICAgd2Vi
QW5pbWF0aW9uLm5hbWUgPSBrZXlmcmFtZXNOYW1lOworICAgIHdlYkFuaW1hdGlvbi5vcGVyYXRp
b24gPSBXZWJMYXllckFuaW1hdGlvbjo6QWRkQW5pbWF0aW9uOworICAgIHdlYkFuaW1hdGlvbi5i
b3hTaXplID0gYm94U2l6ZTsKKyAgICB3ZWJBbmltYXRpb24uYW5pbWF0aW9uID0gQW5pbWF0aW9u
OjpjcmVhdGUoYW5pbSk7CisgICAgd2ViQW5pbWF0aW9uLnN0YXJ0VGltZSA9IFdURjo6Y3VycmVu
dFRpbWUoKSAtIHRpbWVPZmZzZXQ7CisgICAgbV9sYXllckluZm8uYW5pbWF0aW9ucy5hcHBlbmQo
d2ViQW5pbWF0aW9uKTsKKworICAgIG1faGFzUGVuZGluZ0FuaW1hdGlvbnMgPSB0cnVlOworICAg
IG5vdGlmeUNoYW5nZSgpOworCisgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgV2ViR3JhcGhp
Y3NMYXllcjo6cGF1c2VBbmltYXRpb24oY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBkb3Vi
bGUgdGltZU9mZnNldCkKIHsKKyAgICBXZWJMYXllckFuaW1hdGlvbiBhbmltYXRpb247CisgICAg
YW5pbWF0aW9uLm5hbWUgPSBhbmltYXRpb25OYW1lOworICAgIGFuaW1hdGlvbi5vcGVyYXRpb24g
PSBXZWJMYXllckFuaW1hdGlvbjo6UGF1c2VBbmltYXRpb247CisgICAgYW5pbWF0aW9uLnN0YXJ0
VGltZSA9IFdURjo6Y3VycmVudFRpbWUoKSAtIHRpbWVPZmZzZXQ7CisgICAgbV9sYXllckluZm8u
YW5pbWF0aW9ucy5hcHBlbmQoYW5pbWF0aW9uKTsKKyAgICBub3RpZnlDaGFuZ2UoKTsKIH0KIAog
dm9pZCBXZWJHcmFwaGljc0xheWVyOjpyZW1vdmVBbmltYXRpb24oY29uc3QgU3RyaW5nJiBhbmlt
YXRpb25OYW1lKQogeworICAgIFdlYkxheWVyQW5pbWF0aW9uIGFuaW1hdGlvbjsKKyAgICBhbmlt
YXRpb24ubmFtZSA9IGFuaW1hdGlvbk5hbWU7CisgICAgYW5pbWF0aW9uLm9wZXJhdGlvbiA9IFdl
YkxheWVyQW5pbWF0aW9uOjpSZW1vdmVBbmltYXRpb247CisgICAgbV9sYXllckluZm8uYW5pbWF0
aW9ucy5hcHBlbmQoYW5pbWF0aW9uKTsKKyAgICBub3RpZnlDaGFuZ2UoKTsKIH0KIAogdm9pZCBX
ZWJHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c05lZWRzRGlzcGxheSgpCkBAIC00MDIsNiArNDI3
LDcgQEAgdm9pZCBXZWJHcmFwaGljc0xheWVyOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNM
YXllck9ubHkoKQogICAgIG1fbGF5ZXJJbmZvLmltYWdlSXNVcGRhdGVkID0gZmFsc2U7CiAgICAg
aWYgKG1faGFzUGVuZGluZ0FuaW1hdGlvbnMpCiAgICAgICAgIG5vdGlmeUFuaW1hdGlvblN0YXJ0
ZWQoV1RGOjpjdXJyZW50VGltZSgpKTsKKyAgICBtX2xheWVySW5mby5hbmltYXRpb25zLmNsZWFy
KCk7CiAgICAgbV9oYXNQZW5kaW5nQW5pbWF0aW9ucyA9IGZhbHNlOwogfQogCi0tIAoxLjcuNC4x
Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115907</attachid>
            <date>2011-11-18 16:34:24 -0800</date>
            <delta_ts>2011-11-21 06:32:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-WK2-Qt-Move-Accelerated-Composite-animations-to-UIPr.patch</filename>
            <type>text/plain</type>
            <size>20240</size>
            <attacher name="Igor Trindade Oliveira">igor.oliveira</attacher>
            
              <data encoding="base64">RnJvbSAyY2QwNTIzMDZkNTkxZjY2MmY1OTEzMjE0OTliNzk5NDQyZTkyNjc5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJZ29yIE9saXZlaXJhIDxpZ29yLm9saXZlaXJhQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IEZyaSwgMTggTm92IDIwMTEgMTY6NTg6NTYgLTA0MDAKU3ViamVjdDogW1BB
VENIXSBbV0syXVtRdF0gTW92ZSBBY2NlbGVyYXRlZCBDb21wb3NpdGUgYW5pbWF0aW9ucyB0byBV
SVByb2Nlc3MKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDEzICsrKysrCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJOb2RlLmNwcCB8ICAgMTAgKysrKwogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyTm9kZS5oICAgfCAgICAxICsKIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0NSArKysrKysrKysrKysrKysrKysKIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwICAgIHwgICA0OCAr
KysrKysrKysrLS0tLS0tLS0tLQogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oICAgICAgfCAgICA2ICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTGF5ZXJU
cmVlSW5mby5jcHAgICAgICAgICB8ICAgMjQgKysrKysrKysrLQogU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkxheWVyVHJlZUluZm8uaCAgICAgICAgICAgfCAgIDIwICsrKysrKysrCiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmggICAgICB8ICAgIDUgKysKIC4u
Li9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXllclRyZWVIb3N0UHJveHlRdC5jcHAgIHwgICAzMiAr
KysrKysrKysrKystCiAuLi4vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xh
eWVyLmNwcCB8ICAgMjggKysrKysrKysrKystCiAxMSBmaWxlcyBjaGFuZ2VkLCAyMDAgaW5zZXJ0
aW9ucygrKSwgMzIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE2YmIwZmQuLjJiZDIyOGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0xMS0xOCAgSWdvciBPbGl2ZWlyYSAg
PGlnb3Iub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBbV0syXVtRdF0gTW92ZSBB
Y2NlbGVyYXRlZCBDb21wb3NpdGUgYW5pbWF0aW9ucyB0byBVSVByb2Nlc3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzUzCisKKyAgICAgICAgQWRk
IGhlbHBlciBtZXRob2QgdG8gc3luY2hyb25pemUgYW5pbWF0aW9ucyBpbiBUZXh0dXJlTWFwcGVy
LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRleHR1cmVNYXBwZXJOb2RlOjpzeW5jQW5pbWF0aW9uc1JlY3Vyc2l2ZWx5KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaDoKKwog
MjAxMS0xMS0xOCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAg
ICAgICAtd2Via2l0LWNyb3NzLWZhZGUgcmVuZGVyZWQgaW5jb3JyZWN0bHkgaW4gb3ZlcmZsb3cg
ZGl2cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAKaW5kZXggYWI1OTcwMy4uMGFmOGQ3MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwCkBAIC05ODQsNiArOTg0LDE2IEBAIHZvaWQgVGV4dHVy
ZU1hcHBlck5vZGU6OnN5bmNBbmltYXRpb25zKEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiBs
YXllcikKICAgICB9CiB9CiAKK3ZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OnN5bmNBbmltYXRpb25z
UmVjdXJzaXZlbHkoKQoreworICAgIHN5bmNBbmltYXRpb25zKDApOworCisgICAgY29tcHV0ZUFs
bFRyYW5zZm9ybXMoKTsKKworICAgIGZvciAoaW50IGkgPSBtX2NoaWxkcmVuLnNpemUoKSAtIDE7
IGkgPj0gMDsgLS1pKQorICAgICAgICBtX2NoaWxkcmVuW2ldLT5zeW5jQW5pbWF0aW9uc1JlY3Vy
c2l2ZWx5KCk7Cit9CisKIHZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OnN5bmNDb21wb3NpdGluZ1N0
YXRlKEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiBncmFwaGljc0xheWVyLCBUZXh0dXJlTWFw
cGVyKiB0ZXh0dXJlTWFwcGVyLCBpbnQgb3B0aW9ucykKIHsKICAgICBpZiAoZ3JhcGhpY3NMYXll
ciAmJiAhKG9wdGlvbnMgJiBDb21wdXRhdGlvbnNPbmx5KSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUu
aAppbmRleCA0YTRmY2ZmLi5lYjljNjkyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmgKQEAgLTE0
MSw2ICsxNDEsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHN5bmNDb21wb3NpdGluZ1N0YXRlKEdy
YXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiwgaW50IHN5bmNPcHRpb25zID0gMCk7CiAgICAgdm9p
ZCBzeW5jQ29tcG9zaXRpbmdTdGF0ZShHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciosIFRleHR1
cmVNYXBwZXIqLCBpbnQgc3luY09wdGlvbnMgPSAwKTsKKyAgICB2b2lkIHN5bmNBbmltYXRpb25z
UmVjdXJzaXZlbHkoKTsKICAgICBJbnRTaXplIHNpemUoKSBjb25zdCB7IHJldHVybiBJbnRTaXpl
KG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkpOyB9CiAgICAgdm9pZCBzZXRUcmFuc2Zv
cm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKICAgICB2b2lkIHNldE9wYWNpdHkoZmxv
YXQgdmFsdWUpIHsgbV9vcGFjaXR5ID0gdmFsdWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlMzI5NTI3Li4w
ZDJjNWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTEtMTEtMTggIElnb3IgT2xp
dmVpcmEgIDxpZ29yLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW1dLMl1bUXRd
IE1vdmUgQWNjZWxlcmF0ZWQgQ29tcG9zaXRlIGFuaW1hdGlvbnMgdG8gVUlQcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc1MworCisgICAg
ICAgIEN1cnJlbnRseSwgYWxsIHRoZSBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBhbmltYXRpb25z
IGFyZSBhcHBsaWVkIGluIFdlYlByb2Nlc3MgYW5kCisgICAgICAgIGZvciBlYWNoIGZyYW1lIGdl
bmVyYXRlZCwgV2ViUHJvY2VzcyBuZWVkcyB0byBzeW5jIHdpdGggVUlQcm9jZXNzLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggbW92ZXMgdGhlIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGFuaW1hdGlv
bnMgdG8gVUlQcm9jZXNzIHJlZHVjaW5nIHRoZQorICAgICAgICBhbW91bnQgb2Ygc3luY2hyb25p
emF0aW9uIG1lc3NhZ2VzIGJldHdlZW4gV2ViUHJvY2VzcyBhbmQgVUlQcm9jZXNzLCB0aGlzIGlz
IGRvbmUKKyAgICAgICAgc2VuZGluZyBhbmltYXRpb25zIGluZm9ybWF0aW9uIHRvIFVJUHJvY2Vz
cy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNo
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoQ29yZUlQQzo6OjplbmNv
ZGUpOgorICAgICAgICAoQ29yZUlQQzo6OjpkZWNvZGUpOgorCisgICAgICAgIEVuY29kZS9EZWNv
ZGUgUmVmUHRyPEFuaW1hdGlvbj4gaW5zdGVhZCBvZiBBbmltYXRpb24gY2xhc3MuIFRoaXMgZmFj
aWxpdGF0ZXMKKyAgICAgICAgdGhlIGRhdGEgc2VyaWFsaXphdGlvbi4KKworICAgICAgICAqIFNo
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViTGF5ZXJU
cmVlSW5mby5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVySW5mbzo6ZW5jb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTGF5ZXJJbmZvOjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJMYXllckFuaW1hdGlvbjo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJBbmlt
YXRpb246OmRlY29kZSk6CisKKyAgICAgICAgQ3JlYXRlIFdlYkxheWVyQW5pbWF0aW9uIHN0cnVj
dCwgaXQgaXMgdXNlZCB0byBzZW5kIGFuaW1hdGlvbiBpbmZvcm1hdGlvbgorICAgICAgICB0byBV
SVByb2Nlc3MuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViTGF5ZXJUcmVlSW5mby5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJMYXllckFuaW1hdGlvbjo6V2ViTGF5ZXJBbmltYXRpb24pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
cXQvTGF5ZXJUcmVlSG9zdFByb3h5UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVI
b3N0UHJveHk6OkxheWVyVHJlZUhvc3RQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJl
ZUhvc3RQcm94eTo6cGFpbnRUb0N1cnJlbnRHTENvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpM
YXllclRyZWVIb3N0UHJveHk6OnVwZGF0ZVNjZW5lR3JhcGhVcGRhdGVUaW1lckZpcmVkKToKKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdFByb3h5OjpzeW5jTGF5ZXJQYXJhbWV0ZXJzKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR3JhcGhpY3NMYXllcjo6YWRkQW5pbWF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdyYXBoaWNzTGF5ZXI6OnBhdXNlQW5pbWF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdyYXBoaWNzTGF5ZXI6OnJlbW92ZUFuaW1hdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHcmFwaGljc0xheWVyOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNM
YXllck9ubHkpOgorCiAyMDExLTExLTE4IE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFs
QG5va2lhLmNvbT4KIAogICAgICAgICBXZWJLaXQyOiBFbmFibGUgc2VyaWFsaXppbmcgb2YgZGF0
YSB0eXBlcyBuZWVkZWQgZm9yIGNyb3NzLXByb2Nlc3MgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5k
ZXggMDVhNjI5Zi4uNzNhZTg2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTY0Nyw3ICs2NDcsNiBAQCBib29sIEFyZ3VtZW50Q29k
ZXI8TGVuZ3RoPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgTGVuZ3RoJiBsZW5n
dGgpCiAgICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGVuZ3RoPjo6ZGVjb2RlKGRlY29k
ZXIsIGxlbmd0aCk7CiB9CiAKLQogdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0
cml4Pjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgY29uc3QgVHJhbnNmb3JtYXRp
b25NYXRyaXgmIHRyYW5zZm9ybWF0aW9uTWF0cml4KQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29k
ZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjplbmNvZGUoZW5jb2RlciwgdHJhbnNmb3JtYXRpb25N
YXRyaXgpOwpAQCAtMTA2MiwxOCArMTA2MSwxOCBAQCBzdGF0aWMgdm9pZCBlbmNvZGVCb29sQW5k
RW51bVZhbHVlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgYm9vbCBpc1NldCwgVCB2YWx1ZQog
ICAgICAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKHZhbHVlKTsKIH0KIAotdm9pZCBBcmd1bWVudENv
ZGVyPEFuaW1hdGlvbj46OmVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IEFu
aW1hdGlvbiYgYW5pbWF0aW9uKQordm9pZCBBcmd1bWVudENvZGVyPFJlZlB0cjxBbmltYXRpb24+
ID46OmVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IFJlZlB0cjxBbmltYXRp
b24+JiBhbmltYXRpb24pCiB7Ci0gICAgZW5jb2RlQm9vbEFuZFZhbHVlKGVuY29kZXIsIGFuaW1h
dGlvbi5pc0RlbGF5U2V0KCksIGFuaW1hdGlvbi5kZWxheSgpKTsKLSAgICBlbmNvZGVCb29sQW5k
RW51bVZhbHVlKGVuY29kZXIsIGFuaW1hdGlvbi5pc0RpcmVjdGlvblNldCgpLCBhbmltYXRpb24u
ZGlyZWN0aW9uKCkpOwotICAgIGVuY29kZUJvb2xBbmRWYWx1ZShlbmNvZGVyLCBhbmltYXRpb24u
aXNEdXJhdGlvblNldCgpLCBhbmltYXRpb24uZHVyYXRpb24oKSk7Ci0gICAgZW5jb2RlQm9vbEFu
ZFZhbHVlKGVuY29kZXIsIGFuaW1hdGlvbi5pc0ZpbGxNb2RlU2V0KCksIGFuaW1hdGlvbi5maWxs
TW9kZSgpKTsKLSAgICBlbmNvZGVCb29sQW5kVmFsdWUoZW5jb2RlciwgYW5pbWF0aW9uLmlzSXRl
cmF0aW9uQ291bnRTZXQoKSwgYW5pbWF0aW9uLml0ZXJhdGlvbkNvdW50KCkpOwotICAgIGVuY29k
ZUJvb2xBbmRWYWx1ZShlbmNvZGVyLCBhbmltYXRpb24uaXNOYW1lU2V0KCksIGFuaW1hdGlvbi5u
YW1lKCkpOwotICAgIGVuY29kZUJvb2xBbmRFbnVtVmFsdWUoZW5jb2RlciwgYW5pbWF0aW9uLmlz
UGxheVN0YXRlU2V0KCksIGFuaW1hdGlvbi5wbGF5U3RhdGUoKSk7Ci0gICAgZW5jb2RlQm9vbEFu
ZFZhbHVlKGVuY29kZXIsIGFuaW1hdGlvbi5pc1Byb3BlcnR5U2V0KCksIGFuaW1hdGlvbi5wcm9w
ZXJ0eSgpKTsKLSAgICBlbmNvZGVCb29sQW5kVmFsdWU8UmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiA+
KGVuY29kZXIsIGFuaW1hdGlvbi5pc1RpbWluZ0Z1bmN0aW9uU2V0KCksIGFuaW1hdGlvbi50aW1p
bmdGdW5jdGlvbigpKTsKLSAgICBlbmNvZGVyLT5lbmNvZGVCb29sKGFuaW1hdGlvbi5pc05vbmVB
bmltYXRpb24oKSk7CisgICAgZW5jb2RlQm9vbEFuZFZhbHVlKGVuY29kZXIsIGFuaW1hdGlvbi0+
aXNEZWxheVNldCgpLCBhbmltYXRpb24tPmRlbGF5KCkpOworICAgIGVuY29kZUJvb2xBbmRFbnVt
VmFsdWUoZW5jb2RlciwgYW5pbWF0aW9uLT5pc0RpcmVjdGlvblNldCgpLCBhbmltYXRpb24tPmRp
cmVjdGlvbigpKTsKKyAgICBlbmNvZGVCb29sQW5kVmFsdWUoZW5jb2RlciwgYW5pbWF0aW9uLT5p
c0R1cmF0aW9uU2V0KCksIGFuaW1hdGlvbi0+ZHVyYXRpb24oKSk7CisgICAgZW5jb2RlQm9vbEFu
ZFZhbHVlKGVuY29kZXIsIGFuaW1hdGlvbi0+aXNGaWxsTW9kZVNldCgpLCBhbmltYXRpb24tPmZp
bGxNb2RlKCkpOworICAgIGVuY29kZUJvb2xBbmRWYWx1ZShlbmNvZGVyLCBhbmltYXRpb24tPmlz
SXRlcmF0aW9uQ291bnRTZXQoKSwgYW5pbWF0aW9uLT5pdGVyYXRpb25Db3VudCgpKTsKKyAgICBl
bmNvZGVCb29sQW5kVmFsdWUoZW5jb2RlciwgYW5pbWF0aW9uLT5pc05hbWVTZXQoKSwgYW5pbWF0
aW9uLT5uYW1lKCkpOworICAgIGVuY29kZUJvb2xBbmRFbnVtVmFsdWUoZW5jb2RlciwgYW5pbWF0
aW9uLT5pc1BsYXlTdGF0ZVNldCgpLCBhbmltYXRpb24tPnBsYXlTdGF0ZSgpKTsKKyAgICBlbmNv
ZGVCb29sQW5kVmFsdWUoZW5jb2RlciwgYW5pbWF0aW9uLT5pc1Byb3BlcnR5U2V0KCksIGFuaW1h
dGlvbi0+cHJvcGVydHkoKSk7CisgICAgZW5jb2RlQm9vbEFuZFZhbHVlPFJlZlB0cjxUaW1pbmdG
dW5jdGlvbj4gPihlbmNvZGVyLCBhbmltYXRpb24tPmlzVGltaW5nRnVuY3Rpb25TZXQoKSwgYW5p
bWF0aW9uLT50aW1pbmdGdW5jdGlvbigpKTsKKyAgICBlbmNvZGVyLT5lbmNvZGVCb29sKGFuaW1h
dGlvbi0+aXNOb25lQW5pbWF0aW9uKCkpOwogfQogCiAKQEAgLTEwOTksNyArMTA5OCw3IEBAIHN0
YXRpYyBib29sIGRlY29kZUJvb2xBbmRFbnVtVmFsdWUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVy
LCBib29sJiBpc1NldCwgVCYgdmFsCiAgICAgcmV0dXJuIGRlY29kZXItPmRlY29kZUVudW0odmFs
dWUpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8QW5pbWF0aW9uPjo6ZGVjb2RlKEFyZ3VtZW50
RGVjb2RlciogZGVjb2RlciwgQW5pbWF0aW9uJiBhbmltYXRpb24pCitib29sIEFyZ3VtZW50Q29k
ZXI8UmVmUHRyPEFuaW1hdGlvbj4gPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2Rlciwg
UmVmUHRyPEFuaW1hdGlvbj4mIGFuaW1hdGlvbikKIHsKICAgICBib29sIGlzRGVsYXlTZXQsIGlz
RGlyZWN0aW9uU2V0LCBpc0R1cmF0aW9uU2V0LCBpc0ZpbGxNb2RlU2V0LCBpc0l0ZXJhdGlvbkNv
dW50U2V0LCBpc05hbWVTZXQsIGlzUGxheVN0YXRlU2V0LCBpc1Byb3BlcnR5U2V0LCBpc1RpbWlu
Z0Z1bmN0aW9uU2V0OwogICAgIGludCBwcm9wZXJ0eSwgaXRlcmF0aW9uQ291bnQsIGZpbGxNb2Rl
OwpAQCAtMTEwNyw4ICsxMTA2LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPEFuaW1hdGlvbj46OmRl
Y29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEFuaW1hdGlvbiYgYW5pbWEKICAgICBSZWZQ
dHI8VGltaW5nRnVuY3Rpb24+IHRpbWluZ0Z1bmN0aW9uOwogICAgIFN0cmluZyBuYW1lOwogCi0g
ICAgYW5pbWF0aW9uLmNsZWFyQWxsKCk7Ci0KICAgICBkb3VibGUgZGVsYXk7CiAgICAgaWYgKCFk
ZWNvZGVCb29sQW5kVmFsdWUoZGVjb2RlciwgaXNEZWxheVNldCwgZGVsYXkpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC0xMTMzLDI0ICsxMTMwLDI3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxB
bmltYXRpb24+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBBbmltYXRpb24mIGFu
aW1hCiAgICAgaWYgKCFkZWNvZGVCb29sQW5kVmFsdWU8UmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiA+
KGRlY29kZXIsIGlzVGltaW5nRnVuY3Rpb25TZXQsIHRpbWluZ0Z1bmN0aW9uKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCisgICAgYW5pbWF0aW9uID0gQW5pbWF0aW9uOjpjcmVhdGUoKTsKKyAg
ICBhbmltYXRpb24tPmNsZWFyQWxsKCk7CisKICAgICBpZiAoaXNEZWxheVNldCkKLSAgICAgICAg
YW5pbWF0aW9uLnNldERlbGF5KGRlbGF5KTsKKyAgICAgICAgYW5pbWF0aW9uLT5zZXREZWxheShk
ZWxheSk7CiAgICAgaWYgKGlzRGlyZWN0aW9uU2V0KQotICAgICAgICBhbmltYXRpb24uc2V0RGly
ZWN0aW9uKGRpcmVjdGlvbik7CisgICAgICAgIGFuaW1hdGlvbi0+c2V0RGlyZWN0aW9uKGRpcmVj
dGlvbik7CiAgICAgaWYgKGlzRHVyYXRpb25TZXQpCi0gICAgICAgIGFuaW1hdGlvbi5zZXREdXJh
dGlvbihkdXJhdGlvbik7CisgICAgICAgIGFuaW1hdGlvbi0+c2V0RHVyYXRpb24oZHVyYXRpb24p
OwogICAgIGlmIChpc0ZpbGxNb2RlU2V0KQotICAgICAgICBhbmltYXRpb24uc2V0RmlsbE1vZGUo
ZmlsbE1vZGUpOworICAgICAgICBhbmltYXRpb24tPnNldEZpbGxNb2RlKGZpbGxNb2RlKTsKICAg
ICBpZiAoaXNJdGVyYXRpb25Db3VudFNldCkKLSAgICAgICAgYW5pbWF0aW9uLnNldEl0ZXJhdGlv
bkNvdW50KGl0ZXJhdGlvbkNvdW50KTsKKyAgICAgICAgYW5pbWF0aW9uLT5zZXRJdGVyYXRpb25D
b3VudChpdGVyYXRpb25Db3VudCk7CiAgICAgaWYgKGlzTmFtZVNldCkKLSAgICAgICAgYW5pbWF0
aW9uLnNldE5hbWUobmFtZSk7CisgICAgICAgIGFuaW1hdGlvbi0+c2V0TmFtZShuYW1lKTsKICAg
ICBpZiAoaXNQbGF5U3RhdGVTZXQpCi0gICAgICAgIGFuaW1hdGlvbi5zZXRQbGF5U3RhdGUocGxh
eVN0YXRlKTsKKyAgICAgICAgYW5pbWF0aW9uLT5zZXRQbGF5U3RhdGUocGxheVN0YXRlKTsKICAg
ICBpZiAoaXNQcm9wZXJ0eVNldCkKLSAgICAgICAgYW5pbWF0aW9uLnNldFByb3BlcnR5KHByb3Bl
cnR5KTsKKyAgICAgICAgYW5pbWF0aW9uLT5zZXRQcm9wZXJ0eShwcm9wZXJ0eSk7CiAgICAgaWYg
KGlzVGltaW5nRnVuY3Rpb25TZXQpCi0gICAgICAgIGFuaW1hdGlvbi5zZXRUaW1pbmdGdW5jdGlv
bih0aW1pbmdGdW5jdGlvbik7CisgICAgICAgIGFuaW1hdGlvbi0+c2V0VGltaW5nRnVuY3Rpb24o
dGltaW5nRnVuY3Rpb24pOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggMTdlMGQ5MC4uMDU1MDQxZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAt
Mjg4LDkgKzI4OCw5IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
VHJhbnNmb3JtT3BlcmF0aW9ucz4gewogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERl
Y29kZXIqLCBXZWJDb3JlOjpUcmFuc2Zvcm1PcGVyYXRpb25zJik7CiB9OwogCi10ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkFuaW1hdGlvbj4gewotICAgIHN0YXRpYyB2
b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqLCBjb25zdCBXZWJDb3JlOjpBbmltYXRpb24mKTsK
LSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiwgV2ViQ29yZTo6QW5pbWF0
aW9uJik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFJlZlB0cjxXZWJDb3JlOjpB
bmltYXRpb24+ID4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqLCBj
b25zdCBSZWZQdHI8V2ViQ29yZTo6QW5pbWF0aW9uPiYpOworICAgIHN0YXRpYyBib29sIGRlY29k
ZShBcmd1bWVudERlY29kZXIqLCBSZWZQdHI8V2ViQ29yZTo6QW5pbWF0aW9uPiYpOwogfTsKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTGF5ZXJUcmVlSW5m
by5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTGF5ZXJUcmVlSW5mby5jcHAKaW5kZXgg
ZWRiNjJhMi4uYTU3OTUxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkxh
eWVyVHJlZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJMYXllclRyZWVJ
bmZvLmNwcApAQCAtMzUsNyArMzUsNyBAQCB2b2lkIFdlYkxheWVySW5mbzo6ZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKIHsKICAgICAvLyBXZSBoYXZlIHRv
IGRpdmlkZSBpdCB0byBzZXZlcmFsIGxpbmVzLCBiZWNhdXNlIENvcmVJUEM6OkluL091dCB0YWtl
cyBhIG1heGltdW0gb2YgMTAgYXJndW1lbnRzLgogICAgIGVuY29kZXItPmVuY29kZShDb3JlSVBD
OjpJbihpZCwgbmFtZSwgcGFyZW50LCBjaGlsZHJlbiwgZmxhZ3MsIHJlcGxpY2EsIG1hc2ssIGlt
YWdlQmFja2luZ1N0b3JlSUQpKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4ocG9z
LCBzaXplLCB0cmFuc2Zvcm0sIG9wYWNpdHksIGFuY2hvclBvaW50LCBjaGlsZHJlblRyYW5zZm9y
bSwgY29udGVudHNSZWN0KSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKENvcmVJUEM6OkluKHBvcywg
c2l6ZSwgdHJhbnNmb3JtLCBvcGFjaXR5LCBhbmNob3JQb2ludCwgY2hpbGRyZW5UcmFuc2Zvcm0s
IGNvbnRlbnRzUmVjdCwgYW5pbWF0aW9ucykpOwogfQogCiBib29sIFdlYkxheWVySW5mbzo6ZGVj
b2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViTGF5ZXJJbmZvJiBpbmZv
KQpAQCAtNDMsOCArNDMsOSBAQCBib29sIFdlYkxheWVySW5mbzo6ZGVjb2RlKENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViTGF5ZXJJbmZvJiBpbmZvKQogICAgIC8vIFdlIGhh
dmUgdG8gZGl2aWRlIGl0IHRvIHNldmVyYWwgbGluZXMsIGJlY2F1c2UgQ29yZUlQQzo6SW4vT3V0
IHRha2VzIGEgbWF4aW11bSBvZiAxMCBhcmd1bWVudHMuCiAgICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGUoQ29yZUlQQzo6T3V0KGluZm8uaWQsIGluZm8ubmFtZSwgaW5mby5wYXJlbnQsIGluZm8uY2hp
bGRyZW4sIGluZm8uZmxhZ3MsIGluZm8ucmVwbGljYSwgaW5mby5tYXNrLCBpbmZvLmltYWdlQmFj
a2luZ1N0b3JlSUQpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlKENvcmVJUEM6Ok91dChpbmZvLnBvcywgaW5mby5zaXplLCBpbmZvLnRyYW5zZm9ybSwg
aW5mby5vcGFjaXR5LCBpbmZvLmFuY2hvclBvaW50LCBpbmZvLmNoaWxkcmVuVHJhbnNmb3JtLCBp
bmZvLmNvbnRlbnRzUmVjdCkpKQorICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91
dChpbmZvLnBvcywgaW5mby5zaXplLCBpbmZvLnRyYW5zZm9ybSwgaW5mby5vcGFjaXR5LCBpbmZv
LmFuY2hvclBvaW50LCBpbmZvLmNoaWxkcmVuVHJhbnNmb3JtLCBpbmZvLmNvbnRlbnRzUmVjdCwg
aW5mby5hbmltYXRpb25zKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHJldHVybiB0
cnVlOwogfQogCkBAIC02OCw1ICs2OSwyNCBAQCBib29sIFdlYkxheWVyVXBkYXRlSW5mbzo6ZGVj
b2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViTGF5ZXJVcGRhdAogICAg
IHJldHVybiBkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6T3V0KGluZm8ubGF5ZXJJRCwgaW5mby5y
ZWN0LCBpbmZvLmJpdG1hcEhhbmRsZSkpOwogfQogCit2b2lkIFdlYkxheWVyQW5pbWF0aW9uOjpl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIGVu
Y29kZXItPmVuY29kZUVudW0ob3BlcmF0aW9uKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoa2V5ZnJh
bWVMaXN0KTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4obmFtZSwgc3RhcnRUaW1l
LCBib3hTaXplLCBhbmltYXRpb24sIGtleWZyYW1lTGlzdCkpOworfQorCitib29sIFdlYkxheWVy
QW5pbWF0aW9uOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJM
YXllckFuaW1hdGlvbiYgaW5mbykKK3sKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZUVudW0oaW5m
by5vcGVyYXRpb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5k
ZWNvZGUoaW5mby5rZXlmcmFtZUxpc3QpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6T3V0KGluZm8ubmFtZSwgaW5mby5zdGFydFRpbWUs
IGluZm8uYm94U2l6ZSwgaW5mby5hbmltYXRpb24pKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkxheWVyVHJlZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJMYXllclRyZWVJbmZvLmgKaW5kZXggMjUwMDNlNy4uNTZhNGY2NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkxheWVyVHJlZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViTGF5ZXJUcmVlSW5mby5oCkBAIC00OSw2ICs0OSwyNSBAQCBzdHJ1Y3QgV2Vi
TGF5ZXJVcGRhdGVJbmZvIHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiwgV2ViTGF5ZXJVcGRhdGVJbmZvJik7CiB9OwogCitzdHJ1Y3QgV2ViTGF5ZXJB
bmltYXRpb24geworICAgIFdlYkxheWVyQW5pbWF0aW9uKCkgOiBrZXlmcmFtZUxpc3QoQW5pbWF0
ZWRQcm9wZXJ0eUludmFsaWQpIHsgfQorICAgIFdlYkxheWVyQW5pbWF0aW9uKGNvbnN0IEtleWZy
YW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QpIAorICAgICAgICA6IGtleWZyYW1lTGlzdCh2YWx1ZUxp
c3QpIHsgfQorICAgIFN0cmluZyBuYW1lOworICAgIGVudW0gT3BlcmF0aW9uIHsKKyAgICAgICAg
QWRkQW5pbWF0aW9uLAorICAgICAgICBSZW1vdmVBbmltYXRpb24sCisgICAgICAgIFBhdXNlQW5p
bWF0aW9uCisgICAgfSBvcGVyYXRpb247CisgICAgSW50U2l6ZSBib3hTaXplOworICAgIFJlZlB0
cjxBbmltYXRpb24+IGFuaW1hdGlvbjsKKyAgICBLZXlmcmFtZVZhbHVlTGlzdCBrZXlmcmFtZUxp
c3Q7CisgICAgZG91YmxlIHN0YXJ0VGltZTsKKworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqLCBXZWJMYXllckFuaW1hdGlvbiYpOworfTsKKwogc3RydWN0IFdlYkxh
eWVySW5mbyB7CiAgICAgU3RyaW5nIG5hbWU7CiAgICAgV2ViTGF5ZXJJRCBpZDsKQEAgLTc5LDYg
Kzk4LDcgQEAgc3RydWN0IFdlYkxheWVySW5mbyB7CiAgICAgICAgIHVuc2lnbmVkIGludCBmbGFn
czsKICAgICB9OwogICAgIFZlY3RvcjxXZWJMYXllcklEPiBjaGlsZHJlbjsKKyAgICBWZWN0b3I8
V2ViTGF5ZXJBbmltYXRpb24+IGFuaW1hdGlvbnM7CiAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1h
cD4gaW1hZ2VCYWNraW5nU3RvcmU7CiAKICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXIqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9M
YXllclRyZWVIb3N0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVI
b3N0UHJveHkuaAppbmRleCA0NWU4ZGY2Li45Y2UwZGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5oCkBAIC0xMjUsNiArMTI1LDExIEBAIHByb3Rl
Y3RlZDoKICAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9yb290TGF5ZXI7CiAgICAgVmVjdG9y
PFdlYkxheWVySUQ+IG1fbGF5ZXJzVG9EZWxldGU7CiAKKyNpZiBQTEFURk9STShRVCkKKyAgICB2
b2lkIGRpZEZpcmVWaWV3cG9ydFVwZGF0ZVRpbWVyKFRpbWVyPExheWVyVHJlZUhvc3RQcm94eT4q
KTsKKyAgICBUaW1lcjxMYXllclRyZWVIb3N0UHJveHk+IG1fdmlld3BvcnRVcGRhdGVUaW1lcjsK
KyNlbmRpZgorCiAgICAgTGF5ZXJNYXAgbV9sYXllcnM7CiAgICAgV2ViTGF5ZXJJRCBtX3Jvb3RM
YXllcklEOwogICAgIGludCBtX2lkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L0xheWVyVHJlZUhvc3RQcm94eVF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9MYXllclRyZWVIb3N0UHJveHlRdC5jcHAKaW5kZXggMGMwMzZlNC4uOWNiMTk4OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0xheWVyVHJlZUhvc3RQcm94eVF0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvTGF5ZXJUcmVlSG9zdFByb3h5
UXQuY3BwCkBAIC0xNTQsNiArMTU0LDcgQEAgUGFzc093blB0cjxHcmFwaGljc0xheWVyPiBMYXll
clRyZWVIb3N0UHJveHk6OmNyZWF0ZUxheWVyKFdlYkxheWVySUQgbGF5ZXJJRCkKIExheWVyVHJl
ZUhvc3RQcm94eTo6TGF5ZXJUcmVlSG9zdFByb3h5KERyYXdpbmdBcmVhUHJveHkqIGRyYXdpbmdB
cmVhUHJveHkpCiAgICAgOiBtX2FuaW1hdGlvblRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywg
JkxheWVyVHJlZUhvc3RQcm94eTo6dXBkYXRlVmlld3BvcnQpCiAgICAgLCBtX2RyYXdpbmdBcmVh
UHJveHkoZHJhd2luZ0FyZWFQcm94eSkKKyAgICAsIG1fdmlld3BvcnRVcGRhdGVUaW1lcih0aGlz
LCAmTGF5ZXJUcmVlSG9zdFByb3h5OjpkaWRGaXJlVmlld3BvcnRVcGRhdGVUaW1lcikKICAgICAs
IG1fcm9vdExheWVySUQoMCkKIHsKIH0KQEAgLTIwOCw4ICsyMDksMTUgQEAgdm9pZCBMYXllclRy
ZWVIb3N0UHJveHk6OnBhaW50VG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4JiBtYXQKIAogICAgIG1fdGV4dHVyZU1hcHBlci0+ZW5kUGFpbnRpbmcoKTsKIAotICAg
IGlmIChub2RlLT5kZXNjZW5kYW50c09yU2VsZkhhdmVSdW5uaW5nQW5pbWF0aW9ucygpKQotICAg
ICAgICB1cGRhdGVWaWV3cG9ydCgpOworICAgIGlmIChub2RlLT5kZXNjZW5kYW50c09yU2VsZkhh
dmVSdW5uaW5nQW5pbWF0aW9ucygpKSB7CisgICAgICAgIG5vZGUtPnN5bmNBbmltYXRpb25zUmVj
dXJzaXZlbHkoKTsKKyAgICAgICAgbV92aWV3cG9ydFVwZGF0ZVRpbWVyLnN0YXJ0T25lU2hvdCgw
KTsKKyAgICB9Cit9CisKK3ZvaWQgTGF5ZXJUcmVlSG9zdFByb3h5OjpkaWRGaXJlVmlld3BvcnRV
cGRhdGVUaW1lcihUaW1lcjxMYXllclRyZWVIb3N0UHJveHk+KikKK3sKKyAgICB1cGRhdGVWaWV3
cG9ydCgpOwogfQogCiB2b2lkIExheWVyVHJlZUhvc3RQcm94eTo6dXBkYXRlVmlld3BvcnQoKQpA
QCAtMjcyLDYgKzI4MCwyNiBAQCB2b2lkIExheWVyVHJlZUhvc3RQcm94eTo6c3luY0xheWVyUGFy
YW1ldGVycyhjb25zdCBXZWJMYXllckluZm8mIGxheWVySW5mbykKICAgICB9CiAgICAgbGF5ZXIt
PnNldENoaWxkcmVuKGNoaWxkcmVuKTsKIAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGF5
ZXJJbmZvLmFuaW1hdGlvbnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgY29uc3QgV2ViS2l0OjpX
ZWJMYXllckFuaW1hdGlvbiBhbmltID0gbGF5ZXJJbmZvLmFuaW1hdGlvbnNbaV07CisKKyAgICAg
ICAgc3dpdGNoIChhbmltLm9wZXJhdGlvbikgeworICAgICAgICBjYXNlIFdlYktpdDo6V2ViTGF5
ZXJBbmltYXRpb246OkFkZEFuaW1hdGlvbjogeworICAgICAgICAgICAgY29uc3QgSW50U2l6ZSBi
b3hTaXplID0gYW5pbS5ib3hTaXplOworICAgICAgICAgICAgZG91YmxlIG9mZnNldCA9IFdURjo6
Y3VycmVudFRpbWUoKSAtIGFuaW0uc3RhcnRUaW1lOworICAgICAgICAgICAgbGF5ZXItPmFkZEFu
aW1hdGlvbihhbmltLmtleWZyYW1lTGlzdCwgYm94U2l6ZSwgYW5pbS5hbmltYXRpb24uZ2V0KCks
IGFuaW0ubmFtZSwgb2Zmc2V0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIGNhc2UgV2ViS2l0OjpXZWJMYXllckFuaW1hdGlvbjo6UmVtb3ZlQW5pbWF0aW9uOgorICAg
ICAgICAgICAgbGF5ZXItPnJlbW92ZUFuaW1hdGlvbihhbmltLm5hbWUpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgV2ViS2l0OjpXZWJMYXllckFuaW1hdGlvbjo6UGF1c2VBbmlt
YXRpb246CisgICAgICAgICAgICBkb3VibGUgb2Zmc2V0ID0gV1RGOjpjdXJyZW50VGltZSgpIC0g
YW5pbS5zdGFydFRpbWU7CisgICAgICAgICAgICBsYXllci0+cGF1c2VBbmltYXRpb24oYW5pbS5u
YW1lLCBvZmZzZXQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKICAg
ICBpZiAobGF5ZXJJbmZvLmlzUm9vdExheWVyICYmIG1fcm9vdExheWVySUQgIT0gaWQpCiAgICAg
ICAgIHNldFJvb3RMYXllcklEKGlkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4
IDcwODQzMjQuLjU4ZjdjZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmNwcApAQCAtMjgwLDE1
ICsyODAsNDAgQEAgdm9pZCBXZWJHcmFwaGljc0xheWVyOjpub3RpZnlBbmltYXRpb25TdGFydGVk
KGRvdWJsZSB0aW1lKQogLy8gV2UgcHV0IHRoZXNlIHN0dWIgaW1wbGVtZW50YXRpb25zIGhlcmUg
Zm9yIHdoZW4gd2UgaW1wbGVtZW50IGFjY2VsZXJhdGVkIGNyb3NzLXByb2Nlc3MgYW5pbWF0aW9u
cy4KIGJvb2wgV2ViR3JhcGhpY3NMYXllcjo6YWRkQW5pbWF0aW9uKGNvbnN0IEtleWZyYW1lVmFs
dWVMaXN0JiB2YWx1ZUxpc3QsIGNvbnN0IEludFNpemUmIGJveFNpemUsIGNvbnN0IEFuaW1hdGlv
biogYW5pbSwgY29uc3QgU3RyaW5nJiBrZXlmcmFtZXNOYW1lLCBkb3VibGUgdGltZU9mZnNldCkK
IHsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFhbmltIHx8IGFuaW0tPmlzRW1wdHlPclpl
cm9EdXJhdGlvbigpIHx8IHZhbHVlTGlzdC5zaXplKCkgPCAyIHx8ICh2YWx1ZUxpc3QucHJvcGVy
dHkoKSAhPSBBbmltYXRlZFByb3BlcnR5V2Via2l0VHJhbnNmb3JtICYmIHZhbHVlTGlzdC5wcm9w
ZXJ0eSgpICE9IEFuaW1hdGVkUHJvcGVydHlPcGFjaXR5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgV2ViTGF5ZXJBbmltYXRpb24gd2ViQW5pbWF0aW9uKHZhbHVlTGlzdCk7CisgICAg
d2ViQW5pbWF0aW9uLm5hbWUgPSBrZXlmcmFtZXNOYW1lOworICAgIHdlYkFuaW1hdGlvbi5vcGVy
YXRpb24gPSBXZWJMYXllckFuaW1hdGlvbjo6QWRkQW5pbWF0aW9uOworICAgIHdlYkFuaW1hdGlv
bi5ib3hTaXplID0gYm94U2l6ZTsKKyAgICB3ZWJBbmltYXRpb24uYW5pbWF0aW9uID0gQW5pbWF0
aW9uOjpjcmVhdGUoYW5pbSk7CisgICAgd2ViQW5pbWF0aW9uLnN0YXJ0VGltZSA9IFdURjo6Y3Vy
cmVudFRpbWUoKSAtIHRpbWVPZmZzZXQ7CisgICAgbV9sYXllckluZm8uYW5pbWF0aW9ucy5hcHBl
bmQod2ViQW5pbWF0aW9uKTsKKworICAgIG1faGFzUGVuZGluZ0FuaW1hdGlvbnMgPSB0cnVlOwor
ICAgIG5vdGlmeUNoYW5nZSgpOworCisgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgV2ViR3Jh
cGhpY3NMYXllcjo6cGF1c2VBbmltYXRpb24oY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBk
b3VibGUgdGltZU9mZnNldCkKIHsKKyAgICBXZWJMYXllckFuaW1hdGlvbiBhbmltYXRpb247Cisg
ICAgYW5pbWF0aW9uLm5hbWUgPSBhbmltYXRpb25OYW1lOworICAgIGFuaW1hdGlvbi5vcGVyYXRp
b24gPSBXZWJMYXllckFuaW1hdGlvbjo6UGF1c2VBbmltYXRpb247CisgICAgYW5pbWF0aW9uLnN0
YXJ0VGltZSA9IFdURjo6Y3VycmVudFRpbWUoKSAtIHRpbWVPZmZzZXQ7CisgICAgbV9sYXllcklu
Zm8uYW5pbWF0aW9ucy5hcHBlbmQoYW5pbWF0aW9uKTsKKyAgICBub3RpZnlDaGFuZ2UoKTsKIH0K
IAogdm9pZCBXZWJHcmFwaGljc0xheWVyOjpyZW1vdmVBbmltYXRpb24oY29uc3QgU3RyaW5nJiBh
bmltYXRpb25OYW1lKQogeworICAgIFdlYkxheWVyQW5pbWF0aW9uIGFuaW1hdGlvbjsKKyAgICBh
bmltYXRpb24ubmFtZSA9IGFuaW1hdGlvbk5hbWU7CisgICAgYW5pbWF0aW9uLm9wZXJhdGlvbiA9
IFdlYkxheWVyQW5pbWF0aW9uOjpSZW1vdmVBbmltYXRpb247CisgICAgbV9sYXllckluZm8uYW5p
bWF0aW9ucy5hcHBlbmQoYW5pbWF0aW9uKTsKKyAgICBub3RpZnlDaGFuZ2UoKTsKIH0KIAogdm9p
ZCBXZWJHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c05lZWRzRGlzcGxheSgpCkBAIC00MDIsNiAr
NDI3LDcgQEAgdm9pZCBXZWJHcmFwaGljc0xheWVyOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRo
aXNMYXllck9ubHkoKQogICAgIG1fbGF5ZXJJbmZvLmltYWdlSXNVcGRhdGVkID0gZmFsc2U7CiAg
ICAgaWYgKG1faGFzUGVuZGluZ0FuaW1hdGlvbnMpCiAgICAgICAgIG5vdGlmeUFuaW1hdGlvblN0
YXJ0ZWQoV1RGOjpjdXJyZW50VGltZSgpKTsKKyAgICBtX2xheWVySW5mby5hbmltYXRpb25zLmNs
ZWFyKCk7CiAgICAgbV9oYXNQZW5kaW5nQW5pbWF0aW9ucyA9IGZhbHNlOwogfQogCi0tIAoxLjcu
NC4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116076</attachid>
            <date>2011-11-21 06:32:34 -0800</date>
            <delta_ts>2011-11-21 08:42:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-WK2-Qt-Move-Accelerated-Composite-animations-to-UIPr.patch</filename>
            <type>text/plain</type>
            <size>21230</size>
            <attacher name="Igor Trindade Oliveira">igor.oliveira</attacher>
            
              <data encoding="base64">RnJvbSAyYTllMWIyY2M4ZTcxN2MxMWYxNDU2ZjBmOTczMzc4MTJkZjNjM2I1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJZ29yIE9saXZlaXJhIDxpZ29yLm9saXZlaXJhQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IE1vbiwgMjEgTm92IDIwMTEgMTA6MTQ6MTkgLTA0MDAKU3ViamVjdDogW1BB
VENIXSBbV0syXVtRdF0gTW92ZSBBY2NlbGVyYXRlZCBDb21wb3NpdGUgYW5pbWF0aW9ucyB0byBV
SVByb2Nlc3MKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDEzICsrKysrCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJOb2RlLmNwcCB8ICAgMTAgKysrKwogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyTm9kZS5oICAgfCAgICAxICsKIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0NSArKysrKysrKysrKysrKysrKwogU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgICAgfCAgIDUxICsr
KysrKysrKystLS0tLS0tLS0tCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmggICAgICB8ICAgIDYgKy0KIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJMYXllclRy
ZWVJbmZvLmNwcCAgICAgICAgIHwgICAzMSArKysrKysrKysrKy0KIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJMYXllclRyZWVJbmZvLmggICAgICAgICAgIHwgICAyMCArKysrKysrKwogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5oICAgICAgfCAgICA1ICsrCiAu
Li4vV2ViS2l0Mi9VSVByb2Nlc3MvcXQvTGF5ZXJUcmVlSG9zdFByb3h5UXQuY3BwICB8ICAgMzIg
KysrKysrKysrKysrLQogLi4uL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NM
YXllci5jcHAgfCAgIDI5ICsrKysrKysrKystCiAxMSBmaWxlcyBjaGFuZ2VkLCAyMDkgaW5zZXJ0
aW9ucygrKSwgMzQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRmNzNjNjYuLjFhOGJlYWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0xMS0yMSAgSWdvciBPbGl2ZWlyYSAg
PGlnb3Iub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBbV0syXVtRdF0gTW92ZSBB
Y2NlbGVyYXRlZCBDb21wb3NpdGUgYW5pbWF0aW9ucyB0byBVSVByb2Nlc3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzUzCisgICAgICAgIAorICAg
ICAgICBBZGQgaGVscGVyIG1ldGhvZCB0byBzeW5jaHJvbml6ZSBhbmltYXRpb25zIGluIFRleHR1
cmVNYXBwZXIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlck5vZGU6OnN5bmNBbmltYXRpb25zUmVjdXJzaXZl
bHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9k
ZS5oOgorCiAyMDExLTExLTE4ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBnZXQgcmlkIG9mIFBhbmVsOjpyZXNldCBpbiB0aGUg
ZnJvbnQtZW5kLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAKaW5kZXggYWI1OTcwMy4uMGFmOGQ3
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwCkBAIC05ODQsNiArOTg0LDE2IEBAIHZvaWQg
VGV4dHVyZU1hcHBlck5vZGU6OnN5bmNBbmltYXRpb25zKEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFw
cGVyKiBsYXllcikKICAgICB9CiB9CiAKK3ZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OnN5bmNBbmlt
YXRpb25zUmVjdXJzaXZlbHkoKQoreworICAgIHN5bmNBbmltYXRpb25zKDApOworCisgICAgY29t
cHV0ZUFsbFRyYW5zZm9ybXMoKTsKKworICAgIGZvciAoaW50IGkgPSBtX2NoaWxkcmVuLnNpemUo
KSAtIDE7IGkgPj0gMDsgLS1pKQorICAgICAgICBtX2NoaWxkcmVuW2ldLT5zeW5jQW5pbWF0aW9u
c1JlY3Vyc2l2ZWx5KCk7Cit9CisKIHZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OnN5bmNDb21wb3Np
dGluZ1N0YXRlKEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiBncmFwaGljc0xheWVyLCBUZXh0
dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBpbnQgb3B0aW9ucykKIHsKICAgICBpZiAoZ3JhcGhp
Y3NMYXllciAmJiAhKG9wdGlvbnMgJiBDb21wdXRhdGlvbnNPbmx5KSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2Rl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ck5vZGUuaAppbmRleCA0YTRmY2ZmLi5lYjljNjkyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmgK
QEAgLTE0MSw2ICsxNDEsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHN5bmNDb21wb3NpdGluZ1N0
YXRlKEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiwgaW50IHN5bmNPcHRpb25zID0gMCk7CiAg
ICAgdm9pZCBzeW5jQ29tcG9zaXRpbmdTdGF0ZShHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcios
IFRleHR1cmVNYXBwZXIqLCBpbnQgc3luY09wdGlvbnMgPSAwKTsKKyAgICB2b2lkIHN5bmNBbmlt
YXRpb25zUmVjdXJzaXZlbHkoKTsKICAgICBJbnRTaXplIHNpemUoKSBjb25zdCB7IHJldHVybiBJ
bnRTaXplKG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkpOyB9CiAgICAgdm9pZCBzZXRU
cmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKICAgICB2b2lkIHNldE9wYWNp
dHkoZmxvYXQgdmFsdWUpIHsgbV9vcGFjaXR5ID0gdmFsdWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyZDQx
MjUzLi4yZTRkNGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTEtMTEtMjEgIEln
b3IgT2xpdmVpcmEgIDxpZ29yLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW1dL
Ml1bUXRdIE1vdmUgQWNjZWxlcmF0ZWQgQ29tcG9zaXRlIGFuaW1hdGlvbnMgdG8gVUlQcm9jZXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc1Mwor
CisgICAgICAgIEN1cnJlbnRseSwgYWxsIHRoZSBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBhbmlt
YXRpb25zIGFyZSBhcHBsaWVkIGluIFdlYlByb2Nlc3MgYW5kCisgICAgICAgIGZvciBlYWNoIGZy
YW1lIGdlbmVyYXRlZCwgV2ViUHJvY2VzcyBuZWVkcyB0byBzeW5jIHdpdGggVUlQcm9jZXNzLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggbW92ZXMgdGhlIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGFu
aW1hdGlvbnMgdG8gVUlQcm9jZXNzIHJlZHVjaW5nIHRoZQorICAgICAgICBhbW91bnQgb2Ygc3lu
Y2hyb25pemF0aW9uIG1lc3NhZ2VzIGJldHdlZW4gV2ViUHJvY2VzcyBhbmQgVUlQcm9jZXNzLCB0
aGlzIGlzIGRvbmUKKyAgICAgICAgc2VuZGluZyBhbmltYXRpb25zIGluZm9ybWF0aW9uIHRvIFVJ
UHJvY2Vzcy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoQ29yZUlQQzo6
OjplbmNvZGUpOgorICAgICAgICAoQ29yZUlQQzo6OjpkZWNvZGUpOgorCisgICAgICAgIEVuY29k
ZS9EZWNvZGUgUmVmUHRyPEFuaW1hdGlvbj4gaW5zdGVhZCBvZiBBbmltYXRpb24gY2xhc3MuIFRo
aXMgZmFjaWxpdGF0ZXMKKyAgICAgICAgdGhlIGRhdGEgc2VyaWFsaXphdGlvbi4KKworICAgICAg
ICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2Vi
TGF5ZXJUcmVlSW5mby5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVySW5mbzo6ZW5jb2Rl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJJbmZvOjpkZWNvZGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJMYXllckFuaW1hdGlvbjo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5
ZXJBbmltYXRpb246OmRlY29kZSk6CisKKyAgICAgICAgQ3JlYXRlIFdlYkxheWVyQW5pbWF0aW9u
IHN0cnVjdCwgaXQgaXMgdXNlZCB0byBzZW5kIGFuaW1hdGlvbiBpbmZvcm1hdGlvbgorICAgICAg
ICB0byBVSVByb2Nlc3MuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViTGF5ZXJUcmVlSW5mby5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJMYXllckFuaW1hdGlvbjo6V2ViTGF5ZXJBbmltYXRpb24pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvcXQvTGF5ZXJUcmVlSG9zdFByb3h5UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXll
clRyZWVIb3N0UHJveHk6OkxheWVyVHJlZUhvc3RQcm94eSk6CisgICAgICAgIChXZWJLaXQ6Okxh
eWVyVHJlZUhvc3RQcm94eTo6cGFpbnRUb0N1cnJlbnRHTENvbnRleHQpOgorICAgICAgICAoV2Vi
S2l0OjpMYXllclRyZWVIb3N0UHJveHk6OmRpZEZpcmVWaWV3cG9ydFVwZGF0ZVRpbWVyKToKKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdFByb3h5OjpzeW5jTGF5ZXJQYXJhbWV0ZXJzKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR3JhcGhpY3NMYXllcjo6YWRkQW5pbWF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdyYXBoaWNzTGF5ZXI6OnBhdXNlQW5pbWF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdyYXBoaWNzTGF5ZXI6OnJlbW92ZUFuaW1hdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHcmFwaGljc0xheWVyOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNM
YXllck9ubHkpOgorCiAyMDExLTExLTIxICBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8g
IDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgW1F0XSBBZGQgV2ViVmll
dy52aWV3IGF0dGFjaGVkIHByb3BlcnR5IHN1cHBvcnQgZm9yIGRpYWxvZ3MgaW4gUU1MCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDA1
YTYyOWYuLjhjZTM5NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwCkBAIC02NDcsNyArNjQ3LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPExl
bmd0aD46OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIExlbmd0aCYgbGVuZ3RoKQog
ICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPExlbmd0aD46OmRlY29kZShkZWNvZGVyLCBs
ZW5ndGgpOwogfQogCi0KIHZvaWQgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD46
OmVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0
cml4JiB0cmFuc2Zvcm1hdGlvbk1hdHJpeCkKIHsKICAgICBTaW1wbGVBcmd1bWVudENvZGVyPFRy
YW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2RlKGVuY29kZXIsIHRyYW5zZm9ybWF0aW9uTWF0cml4
KTsKQEAgLTgzMCw3ICs4MjksNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8UmVmUHRyPFRpbWluZ0Z1
bmN0aW9uPiA+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyLCBjbwogdm9pZCBBcmd1
bWVudENvZGVyPFJlZlB0cjxUaW1pbmdGdW5jdGlvbj4gPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciogZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6VGltaW5nRnVuY3Rpb24qIGZ1bmN0aW9uKQogewog
ICAgIGlmICghZnVuY3Rpb24pIHsKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlSW50MzIoV2ViQ29y
ZTo6VGltaW5nRnVuY3Rpb246OkxpbmVhckZ1bmN0aW9uKTsKKyAgICAgICAgZW5jb2Rlci0+ZW5j
b2RlRW51bShXZWJDb3JlOjpUaW1pbmdGdW5jdGlvbjo6TGluZWFyRnVuY3Rpb24pOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkBAIC0xMDYyLDE4ICsxMDYxLDE4IEBAIHN0YXRpYyB2b2lkIGVu
Y29kZUJvb2xBbmRFbnVtVmFsdWUoQXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyLCBib29sIGlzU2V0
LCBUIHZhbHVlCiAgICAgICAgIGVuY29kZXItPmVuY29kZUVudW0odmFsdWUpOwogfQogCi12b2lk
IEFyZ3VtZW50Q29kZXI8QW5pbWF0aW9uPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2Rl
ciwgY29uc3QgQW5pbWF0aW9uJiBhbmltYXRpb24pCit2b2lkIEFyZ3VtZW50Q29kZXI8UmVmUHRy
PEFuaW1hdGlvbj4gPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgY29uc3QgUmVm
UHRyPEFuaW1hdGlvbj4mIGFuaW1hdGlvbikKIHsKLSAgICBlbmNvZGVCb29sQW5kVmFsdWUoZW5j
b2RlciwgYW5pbWF0aW9uLmlzRGVsYXlTZXQoKSwgYW5pbWF0aW9uLmRlbGF5KCkpOwotICAgIGVu
Y29kZUJvb2xBbmRFbnVtVmFsdWUoZW5jb2RlciwgYW5pbWF0aW9uLmlzRGlyZWN0aW9uU2V0KCks
IGFuaW1hdGlvbi5kaXJlY3Rpb24oKSk7Ci0gICAgZW5jb2RlQm9vbEFuZFZhbHVlKGVuY29kZXIs
IGFuaW1hdGlvbi5pc0R1cmF0aW9uU2V0KCksIGFuaW1hdGlvbi5kdXJhdGlvbigpKTsKLSAgICBl
bmNvZGVCb29sQW5kVmFsdWUoZW5jb2RlciwgYW5pbWF0aW9uLmlzRmlsbE1vZGVTZXQoKSwgYW5p
bWF0aW9uLmZpbGxNb2RlKCkpOwotICAgIGVuY29kZUJvb2xBbmRWYWx1ZShlbmNvZGVyLCBhbmlt
YXRpb24uaXNJdGVyYXRpb25Db3VudFNldCgpLCBhbmltYXRpb24uaXRlcmF0aW9uQ291bnQoKSk7
Ci0gICAgZW5jb2RlQm9vbEFuZFZhbHVlKGVuY29kZXIsIGFuaW1hdGlvbi5pc05hbWVTZXQoKSwg
YW5pbWF0aW9uLm5hbWUoKSk7Ci0gICAgZW5jb2RlQm9vbEFuZEVudW1WYWx1ZShlbmNvZGVyLCBh
bmltYXRpb24uaXNQbGF5U3RhdGVTZXQoKSwgYW5pbWF0aW9uLnBsYXlTdGF0ZSgpKTsKLSAgICBl
bmNvZGVCb29sQW5kVmFsdWUoZW5jb2RlciwgYW5pbWF0aW9uLmlzUHJvcGVydHlTZXQoKSwgYW5p
bWF0aW9uLnByb3BlcnR5KCkpOwotICAgIGVuY29kZUJvb2xBbmRWYWx1ZTxSZWZQdHI8VGltaW5n
RnVuY3Rpb24+ID4oZW5jb2RlciwgYW5pbWF0aW9uLmlzVGltaW5nRnVuY3Rpb25TZXQoKSwgYW5p
bWF0aW9uLnRpbWluZ0Z1bmN0aW9uKCkpOwotICAgIGVuY29kZXItPmVuY29kZUJvb2woYW5pbWF0
aW9uLmlzTm9uZUFuaW1hdGlvbigpKTsKKyAgICBlbmNvZGVCb29sQW5kVmFsdWUoZW5jb2Rlciwg
YW5pbWF0aW9uLT5pc0RlbGF5U2V0KCksIGFuaW1hdGlvbi0+ZGVsYXkoKSk7CisgICAgZW5jb2Rl
Qm9vbEFuZEVudW1WYWx1ZShlbmNvZGVyLCBhbmltYXRpb24tPmlzRGlyZWN0aW9uU2V0KCksIGFu
aW1hdGlvbi0+ZGlyZWN0aW9uKCkpOworICAgIGVuY29kZUJvb2xBbmRWYWx1ZShlbmNvZGVyLCBh
bmltYXRpb24tPmlzRHVyYXRpb25TZXQoKSwgYW5pbWF0aW9uLT5kdXJhdGlvbigpKTsKKyAgICBl
bmNvZGVCb29sQW5kVmFsdWUoZW5jb2RlciwgYW5pbWF0aW9uLT5pc0ZpbGxNb2RlU2V0KCksIGFu
aW1hdGlvbi0+ZmlsbE1vZGUoKSk7CisgICAgZW5jb2RlQm9vbEFuZFZhbHVlKGVuY29kZXIsIGFu
aW1hdGlvbi0+aXNJdGVyYXRpb25Db3VudFNldCgpLCBhbmltYXRpb24tPml0ZXJhdGlvbkNvdW50
KCkpOworICAgIGVuY29kZUJvb2xBbmRWYWx1ZShlbmNvZGVyLCBhbmltYXRpb24tPmlzTmFtZVNl
dCgpLCBhbmltYXRpb24tPm5hbWUoKSk7CisgICAgZW5jb2RlQm9vbEFuZEVudW1WYWx1ZShlbmNv
ZGVyLCBhbmltYXRpb24tPmlzUGxheVN0YXRlU2V0KCksIGFuaW1hdGlvbi0+cGxheVN0YXRlKCkp
OworICAgIGVuY29kZUJvb2xBbmRWYWx1ZShlbmNvZGVyLCBhbmltYXRpb24tPmlzUHJvcGVydHlT
ZXQoKSwgYW5pbWF0aW9uLT5wcm9wZXJ0eSgpKTsKKyAgICBlbmNvZGVCb29sQW5kVmFsdWU8UmVm
UHRyPFRpbWluZ0Z1bmN0aW9uPiA+KGVuY29kZXIsIGFuaW1hdGlvbi0+aXNUaW1pbmdGdW5jdGlv
blNldCgpLCBhbmltYXRpb24tPnRpbWluZ0Z1bmN0aW9uKCkpOworICAgIGVuY29kZXItPmVuY29k
ZUJvb2woYW5pbWF0aW9uLT5pc05vbmVBbmltYXRpb24oKSk7CiB9CiAKIApAQCAtMTA5OSw3ICsx
MDk4LDcgQEAgc3RhdGljIGJvb2wgZGVjb2RlQm9vbEFuZEVudW1WYWx1ZShBcmd1bWVudERlY29k
ZXIqIGRlY29kZXIsIGJvb2wmIGlzU2V0LCBUJiB2YWwKICAgICByZXR1cm4gZGVjb2Rlci0+ZGVj
b2RlRW51bSh2YWx1ZSk7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxBbmltYXRpb24+OjpkZWNv
ZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBBbmltYXRpb24mIGFuaW1hdGlvbikKK2Jvb2wg
QXJndW1lbnRDb2RlcjxSZWZQdHI8QW5pbWF0aW9uPiA+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVy
KiBkZWNvZGVyLCBSZWZQdHI8QW5pbWF0aW9uPiYgYW5pbWF0aW9uKQogewogICAgIGJvb2wgaXNE
ZWxheVNldCwgaXNEaXJlY3Rpb25TZXQsIGlzRHVyYXRpb25TZXQsIGlzRmlsbE1vZGVTZXQsIGlz
SXRlcmF0aW9uQ291bnRTZXQsIGlzTmFtZVNldCwgaXNQbGF5U3RhdGVTZXQsIGlzUHJvcGVydHlT
ZXQsIGlzVGltaW5nRnVuY3Rpb25TZXQ7CiAgICAgaW50IHByb3BlcnR5LCBpdGVyYXRpb25Db3Vu
dCwgZmlsbE1vZGU7CkBAIC0xMTA3LDggKzExMDYsNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8QW5p
bWF0aW9uPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgQW5pbWF0aW9uJiBhbmlt
YQogICAgIFJlZlB0cjxUaW1pbmdGdW5jdGlvbj4gdGltaW5nRnVuY3Rpb247CiAgICAgU3RyaW5n
IG5hbWU7CiAKLSAgICBhbmltYXRpb24uY2xlYXJBbGwoKTsKLQogICAgIGRvdWJsZSBkZWxheTsK
ICAgICBpZiAoIWRlY29kZUJvb2xBbmRWYWx1ZShkZWNvZGVyLCBpc0RlbGF5U2V0LCBkZWxheSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTExMzMsMjQgKzExMzAsMjcgQEAgYm9vbCBBcmd1
bWVudENvZGVyPEFuaW1hdGlvbj46OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEFu
aW1hdGlvbiYgYW5pbWEKICAgICBpZiAoIWRlY29kZUJvb2xBbmRWYWx1ZTxSZWZQdHI8VGltaW5n
RnVuY3Rpb24+ID4oZGVjb2RlciwgaXNUaW1pbmdGdW5jdGlvblNldCwgdGltaW5nRnVuY3Rpb24p
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBhbmltYXRpb24gPSBBbmltYXRpb246OmNy
ZWF0ZSgpOworICAgIGFuaW1hdGlvbi0+Y2xlYXJBbGwoKTsKKwogICAgIGlmIChpc0RlbGF5U2V0
KQotICAgICAgICBhbmltYXRpb24uc2V0RGVsYXkoZGVsYXkpOworICAgICAgICBhbmltYXRpb24t
PnNldERlbGF5KGRlbGF5KTsKICAgICBpZiAoaXNEaXJlY3Rpb25TZXQpCi0gICAgICAgIGFuaW1h
dGlvbi5zZXREaXJlY3Rpb24oZGlyZWN0aW9uKTsKKyAgICAgICAgYW5pbWF0aW9uLT5zZXREaXJl
Y3Rpb24oZGlyZWN0aW9uKTsKICAgICBpZiAoaXNEdXJhdGlvblNldCkKLSAgICAgICAgYW5pbWF0
aW9uLnNldER1cmF0aW9uKGR1cmF0aW9uKTsKKyAgICAgICAgYW5pbWF0aW9uLT5zZXREdXJhdGlv
bihkdXJhdGlvbik7CiAgICAgaWYgKGlzRmlsbE1vZGVTZXQpCi0gICAgICAgIGFuaW1hdGlvbi5z
ZXRGaWxsTW9kZShmaWxsTW9kZSk7CisgICAgICAgIGFuaW1hdGlvbi0+c2V0RmlsbE1vZGUoZmls
bE1vZGUpOwogICAgIGlmIChpc0l0ZXJhdGlvbkNvdW50U2V0KQotICAgICAgICBhbmltYXRpb24u
c2V0SXRlcmF0aW9uQ291bnQoaXRlcmF0aW9uQ291bnQpOworICAgICAgICBhbmltYXRpb24tPnNl
dEl0ZXJhdGlvbkNvdW50KGl0ZXJhdGlvbkNvdW50KTsKICAgICBpZiAoaXNOYW1lU2V0KQotICAg
ICAgICBhbmltYXRpb24uc2V0TmFtZShuYW1lKTsKKyAgICAgICAgYW5pbWF0aW9uLT5zZXROYW1l
KG5hbWUpOwogICAgIGlmIChpc1BsYXlTdGF0ZVNldCkKLSAgICAgICAgYW5pbWF0aW9uLnNldFBs
YXlTdGF0ZShwbGF5U3RhdGUpOworICAgICAgICBhbmltYXRpb24tPnNldFBsYXlTdGF0ZShwbGF5
U3RhdGUpOwogICAgIGlmIChpc1Byb3BlcnR5U2V0KQotICAgICAgICBhbmltYXRpb24uc2V0UHJv
cGVydHkocHJvcGVydHkpOworICAgICAgICBhbmltYXRpb24tPnNldFByb3BlcnR5KHByb3BlcnR5
KTsKICAgICBpZiAoaXNUaW1pbmdGdW5jdGlvblNldCkKLSAgICAgICAgYW5pbWF0aW9uLnNldFRp
bWluZ0Z1bmN0aW9uKHRpbWluZ0Z1bmN0aW9uKTsKKyAgICAgICAgYW5pbWF0aW9uLT5zZXRUaW1p
bmdGdW5jdGlvbih0aW1pbmdGdW5jdGlvbik7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTEx
OTUsNiArMTE5NSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxLZXlmcmFtZVZhbHVlTGlzdD46OmRl
Y29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYkNvcmU6CiAKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHNpemU7ICsraSkgewogICAgICAgICBmbG9hdCBrZXlUaW1lOworICAgCiAg
ICAgICAgIFJlZlB0cjxXZWJDb3JlOjpUaW1pbmdGdW5jdGlvbj4gdGltaW5nRnVuY3Rpb247CiAg
ICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlRmxvYXQoa2V5VGltZSkpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgKaW5kZXggMTdlMGQ5MC4uMDU1MDQxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMjg4LDkgKzI4OCw5IEBAIHRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VHJhbnNmb3JtT3BlcmF0aW9ucz4gewogICAg
IHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBXZWJDb3JlOjpUcmFuc2Zvcm1P
cGVyYXRpb25zJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OkFuaW1hdGlvbj4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIq
LCBjb25zdCBXZWJDb3JlOjpBbmltYXRpb24mKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJn
dW1lbnREZWNvZGVyKiwgV2ViQ29yZTo6QW5pbWF0aW9uJik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFJlZlB0cjxXZWJDb3JlOjpBbmltYXRpb24+ID4geworICAgIHN0YXRpYyB2
b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqLCBjb25zdCBSZWZQdHI8V2ViQ29yZTo6QW5pbWF0
aW9uPiYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBSZWZQdHI8
V2ViQ29yZTo6QW5pbWF0aW9uPiYpOwogfTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViTGF5ZXJUcmVlSW5mby5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViTGF5ZXJUcmVlSW5mby5jcHAKaW5kZXggZWRiNjJhMi4uMTY0ZjNjMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkxheWVyVHJlZUluZm8uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJMYXllclRyZWVJbmZvLmNwcApAQCAtMzUsNyArMzUsNyBAQCB2
b2lkIFdlYkxheWVySW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2Rl
cikgY29uc3QKIHsKICAgICAvLyBXZSBoYXZlIHRvIGRpdmlkZSBpdCB0byBzZXZlcmFsIGxpbmVz
LCBiZWNhdXNlIENvcmVJUEM6OkluL091dCB0YWtlcyBhIG1heGltdW0gb2YgMTAgYXJndW1lbnRz
LgogICAgIGVuY29kZXItPmVuY29kZShDb3JlSVBDOjpJbihpZCwgbmFtZSwgcGFyZW50LCBjaGls
ZHJlbiwgZmxhZ3MsIHJlcGxpY2EsIG1hc2ssIGltYWdlQmFja2luZ1N0b3JlSUQpKTsKLSAgICBl
bmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4ocG9zLCBzaXplLCB0cmFuc2Zvcm0sIG9wYWNpdHks
IGFuY2hvclBvaW50LCBjaGlsZHJlblRyYW5zZm9ybSwgY29udGVudHNSZWN0KSk7CisgICAgZW5j
b2Rlci0+ZW5jb2RlKENvcmVJUEM6OkluKHBvcywgc2l6ZSwgdHJhbnNmb3JtLCBvcGFjaXR5LCBh
bmNob3JQb2ludCwgY2hpbGRyZW5UcmFuc2Zvcm0sIGNvbnRlbnRzUmVjdCwgYW5pbWF0aW9ucykp
OwogfQogCiBib29sIFdlYkxheWVySW5mbzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogZGVjb2RlciwgV2ViTGF5ZXJJbmZvJiBpbmZvKQpAQCAtNDMsOCArNDMsOSBAQCBib29sIFdl
YkxheWVySW5mbzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2Vi
TGF5ZXJJbmZvJiBpbmZvKQogICAgIC8vIFdlIGhhdmUgdG8gZGl2aWRlIGl0IHRvIHNldmVyYWwg
bGluZXMsIGJlY2F1c2UgQ29yZUlQQzo6SW4vT3V0IHRha2VzIGEgbWF4aW11bSBvZiAxMCBhcmd1
bWVudHMuCiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6T3V0KGluZm8uaWQsIGlu
Zm8ubmFtZSwgaW5mby5wYXJlbnQsIGluZm8uY2hpbGRyZW4sIGluZm8uZmxhZ3MsIGluZm8ucmVw
bGljYSwgaW5mby5tYXNrLCBpbmZvLmltYWdlQmFja2luZ1N0b3JlSUQpKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dChpbmZvLnBv
cywgaW5mby5zaXplLCBpbmZvLnRyYW5zZm9ybSwgaW5mby5vcGFjaXR5LCBpbmZvLmFuY2hvclBv
aW50LCBpbmZvLmNoaWxkcmVuVHJhbnNmb3JtLCBpbmZvLmNvbnRlbnRzUmVjdCkpKQorICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dChpbmZvLnBvcywgaW5mby5zaXplLCBpbmZv
LnRyYW5zZm9ybSwgaW5mby5vcGFjaXR5LCBpbmZvLmFuY2hvclBvaW50LCBpbmZvLmNoaWxkcmVu
VHJhbnNmb3JtLCBpbmZvLmNvbnRlbnRzUmVjdCwgaW5mby5hbmltYXRpb25zKSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKKwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC02OCw1ICs2OSwzMSBA
QCBib29sIFdlYkxheWVyVXBkYXRlSW5mbzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogZGVjb2RlciwgV2ViTGF5ZXJVcGRhdAogICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoQ29y
ZUlQQzo6T3V0KGluZm8ubGF5ZXJJRCwgaW5mby5yZWN0LCBpbmZvLmJpdG1hcEhhbmRsZSkpOwog
fQogCit2b2lkIFdlYkxheWVyQW5pbWF0aW9uOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXItPmVuY29kZUVudW0ob3BlcmF0aW9u
KTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoa2V5ZnJhbWVMaXN0KTsKKyAgICBlbmNvZGVyLT5lbmNv
ZGUoQ29yZUlQQzo6SW4obmFtZSwgc3RhcnRUaW1lLCBib3hTaXplKSk7CisKKyAgICBpZiAob3Bl
cmF0aW9uID09IFdlYkxheWVyQW5pbWF0aW9uOjpBZGRBbmltYXRpb24pCisgICAgICAgIGVuY29k
ZXItPmVuY29kZShhbmltYXRpb24pOworfQorCitib29sIFdlYkxheWVyQW5pbWF0aW9uOjpkZWNv
ZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJMYXllckFuaW1hdGlvbiYg
aW5mbykKK3sKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZUVudW0oaW5mby5vcGVyYXRpb24pKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoaW5mby5rZXlm
cmFtZUxpc3QpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGUoQ29yZUlQQzo6T3V0KGluZm8ubmFtZSwgaW5mby5zdGFydFRpbWUsIGluZm8uYm94U2l6ZSkp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoaW5mby5vcGVyYXRpb24gPT0gV2Vi
TGF5ZXJBbmltYXRpb246OkFkZEFuaW1hdGlvbikKKyAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGUoaW5mby5hbmltYXRpb24pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0
dXJuIHRydWU7Cit9CisKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkxheWVyVHJlZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJMYXllclRy
ZWVJbmZvLmgKaW5kZXggMjUwMDNlNy4uNTZhNGY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkxheWVyVHJlZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViTGF5ZXJUcmVlSW5mby5oCkBAIC00OSw2ICs0OSwyNSBAQCBzdHJ1Y3QgV2ViTGF5ZXJVcGRh
dGVJbmZvIHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiwgV2ViTGF5ZXJVcGRhdGVJbmZvJik7CiB9OwogCitzdHJ1Y3QgV2ViTGF5ZXJBbmltYXRpb24g
eworICAgIFdlYkxheWVyQW5pbWF0aW9uKCkgOiBrZXlmcmFtZUxpc3QoQW5pbWF0ZWRQcm9wZXJ0
eUludmFsaWQpIHsgfQorICAgIFdlYkxheWVyQW5pbWF0aW9uKGNvbnN0IEtleWZyYW1lVmFsdWVM
aXN0JiB2YWx1ZUxpc3QpIAorICAgICAgICA6IGtleWZyYW1lTGlzdCh2YWx1ZUxpc3QpIHsgfQor
ICAgIFN0cmluZyBuYW1lOworICAgIGVudW0gT3BlcmF0aW9uIHsKKyAgICAgICAgQWRkQW5pbWF0
aW9uLAorICAgICAgICBSZW1vdmVBbmltYXRpb24sCisgICAgICAgIFBhdXNlQW5pbWF0aW9uCisg
ICAgfSBvcGVyYXRpb247CisgICAgSW50U2l6ZSBib3hTaXplOworICAgIFJlZlB0cjxBbmltYXRp
b24+IGFuaW1hdGlvbjsKKyAgICBLZXlmcmFtZVZhbHVlTGlzdCBrZXlmcmFtZUxpc3Q7CisgICAg
ZG91YmxlIHN0YXJ0VGltZTsKKworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciopIGNvbnN0OworICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqLCBXZWJMYXllckFuaW1hdGlvbiYpOworfTsKKwogc3RydWN0IFdlYkxheWVySW5mbyB7
CiAgICAgU3RyaW5nIG5hbWU7CiAgICAgV2ViTGF5ZXJJRCBpZDsKQEAgLTc5LDYgKzk4LDcgQEAg
c3RydWN0IFdlYkxheWVySW5mbyB7CiAgICAgICAgIHVuc2lnbmVkIGludCBmbGFnczsKICAgICB9
OwogICAgIFZlY3RvcjxXZWJMYXllcklEPiBjaGlsZHJlbjsKKyAgICBWZWN0b3I8V2ViTGF5ZXJB
bmltYXRpb24+IGFuaW1hdGlvbnM7CiAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gaW1hZ2VC
YWNraW5nU3RvcmU7CiAKICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIq
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVI
b3N0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHku
aAppbmRleCA0NWU4ZGY2Li45Y2UwZGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xheWVyVHJlZUhvc3RQcm94eS5oCkBAIC0xMjUsNiArMTI1LDExIEBAIHByb3RlY3RlZDoKICAg
ICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9yb290TGF5ZXI7CiAgICAgVmVjdG9yPFdlYkxheWVy
SUQ+IG1fbGF5ZXJzVG9EZWxldGU7CiAKKyNpZiBQTEFURk9STShRVCkKKyAgICB2b2lkIGRpZEZp
cmVWaWV3cG9ydFVwZGF0ZVRpbWVyKFRpbWVyPExheWVyVHJlZUhvc3RQcm94eT4qKTsKKyAgICBU
aW1lcjxMYXllclRyZWVIb3N0UHJveHk+IG1fdmlld3BvcnRVcGRhdGVUaW1lcjsKKyNlbmRpZgor
CiAgICAgTGF5ZXJNYXAgbV9sYXllcnM7CiAgICAgV2ViTGF5ZXJJRCBtX3Jvb3RMYXllcklEOwog
ICAgIGludCBtX2lkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0xh
eWVyVHJlZUhvc3RQcm94eVF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXll
clRyZWVIb3N0UHJveHlRdC5jcHAKaW5kZXggMGMwMzZlNC4uOWNiMTk4OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0xheWVyVHJlZUhvc3RQcm94eVF0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvTGF5ZXJUcmVlSG9zdFByb3h5UXQuY3BwCkBA
IC0xNTQsNiArMTU0LDcgQEAgUGFzc093blB0cjxHcmFwaGljc0xheWVyPiBMYXllclRyZWVIb3N0
UHJveHk6OmNyZWF0ZUxheWVyKFdlYkxheWVySUQgbGF5ZXJJRCkKIExheWVyVHJlZUhvc3RQcm94
eTo6TGF5ZXJUcmVlSG9zdFByb3h5KERyYXdpbmdBcmVhUHJveHkqIGRyYXdpbmdBcmVhUHJveHkp
CiAgICAgOiBtX2FuaW1hdGlvblRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJkxheWVyVHJl
ZUhvc3RQcm94eTo6dXBkYXRlVmlld3BvcnQpCiAgICAgLCBtX2RyYXdpbmdBcmVhUHJveHkoZHJh
d2luZ0FyZWFQcm94eSkKKyAgICAsIG1fdmlld3BvcnRVcGRhdGVUaW1lcih0aGlzLCAmTGF5ZXJU
cmVlSG9zdFByb3h5OjpkaWRGaXJlVmlld3BvcnRVcGRhdGVUaW1lcikKICAgICAsIG1fcm9vdExh
eWVySUQoMCkKIHsKIH0KQEAgLTIwOCw4ICsyMDksMTUgQEAgdm9pZCBMYXllclRyZWVIb3N0UHJv
eHk6OnBhaW50VG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBt
YXQKIAogICAgIG1fdGV4dHVyZU1hcHBlci0+ZW5kUGFpbnRpbmcoKTsKIAotICAgIGlmIChub2Rl
LT5kZXNjZW5kYW50c09yU2VsZkhhdmVSdW5uaW5nQW5pbWF0aW9ucygpKQotICAgICAgICB1cGRh
dGVWaWV3cG9ydCgpOworICAgIGlmIChub2RlLT5kZXNjZW5kYW50c09yU2VsZkhhdmVSdW5uaW5n
QW5pbWF0aW9ucygpKSB7CisgICAgICAgIG5vZGUtPnN5bmNBbmltYXRpb25zUmVjdXJzaXZlbHko
KTsKKyAgICAgICAgbV92aWV3cG9ydFVwZGF0ZVRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKKyAgICB9
Cit9CisKK3ZvaWQgTGF5ZXJUcmVlSG9zdFByb3h5OjpkaWRGaXJlVmlld3BvcnRVcGRhdGVUaW1l
cihUaW1lcjxMYXllclRyZWVIb3N0UHJveHk+KikKK3sKKyAgICB1cGRhdGVWaWV3cG9ydCgpOwog
fQogCiB2b2lkIExheWVyVHJlZUhvc3RQcm94eTo6dXBkYXRlVmlld3BvcnQoKQpAQCAtMjcyLDYg
KzI4MCwyNiBAQCB2b2lkIExheWVyVHJlZUhvc3RQcm94eTo6c3luY0xheWVyUGFyYW1ldGVycyhj
b25zdCBXZWJMYXllckluZm8mIGxheWVySW5mbykKICAgICB9CiAgICAgbGF5ZXItPnNldENoaWxk
cmVuKGNoaWxkcmVuKTsKIAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGF5ZXJJbmZvLmFu
aW1hdGlvbnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgY29uc3QgV2ViS2l0OjpXZWJMYXllckFu
aW1hdGlvbiBhbmltID0gbGF5ZXJJbmZvLmFuaW1hdGlvbnNbaV07CisKKyAgICAgICAgc3dpdGNo
IChhbmltLm9wZXJhdGlvbikgeworICAgICAgICBjYXNlIFdlYktpdDo6V2ViTGF5ZXJBbmltYXRp
b246OkFkZEFuaW1hdGlvbjogeworICAgICAgICAgICAgY29uc3QgSW50U2l6ZSBib3hTaXplID0g
YW5pbS5ib3hTaXplOworICAgICAgICAgICAgZG91YmxlIG9mZnNldCA9IFdURjo6Y3VycmVudFRp
bWUoKSAtIGFuaW0uc3RhcnRUaW1lOworICAgICAgICAgICAgbGF5ZXItPmFkZEFuaW1hdGlvbihh
bmltLmtleWZyYW1lTGlzdCwgYm94U2l6ZSwgYW5pbS5hbmltYXRpb24uZ2V0KCksIGFuaW0ubmFt
ZSwgb2Zmc2V0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2Ug
V2ViS2l0OjpXZWJMYXllckFuaW1hdGlvbjo6UmVtb3ZlQW5pbWF0aW9uOgorICAgICAgICAgICAg
bGF5ZXItPnJlbW92ZUFuaW1hdGlvbihhbmltLm5hbWUpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgV2ViS2l0OjpXZWJMYXllckFuaW1hdGlvbjo6UGF1c2VBbmltYXRpb246Cisg
ICAgICAgICAgICBkb3VibGUgb2Zmc2V0ID0gV1RGOjpjdXJyZW50VGltZSgpIC0gYW5pbS5zdGFy
dFRpbWU7CisgICAgICAgICAgICBsYXllci0+cGF1c2VBbmltYXRpb24oYW5pbS5uYW1lLCBvZmZz
ZXQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKICAgICBpZiAobGF5
ZXJJbmZvLmlzUm9vdExheWVyICYmIG1fcm9vdExheWVySUQgIT0gaWQpCiAgICAgICAgIHNldFJv
b3RMYXllcklEKGlkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDcwODQzMjQu
LmE3OTc5MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmNwcApAQCAtMjc3LDE4ICsyNzcsNDIg
QEAgdm9pZCBXZWJHcmFwaGljc0xheWVyOjpub3RpZnlBbmltYXRpb25TdGFydGVkKGRvdWJsZSB0
aW1lKQogICAgICAgICBjbGllbnQoKS0+bm90aWZ5QW5pbWF0aW9uU3RhcnRlZCh0aGlzLCB0aW1l
KTsKIH0KIAotLy8gV2UgcHV0IHRoZXNlIHN0dWIgaW1wbGVtZW50YXRpb25zIGhlcmUgZm9yIHdo
ZW4gd2UgaW1wbGVtZW50IGFjY2VsZXJhdGVkIGNyb3NzLXByb2Nlc3MgYW5pbWF0aW9ucy4KIGJv
b2wgV2ViR3JhcGhpY3NMYXllcjo6YWRkQW5pbWF0aW9uKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0
JiB2YWx1ZUxpc3QsIGNvbnN0IEludFNpemUmIGJveFNpemUsIGNvbnN0IEFuaW1hdGlvbiogYW5p
bSwgY29uc3QgU3RyaW5nJiBrZXlmcmFtZXNOYW1lLCBkb3VibGUgdGltZU9mZnNldCkKIHsKLSAg
ICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFhbmltIHx8IGFuaW0tPmlzRW1wdHlPclplcm9EdXJh
dGlvbigpIHx8IHZhbHVlTGlzdC5zaXplKCkgPCAyIHx8ICh2YWx1ZUxpc3QucHJvcGVydHkoKSAh
PSBBbmltYXRlZFByb3BlcnR5V2Via2l0VHJhbnNmb3JtICYmIHZhbHVlTGlzdC5wcm9wZXJ0eSgp
ICE9IEFuaW1hdGVkUHJvcGVydHlPcGFjaXR5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgV2ViTGF5ZXJBbmltYXRpb24gd2ViQW5pbWF0aW9uKHZhbHVlTGlzdCk7CisgICAgd2ViQW5p
bWF0aW9uLm5hbWUgPSBrZXlmcmFtZXNOYW1lOworICAgIHdlYkFuaW1hdGlvbi5vcGVyYXRpb24g
PSBXZWJMYXllckFuaW1hdGlvbjo6QWRkQW5pbWF0aW9uOworICAgIHdlYkFuaW1hdGlvbi5ib3hT
aXplID0gYm94U2l6ZTsKKyAgICB3ZWJBbmltYXRpb24uYW5pbWF0aW9uID0gQW5pbWF0aW9uOjpj
cmVhdGUoYW5pbSk7CisgICAgd2ViQW5pbWF0aW9uLnN0YXJ0VGltZSA9IFdURjo6Y3VycmVudFRp
bWUoKSAtIHRpbWVPZmZzZXQ7CisgICAgbV9sYXllckluZm8uYW5pbWF0aW9ucy5hcHBlbmQod2Vi
QW5pbWF0aW9uKTsKKworICAgIG1faGFzUGVuZGluZ0FuaW1hdGlvbnMgPSB0cnVlOworICAgIG5v
dGlmeUNoYW5nZSgpOworCisgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgV2ViR3JhcGhpY3NM
YXllcjo6cGF1c2VBbmltYXRpb24oY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBkb3VibGUg
dGltZU9mZnNldCkKIHsKKyAgICBXZWJMYXllckFuaW1hdGlvbiB3ZWJBbmltYXRpb247CisgICAg
d2ViQW5pbWF0aW9uLm5hbWUgPSBhbmltYXRpb25OYW1lOworICAgIHdlYkFuaW1hdGlvbi5vcGVy
YXRpb24gPSBXZWJMYXllckFuaW1hdGlvbjo6UGF1c2VBbmltYXRpb247CisgICAgd2ViQW5pbWF0
aW9uLnN0YXJ0VGltZSA9IFdURjo6Y3VycmVudFRpbWUoKSAtIHRpbWVPZmZzZXQ7CisgICAgbV9s
YXllckluZm8uYW5pbWF0aW9ucy5hcHBlbmQod2ViQW5pbWF0aW9uKTsKKyAgICBub3RpZnlDaGFu
Z2UoKTsKIH0KIAogdm9pZCBXZWJHcmFwaGljc0xheWVyOjpyZW1vdmVBbmltYXRpb24oY29uc3Qg
U3RyaW5nJiBhbmltYXRpb25OYW1lKQogeworICAgIFdlYkxheWVyQW5pbWF0aW9uIHdlYkFuaW1h
dGlvbjsKKyAgICB3ZWJBbmltYXRpb24ubmFtZSA9IGFuaW1hdGlvbk5hbWU7CisgICAgd2ViQW5p
bWF0aW9uLm9wZXJhdGlvbiA9IFdlYkxheWVyQW5pbWF0aW9uOjpSZW1vdmVBbmltYXRpb247Cisg
ICAgbV9sYXllckluZm8uYW5pbWF0aW9ucy5hcHBlbmQod2ViQW5pbWF0aW9uKTsKKyAgICBub3Rp
ZnlDaGFuZ2UoKTsKIH0KIAogdm9pZCBXZWJHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c05lZWRz
RGlzcGxheSgpCkBAIC00MDIsNiArNDI2LDcgQEAgdm9pZCBXZWJHcmFwaGljc0xheWVyOjpzeW5j
Q29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKQogICAgIG1fbGF5ZXJJbmZvLmltYWdl
SXNVcGRhdGVkID0gZmFsc2U7CiAgICAgaWYgKG1faGFzUGVuZGluZ0FuaW1hdGlvbnMpCiAgICAg
ICAgIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoV1RGOjpjdXJyZW50VGltZSgpKTsKKyAgICBtX2xh
eWVySW5mby5hbmltYXRpb25zLmNsZWFyKCk7CiAgICAgbV9oYXNQZW5kaW5nQW5pbWF0aW9ucyA9
IGZhbHNlOwogfQogCi0tIAoxLjcuNS40Cgo=
</data>
<flag name="review"
          id="115138"
          type_id="1"
          status="+"
          setter="noam"
    />
    <flag name="commit-queue"
          id="115139"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>