<?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>59028</bug_id>
          
          <creation_ts>2011-04-20 15:09:14 -0700</creation_ts>
          <short_desc>Move complexity from DataTransferItemsChromium and DataTransferItemChromium for base class</short_desc>
          <delta_ts>2011-04-25 17:31:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Igor Trindade Oliveira">igor.oliveira</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dcheng</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>389557</commentid>
    <comment_count>0</comment_count>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2011-04-20 15:09:14 -0700</bug_when>
    <thetext>Many code used by DataTransferItemsChromium and DataTransferItemChromium can be reused by others platforms. Moving the complexity for base class we can reduce the necessary effort to support DataTransferItems element in different plataforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389927</commentid>
    <comment_count>1</comment_count>
      <attachid>90509</attachid>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2011-04-21 04:07:27 -0700</bug_when>
    <thetext>Created attachment 90509
Patch

Initial patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390131</commentid>
    <comment_count>2</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-04-21 10:30:39 -0700</bug_when>
    <thetext>Daniel, can you take an initial pass at this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390253</commentid>
    <comment_count>3</comment_count>
      <attachid>90509</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-04-21 12:32:39 -0700</bug_when>
    <thetext>Comment on attachment 90509
Patch

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

&gt; Source/WebCore/dom/DataTransferItem.h:36
&gt; +#include &quot;Clipboard.h&quot;

I think forward declarations are preferred in header files where possible (same comment in DataTransferItems.h)

&gt; Source/WebCore/dom/DataTransferItem.h:49
&gt; +    static PassRefPtr&lt;DataTransferItem&gt; create(PassRefPtr&lt;Clipboard&gt; owner, ScriptExecutionContext*, const String&amp; data, const String&amp; type);

I&apos;m not sure how useful it is to hoist this method up into the shared implementation. Is there somewhere in the shared implementation that would call this? If not, I think it would be better to leave this method on the platform implementations. That way, we don&apos;t have to expose internal enums publicly.

&gt; Source/WebCore/dom/DataTransferItem.h:62
&gt; +    void setKind(const String&amp;);

Who uses these setters?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390261</commentid>
    <comment_count>4</comment_count>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2011-04-21 12:52:44 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 90509 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=90509&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/DataTransferItem.h:36
&gt; &gt; +#include &quot;Clipboard.h&quot;
&gt; 
&gt; I think forward declarations are preferred in header files where possible (same comment in DataTransferItems.h)

Ok. Fixing that.

&gt; 
&gt; &gt; Source/WebCore/dom/DataTransferItem.h:49
&gt; &gt; +    static PassRefPtr&lt;DataTransferItem&gt; create(PassRefPtr&lt;Clipboard&gt; owner, ScriptExecutionContext*, const String&amp; data, const String&amp; type);
&gt; 
&gt; I&apos;m not sure how useful it is to hoist this method up into the shared implementation. Is there somewhere in the shared implementation that would call this? If not, I think it would be better to leave this method on the platform implementations. That way, we don&apos;t have to expose internal enums publicly.

The DataTransferItems.cpp is using this method, take a look in DataTransferItems::add (  m_items.append(DataTransferItem::create(m_owner, m_context, data, type)); )
. I can try to find a better solution.
&gt; 
&gt; &gt; Source/WebCore/dom/DataTransferItem.h:62
&gt; &gt; +    void setKind(const String&amp;);
&gt; 
&gt; Who uses these setters?

Right now, nobody :) , i just added it because in future some platform can use this setter. But i do not have objections to remove these setters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390312</commentid>
    <comment_count>5</comment_count>
      <attachid>90594</attachid>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2011-04-21 14:00:04 -0700</bug_when>
    <thetext>Created attachment 90594
Patch

The forward declaration is not possible in DataTransferItem.h, the template needs to know about Clipboard, if i do not include it, it would be an incomplete type.
The setters was removed(my fault) and the enumerator and constructor from DataTransferItemChromium are private again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390330</commentid>
    <comment_count>6</comment_count>
      <attachid>90600</attachid>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2011-04-21 14:19:46 -0700</bug_when>
    <thetext>Created attachment 90600
Patch

The forward declaration is not possible in DataTransferItem.h, the template needs to know about Clipboard, if i do not include it, it would be an incomplete type.
The setters was removed(my fault) and the enumerator and constructor from DataTransferItemChromium are private again.
Constify attributes in DataTransferItem.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390468</commentid>
    <comment_count>7</comment_count>
      <attachid>90600</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-04-21 17:02:00 -0700</bug_when>
    <thetext>Comment on attachment 90600
Patch

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

The change looks fine, but I think we need to update the other build systems.

&gt; Source/WebCore/WebCore.gypi:2428
&gt; +            &apos;dom/DataTransferItems.cpp&apos;,

Should we add this file to the other build systems (xcode, vcproj, etc)?

&gt; Source/WebCore/dom/DataTransferItems.cpp:2
&gt; + * Copyright (C) 2011 Google Inc. All rights reserved.

I suspect this is the wrong copyright.

&gt; Source/WebCore/dom/DataTransferItems.cpp:47
&gt; +unsigned long DataTransferItems::length()

It would be nice in a follow up patch to change these to size_t since that&apos;s what wtf::Vector uses.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391867</commentid>
    <comment_count>8</comment_count>
      <attachid>90939</attachid>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2011-04-25 13:46:07 -0700</bug_when>
    <thetext>Created attachment 90939
Patch

Updates for others build systems, change copyright and unsigned long to size_t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391876</commentid>
    <comment_count>9</comment_count>
      <attachid>90939</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-04-25 14:06:52 -0700</bug_when>
    <thetext>Comment on attachment 90939
Patch

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

&gt; Source/WebCore/dom/DataTransferItems.cpp:14
&gt; + *     * Neither the name of Google Inc. nor the names of its

Nit: This should probably be Nokia.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391881</commentid>
    <comment_count>10</comment_count>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2011-04-25 14:10:47 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 90939 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=90939&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/DataTransferItems.cpp:14
&gt; &gt; + *     * Neither the name of Google Inc. nor the names of its
&gt; 
&gt; Nit: This should probably be Nokia.

I am from Nokia :). I am reusing Google code so i am putting Google and Nokia copyrights, ok for you?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391884</commentid>
    <comment_count>11</comment_count>
      <attachid>90939</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-04-25 14:14:07 -0700</bug_when>
    <thetext>Comment on attachment 90939
Patch

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

&gt;&gt;&gt; Source/WebCore/dom/DataTransferItems.cpp:14
&gt;&gt;&gt; + *     * Neither the name of Google Inc. nor the names of its
&gt;&gt; 
&gt;&gt; Nit: This should probably be Nokia.
&gt; 
&gt; I am from Nokia :). I am reusing Google code so i am putting Google and Nokia copyrights, ok for you?

Yes, that sounds fine to me :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391895</commentid>
    <comment_count>12</comment_count>
      <attachid>90946</attachid>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2011-04-25 14:32:55 -0700</bug_when>
    <thetext>Created attachment 90946
Patch

Adding Nokia in copyright. So the phrase: &quot;Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived ...&quot; does not need to be changed because Nokia is a contributor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391908</commentid>
    <comment_count>13</comment_count>
      <attachid>90946</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-25 14:58:09 -0700</bug_when>
    <thetext>Comment on attachment 90946
Patch

Rejecting attachment 90946 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-4&apos;, &apos;apply-...&quot; exit_code: 2

Last 500 characters of output:
nsferItems.cpp
patching file Source/WebCore/dom/DataTransferItems.h
patching file Source/WebCore/platform/chromium/DataTransferItemChromium.cpp
patching file Source/WebCore/platform/chromium/DataTransferItemChromium.h
patching file Source/WebCore/platform/chromium/DataTransferItemsChromium.cpp
patching file Source/WebCore/platform/chromium/DataTransferItemsChromium.h

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Tony Chang&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/8507372</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391920</commentid>
    <comment_count>14</comment_count>
      <attachid>90954</attachid>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2011-04-25 15:15:16 -0700</bug_when>
    <thetext>Created attachment 90954
Patch

Trying again. I updated my local branch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392160</commentid>
    <comment_count>15</comment_count>
      <attachid>90954</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-25 17:31:46 -0700</bug_when>
    <thetext>Comment on attachment 90954
Patch

Clearing flags on attachment: 90954

Committed r84857: &lt;http://trac.webkit.org/changeset/84857&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392161</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-25 17:31:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90509</attachid>
            <date>2011-04-21 04:07:27 -0700</date>
            <delta_ts>2011-04-21 14:00:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Move-complexity-from-DataTransferItemsChromium-and-D.patch</filename>
            <type>text/plain</type>
            <size>19350</size>
            <attacher name="Igor Trindade Oliveira">igor.oliveira</attacher>
            
              <data encoding="base64">RnJvbSBmZGFhNTU3NzQ5YTEyY2NlMDI0ZWU5NWY1YzBiNDY2YjA1MjZhYzA1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJZ29yIE9saXZlaXJhIDxpZ29yLm9saXZlaXJhQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFdlZCwgMjAgQXByIDIwMTEgMTE6NDc6MDIgLTA0MDAKU3ViamVjdDogW1BB
VENIXSBNb3ZlIGNvbXBsZXhpdHkgZnJvbSBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtIGFuZCBE
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0gZm9yIGJhc2UgY2xhc3MKCi0tLQogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDM3ICsrKysrKysKIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSAr
CiBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5jcHAgICAgICAgICAgICB8ICAg
MjkgKysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5oICAgICAgICAg
ICAgICB8ICAgMTggKysrLQogU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmNw
cCAgICAgICAgICAgfCAgMTAzICsrKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9k
b20vRGF0YVRyYW5zZmVySXRlbXMuaCAgICAgICAgICAgICB8ICAgMjIgKysrLQogLi4uL3BsYXRm
b3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5jcHAgfCAgIDM4ICsrLS0tLS0K
IC4uLi9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uaCAgIHwgICAx
OCArLS0tCiAuLi4vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5jcHAgICAgICAg
ICB8ICAgNTQgKy0tLS0tLS0tLS0KIC4uLi9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJ
dGVtc0Nocm9taXVtLmggIHwgICAxMiAtLS0KIDEwIGZpbGVzIGNoYW5nZWQsIDIyMCBpbnNlcnRp
b25zKCspLCAxMTIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNv
cmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmNwcAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhYjU3YWYzLi5jZDRk
ZWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTEtMDQtMjEgIElnb3IgT2xpdmVp
cmEgIDxpZ29yLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBjb21wbGV4aXR5IGZyb20gRGF0YVRyYW5z
ZmVySXRlbXNDaHJvbWl1bSBhbmQgRGF0YVRyYW5zZmVySXRlbUNocm9taXVtIGZvciBiYXNlIGNs
YXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTAy
OAorCisgICAgICAgIFRoZSBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtIGFuZCBEYXRhVHJhbnNm
ZXJJdGVtQ2hyb21pdW0gY29kZSBjYW4gYmUgcmV1c2VkIGJ5IG90aGVyIHBsYXRmb3Jtcy4KKyAg
ICAgICAgTW92aW5nIHRoZSBjb2RlIGZvciBiYXNlIGNsYXNzIHdlIGNhbiByZWR1Y2UgdGhlIGVm
Zm9ydHMgdG8gc3VwcG9ydCBEYXRhVHJhbnNmZXJJdGVtcyAKKyAgICAgICAgZWxlbWVudCBpbiBk
aWZmZXJlbnQgcGxhdGZvcm1zLgorCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogZG9tL0RhdGFUcmFuc2Zlckl0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5z
ZmVySXRlbTo6RGF0YVRyYW5zZmVySXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNm
ZXJJdGVtOjpvd25lcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtOjpraW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW06OnR5cGUpOgorICAgICAgICAq
IGRvbS9EYXRhVHJhbnNmZXJJdGVtLmg6CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlckl0ZW1z
LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRy
YW5zZmVySXRlbXNDaHJvbWl1bS5jcHAuCisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJ
dGVtczo6RGF0YVRyYW5zZmVySXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVy
SXRlbXM6Omxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtczo6aXRl
bSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtczo6ZGVsZXRlSXRlbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtczo6Y2xlYXIpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YVRyYW5zZmVySXRlbXM6OmFkZCk6CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zl
ckl0ZW1zLmg6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUNo
cm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OkRhdGFUcmFuc2Zl
ckl0ZW1DaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21p
dW06OmdldEFzU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1DaHJv
bWl1bTo6Z2V0QXNGaWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNm
ZXJJdGVtQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNm
ZXJJdGVtc0Nocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1z
Q2hyb21pdW06OkRhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0pOgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uaDoKKwogMjAxMS0wNC0xOSAgU3Rl
cGhlbiBXaGl0ZSAgPHNlbm9yYmxhbmNvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBLZW5uZXRoIFJ1c3NlbGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMDEwYmUwMC4uZjAyZDBj
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjQyNSw2ICsyNDI1LDcgQEAKICAgICAgICAgICAgICdk
b20vRE9NU3RyaW5nTWFwLmgnLAogICAgICAgICAgICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVtLmNw
cCcsCiAgICAgICAgICAgICAnZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaCcsCisgICAgICAgICAgICAn
ZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0RhdGFUcmFuc2Zl
ckl0ZW1zLmgnLAogICAgICAgICAgICAgJ2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcCcsCiAg
ICAgICAgICAgICAnZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuaCcsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RGF0YVRyYW5zZmVySXRlbS5jcHAKaW5kZXggOGVlYzg2OS4uNjg0NmI1YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmNwcApAQCAtMzgsNiArMzgsMzUgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogY29uc3QgY2hhciBEYXRhVHJhbnNmZXJJdGVtOjpraW5kU3RyaW5nW10gPSAi
c3RyaW5nIjsKIGNvbnN0IGNoYXIgRGF0YVRyYW5zZmVySXRlbTo6a2luZEZpbGVbXSA9ICJmaWxl
IjsKIAorRGF0YVRyYW5zZmVySXRlbTo6RGF0YVRyYW5zZmVySXRlbShSZWZQdHI8Q2xpcGJvYXJk
PiBvd25lciwgY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIHR5cGUpCisgICAgOiBt
X293bmVyKG93bmVyKQorICAgICwgbV9raW5kKGtpbmQpCisgICAgLCBtX3R5cGUodHlwZSkKK3sK
K30KKworQ2xpcGJvYXJkKiBEYXRhVHJhbnNmZXJJdGVtOjpvd25lcigpCit7CisgICAgcmV0dXJu
IG1fb3duZXIuZ2V0KCk7Cit9CisKK1N0cmluZyBEYXRhVHJhbnNmZXJJdGVtOjpraW5kKCkgY29u
c3QKK3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5KCkgPT0gQ2xpcGJvYXJkTnVtYikKKyAgICAg
ICAgcmV0dXJuIFN0cmluZygpOworCisgICAgcmV0dXJuIG1fa2luZDsKK30KKworU3RyaW5nIERh
dGFUcmFuc2Zlckl0ZW06OnR5cGUoKSBjb25zdAoreworICAgIGlmIChtX293bmVyLT5wb2xpY3ko
KSA9PSBDbGlwYm9hcmROdW1iKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICByZXR1
cm4gbV90eXBlOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVO
QUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RhdGFUcmFuc2Zlckl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVt
LmgKaW5kZXggZDY0OGM1Ni4uYWY0Yzg2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RhdGFUcmFuc2Zlckl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVy
SXRlbS5oCkBAIC0zMyw2ICszMyw3IEBACiAKICNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVN
UykKIAorI2luY2x1ZGUgIkNsaXBib2FyZC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIApAQCAtNDUsMTQgKzQ2LDI3IEBAIGNsYXNzIERh
dGFUcmFuc2Zlckl0ZW0gOiBwdWJsaWMgUmVmQ291bnRlZDxEYXRhVHJhbnNmZXJJdGVtPiB7CiBw
dWJsaWM6CiAgICAgfkRhdGFUcmFuc2Zlckl0ZW0oKSB7fQogCisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8RGF0YVRyYW5zZmVySXRlbT4gY3JlYXRlKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5n
JiB0eXBlKTsKKwogICAgIHN0YXRpYyBjb25zdCBjaGFyIGtpbmRTdHJpbmdbXTsKICAgICBzdGF0
aWMgY29uc3QgY2hhciBraW5kRmlsZVtdOwogCi0gICAgdmlydHVhbCBTdHJpbmcga2luZCgpIGNv
bnN0ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyB0eXBlKCkgY29uc3QgPSAwOworICAgIFN0cmlu
ZyBraW5kKCkgY29uc3Q7CisgICAgU3RyaW5nIHR5cGUoKSBjb25zdDsKIAogICAgIHZpcnR1YWwg
dm9pZCBnZXRBc1N0cmluZyhQYXNzUmVmUHRyPFN0cmluZ0NhbGxiYWNrPikgPSAwOwogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxCbG9iPiBnZXRBc0ZpbGUoKSA9IDA7CisKK3Byb3RlY3RlZDoKKyAg
ICBEYXRhVHJhbnNmZXJJdGVtKFJlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLCBjb25zdCBTdHJpbmcm
IGtpbmQsIGNvbnN0IFN0cmluZyYgdHlwZSk7CisgICAgdm9pZCBzZXRLaW5kKGNvbnN0IFN0cmlu
ZyYpOworICAgIHZvaWQgc2V0VHlwZShjb25zdCBTdHJpbmcmKTsKKyAgICBDbGlwYm9hcmQqIG93
bmVyKCk7CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPENsaXBib2FyZD4gbV9vd25lcjsKKyAgICBT
dHJpbmcgbV9raW5kOworICAgIFN0cmluZyBtX3R5cGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZWU2ZWQyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmNwcApAQCAtMCwwICsxLDEwMyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtcy5oIgorCisjaW5j
bHVkZSAiRGF0YVRyYW5zZmVySXRlbS5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKwor
I2lmIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K0RhdGFUcmFuc2Zlckl0ZW1zOjpEYXRhVHJhbnNmZXJJdGVtcyhSZWZQdHI8Q2xpcGJvYXJkPiBj
bGlwYm9hcmQsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBtX293bmVy
KGNsaXBib2FyZCkKKyAgICAsIG1fY29udGV4dChjb250ZXh0KQoreworfQorCit1bnNpZ25lZCBs
b25nIERhdGFUcmFuc2Zlckl0ZW1zOjpsZW5ndGgoKQoreworICAgIGlmIChtX293bmVyLT5wb2xp
Y3koKSA9PSBDbGlwYm9hcmROdW1iKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBt
X2l0ZW1zLnNpemUoKTsKK30KKworUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiBEYXRhVHJh
bnNmZXJJdGVtczo6aXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KQoreworICAgIGlmIChtX293bmVy
LT5wb2xpY3koKSA9PSBDbGlwYm9hcmROdW1iIHx8IGluZGV4ID49IGxlbmd0aCgpKQorICAgICAg
ICByZXR1cm4gMDsKKworICAgIHJldHVybiBtX2l0ZW1zW2luZGV4XTsKK30KKwordm9pZCBEYXRh
VHJhbnNmZXJJdGVtczo6ZGVsZXRlSXRlbSh1bnNpZ25lZCBsb25nIGluZGV4LCBFeGNlcHRpb25D
b2RlJiBlYykKK3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJvYXJkV3JpdGFi
bGUpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGlmIChpbmRleCA+PSBsZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9pdGVtcy5yZW1vdmUoaW5kZXgpOworfQorCit2b2lkIERhdGFUcmFuc2Zlckl0ZW1zOjpj
bGVhcigpCit7CisgICAgaWYgKG1fb3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFdyaXRhYmxl
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2l0ZW1zLmNsZWFyKCk7CisKK30KKwordm9pZCBE
YXRhVHJhbnNmZXJJdGVtczo6YWRkKGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0
eXBlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5KCkgIT0g
Q2xpcGJvYXJkV3JpdGFibGUpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIE9ubHkgb25lICdz
dHJpbmcnIGl0ZW0gd2l0aCBhIGdpdmVuIHR5cGUgaXMgYWxsb3dlZCBpbiB0aGUgY29sbGVjdGlv
bi4KKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1faXRlbXMuc2l6ZSgpOyArK2kpIHsKKyAg
ICAgICAgaWYgKG1faXRlbXNbaV0tPnR5cGUoKSA9PSB0eXBlICYmIG1faXRlbXNbaV0tPmtpbmQo
KSA9PSBEYXRhVHJhbnNmZXJJdGVtOjpraW5kU3RyaW5nKSB7CisgICAgICAgICAgICBlYyA9IElO
VkFMSURfU1RBVEVfRVJSOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQor
CisgICAgbV9pdGVtcy5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKG1fb3duZXIsIG1f
Y29udGV4dCwgZGF0YSwgdHlwZSkpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RGF0YVRyYW5zZmVySXRlbXMuaAppbmRleCAwODczMzg0Li5lYTg3M2MyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaApAQCAtMzMsMTIgKzMzLDEzIEBACiAKICNpZiBFTkFC
TEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKIAorI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW0uaCIK
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRGF0YVRyYW5zZmVySXRlbTsKK2NsYXNzIENs
aXBib2FyZDsKIAogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIApAQCAtNDYsMTIgKzQ3LDIx
IEBAIGNsYXNzIERhdGFUcmFuc2Zlckl0ZW1zIDogcHVibGljIFJlZkNvdW50ZWQ8RGF0YVRyYW5z
ZmVySXRlbXM+IHsKIHB1YmxpYzoKICAgICB+RGF0YVRyYW5zZmVySXRlbXMoKSB7fQogCi0gICAg
dmlydHVhbCB1bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4gaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KSBjb25z
dCA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCwg
RXhjZXB0aW9uQ29kZSYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoKSA9IDA7CisgICAg
dmlydHVhbCB1bnNpZ25lZCBsb25nIGxlbmd0aCgpOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxE
YXRhVHJhbnNmZXJJdGVtPiBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgIHZpcnR1YWwg
dm9pZCBkZWxldGVJdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXIoKTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkKGNvbnN0IFN0cmlu
ZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJik7CisKK3Byb3RlY3Rl
ZDoKKyAgICBEYXRhVHJhbnNmZXJJdGVtcyhSZWZQdHI8Q2xpcGJvYXJkPiwgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCopOworCitwcm90ZWN0ZWQ6CisgICAgUmVmUHRyPENsaXBib2FyZD4gbV9vd25l
cjsKKyAgICAvLyBJbmRpcmVjdGx5IG93bmVkIGJ5IG91ciBwYXJlbnQuCisgICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogbV9jb250ZXh0OworICAgIFZlY3RvcjxSZWZQdHI8RGF0YVRyYW5zZmVy
SXRlbT4gPiBtX2l0ZW1zOwogCi0gICAgdmlydHVhbCB2b2lkIGFkZChjb25zdCBTdHJpbmcmIGRh
dGEsIGNvbnN0IFN0cmluZyYgdHlwZSwgRXhjZXB0aW9uQ29kZSYpID0gMDsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uY3BwCmluZGV4IDI0YjQ5OGUu
LmVhOWJjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Rh
dGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmNwcApAQCAtNDksNDIgKzQ5LDI2IEBA
IFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUNocm9taXVtPiBEYXRhVHJhbnNmZXJJdGVtQ2hy
b21pdW06OmNyZWF0ZUZyb21QYXN0ZWJvCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhVHJh
bnNmZXJJdGVtQ2hyb21pdW0ob3duZXIsIGNvbnRleHQsIFBhc3RlYm9hcmRTb3VyY2UsIERhdGFU
cmFuc2Zlckl0ZW06OmtpbmRGaWxlLCB0eXBlLCAiIikpOwogfQogCi1QYXNzUmVmUHRyPERhdGFU
cmFuc2Zlckl0ZW1DaHJvbWl1bT4gRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpjcmVhdGUoUGFz
c1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBkYXRhLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFN0cmluZyYgdHlwZSkKK1Bhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4g
RGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIGRhdGEsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcm
IHR5cGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhVHJhbnNmZXJJdGVtQ2hyb21p
dW0ob3duZXIsIGNvbnRleHQsIEludGVybmFsU291cmNlLCBEYXRhVHJhbnNmZXJJdGVtOjpraW5k
U3RyaW5nLCB0eXBlLCBkYXRhKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhVHJhbnNm
ZXJJdGVtQ2hyb21pdW0ob3duZXIsIGNvbnRleHQsIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6
SW50ZXJuYWxTb3VyY2UsIERhdGFUcmFuc2Zlckl0ZW06OmtpbmRTdHJpbmcsIHR5cGUsIGRhdGEp
KTsKIH0KIAogRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21p
dW0oUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBEYXRhU291cmNlIHNvdXJjZSwgY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJp
bmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZGF0YSkKLSAgICA6IG1fb3duZXIob3duZXIpCisgICAg
OiBEYXRhVHJhbnNmZXJJdGVtKG93bmVyLCBraW5kLCB0eXBlKQogICAgICwgbV9jb250ZXh0KGNv
bnRleHQpCiAgICAgLCBtX3NvdXJjZShzb3VyY2UpCi0gICAgLCBtX2tpbmQoa2luZCkKLSAgICAs
IG1fdHlwZSh0eXBlKQogICAgICwgbV9kYXRhKGRhdGEpCiB7CiB9CiAKLVN0cmluZyBEYXRhVHJh
bnNmZXJJdGVtQ2hyb21pdW06OmtpbmQoKSBjb25zdAotewotICAgIGlmIChtX293bmVyLT5wb2xp
Y3koKSA9PSBDbGlwYm9hcmROdW1iKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0gICAgcmV0
dXJuIG1fa2luZDsKLX0KLQotU3RyaW5nIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6dHlwZSgp
IGNvbnN0Ci17Ci0gICAgaWYgKG1fb3duZXItPnBvbGljeSgpID09IENsaXBib2FyZE51bWIpCi0g
ICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICByZXR1cm4gbV90eXBlOwotfQotCiB2b2lkIERh
dGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6Z2V0QXNTdHJpbmcoUGFzc1JlZlB0cjxTdHJpbmdDYWxs
YmFjaz4gY2FsbGJhY2spCiB7Ci0gICAgaWYgKChtX293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9h
cmRSZWFkYWJsZSAmJiBtX293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0YWJsZSkKLSAg
ICAgICAgfHwgbV9raW5kICE9IGtpbmRTdHJpbmcpCisgICAgaWYgKChvd25lcigpLT5wb2xpY3ko
KSAhPSBDbGlwYm9hcmRSZWFkYWJsZSAmJiBvd25lcigpLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRX
cml0YWJsZSkKKyAgICAgICAgfHwga2luZCgpICE9IGtpbmRTdHJpbmcpCiAgICAgICAgIHJldHVy
bjsKICAgICBpZiAobV9zb3VyY2UgPT0gSW50ZXJuYWxTb3VyY2UpIHsKICAgICAgICAgY2FsbGJh
Y2stPnNjaGVkdWxlQ2FsbGJhY2sobV9jb250ZXh0LCBtX2RhdGEpOwpAQCAtOTMsMTEgKzc3LDEx
IEBAIHZvaWQgRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpnZXRBc1N0cmluZyhQYXNzUmVmUHRy
PFN0cmluZ0NhbGxiYWNrPiBjYWxsYmFjaykKIAogICAgIEFTU0VSVChtX3NvdXJjZSA9PSBQYXN0
ZWJvYXJkU291cmNlKTsKICAgICAvLyBUaGlzIGlzIHVnbHkgYnV0IHRoZXJlJ3Mgbm8gcmVhbCBh
bHRlcm5hdGl2ZS4KLSAgICBpZiAobV90eXBlID09IG1pbWVUeXBlVGV4dFBsYWluKSB7CisgICAg
aWYgKHR5cGUoKSA9PSBtaW1lVHlwZVRleHRQbGFpbikgewogICAgICAgICBjYWxsYmFjay0+c2No
ZWR1bGVDYWxsYmFjayhtX2NvbnRleHQsIFBsYXRmb3JtQnJpZGdlOjpjbGlwYm9hcmRSZWFkUGxh
aW5UZXh0KFBhc3RlYm9hcmRQcml2YXRlOjpTdGFuZGFyZEJ1ZmZlcikpOwogICAgICAgICByZXR1
cm47CiAgICAgfQotICAgIGlmIChtX3R5cGUgPT0gbWltZVR5cGVUZXh0SFRNTCkgeworICAgIGlm
ICh0eXBlKCkgPT0gbWltZVR5cGVUZXh0SFRNTCkgewogICAgICAgICBTdHJpbmcgaHRtbDsKICAg
ICAgICAgS1VSTCBpZ25vcmVkU291cmNlVVJMOwogICAgICAgICBQbGF0Zm9ybUJyaWRnZTo6Y2xp
cGJvYXJkUmVhZEhUTUwoUGFzdGVib2FyZFByaXZhdGU6OlN0YW5kYXJkQnVmZmVyLCAmaHRtbCwg
Jmlnbm9yZWRTb3VyY2VVUkwpOwpAQCAtMTEzLDcgKzk3LDcgQEAgUGFzc1JlZlB0cjxCbG9iPiBE
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmdldEFzRmlsZSgpCiAgICAgICAgIHJldHVybiAwOwog
CiAgICAgQVNTRVJUKG1fc291cmNlID09IFBhc3RlYm9hcmRTb3VyY2UpOwotICAgIGlmIChtX3R5
cGUgPT0gbWltZVR5cGVJbWFnZVBuZykgeworICAgIGlmICh0eXBlKCkgPT0gbWltZVR5cGVJbWFn
ZVBuZykgewogICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBwcmV0dHkgaW5lZmZpY2llbnQuIFdl
IGNvcHkgdGhlIGRhdGEgZnJvbSB0aGUgYnJvd3NlcgogICAgICAgICAvLyB0byB0aGUgcmVuZGVy
ZXIuIFdlIHRoZW4gcGxhY2UgaXQgaW4gYSBibG9iIGluIFdlYktpdCwgd2hpY2gKICAgICAgICAg
Ly8gcmVnaXN0ZXJzIGl0IGFuZCBjb3BpZXMgaXQgKmJhY2sqIHRvIHRoZSBicm93c2VyLiBXaGVu
IGEgY29uc3VtZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmgKaW5kZXggNjZiZTk2ZS4uOGZlMDkwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVy
SXRlbUNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0
YVRyYW5zZmVySXRlbUNocm9taXVtLmgKQEAgLTQ0LDI4ICs0NCwyMiBAQCBjbGFzcyBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OwogCiBjbGFzcyBEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0gOiBwdWJs
aWMgRGF0YVRyYW5zZmVySXRlbSB7CiBwdWJsaWM6CisgICAgZW51bSBEYXRhU291cmNlIHsKKyAg
ICAgICAgUGFzdGVib2FyZFNvdXJjZSwKKyAgICAgICAgSW50ZXJuYWxTb3VyY2UsCisgICAgfTsK
KwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bT4gY3JlYXRl
RnJvbVBhc3RlYm9hcmQoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiB0eXBlKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxE
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0+IGNyZWF0ZShQYXNzUmVmUHRyPENsaXBib2FyZD4gb3du
ZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0IFN0
cmluZyYgdHlwZSk7CiAKLSAgICB2aXJ0dWFsIFN0cmluZyBraW5kKCkgY29uc3Q7Ci0gICAgdmly
dHVhbCBTdHJpbmcgdHlwZSgpIGNvbnN0OwotCisgICAgRGF0YVRyYW5zZmVySXRlbUNocm9taXVt
KFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIERh
dGFTb3VyY2UsIGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBT
dHJpbmcmIGRhdGEpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRBc1N0cmluZyhQYXNzUmVmUHRyPFN0
cmluZ0NhbGxiYWNrPik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEJsb2I+IGdldEFzRmlsZSgp
OwogCiBwcml2YXRlOgotICAgIGVudW0gRGF0YVNvdXJjZSB7Ci0gICAgICAgIFBhc3RlYm9hcmRT
b3VyY2UsCi0gICAgICAgIEludGVybmFsU291cmNlLAotICAgIH07Ci0KLSAgICBEYXRhVHJhbnNm
ZXJJdGVtQ2hyb21pdW0oUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgRGF0YVNvdXJjZSwgY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcm
IHR5cGUsIGNvbnN0IFN0cmluZyYgZGF0YSk7CiAKLSAgICBjb25zdCBSZWZQdHI8Q2xpcGJvYXJk
PiBtX293bmVyOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fY29udGV4dDsKICAgICBj
b25zdCBEYXRhU291cmNlIG1fc291cmNlOwotICAgIGNvbnN0IFN0cmluZyBtX2tpbmQ7Ci0gICAg
Y29uc3QgU3RyaW5nIG1fdHlwZTsKICAgICBjb25zdCBTdHJpbmcgbV9kYXRhOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRl
bXNDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJh
bnNmZXJJdGVtc0Nocm9taXVtLmNwcAppbmRleCA0MThiOGI1Li5jNjg0Y2NjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9t
aXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNm
ZXJJdGVtc0Nocm9taXVtLmNwcApAQCAtNDUsNjIgKzQ1LDEwIEBAIFBhc3NSZWZQdHI8RGF0YVRy
YW5zZmVySXRlbXNDaHJvbWl1bT4gRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6Y3JlYXRlKFBh
c3NSZWZQCiB9CiAKIERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06OkRhdGFUcmFuc2Zlckl0ZW1z
Q2hyb21pdW0oUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0KQotICAgIDogbV9vd25lcihvd25lcikKLSAgICAsIG1fY29udGV4dChjb250
ZXh0KQorICAgIDogRGF0YVRyYW5zZmVySXRlbXMob3duZXIsIGNvbnRleHQpCiB7CiB9CiAKLXVu
c2lnbmVkIGxvbmcgRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6bGVuZ3RoKCkgY29uc3QKLXsK
LSAgICBpZiAobV9vd25lci0+cG9saWN5KCkgPT0gQ2xpcGJvYXJkTnVtYikKLSAgICAgICAgcmV0
dXJuIDA7Ci0gICAgcmV0dXJuIG1faXRlbXMuc2l6ZSgpOwotfQotCi1QYXNzUmVmUHRyPERhdGFU
cmFuc2Zlckl0ZW0+IERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06Oml0ZW0odW5zaWduZWQgbG9u
ZyBpbmRleCkgY29uc3QKLXsKLSAgICBpZiAobV9vd25lci0+cG9saWN5KCkgPT0gQ2xpcGJvYXJk
TnVtYiB8fCBpbmRleCA+PSBsZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJu
IG1faXRlbXNbaW5kZXhdOwotfQotCi12b2lkIERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06OmRl
bGV0ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAg
aWYgKG1fb3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFdyaXRhYmxlKSB7Ci0gICAgICAgIGVj
ID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAo
aW5kZXggPj0gbGVuZ3RoKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1faXRlbXMucmVtb3Zl
KGluZGV4KTsKLX0KLQotdm9pZCBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjpjbGVhcigpCi17
Ci0gICAgaWYgKG1fb3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFdyaXRhYmxlKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBtX2l0ZW1zLmNsZWFyKCk7Ci19Ci0KLXZvaWQgRGF0YVRyYW5zZmVy
SXRlbXNDaHJvbWl1bTo6YWRkKGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBl
LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xp
cGJvYXJkV3JpdGFibGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIE9ubHkgb25lICdzdHJp
bmcnIGl0ZW0gd2l0aCBhIGdpdmVuIHR5cGUgaXMgYWxsb3dlZCBpbiB0aGUgY29sbGVjdGlvbi4K
LSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1faXRlbXMuc2l6ZSgpOyArK2kpIHsKLSAgICAg
ICAgaWYgKG1faXRlbXNbaV0tPnR5cGUoKSA9PSB0eXBlICYmIG1faXRlbXNbaV0tPmtpbmQoKSA9
PSBEYXRhVHJhbnNmZXJJdGVtOjpraW5kU3RyaW5nKSB7Ci0gICAgICAgICAgICBlYyA9IElOVkFM
SURfU1RBVEVfRVJSOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotCi0g
ICAgbV9pdGVtcy5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpjcmVhdGUobV9vd25l
ciwgbV9jb250ZXh0LCBkYXRhLCB0eXBlKSk7Ci19Ci0KIHZvaWQgRGF0YVRyYW5zZmVySXRlbXND
aHJvbWl1bTo6YWRkUGFzdGVib2FyZEl0ZW0oY29uc3QgU3RyaW5nJiB0eXBlKQogewogICAgIG1f
aXRlbXMuYXBwZW5kKERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6Y3JlYXRlRnJvbVBhc3RlYm9h
cmQobV9vd25lciwgbV9jb250ZXh0LCB0eXBlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmgKaW5k
ZXggNTFjNGZkYi4uZDA5OWEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uaApAQCAtNDksMjQg
KzQ5LDEyIEBAIGNsYXNzIERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0gOiBwdWJsaWMgRGF0YVRy
YW5zZmVySXRlbXMgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFUcmFuc2Zl
ckl0ZW1zQ2hyb21pdW0+IGNyZWF0ZShQYXNzUmVmUHRyPENsaXBib2FyZD4sIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqKTsKIAotICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBsZW5ndGgoKSBjb25z
dDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4gaXRlbSh1bnNpZ25l
ZCBsb25nIGluZGV4KSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlSXRlbSh1bnNpZ25l
ZCBsb25nIGluZGV4LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyKCk7
Ci0KLSAgICB2aXJ0dWFsIHZvaWQgYWRkKGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5n
JiB0eXBlLCBFeGNlcHRpb25Db2RlJik7Ci0KIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIENs
aXBib2FyZENocm9taXVtOwogCiAgICAgRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bShQYXNzUmVm
UHRyPENsaXBib2FyZD4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBhZGRQYXN0ZWJvYXJkSXRlbShjb25zdCBTdHJpbmcmIHR5cGUpOwotCi0gICAgUmVmUHRy
PENsaXBib2FyZD4gbV9vd25lcjsKLSAgICAvLyBJbmRpcmVjdGx5IG93bmVkIGJ5IG91ciBwYXJl
bnQuCi0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogbV9jb250ZXh0OwotICAgIFZlY3RvcjxS
ZWZQdHI8RGF0YVRyYW5zZmVySXRlbUNocm9taXVtPiA+IG1faXRlbXM7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0tIAoxLjcuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90594</attachid>
            <date>2011-04-21 14:00:04 -0700</date>
            <delta_ts>2011-04-21 14:19:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Move-complexity-from-DataTransferItemsChromium-and-D.patch</filename>
            <type>text/plain</type>
            <size>18538</size>
            <attacher name="Igor Trindade Oliveira">igor.oliveira</attacher>
            
              <data encoding="base64">RnJvbSA4ZGNlNzMxMzRjMjczMDBmODFlNTk0YzE5ZDA3YjI0YTdmMTRlNzE1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJZ29yIE9saXZlaXJhIDxpZ29yLm9saXZlaXJhQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFdlZCwgMjAgQXByIDIwMTEgMTE6NDc6MDIgLTA0MDAKU3ViamVjdDogW1BB
VENIXSBNb3ZlIGNvbXBsZXhpdHkgZnJvbSBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtIGFuZCBE
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0gZm9yIGJhc2UgY2xhc3MKCi0tLQogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDM3ICsrKysrKysKIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSAr
CiBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5jcHAgICAgICAgICAgICB8ICAg
MzEgKysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5oICAgICAgICAg
ICAgICB8ICAgMTggKysrLQogU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmNw
cCAgICAgICAgICAgfCAgMTAzICsrKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9k
b20vRGF0YVRyYW5zZmVySXRlbXMuaCAgICAgICAgICAgICB8ICAgMjIgKysrLQogLi4uL3BsYXRm
b3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5jcHAgfCAgIDM2ICsrKy0tLS0K
IC4uLi9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uaCAgIHwgICAg
NiAtCiAuLi4vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5jcHAgICAgICAgICB8
ICAgNTQgKy0tLS0tLS0tLS0KIC4uLi9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVt
c0Nocm9taXVtLmggIHwgICAxMiAtLS0KIDEwIGZpbGVzIGNoYW5nZWQsIDIxOSBpbnNlcnRpb25z
KCspLCAxMDEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUv
ZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmNwcAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhYjU3YWYzLi5jZDRkZWUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTEtMDQtMjEgIElnb3IgT2xpdmVpcmEg
IDxpZ29yLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBjb21wbGV4aXR5IGZyb20gRGF0YVRyYW5zZmVy
SXRlbXNDaHJvbWl1bSBhbmQgRGF0YVRyYW5zZmVySXRlbUNocm9taXVtIGZvciBiYXNlIGNsYXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTAyOAor
CisgICAgICAgIFRoZSBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtIGFuZCBEYXRhVHJhbnNmZXJJ
dGVtQ2hyb21pdW0gY29kZSBjYW4gYmUgcmV1c2VkIGJ5IG90aGVyIHBsYXRmb3Jtcy4KKyAgICAg
ICAgTW92aW5nIHRoZSBjb2RlIGZvciBiYXNlIGNsYXNzIHdlIGNhbiByZWR1Y2UgdGhlIGVmZm9y
dHMgdG8gc3VwcG9ydCBEYXRhVHJhbnNmZXJJdGVtcyAKKyAgICAgICAgZWxlbWVudCBpbiBkaWZm
ZXJlbnQgcGxhdGZvcm1zLgorCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICog
ZG9tL0RhdGFUcmFuc2Zlckl0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVy
SXRlbTo6RGF0YVRyYW5zZmVySXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJ
dGVtOjpvd25lcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtOjpraW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW06OnR5cGUpOgorICAgICAgICAqIGRv
bS9EYXRhVHJhbnNmZXJJdGVtLmg6CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5z
ZmVySXRlbXNDaHJvbWl1bS5jcHAuCisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVt
czo6RGF0YVRyYW5zZmVySXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRl
bXM6Omxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtczo6aXRlbSk6
CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtczo6ZGVsZXRlSXRlbSk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtczo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0YVRyYW5zZmVySXRlbXM6OmFkZCk6CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlckl0
ZW1zLmg6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUNocm9t
aXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OkRhdGFUcmFuc2Zlckl0
ZW1DaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06
OmdldEFzU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1
bTo6Z2V0QXNGaWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJ
dGVtQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJ
dGVtc0Nocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1zQ2hy
b21pdW06OkRhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0pOgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uaDoKKwogMjAxMS0wNC0xOSAgU3RlcGhl
biBXaGl0ZSAgPHNlbm9yYmxhbmNvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBLZW5uZXRoIFJ1c3NlbGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMDEwYmUwMC4uZjAyZDBjZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjQyNSw2ICsyNDI1LDcgQEAKICAgICAgICAgICAgICdkb20v
RE9NU3RyaW5nTWFwLmgnLAogICAgICAgICAgICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVtLmNwcCcs
CiAgICAgICAgICAgICAnZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaCcsCisgICAgICAgICAgICAnZG9t
L0RhdGFUcmFuc2Zlckl0ZW1zLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0RhdGFUcmFuc2Zlckl0
ZW1zLmgnLAogICAgICAgICAgICAgJ2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcCcsCiAgICAg
ICAgICAgICAnZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0
YVRyYW5zZmVySXRlbS5jcHAKaW5kZXggOGVlYzg2OS4uNzg3MzFkNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EYXRhVHJhbnNmZXJJdGVtLmNwcApAQCAtMzEsNiArMzEsOCBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW0uaCIKIAorI2luY2x1ZGUgIkNsaXBi
b2FyZC5oIgorCiAjaWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTM4LDYgKzQwLDM1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNvbnN0IGNo
YXIgRGF0YVRyYW5zZmVySXRlbTo6a2luZFN0cmluZ1tdID0gInN0cmluZyI7CiBjb25zdCBjaGFy
IERhdGFUcmFuc2Zlckl0ZW06OmtpbmRGaWxlW10gPSAiZmlsZSI7CiAKK0RhdGFUcmFuc2Zlckl0
ZW06OkRhdGFUcmFuc2Zlckl0ZW0oUmVmUHRyPENsaXBib2FyZD4gb3duZXIsIGNvbnN0IFN0cmlu
ZyYga2luZCwgY29uc3QgU3RyaW5nJiB0eXBlKQorICAgIDogbV9vd25lcihvd25lcikKKyAgICAs
IG1fa2luZChraW5kKQorICAgICwgbV90eXBlKHR5cGUpCit7Cit9CisKK0NsaXBib2FyZCogRGF0
YVRyYW5zZmVySXRlbTo6b3duZXIoKQoreworICAgIHJldHVybiBtX293bmVyLmdldCgpOworfQor
CitTdHJpbmcgRGF0YVRyYW5zZmVySXRlbTo6a2luZCgpIGNvbnN0Cit7CisgICAgaWYgKG1fb3du
ZXItPnBvbGljeSgpID09IENsaXBib2FyZE51bWIpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsK
KworICAgIHJldHVybiBtX2tpbmQ7Cit9CisKK1N0cmluZyBEYXRhVHJhbnNmZXJJdGVtOjp0eXBl
KCkgY29uc3QKK3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5KCkgPT0gQ2xpcGJvYXJkTnVtYikK
KyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisgICAgcmV0dXJuIG1fdHlwZTsKK30KKworCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoREFUQV9UUkFOU0ZFUl9J
VEVNUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5oCmluZGV4IGQ2NDhjNTYuLmQ0
YTFlOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaApAQCAtMzMsNiArMzMs
OCBAQAogCiAjaWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCiAKKyNpbmNsdWRlICJDbGlw
Ym9hcmQuaCIKKwogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KIApAQCAtNDAsMTkgKzQyLDMxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQmxvYjsKIGNsYXNzIFN0cmluZ0NhbGxiYWNrOworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDsKIAogY2xhc3MgRGF0YVRyYW5zZmVySXRlbSA6IHB1YmxpYyBSZWZDb3VudGVkPERhdGFU
cmFuc2Zlckl0ZW0+IHsKIHB1YmxpYzoKICAgICB+RGF0YVRyYW5zZmVySXRlbSgpIHt9CiAKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiBjcmVhdGUoUGFzc1JlZlB0cjxD
bGlwYm9hcmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBk
YXRhLCBjb25zdCBTdHJpbmcmIHR5cGUpOworCiAgICAgc3RhdGljIGNvbnN0IGNoYXIga2luZFN0
cmluZ1tdOwogICAgIHN0YXRpYyBjb25zdCBjaGFyIGtpbmRGaWxlW107CiAKLSAgICB2aXJ0dWFs
IFN0cmluZyBraW5kKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHR5cGUoKSBjb25z
dCA9IDA7CisgICAgU3RyaW5nIGtpbmQoKSBjb25zdDsKKyAgICBTdHJpbmcgdHlwZSgpIGNvbnN0
OwogCiAgICAgdmlydHVhbCB2b2lkIGdldEFzU3RyaW5nKFBhc3NSZWZQdHI8U3RyaW5nQ2FsbGJh
Y2s+KSA9IDA7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEJsb2I+IGdldEFzRmlsZSgpID0gMDsK
KworcHJvdGVjdGVkOgorICAgIERhdGFUcmFuc2Zlckl0ZW0oUmVmUHRyPENsaXBib2FyZD4gb3du
ZXIsIGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiB0eXBlKTsKKyAgICBDbGlwYm9h
cmQqIG93bmVyKCk7CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPENsaXBib2FyZD4gbV9vd25lcjsK
KyAgICBTdHJpbmcgbV9raW5kOworICAgIFN0cmluZyBtX3R5cGU7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVy
SXRlbXMuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZWU2ZWQyCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmNwcApAQCAtMCwwICsxLDEw
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtcy5oIgor
CisjaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbS5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUu
aCIKKworI2lmIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0RhdGFUcmFuc2Zlckl0ZW1zOjpEYXRhVHJhbnNmZXJJdGVtcyhSZWZQdHI8Q2xpcGJv
YXJkPiBjbGlwYm9hcmQsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBt
X293bmVyKGNsaXBib2FyZCkKKyAgICAsIG1fY29udGV4dChjb250ZXh0KQoreworfQorCit1bnNp
Z25lZCBsb25nIERhdGFUcmFuc2Zlckl0ZW1zOjpsZW5ndGgoKQoreworICAgIGlmIChtX293bmVy
LT5wb2xpY3koKSA9PSBDbGlwYm9hcmROdW1iKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJl
dHVybiBtX2l0ZW1zLnNpemUoKTsKK30KKworUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiBE
YXRhVHJhbnNmZXJJdGVtczo6aXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KQoreworICAgIGlmICht
X293bmVyLT5wb2xpY3koKSA9PSBDbGlwYm9hcmROdW1iIHx8IGluZGV4ID49IGxlbmd0aCgpKQor
ICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBtX2l0ZW1zW2luZGV4XTsKK30KKwordm9p
ZCBEYXRhVHJhbnNmZXJJdGVtczo6ZGVsZXRlSXRlbSh1bnNpZ25lZCBsb25nIGluZGV4LCBFeGNl
cHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJvYXJk
V3JpdGFibGUpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGlmIChpbmRleCA+PSBsZW5ndGgoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9pdGVtcy5yZW1vdmUoaW5kZXgpOworfQorCit2b2lkIERhdGFUcmFuc2Zlckl0
ZW1zOjpjbGVhcigpCit7CisgICAgaWYgKG1fb3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFdy
aXRhYmxlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2l0ZW1zLmNsZWFyKCk7CisKK30KKwor
dm9pZCBEYXRhVHJhbnNmZXJJdGVtczo6YWRkKGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3Ry
aW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5
KCkgIT0gQ2xpcGJvYXJkV3JpdGFibGUpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIE9ubHkg
b25lICdzdHJpbmcnIGl0ZW0gd2l0aCBhIGdpdmVuIHR5cGUgaXMgYWxsb3dlZCBpbiB0aGUgY29s
bGVjdGlvbi4KKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1faXRlbXMuc2l6ZSgpOyArK2kp
IHsKKyAgICAgICAgaWYgKG1faXRlbXNbaV0tPnR5cGUoKSA9PSB0eXBlICYmIG1faXRlbXNbaV0t
PmtpbmQoKSA9PSBEYXRhVHJhbnNmZXJJdGVtOjpraW5kU3RyaW5nKSB7CisgICAgICAgICAgICBl
YyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgfQorCisgICAgbV9pdGVtcy5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKG1fb3du
ZXIsIG1fY29udGV4dCwgZGF0YSwgdHlwZSkpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaAppbmRleCAwODczMzg0Li5lYTg3M2MyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaApAQCAtMzMsMTIgKzMzLDEzIEBACiAKICNp
ZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKIAorI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0
ZW0uaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRGF0YVRyYW5zZmVySXRlbTsKK2Ns
YXNzIENsaXBib2FyZDsKIAogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIApAQCAtNDYsMTIg
KzQ3LDIxIEBAIGNsYXNzIERhdGFUcmFuc2Zlckl0ZW1zIDogcHVibGljIFJlZkNvdW50ZWQ8RGF0
YVRyYW5zZmVySXRlbXM+IHsKIHB1YmxpYzoKICAgICB+RGF0YVRyYW5zZmVySXRlbXMoKSB7fQog
Ci0gICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4gaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4
KSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZUl0ZW0odW5zaWduZWQgbG9uZyBp
bmRleCwgRXhjZXB0aW9uQ29kZSYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoKSA9IDA7
CisgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGxlbmd0aCgpOworICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgIHZp
cnR1YWwgdm9pZCBkZWxldGVJdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgsIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoKTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkKGNvbnN0
IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJik7CisKK3By
b3RlY3RlZDoKKyAgICBEYXRhVHJhbnNmZXJJdGVtcyhSZWZQdHI8Q2xpcGJvYXJkPiwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCopOworCitwcm90ZWN0ZWQ6CisgICAgUmVmUHRyPENsaXBib2FyZD4g
bV9vd25lcjsKKyAgICAvLyBJbmRpcmVjdGx5IG93bmVkIGJ5IG91ciBwYXJlbnQuCisgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogbV9jb250ZXh0OworICAgIFZlY3RvcjxSZWZQdHI8RGF0YVRy
YW5zZmVySXRlbT4gPiBtX2l0ZW1zOwogCi0gICAgdmlydHVhbCB2b2lkIGFkZChjb25zdCBTdHJp
bmcmIGRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSwgRXhjZXB0aW9uQ29kZSYpID0gMDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uY3BwCmluZGV4IDI0
YjQ5OGUuLjljZDJhYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmNwcApAQCAtNTcsMzQgKzU3
LDI2IEBAIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUNocm9taXVtPiBEYXRhVHJhbnNmZXJJ
dGVtQ2hyb21pdW06OmNyZWF0ZShQYXNzUmVmUHRyCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBE
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0ob3duZXIsIGNvbnRleHQsIEludGVybmFsU291cmNlLCBE
YXRhVHJhbnNmZXJJdGVtOjpraW5kU3RyaW5nLCB0eXBlLCBkYXRhKSk7CiB9CiAKK1Bhc3NSZWZQ
dHI8RGF0YVRyYW5zZmVySXRlbT4gRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKFBhc3NSZWZQdHI8
Q2xpcGJvYXJkPiBvd25lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJp
bmcmIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgcmV0dXJuIERhdGFUcmFuc2Zlckl0
ZW1DaHJvbWl1bTo6Y3JlYXRlKG93bmVyLCBjb250ZXh0LCBkYXRhLCB0eXBlKTsKK30KKwogRGF0
YVRyYW5zZmVySXRlbUNocm9taXVtOjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0oUGFzc1JlZlB0
cjxDbGlwYm9hcmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBEYXRh
U291cmNlIHNvdXJjZSwgY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNv
bnN0IFN0cmluZyYgZGF0YSkKLSAgICA6IG1fb3duZXIob3duZXIpCisgICAgOiBEYXRhVHJhbnNm
ZXJJdGVtKG93bmVyLCBraW5kLCB0eXBlKQogICAgICwgbV9jb250ZXh0KGNvbnRleHQpCiAgICAg
LCBtX3NvdXJjZShzb3VyY2UpCi0gICAgLCBtX2tpbmQoa2luZCkKLSAgICAsIG1fdHlwZSh0eXBl
KQogICAgICwgbV9kYXRhKGRhdGEpCiB7CiB9CiAKLVN0cmluZyBEYXRhVHJhbnNmZXJJdGVtQ2hy
b21pdW06OmtpbmQoKSBjb25zdAotewotICAgIGlmIChtX293bmVyLT5wb2xpY3koKSA9PSBDbGlw
Ym9hcmROdW1iKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0gICAgcmV0dXJuIG1fa2luZDsK
LX0KLQotU3RyaW5nIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6dHlwZSgpIGNvbnN0Ci17Ci0g
ICAgaWYgKG1fb3duZXItPnBvbGljeSgpID09IENsaXBib2FyZE51bWIpCi0gICAgICAgIHJldHVy
biBTdHJpbmcoKTsKLSAgICByZXR1cm4gbV90eXBlOwotfQotCiB2b2lkIERhdGFUcmFuc2Zlckl0
ZW1DaHJvbWl1bTo6Z2V0QXNTdHJpbmcoUGFzc1JlZlB0cjxTdHJpbmdDYWxsYmFjaz4gY2FsbGJh
Y2spCiB7Ci0gICAgaWYgKChtX293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRSZWFkYWJsZSAm
JiBtX293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0YWJsZSkKLSAgICAgICAgfHwgbV9r
aW5kICE9IGtpbmRTdHJpbmcpCisgICAgaWYgKChvd25lcigpLT5wb2xpY3koKSAhPSBDbGlwYm9h
cmRSZWFkYWJsZSAmJiBvd25lcigpLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0YWJsZSkKKyAg
ICAgICAgfHwga2luZCgpICE9IGtpbmRTdHJpbmcpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAo
bV9zb3VyY2UgPT0gSW50ZXJuYWxTb3VyY2UpIHsKICAgICAgICAgY2FsbGJhY2stPnNjaGVkdWxl
Q2FsbGJhY2sobV9jb250ZXh0LCBtX2RhdGEpOwpAQCAtOTMsMTEgKzg1LDExIEBAIHZvaWQgRGF0
YVRyYW5zZmVySXRlbUNocm9taXVtOjpnZXRBc1N0cmluZyhQYXNzUmVmUHRyPFN0cmluZ0NhbGxi
YWNrPiBjYWxsYmFjaykKIAogICAgIEFTU0VSVChtX3NvdXJjZSA9PSBQYXN0ZWJvYXJkU291cmNl
KTsKICAgICAvLyBUaGlzIGlzIHVnbHkgYnV0IHRoZXJlJ3Mgbm8gcmVhbCBhbHRlcm5hdGl2ZS4K
LSAgICBpZiAobV90eXBlID09IG1pbWVUeXBlVGV4dFBsYWluKSB7CisgICAgaWYgKHR5cGUoKSA9
PSBtaW1lVHlwZVRleHRQbGFpbikgewogICAgICAgICBjYWxsYmFjay0+c2NoZWR1bGVDYWxsYmFj
ayhtX2NvbnRleHQsIFBsYXRmb3JtQnJpZGdlOjpjbGlwYm9hcmRSZWFkUGxhaW5UZXh0KFBhc3Rl
Ym9hcmRQcml2YXRlOjpTdGFuZGFyZEJ1ZmZlcikpOwogICAgICAgICByZXR1cm47CiAgICAgfQot
ICAgIGlmIChtX3R5cGUgPT0gbWltZVR5cGVUZXh0SFRNTCkgeworICAgIGlmICh0eXBlKCkgPT0g
bWltZVR5cGVUZXh0SFRNTCkgewogICAgICAgICBTdHJpbmcgaHRtbDsKICAgICAgICAgS1VSTCBp
Z25vcmVkU291cmNlVVJMOwogICAgICAgICBQbGF0Zm9ybUJyaWRnZTo6Y2xpcGJvYXJkUmVhZEhU
TUwoUGFzdGVib2FyZFByaXZhdGU6OlN0YW5kYXJkQnVmZmVyLCAmaHRtbCwgJmlnbm9yZWRTb3Vy
Y2VVUkwpOwpAQCAtMTEzLDcgKzEwNSw3IEBAIFBhc3NSZWZQdHI8QmxvYj4gRGF0YVRyYW5zZmVy
SXRlbUNocm9taXVtOjpnZXRBc0ZpbGUoKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIEFTU0VS
VChtX3NvdXJjZSA9PSBQYXN0ZWJvYXJkU291cmNlKTsKLSAgICBpZiAobV90eXBlID09IG1pbWVU
eXBlSW1hZ2VQbmcpIHsKKyAgICBpZiAodHlwZSgpID09IG1pbWVUeXBlSW1hZ2VQbmcpIHsKICAg
ICAgICAgLy8gRklYTUU6IFRoaXMgaXMgcHJldHR5IGluZWZmaWNpZW50LiBXZSBjb3B5IHRoZSBk
YXRhIGZyb20gdGhlIGJyb3dzZXIKICAgICAgICAgLy8gdG8gdGhlIHJlbmRlcmVyLiBXZSB0aGVu
IHBsYWNlIGl0IGluIGEgYmxvYiBpbiBXZWJLaXQsIHdoaWNoCiAgICAgICAgIC8vIHJlZ2lzdGVy
cyBpdCBhbmQgY29waWVzIGl0ICpiYWNrKiB0byB0aGUgYnJvd3Nlci4gV2hlbiBhIGNvbnN1bWVy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNm
ZXJJdGVtQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFU
cmFuc2Zlckl0ZW1DaHJvbWl1bS5oCmluZGV4IDY2YmU5NmUuLjE0NGU0MGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1
bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0
ZW1DaHJvbWl1bS5oCkBAIC00Nyw5ICs0Nyw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0+IGNyZWF0ZUZyb21QYXN0ZWJvYXJkKFBhc3NS
ZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0
cmluZyYgdHlwZSk7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUNocm9t
aXVtPiBjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUpOwogCi0gICAg
dmlydHVhbCBTdHJpbmcga2luZCgpIGNvbnN0OwotICAgIHZpcnR1YWwgU3RyaW5nIHR5cGUoKSBj
b25zdDsKLQogICAgIHZpcnR1YWwgdm9pZCBnZXRBc1N0cmluZyhQYXNzUmVmUHRyPFN0cmluZ0Nh
bGxiYWNrPik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEJsb2I+IGdldEFzRmlsZSgpOwogCkBA
IC02MSwxMSArNTgsOCBAQCBwcml2YXRlOgogCiAgICAgRGF0YVRyYW5zZmVySXRlbUNocm9taXVt
KFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIERh
dGFTb3VyY2UsIGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBT
dHJpbmcmIGRhdGEpOwogCi0gICAgY29uc3QgUmVmUHRyPENsaXBib2FyZD4gbV9vd25lcjsKICAg
ICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX2NvbnRleHQ7CiAgICAgY29uc3QgRGF0YVNvdXJj
ZSBtX3NvdXJjZTsKLSAgICBjb25zdCBTdHJpbmcgbV9raW5kOwotICAgIGNvbnN0IFN0cmluZyBt
X3R5cGU7CiAgICAgY29uc3QgU3RyaW5nIG1fZGF0YTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJv
bWl1bS5jcHAKaW5kZXggNDE4YjhiNS4uYzY4NGNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1
bS5jcHAKQEAgLTQ1LDYyICs0NSwxMCBAQCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1zQ2hy
b21pdW0+IERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06OmNyZWF0ZShQYXNzUmVmUAogfQogCiBE
YXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjpEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtKFBhc3NS
ZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkK
LSAgICA6IG1fb3duZXIob3duZXIpCi0gICAgLCBtX2NvbnRleHQoY29udGV4dCkKKyAgICA6IERh
dGFUcmFuc2Zlckl0ZW1zKG93bmVyLCBjb250ZXh0KQogewogfQogCi11bnNpZ25lZCBsb25nIERh
dGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06Omxlbmd0aCgpIGNvbnN0Ci17Ci0gICAgaWYgKG1fb3du
ZXItPnBvbGljeSgpID09IENsaXBib2FyZE51bWIpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJl
dHVybiBtX2l0ZW1zLnNpemUoKTsKLX0KLQotUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiBE
YXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjppdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpIGNvbnN0
Ci17Ci0gICAgaWYgKG1fb3duZXItPnBvbGljeSgpID09IENsaXBib2FyZE51bWIgfHwgaW5kZXgg
Pj0gbGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBtX2l0ZW1zW2luZGV4
XTsKLX0KLQotdm9pZCBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjpkZWxldGVJdGVtKHVuc2ln
bmVkIGxvbmcgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmIChtX293bmVyLT5w
b2xpY3koKSAhPSBDbGlwYm9hcmRXcml0YWJsZSkgewotICAgICAgICBlYyA9IElOVkFMSURfU1RB
VEVfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGluZGV4ID49IGxlbmd0
aCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2l0ZW1zLnJlbW92ZShpbmRleCk7Ci19Ci0K
LXZvaWQgRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6Y2xlYXIoKQotewotICAgIGlmIChtX293
bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0YWJsZSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgbV9pdGVtcy5jbGVhcigpOwotfQotCi12b2lkIERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06
OmFkZChjb25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCi17Ci0gICAgaWYgKG1fb3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFdyaXRhYmxl
KQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBPbmx5IG9uZSAnc3RyaW5nJyBpdGVtIHdpdGgg
YSBnaXZlbiB0eXBlIGlzIGFsbG93ZWQgaW4gdGhlIGNvbGxlY3Rpb24uCi0gICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBtX2l0ZW1zLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGlmIChtX2l0ZW1z
W2ldLT50eXBlKCkgPT0gdHlwZSAmJiBtX2l0ZW1zW2ldLT5raW5kKCkgPT0gRGF0YVRyYW5zZmVy
SXRlbTo6a2luZFN0cmluZykgewotICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIG1faXRlbXMuYXBw
ZW5kKERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6Y3JlYXRlKG1fb3duZXIsIG1fY29udGV4dCwg
ZGF0YSwgdHlwZSkpOwotfQotCiB2b2lkIERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06OmFkZFBh
c3RlYm9hcmRJdGVtKGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKICAgICBtX2l0ZW1zLmFwcGVuZChE
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmNyZWF0ZUZyb21QYXN0ZWJvYXJkKG1fb3duZXIsIG1f
Y29udGV4dCwgdHlwZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5oCmluZGV4IDUxYzRmZGIuLmQw
OTlhMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFU
cmFuc2Zlckl0ZW1zQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmgKQEAgLTQ5LDI0ICs0OSwxMiBAQCBjbGFz
cyBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtIDogcHVibGljIERhdGFUcmFuc2Zlckl0ZW1zIHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVt
PiBjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7
CiAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKCkgY29uc3Q7Ci0gICAgdmlydHVh
bCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW0+IGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCkg
Y29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCwg
RXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdm9pZCBjbGVhcigpOwotCi0gICAgdmlydHVh
bCB2b2lkIGFkZChjb25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSwgRXhjZXB0
aW9uQ29kZSYpOwotCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBDbGlwYm9hcmRDaHJvbWl1
bTsKIAogICAgIERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0oUGFzc1JlZlB0cjxDbGlwYm9hcmQ+
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRkUGFzdGVi
b2FyZEl0ZW0oY29uc3QgU3RyaW5nJiB0eXBlKTsKLQotICAgIFJlZlB0cjxDbGlwYm9hcmQ+IG1f
b3duZXI7Ci0gICAgLy8gSW5kaXJlY3RseSBvd25lZCBieSBvdXIgcGFyZW50LgotICAgIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIG1fY29udGV4dDsKLSAgICBWZWN0b3I8UmVmUHRyPERhdGFUcmFu
c2Zlckl0ZW1DaHJvbWl1bT4gPiBtX2l0ZW1zOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQotLSAKMS43LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90600</attachid>
            <date>2011-04-21 14:19:46 -0700</date>
            <delta_ts>2011-04-25 13:46:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Move-complexity-from-DataTransferItemsChromium-and-D.patch</filename>
            <type>text/plain</type>
            <size>18556</size>
            <attacher name="Igor Trindade Oliveira">igor.oliveira</attacher>
            
              <data encoding="base64">RnJvbSBhMGZhM2U2NmE0MWYyMWI4YmU5MzBjNTk2MzE5MzM0ZTc2NWJiMmUyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJZ29yIE9saXZlaXJhIDxpZ29yLm9saXZlaXJhQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFdlZCwgMjAgQXByIDIwMTEgMTE6NDc6MDIgLTA0MDAKU3ViamVjdDogW1BB
VENIXSBNb3ZlIGNvbXBsZXhpdHkgZnJvbSBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtIGFuZCBE
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0gZm9yIGJhc2UgY2xhc3MKCi0tLQogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDM3ICsrKysrKysKIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSAr
CiBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5jcHAgICAgICAgICAgICB8ICAg
MzEgKysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5oICAgICAgICAg
ICAgICB8ICAgMTggKysrLQogU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmNw
cCAgICAgICAgICAgfCAgMTAzICsrKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9k
b20vRGF0YVRyYW5zZmVySXRlbXMuaCAgICAgICAgICAgICB8ICAgMjIgKysrLQogLi4uL3BsYXRm
b3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5jcHAgfCAgIDM2ICsrKy0tLS0K
IC4uLi9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uaCAgIHwgICAg
NiAtCiAuLi4vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5jcHAgICAgICAgICB8
ICAgNTQgKy0tLS0tLS0tLS0KIC4uLi9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVt
c0Nocm9taXVtLmggIHwgICAxMiAtLS0KIDEwIGZpbGVzIGNoYW5nZWQsIDIxOSBpbnNlcnRpb25z
KCspLCAxMDEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUv
ZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmNwcAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhYjU3YWYzLi5jZDRkZWUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTEtMDQtMjEgIElnb3IgT2xpdmVpcmEg
IDxpZ29yLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBjb21wbGV4aXR5IGZyb20gRGF0YVRyYW5zZmVy
SXRlbXNDaHJvbWl1bSBhbmQgRGF0YVRyYW5zZmVySXRlbUNocm9taXVtIGZvciBiYXNlIGNsYXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTAyOAor
CisgICAgICAgIFRoZSBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtIGFuZCBEYXRhVHJhbnNmZXJJ
dGVtQ2hyb21pdW0gY29kZSBjYW4gYmUgcmV1c2VkIGJ5IG90aGVyIHBsYXRmb3Jtcy4KKyAgICAg
ICAgTW92aW5nIHRoZSBjb2RlIGZvciBiYXNlIGNsYXNzIHdlIGNhbiByZWR1Y2UgdGhlIGVmZm9y
dHMgdG8gc3VwcG9ydCBEYXRhVHJhbnNmZXJJdGVtcyAKKyAgICAgICAgZWxlbWVudCBpbiBkaWZm
ZXJlbnQgcGxhdGZvcm1zLgorCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICog
ZG9tL0RhdGFUcmFuc2Zlckl0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVy
SXRlbTo6RGF0YVRyYW5zZmVySXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJ
dGVtOjpvd25lcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtOjpraW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW06OnR5cGUpOgorICAgICAgICAqIGRv
bS9EYXRhVHJhbnNmZXJJdGVtLmg6CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5z
ZmVySXRlbXNDaHJvbWl1bS5jcHAuCisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVt
czo6RGF0YVRyYW5zZmVySXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRl
bXM6Omxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtczo6aXRlbSk6
CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtczo6ZGVsZXRlSXRlbSk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtczo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0YVRyYW5zZmVySXRlbXM6OmFkZCk6CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlckl0
ZW1zLmg6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUNocm9t
aXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OkRhdGFUcmFuc2Zlckl0
ZW1DaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06
OmdldEFzU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1
bTo6Z2V0QXNGaWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJ
dGVtQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJ
dGVtc0Nocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1zQ2hy
b21pdW06OkRhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0pOgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uaDoKKwogMjAxMS0wNC0xOSAgU3RlcGhl
biBXaGl0ZSAgPHNlbm9yYmxhbmNvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBLZW5uZXRoIFJ1c3NlbGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMDEwYmUwMC4uZjAyZDBjZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjQyNSw2ICsyNDI1LDcgQEAKICAgICAgICAgICAgICdkb20v
RE9NU3RyaW5nTWFwLmgnLAogICAgICAgICAgICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVtLmNwcCcs
CiAgICAgICAgICAgICAnZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaCcsCisgICAgICAgICAgICAnZG9t
L0RhdGFUcmFuc2Zlckl0ZW1zLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0RhdGFUcmFuc2Zlckl0
ZW1zLmgnLAogICAgICAgICAgICAgJ2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcCcsCiAgICAg
ICAgICAgICAnZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0
YVRyYW5zZmVySXRlbS5jcHAKaW5kZXggOGVlYzg2OS4uNzg3MzFkNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EYXRhVHJhbnNmZXJJdGVtLmNwcApAQCAtMzEsNiArMzEsOCBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW0uaCIKIAorI2luY2x1ZGUgIkNsaXBi
b2FyZC5oIgorCiAjaWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTM4LDYgKzQwLDM1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNvbnN0IGNo
YXIgRGF0YVRyYW5zZmVySXRlbTo6a2luZFN0cmluZ1tdID0gInN0cmluZyI7CiBjb25zdCBjaGFy
IERhdGFUcmFuc2Zlckl0ZW06OmtpbmRGaWxlW10gPSAiZmlsZSI7CiAKK0RhdGFUcmFuc2Zlckl0
ZW06OkRhdGFUcmFuc2Zlckl0ZW0oUmVmUHRyPENsaXBib2FyZD4gb3duZXIsIGNvbnN0IFN0cmlu
ZyYga2luZCwgY29uc3QgU3RyaW5nJiB0eXBlKQorICAgIDogbV9vd25lcihvd25lcikKKyAgICAs
IG1fa2luZChraW5kKQorICAgICwgbV90eXBlKHR5cGUpCit7Cit9CisKK0NsaXBib2FyZCogRGF0
YVRyYW5zZmVySXRlbTo6b3duZXIoKQoreworICAgIHJldHVybiBtX293bmVyLmdldCgpOworfQor
CitTdHJpbmcgRGF0YVRyYW5zZmVySXRlbTo6a2luZCgpIGNvbnN0Cit7CisgICAgaWYgKG1fb3du
ZXItPnBvbGljeSgpID09IENsaXBib2FyZE51bWIpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsK
KworICAgIHJldHVybiBtX2tpbmQ7Cit9CisKK1N0cmluZyBEYXRhVHJhbnNmZXJJdGVtOjp0eXBl
KCkgY29uc3QKK3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5KCkgPT0gQ2xpcGJvYXJkTnVtYikK
KyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisgICAgcmV0dXJuIG1fdHlwZTsKK30KKworCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoREFUQV9UUkFOU0ZFUl9J
VEVNUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5oCmluZGV4IGQ2NDhjNTYuLmRj
ZWNkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaApAQCAtMzMsNiArMzMs
OCBAQAogCiAjaWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCiAKKyNpbmNsdWRlICJDbGlw
Ym9hcmQuaCIKKwogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KIApAQCAtNDAsMTkgKzQyLDMxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQmxvYjsKIGNsYXNzIFN0cmluZ0NhbGxiYWNrOworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDsKIAogY2xhc3MgRGF0YVRyYW5zZmVySXRlbSA6IHB1YmxpYyBSZWZDb3VudGVkPERhdGFU
cmFuc2Zlckl0ZW0+IHsKIHB1YmxpYzoKICAgICB+RGF0YVRyYW5zZmVySXRlbSgpIHt9CiAKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiBjcmVhdGUoUGFzc1JlZlB0cjxD
bGlwYm9hcmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBk
YXRhLCBjb25zdCBTdHJpbmcmIHR5cGUpOworCiAgICAgc3RhdGljIGNvbnN0IGNoYXIga2luZFN0
cmluZ1tdOwogICAgIHN0YXRpYyBjb25zdCBjaGFyIGtpbmRGaWxlW107CiAKLSAgICB2aXJ0dWFs
IFN0cmluZyBraW5kKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHR5cGUoKSBjb25z
dCA9IDA7CisgICAgU3RyaW5nIGtpbmQoKSBjb25zdDsKKyAgICBTdHJpbmcgdHlwZSgpIGNvbnN0
OwogCiAgICAgdmlydHVhbCB2b2lkIGdldEFzU3RyaW5nKFBhc3NSZWZQdHI8U3RyaW5nQ2FsbGJh
Y2s+KSA9IDA7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEJsb2I+IGdldEFzRmlsZSgpID0gMDsK
KworcHJvdGVjdGVkOgorICAgIERhdGFUcmFuc2Zlckl0ZW0oUmVmUHRyPENsaXBib2FyZD4gb3du
ZXIsIGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiB0eXBlKTsKKyAgICBDbGlwYm9h
cmQqIG93bmVyKCk7CisKK3ByaXZhdGU6CisgICAgY29uc3QgUmVmUHRyPENsaXBib2FyZD4gbV9v
d25lcjsKKyAgICBjb25zdCBTdHJpbmcgbV9raW5kOworICAgIGNvbnN0IFN0cmluZyBtX3R5cGU7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFu
c2Zlckl0ZW1zLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZWU2ZWQy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1z
LmNwcApAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEYXRh
VHJhbnNmZXJJdGVtcy5oIgorCisjaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbS5oIgorI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKworI2lmIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RhdGFUcmFuc2Zlckl0ZW1zOjpEYXRhVHJhbnNmZXJJ
dGVtcyhSZWZQdHI8Q2xpcGJvYXJkPiBjbGlwYm9hcmQsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQpCisgICAgOiBtX293bmVyKGNsaXBib2FyZCkKKyAgICAsIG1fY29udGV4dChjb250
ZXh0KQoreworfQorCit1bnNpZ25lZCBsb25nIERhdGFUcmFuc2Zlckl0ZW1zOjpsZW5ndGgoKQor
eworICAgIGlmIChtX293bmVyLT5wb2xpY3koKSA9PSBDbGlwYm9hcmROdW1iKQorICAgICAgICBy
ZXR1cm4gMDsKKworICAgIHJldHVybiBtX2l0ZW1zLnNpemUoKTsKK30KKworUGFzc1JlZlB0cjxE
YXRhVHJhbnNmZXJJdGVtPiBEYXRhVHJhbnNmZXJJdGVtczo6aXRlbSh1bnNpZ25lZCBsb25nIGlu
ZGV4KQoreworICAgIGlmIChtX293bmVyLT5wb2xpY3koKSA9PSBDbGlwYm9hcmROdW1iIHx8IGlu
ZGV4ID49IGxlbmd0aCgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBtX2l0ZW1z
W2luZGV4XTsKK30KKwordm9pZCBEYXRhVHJhbnNmZXJJdGVtczo6ZGVsZXRlSXRlbSh1bnNpZ25l
ZCBsb25nIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAobV9vd25lci0+cG9s
aWN5KCkgIT0gQ2xpcGJvYXJkV3JpdGFibGUpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRF
X0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChpbmRleCA+PSBsZW5ndGgo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9pdGVtcy5yZW1vdmUoaW5kZXgpOworfQorCit2
b2lkIERhdGFUcmFuc2Zlckl0ZW1zOjpjbGVhcigpCit7CisgICAgaWYgKG1fb3duZXItPnBvbGlj
eSgpICE9IENsaXBib2FyZFdyaXRhYmxlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2l0ZW1z
LmNsZWFyKCk7CisKK30KKwordm9pZCBEYXRhVHJhbnNmZXJJdGVtczo6YWRkKGNvbnN0IFN0cmlu
ZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBp
ZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJvYXJkV3JpdGFibGUpCisgICAgICAgIHJldHVy
bjsKKworICAgIC8vIE9ubHkgb25lICdzdHJpbmcnIGl0ZW0gd2l0aCBhIGdpdmVuIHR5cGUgaXMg
YWxsb3dlZCBpbiB0aGUgY29sbGVjdGlvbi4KKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1f
aXRlbXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKG1faXRlbXNbaV0tPnR5cGUoKSA9PSB0
eXBlICYmIG1faXRlbXNbaV0tPmtpbmQoKSA9PSBEYXRhVHJhbnNmZXJJdGVtOjpraW5kU3RyaW5n
KSB7CisgICAgICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgbV9pdGVtcy5hcHBlbmQoRGF0YVRyYW5zZmVy
SXRlbTo6Y3JlYXRlKG1fb3duZXIsIG1fY29udGV4dCwgZGF0YSwgdHlwZSkpOworfQorCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1z
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaAppbmRleCAwODczMzg0
Li5lYTg3M2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRl
bXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaApAQCAtMzMs
MTIgKzMzLDEzIEBACiAKICNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKIAorI2luY2x1
ZGUgIkRhdGFUcmFuc2Zlckl0ZW0uaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRGF0
YVRyYW5zZmVySXRlbTsKK2NsYXNzIENsaXBib2FyZDsKIAogdHlwZWRlZiBpbnQgRXhjZXB0aW9u
Q29kZTsKIApAQCAtNDYsMTIgKzQ3LDIxIEBAIGNsYXNzIERhdGFUcmFuc2Zlckl0ZW1zIDogcHVi
bGljIFJlZkNvdW50ZWQ8RGF0YVRyYW5zZmVySXRlbXM+IHsKIHB1YmxpYzoKICAgICB+RGF0YVRy
YW5zZmVySXRlbXMoKSB7fQogCi0gICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNv
bnN0ID0gMDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4gaXRlbSh1
bnNpZ25lZCBsb25nIGluZGV4KSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZUl0
ZW0odW5zaWduZWQgbG9uZyBpbmRleCwgRXhjZXB0aW9uQ29kZSYpID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgY2xlYXIoKSA9IDA7CisgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGxlbmd0aCgpOwor
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiBpdGVtKHVuc2lnbmVkIGxv
bmcgaW5kZXgpOworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVJdGVtKHVuc2lnbmVkIGxvbmcgaW5k
ZXgsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgYWRkKGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNl
cHRpb25Db2RlJik7CisKK3Byb3RlY3RlZDoKKyAgICBEYXRhVHJhbnNmZXJJdGVtcyhSZWZQdHI8
Q2xpcGJvYXJkPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworCitwcm90ZWN0ZWQ6CisgICAg
UmVmUHRyPENsaXBib2FyZD4gbV9vd25lcjsKKyAgICAvLyBJbmRpcmVjdGx5IG93bmVkIGJ5IG91
ciBwYXJlbnQuCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogbV9jb250ZXh0OworICAgIFZl
Y3RvcjxSZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4gPiBtX2l0ZW1zOwogCi0gICAgdmlydHVhbCB2
b2lkIGFkZChjb25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSwgRXhjZXB0aW9u
Q29kZSYpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hy
b21pdW0uY3BwCmluZGV4IDI0YjQ5OGUuLjljZDJhYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVt
LmNwcApAQCAtNTcsMzQgKzU3LDI2IEBAIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUNocm9t
aXVtPiBEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmNyZWF0ZShQYXNzUmVmUHRyCiAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0ob3duZXIsIGNvbnRleHQs
IEludGVybmFsU291cmNlLCBEYXRhVHJhbnNmZXJJdGVtOjpraW5kU3RyaW5nLCB0eXBlLCBkYXRh
KSk7CiB9CiAKK1Bhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4gRGF0YVRyYW5zZmVySXRlbTo6
Y3JlYXRlKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBTdHJpbmcmIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgcmV0
dXJuIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6Y3JlYXRlKG93bmVyLCBjb250ZXh0LCBkYXRh
LCB0eXBlKTsKK30KKwogRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpEYXRhVHJhbnNmZXJJdGVt
Q2hyb21pdW0oUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBEYXRhU291cmNlIHNvdXJjZSwgY29uc3QgU3RyaW5nJiBraW5kLCBjb25z
dCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZGF0YSkKLSAgICA6IG1fb3duZXIob3duZXIp
CisgICAgOiBEYXRhVHJhbnNmZXJJdGVtKG93bmVyLCBraW5kLCB0eXBlKQogICAgICwgbV9jb250
ZXh0KGNvbnRleHQpCiAgICAgLCBtX3NvdXJjZShzb3VyY2UpCi0gICAgLCBtX2tpbmQoa2luZCkK
LSAgICAsIG1fdHlwZSh0eXBlKQogICAgICwgbV9kYXRhKGRhdGEpCiB7CiB9CiAKLVN0cmluZyBE
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmtpbmQoKSBjb25zdAotewotICAgIGlmIChtX293bmVy
LT5wb2xpY3koKSA9PSBDbGlwYm9hcmROdW1iKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0g
ICAgcmV0dXJuIG1fa2luZDsKLX0KLQotU3RyaW5nIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6
dHlwZSgpIGNvbnN0Ci17Ci0gICAgaWYgKG1fb3duZXItPnBvbGljeSgpID09IENsaXBib2FyZE51
bWIpCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICByZXR1cm4gbV90eXBlOwotfQotCiB2
b2lkIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6Z2V0QXNTdHJpbmcoUGFzc1JlZlB0cjxTdHJp
bmdDYWxsYmFjaz4gY2FsbGJhY2spCiB7Ci0gICAgaWYgKChtX293bmVyLT5wb2xpY3koKSAhPSBD
bGlwYm9hcmRSZWFkYWJsZSAmJiBtX293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0YWJs
ZSkKLSAgICAgICAgfHwgbV9raW5kICE9IGtpbmRTdHJpbmcpCisgICAgaWYgKChvd25lcigpLT5w
b2xpY3koKSAhPSBDbGlwYm9hcmRSZWFkYWJsZSAmJiBvd25lcigpLT5wb2xpY3koKSAhPSBDbGlw
Ym9hcmRXcml0YWJsZSkKKyAgICAgICAgfHwga2luZCgpICE9IGtpbmRTdHJpbmcpCiAgICAgICAg
IHJldHVybjsKICAgICBpZiAobV9zb3VyY2UgPT0gSW50ZXJuYWxTb3VyY2UpIHsKICAgICAgICAg
Y2FsbGJhY2stPnNjaGVkdWxlQ2FsbGJhY2sobV9jb250ZXh0LCBtX2RhdGEpOwpAQCAtOTMsMTEg
Kzg1LDExIEBAIHZvaWQgRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpnZXRBc1N0cmluZyhQYXNz
UmVmUHRyPFN0cmluZ0NhbGxiYWNrPiBjYWxsYmFjaykKIAogICAgIEFTU0VSVChtX3NvdXJjZSA9
PSBQYXN0ZWJvYXJkU291cmNlKTsKICAgICAvLyBUaGlzIGlzIHVnbHkgYnV0IHRoZXJlJ3Mgbm8g
cmVhbCBhbHRlcm5hdGl2ZS4KLSAgICBpZiAobV90eXBlID09IG1pbWVUeXBlVGV4dFBsYWluKSB7
CisgICAgaWYgKHR5cGUoKSA9PSBtaW1lVHlwZVRleHRQbGFpbikgewogICAgICAgICBjYWxsYmFj
ay0+c2NoZWR1bGVDYWxsYmFjayhtX2NvbnRleHQsIFBsYXRmb3JtQnJpZGdlOjpjbGlwYm9hcmRS
ZWFkUGxhaW5UZXh0KFBhc3RlYm9hcmRQcml2YXRlOjpTdGFuZGFyZEJ1ZmZlcikpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQotICAgIGlmIChtX3R5cGUgPT0gbWltZVR5cGVUZXh0SFRNTCkgewor
ICAgIGlmICh0eXBlKCkgPT0gbWltZVR5cGVUZXh0SFRNTCkgewogICAgICAgICBTdHJpbmcgaHRt
bDsKICAgICAgICAgS1VSTCBpZ25vcmVkU291cmNlVVJMOwogICAgICAgICBQbGF0Zm9ybUJyaWRn
ZTo6Y2xpcGJvYXJkUmVhZEhUTUwoUGFzdGVib2FyZFByaXZhdGU6OlN0YW5kYXJkQnVmZmVyLCAm
aHRtbCwgJmlnbm9yZWRTb3VyY2VVUkwpOwpAQCAtMTEzLDcgKzEwNSw3IEBAIFBhc3NSZWZQdHI8
QmxvYj4gRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpnZXRBc0ZpbGUoKQogICAgICAgICByZXR1
cm4gMDsKIAogICAgIEFTU0VSVChtX3NvdXJjZSA9PSBQYXN0ZWJvYXJkU291cmNlKTsKLSAgICBp
ZiAobV90eXBlID09IG1pbWVUeXBlSW1hZ2VQbmcpIHsKKyAgICBpZiAodHlwZSgpID09IG1pbWVU
eXBlSW1hZ2VQbmcpIHsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgcHJldHR5IGluZWZmaWNp
ZW50LiBXZSBjb3B5IHRoZSBkYXRhIGZyb20gdGhlIGJyb3dzZXIKICAgICAgICAgLy8gdG8gdGhl
IHJlbmRlcmVyLiBXZSB0aGVuIHBsYWNlIGl0IGluIGEgYmxvYiBpbiBXZWJLaXQsIHdoaWNoCiAg
ICAgICAgIC8vIHJlZ2lzdGVycyBpdCBhbmQgY29waWVzIGl0ICpiYWNrKiB0byB0aGUgYnJvd3Nl
ci4gV2hlbiBhIGNvbnN1bWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5oCmluZGV4IDY2YmU5NmUuLjE0
NGU0MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFU
cmFuc2Zlckl0ZW1DaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5oCkBAIC00Nyw5ICs0Nyw2IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0+IGNyZWF0ZUZy
b21QYXN0ZWJvYXJkKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIGNvbnN0IFN0cmluZyYgdHlwZSk7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0
YVRyYW5zZmVySXRlbUNocm9taXVtPiBjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVy
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhLCBjb25zdCBTdHJp
bmcmIHR5cGUpOwogCi0gICAgdmlydHVhbCBTdHJpbmcga2luZCgpIGNvbnN0OwotICAgIHZpcnR1
YWwgU3RyaW5nIHR5cGUoKSBjb25zdDsKLQogICAgIHZpcnR1YWwgdm9pZCBnZXRBc1N0cmluZyhQ
YXNzUmVmUHRyPFN0cmluZ0NhbGxiYWNrPik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEJsb2I+
IGdldEFzRmlsZSgpOwogCkBAIC02MSwxMSArNTgsOCBAQCBwcml2YXRlOgogCiAgICAgRGF0YVRy
YW5zZmVySXRlbUNocm9taXVtKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIERhdGFTb3VyY2UsIGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3Ry
aW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGRhdGEpOwogCi0gICAgY29uc3QgUmVmUHRyPENsaXBi
b2FyZD4gbV9vd25lcjsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX2NvbnRleHQ7CiAg
ICAgY29uc3QgRGF0YVNvdXJjZSBtX3NvdXJjZTsKLSAgICBjb25zdCBTdHJpbmcgbV9raW5kOwot
ICAgIGNvbnN0IFN0cmluZyBtX3R5cGU7CiAgICAgY29uc3QgU3RyaW5nIG1fZGF0YTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zl
ckl0ZW1zQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0
YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5jcHAKaW5kZXggNDE4YjhiNS4uYzY4NGNjYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXND
aHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRy
YW5zZmVySXRlbXNDaHJvbWl1bS5jcHAKQEAgLTQ1LDYyICs0NSwxMCBAQCBQYXNzUmVmUHRyPERh
dGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0+IERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06OmNyZWF0
ZShQYXNzUmVmUAogfQogCiBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjpEYXRhVHJhbnNmZXJJ
dGVtc0Nocm9taXVtKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCkKLSAgICA6IG1fb3duZXIob3duZXIpCi0gICAgLCBtX2NvbnRleHQo
Y29udGV4dCkKKyAgICA6IERhdGFUcmFuc2Zlckl0ZW1zKG93bmVyLCBjb250ZXh0KQogewogfQog
Ci11bnNpZ25lZCBsb25nIERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06Omxlbmd0aCgpIGNvbnN0
Ci17Ci0gICAgaWYgKG1fb3duZXItPnBvbGljeSgpID09IENsaXBib2FyZE51bWIpCi0gICAgICAg
IHJldHVybiAwOwotICAgIHJldHVybiBtX2l0ZW1zLnNpemUoKTsKLX0KLQotUGFzc1JlZlB0cjxE
YXRhVHJhbnNmZXJJdGVtPiBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjppdGVtKHVuc2lnbmVk
IGxvbmcgaW5kZXgpIGNvbnN0Ci17Ci0gICAgaWYgKG1fb3duZXItPnBvbGljeSgpID09IENsaXBi
b2FyZE51bWIgfHwgaW5kZXggPj0gbGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJl
dHVybiBtX2l0ZW1zW2luZGV4XTsKLX0KLQotdm9pZCBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVt
OjpkZWxldGVJdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewot
ICAgIGlmIChtX293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0YWJsZSkgewotICAgICAg
ICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg
aWYgKGluZGV4ID49IGxlbmd0aCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2l0ZW1zLnJl
bW92ZShpbmRleCk7Ci19Ci0KLXZvaWQgRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6Y2xlYXIo
KQotewotICAgIGlmIChtX293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0YWJsZSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgbV9pdGVtcy5jbGVhcigpOwotfQotCi12b2lkIERhdGFUcmFu
c2Zlckl0ZW1zQ2hyb21pdW06OmFkZChjb25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0IFN0cmluZyYg
dHlwZSwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKG1fb3duZXItPnBvbGljeSgpICE9
IENsaXBib2FyZFdyaXRhYmxlKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBPbmx5IG9uZSAn
c3RyaW5nJyBpdGVtIHdpdGggYSBnaXZlbiB0eXBlIGlzIGFsbG93ZWQgaW4gdGhlIGNvbGxlY3Rp
b24uCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2l0ZW1zLnNpemUoKTsgKytpKSB7Ci0g
ICAgICAgIGlmIChtX2l0ZW1zW2ldLT50eXBlKCkgPT0gdHlwZSAmJiBtX2l0ZW1zW2ldLT5raW5k
KCkgPT0gRGF0YVRyYW5zZmVySXRlbTo6a2luZFN0cmluZykgewotICAgICAgICAgICAgZWMgPSBJ
TlZBTElEX1NUQVRFX0VSUjsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0K
LQotICAgIG1faXRlbXMuYXBwZW5kKERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6Y3JlYXRlKG1f
b3duZXIsIG1fY29udGV4dCwgZGF0YSwgdHlwZSkpOwotfQotCiB2b2lkIERhdGFUcmFuc2Zlckl0
ZW1zQ2hyb21pdW06OmFkZFBhc3RlYm9hcmRJdGVtKGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKICAg
ICBtX2l0ZW1zLmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmNyZWF0ZUZyb21QYXN0
ZWJvYXJkKG1fb3duZXIsIG1fY29udGV4dCwgdHlwZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5o
CmluZGV4IDUxYzRmZGIuLmQwOTlhMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmgKQEAgLTQ5
LDI0ICs0OSwxMiBAQCBjbGFzcyBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtIDogcHVibGljIERh
dGFUcmFuc2Zlckl0ZW1zIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVHJh
bnNmZXJJdGVtc0Nocm9taXVtPiBjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+LCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0Kik7CiAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKCkg
Y29uc3Q7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW0+IGl0ZW0odW5z
aWduZWQgbG9uZyBpbmRleCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZUl0ZW0odW5z
aWduZWQgbG9uZyBpbmRleCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdm9pZCBjbGVh
cigpOwotCi0gICAgdmlydHVhbCB2b2lkIGFkZChjb25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0IFN0
cmluZyYgdHlwZSwgRXhjZXB0aW9uQ29kZSYpOwotCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFz
cyBDbGlwYm9hcmRDaHJvbWl1bTsKIAogICAgIERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0oUGFz
c1JlZlB0cjxDbGlwYm9hcmQ+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKICAgICB2aXJ0
dWFsIHZvaWQgYWRkUGFzdGVib2FyZEl0ZW0oY29uc3QgU3RyaW5nJiB0eXBlKTsKLQotICAgIFJl
ZlB0cjxDbGlwYm9hcmQ+IG1fb3duZXI7Ci0gICAgLy8gSW5kaXJlY3RseSBvd25lZCBieSBvdXIg
cGFyZW50LgotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fY29udGV4dDsKLSAgICBWZWN0
b3I8UmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bT4gPiBtX2l0ZW1zOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQotLSAKMS43LjEKCg==
</data>
<flag name="review"
          id="83357"
          type_id="1"
          status="+"
          setter="tony"
    />
    <flag name="commit-queue"
          id="83358"
          type_id="3"
          status="-"
          setter="tony"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90939</attachid>
            <date>2011-04-25 13:46:07 -0700</date>
            <delta_ts>2011-04-25 14:32:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Move-complexity-from-DataTransferItemsChromium-and-D.patch</filename>
            <type>text/plain</type>
            <size>25733</size>
            <attacher name="Igor Trindade Oliveira">igor.oliveira</attacher>
            
              <data encoding="base64">RnJvbSA1MTU4YzZkZWEzNDAzNWI2ZTllMGQwMzBjZjc4NjJlMmUxZWJhMzA0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJZ29yIE9saXZlaXJhIDxpZ29yLm9saXZlaXJhQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFdlZCwgMjAgQXByIDIwMTEgMTE6NDc6MDIgLTA0MDAKU3ViamVjdDogW1BB
VENIXSBNb3ZlIGNvbXBsZXhpdHkgZnJvbSBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtIGFuZCBE
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0gZm9yIGJhc2UgY2xhc3MKCi0tLQogU291cmNlL1dlYkNv
cmUvQW5kcm9pZC5tayAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFNvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzcgKysr
KysrKwogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSAgICAgICAgICAgICAgICAg
fCAgICAxICsKIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAgMSArCiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgIDEgKwogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2ogICAgICAgfCAgIDUyICsrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgIHwgICAgNCArCiBTb3VyY2UvV2ViQ29yZS9kb20vRGF0
YVRyYW5zZmVySXRlbS5jcHAgICAgICAgICAgICB8ICAgMzEgKysrKysrCiBTb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVySXRlbS5oICAgICAgICAgICAgICB8ICAgMTggKysrLQogU291cmNl
L1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmNwcCAgICAgICAgICAgfCAgMTAzICsrKysr
KysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaCAg
ICAgICAgICAgICB8ICAgMjIgKysrLQogLi4uL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zl
ckl0ZW1DaHJvbWl1bS5jcHAgfCAgIDM2ICsrKy0tLS0KIC4uLi9wbGF0Zm9ybS9jaHJvbWl1bS9E
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uaCAgIHwgICAgNiAtCiAuLi4vY2hyb21pdW0vRGF0YVRy
YW5zZmVySXRlbXNDaHJvbWl1bS5jcHAgICAgICAgICB8ICAgNTQgKy0tLS0tLS0tLS0KIC4uLi9w
bGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmggIHwgICAxMiAtLS0K
IDE2IGZpbGVzIGNoYW5nZWQsIDI3OSBpbnNlcnRpb25zKCspLCAxMDEgZGVsZXRpb25zKC0pCiBj
cmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmNw
cAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsgYi9Tb3VyY2UvV2ViQ29y
ZS9BbmRyb2lkLm1rCmluZGV4IDViZTEyYTkuLjdhNmM1Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0FuZHJvaWQubWsKKysrIGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtMTE0
LDYgKzExNCw3IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCWRv
bS9ET01JbXBsZW1lbnRhdGlvbi5jcHAgXAogCWRvbS9ET01TdHJpbmdMaXN0LmNwcCBcCiAJZG9t
L0RhdGFUcmFuc2Zlckl0ZW0uY3BwIFwKKwlkb20vRGF0YVRyYW5zZmVySXRlbXMuY3BwIFwKIAlk
b20vRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5jcHAgXAogCWRvbS9EZXZpY2VNb3Rpb25Db250
cm9sbGVyLmNwcCBcCiAJZG9tL0RldmljZU1vdGlvbkRhdGEuY3BwIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggOTk0MWI3Ni4uNjFlNjI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE0NDcs
NiArMTQ0Nyw3IEBAIElGIChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykKICAgICApCiAgICAg
TElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgICAgIGRvbS9EYXRhVHJhbnNmZXJJdGVt
LmNwcAorICAgICAgICBkb20vRGF0YVRyYW5zZmVySXRlbXMuY3BwCiAgICAgICAgIGRvbS9TdHJp
bmdDYWxsYmFjay5jcHAKICAgICApCiBFTkRJRiAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGFiNTdhZjMuLmNk
NGRlZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMS0wNC0yMSAgSWdvciBPbGl2
ZWlyYSAgPGlnb3Iub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIGNvbXBsZXhpdHkgZnJvbSBEYXRhVHJh
bnNmZXJJdGVtc0Nocm9taXVtIGFuZCBEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0gZm9yIGJhc2Ug
Y2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5
MDI4CisKKyAgICAgICAgVGhlIERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0gYW5kIERhdGFUcmFu
c2Zlckl0ZW1DaHJvbWl1bSBjb2RlIGNhbiBiZSByZXVzZWQgYnkgb3RoZXIgcGxhdGZvcm1zLgor
ICAgICAgICBNb3ZpbmcgdGhlIGNvZGUgZm9yIGJhc2UgY2xhc3Mgd2UgY2FuIHJlZHVjZSB0aGUg
ZWZmb3J0cyB0byBzdXBwb3J0IERhdGFUcmFuc2Zlckl0ZW1zIAorICAgICAgICBlbGVtZW50IGlu
IGRpZmZlcmVudCBwbGF0Zm9ybXMuCisKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAg
ICAgKiBkb20vRGF0YVRyYW5zZmVySXRlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJh
bnNmZXJJdGVtOjpEYXRhVHJhbnNmZXJJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFu
c2Zlckl0ZW06Om93bmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW06Omtp
bmQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbTo6dHlwZSk6CisgICAgICAg
ICogZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaDoKKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVySXRl
bXMuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRh
VHJhbnNmZXJJdGVtc0Nocm9taXVtLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zl
ckl0ZW1zOjpEYXRhVHJhbnNmZXJJdGVtcyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNm
ZXJJdGVtczo6bGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1zOjpp
dGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1zOjpkZWxldGVJdGVtKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1zOjpjbGVhcik6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtczo6YWRkKToKKyAgICAgICAgKiBkb20vRGF0YVRyYW5z
ZmVySXRlbXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVt
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6RGF0YVRyYW5z
ZmVySXRlbUNocm9taXVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1DaHJv
bWl1bTo6Z2V0QXNTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUNo
cm9taXVtOjpnZXRBc0ZpbGUpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFu
c2Zlckl0ZW1DaHJvbWl1bS5oOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFu
c2Zlckl0ZW1zQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRl
bXNDaHJvbWl1bTo6RGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bSk6CisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5oOgorCiAyMDExLTA0LTE5ICBT
dGVwaGVuIFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEtlbm5ldGggUnVzc2VsbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4
IDI4MDEyMzIuLmEzZjRhMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzk3
MSw2ICszOTcxLDcgQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIHdlYmNvcmVfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20v
RGF0YVRyYW5zZmVySXRlbXMuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVy
SXRlbXMuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAwMTBi
ZTAwLi5mMDJkMGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yNDI1LDYgKzI0MjUsNyBAQAogICAg
ICAgICAgICAgJ2RvbS9ET01TdHJpbmdNYXAuaCcsCiAgICAgICAgICAgICAnZG9tL0RhdGFUcmFu
c2Zlckl0ZW0uY3BwJywKICAgICAgICAgICAgICdkb20vRGF0YVRyYW5zZmVySXRlbS5oJywKKyAg
ICAgICAgICAgICdkb20vRGF0YVRyYW5zZmVySXRlbXMuY3BwJywKICAgICAgICAgICAgICdkb20v
RGF0YVRyYW5zZmVySXRlbXMuaCcsCiAgICAgICAgICAgICAnZG9tL0RhdGFzZXRET01TdHJpbmdN
YXAuY3BwJywKICAgICAgICAgICAgICdkb20vRGF0YXNldERPTVN0cmluZ01hcC5oJywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KaW5kZXggZDgwNTgwOS4uNDdlNGFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTI3NjgsNiAr
Mjc2OCw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TPTEp
IHsKICAgICAgICAgZG9tL1N0cmluZ0NhbGxiYWNrLmgKICAgICBTT1VSQ0VTICs9IFwKICAgICAg
ICAgZG9tL0RhdGFUcmFuc2Zlckl0ZW0uY3BwIFwKKyAgICAgICAgZG9tL0RhdGFUcmFuc2Zlckl0
ZW1zLmNwcCBcCiAgICAgICAgIGRvbS9TdHJpbmdDYWxsYmFjay5jcHAKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA2NzY5NDljLi5iMGFh
NGI2IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpA
QCAtNDMwNTQsNiArNDMwNTQsNTggQEAKIAkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJPC9G
aWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEYXRhVHJhbnNmZXJJdGVt
cy5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZM
aXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNl
X0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFt
ZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGRvbVxEYXRhVHJhbnNmZXJJdGVtLmgiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDg0NzVhOTEuLjQ0Y2M2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE2NTgsNiArMTY1OCw3IEBACiAJCTc3QTE3QUE3MTJG
MjhCMkEwMDRFMDJGNiAvKiBKU09FU1ZlcnRleEFycmF5T2JqZWN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3N0ExN0FBMzEyRjI4QjJBMDA0RTAyRjYg
LyogSlNPRVNWZXJ0ZXhBcnJheU9iamVjdC5oICovOyB9OwogCQk3N0VGNjJGMzEyRjlEQjc0MDBD
NzdCRDIgLyogSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc3RUY2MkYxMTJGOURCNzQwMEM3N0JEMiAv
KiBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwICovOyB9OwogCQk3N0VGNjJGNDEyRjlE
Qjc0MDBDNzdCRDIgLyogSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3N0VGNjJGMjEyRjlEQjc0MDBDNzdC
RDIgLyogSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmggKi87IH07CisJCTc4MTc1NTg2MTM2
NUExQjAwMDkzQkUyRSAvKiBEYXRhVHJhbnNmZXJJdGVtcy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3ODE3NTU4NTEzNjVBMUIwMDA5M0JFMkUgLyog
RGF0YVRyYW5zZmVySXRlbXMuY3BwICovOyB9OwogCQk3OUFDOTIxODEwOTk0NUM4MDAyMTI2NkUg
LyogSlNDb21wb3NpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDc5QUM5MjE2MTA5OTQ1QzgwMDIxMjY2RSAvKiBKU0NvbXBvc2l0aW9u
RXZlbnQuY3BwICovOyB9OwogCQk3OUFDOTIxOTEwOTk0NUM4MDAyMTI2NkUgLyogSlNDb21wb3Np
dGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3OUFDOTIxNzEwOTk0NUM4MDAyMTI2NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50LmggKi87IH07
CiAJCTc5RjJGNUExMTA5MTkzOUEwMDBEODdDQiAvKiBDb21wb3NpdGlvbkV2ZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5RjJGNTlFMTA5MTkz
OUEwMDBEODdDQiAvKiBDb21wb3NpdGlvbkV2ZW50LmNwcCAqLzsgfTsKQEAgLTgyNjUsNiArODI2
Niw3IEBACiAJCTc3QTE3QUEzMTJGMjhCMkEwMDRFMDJGNiAvKiBKU09FU1ZlcnRleEFycmF5T2Jq
ZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTT0VTVmVydGV4QXJyYXlP
YmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzdFRjYyRjExMkY5REI3NDAw
Qzc3QkQyIC8qIEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3N0VGNjJGMjEyRjlEQjc0MDBDNzdCRDIgLyog
SlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3ODE3NTU4NTEzNjVBMUIwMDA5M0JFMkUgLyogRGF0YVRyYW5zZmVySXRlbXMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRGF0YVRyYW5zZmVySXRl
bXMuY3BwOyBwYXRoID0gZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzlBQzkyMTYxMDk5NDVDODAwMjEyNjZFIC8qIEpTQ29tcG9zaXRpb25F
dmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NvbXBvc2l0
aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUFDOTIxNzEwOTk0
NUM4MDAyMTI2NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTQ29tcG9zaXRpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3OUYyRjU5RTEwOTE5MzlBMDAwRDg3Q0IgLyogQ29tcG9zaXRpb25FdmVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb21wb3NpdGlvbkV2ZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyNjg4LDYgKzEyNjkwLDcgQEAKIAkJ
MDg2N0Q2OTFGRTg0MDI4RkMwMkFBQzA3IC8qIFdlYktpdCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNzgxNzU1ODUxMzY1QTFCMDAwOTNCRTJFIC8qIERh
dGFUcmFuc2Zlckl0ZW1zLmNwcCAqLywKIAkJCQk2NUM5N0FGMjA4RUE5MDg4MDBBQ0QyNzMgLyog
Y29uZmlnLmggKi8sCiAJCQkJRURFQzk4MDIwQUVEN0UxNzAwNTkxMzdGIC8qIFdlYkNvcmVQcmVm
aXguaCAqLywKIAkJCQk5MzA3MDYxMzA5RTBDQTgyMDBCMTdGRTQgLyogRGVyaXZlZFNvdXJjZXMu
bWFrZSAqLywKQEAgLTI1NzEyLDYgKzI1NzE1LDcgQEAKIAkJCQk5M0YxOUIwNTA4MjQ1RTU5MDAx
RTlBQkMgLyogWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFC
RTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTRmlsdGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTc4MTc1NTg2MTM2NUExQjAwMDkzQkUyRSAvKiBEYXRhVHJhbnNmZXJJdGVt
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRh
VHJhbnNmZXJJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmNw
cAppbmRleCA4ZWVjODY5Li43ODczMWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGF0YVRyYW5zZmVySXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zl
ckl0ZW0uY3BwCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiRGF0YVRyYW5zZmVySXRlbS5oIgogCisjaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCisKICNpZiBF
TkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzgs
NiArNDAsMzUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY29uc3QgY2hhciBEYXRhVHJhbnNmZXJJ
dGVtOjpraW5kU3RyaW5nW10gPSAic3RyaW5nIjsKIGNvbnN0IGNoYXIgRGF0YVRyYW5zZmVySXRl
bTo6a2luZEZpbGVbXSA9ICJmaWxlIjsKIAorRGF0YVRyYW5zZmVySXRlbTo6RGF0YVRyYW5zZmVy
SXRlbShSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBT
dHJpbmcmIHR5cGUpCisgICAgOiBtX293bmVyKG93bmVyKQorICAgICwgbV9raW5kKGtpbmQpCisg
ICAgLCBtX3R5cGUodHlwZSkKK3sKK30KKworQ2xpcGJvYXJkKiBEYXRhVHJhbnNmZXJJdGVtOjpv
d25lcigpCit7CisgICAgcmV0dXJuIG1fb3duZXIuZ2V0KCk7Cit9CisKK1N0cmluZyBEYXRhVHJh
bnNmZXJJdGVtOjpraW5kKCkgY29uc3QKK3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5KCkgPT0g
Q2xpcGJvYXJkTnVtYikKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisgICAgcmV0dXJuIG1f
a2luZDsKK30KKworU3RyaW5nIERhdGFUcmFuc2Zlckl0ZW06OnR5cGUoKSBjb25zdAoreworICAg
IGlmIChtX293bmVyLT5wb2xpY3koKSA9PSBDbGlwYm9hcmROdW1iKQorICAgICAgICByZXR1cm4g
U3RyaW5nKCk7CisKKyAgICByZXR1cm4gbV90eXBlOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EYXRhVHJhbnNmZXJJdGVtLmgKaW5kZXggZDY0OGM1Ni4uZGNlY2Q2MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5oCkBAIC0zMyw2ICszMyw4IEBACiAKICNpZiBFTkFC
TEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKIAorI2luY2x1ZGUgIkNsaXBib2FyZC5oIgorCiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCkBAIC00
MCwxOSArNDIsMzEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBCbG9iOwogY2xhc3Mg
U3RyaW5nQ2FsbGJhY2s7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCiBjbGFzcyBE
YXRhVHJhbnNmZXJJdGVtIDogcHVibGljIFJlZkNvdW50ZWQ8RGF0YVRyYW5zZmVySXRlbT4gewog
cHVibGljOgogICAgIH5EYXRhVHJhbnNmZXJJdGVtKCkge30KIAorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPERhdGFUcmFuc2Zlckl0ZW0+IGNyZWF0ZShQYXNzUmVmUHRyPENsaXBib2FyZD4gb3duZXIs
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0IFN0cmlu
ZyYgdHlwZSk7CisKICAgICBzdGF0aWMgY29uc3QgY2hhciBraW5kU3RyaW5nW107CiAgICAgc3Rh
dGljIGNvbnN0IGNoYXIga2luZEZpbGVbXTsKIAotICAgIHZpcnR1YWwgU3RyaW5nIGtpbmQoKSBj
b25zdCA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgdHlwZSgpIGNvbnN0ID0gMDsKKyAgICBTdHJp
bmcga2luZCgpIGNvbnN0OworICAgIFN0cmluZyB0eXBlKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFs
IHZvaWQgZ2V0QXNTdHJpbmcoUGFzc1JlZlB0cjxTdHJpbmdDYWxsYmFjaz4pID0gMDsKICAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8QmxvYj4gZ2V0QXNGaWxlKCkgPSAwOworCitwcm90ZWN0ZWQ6Cisg
ICAgRGF0YVRyYW5zZmVySXRlbShSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgY29uc3QgU3RyaW5n
JiBraW5kLCBjb25zdCBTdHJpbmcmIHR5cGUpOworICAgIENsaXBib2FyZCogb3duZXIoKTsKKwor
cHJpdmF0ZToKKyAgICBjb25zdCBSZWZQdHI8Q2xpcGJvYXJkPiBtX293bmVyOworICAgIGNvbnN0
IFN0cmluZyBtX2tpbmQ7CisgICAgY29uc3QgU3RyaW5nIG1fdHlwZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNm
ZXJJdGVtcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxYjgxMDIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuY3BwCkBAIC0wLDAgKzEs
MTAzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEYXRhVHJh
bnNmZXJJdGVtcy5oIgorCisjaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbS5oIgorI2luY2x1ZGUg
IkV4Y2VwdGlvbkNvZGUuaCIKKworI2lmIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK0RhdGFUcmFuc2Zlckl0ZW1zOjpEYXRhVHJhbnNmZXJJdGVt
cyhSZWZQdHI8Q2xpcGJvYXJkPiBjbGlwYm9hcmQsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQpCisgICAgOiBtX293bmVyKGNsaXBib2FyZCkKKyAgICAsIG1fY29udGV4dChjb250ZXh0
KQoreworfQorCitzaXplX3QgRGF0YVRyYW5zZmVySXRlbXM6Omxlbmd0aCgpIGNvbnN0Cit7Cisg
ICAgaWYgKG1fb3duZXItPnBvbGljeSgpID09IENsaXBib2FyZE51bWIpCisgICAgICAgIHJldHVy
biAwOworCisgICAgcmV0dXJuIG1faXRlbXMuc2l6ZSgpOworfQorCitQYXNzUmVmUHRyPERhdGFU
cmFuc2Zlckl0ZW0+IERhdGFUcmFuc2Zlckl0ZW1zOjppdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgp
Cit7CisgICAgaWYgKG1fb3duZXItPnBvbGljeSgpID09IENsaXBib2FyZE51bWIgfHwgaW5kZXgg
Pj0gbGVuZ3RoKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG1faXRlbXNbaW5k
ZXhdOworfQorCit2b2lkIERhdGFUcmFuc2Zlckl0ZW1zOjpkZWxldGVJdGVtKHVuc2lnbmVkIGxv
bmcgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChtX293bmVyLT5wb2xpY3ko
KSAhPSBDbGlwYm9hcmRXcml0YWJsZSkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJS
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGluZGV4ID49IGxlbmd0aCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX2l0ZW1zLnJlbW92ZShpbmRleCk7Cit9CisKK3ZvaWQg
RGF0YVRyYW5zZmVySXRlbXM6OmNsZWFyKCkKK3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5KCkg
IT0gQ2xpcGJvYXJkV3JpdGFibGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1faXRlbXMuY2xl
YXIoKTsKKworfQorCit2b2lkIERhdGFUcmFuc2Zlckl0ZW1zOjphZGQoY29uc3QgU3RyaW5nJiBk
YXRhLCBjb25zdCBTdHJpbmcmIHR5cGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICht
X293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0YWJsZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgLy8gT25seSBvbmUgJ3N0cmluZycgaXRlbSB3aXRoIGEgZ2l2ZW4gdHlwZSBpcyBhbGxv
d2VkIGluIHRoZSBjb2xsZWN0aW9uLgorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9pdGVt
cy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAobV9pdGVtc1tpXS0+dHlwZSgpID09IHR5cGUg
JiYgbV9pdGVtc1tpXS0+a2luZCgpID09IERhdGFUcmFuc2Zlckl0ZW06OmtpbmRTdHJpbmcpIHsK
KyAgICAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtX2l0ZW1zLmFwcGVuZChEYXRhVHJhbnNmZXJJdGVt
OjpjcmVhdGUobV9vd25lciwgbV9jb250ZXh0LCBkYXRhLCB0eXBlKSk7Cit9CisKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5oCmluZGV4IDA4NzMzODQuLmRj
NmIyYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5oCkBAIC0zMywxMiAr
MzMsMTMgQEAKIAogI2lmIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQogCisjaW5jbHVkZSAi
RGF0YVRyYW5zZmVySXRlbS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEYXRhVHJh
bnNmZXJJdGVtOworY2xhc3MgQ2xpcGJvYXJkOwogCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2Rl
OwogCkBAIC00NiwxMiArNDcsMjEgQEAgY2xhc3MgRGF0YVRyYW5zZmVySXRlbXMgOiBwdWJsaWMg
UmVmQ291bnRlZDxEYXRhVHJhbnNmZXJJdGVtcz4gewogcHVibGljOgogICAgIH5EYXRhVHJhbnNm
ZXJJdGVtcygpIHt9CiAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKCkgY29uc3Qg
PSAwOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiBpdGVtKHVuc2ln
bmVkIGxvbmcgaW5kZXgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlSXRlbSh1
bnNpZ25lZCBsb25nIGluZGV4LCBFeGNlcHRpb25Db2RlJikgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBjbGVhcigpID0gMDsKKyAgICB2aXJ0dWFsIHNpemVfdCBsZW5ndGgoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4gaXRlbSh1bnNpZ25lZCBsb25nIGlu
ZGV4KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlSXRlbSh1bnNpZ25lZCBsb25nIGluZGV4LCBF
eGNlcHRpb25Db2RlJik7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyKCk7CisgICAgdmlydHVhbCB2
b2lkIGFkZChjb25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSwgRXhjZXB0aW9u
Q29kZSYpOworCitwcm90ZWN0ZWQ6CisgICAgRGF0YVRyYW5zZmVySXRlbXMoUmVmUHRyPENsaXBi
b2FyZD4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKworcHJvdGVjdGVkOgorICAgIFJlZlB0
cjxDbGlwYm9hcmQ+IG1fb3duZXI7CisgICAgLy8gSW5kaXJlY3RseSBvd25lZCBieSBvdXIgcGFy
ZW50LgorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fY29udGV4dDsKKyAgICBWZWN0b3I8
UmVmUHRyPERhdGFUcmFuc2Zlckl0ZW0+ID4gbV9pdGVtczsKIAotICAgIHZpcnR1YWwgdm9pZCBh
ZGQoY29uc3QgU3RyaW5nJiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUsIEV4Y2VwdGlvbkNvZGUm
KSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVt
LmNwcAppbmRleCAyNGI0OThlLi45Y2QyYWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5jcHAK
QEAgLTU3LDM0ICs1NywyNiBAQCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bT4g
RGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpjcmVhdGUoUGFzc1JlZlB0cgogICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgRGF0YVRyYW5zZmVySXRlbUNocm9taXVtKG93bmVyLCBjb250ZXh0LCBJbnRl
cm5hbFNvdXJjZSwgRGF0YVRyYW5zZmVySXRlbTo6a2luZFN0cmluZywgdHlwZSwgZGF0YSkpOwog
fQogCitQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW0+IERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0
ZShQYXNzUmVmUHRyPENsaXBib2FyZD4gb3duZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgU3RyaW5nJiBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAgIHJldHVybiBE
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmNyZWF0ZShvd25lciwgY29udGV4dCwgZGF0YSwgdHlw
ZSk7Cit9CisKIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6RGF0YVRyYW5zZmVySXRlbUNocm9t
aXVtKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgRGF0YVNvdXJjZSBzb3VyY2UsIGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3Ry
aW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGRhdGEpCi0gICAgOiBtX293bmVyKG93bmVyKQorICAg
IDogRGF0YVRyYW5zZmVySXRlbShvd25lciwga2luZCwgdHlwZSkKICAgICAsIG1fY29udGV4dChj
b250ZXh0KQogICAgICwgbV9zb3VyY2Uoc291cmNlKQotICAgICwgbV9raW5kKGtpbmQpCi0gICAg
LCBtX3R5cGUodHlwZSkKICAgICAsIG1fZGF0YShkYXRhKQogewogfQogCi1TdHJpbmcgRGF0YVRy
YW5zZmVySXRlbUNocm9taXVtOjpraW5kKCkgY29uc3QKLXsKLSAgICBpZiAobV9vd25lci0+cG9s
aWN5KCkgPT0gQ2xpcGJvYXJkTnVtYikKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAgIHJl
dHVybiBtX2tpbmQ7Ci19Ci0KLVN0cmluZyBEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OnR5cGUo
KSBjb25zdAotewotICAgIGlmIChtX293bmVyLT5wb2xpY3koKSA9PSBDbGlwYm9hcmROdW1iKQot
ICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0gICAgcmV0dXJuIG1fdHlwZTsKLX0KLQogdm9pZCBE
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmdldEFzU3RyaW5nKFBhc3NSZWZQdHI8U3RyaW5nQ2Fs
bGJhY2s+IGNhbGxiYWNrKQogewotICAgIGlmICgobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJv
YXJkUmVhZGFibGUgJiYgbV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJvYXJkV3JpdGFibGUpCi0g
ICAgICAgIHx8IG1fa2luZCAhPSBraW5kU3RyaW5nKQorICAgIGlmICgob3duZXIoKS0+cG9saWN5
KCkgIT0gQ2xpcGJvYXJkUmVhZGFibGUgJiYgb3duZXIoKS0+cG9saWN5KCkgIT0gQ2xpcGJvYXJk
V3JpdGFibGUpCisgICAgICAgIHx8IGtpbmQoKSAhPSBraW5kU3RyaW5nKQogICAgICAgICByZXR1
cm47CiAgICAgaWYgKG1fc291cmNlID09IEludGVybmFsU291cmNlKSB7CiAgICAgICAgIGNhbGxi
YWNrLT5zY2hlZHVsZUNhbGxiYWNrKG1fY29udGV4dCwgbV9kYXRhKTsKQEAgLTkzLDExICs4NSwx
MSBAQCB2b2lkIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6Z2V0QXNTdHJpbmcoUGFzc1JlZlB0
cjxTdHJpbmdDYWxsYmFjaz4gY2FsbGJhY2spCiAKICAgICBBU1NFUlQobV9zb3VyY2UgPT0gUGFz
dGVib2FyZFNvdXJjZSk7CiAgICAgLy8gVGhpcyBpcyB1Z2x5IGJ1dCB0aGVyZSdzIG5vIHJlYWwg
YWx0ZXJuYXRpdmUuCi0gICAgaWYgKG1fdHlwZSA9PSBtaW1lVHlwZVRleHRQbGFpbikgeworICAg
IGlmICh0eXBlKCkgPT0gbWltZVR5cGVUZXh0UGxhaW4pIHsKICAgICAgICAgY2FsbGJhY2stPnNj
aGVkdWxlQ2FsbGJhY2sobV9jb250ZXh0LCBQbGF0Zm9ybUJyaWRnZTo6Y2xpcGJvYXJkUmVhZFBs
YWluVGV4dChQYXN0ZWJvYXJkUHJpdmF0ZTo6U3RhbmRhcmRCdWZmZXIpKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KLSAgICBpZiAobV90eXBlID09IG1pbWVUeXBlVGV4dEhUTUwpIHsKKyAgICBp
ZiAodHlwZSgpID09IG1pbWVUeXBlVGV4dEhUTUwpIHsKICAgICAgICAgU3RyaW5nIGh0bWw7CiAg
ICAgICAgIEtVUkwgaWdub3JlZFNvdXJjZVVSTDsKICAgICAgICAgUGxhdGZvcm1CcmlkZ2U6OmNs
aXBib2FyZFJlYWRIVE1MKFBhc3RlYm9hcmRQcml2YXRlOjpTdGFuZGFyZEJ1ZmZlciwgJmh0bWws
ICZpZ25vcmVkU291cmNlVVJMKTsKQEAgLTExMyw3ICsxMDUsNyBAQCBQYXNzUmVmUHRyPEJsb2I+
IERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6Z2V0QXNGaWxlKCkKICAgICAgICAgcmV0dXJuIDA7
CiAKICAgICBBU1NFUlQobV9zb3VyY2UgPT0gUGFzdGVib2FyZFNvdXJjZSk7Ci0gICAgaWYgKG1f
dHlwZSA9PSBtaW1lVHlwZUltYWdlUG5nKSB7CisgICAgaWYgKHR5cGUoKSA9PSBtaW1lVHlwZUlt
YWdlUG5nKSB7CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHByZXR0eSBpbmVmZmljaWVudC4g
V2UgY29weSB0aGUgZGF0YSBmcm9tIHRoZSBicm93c2VyCiAgICAgICAgIC8vIHRvIHRoZSByZW5k
ZXJlci4gV2UgdGhlbiBwbGFjZSBpdCBpbiBhIGJsb2IgaW4gV2ViS2l0LCB3aGljaAogICAgICAg
ICAvLyByZWdpc3RlcnMgaXQgYW5kIGNvcGllcyBpdCAqYmFjayogdG8gdGhlIGJyb3dzZXIuIFdo
ZW4gYSBjb25zdW1lcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uaAppbmRleCA2NmJlOTZlLi4xNDRlNDBm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNm
ZXJJdGVtQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9E
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uaApAQCAtNDcsOSArNDcsNiBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUNocm9taXVtPiBjcmVhdGVGcm9tUGFz
dGVib2FyZChQYXNzUmVmUHRyPENsaXBib2FyZD4gb3duZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBjb25zdCBTdHJpbmcmIHR5cGUpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFUcmFu
c2Zlckl0ZW1DaHJvbWl1bT4gY3JlYXRlKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0
eXBlKTsKIAotICAgIHZpcnR1YWwgU3RyaW5nIGtpbmQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFN0
cmluZyB0eXBlKCkgY29uc3Q7Ci0KICAgICB2aXJ0dWFsIHZvaWQgZ2V0QXNTdHJpbmcoUGFzc1Jl
ZlB0cjxTdHJpbmdDYWxsYmFjaz4pOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxCbG9iPiBnZXRB
c0ZpbGUoKTsKIApAQCAtNjEsMTEgKzU4LDggQEAgcHJpdmF0ZToKIAogICAgIERhdGFUcmFuc2Zl
ckl0ZW1DaHJvbWl1bShQYXNzUmVmUHRyPENsaXBib2FyZD4gb3duZXIsIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBEYXRhU291cmNlLCBjb25zdCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYg
dHlwZSwgY29uc3QgU3RyaW5nJiBkYXRhKTsKIAotICAgIGNvbnN0IFJlZlB0cjxDbGlwYm9hcmQ+
IG1fb3duZXI7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogbV9jb250ZXh0OwogICAgIGNv
bnN0IERhdGFTb3VyY2UgbV9zb3VyY2U7Ci0gICAgY29uc3QgU3RyaW5nIG1fa2luZDsKLSAgICBj
b25zdCBTdHJpbmcgbV90eXBlOwogICAgIGNvbnN0IFN0cmluZyBtX2RhdGE7CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVt
c0Nocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFu
c2Zlckl0ZW1zQ2hyb21pdW0uY3BwCmluZGV4IDQxOGI4YjUuLmM2ODRjY2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21p
dW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zl
ckl0ZW1zQ2hyb21pdW0uY3BwCkBAIC00NSw2MiArNDUsMTAgQEAgUGFzc1JlZlB0cjxEYXRhVHJh
bnNmZXJJdGVtc0Nocm9taXVtPiBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjpjcmVhdGUoUGFz
c1JlZlAKIH0KIAogRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6RGF0YVRyYW5zZmVySXRlbXND
aHJvbWl1bShQYXNzUmVmUHRyPENsaXBib2FyZD4gb3duZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQpCi0gICAgOiBtX293bmVyKG93bmVyKQotICAgICwgbV9jb250ZXh0KGNvbnRl
eHQpCisgICAgOiBEYXRhVHJhbnNmZXJJdGVtcyhvd25lciwgY29udGV4dCkKIHsKIH0KIAotdW5z
aWduZWQgbG9uZyBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjpsZW5ndGgoKSBjb25zdAotewot
ICAgIGlmIChtX293bmVyLT5wb2xpY3koKSA9PSBDbGlwYm9hcmROdW1iKQotICAgICAgICByZXR1
cm4gMDsKLSAgICByZXR1cm4gbV9pdGVtcy5zaXplKCk7Ci19Ci0KLVBhc3NSZWZQdHI8RGF0YVRy
YW5zZmVySXRlbT4gRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6aXRlbSh1bnNpZ25lZCBsb25n
IGluZGV4KSBjb25zdAotewotICAgIGlmIChtX293bmVyLT5wb2xpY3koKSA9PSBDbGlwYm9hcmRO
dW1iIHx8IGluZGV4ID49IGxlbmd0aCgpKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4g
bV9pdGVtc1tpbmRleF07Ci19Ci0KLXZvaWQgRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6ZGVs
ZXRlSXRlbSh1bnNpZ25lZCBsb25nIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBp
ZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJvYXJkV3JpdGFibGUpIHsKLSAgICAgICAgZWMg
PSBJTlZBTElEX1NUQVRFX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChp
bmRleCA+PSBsZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9pdGVtcy5yZW1vdmUo
aW5kZXgpOwotfQotCi12b2lkIERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06OmNsZWFyKCkKLXsK
LSAgICBpZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJvYXJkV3JpdGFibGUpCi0gICAgICAg
IHJldHVybjsKLQotICAgIG1faXRlbXMuY2xlYXIoKTsKLX0KLQotdm9pZCBEYXRhVHJhbnNmZXJJ
dGVtc0Nocm9taXVtOjphZGQoY29uc3QgU3RyaW5nJiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUs
IEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmIChtX293bmVyLT5wb2xpY3koKSAhPSBDbGlw
Ym9hcmRXcml0YWJsZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gT25seSBvbmUgJ3N0cmlu
ZycgaXRlbSB3aXRoIGEgZ2l2ZW4gdHlwZSBpcyBhbGxvd2VkIGluIHRoZSBjb2xsZWN0aW9uLgot
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9pdGVtcy5zaXplKCk7ICsraSkgewotICAgICAg
ICBpZiAobV9pdGVtc1tpXS0+dHlwZSgpID09IHR5cGUgJiYgbV9pdGVtc1tpXS0+a2luZCgpID09
IERhdGFUcmFuc2Zlckl0ZW06OmtpbmRTdHJpbmcpIHsKLSAgICAgICAgICAgIGVjID0gSU5WQUxJ
RF9TVEFURV9FUlI7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAg
ICBtX2l0ZW1zLmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmNyZWF0ZShtX293bmVy
LCBtX2NvbnRleHQsIGRhdGEsIHR5cGUpKTsKLX0KLQogdm9pZCBEYXRhVHJhbnNmZXJJdGVtc0No
cm9taXVtOjphZGRQYXN0ZWJvYXJkSXRlbShjb25zdCBTdHJpbmcmIHR5cGUpCiB7CiAgICAgbV9p
dGVtcy5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpjcmVhdGVGcm9tUGFzdGVib2Fy
ZChtX293bmVyLCBtX2NvbnRleHQsIHR5cGUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uaAppbmRl
eCA1MWM0ZmRiLi5kMDk5YTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5oCkBAIC00OSwyNCAr
NDksMTIgQEAgY2xhc3MgRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bSA6IHB1YmxpYyBEYXRhVHJh
bnNmZXJJdGVtcyB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVy
SXRlbXNDaHJvbWl1bT4gY3JlYXRlKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiwgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCopOwogCi0gICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0
OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiBpdGVtKHVuc2lnbmVk
IGxvbmcgaW5kZXgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVJdGVtKHVuc2lnbmVk
IGxvbmcgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoKTsK
LQotICAgIHZpcnR1YWwgdm9pZCBhZGQoY29uc3QgU3RyaW5nJiBkYXRhLCBjb25zdCBTdHJpbmcm
IHR5cGUsIEV4Y2VwdGlvbkNvZGUmKTsKLQogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgQ2xp
cGJvYXJkQ2hyb21pdW07CiAKICAgICBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtKFBhc3NSZWZQ
dHI8Q2xpcGJvYXJkPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogCiAgICAgdmlydHVhbCB2
b2lkIGFkZFBhc3RlYm9hcmRJdGVtKGNvbnN0IFN0cmluZyYgdHlwZSk7Ci0KLSAgICBSZWZQdHI8
Q2xpcGJvYXJkPiBtX293bmVyOwotICAgIC8vIEluZGlyZWN0bHkgb3duZWQgYnkgb3VyIHBhcmVu
dC4KLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX2NvbnRleHQ7Ci0gICAgVmVjdG9yPFJl
ZlB0cjxEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0+ID4gbV9pdGVtczsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLS0gCjEuNy4xCgo=
</data>
<flag name="review"
          id="83704"
          type_id="1"
          status="+"
          setter="tony"
    />
    <flag name="commit-queue"
          id="83705"
          type_id="3"
          status="-"
          setter="tony"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90946</attachid>
            <date>2011-04-25 14:32:55 -0700</date>
            <delta_ts>2011-04-25 15:15:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Move-complexity-from-DataTransferItemsChromium-and-D.patch</filename>
            <type>text/plain</type>
            <size>25789</size>
            <attacher name="Igor Trindade Oliveira">igor.oliveira</attacher>
            
              <data encoding="base64">RnJvbSBmZDZkZWQwNzBlYTIyNjY3ZTM2NTEwOWY5NjMwMzE3ODExMjg3NWNjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJZ29yIE9saXZlaXJhIDxpZ29yLm9saXZlaXJhQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFdlZCwgMjAgQXByIDIwMTEgMTE6NDc6MDIgLTA0MDAKU3ViamVjdDogW1BB
VENIXSBNb3ZlIGNvbXBsZXhpdHkgZnJvbSBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtIGFuZCBE
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0gZm9yIGJhc2UgY2xhc3MKCi0tLQogU291cmNlL1dlYkNv
cmUvQW5kcm9pZC5tayAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFNvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzcgKysr
KysrKwogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSAgICAgICAgICAgICAgICAg
fCAgICAxICsKIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAgMSArCiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgIDEgKwogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2ogICAgICAgfCAgIDUyICsrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgIHwgICAgNCArCiBTb3VyY2UvV2ViQ29yZS9kb20vRGF0
YVRyYW5zZmVySXRlbS5jcHAgICAgICAgICAgICB8ICAgMzEgKysrKysrCiBTb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVySXRlbS5oICAgICAgICAgICAgICB8ICAgMTggKysrLQogU291cmNl
L1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmNwcCAgICAgICAgICAgfCAgMTA0ICsrKysr
KysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaCAg
ICAgICAgICAgICB8ICAgMjIgKysrLQogLi4uL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zl
ckl0ZW1DaHJvbWl1bS5jcHAgfCAgIDM2ICsrKy0tLS0KIC4uLi9wbGF0Zm9ybS9jaHJvbWl1bS9E
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uaCAgIHwgICAgNiAtCiAuLi4vY2hyb21pdW0vRGF0YVRy
YW5zZmVySXRlbXNDaHJvbWl1bS5jcHAgICAgICAgICB8ICAgNTQgKy0tLS0tLS0tLS0KIC4uLi9w
bGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmggIHwgICAxMiAtLS0K
IDE2IGZpbGVzIGNoYW5nZWQsIDI4MCBpbnNlcnRpb25zKCspLCAxMDEgZGVsZXRpb25zKC0pCiBj
cmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmNw
cAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsgYi9Tb3VyY2UvV2ViQ29y
ZS9BbmRyb2lkLm1rCmluZGV4IDViZTEyYTkuLjdhNmM1Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0FuZHJvaWQubWsKKysrIGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtMTE0
LDYgKzExNCw3IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCWRv
bS9ET01JbXBsZW1lbnRhdGlvbi5jcHAgXAogCWRvbS9ET01TdHJpbmdMaXN0LmNwcCBcCiAJZG9t
L0RhdGFUcmFuc2Zlckl0ZW0uY3BwIFwKKwlkb20vRGF0YVRyYW5zZmVySXRlbXMuY3BwIFwKIAlk
b20vRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5jcHAgXAogCWRvbS9EZXZpY2VNb3Rpb25Db250
cm9sbGVyLmNwcCBcCiAJZG9tL0RldmljZU1vdGlvbkRhdGEuY3BwIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggOTk0MWI3Ni4uNjFlNjI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE0NDcs
NiArMTQ0Nyw3IEBAIElGIChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykKICAgICApCiAgICAg
TElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgICAgIGRvbS9EYXRhVHJhbnNmZXJJdGVt
LmNwcAorICAgICAgICBkb20vRGF0YVRyYW5zZmVySXRlbXMuY3BwCiAgICAgICAgIGRvbS9TdHJp
bmdDYWxsYmFjay5jcHAKICAgICApCiBFTkRJRiAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGFiNTdhZjMuLmNk
NGRlZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMS0wNC0yMSAgSWdvciBPbGl2
ZWlyYSAgPGlnb3Iub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIGNvbXBsZXhpdHkgZnJvbSBEYXRhVHJh
bnNmZXJJdGVtc0Nocm9taXVtIGFuZCBEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0gZm9yIGJhc2Ug
Y2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5
MDI4CisKKyAgICAgICAgVGhlIERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0gYW5kIERhdGFUcmFu
c2Zlckl0ZW1DaHJvbWl1bSBjb2RlIGNhbiBiZSByZXVzZWQgYnkgb3RoZXIgcGxhdGZvcm1zLgor
ICAgICAgICBNb3ZpbmcgdGhlIGNvZGUgZm9yIGJhc2UgY2xhc3Mgd2UgY2FuIHJlZHVjZSB0aGUg
ZWZmb3J0cyB0byBzdXBwb3J0IERhdGFUcmFuc2Zlckl0ZW1zIAorICAgICAgICBlbGVtZW50IGlu
IGRpZmZlcmVudCBwbGF0Zm9ybXMuCisKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAg
ICAgKiBkb20vRGF0YVRyYW5zZmVySXRlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJh
bnNmZXJJdGVtOjpEYXRhVHJhbnNmZXJJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFu
c2Zlckl0ZW06Om93bmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW06Omtp
bmQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbTo6dHlwZSk6CisgICAgICAg
ICogZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaDoKKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVySXRl
bXMuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRh
VHJhbnNmZXJJdGVtc0Nocm9taXVtLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zl
ckl0ZW1zOjpEYXRhVHJhbnNmZXJJdGVtcyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNm
ZXJJdGVtczo6bGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1zOjpp
dGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1zOjpkZWxldGVJdGVtKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1zOjpjbGVhcik6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtczo6YWRkKToKKyAgICAgICAgKiBkb20vRGF0YVRyYW5z
ZmVySXRlbXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVt
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6RGF0YVRyYW5z
ZmVySXRlbUNocm9taXVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1DaHJv
bWl1bTo6Z2V0QXNTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUNo
cm9taXVtOjpnZXRBc0ZpbGUpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFu
c2Zlckl0ZW1DaHJvbWl1bS5oOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFu
c2Zlckl0ZW1zQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRl
bXNDaHJvbWl1bTo6RGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bSk6CisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5oOgorCiAyMDExLTA0LTE5ICBT
dGVwaGVuIFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEtlbm5ldGggUnVzc2VsbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4
IDI4MDEyMzIuLmEzZjRhMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzk3
MSw2ICszOTcxLDcgQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIHdlYmNvcmVfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20v
RGF0YVRyYW5zZmVySXRlbXMuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVy
SXRlbXMuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAwMTBi
ZTAwLi5mMDJkMGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yNDI1LDYgKzI0MjUsNyBAQAogICAg
ICAgICAgICAgJ2RvbS9ET01TdHJpbmdNYXAuaCcsCiAgICAgICAgICAgICAnZG9tL0RhdGFUcmFu
c2Zlckl0ZW0uY3BwJywKICAgICAgICAgICAgICdkb20vRGF0YVRyYW5zZmVySXRlbS5oJywKKyAg
ICAgICAgICAgICdkb20vRGF0YVRyYW5zZmVySXRlbXMuY3BwJywKICAgICAgICAgICAgICdkb20v
RGF0YVRyYW5zZmVySXRlbXMuaCcsCiAgICAgICAgICAgICAnZG9tL0RhdGFzZXRET01TdHJpbmdN
YXAuY3BwJywKICAgICAgICAgICAgICdkb20vRGF0YXNldERPTVN0cmluZ01hcC5oJywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KaW5kZXggZDgwNTgwOS4uNDdlNGFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTI3NjgsNiAr
Mjc2OCw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TPTEp
IHsKICAgICAgICAgZG9tL1N0cmluZ0NhbGxiYWNrLmgKICAgICBTT1VSQ0VTICs9IFwKICAgICAg
ICAgZG9tL0RhdGFUcmFuc2Zlckl0ZW0uY3BwIFwKKyAgICAgICAgZG9tL0RhdGFUcmFuc2Zlckl0
ZW1zLmNwcCBcCiAgICAgICAgIGRvbS9TdHJpbmdDYWxsYmFjay5jcHAKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA2NzY5NDljLi5iMGFh
NGI2IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpA
QCAtNDMwNTQsNiArNDMwNTQsNTggQEAKIAkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJPC9G
aWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEYXRhVHJhbnNmZXJJdGVt
cy5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZM
aXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNl
X0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFt
ZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGRvbVxEYXRhVHJhbnNmZXJJdGVtLmgiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDg0NzVhOTEuLjQ0Y2M2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE2NTgsNiArMTY1OCw3IEBACiAJCTc3QTE3QUE3MTJG
MjhCMkEwMDRFMDJGNiAvKiBKU09FU1ZlcnRleEFycmF5T2JqZWN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3N0ExN0FBMzEyRjI4QjJBMDA0RTAyRjYg
LyogSlNPRVNWZXJ0ZXhBcnJheU9iamVjdC5oICovOyB9OwogCQk3N0VGNjJGMzEyRjlEQjc0MDBD
NzdCRDIgLyogSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc3RUY2MkYxMTJGOURCNzQwMEM3N0JEMiAv
KiBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwICovOyB9OwogCQk3N0VGNjJGNDEyRjlE
Qjc0MDBDNzdCRDIgLyogSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3N0VGNjJGMjEyRjlEQjc0MDBDNzdC
RDIgLyogSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmggKi87IH07CisJCTc4MTc1NTg2MTM2
NUExQjAwMDkzQkUyRSAvKiBEYXRhVHJhbnNmZXJJdGVtcy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3ODE3NTU4NTEzNjVBMUIwMDA5M0JFMkUgLyog
RGF0YVRyYW5zZmVySXRlbXMuY3BwICovOyB9OwogCQk3OUFDOTIxODEwOTk0NUM4MDAyMTI2NkUg
LyogSlNDb21wb3NpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDc5QUM5MjE2MTA5OTQ1QzgwMDIxMjY2RSAvKiBKU0NvbXBvc2l0aW9u
RXZlbnQuY3BwICovOyB9OwogCQk3OUFDOTIxOTEwOTk0NUM4MDAyMTI2NkUgLyogSlNDb21wb3Np
dGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3OUFDOTIxNzEwOTk0NUM4MDAyMTI2NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50LmggKi87IH07
CiAJCTc5RjJGNUExMTA5MTkzOUEwMDBEODdDQiAvKiBDb21wb3NpdGlvbkV2ZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5RjJGNTlFMTA5MTkz
OUEwMDBEODdDQiAvKiBDb21wb3NpdGlvbkV2ZW50LmNwcCAqLzsgfTsKQEAgLTgyNjUsNiArODI2
Niw3IEBACiAJCTc3QTE3QUEzMTJGMjhCMkEwMDRFMDJGNiAvKiBKU09FU1ZlcnRleEFycmF5T2Jq
ZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTT0VTVmVydGV4QXJyYXlP
YmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzdFRjYyRjExMkY5REI3NDAw
Qzc3QkQyIC8qIEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3N0VGNjJGMjEyRjlEQjc0MDBDNzdCRDIgLyog
SlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3ODE3NTU4NTEzNjVBMUIwMDA5M0JFMkUgLyogRGF0YVRyYW5zZmVySXRlbXMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRGF0YVRyYW5zZmVySXRl
bXMuY3BwOyBwYXRoID0gZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzlBQzkyMTYxMDk5NDVDODAwMjEyNjZFIC8qIEpTQ29tcG9zaXRpb25F
dmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NvbXBvc2l0
aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUFDOTIxNzEwOTk0
NUM4MDAyMTI2NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTQ29tcG9zaXRpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3OUYyRjU5RTEwOTE5MzlBMDAwRDg3Q0IgLyogQ29tcG9zaXRpb25FdmVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb21wb3NpdGlvbkV2ZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyNjg4LDYgKzEyNjkwLDcgQEAKIAkJ
MDg2N0Q2OTFGRTg0MDI4RkMwMkFBQzA3IC8qIFdlYktpdCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNzgxNzU1ODUxMzY1QTFCMDAwOTNCRTJFIC8qIERh
dGFUcmFuc2Zlckl0ZW1zLmNwcCAqLywKIAkJCQk2NUM5N0FGMjA4RUE5MDg4MDBBQ0QyNzMgLyog
Y29uZmlnLmggKi8sCiAJCQkJRURFQzk4MDIwQUVEN0UxNzAwNTkxMzdGIC8qIFdlYkNvcmVQcmVm
aXguaCAqLywKIAkJCQk5MzA3MDYxMzA5RTBDQTgyMDBCMTdGRTQgLyogRGVyaXZlZFNvdXJjZXMu
bWFrZSAqLywKQEAgLTI1NzEyLDYgKzI1NzE1LDcgQEAKIAkJCQk5M0YxOUIwNTA4MjQ1RTU5MDAx
RTlBQkMgLyogWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFC
RTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTRmlsdGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTc4MTc1NTg2MTM2NUExQjAwMDkzQkUyRSAvKiBEYXRhVHJhbnNmZXJJdGVt
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRh
VHJhbnNmZXJJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmNw
cAppbmRleCA4ZWVjODY5Li43ODczMWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGF0YVRyYW5zZmVySXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zl
ckl0ZW0uY3BwCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiRGF0YVRyYW5zZmVySXRlbS5oIgogCisjaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCisKICNpZiBF
TkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzgs
NiArNDAsMzUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY29uc3QgY2hhciBEYXRhVHJhbnNmZXJJ
dGVtOjpraW5kU3RyaW5nW10gPSAic3RyaW5nIjsKIGNvbnN0IGNoYXIgRGF0YVRyYW5zZmVySXRl
bTo6a2luZEZpbGVbXSA9ICJmaWxlIjsKIAorRGF0YVRyYW5zZmVySXRlbTo6RGF0YVRyYW5zZmVy
SXRlbShSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBT
dHJpbmcmIHR5cGUpCisgICAgOiBtX293bmVyKG93bmVyKQorICAgICwgbV9raW5kKGtpbmQpCisg
ICAgLCBtX3R5cGUodHlwZSkKK3sKK30KKworQ2xpcGJvYXJkKiBEYXRhVHJhbnNmZXJJdGVtOjpv
d25lcigpCit7CisgICAgcmV0dXJuIG1fb3duZXIuZ2V0KCk7Cit9CisKK1N0cmluZyBEYXRhVHJh
bnNmZXJJdGVtOjpraW5kKCkgY29uc3QKK3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5KCkgPT0g
Q2xpcGJvYXJkTnVtYikKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisgICAgcmV0dXJuIG1f
a2luZDsKK30KKworU3RyaW5nIERhdGFUcmFuc2Zlckl0ZW06OnR5cGUoKSBjb25zdAoreworICAg
IGlmIChtX293bmVyLT5wb2xpY3koKSA9PSBDbGlwYm9hcmROdW1iKQorICAgICAgICByZXR1cm4g
U3RyaW5nKCk7CisKKyAgICByZXR1cm4gbV90eXBlOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EYXRhVHJhbnNmZXJJdGVtLmgKaW5kZXggZDY0OGM1Ni4uZGNlY2Q2MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5oCkBAIC0zMyw2ICszMyw4IEBACiAKICNpZiBFTkFC
TEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKIAorI2luY2x1ZGUgIkNsaXBib2FyZC5oIgorCiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCkBAIC00
MCwxOSArNDIsMzEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBCbG9iOwogY2xhc3Mg
U3RyaW5nQ2FsbGJhY2s7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCiBjbGFzcyBE
YXRhVHJhbnNmZXJJdGVtIDogcHVibGljIFJlZkNvdW50ZWQ8RGF0YVRyYW5zZmVySXRlbT4gewog
cHVibGljOgogICAgIH5EYXRhVHJhbnNmZXJJdGVtKCkge30KIAorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPERhdGFUcmFuc2Zlckl0ZW0+IGNyZWF0ZShQYXNzUmVmUHRyPENsaXBib2FyZD4gb3duZXIs
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0IFN0cmlu
ZyYgdHlwZSk7CisKICAgICBzdGF0aWMgY29uc3QgY2hhciBraW5kU3RyaW5nW107CiAgICAgc3Rh
dGljIGNvbnN0IGNoYXIga2luZEZpbGVbXTsKIAotICAgIHZpcnR1YWwgU3RyaW5nIGtpbmQoKSBj
b25zdCA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgdHlwZSgpIGNvbnN0ID0gMDsKKyAgICBTdHJp
bmcga2luZCgpIGNvbnN0OworICAgIFN0cmluZyB0eXBlKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFs
IHZvaWQgZ2V0QXNTdHJpbmcoUGFzc1JlZlB0cjxTdHJpbmdDYWxsYmFjaz4pID0gMDsKICAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8QmxvYj4gZ2V0QXNGaWxlKCkgPSAwOworCitwcm90ZWN0ZWQ6Cisg
ICAgRGF0YVRyYW5zZmVySXRlbShSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgY29uc3QgU3RyaW5n
JiBraW5kLCBjb25zdCBTdHJpbmcmIHR5cGUpOworICAgIENsaXBib2FyZCogb3duZXIoKTsKKwor
cHJpdmF0ZToKKyAgICBjb25zdCBSZWZQdHI8Q2xpcGJvYXJkPiBtX293bmVyOworICAgIGNvbnN0
IFN0cmluZyBtX2tpbmQ7CisgICAgY29uc3QgU3RyaW5nIG1fdHlwZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNm
ZXJJdGVtcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwZTkyM2YKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuY3BwCkBAIC0wLDAgKzEs
MTA0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRhdGFUcmFu
c2Zlckl0ZW1zLmgiCisKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtLmgiCisjaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZS5oIgorCisjaWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworRGF0YVRyYW5zZmVySXRlbXM6OkRhdGFUcmFuc2Zlckl0ZW1z
KFJlZlB0cjxDbGlwYm9hcmQ+IGNsaXBib2FyZCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCkKKyAgICA6IG1fb3duZXIoY2xpcGJvYXJkKQorICAgICwgbV9jb250ZXh0KGNvbnRleHQp
Cit7Cit9CisKK3NpemVfdCBEYXRhVHJhbnNmZXJJdGVtczo6bGVuZ3RoKCkgY29uc3QKK3sKKyAg
ICBpZiAobV9vd25lci0+cG9saWN5KCkgPT0gQ2xpcGJvYXJkTnVtYikKKyAgICAgICAgcmV0dXJu
IDA7CisKKyAgICByZXR1cm4gbV9pdGVtcy5zaXplKCk7Cit9CisKK1Bhc3NSZWZQdHI8RGF0YVRy
YW5zZmVySXRlbT4gRGF0YVRyYW5zZmVySXRlbXM6Oml0ZW0odW5zaWduZWQgbG9uZyBpbmRleCkK
K3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5KCkgPT0gQ2xpcGJvYXJkTnVtYiB8fCBpbmRleCA+
PSBsZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gbV9pdGVtc1tpbmRl
eF07Cit9CisKK3ZvaWQgRGF0YVRyYW5zZmVySXRlbXM6OmRlbGV0ZUl0ZW0odW5zaWduZWQgbG9u
ZyBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKG1fb3duZXItPnBvbGljeSgp
ICE9IENsaXBib2FyZFdyaXRhYmxlKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoaW5kZXggPj0gbGVuZ3RoKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1faXRlbXMucmVtb3ZlKGluZGV4KTsKK30KKwordm9pZCBE
YXRhVHJhbnNmZXJJdGVtczo6Y2xlYXIoKQoreworICAgIGlmIChtX293bmVyLT5wb2xpY3koKSAh
PSBDbGlwYm9hcmRXcml0YWJsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9pdGVtcy5jbGVh
cigpOworCit9CisKK3ZvaWQgRGF0YVRyYW5zZmVySXRlbXM6OmFkZChjb25zdCBTdHJpbmcmIGRh
dGEsIGNvbnN0IFN0cmluZyYgdHlwZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKG1f
b3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFdyaXRhYmxlKQorICAgICAgICByZXR1cm47CisK
KyAgICAvLyBPbmx5IG9uZSAnc3RyaW5nJyBpdGVtIHdpdGggYSBnaXZlbiB0eXBlIGlzIGFsbG93
ZWQgaW4gdGhlIGNvbGxlY3Rpb24uCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2l0ZW1z
LnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChtX2l0ZW1zW2ldLT50eXBlKCkgPT0gdHlwZSAm
JiBtX2l0ZW1zW2ldLT5raW5kKCkgPT0gRGF0YVRyYW5zZmVySXRlbTo6a2luZFN0cmluZykgewor
ICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorICAgIH0KKworICAgIG1faXRlbXMuYXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06
OmNyZWF0ZShtX293bmVyLCBtX2NvbnRleHQsIGRhdGEsIHR5cGUpKTsKK30KKworfQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmgKaW5kZXggMDg3MzM4NC4uZGM2
YjJiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmgKQEAgLTMzLDEyICsz
MywxMyBAQAogCiAjaWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCiAKKyNpbmNsdWRlICJE
YXRhVHJhbnNmZXJJdGVtLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERhdGFUcmFu
c2Zlckl0ZW07CitjbGFzcyBDbGlwYm9hcmQ7CiAKIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7
CiAKQEAgLTQ2LDEyICs0NywyMSBAQCBjbGFzcyBEYXRhVHJhbnNmZXJJdGVtcyA6IHB1YmxpYyBS
ZWZDb3VudGVkPERhdGFUcmFuc2Zlckl0ZW1zPiB7CiBwdWJsaWM6CiAgICAgfkRhdGFUcmFuc2Zl
ckl0ZW1zKCkge30KIAotICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBsZW5ndGgoKSBjb25zdCA9
IDA7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW0+IGl0ZW0odW5zaWdu
ZWQgbG9uZyBpbmRleCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVJdGVtKHVu
c2lnbmVkIGxvbmcgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IGNsZWFyKCkgPSAwOworICAgIHZpcnR1YWwgc2l6ZV90IGxlbmd0aCgpIGNvbnN0OworICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiBpdGVtKHVuc2lnbmVkIGxvbmcgaW5k
ZXgpOworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVJdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgsIEV4
Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgYWRkKGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25D
b2RlJik7CisKK3Byb3RlY3RlZDoKKyAgICBEYXRhVHJhbnNmZXJJdGVtcyhSZWZQdHI8Q2xpcGJv
YXJkPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworCitwcm90ZWN0ZWQ6CisgICAgUmVmUHRy
PENsaXBib2FyZD4gbV9vd25lcjsKKyAgICAvLyBJbmRpcmVjdGx5IG93bmVkIGJ5IG91ciBwYXJl
bnQuCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogbV9jb250ZXh0OworICAgIFZlY3RvcjxS
ZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4gPiBtX2l0ZW1zOwogCi0gICAgdmlydHVhbCB2b2lkIGFk
ZChjb25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSwgRXhjZXB0aW9uQ29kZSYp
ID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0u
Y3BwCmluZGV4IDI0YjQ5OGUuLjljZDJhYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmNwcApA
QCAtNTcsMzQgKzU3LDI2IEBAIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUNocm9taXVtPiBE
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmNyZWF0ZShQYXNzUmVmUHRyCiAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0ob3duZXIsIGNvbnRleHQsIEludGVy
bmFsU291cmNlLCBEYXRhVHJhbnNmZXJJdGVtOjpraW5kU3RyaW5nLCB0eXBlLCBkYXRhKSk7CiB9
CiAKK1Bhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4gRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRl
KFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBTdHJpbmcmIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgcmV0dXJuIERh
dGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6Y3JlYXRlKG93bmVyLCBjb250ZXh0LCBkYXRhLCB0eXBl
KTsKK30KKwogRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21p
dW0oUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBEYXRhU291cmNlIHNvdXJjZSwgY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJp
bmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZGF0YSkKLSAgICA6IG1fb3duZXIob3duZXIpCisgICAg
OiBEYXRhVHJhbnNmZXJJdGVtKG93bmVyLCBraW5kLCB0eXBlKQogICAgICwgbV9jb250ZXh0KGNv
bnRleHQpCiAgICAgLCBtX3NvdXJjZShzb3VyY2UpCi0gICAgLCBtX2tpbmQoa2luZCkKLSAgICAs
IG1fdHlwZSh0eXBlKQogICAgICwgbV9kYXRhKGRhdGEpCiB7CiB9CiAKLVN0cmluZyBEYXRhVHJh
bnNmZXJJdGVtQ2hyb21pdW06OmtpbmQoKSBjb25zdAotewotICAgIGlmIChtX293bmVyLT5wb2xp
Y3koKSA9PSBDbGlwYm9hcmROdW1iKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0gICAgcmV0
dXJuIG1fa2luZDsKLX0KLQotU3RyaW5nIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6dHlwZSgp
IGNvbnN0Ci17Ci0gICAgaWYgKG1fb3duZXItPnBvbGljeSgpID09IENsaXBib2FyZE51bWIpCi0g
ICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICByZXR1cm4gbV90eXBlOwotfQotCiB2b2lkIERh
dGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6Z2V0QXNTdHJpbmcoUGFzc1JlZlB0cjxTdHJpbmdDYWxs
YmFjaz4gY2FsbGJhY2spCiB7Ci0gICAgaWYgKChtX293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9h
cmRSZWFkYWJsZSAmJiBtX293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0YWJsZSkKLSAg
ICAgICAgfHwgbV9raW5kICE9IGtpbmRTdHJpbmcpCisgICAgaWYgKChvd25lcigpLT5wb2xpY3ko
KSAhPSBDbGlwYm9hcmRSZWFkYWJsZSAmJiBvd25lcigpLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRX
cml0YWJsZSkKKyAgICAgICAgfHwga2luZCgpICE9IGtpbmRTdHJpbmcpCiAgICAgICAgIHJldHVy
bjsKICAgICBpZiAobV9zb3VyY2UgPT0gSW50ZXJuYWxTb3VyY2UpIHsKICAgICAgICAgY2FsbGJh
Y2stPnNjaGVkdWxlQ2FsbGJhY2sobV9jb250ZXh0LCBtX2RhdGEpOwpAQCAtOTMsMTEgKzg1LDEx
IEBAIHZvaWQgRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpnZXRBc1N0cmluZyhQYXNzUmVmUHRy
PFN0cmluZ0NhbGxiYWNrPiBjYWxsYmFjaykKIAogICAgIEFTU0VSVChtX3NvdXJjZSA9PSBQYXN0
ZWJvYXJkU291cmNlKTsKICAgICAvLyBUaGlzIGlzIHVnbHkgYnV0IHRoZXJlJ3Mgbm8gcmVhbCBh
bHRlcm5hdGl2ZS4KLSAgICBpZiAobV90eXBlID09IG1pbWVUeXBlVGV4dFBsYWluKSB7CisgICAg
aWYgKHR5cGUoKSA9PSBtaW1lVHlwZVRleHRQbGFpbikgewogICAgICAgICBjYWxsYmFjay0+c2No
ZWR1bGVDYWxsYmFjayhtX2NvbnRleHQsIFBsYXRmb3JtQnJpZGdlOjpjbGlwYm9hcmRSZWFkUGxh
aW5UZXh0KFBhc3RlYm9hcmRQcml2YXRlOjpTdGFuZGFyZEJ1ZmZlcikpOwogICAgICAgICByZXR1
cm47CiAgICAgfQotICAgIGlmIChtX3R5cGUgPT0gbWltZVR5cGVUZXh0SFRNTCkgeworICAgIGlm
ICh0eXBlKCkgPT0gbWltZVR5cGVUZXh0SFRNTCkgewogICAgICAgICBTdHJpbmcgaHRtbDsKICAg
ICAgICAgS1VSTCBpZ25vcmVkU291cmNlVVJMOwogICAgICAgICBQbGF0Zm9ybUJyaWRnZTo6Y2xp
cGJvYXJkUmVhZEhUTUwoUGFzdGVib2FyZFByaXZhdGU6OlN0YW5kYXJkQnVmZmVyLCAmaHRtbCwg
Jmlnbm9yZWRTb3VyY2VVUkwpOwpAQCAtMTEzLDcgKzEwNSw3IEBAIFBhc3NSZWZQdHI8QmxvYj4g
RGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpnZXRBc0ZpbGUoKQogICAgICAgICByZXR1cm4gMDsK
IAogICAgIEFTU0VSVChtX3NvdXJjZSA9PSBQYXN0ZWJvYXJkU291cmNlKTsKLSAgICBpZiAobV90
eXBlID09IG1pbWVUeXBlSW1hZ2VQbmcpIHsKKyAgICBpZiAodHlwZSgpID09IG1pbWVUeXBlSW1h
Z2VQbmcpIHsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgcHJldHR5IGluZWZmaWNpZW50LiBX
ZSBjb3B5IHRoZSBkYXRhIGZyb20gdGhlIGJyb3dzZXIKICAgICAgICAgLy8gdG8gdGhlIHJlbmRl
cmVyLiBXZSB0aGVuIHBsYWNlIGl0IGluIGEgYmxvYiBpbiBXZWJLaXQsIHdoaWNoCiAgICAgICAg
IC8vIHJlZ2lzdGVycyBpdCBhbmQgY29waWVzIGl0ICpiYWNrKiB0byB0aGUgYnJvd3Nlci4gV2hl
biBhIGNvbnN1bWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5oCmluZGV4IDY2YmU5NmUuLjE0NGU0MGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zl
ckl0ZW1DaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Rh
dGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5oCkBAIC00Nyw5ICs0Nyw2IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0+IGNyZWF0ZUZyb21QYXN0
ZWJvYXJkKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIGNvbnN0IFN0cmluZyYgdHlwZSk7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YVRyYW5z
ZmVySXRlbUNocm9taXVtPiBjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5
cGUpOwogCi0gICAgdmlydHVhbCBTdHJpbmcga2luZCgpIGNvbnN0OwotICAgIHZpcnR1YWwgU3Ry
aW5nIHR5cGUoKSBjb25zdDsKLQogICAgIHZpcnR1YWwgdm9pZCBnZXRBc1N0cmluZyhQYXNzUmVm
UHRyPFN0cmluZ0NhbGxiYWNrPik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEJsb2I+IGdldEFz
RmlsZSgpOwogCkBAIC02MSwxMSArNTgsOCBAQCBwcml2YXRlOgogCiAgICAgRGF0YVRyYW5zZmVy
SXRlbUNocm9taXVtKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIERhdGFTb3VyY2UsIGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiB0
eXBlLCBjb25zdCBTdHJpbmcmIGRhdGEpOwogCi0gICAgY29uc3QgUmVmUHRyPENsaXBib2FyZD4g
bV9vd25lcjsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX2NvbnRleHQ7CiAgICAgY29u
c3QgRGF0YVNvdXJjZSBtX3NvdXJjZTsKLSAgICBjb25zdCBTdHJpbmcgbV9raW5kOwotICAgIGNv
bnN0IFN0cmluZyBtX3R5cGU7CiAgICAgY29uc3QgU3RyaW5nIG1fZGF0YTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1z
Q2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5z
ZmVySXRlbXNDaHJvbWl1bS5jcHAKaW5kZXggNDE4YjhiNS4uYzY4NGNjYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVy
SXRlbXNDaHJvbWl1bS5jcHAKQEAgLTQ1LDYyICs0NSwxMCBAQCBQYXNzUmVmUHRyPERhdGFUcmFu
c2Zlckl0ZW1zQ2hyb21pdW0+IERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06OmNyZWF0ZShQYXNz
UmVmUAogfQogCiBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjpEYXRhVHJhbnNmZXJJdGVtc0No
cm9taXVtKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCkKLSAgICA6IG1fb3duZXIob3duZXIpCi0gICAgLCBtX2NvbnRleHQoY29udGV4
dCkKKyAgICA6IERhdGFUcmFuc2Zlckl0ZW1zKG93bmVyLCBjb250ZXh0KQogewogfQogCi11bnNp
Z25lZCBsb25nIERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06Omxlbmd0aCgpIGNvbnN0Ci17Ci0g
ICAgaWYgKG1fb3duZXItPnBvbGljeSgpID09IENsaXBib2FyZE51bWIpCi0gICAgICAgIHJldHVy
biAwOwotICAgIHJldHVybiBtX2l0ZW1zLnNpemUoKTsKLX0KLQotUGFzc1JlZlB0cjxEYXRhVHJh
bnNmZXJJdGVtPiBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjppdGVtKHVuc2lnbmVkIGxvbmcg
aW5kZXgpIGNvbnN0Ci17Ci0gICAgaWYgKG1fb3duZXItPnBvbGljeSgpID09IENsaXBib2FyZE51
bWIgfHwgaW5kZXggPj0gbGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBt
X2l0ZW1zW2luZGV4XTsKLX0KLQotdm9pZCBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjpkZWxl
dGVJdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlm
IChtX293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0YWJsZSkgewotICAgICAgICBlYyA9
IElOVkFMSURfU1RBVEVfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGlu
ZGV4ID49IGxlbmd0aCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2l0ZW1zLnJlbW92ZShp
bmRleCk7Ci19Ci0KLXZvaWQgRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6Y2xlYXIoKQotewot
ICAgIGlmIChtX293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0YWJsZSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgbV9pdGVtcy5jbGVhcigpOwotfQotCi12b2lkIERhdGFUcmFuc2Zlckl0
ZW1zQ2hyb21pdW06OmFkZChjb25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSwg
RXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKG1fb3duZXItPnBvbGljeSgpICE9IENsaXBi
b2FyZFdyaXRhYmxlKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBPbmx5IG9uZSAnc3RyaW5n
JyBpdGVtIHdpdGggYSBnaXZlbiB0eXBlIGlzIGFsbG93ZWQgaW4gdGhlIGNvbGxlY3Rpb24uCi0g
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2l0ZW1zLnNpemUoKTsgKytpKSB7Ci0gICAgICAg
IGlmIChtX2l0ZW1zW2ldLT50eXBlKCkgPT0gdHlwZSAmJiBtX2l0ZW1zW2ldLT5raW5kKCkgPT0g
RGF0YVRyYW5zZmVySXRlbTo6a2luZFN0cmluZykgewotICAgICAgICAgICAgZWMgPSBJTlZBTElE
X1NUQVRFX0VSUjsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IG1faXRlbXMuYXBwZW5kKERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6Y3JlYXRlKG1fb3duZXIs
IG1fY29udGV4dCwgZGF0YSwgdHlwZSkpOwotfQotCiB2b2lkIERhdGFUcmFuc2Zlckl0ZW1zQ2hy
b21pdW06OmFkZFBhc3RlYm9hcmRJdGVtKGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKICAgICBtX2l0
ZW1zLmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmNyZWF0ZUZyb21QYXN0ZWJvYXJk
KG1fb3duZXIsIG1fY29udGV4dCwgdHlwZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5oCmluZGV4
IDUxYzRmZGIuLmQwOTlhMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmgKQEAgLTQ5LDI0ICs0
OSwxMiBAQCBjbGFzcyBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtIDogcHVibGljIERhdGFUcmFu
c2Zlckl0ZW1zIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJ
dGVtc0Nocm9taXVtPiBjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+LCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0Kik7CiAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKCkgY29uc3Q7
Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW0+IGl0ZW0odW5zaWduZWQg
bG9uZyBpbmRleCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZUl0ZW0odW5zaWduZWQg
bG9uZyBpbmRleCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdm9pZCBjbGVhcigpOwot
Ci0gICAgdmlydHVhbCB2b2lkIGFkZChjb25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0IFN0cmluZyYg
dHlwZSwgRXhjZXB0aW9uQ29kZSYpOwotCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBDbGlw
Ym9hcmRDaHJvbWl1bTsKIAogICAgIERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0oUGFzc1JlZlB0
cjxDbGlwYm9hcmQ+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKICAgICB2aXJ0dWFsIHZv
aWQgYWRkUGFzdGVib2FyZEl0ZW0oY29uc3QgU3RyaW5nJiB0eXBlKTsKLQotICAgIFJlZlB0cjxD
bGlwYm9hcmQ+IG1fb3duZXI7Ci0gICAgLy8gSW5kaXJlY3RseSBvd25lZCBieSBvdXIgcGFyZW50
LgotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fY29udGV4dDsKLSAgICBWZWN0b3I8UmVm
UHRyPERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bT4gPiBtX2l0ZW1zOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotLSAKMS43LjEKCg==
</data>
<flag name="review"
          id="83713"
          type_id="1"
          status="+"
          setter="tony"
    />
    <flag name="commit-queue"
          id="83714"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90954</attachid>
            <date>2011-04-25 15:15:16 -0700</date>
            <delta_ts>2011-04-25 17:31:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Move-complexity-from-DataTransferItemsChromium-and-D.patch</filename>
            <type>text/plain</type>
            <size>25995</size>
            <attacher name="Igor Trindade Oliveira">igor.oliveira</attacher>
            
              <data encoding="base64">RnJvbSBkNDIwYzUwYzdmMmFlMjNjYTYzYjJiNTM1NjFlYzEyYzQ0ZTEyZjRhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJZ29yIE9saXZlaXJhIDxpZ29yLm9saXZlaXJhQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFdlZCwgMjAgQXByIDIwMTEgMTE6NDc6MDIgLTA0MDAKU3ViamVjdDogW1BB
VENIXSBNb3ZlIGNvbXBsZXhpdHkgZnJvbSBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtIGFuZCBE
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0gZm9yIGJhc2UgY2xhc3MKCi0tLQogU291cmNlL1dlYkNv
cmUvQW5kcm9pZC5tayAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFNvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNDIgKysr
KysrKysKIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gICAgICAgICAgICAgICAg
IHwgICAgMSArCiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgIDEgKwogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgICAxICsKIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qICAgICAgIHwgICA1MiArKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogICB8ICAgIDQgKwogU291cmNlL1dlYkNvcmUvZG9tL0Rh
dGFUcmFuc2Zlckl0ZW0uY3BwICAgICAgICAgICAgfCAgIDMxICsrKysrKwogU291cmNlL1dlYkNv
cmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaCAgICAgICAgICAgICAgfCAgIDE4ICsrKy0KIFNvdXJj
ZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5jcHAgICAgICAgICAgIHwgIDEwNCArKysr
KysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmgg
ICAgICAgICAgICAgfCAgIDIyICsrKy0KIC4uLi9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNm
ZXJJdGVtQ2hyb21pdW0uY3BwIHwgICAzNiArKystLS0tCiAuLi4vcGxhdGZvcm0vY2hyb21pdW0v
RGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmggICB8ICAgIDYgLQogLi4uL2Nocm9taXVtL0RhdGFU
cmFuc2Zlckl0ZW1zQ2hyb21pdW0uY3BwICAgICAgICAgfCAgIDU0ICstLS0tLS0tLS0tCiAuLi4v
cGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5oICB8ICAgMTIgLS0t
CiAxNiBmaWxlcyBjaGFuZ2VkLCAyODUgaW5zZXJ0aW9ucygrKSwgMTAxIGRlbGV0aW9ucygtKQog
Y3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5j
cHAKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rIGIvU291cmNlL1dlYkNv
cmUvQW5kcm9pZC5tawppbmRleCA5ZDZkMDZhLi40YmI5M2M5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9BbmRyb2lkLm1rCisrKyBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKQEAgLTEx
NCw2ICsxMTQsNyBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAlk
b20vRE9NSW1wbGVtZW50YXRpb24uY3BwIFwKIAlkb20vRE9NU3RyaW5nTGlzdC5jcHAgXAogCWRv
bS9EYXRhVHJhbnNmZXJJdGVtLmNwcCBcCisJZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmNwcCBcCiAJ
ZG9tL0RlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwIFwKIAlkb20vRGV2aWNlTW90aW9uQ29u
dHJvbGxlci5jcHAgXAogCWRvbS9EZXZpY2VNb3Rpb25EYXRhLmNwcCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IGQ4MjgwODguLmI0MWE3NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNDUw
LDYgKzE0NTAsNyBAQCBJRiAoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpCiAgICAgKQogICAg
IExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgICAgICBkb20vRGF0YVRyYW5zZmVySXRl
bS5jcHAKKyAgICAgICAgZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmNwcAogICAgICAgICBkb20vU3Ry
aW5nQ2FsbGJhY2suY3BwCiAgICAgKQogRU5ESUYgKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0OTA0YjMyLi43
NjgwYTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTEtMDQtMjUgIElnb3IgT2xp
dmVpcmEgIDxpZ29yLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBjb21wbGV4aXR5IGZyb20gRGF0YVRy
YW5zZmVySXRlbXNDaHJvbWl1bSBhbmQgRGF0YVRyYW5zZmVySXRlbUNocm9taXVtIGZvciBiYXNl
IGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
OTAyOAorCisgICAgICAgIFRoZSBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtIGFuZCBEYXRhVHJh
bnNmZXJJdGVtQ2hyb21pdW0gY29kZSBjYW4gYmUgcmV1c2VkIGJ5IG90aGVyIHBsYXRmb3Jtcy4K
KyAgICAgICAgTW92aW5nIHRoZSBjb2RlIGZvciBiYXNlIGNsYXNzIHdlIGNhbiByZWR1Y2UgdGhl
IGVmZm9ydHMgdG8gc3VwcG9ydCBEYXRhVHJhbnNmZXJJdGVtcworICAgICAgICBlbGVtZW50IGlu
IGRpZmZlcmVudCBwbGF0Zm9ybXMuCisKKyAgICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAg
ICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVySXRlbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtOjpEYXRhVHJhbnNmZXJJdGVtKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW06Om93bmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGFUcmFuc2Zlckl0ZW06OmtpbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVy
SXRlbTo6dHlwZSk6CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaDoKKyAgICAgICAg
KiBkb20vRGF0YVRyYW5zZmVySXRlbXMuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmNwcC4KKyAgICAgICAg
KFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1zOjpEYXRhVHJhbnNmZXJJdGVtcyk6CisgICAgICAg
IChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtczo6bGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGFUcmFuc2Zlckl0ZW1zOjppdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zl
ckl0ZW1zOjpkZWxldGVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1z
OjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtczo6YWRkKToKKyAg
ICAgICAgKiBkb20vRGF0YVRyYW5zZmVySXRlbXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YVRyYW5zZmVySXRlbTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0
ZW1DaHJvbWl1bTo6RGF0YVRyYW5zZmVySXRlbUNocm9taXVtKToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6Z2V0QXNTdHJpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpnZXRBc0ZpbGUpOgorICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6RGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1
bSk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1
bS5oOgorCiAyMDExLTA0LTI1ICBTdGV2ZSBGYWxrZW5idXJnICA8c2ZhbGtlbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQnJpYW4gV2VpbnN0ZWluLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KaW5kZXggYmU2MzM3ZC4uNDUzNTI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCkBAIC0zOTg3LDYgKzM5ODcsNyBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0g
XAogd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVy
SXRlbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmggXAorCVNv
dXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2Fs
bGJhY2suY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCmluZGV4IDZhNjQ4MWUuLjE3OGIwZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTI0MzMs
NiArMjQzMyw3IEBACiAgICAgICAgICAgICAnZG9tL0RPTVN0cmluZ01hcC5oJywKICAgICAgICAg
ICAgICdkb20vRGF0YVRyYW5zZmVySXRlbS5jcHAnLAogICAgICAgICAgICAgJ2RvbS9EYXRhVHJh
bnNmZXJJdGVtLmgnLAorICAgICAgICAgICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5jcHAnLAog
ICAgICAgICAgICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5oJywKICAgICAgICAgICAgICdkb20v
RGF0YXNldERPTVN0cmluZ01hcC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9EYXRhc2V0RE9NU3Ry
aW5nTWFwLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCAzN2I5NWY4Li5kNjUzY2IwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnBybwpAQCAtMjc3Nyw2ICsyNzc3LDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0RBVEFf
VFJBTlNGRVJfSVRFTVM9MSkgewogICAgICAgICBkb20vU3RyaW5nQ2FsbGJhY2suaAogICAgIFNP
VVJDRVMgKz0gXAogICAgICAgICBkb20vRGF0YVRyYW5zZmVySXRlbS5jcHAgXAorICAgICAgICBk
b20vRGF0YVRyYW5zZmVySXRlbXMuY3BwIFwKICAgICAgICAgZG9tL1N0cmluZ0NhbGxiYWNrLmNw
cAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmlu
ZGV4IDU3YTliMDYuLmRmNTViMTMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCkBAIC00MzE3OCw2ICs0MzE3OCw1OCBAQAogCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9t
XERhdGFUcmFuc2Zlckl0ZW1zLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXERhdGFUcmFuc2Zlckl0ZW0uaCIKIAkJCQk+
CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNjQxZTkwYi4uODM1ZGY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTY3NSw2ICsxNjc1LDcg
QEAKIAkJNzdBMTdBQTcxMkYyOEIyQTAwNEUwMkY2IC8qIEpTT0VTVmVydGV4QXJyYXlPYmplY3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc3QTE3QUEz
MTJGMjhCMkEwMDRFMDJGNiAvKiBKU09FU1ZlcnRleEFycmF5T2JqZWN0LmggKi87IH07CiAJCTc3
RUY2MkYzMTJGOURCNzQwMEM3N0JEMiAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzdFRjYyRjEx
MkY5REI3NDAwQzc3QkQyIC8qIEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAgKi87IH07
CiAJCTc3RUY2MkY0MTJGOURCNzQwMEM3N0JEMiAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RP
RVMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc3RUY2
MkYyMTJGOURCNzQwMEM3N0JEMiAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCAqLzsg
fTsKKwkJNzgxNzU1ODYxMzY1QTFCMDAwOTNCRTJFIC8qIERhdGFUcmFuc2Zlckl0ZW1zLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc4MTc1NTg1MTM2
NUExQjAwMDkzQkUyRSAvKiBEYXRhVHJhbnNmZXJJdGVtcy5jcHAgKi87IH07CiAJCTc5QUM5MjE4
MTA5OTQ1QzgwMDIxMjY2RSAvKiBKU0NvbXBvc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlBQzkyMTYxMDk5NDVDODAwMjEyNjZF
IC8qIEpTQ29tcG9zaXRpb25FdmVudC5jcHAgKi87IH07CiAJCTc5QUM5MjE5MTA5OTQ1QzgwMDIx
MjY2RSAvKiBKU0NvbXBvc2l0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc5QUM5MjE3MTA5OTQ1QzgwMDIxMjY2RSAvKiBKU0NvbXBvc2l0
aW9uRXZlbnQuaCAqLzsgfTsKIAkJNzlGMkY1QTExMDkxOTM5QTAwMEQ4N0NCIC8qIENvbXBvc2l0
aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzlGMkY1OUUxMDkxOTM5QTAwMEQ4N0NCIC8qIENvbXBvc2l0aW9uRXZlbnQuY3BwICovOyB9
OwpAQCAtODMwOCw2ICs4MzA5LDcgQEAKIAkJNzdBMTdBQTMxMkYyOEIyQTAwNEUwMkY2IC8qIEpT
T0VTVmVydGV4QXJyYXlPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNPRVNWZXJ0ZXhBcnJheU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
N0VGNjJGMTEyRjlEQjc0MDBDNzdCRDIgLyogSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdE9FUy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc3RUY2MkYyMTJG
OURCNzQwMEM3N0JEMiAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc4MTc1NTg1MTM2NUExQjAwMDkzQkUyRSAvKiBE
YXRhVHJhbnNmZXJJdGVtcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBEYXRhVHJhbnNmZXJJdGVtcy5jcHA7IHBhdGggPSBkb20vRGF0YVRyYW5zZmVySXRlbXMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUFDOTIxNjEwOTk0NUM4MDAyMTI2NkUg
LyogSlNDb21wb3NpdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTQ29tcG9zaXRpb25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTc5QUM5MjE3MTA5OTQ1QzgwMDIxMjY2RSAvKiBKU0NvbXBvc2l0aW9uRXZlbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDb21wb3NpdGlvbkV2ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc5RjJGNTlFMTA5MTkzOUEwMDBEODdDQiAvKiBDb21w
b3NpdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENv
bXBvc2l0aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI3MzUs
NiArMTI3MzcsNyBAQAogCQkwODY3RDY5MUZFODQwMjhGQzAyQUFDMDcgLyogV2ViS2l0ICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk3ODE3NTU4NTEzNjVB
MUIwMDA5M0JFMkUgLyogRGF0YVRyYW5zZmVySXRlbXMuY3BwICovLAogCQkJCTY1Qzk3QUYyMDhF
QTkwODgwMEFDRDI3MyAvKiBjb25maWcuaCAqLywKIAkJCQlFREVDOTgwMjBBRUQ3RTE3MDA1OTEz
N0YgLyogV2ViQ29yZVByZWZpeC5oICovLAogCQkJCTkzMDcwNjEzMDlFMENBODIwMEIxN0ZFNCAv
KiBEZXJpdmVkU291cmNlcy5tYWtlICovLApAQCAtMjU4MDIsNiArMjU4MDUsNyBAQAogCQkJCTQz
NThFODg1MTM2MEEzM0IwMEU0NzQ4QyAvKiBTVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTE0RTBCQzU2MTM2MTQ4QTgwMDJBRDEyRSAvKiBKU0RPTVRva2VuTGlz
dEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzgxMEMxQjEzNjVBNDk2MDBFRDZFMzMg
LyogSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzgxNzU1ODYx
MzY1QTFCMDAwOTNCRTJFIC8qIERhdGFUcmFuc2Zlckl0ZW1zLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uY3BwCmluZGV4IDhlZWM4NjkuLjc4NzMx
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5jcHAKQEAgLTMxLDYgKzMx
LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtLmgi
CiAKKyNpbmNsdWRlICJDbGlwYm9hcmQuaCIKKwogI2lmIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lU
RU1TKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOCw2ICs0MCwzNSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjb25zdCBjaGFyIERhdGFUcmFuc2Zlckl0ZW06OmtpbmRTdHJpbmdbXSA9ICJz
dHJpbmciOwogY29uc3QgY2hhciBEYXRhVHJhbnNmZXJJdGVtOjpraW5kRmlsZVtdID0gImZpbGUi
OwogCitEYXRhVHJhbnNmZXJJdGVtOjpEYXRhVHJhbnNmZXJJdGVtKFJlZlB0cjxDbGlwYm9hcmQ+
IG93bmVyLCBjb25zdCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYgdHlwZSkKKyAgICA6IG1f
b3duZXIob3duZXIpCisgICAgLCBtX2tpbmQoa2luZCkKKyAgICAsIG1fdHlwZSh0eXBlKQorewor
fQorCitDbGlwYm9hcmQqIERhdGFUcmFuc2Zlckl0ZW06Om93bmVyKCkKK3sKKyAgICByZXR1cm4g
bV9vd25lci5nZXQoKTsKK30KKworU3RyaW5nIERhdGFUcmFuc2Zlckl0ZW06OmtpbmQoKSBjb25z
dAoreworICAgIGlmIChtX293bmVyLT5wb2xpY3koKSA9PSBDbGlwYm9hcmROdW1iKQorICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICByZXR1cm4gbV9raW5kOworfQorCitTdHJpbmcgRGF0
YVRyYW5zZmVySXRlbTo6dHlwZSgpIGNvbnN0Cit7CisgICAgaWYgKG1fb3duZXItPnBvbGljeSgp
ID09IENsaXBib2FyZE51bWIpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgIHJldHVy
biBtX3R5cGU7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5B
QkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGF0YVRyYW5zZmVySXRlbS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0u
aAppbmRleCBkNjQ4YzU2Li5kY2VjZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGF0YVRyYW5zZmVySXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJ
dGVtLmgKQEAgLTMzLDYgKzMzLDggQEAKIAogI2lmIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1T
KQogCisjaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCisKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKQEAgLTQwLDE5ICs0MiwzMSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEJsb2I7CiBjbGFzcyBTdHJpbmdDYWxsYmFjazsKK2NsYXNz
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKIGNsYXNzIERhdGFUcmFuc2Zlckl0ZW0gOiBwdWJs
aWMgUmVmQ291bnRlZDxEYXRhVHJhbnNmZXJJdGVtPiB7CiBwdWJsaWM6CiAgICAgfkRhdGFUcmFu
c2Zlckl0ZW0oKSB7fQogCisgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4g
Y3JlYXRlKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlKTsKKwogICAgIHN0YXRp
YyBjb25zdCBjaGFyIGtpbmRTdHJpbmdbXTsKICAgICBzdGF0aWMgY29uc3QgY2hhciBraW5kRmls
ZVtdOwogCi0gICAgdmlydHVhbCBTdHJpbmcga2luZCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFs
IFN0cmluZyB0eXBlKCkgY29uc3QgPSAwOworICAgIFN0cmluZyBraW5kKCkgY29uc3Q7CisgICAg
U3RyaW5nIHR5cGUoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXRBc1N0cmluZyhQYXNz
UmVmUHRyPFN0cmluZ0NhbGxiYWNrPikgPSAwOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxCbG9i
PiBnZXRBc0ZpbGUoKSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICBEYXRhVHJhbnNmZXJJdGVtKFJl
ZlB0cjxDbGlwYm9hcmQ+IG93bmVyLCBjb25zdCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYg
dHlwZSk7CisgICAgQ2xpcGJvYXJkKiBvd25lcigpOworCitwcml2YXRlOgorICAgIGNvbnN0IFJl
ZlB0cjxDbGlwYm9hcmQ+IG1fb3duZXI7CisgICAgY29uc3QgU3RyaW5nIG1fa2luZDsKKyAgICBj
b25zdCBTdHJpbmcgbV90eXBlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNDBlOTIzZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EYXRhVHJhbnNmZXJJdGVtcy5jcHAKQEAgLTAsMCArMSwxMDQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbXMuaCIKKworI2luY2x1
ZGUgIkRhdGFUcmFuc2Zlckl0ZW0uaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisKKyNp
ZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitE
YXRhVHJhbnNmZXJJdGVtczo6RGF0YVRyYW5zZmVySXRlbXMoUmVmUHRyPENsaXBib2FyZD4gY2xp
cGJvYXJkLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorICAgIDogbV9vd25lcihj
bGlwYm9hcmQpCisgICAgLCBtX2NvbnRleHQoY29udGV4dCkKK3sKK30KKworc2l6ZV90IERhdGFU
cmFuc2Zlckl0ZW1zOjpsZW5ndGgoKSBjb25zdAoreworICAgIGlmIChtX293bmVyLT5wb2xpY3ko
KSA9PSBDbGlwYm9hcmROdW1iKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBtX2l0
ZW1zLnNpemUoKTsKK30KKworUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiBEYXRhVHJhbnNm
ZXJJdGVtczo6aXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KQoreworICAgIGlmIChtX293bmVyLT5w
b2xpY3koKSA9PSBDbGlwYm9hcmROdW1iIHx8IGluZGV4ID49IGxlbmd0aCgpKQorICAgICAgICBy
ZXR1cm4gMDsKKworICAgIHJldHVybiBtX2l0ZW1zW2luZGV4XTsKK30KKwordm9pZCBEYXRhVHJh
bnNmZXJJdGVtczo6ZGVsZXRlSXRlbSh1bnNpZ25lZCBsb25nIGluZGV4LCBFeGNlcHRpb25Db2Rl
JiBlYykKK3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJvYXJkV3JpdGFibGUp
IHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGlmIChpbmRleCA+PSBsZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9pdGVtcy5yZW1vdmUoaW5kZXgpOworfQorCit2b2lkIERhdGFUcmFuc2Zlckl0ZW1zOjpjbGVh
cigpCit7CisgICAgaWYgKG1fb3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFdyaXRhYmxlKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX2l0ZW1zLmNsZWFyKCk7CisKK30KKwordm9pZCBEYXRh
VHJhbnNmZXJJdGVtczo6YWRkKGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBl
LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xp
cGJvYXJkV3JpdGFibGUpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIE9ubHkgb25lICdzdHJp
bmcnIGl0ZW0gd2l0aCBhIGdpdmVuIHR5cGUgaXMgYWxsb3dlZCBpbiB0aGUgY29sbGVjdGlvbi4K
KyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1faXRlbXMuc2l6ZSgpOyArK2kpIHsKKyAgICAg
ICAgaWYgKG1faXRlbXNbaV0tPnR5cGUoKSA9PSB0eXBlICYmIG1faXRlbXNbaV0tPmtpbmQoKSA9
PSBEYXRhVHJhbnNmZXJJdGVtOjpraW5kU3RyaW5nKSB7CisgICAgICAgICAgICBlYyA9IElOVkFM
SURfU1RBVEVfRVJSOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisg
ICAgbV9pdGVtcy5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKG1fb3duZXIsIG1fY29u
dGV4dCwgZGF0YSwgdHlwZSkpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0
YVRyYW5zZmVySXRlbXMuaAppbmRleCAwODczMzg0Li5kYzZiMmJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRGF0YVRyYW5zZmVySXRlbXMuaApAQCAtMzMsMTIgKzMzLDEzIEBACiAKICNpZiBFTkFCTEUo
REFUQV9UUkFOU0ZFUl9JVEVNUykKIAorI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW0uaCIKICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRGF0YVRyYW5zZmVySXRlbTsKK2NsYXNzIENsaXBi
b2FyZDsKIAogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIApAQCAtNDYsMTIgKzQ3LDIxIEBA
IGNsYXNzIERhdGFUcmFuc2Zlckl0ZW1zIDogcHVibGljIFJlZkNvdW50ZWQ8RGF0YVRyYW5zZmVy
SXRlbXM+IHsKIHB1YmxpYzoKICAgICB+RGF0YVRyYW5zZmVySXRlbXMoKSB7fQogCi0gICAgdmly
dHVhbCB1bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4gaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KSBjb25zdCA9
IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCwgRXhj
ZXB0aW9uQ29kZSYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoKSA9IDA7CisgICAgdmly
dHVhbCBzaXplX3QgbGVuZ3RoKCkgY29uc3Q7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPERhdGFU
cmFuc2Zlckl0ZW0+IGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgdmlydHVhbCB2b2lk
IGRlbGV0ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZp
cnR1YWwgdm9pZCBjbGVhcigpOworICAgIHZpcnR1YWwgdm9pZCBhZGQoY29uc3QgU3RyaW5nJiBk
YXRhLCBjb25zdCBTdHJpbmcmIHR5cGUsIEV4Y2VwdGlvbkNvZGUmKTsKKworcHJvdGVjdGVkOgor
ICAgIERhdGFUcmFuc2Zlckl0ZW1zKFJlZlB0cjxDbGlwYm9hcmQ+LCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0Kik7CisKK3Byb3RlY3RlZDoKKyAgICBSZWZQdHI8Q2xpcGJvYXJkPiBtX293bmVyOwor
ICAgIC8vIEluZGlyZWN0bHkgb3duZWQgYnkgb3VyIHBhcmVudC4KKyAgICBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBtX2NvbnRleHQ7CisgICAgVmVjdG9yPFJlZlB0cjxEYXRhVHJhbnNmZXJJdGVt
PiA+IG1faXRlbXM7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkKGNvbnN0IFN0cmluZyYgZGF0YSwg
Y29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJikgPSAwOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5jcHAKaW5kZXggMjRiNDk4ZS4uOWNk
MmFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRy
YW5zZmVySXRlbUNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uY3BwCkBAIC01NywzNCArNTcsMjYgQEAgUGFz
c1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0+IERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1
bTo6Y3JlYXRlKFBhc3NSZWZQdHIKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERhdGFUcmFuc2Zl
ckl0ZW1DaHJvbWl1bShvd25lciwgY29udGV4dCwgSW50ZXJuYWxTb3VyY2UsIERhdGFUcmFuc2Zl
ckl0ZW06OmtpbmRTdHJpbmcsIHR5cGUsIGRhdGEpKTsKIH0KIAorUGFzc1JlZlB0cjxEYXRhVHJh
bnNmZXJJdGVtPiBEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+
IG93bmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgZGF0YSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICByZXR1cm4gRGF0YVRyYW5zZmVySXRlbUNocm9taXVt
OjpjcmVhdGUob3duZXIsIGNvbnRleHQsIGRhdGEsIHR5cGUpOworfQorCiBEYXRhVHJhbnNmZXJJ
dGVtQ2hyb21pdW06OkRhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bShQYXNzUmVmUHRyPENsaXBib2Fy
ZD4gb3duZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIERhdGFTb3VyY2Ugc291
cmNlLCBjb25zdCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5n
JiBkYXRhKQotICAgIDogbV9vd25lcihvd25lcikKKyAgICA6IERhdGFUcmFuc2Zlckl0ZW0ob3du
ZXIsIGtpbmQsIHR5cGUpCiAgICAgLCBtX2NvbnRleHQoY29udGV4dCkKICAgICAsIG1fc291cmNl
KHNvdXJjZSkKLSAgICAsIG1fa2luZChraW5kKQotICAgICwgbV90eXBlKHR5cGUpCiAgICAgLCBt
X2RhdGEoZGF0YSkKIHsKIH0KIAotU3RyaW5nIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6a2lu
ZCgpIGNvbnN0Ci17Ci0gICAgaWYgKG1fb3duZXItPnBvbGljeSgpID09IENsaXBib2FyZE51bWIp
Ci0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICByZXR1cm4gbV9raW5kOwotfQotCi1TdHJp
bmcgRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjp0eXBlKCkgY29uc3QKLXsKLSAgICBpZiAobV9v
d25lci0+cG9saWN5KCkgPT0gQ2xpcGJvYXJkTnVtYikKLSAgICAgICAgcmV0dXJuIFN0cmluZygp
OwotICAgIHJldHVybiBtX3R5cGU7Ci19Ci0KIHZvaWQgRGF0YVRyYW5zZmVySXRlbUNocm9taXVt
OjpnZXRBc1N0cmluZyhQYXNzUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiBjYWxsYmFjaykKIHsKLSAg
ICBpZiAoKG1fb3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFJlYWRhYmxlICYmIG1fb3duZXIt
PnBvbGljeSgpICE9IENsaXBib2FyZFdyaXRhYmxlKQotICAgICAgICB8fCBtX2tpbmQgIT0ga2lu
ZFN0cmluZykKKyAgICBpZiAoKG93bmVyKCktPnBvbGljeSgpICE9IENsaXBib2FyZFJlYWRhYmxl
ICYmIG93bmVyKCktPnBvbGljeSgpICE9IENsaXBib2FyZFdyaXRhYmxlKQorICAgICAgICB8fCBr
aW5kKCkgIT0ga2luZFN0cmluZykKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChtX3NvdXJjZSA9
PSBJbnRlcm5hbFNvdXJjZSkgewogICAgICAgICBjYWxsYmFjay0+c2NoZWR1bGVDYWxsYmFjayht
X2NvbnRleHQsIG1fZGF0YSk7CkBAIC05MywxMSArODUsMTEgQEAgdm9pZCBEYXRhVHJhbnNmZXJJ
dGVtQ2hyb21pdW06OmdldEFzU3RyaW5nKFBhc3NSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+IGNhbGxi
YWNrKQogCiAgICAgQVNTRVJUKG1fc291cmNlID09IFBhc3RlYm9hcmRTb3VyY2UpOwogICAgIC8v
IFRoaXMgaXMgdWdseSBidXQgdGhlcmUncyBubyByZWFsIGFsdGVybmF0aXZlLgotICAgIGlmICht
X3R5cGUgPT0gbWltZVR5cGVUZXh0UGxhaW4pIHsKKyAgICBpZiAodHlwZSgpID09IG1pbWVUeXBl
VGV4dFBsYWluKSB7CiAgICAgICAgIGNhbGxiYWNrLT5zY2hlZHVsZUNhbGxiYWNrKG1fY29udGV4
dCwgUGxhdGZvcm1CcmlkZ2U6OmNsaXBib2FyZFJlYWRQbGFpblRleHQoUGFzdGVib2FyZFByaXZh
dGU6OlN0YW5kYXJkQnVmZmVyKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgaWYgKG1f
dHlwZSA9PSBtaW1lVHlwZVRleHRIVE1MKSB7CisgICAgaWYgKHR5cGUoKSA9PSBtaW1lVHlwZVRl
eHRIVE1MKSB7CiAgICAgICAgIFN0cmluZyBodG1sOwogICAgICAgICBLVVJMIGlnbm9yZWRTb3Vy
Y2VVUkw7CiAgICAgICAgIFBsYXRmb3JtQnJpZGdlOjpjbGlwYm9hcmRSZWFkSFRNTChQYXN0ZWJv
YXJkUHJpdmF0ZTo6U3RhbmRhcmRCdWZmZXIsICZodG1sLCAmaWdub3JlZFNvdXJjZVVSTCk7CkBA
IC0xMTMsNyArMTA1LDcgQEAgUGFzc1JlZlB0cjxCbG9iPiBEYXRhVHJhbnNmZXJJdGVtQ2hyb21p
dW06OmdldEFzRmlsZSgpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgQVNTRVJUKG1fc291cmNl
ID09IFBhc3RlYm9hcmRTb3VyY2UpOwotICAgIGlmIChtX3R5cGUgPT0gbWltZVR5cGVJbWFnZVBu
ZykgeworICAgIGlmICh0eXBlKCkgPT0gbWltZVR5cGVJbWFnZVBuZykgewogICAgICAgICAvLyBG
SVhNRTogVGhpcyBpcyBwcmV0dHkgaW5lZmZpY2llbnQuIFdlIGNvcHkgdGhlIGRhdGEgZnJvbSB0
aGUgYnJvd3NlcgogICAgICAgICAvLyB0byB0aGUgcmVuZGVyZXIuIFdlIHRoZW4gcGxhY2UgaXQg
aW4gYSBibG9iIGluIFdlYktpdCwgd2hpY2gKICAgICAgICAgLy8gcmVnaXN0ZXJzIGl0IGFuZCBj
b3BpZXMgaXQgKmJhY2sqIHRvIHRoZSBicm93c2VyLiBXaGVuIGEgY29uc3VtZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJv
bWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRl
bUNocm9taXVtLmgKaW5kZXggNjZiZTk2ZS4uMTQ0ZTQwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVt
LmgKQEAgLTQ3LDkgKzQ3LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFU
cmFuc2Zlckl0ZW1DaHJvbWl1bT4gY3JlYXRlRnJvbVBhc3RlYm9hcmQoUGFzc1JlZlB0cjxDbGlw
Ym9hcmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiB0eXBl
KTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0+IGNyZWF0
ZShQYXNzUmVmUHRyPENsaXBib2FyZD4gb3duZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBj
b25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSk7CiAKLSAgICB2aXJ0dWFsIFN0
cmluZyBraW5kKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBTdHJpbmcgdHlwZSgpIGNvbnN0OwotCiAg
ICAgdmlydHVhbCB2b2lkIGdldEFzU3RyaW5nKFBhc3NSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+KTsK
ICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8QmxvYj4gZ2V0QXNGaWxlKCk7CiAKQEAgLTYxLDExICs1
OCw4IEBAIHByaXZhdGU6CiAKICAgICBEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0oUGFzc1JlZlB0
cjxDbGlwYm9hcmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRGF0YVNvdXJjZSwg
Y29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZGF0
YSk7CiAKLSAgICBjb25zdCBSZWZQdHI8Q2xpcGJvYXJkPiBtX293bmVyOwogICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIG1fY29udGV4dDsKICAgICBjb25zdCBEYXRhU291cmNlIG1fc291cmNl
OwotICAgIGNvbnN0IFN0cmluZyBtX2tpbmQ7Ci0gICAgY29uc3QgU3RyaW5nIG1fdHlwZTsKICAg
ICBjb25zdCBTdHJpbmcgbV9kYXRhOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmNwcApp
bmRleCA0MThiOGI1Li5jNjg0Y2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmNwcApAQCAt
NDUsNjIgKzQ1LDEwIEBAIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bT4gRGF0
YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6Y3JlYXRlKFBhc3NSZWZQCiB9CiAKIERhdGFUcmFuc2Zl
ckl0ZW1zQ2hyb21pdW06OkRhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0oUGFzc1JlZlB0cjxDbGlw
Ym9hcmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQotICAgIDogbV9v
d25lcihvd25lcikKLSAgICAsIG1fY29udGV4dChjb250ZXh0KQorICAgIDogRGF0YVRyYW5zZmVy
SXRlbXMob3duZXIsIGNvbnRleHQpCiB7CiB9CiAKLXVuc2lnbmVkIGxvbmcgRGF0YVRyYW5zZmVy
SXRlbXNDaHJvbWl1bTo6bGVuZ3RoKCkgY29uc3QKLXsKLSAgICBpZiAobV9vd25lci0+cG9saWN5
KCkgPT0gQ2xpcGJvYXJkTnVtYikKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIG1faXRl
bXMuc2l6ZSgpOwotfQotCi1QYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW0+IERhdGFUcmFuc2Zl
ckl0ZW1zQ2hyb21pdW06Oml0ZW0odW5zaWduZWQgbG9uZyBpbmRleCkgY29uc3QKLXsKLSAgICBp
ZiAobV9vd25lci0+cG9saWN5KCkgPT0gQ2xpcGJvYXJkTnVtYiB8fCBpbmRleCA+PSBsZW5ndGgo
KSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIG1faXRlbXNbaW5kZXhdOwotfQotCi12
b2lkIERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06OmRlbGV0ZUl0ZW0odW5zaWduZWQgbG9uZyBp
bmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKG1fb3duZXItPnBvbGljeSgpICE9
IENsaXBib2FyZFdyaXRhYmxlKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoaW5kZXggPj0gbGVuZ3RoKCkpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIG1faXRlbXMucmVtb3ZlKGluZGV4KTsKLX0KLQotdm9pZCBEYXRh
VHJhbnNmZXJJdGVtc0Nocm9taXVtOjpjbGVhcigpCi17Ci0gICAgaWYgKG1fb3duZXItPnBvbGlj
eSgpICE9IENsaXBib2FyZFdyaXRhYmxlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2l0ZW1z
LmNsZWFyKCk7Ci19Ci0KLXZvaWQgRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6YWRkKGNvbnN0
IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJiBlYykKLXsK
LSAgICBpZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJvYXJkV3JpdGFibGUpCi0gICAgICAg
IHJldHVybjsKLQotICAgIC8vIE9ubHkgb25lICdzdHJpbmcnIGl0ZW0gd2l0aCBhIGdpdmVuIHR5
cGUgaXMgYWxsb3dlZCBpbiB0aGUgY29sbGVjdGlvbi4KLSAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IG1faXRlbXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgaWYgKG1faXRlbXNbaV0tPnR5cGUo
KSA9PSB0eXBlICYmIG1faXRlbXNbaV0tPmtpbmQoKSA9PSBEYXRhVHJhbnNmZXJJdGVtOjpraW5k
U3RyaW5nKSB7Ci0gICAgICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgbV9pdGVtcy5hcHBlbmQoRGF0YVRy
YW5zZmVySXRlbUNocm9taXVtOjpjcmVhdGUobV9vd25lciwgbV9jb250ZXh0LCBkYXRhLCB0eXBl
KSk7Ci19Ci0KIHZvaWQgRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6YWRkUGFzdGVib2FyZEl0
ZW0oY29uc3QgU3RyaW5nJiB0eXBlKQogewogICAgIG1faXRlbXMuYXBwZW5kKERhdGFUcmFuc2Zl
ckl0ZW1DaHJvbWl1bTo6Y3JlYXRlRnJvbVBhc3RlYm9hcmQobV9vd25lciwgbV9jb250ZXh0LCB0
eXBlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRh
VHJhbnNmZXJJdGVtc0Nocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmgKaW5kZXggNTFjNGZkYi4uZDA5OWEyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRl
bXNDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFU
cmFuc2Zlckl0ZW1zQ2hyb21pdW0uaApAQCAtNDksMjQgKzQ5LDEyIEBAIGNsYXNzIERhdGFUcmFu
c2Zlckl0ZW1zQ2hyb21pdW0gOiBwdWJsaWMgRGF0YVRyYW5zZmVySXRlbXMgewogcHVibGljOgog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0+IGNyZWF0ZShQ
YXNzUmVmUHRyPENsaXBib2FyZD4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKIAotICAgIHZp
cnR1YWwgdW5zaWduZWQgbG9uZyBsZW5ndGgoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8RGF0YVRyYW5zZmVySXRlbT4gaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KSBjb25zdDsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGVsZXRlSXRlbSh1bnNpZ25lZCBsb25nIGluZGV4LCBFeGNlcHRpb25D
b2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyKCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgYWRk
KGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJik7
Ci0KIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIENsaXBib2FyZENocm9taXVtOwogCiAgICAg
RGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bShQYXNzUmVmUHRyPENsaXBib2FyZD4sIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBhZGRQYXN0ZWJvYXJkSXRlbShj
b25zdCBTdHJpbmcmIHR5cGUpOwotCi0gICAgUmVmUHRyPENsaXBib2FyZD4gbV9vd25lcjsKLSAg
ICAvLyBJbmRpcmVjdGx5IG93bmVkIGJ5IG91ciBwYXJlbnQuCi0gICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogbV9jb250ZXh0OwotICAgIFZlY3RvcjxSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUNo
cm9taXVtPiA+IG1faXRlbXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0tIAoxLjcu
MQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>