<?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>46430</bug_id>
          
          <creation_ts>2010-09-23 16:49:09 -0700</creation_ts>
          <short_desc>Platform specific ResourceResponse and ResourceRequest can&apos;t fully cross threads.</short_desc>
          <delta_ts>2010-09-30 00:51:19 -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>Platform</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>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Nordman">michaeln</reporter>
          <assigned_to name="Michael Nordman">michaeln</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fishd</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>284101</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-09-23 16:49:09 -0700</bug_when>
    <thetext>Platform specific ResourceResponse and ResourceRequest classes have no means to copy their data via across threads. The CrossThreadResourceRequestData and CrossThreadResourceResponseData structs are fully defined in common code as are the methods to copyData() and adopt(copiedData).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286506</commentid>
    <comment_count>1</comment_count>
      <attachid>69096</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-09-28 13:49:35 -0700</bug_when>
    <thetext>Created attachment 69096
crossThread patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286510</commentid>
    <comment_count>2</comment_count>
      <attachid>69098</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-09-28 13:56:12 -0700</bug_when>
    <thetext>Created attachment 69098
crossThread patch

Fixed typos in the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286595</commentid>
    <comment_count>3</comment_count>
      <attachid>69098</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-09-28 15:53:33 -0700</bug_when>
    <thetext>Comment on attachment 69098
crossThread patch

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

Awesome!

&gt; WebCore/platform/network/ResourceRequestBase.h:143
&gt; +        static bool compare(const ResourceRequest&amp; a, const ResourceRequest&amp; b);

When I see &quot;compare&quot;, I think stpcmp and expect that 0 means equal. How about isSame or isEqual or equivalent, etc.? Ugh, I see ResourceResponse already has this. I still hate the name but consistency is good, so nevermind :(


Do this: omit &quot;a&quot; and &quot;b&quot; as they add no information. (Yes, ResourceResponseBase.h does the same thing but it is wrong and consistency here adds no value.)

&gt; WebCore/platform/network/android/ResourceRequest.h:58
&gt; +    void doPlatformAdopt(PassOwnPtr&lt;CrossThreadResourceRequestData&gt; data) { }

Omit data here or else you will get unused variable erros/warnings on some platforms (throughout).

&gt; WebCore/platform/network/chromium/ResourceRequest.h:93
&gt; +        PassOwnPtr&lt;CrossThreadResourceRequestData&gt; doPlatformCopyData(PassOwnPtr&lt;CrossThreadResourceRequestData&gt; data) const;

Omit param name &quot;data&quot; here as it adds no information.

&gt; WebCore/platform/network/chromium/ResourceRequest.h:94
&gt; +        void doPlatformAdopt(PassOwnPtr&lt;CrossThreadResourceRequestData&gt; data);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286609</commentid>
    <comment_count>4</comment_count>
      <attachid>69126</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-09-28 16:13:41 -0700</bug_when>
    <thetext>Created attachment 69126
crossThread patch

Done... removed param names where possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286629</commentid>
    <comment_count>5</comment_count>
      <attachid>69126</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-09-28 16:47:43 -0700</bug_when>
    <thetext>Comment on attachment 69126
crossThread patch

Needs minor clean up of nits as discussed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286630</commentid>
    <comment_count>6</comment_count>
      <attachid>69134</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-09-28 16:48:03 -0700</bug_when>
    <thetext>Created attachment 69134
crossThread patch

Fixed a typo in the changeLog, removed param names from ResourceResponseBase::compare, deleted a blank line in ResourceResponseBase.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286666</commentid>
    <comment_count>7</comment_count>
      <attachid>69134</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-28 17:38:58 -0700</bug_when>
    <thetext>Comment on attachment 69134
crossThread patch

Rejecting patch 69134 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build&apos;, &apos;--build-style=both&apos;, &apos;--quiet&apos;]&quot; exit_code: 2
Building WebKit
Failed to run &quot;[&apos;WebKitTools/Scripts/build-webkit&apos;, &apos;--debug&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/4163008</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286683</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-09-28 18:24:34 -0700</bug_when>
    <thetext>bumping heads with http://trac.webkit.org/changeset/68510?

i&apos;ll update my client</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286687</commentid>
    <comment_count>9</comment_count>
      <attachid>69150</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-09-28 18:37:00 -0700</bug_when>
    <thetext>Created attachment 69150
crossThread patch

updated my client and created a new patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286721</commentid>
    <comment_count>10</comment_count>
      <attachid>69150</attachid>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-09-28 20:32:52 -0700</bug_when>
    <thetext>Comment on attachment 69150
crossThread patch

rs=me, based on dave&apos;s r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286722</commentid>
    <comment_count>11</comment_count>
      <attachid>69150</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-28 21:00:46 -0700</bug_when>
    <thetext>Comment on attachment 69150
crossThread patch

Rejecting patch 69150 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build&apos;, &apos;--build-style=both&apos;, &apos;--quiet&apos;]&quot; exit_code: 2
Building WebKit
Failed to run &quot;[&apos;WebKitTools/Scripts/build-webkit&apos;, &apos;--debug&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/4202007</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286723</commentid>
    <comment_count>12</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-09-28 21:14:09 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 69150 [details])
&gt; Rejecting patch 69150 from commit-queue.
&gt; 
&gt; Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build&apos;, &apos;--build-style=both&apos;, &apos;--quiet&apos;]&quot; exit_code: 2
&gt; Building WebKit
&gt; Failed to run &quot;[&apos;WebKitTools/Scripts/build-webkit&apos;, &apos;--debug&apos;]&quot; exit_code: 1
&gt; 
&gt; Full output: http://queues.webkit.org/results/4202007

I guess that&apos;s not a merge conflict after all?
WebKitTools/Scripts/build-webkit fails

Looking...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286740</commentid>
    <comment_count>13</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-09-28 23:06:15 -0700</bug_when>
    <thetext>A link error on mac.

Ld /Users/michaeln/webkit/1/webkit/WebKitBuild/Release/WebCore.framework/Versions/A/WebCore normal i386
 .....
Undefined symbols:
  &quot;__ZN7WebCoreeqERKNS_19ResourceRequestBaseES2_&quot;, referenced from:
     -exported_symbols_list command line option
ld: symbol(s) not found
collect2: ld returned 1 exit status</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286747</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-09-28 23:34:23 -0700</bug_when>
    <thetext>Ok... need to delete a symbol in WebCore.exp.in</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287075</commentid>
    <comment_count>15</comment_count>
      <attachid>69241</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-09-29 12:57:30 -0700</bug_when>
    <thetext>Created attachment 69241
crossThread patch

removed the now inlined export from webcore.exp.in</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287417</commentid>
    <comment_count>16</comment_count>
      <attachid>69241</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-30 00:51:13 -0700</bug_when>
    <thetext>Comment on attachment 69241
crossThread patch

Clearing flags on attachment: 69241

Committed r68762: &lt;http://trac.webkit.org/changeset/68762&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287418</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-30 00:51:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69096</attachid>
            <date>2010-09-28 13:49:35 -0700</date>
            <delta_ts>2010-09-28 13:56:12 -0700</delta_ts>
            <desc>crossThread patch</desc>
            <filename>cross.txt</filename>
            <type>text/plain</type>
            <size>26126</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODU1NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsODAgQEAKKzIwMTAtMDktMjggIE1pY2hhZWwgTm9yZG1hbiAgPG1pY2hhZWxuQGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTWFrZSBpdCBwb3NzaWJsZSB0byBjb3B5IHBsYXRmb3JtIHNwZWNpZmljIGRhdGEgbWVtYmVy
cyBvZiBSZXNvdXJjZVJlcXVlc3QgYW5kIFJlc291cmNlUmVzcG9uc2UKKyAgICAgICAgYWNyb3Nz
IHRocmVhZHMgYW5kIHRvIGNvbXBhcmUgcGxhdGZvcm0gc3BlY2lmaWMgZGF0YSBtZW1iZXJzIG9m
IFJlc291cmNlUmVxdWVzdC4KKyAgICAgICAgLSBBZGRlZCB0d28gaW5zdGFuY2UgbWV0aG9kcyB0
byB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgc3ViY2xhc3NlczogZG9QbGF0Zm9ybUFkb3B0IGFuZCBk
b1BsYXRmb3JtQ29weURhdGEuCisgICAgICAgIC0gQWxzbyBhZGRlZCBhICJzaGFkb3dhYmxlIiBz
dGF0aWMgbWV0aG9kIGZvciBwbGF0Zm9ybUNvbXBhcmUgdG8gUmVzb3VyY2VSZXF1ZXN0QmFzZTsg
YSBzaW1pbGFyIG1ldGhvZAorICAgICAgICAgIGlzIGFscmVhZHkgcHJlc2VudCBvbiBSZXNvdXJj
ZVJlc3BvbnNlQmFzZS4KKyAgICAgICAgLSBDb252ZXJ0ZWQgdGhlIGNyb3NzIHRocmVhZCBzdHJ1
Y3RzIGRlZmluZWQgaW4gUmVzb3VyY2VSZXF1ZXN0L1Jlc3BvbnNlQmFzZS5oIHRvIGJhc2UKKyAg
ICAgICAgICBjbGFzc2VzIGFuZCBleHRlbmRlZCB0aG9zZSBiYXNlIGNsYXNzZXMgaW4gdGhlIHBs
YXRmb3JtIHNwZWNpZmljIGhlYWRlcnMgdG8gZG8gaG9sZAorICAgICAgICAgIGFkZGl0aW9uYWwg
ZmllbGRzLgorICAgICAgICAtIFVzZWQgdGhpcyBtZWNoYW5zaW1zIHRvIGhhdmUgdGhlIGNocm9t
aXVtIHBvcnQncyBkYXRhIG1lbWJlcnMgbWFrZSB0aGUgaG9wLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY0MzAKKworICAgICAgICBObyBuZXcgdGVz
dHMuIEp1c3QgcGx1bWJpbmcuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OmFkb3B0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdEJhc2U6OmNvcHlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdEJhc2U6OmNvbXBhcmUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VS
ZXF1ZXN0QmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6cGxh
dGZvcm1Db21wYXJlKToKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPT0pOgorICAgICAgICAo
V2ViQ29yZTo6b3BlcmF0b3IhPSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZVJlc3BvbnNlQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlQmFz
ZTo6YXNSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2VCYXNlOjphZG9wdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZTo6
Y29weURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJh
c2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2FuZHJvaWQvUmVzb3VyY2VSZXF1ZXN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1Db3B5RGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1BZG9wdCk6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9hbmRyb2lkL1Jlc291cmNlUmVzcG9uc2UuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1Db3B5RGF0YSk6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1BsYXRmb3JtQWRvcHQpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1Db3B5RGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlOjpkb1BsYXRmb3JtQ29weURhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZTo6ZG9QbGF0Zm9ybUFkb3B0KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVzcG9uc2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1BsYXRmb3JtQWRvcHQpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXNwb25zZS5oOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUFkb3B0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvUmVzb3VyY2VSZXNwb25zZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZTo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9tYWMvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3Q6OmRvUGxhdGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3Q6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVz
b3VyY2VSZXNwb25zZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6ZG9Q
bGF0Zm9ybUNvcHlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRv
UGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZVJl
cXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUNv
cHlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUFk
b3B0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlUmVzcG9uc2UuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1Db3B5RGF0YSk6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1BsYXRmb3JtQWRvcHQpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUFkb3B0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZTo6ZG9VcGRhdGVSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1Db3B5RGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1BsYXRmb3JtQWRvcHQpOgorCiAyMDEw
LTA5LTI4ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBTYW0gV2VpbmlnLgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDY4NDc3KQorKysgV2ViQ29yZS9XZWJD
b3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTI4NDksNiArMjg0OSw3IEBACiAgICAgICAgICAg
ICAncGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUVycm9yLmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0LmNwcCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuaCcsCisg
ICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlc3BvbnNlLmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlc3Bv
bnNlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vU29ja2V0U3Ry
ZWFtRXJyb3IuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9Tb2Nr
ZXRTdHJlYW1IYW5kbGUuaCcsCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VSZXF1ZXN0QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwCShyZXZpc2lvbiA2ODQ3NykKKysrIFdlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NjUsNiArNjUsNyBAQCBQYXNzT3duUHRyPFJlc291cmNlUmVxdWVzdD4gUmVzb3VyY2VSZXF1CiAg
ICAgfQogICAgIHJlcXVlc3QtPnNldEhUVFBCb2R5KGRhdGEtPm1faHR0cEJvZHkpOwogICAgIHJl
cXVlc3QtPnNldEFsbG93Q29va2llcyhkYXRhLT5tX2FsbG93Q29va2llcyk7CisgICAgcmVxdWVz
dC0+ZG9QbGF0Zm9ybUFkb3B0KGRhdGEpOwogICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsK
IH0KIApAQCAtODcsNyArODgsNyBAQCBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1
ZXN0RGF0CiAgICAgaWYgKG1faHR0cEJvZHkpCiAgICAgICAgIGRhdGEtPm1faHR0cEJvZHkgPSBt
X2h0dHBCb2R5LT5kZWVwQ29weSgpOwogICAgIGRhdGEtPm1fYWxsb3dDb29raWVzID0gbV9hbGxv
d0Nvb2tpZXM7Ci0gICAgcmV0dXJuIGRhdGEucmVsZWFzZSgpOworICAgIHJldHVybiBhc1Jlc291
cmNlUmVxdWVzdCgpLmRvUGxhdGZvcm1Db3B5RGF0YShkYXRhLnJlbGVhc2UoKSk7CiB9CiAKIGJv
b2wgUmVzb3VyY2VSZXF1ZXN0QmFzZTo6aXNFbXB0eSgpIGNvbnN0CkBAIC0zNTUsNyArMzU2LDcg
QEAgYm9vbCBlcXVhbElnbm9yaW5nSGVhZGVyRmllbGRzKGNvbnN0IFJlcwogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIG9wZXJhdG9yPT0oY29uc3QgUmVzb3VyY2VSZXF1ZXN0QmFzZSYgYSwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0QmFzZSYgYikKK2Jvb2wgUmVzb3VyY2VSZXF1ZXN0QmFzZTo6
Y29tcGFyZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGEsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
YikKIHsKICAgICBpZiAoIWVxdWFsSWdub3JpbmdIZWFkZXJGaWVsZHMoYSwgYikpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKQEAgLTM2Myw3ICszNjQsNyBAQCBib29sIG9wZXJhdG9yPT0oY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0QmFzCiAgICAgaWYgKGEuaHR0cEhlYWRlckZpZWxkcygpICE9IGIuaHR0
cEhlYWRlckZpZWxkcygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAotICAgIHJl
dHVybiB0cnVlOworICAgIHJldHVybiBSZXNvdXJjZVJlcXVlc3Q6OnBsYXRmb3JtQ29tcGFyZShh
LCBiKTsKIH0KIAogYm9vbCBSZXNvdXJjZVJlcXVlc3RCYXNlOjppc0NvbmRpdGlvbmFsKCkgY29u
c3QKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJh
c2UuaAkocmV2aXNpb24gNjg0NzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VSZXF1ZXN0QmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDAsNiArMTQwLDggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICBUYXJnZXRUeXBlIHRhcmdldFR5cGUoKSBjb25zdCB7IHJl
dHVybiBtX3RhcmdldFR5cGU7IH0KICAgICAgICAgdm9pZCBzZXRUYXJnZXRUeXBlKFRhcmdldFR5
cGUgdHlwZSkgeyBtX3RhcmdldFR5cGUgPSB0eXBlOyB9CiAKKyAgICAgICAgc3RhdGljIGJvb2wg
Y29tcGFyZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGEsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
Yik7CisKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIC8vIFVzZWQgd2hlbiBSZXNvdXJjZVJlcXVl
c3QgaXMgaW5pdGlhbGl6ZWQgZnJvbSBhIHBsYXRmb3JtIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBy
ZXF1ZXN0CiAgICAgICAgIFJlc291cmNlUmVxdWVzdEJhc2UoKQpAQCAtMTY4LDYgKzE3MCw5IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCB1cGRhdGVQbGF0Zm9ybVJlcXVlc3Qo
KSBjb25zdDsgCiAgICAgICAgIHZvaWQgdXBkYXRlUmVzb3VyY2VSZXF1ZXN0KCkgY29uc3Q7IAog
CisgICAgICAgIC8vIFRoZSBSZXNvdXJjZVJlcXVlc3Qgc3ViY2xhc3MgbWF5ICJzaGFkb3ciIHRo
aXMgbWV0aG9kIHRvIGNvbXBhcmUgcGxhdGZvcm0gc3BlY2lmaWMgZmllbGRzCisgICAgICAgIHN0
YXRpYyBib29sIHBsYXRmb3JtQ29tcGFyZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmKSB7IHJldHVybiB0cnVlOyB9CisKICAgICAgICAgS1VSTCBtX3VybDsK
IAogICAgICAgICBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeSBtX2NhY2hlUG9saWN5OwpAQCAt
MTkwLDEwICsxOTUsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgYm9vbCBlcXVhbEln
bm9yaW5nSGVhZGVyRmllbGRzKGNvbnN0IFJlc291cmNlUmVxdWVzdEJhc2UmLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3RCYXNlJik7CiAKLSAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0QmFzZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdEJhc2UmKTsKLSAgICBpbmxpbmUgYm9v
bCBvcGVyYXRvciE9KFJlc291cmNlUmVxdWVzdEJhc2UmIGEsIGNvbnN0IFJlc291cmNlUmVxdWVz
dEJhc2UmIGIpIHsgcmV0dXJuICEoYSA9PSBiKTsgfQorICAgIGlubGluZSBib29sIG9wZXJhdG9y
PT0oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBhLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGIpIHsg
cmV0dXJuIFJlc291cmNlUmVxdWVzdEJhc2U6OmNvbXBhcmUoYSwgYik7IH0KKyAgICBpbmxpbmUg
Ym9vbCBvcGVyYXRvciE9KFJlc291cmNlUmVxdWVzdCYgYSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiBiKSB7IHJldHVybiAhKGEgPT0gYik7IH0KIAotICAgIHN0cnVjdCBDcm9zc1RocmVhZFJlc291
cmNlUmVxdWVzdERhdGEgOiBOb25jb3B5YWJsZSB7CisgICAgc3RydWN0IENyb3NzVGhyZWFkUmVz
b3VyY2VSZXF1ZXN0RGF0YUJhc2UgOiBOb25jb3B5YWJsZSB7CiAgICAgICAgIEtVUkwgbV91cmw7
CiAKICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3kgbV9jYWNoZVBvbGljeTsKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNl
LmNwcAkocmV2aXNpb24gNjg0NzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VSZXNwb25zZUJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSwxMSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyB2b2lkIHBhcnNlQ2FjaGVIZWFkZXIoY29uc3QgU3Ry
aW5nJiBoZWFkZXIsIFZlY3RvcjxwYWlyPFN0cmluZywgU3RyaW5nPiA+JiByZXN1bHQpOwogCitp
bmxpbmUgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgUmVzb3VyY2VSZXNwb25zZUJhc2U6OmFzUmVz
b3VyY2VSZXNwb25zZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICpzdGF0aWNfY2FzdDxjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlKj4odGhpcyk7Cit9CisKIFJlc291cmNlUmVzcG9uc2VCYXNlOjpSZXNv
dXJjZVJlc3BvbnNlQmFzZSgpICAKICAgICA6IG1fZXhwZWN0ZWRDb250ZW50TGVuZ3RoKDApCiAg
ICAgLCBtX2h0dHBTdGF0dXNDb2RlKDApCkBAIC0xMDcsNyArMTEyLDcgQEAgUGFzc093blB0cjxS
ZXNvdXJjZVJlc3BvbnNlPiBSZXNvdXJjZVJlcwogICAgIHJlc3BvbnNlLT5tX2h0dHBIZWFkZXJG
aWVsZHMuYWRvcHQoZGF0YS0+bV9odHRwSGVhZGVycy5yZWxlYXNlKCkpOwogICAgIHJlc3BvbnNl
LT5zZXRMYXN0TW9kaWZpZWREYXRlKGRhdGEtPm1fbGFzdE1vZGlmaWVkRGF0ZSk7CiAgICAgcmVz
cG9uc2UtPnNldFJlc291cmNlTG9hZFRpbWluZyhkYXRhLT5tX3Jlc291cmNlTG9hZFRpbWluZy5y
ZWxlYXNlKCkpOwotCisgICAgcmVzcG9uc2UtPmRvUGxhdGZvcm1BZG9wdChkYXRhKTsKICAgICBy
ZXR1cm4gcmVzcG9uc2UucmVsZWFzZSgpOwogfQogCkBAIC0xMjUsNyArMTMwLDggQEAgUGFzc093
blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYQogICAgIGRhdGEtPm1fbGFzdE1vZGlm
aWVkRGF0ZSA9IGxhc3RNb2RpZmllZERhdGUoKTsKICAgICBpZiAobV9yZXNvdXJjZUxvYWRUaW1p
bmcpCiAgICAgICAgIGRhdGEtPm1fcmVzb3VyY2VMb2FkVGltaW5nID0gbV9yZXNvdXJjZUxvYWRU
aW1pbmctPmRlZXBDb3B5KCk7Ci0gICAgcmV0dXJuIGRhdGEucmVsZWFzZSgpOworICAgIHJldHVy
biBhc1Jlc291cmNlUmVzcG9uc2UoKS5kb1BsYXRmb3JtQ29weURhdGEoZGF0YS5yZWxlYXNlKCkp
OworCiB9CiAKIGJvb2wgUmVzb3VyY2VSZXNwb25zZUJhc2U6OmlzSFRUUCgpIGNvbnN0CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaAko
cmV2aXNpb24gNjg0NzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNw
b25zZUJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ3LDYgKzE0Nyw3IEBAIHByb3RlY3RlZDoK
ICAgICBib29sIG1faXNOdWxsIDogMTsKICAgICAKIHByaXZhdGU6CisgICAgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgYXNSZXNvdXJjZVJlc3BvbnNlKCkgY29uc3Q7CiAgICAgdm9pZCBwYXJzZUNh
Y2hlQ29udHJvbERpcmVjdGl2ZXMoKSBjb25zdDsKIAogICAgIG11dGFibGUgYm9vbCBtX2hhdmVQ
YXJzZWRDYWNoZUNvbnRyb2xIZWFkZXIgOiAxOwpAQCAtMTY5LDcgKzE3MCw3IEBAIHByaXZhdGU6
CiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIGEsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIGIpIHsgcmV0dXJuIFJlc291cmNlUmVzcG9uc2VCYXNlOjpjb21w
YXJlKGEsIGIpOyB9CiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIGEsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIGIpIHsgcmV0dXJuICEoYSA9PSBiKTsgfQog
Ci1zdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YSA6IE5vbmNvcHlhYmxlIHsK
K3N0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhQmFzZSA6IE5vbmNvcHlhYmxl
IHsKICAgICBLVVJMIG1fdXJsOwogICAgIFN0cmluZyBtX21pbWVUeXBlOwogICAgIGxvbmcgbG9u
ZyBtX2V4cGVjdGVkQ29udGVudExlbmd0aDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9hbmRyb2lkL1Jlc291cmNlUmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9hbmRyb2lkL1Jlc291cmNlUmVxdWVzdC5oCShyZXZpc2lvbiA2ODQ3NykKKysr
IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9hbmRyb2lkL1Jlc291cmNlUmVxdWVzdC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01Myw2ICs1MywxMiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgZnJp
ZW5kIGNsYXNzIFJlc291cmNlUmVxdWVzdEJhc2U7CisKKyAgICBQYXNzT3duUHRyPENyb3NzVGhy
ZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKFBhc3NPd25QdHI8Q3Jv
c3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkYXRhKSBjb25zdCB7IHJldHVybiBkYXRhOyB9
CisgICAgdm9pZCBkb1BsYXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNl
UmVxdWVzdERhdGE+IGRhdGEpIHsgfQorfTsKKworc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VS
ZXF1ZXN0RGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGFCYXNlIHsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9hbmRyb2lkL1Jlc291cmNlUmVzcG9uc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvYW5kcm9pZC9SZXNvdXJjZVJlc3BvbnNlLmgJKHJldmlzaW9uIDY4NDc3
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2FuZHJvaWQvUmVzb3VyY2VSZXNwb25zZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0NiwxMiBAQCBwcml2YXRlOgogICAgIHsKICAgICAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICB9CisKKyAgICBQYXNzT3duUHRyPENyb3NzVGhyZWFk
UmVzb3VyY2VSZXNwb25zZURhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQYXNzT3duUHRyPENyb3Nz
VGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpIGNvbnN0IHsgcmV0dXJuIGRhdGE7IH0K
KyAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VS
ZXNwb25zZURhdGE+IGRhdGEpIHsgfQorfTsKKworc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VS
ZXNwb25zZURhdGEgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YUJhc2Ug
ewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaAkocmV2aXNpb24gNjg0NzcpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTY4LDEwICs2OCwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBk
b1VwZGF0ZVBsYXRmb3JtUmVxdWVzdCgpOwogICAgICAgICB2b2lkIGRvVXBkYXRlUmVzb3VyY2VS
ZXF1ZXN0KCk7Ci0gICAgICAgIAorCisgICAgICAgIFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNv
dXJjZVJlcXVlc3REYXRhPiBkb1BsYXRmb3JtQ29weURhdGEoUGFzc093blB0cjxDcm9zc1RocmVh
ZFJlc291cmNlUmVxdWVzdERhdGE+IGRhdGEpIGNvbnN0IHsgcmV0dXJuIGRhdGE7IH0KKyAgICAg
ICAgdm9pZCBkb1BsYXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVx
dWVzdERhdGE+IGRhdGEpIHsgfQorCiAgICAgICAgIFJldGFpblB0cjxDRlVSTFJlcXVlc3RSZWY+
IG1fY2ZSZXF1ZXN0OyAgICAgIAogICAgIH07CiAKKyAgICBzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNv
dXJjZVJlcXVlc3REYXRhIDogcHVibGljIENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YUJh
c2UgeworICAgIH07CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFJlc291
cmNlUmVxdWVzdF9oCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VS
ZXNwb25zZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZVJlc3BvbnNlLmgJKHJldmlzaW9uIDY4NDc3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlUmVzcG9uc2UuaAkod29ya2luZyBjb3B5KQpAQCAtNzAsMTIgKzcwLDE4
IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFJlc291cmNlUmVzcG9uc2VCYXNlOwogCiAg
ICAgdm9pZCBwbGF0Zm9ybUxhenlJbml0KCk7CisgICAgUGFzc093blB0cjxDcm9zc1RocmVhZFJl
c291cmNlUmVzcG9uc2VEYXRhPiBkb1BsYXRmb3JtQ29weURhdGEoUGFzc093blB0cjxDcm9zc1Ro
cmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBkYXRhKSBjb25zdCB7IHJldHVybiBkYXRhOyB9Cisg
ICAgdm9pZCBkb1BsYXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVz
cG9uc2VEYXRhPiBkYXRhKSB7IH0KKwogICAgIHN0YXRpYyBib29sIHBsYXRmb3JtQ29tcGFyZShj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiBhLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBiKTsKIAog
ICAgIFJldGFpblB0cjxDRlVSTFJlc3BvbnNlUmVmPiBtX2NmUmVzcG9uc2U7CiAgICAgYm9vbCBt
X2lzVXBUb0RhdGU7CiB9OwogCitzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0
YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhQmFzZSB7Cit9OworCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBSZXNvdXJjZVJlc3BvbnNlX2gKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJj
ZVJlcXVlc3QuY3BwCShyZXZpc2lvbiA2ODQ3NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw0ICsz
NywxOSBAQCB1bnNpZ25lZCBpbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uCiAgICAgcmV0
dXJuIDEwMDAwOwogfQogCitQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0
YT4gUmVzb3VyY2VSZXF1ZXN0Ojpkb1BsYXRmb3JtQ29weURhdGEoUGFzc093blB0cjxDcm9zc1Ro
cmVhZFJlc291cmNlUmVxdWVzdERhdGE+IGRhdGEpIGNvbnN0Cit7CisgICAgZGF0YS0+bV9yZXF1
ZXN0b3JJRCA9IG1fcmVxdWVzdG9ySUQ7CisgICAgZGF0YS0+bV9yZXF1ZXN0b3JQcm9jZXNzSUQg
PSBtX3JlcXVlc3RvclByb2Nlc3NJRDsKKyAgICBkYXRhLT5tX2FwcENhY2hlSG9zdElEID0gbV9h
cHBDYWNoZUhvc3RJRDsKKyAgICByZXR1cm4gZGF0YTsKK30KKwordm9pZCBSZXNvdXJjZVJlcXVl
c3Q6OmRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0
RGF0YT4gZGF0YSkKK3sKKyAgICBtX3JlcXVlc3RvcklEID0gZGF0YS0+bV9yZXF1ZXN0b3JJRDsK
KyAgICBtX3JlcXVlc3RvclByb2Nlc3NJRCA9IGRhdGEtPm1fcmVxdWVzdG9yUHJvY2Vzc0lEOwor
ICAgIG1fYXBwQ2FjaGVIb3N0SUQgPSBkYXRhLT5tX2FwcENhY2hlSG9zdElEOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21p
dW0vUmVzb3VyY2VSZXF1ZXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2Nocm9taXVtL1Jlc291cmNlUmVxdWVzdC5oCShyZXZpc2lvbiA2ODQ3NykKKysrIFdlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuaAkod29ya2luZyBj
b3B5KQpAQCAtOTAsNiArOTAsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lk
IGRvVXBkYXRlUGxhdGZvcm1SZXF1ZXN0KCkge30KICAgICAgICAgdm9pZCBkb1VwZGF0ZVJlc291
cmNlUmVxdWVzdCgpIHt9CiAKKyAgICAgICAgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNl
UmVxdWVzdERhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVz
b3VyY2VSZXF1ZXN0RGF0YT4gZGF0YSkgY29uc3Q7CisgICAgICAgIHZvaWQgZG9QbGF0Zm9ybUFk
b3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkYXRhKTsKKwor
ICAgICAgICBpbnQgbV9yZXF1ZXN0b3JJRDsKKyAgICAgICAgaW50IG1fcmVxdWVzdG9yUHJvY2Vz
c0lEOworICAgICAgICBpbnQgbV9hcHBDYWNoZUhvc3RJRDsKKyAgICB9OworCisgICAgc3RydWN0
IENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291
cmNlUmVxdWVzdERhdGFCYXNlIHsKICAgICAgICAgaW50IG1fcmVxdWVzdG9ySUQ7CiAgICAgICAg
IGludCBtX3JlcXVlc3RvclByb2Nlc3NJRDsKICAgICAgICAgaW50IG1fYXBwQ2FjaGVIb3N0SUQ7
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXNwb25z
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jl
c291cmNlUmVzcG9uc2UuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2Nocm9taXVtL1Jlc291cmNlUmVzcG9uc2UuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNw
b25zZURhdGE+IFJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1Db3B5RGF0YShQYXNzT3duUHRy
PENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpIGNvbnN0Cit7CisgICAgZGF0
YS0+bV9hcHBDYWNoZUlEID0gbV9hcHBDYWNoZUlEOworICAgIGRhdGEtPm1fYXBwQ2FjaGVNYW5p
ZmVzdFVSTCA9IG1fYXBwQ2FjaGVNYW5pZmVzdFVSTC5jb3B5KCk7CisgICAgZGF0YS0+bV9pc0Nv
bnRlbnRGaWx0ZXJlZCA9IG1faXNDb250ZW50RmlsdGVyZWQ7CisgICAgZGF0YS0+bV9pc011bHRp
cGFydFBheWxvYWQgPSBtX2lzTXVsdGlwYXJ0UGF5bG9hZDsKKyAgICBkYXRhLT5tX3dhc0ZldGNo
ZWRWaWFTUERZID0gbV93YXNGZXRjaGVkVmlhU1BEWTsKKyAgICBkYXRhLT5tX3dhc05wbk5lZ290
aWF0ZWQgPSBtX3dhc05wbk5lZ290aWF0ZWQ7CisgICAgZGF0YS0+bV93YXNBbHRlcm5hdGVQcm90
b2NvbEF2YWlsYWJsZSA9IG1fd2FzQWx0ZXJuYXRlUHJvdG9jb2xBdmFpbGFibGU7CisgICAgZGF0
YS0+bV93YXNGZXRjaGVkVmlhUHJveHkgPSBtX3dhc0ZldGNoZWRWaWFQcm94eTsKKyAgICBkYXRh
LT5tX3Jlc3BvbnNlVGltZSA9IG1fcmVzcG9uc2VUaW1lOworICAgIHJldHVybiBkYXRhOworfQor
Cit2b2lkIFJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3Nz
VGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpCit7CisgICAgbV9hcHBDYWNoZUlEID0g
ZGF0YS0+bV9hcHBDYWNoZUlEOworICAgIG1fYXBwQ2FjaGVNYW5pZmVzdFVSTCA9IGRhdGEtPm1f
YXBwQ2FjaGVNYW5pZmVzdFVSTC5jb3B5KCk7CisgICAgbV9pc0NvbnRlbnRGaWx0ZXJlZCA9IGRh
dGEtPm1faXNDb250ZW50RmlsdGVyZWQ7CisgICAgbV9pc011bHRpcGFydFBheWxvYWQgPSBkYXRh
LT5tX2lzTXVsdGlwYXJ0UGF5bG9hZDsKKyAgICBtX3dhc0ZldGNoZWRWaWFTUERZID0gZGF0YS0+
bV93YXNGZXRjaGVkVmlhU1BEWTsKKyAgICBtX3dhc05wbk5lZ290aWF0ZWQgPSBkYXRhLT5tX3dh
c05wbk5lZ290aWF0ZWQ7CisgICAgbV93YXNBbHRlcm5hdGVQcm90b2NvbEF2YWlsYWJsZSA9IGRh
dGEtPm1fd2FzQWx0ZXJuYXRlUHJvdG9jb2xBdmFpbGFibGU7CisgICAgbV93YXNGZXRjaGVkVmlh
UHJveHkgPSBkYXRhLT5tX3dhc0ZldGNoZWRWaWFQcm94eTsKKyAgICBtX3Jlc3BvbnNlVGltZSA9
IGRhdGEtPm1fcmVzcG9uc2VUaW1lOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXNwb25zZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJl
c3BvbnNlLmgJKHJldmlzaW9uIDY4NDc3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2No
cm9taXVtL1Jlc291cmNlUmVzcG9uc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSw5
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAg
ICAgICAgIH0KIAorICAgICAgICBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25z
ZURhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VS
ZXNwb25zZURhdGE+IGRhdGEpIGNvbnN0OworICAgICAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQ
YXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpOworCiAgICAg
ICAgIC8vIFRoZSBpZCBvZiB0aGUgYXBwY2FjaGUgdGhpcyByZXNwb25zZSB3YXMgcmV0cmlldmVk
IGZyb20sIG9yIHplcm8gaWYKICAgICAgICAgLy8gdGhlIHJlc3BvbnNlIHdhcyBub3QgcmV0cmll
dmVkIGZyb20gYW4gYXBwY2FjaGUuCiAgICAgICAgIGxvbmcgbG9uZyBtX2FwcENhY2hlSUQ7CkBA
IC0xNDIsNiArMTQ1LDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgZG91YmxlIG1f
cmVzcG9uc2VUaW1lOwogICAgIH07CiAKKyAgICBzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJl
c3BvbnNlRGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhQmFzZSB7
CisgICAgICAgIGxvbmcgbG9uZyBtX2FwcENhY2hlSUQ7CisgICAgICAgIEtVUkwgbV9hcHBDYWNo
ZU1hbmlmZXN0VVJMOworICAgICAgICBib29sIG1faXNDb250ZW50RmlsdGVyZWQ7CisgICAgICAg
IGJvb2wgbV9pc011bHRpcGFydFBheWxvYWQ7CisgICAgICAgIGJvb2wgbV93YXNGZXRjaGVkVmlh
U1BEWTsKKyAgICAgICAgYm9vbCBtX3dhc05wbk5lZ290aWF0ZWQ7CisgICAgICAgIGJvb2wgbV93
YXNBbHRlcm5hdGVQcm90b2NvbEF2YWlsYWJsZTsKKyAgICAgICAgYm9vbCBtX3dhc0ZldGNoZWRW
aWFQcm94eTsKKyAgICAgICAgZG91YmxlIG1fcmVzcG9uc2VUaW1lOworICAgIH07CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9SZXNvdXJjZVJlcXVlc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9SZXNvdXJjZVJlcXVlc3QuaAkocmV2aXNpb24gNjg0NzcpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZVJlcXVlc3QuaAkod29ya2luZyBjb3B5
KQpAQCAtNjksNiArNjksMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQg
ZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3QoKSB7fQogICAgICAgICB2b2lkIGRvVXBkYXRlUmVzb3Vy
Y2VSZXF1ZXN0KCkge30KKworICAgICAgICBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VS
ZXF1ZXN0RGF0YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNv
dXJjZVJlcXVlc3REYXRhPiBkYXRhKSBjb25zdCB7IHJldHVybiBkYXRhOyB9CisgICAgICAgIHZv
aWQgZG9QbGF0Zm9ybUFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3RE
YXRhPiBkYXRhKSB7IH0KKyAgICB9OworCisgICAgc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VS
ZXF1ZXN0RGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGFCYXNlIHsK
ICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9SZXNvdXJjZVJlc3BvbnNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VSZXNwb25zZS5oCShyZXZpc2lvbiA2ODQ3NykK
KysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlUmVzcG9uc2UuaAkod29y
a2luZyBjb3B5KQpAQCAtNTIsOSArNTIsMTcgQEAgcHVibGljOgogICAgIENGVVJMUmVzcG9uc2VS
ZWYgY2ZVUkxSZXNwb25zZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIAogcHJpdmF0ZToKKyAgICBm
cmllbmQgY2xhc3MgUmVzb3VyY2VSZXNwb25zZUJhc2U7CisKKyAgICBQYXNzT3duUHRyPENyb3Nz
VGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQYXNzT3duUHRy
PENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpIGNvbnN0IHsgcmV0dXJuIGRh
dGE7IH0KKyAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVz
b3VyY2VSZXNwb25zZURhdGE+IGRhdGEpIHsgfQorCiAgICAgYm9vbCBtX3Jlc3BvbnNlRmlyZWQ7
CiB9OwogCitzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YSA6IHB1YmxpYyBD
cm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhQmFzZSB7Cit9OworCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBSZXNvdXJjZVJlc3BvbnNlX2gKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlcXVlc3QuaAkocmV2aXNpb24gNjg0
NzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVxdWVzdC5oCSh3
b3JraW5nIGNvcHkpCkBAIC03NCw5ICs3NCwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHZvaWQgZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3QoKTsKICAgICAgICAgdm9pZCBkb1VwZGF0
ZVJlc291cmNlUmVxdWVzdCgpOwogICAgICAgICAKKyAgICAgICAgUGFzc093blB0cjxDcm9zc1Ro
cmVhZFJlc291cmNlUmVxdWVzdERhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQYXNzT3duUHRyPENy
b3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gZGF0YSkgY29uc3QgeyByZXR1cm4gZGF0YTsg
fQorICAgICAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVz
b3VyY2VSZXF1ZXN0RGF0YT4gZGF0YSkgeyB9CisKICAgICAgICAgUmV0YWluUHRyPE5TVVJMUmVx
dWVzdD4gbV9uc1JlcXVlc3Q7CiAgICAgfTsKIAorICAgIHN0cnVjdCBDcm9zc1RocmVhZFJlc291
cmNlUmVxdWVzdERhdGEgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhQmFz
ZSB7CisgICAgfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUmVzb3Vy
Y2VSZXF1ZXN0X2gKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VS
ZXNwb25zZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVz
b3VyY2VSZXNwb25zZS5oCShyZXZpc2lvbiA2ODQ3NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvUmVzb3VyY2VSZXNwb25zZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03NSwxMiArNzUs
MTkgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUmVzb3VyY2VSZXNwb25zZUJhc2U7CiAK
ICAgICB2b2lkIHBsYXRmb3JtTGF6eUluaXQoKTsKKworICAgIFBhc3NPd25QdHI8Q3Jvc3NUaHJl
YWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKFBhc3NPd25QdHI8Q3Jv
c3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZGF0YSkgY29uc3QgeyByZXR1cm4gZGF0YTsg
fQorICAgIHZvaWQgZG9QbGF0Zm9ybUFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJj
ZVJlc3BvbnNlRGF0YT4gZGF0YSkgeyB9CisKICAgICBzdGF0aWMgYm9vbCBwbGF0Zm9ybUNvbXBh
cmUoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgYSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgYik7
CiAKICAgICBSZXRhaW5QdHI8TlNVUkxSZXNwb25zZT4gbV9uc1Jlc3BvbnNlOwogICAgIGJvb2wg
bV9pc1VwVG9EYXRlOwogfTsKIAorc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURh
dGEgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YUJhc2UgeworfTsKKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUmVzb3VyY2VSZXNwb25zZV9oCklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VSZXF1ZXN0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlUmVxdWVzdC5oCShy
ZXZpc2lvbiA2ODQ3NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZVJl
cXVlc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNjYsNiArNjYsMTIgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgICAgIHZvaWQgZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3QoKSB7fQogICAgICAg
ICB2b2lkIGRvVXBkYXRlUmVzb3VyY2VSZXF1ZXN0KCkge30KKworICAgICAgICBQYXNzT3duUHRy
PENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKFBhc3NP
d25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkYXRhKSBjb25zdCB7IHJldHVy
biBkYXRhOyB9CisgICAgICAgIHZvaWQgZG9QbGF0Zm9ybUFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NU
aHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkYXRhKSB7IH0KKyAgICB9OworCisgICAgc3RydWN0
IENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291
cmNlUmVxdWVzdERhdGFCYXNlIHsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VSZXNwb25zZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZVJlc3BvbnNlLmgJ
KHJldmlzaW9uIDY4NDc3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNl
UmVzcG9uc2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsMTUgQEAgcHVibGljOgogICAg
ICAgICA6IFJlc291cmNlUmVzcG9uc2VCYXNlKHVybCwgbWltZVR5cGUsIGV4cGVjdGVkTGVuZ3Ro
LCB0ZXh0RW5jb2RpbmdOYW1lLCBmaWxlbmFtZSkKICAgICB7CiAgICAgfQorCitwcml2YXRlOgor
ICAgIGZyaWVuZCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlQmFzZTsKKworICAgIFBhc3NPd25QdHI8
Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKFBhc3NP
d25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZGF0YSkgY29uc3QgeyByZXR1
cm4gZGF0YTsgfQorICAgIHZvaWQgZG9QbGF0Zm9ybUFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJl
YWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZGF0YSkgeyB9Cit9OworCitzdHJ1Y3QgQ3Jvc3NUaHJl
YWRSZXNvdXJjZVJlc3BvbnNlRGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9u
c2VEYXRhQmFzZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3QuaAkocmV2aXNpb24g
Njg0NzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3Qu
aAkod29ya2luZyBjb3B5KQpAQCAtODAsNiArODAsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgICAgIHZvaWQgZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3QoKSB7fTsKICAgICAgICAgdm9p
ZCBkb1VwZGF0ZVJlc291cmNlUmVxdWVzdCgpIHt9OworCisgICAgICAgIFBhc3NPd25QdHI8Q3Jv
c3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkb1BsYXRmb3JtQ29weURhdGEoUGFzc093blB0
cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IGRhdGEpIGNvbnN0IHsgcmV0dXJuIGRh
dGE7IH0KKyAgICAgICAgdm9pZCBkb1BsYXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVh
ZFJlc291cmNlUmVxdWVzdERhdGE+IGRhdGEpIHsgfQorICAgIH07CisKKyAgICBzdHJ1Y3QgQ3Jv
c3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhIDogcHVibGljIENyb3NzVGhyZWFkUmVzb3VyY2VS
ZXF1ZXN0RGF0YUJhc2UgewogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2UuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlLmgJ
KHJldmlzaW9uIDY4NDc3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3Vy
Y2VSZXNwb25zZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02Myw5ICs2MywxMyBAQCBwcml2YXRlOgog
CiAgICAgU291cE1lc3NhZ2VGbGFncyBtX3NvdXBGbGFnczsKIAotICAgIHZvaWQgZG9VcGRhdGVS
ZXNvdXJjZVJlc3BvbnNlKCkKLSAgICB7Ci0gICAgfQorICAgIHZvaWQgZG9VcGRhdGVSZXNvdXJj
ZVJlc3BvbnNlKCkgeyB9CisKKyAgICBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNw
b25zZURhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3Vy
Y2VSZXNwb25zZURhdGE+IGRhdGEpIGNvbnN0IHsgcmV0dXJuIGRhdGE7IH0KKyAgICB2b2lkIGRv
UGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+
IGRhdGEpIHsgfQorfTsKKworc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGEg
OiBwdWJsaWMgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YUJhc2UgewogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69098</attachid>
            <date>2010-09-28 13:56:12 -0700</date>
            <delta_ts>2010-09-28 16:13:41 -0700</delta_ts>
            <desc>crossThread patch</desc>
            <filename>cross2.txt</filename>
            <type>text/plain</type>
            <size>26141</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODU1NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsODAgQEAKKzIwMTAtMDktMjggIE1pY2hhZWwgTm9yZG1hbiAgPG1pY2hhZWxuQGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTWFrZSBpdCBwb3NzaWJsZSB0byBjb3B5IHBsYXRmb3JtIHNwZWNpZmljIGRhdGEgbWVtYmVy
cyBvZiBSZXNvdXJjZVJlcXVlc3QgYW5kIFJlc291cmNlUmVzcG9uc2UKKyAgICAgICAgYWNyb3Nz
IHRocmVhZHMgYW5kIHRvIGNvbXBhcmUgcGxhdGZvcm0gc3BlY2lmaWMgZGF0YSBtZW1iZXJzIG9m
IFJlc291cmNlUmVxdWVzdC4KKyAgICAgICAgLSBBZGRlZCB0d28gaW5zdGFuY2UgbWV0aG9kcyB0
byB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgc3ViY2xhc3NlczogZG9QbGF0Zm9ybUFkb3B0IGFuZCBk
b1BsYXRmb3JtQ29weURhdGEuCisgICAgICAgIC0gQWxzbyBhZGRlZCBhICJzaGFkb3dhYmxlIiBz
dGF0aWMgbWV0aG9kIGZvciBwbGF0Zm9ybUNvbXBhcmUgdG8gUmVzb3VyY2VSZXF1ZXN0QmFzZSwg
YSBzaW1pbGFyIG1ldGhvZAorICAgICAgICAgIGlzIGFscmVhZHkgcHJlc2VudCBvbiBSZXNvdXJj
ZVJlc3BvbnNlQmFzZS4KKyAgICAgICAgLSBDb252ZXJ0ZWQgdGhlIGNyb3NzIHRocmVhZCBzdHJ1
Y3RzIGRlZmluZWQgaW4gUmVzb3VyY2VSZXF1ZXN0L1Jlc3BvbnNlQmFzZS5oIHRvIGJhc2UKKyAg
ICAgICAgICBjbGFzc2VzIGFuZCBleHRlbmRlZCB0aG9zZSBiYXNlIGNsYXNzZXMgaW4gdGhlIHBs
YXRmb3JtIHNwZWNpZmljIGhlYWRlcnMgdG8gcHJvdmlkZSBhIHBsYWNlCisgICAgICAgICAgdG8g
aG9sZCBhZGRpdGlvbmFsIGZpZWxkcy4KKyAgICAgICAgLSBVc2VkIHRoaXMgbWVjaGFuc2ltIHRv
IGhhdmUgdGhlIGNocm9taXVtIHBvcnQncyBkYXRhIG1lbWJlcnMgbWFrZSB0aGUgaG9wLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY0MzAKKworICAg
ICAgICBObyBuZXcgdGVzdHMuIEp1c3QgcGx1bWJpbmcuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OmFkb3B0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OmNvcHlEYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OmNvbXBhcmUpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0QmFzZTo6cGxhdGZvcm1Db21wYXJlKToKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9y
PT0pOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3IhPSk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlQmFzZTo6YXNSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2VCYXNlOjphZG9wdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlQmFzZTo6Y29weURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VSZXNwb25zZUJhc2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2FuZHJvaWQv
UmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRv
UGxhdGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRv
UGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9hbmRyb2lkL1Jlc291
cmNlUmVzcG9uc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxh
dGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1Bs
YXRmb3JtQWRvcHQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1
ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1Db3B5
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1BZG9w
dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1BsYXRmb3JtQ29weURhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6ZG9QbGF0Zm9ybUFkb3B0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVxdWVzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1Db3B5RGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVzcG9uc2UuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1Db3B5RGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1BsYXRmb3JtQWRvcHQp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXNwb25zZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZVJlcXVlc3QuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUFkb3B0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VSZXNwb25zZS5oOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9tYWMvUmVzb3VyY2VSZXNwb25zZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZTo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9xdC9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dDo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dDo6ZG9QbGF0Zm9ybUFkb3B0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291
cmNlUmVzcG9uc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxh
dGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1Bs
YXRmb3JtQWRvcHQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJl
cXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUNv
cHlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUFk
b3B0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZS5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6ZG9VcGRhdGVSZXNvdXJjZVJl
c3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1D
b3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1BsYXRmb3Jt
QWRvcHQpOgorCiAyMDEwLTA5LTI4ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5
cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDY4NDc3KQor
KysgV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTI4NDksNiArMjg0OSw3
IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUVycm9y
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1
ZXN0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJj
ZVJlcXVlc3QuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNv
dXJjZVJlc3BvbnNlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9jaHJvbWl1
bS9SZXNvdXJjZVJlc3BvbnNlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvY2hy
b21pdW0vU29ja2V0U3RyZWFtRXJyb3IuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29y
ay9jaHJvbWl1bS9Tb2NrZXRTdHJlYW1IYW5kbGUuaCcsCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwCShyZXZpc2lvbiA2ODQ3NykK
KysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjUsNiArNjUsNyBAQCBQYXNzT3duUHRyPFJlc291cmNlUmVxdWVzdD4g
UmVzb3VyY2VSZXF1CiAgICAgfQogICAgIHJlcXVlc3QtPnNldEhUVFBCb2R5KGRhdGEtPm1faHR0
cEJvZHkpOwogICAgIHJlcXVlc3QtPnNldEFsbG93Q29va2llcyhkYXRhLT5tX2FsbG93Q29va2ll
cyk7CisgICAgcmVxdWVzdC0+ZG9QbGF0Zm9ybUFkb3B0KGRhdGEpOwogICAgIHJldHVybiByZXF1
ZXN0LnJlbGVhc2UoKTsKIH0KIApAQCAtODcsNyArODgsNyBAQCBQYXNzT3duUHRyPENyb3NzVGhy
ZWFkUmVzb3VyY2VSZXF1ZXN0RGF0CiAgICAgaWYgKG1faHR0cEJvZHkpCiAgICAgICAgIGRhdGEt
Pm1faHR0cEJvZHkgPSBtX2h0dHBCb2R5LT5kZWVwQ29weSgpOwogICAgIGRhdGEtPm1fYWxsb3dD
b29raWVzID0gbV9hbGxvd0Nvb2tpZXM7Ci0gICAgcmV0dXJuIGRhdGEucmVsZWFzZSgpOworICAg
IHJldHVybiBhc1Jlc291cmNlUmVxdWVzdCgpLmRvUGxhdGZvcm1Db3B5RGF0YShkYXRhLnJlbGVh
c2UoKSk7CiB9CiAKIGJvb2wgUmVzb3VyY2VSZXF1ZXN0QmFzZTo6aXNFbXB0eSgpIGNvbnN0CkBA
IC0zNTUsNyArMzU2LDcgQEAgYm9vbCBlcXVhbElnbm9yaW5nSGVhZGVyRmllbGRzKGNvbnN0IFJl
cwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIG9wZXJhdG9yPT0oY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0QmFzZSYgYSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0QmFzZSYgYikKK2Jvb2wgUmVzb3Vy
Y2VSZXF1ZXN0QmFzZTo6Y29tcGFyZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGEsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgYikKIHsKICAgICBpZiAoIWVxdWFsSWdub3JpbmdIZWFkZXJGaWVsZHMo
YSwgYikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM2Myw3ICszNjQsNyBAQCBib29sIG9w
ZXJhdG9yPT0oY29uc3QgUmVzb3VyY2VSZXF1ZXN0QmFzCiAgICAgaWYgKGEuaHR0cEhlYWRlckZp
ZWxkcygpICE9IGIuaHR0cEhlYWRlckZpZWxkcygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIAotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBSZXNvdXJjZVJlcXVlc3Q6OnBs
YXRmb3JtQ29tcGFyZShhLCBiKTsKIH0KIAogYm9vbCBSZXNvdXJjZVJlcXVlc3RCYXNlOjppc0Nv
bmRpdGlvbmFsKCkgY29uc3QKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZVJlcXVlc3RCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlUmVxdWVzdEJhc2UuaAkocmV2aXNpb24gNjg0NzcpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDAsNiAr
MTQwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBUYXJnZXRUeXBlIHRhcmdldFR5
cGUoKSBjb25zdCB7IHJldHVybiBtX3RhcmdldFR5cGU7IH0KICAgICAgICAgdm9pZCBzZXRUYXJn
ZXRUeXBlKFRhcmdldFR5cGUgdHlwZSkgeyBtX3RhcmdldFR5cGUgPSB0eXBlOyB9CiAKKyAgICAg
ICAgc3RhdGljIGJvb2wgY29tcGFyZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGEsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgYik7CisKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIC8vIFVzZWQgd2hl
biBSZXNvdXJjZVJlcXVlc3QgaXMgaW5pdGlhbGl6ZWQgZnJvbSBhIHBsYXRmb3JtIHJlcHJlc2Vu
dGF0aW9uIG9mIHRoZSByZXF1ZXN0CiAgICAgICAgIFJlc291cmNlUmVxdWVzdEJhc2UoKQpAQCAt
MTY4LDYgKzE3MCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCB1cGRhdGVQ
bGF0Zm9ybVJlcXVlc3QoKSBjb25zdDsgCiAgICAgICAgIHZvaWQgdXBkYXRlUmVzb3VyY2VSZXF1
ZXN0KCkgY29uc3Q7IAogCisgICAgICAgIC8vIFRoZSBSZXNvdXJjZVJlcXVlc3Qgc3ViY2xhc3Mg
bWF5ICJzaGFkb3ciIHRoaXMgbWV0aG9kIHRvIGNvbXBhcmUgcGxhdGZvcm0gc3BlY2lmaWMgZmll
bGRzCisgICAgICAgIHN0YXRpYyBib29sIHBsYXRmb3JtQ29tcGFyZShjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSB7IHJldHVybiB0cnVlOyB9CisKICAgICAg
ICAgS1VSTCBtX3VybDsKIAogICAgICAgICBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeSBtX2Nh
Y2hlUG9saWN5OwpAQCAtMTkwLDEwICsxOTUsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAg
ICAgYm9vbCBlcXVhbElnbm9yaW5nSGVhZGVyRmllbGRzKGNvbnN0IFJlc291cmNlUmVxdWVzdEJh
c2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3RCYXNlJik7CiAKLSAgICBib29sIG9wZXJhdG9yPT0o
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0QmFzZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdEJhc2UmKTsK
LSAgICBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KFJlc291cmNlUmVxdWVzdEJhc2UmIGEsIGNvbnN0
IFJlc291cmNlUmVxdWVzdEJhc2UmIGIpIHsgcmV0dXJuICEoYSA9PSBiKTsgfQorICAgIGlubGlu
ZSBib29sIG9wZXJhdG9yPT0oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBhLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIGIpIHsgcmV0dXJuIFJlc291cmNlUmVxdWVzdEJhc2U6OmNvbXBhcmUoYSwgYik7
IH0KKyAgICBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KFJlc291cmNlUmVxdWVzdCYgYSwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiBiKSB7IHJldHVybiAhKGEgPT0gYik7IH0KIAotICAgIHN0cnVjdCBD
cm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGEgOiBOb25jb3B5YWJsZSB7CisgICAgc3RydWN0
IENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YUJhc2UgOiBOb25jb3B5YWJsZSB7CiAgICAg
ICAgIEtVUkwgbV91cmw7CiAKICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3kgbV9j
YWNoZVBvbGljeTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3Bv
bnNlQmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlUmVzcG9uc2VCYXNlLmNwcAkocmV2aXNpb24gNjg0NzcpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2
ICszOSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyB2b2lkIHBhcnNlQ2FjaGVI
ZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXIsIFZlY3RvcjxwYWlyPFN0cmluZywgU3RyaW5nPiA+
JiByZXN1bHQpOwogCitpbmxpbmUgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgUmVzb3VyY2VSZXNw
b25zZUJhc2U6OmFzUmVzb3VyY2VSZXNwb25zZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICpzdGF0
aWNfY2FzdDxjb25zdCBSZXNvdXJjZVJlc3BvbnNlKj4odGhpcyk7Cit9CisKIFJlc291cmNlUmVz
cG9uc2VCYXNlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZSgpICAKICAgICA6IG1fZXhwZWN0ZWRDb250
ZW50TGVuZ3RoKDApCiAgICAgLCBtX2h0dHBTdGF0dXNDb2RlKDApCkBAIC0xMDcsNyArMTEyLDcg
QEAgUGFzc093blB0cjxSZXNvdXJjZVJlc3BvbnNlPiBSZXNvdXJjZVJlcwogICAgIHJlc3BvbnNl
LT5tX2h0dHBIZWFkZXJGaWVsZHMuYWRvcHQoZGF0YS0+bV9odHRwSGVhZGVycy5yZWxlYXNlKCkp
OwogICAgIHJlc3BvbnNlLT5zZXRMYXN0TW9kaWZpZWREYXRlKGRhdGEtPm1fbGFzdE1vZGlmaWVk
RGF0ZSk7CiAgICAgcmVzcG9uc2UtPnNldFJlc291cmNlTG9hZFRpbWluZyhkYXRhLT5tX3Jlc291
cmNlTG9hZFRpbWluZy5yZWxlYXNlKCkpOwotCisgICAgcmVzcG9uc2UtPmRvUGxhdGZvcm1BZG9w
dChkYXRhKTsKICAgICByZXR1cm4gcmVzcG9uc2UucmVsZWFzZSgpOwogfQogCkBAIC0xMjUsNyAr
MTMwLDggQEAgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYQogICAgIGRh
dGEtPm1fbGFzdE1vZGlmaWVkRGF0ZSA9IGxhc3RNb2RpZmllZERhdGUoKTsKICAgICBpZiAobV9y
ZXNvdXJjZUxvYWRUaW1pbmcpCiAgICAgICAgIGRhdGEtPm1fcmVzb3VyY2VMb2FkVGltaW5nID0g
bV9yZXNvdXJjZUxvYWRUaW1pbmctPmRlZXBDb3B5KCk7Ci0gICAgcmV0dXJuIGRhdGEucmVsZWFz
ZSgpOworICAgIHJldHVybiBhc1Jlc291cmNlUmVzcG9uc2UoKS5kb1BsYXRmb3JtQ29weURhdGEo
ZGF0YS5yZWxlYXNlKCkpOworCiB9CiAKIGJvb2wgUmVzb3VyY2VSZXNwb25zZUJhc2U6OmlzSFRU
UCgpIGNvbnN0CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25z
ZUJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VS
ZXNwb25zZUJhc2UuaAkocmV2aXNpb24gNjg0NzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ3LDYgKzE0Nyw3
IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1faXNOdWxsIDogMTsKICAgICAKIHByaXZhdGU6Cisg
ICAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgYXNSZXNvdXJjZVJlc3BvbnNlKCkgY29uc3Q7CiAg
ICAgdm9pZCBwYXJzZUNhY2hlQ29udHJvbERpcmVjdGl2ZXMoKSBjb25zdDsKIAogICAgIG11dGFi
bGUgYm9vbCBtX2hhdmVQYXJzZWRDYWNoZUNvbnRyb2xIZWFkZXIgOiAxOwpAQCAtMTY5LDcgKzE3
MCw3IEBAIHByaXZhdGU6CiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIGEsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIGIpIHsgcmV0dXJuIFJlc291cmNlUmVz
cG9uc2VCYXNlOjpjb21wYXJlKGEsIGIpOyB9CiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIGEsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIGIpIHsgcmV0dXJu
ICEoYSA9PSBiKTsgfQogCi1zdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YSA6
IE5vbmNvcHlhYmxlIHsKK3N0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhQmFz
ZSA6IE5vbmNvcHlhYmxlIHsKICAgICBLVVJMIG1fdXJsOwogICAgIFN0cmluZyBtX21pbWVUeXBl
OwogICAgIGxvbmcgbG9uZyBtX2V4cGVjdGVkQ29udGVudExlbmd0aDsKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9hbmRyb2lkL1Jlc291cmNlUmVxdWVzdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9hbmRyb2lkL1Jlc291cmNlUmVxdWVzdC5oCShyZXZp
c2lvbiA2ODQ3NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9hbmRyb2lkL1Jlc291cmNl
UmVxdWVzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1MywxMiBAQCBwdWJsaWM6CiAKIHBy
aXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFJlc291cmNlUmVxdWVzdEJhc2U7CisKKyAgICBQYXNz
T3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gZG9QbGF0Zm9ybUNvcHlEYXRh
KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkYXRhKSBjb25zdCB7
IHJldHVybiBkYXRhOyB9CisgICAgdm9pZCBkb1BsYXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9z
c1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IGRhdGEpIHsgfQorfTsKKworc3RydWN0IENyb3Nz
VGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291cmNlUmVx
dWVzdERhdGFCYXNlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9hbmRyb2lkL1Jlc291cmNlUmVzcG9uc2UuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYW5kcm9pZC9SZXNvdXJjZVJlc3BvbnNlLmgJ
KHJldmlzaW9uIDY4NDc3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2FuZHJvaWQvUmVz
b3VyY2VSZXNwb25zZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0NiwxMiBAQCBwcml2YXRl
OgogICAgIHsKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICB9CisKKyAgICBQYXNzT3du
UHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQ
YXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpIGNvbnN0IHsg
cmV0dXJuIGRhdGE7IH0KKyAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3Nz
VGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpIHsgfQorfTsKKworc3RydWN0IENyb3Nz
VGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGEgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJl
c3BvbnNlRGF0YUJhc2UgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaAkocmV2aXNpb24g
Njg0NzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTY4LDEwICs2OCwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICAgICAgdm9pZCBkb1VwZGF0ZVBsYXRmb3JtUmVxdWVzdCgpOwogICAgICAgICB2b2lkIGRv
VXBkYXRlUmVzb3VyY2VSZXF1ZXN0KCk7Ci0gICAgICAgIAorCisgICAgICAgIFBhc3NPd25QdHI8
Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkb1BsYXRmb3JtQ29weURhdGEoUGFzc093
blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IGRhdGEpIGNvbnN0IHsgcmV0dXJu
IGRhdGE7IH0KKyAgICAgICAgdm9pZCBkb1BsYXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9zc1Ro
cmVhZFJlc291cmNlUmVxdWVzdERhdGE+IGRhdGEpIHsgfQorCiAgICAgICAgIFJldGFpblB0cjxD
RlVSTFJlcXVlc3RSZWY+IG1fY2ZSZXF1ZXN0OyAgICAgIAogICAgIH07CiAKKyAgICBzdHJ1Y3Qg
Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhIDogcHVibGljIENyb3NzVGhyZWFkUmVzb3Vy
Y2VSZXF1ZXN0RGF0YUJhc2UgeworICAgIH07CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIFJlc291cmNlUmVxdWVzdF9oCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VSZXNwb25zZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlLmgJKHJldmlzaW9uIDY4NDc3KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVzcG9uc2UuaAkod29ya2luZyBjb3B5KQpA
QCAtNzAsMTIgKzcwLDE4IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFJlc291cmNlUmVz
cG9uc2VCYXNlOwogCiAgICAgdm9pZCBwbGF0Zm9ybUxhenlJbml0KCk7CisgICAgUGFzc093blB0
cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBkb1BsYXRmb3JtQ29weURhdGEoUGFz
c093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBkYXRhKSBjb25zdCB7IHJl
dHVybiBkYXRhOyB9CisgICAgdm9pZCBkb1BsYXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9zc1Ro
cmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBkYXRhKSB7IH0KKwogICAgIHN0YXRpYyBib29sIHBs
YXRmb3JtQ29tcGFyZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBhLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiBiKTsKIAogICAgIFJldGFpblB0cjxDRlVSTFJlc3BvbnNlUmVmPiBtX2NmUmVzcG9u
c2U7CiAgICAgYm9vbCBtX2lzVXBUb0RhdGU7CiB9OwogCitzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNv
dXJjZVJlc3BvbnNlRGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRh
QmFzZSB7Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBSZXNvdXJj
ZVJlc3BvbnNlX2gKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNv
dXJjZVJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
aHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuY3BwCShyZXZpc2lvbiA2ODQ3NykKKysrIFdlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNyw0ICszNywxOSBAQCB1bnNpZ25lZCBpbml0aWFsaXplTWF4aW11bUhUVFBDb25u
ZWN0aW9uCiAgICAgcmV0dXJuIDEwMDAwOwogfQogCitQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVz
b3VyY2VSZXF1ZXN0RGF0YT4gUmVzb3VyY2VSZXF1ZXN0Ojpkb1BsYXRmb3JtQ29weURhdGEoUGFz
c093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IGRhdGEpIGNvbnN0Cit7Cisg
ICAgZGF0YS0+bV9yZXF1ZXN0b3JJRCA9IG1fcmVxdWVzdG9ySUQ7CisgICAgZGF0YS0+bV9yZXF1
ZXN0b3JQcm9jZXNzSUQgPSBtX3JlcXVlc3RvclByb2Nlc3NJRDsKKyAgICBkYXRhLT5tX2FwcENh
Y2hlSG9zdElEID0gbV9hcHBDYWNoZUhvc3RJRDsKKyAgICByZXR1cm4gZGF0YTsKK30KKwordm9p
ZCBSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFk
UmVzb3VyY2VSZXF1ZXN0RGF0YT4gZGF0YSkKK3sKKyAgICBtX3JlcXVlc3RvcklEID0gZGF0YS0+
bV9yZXF1ZXN0b3JJRDsKKyAgICBtX3JlcXVlc3RvclByb2Nlc3NJRCA9IGRhdGEtPm1fcmVxdWVz
dG9yUHJvY2Vzc0lEOworICAgIG1fYXBwQ2FjaGVIb3N0SUQgPSBkYXRhLT5tX2FwcENhY2hlSG9z
dElEOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVxdWVzdC5oCShyZXZpc2lvbiA2
ODQ3NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVl
c3QuaAkod29ya2luZyBjb3B5KQpAQCAtOTAsNiArOTAsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB2b2lkIGRvVXBkYXRlUGxhdGZvcm1SZXF1ZXN0KCkge30KICAgICAgICAgdm9p
ZCBkb1VwZGF0ZVJlc291cmNlUmVxdWVzdCgpIHt9CiAKKyAgICAgICAgUGFzc093blB0cjxDcm9z
c1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQYXNzT3duUHRy
PENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gZGF0YSkgY29uc3Q7CisgICAgICAgIHZv
aWQgZG9QbGF0Zm9ybUFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3RE
YXRhPiBkYXRhKTsKKworICAgICAgICBpbnQgbV9yZXF1ZXN0b3JJRDsKKyAgICAgICAgaW50IG1f
cmVxdWVzdG9yUHJvY2Vzc0lEOworICAgICAgICBpbnQgbV9hcHBDYWNoZUhvc3RJRDsKKyAgICB9
OworCisgICAgc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YSA6IHB1YmxpYyBD
cm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGFCYXNlIHsKICAgICAgICAgaW50IG1fcmVxdWVz
dG9ySUQ7CiAgICAgICAgIGludCBtX3JlcXVlc3RvclByb2Nlc3NJRDsKICAgICAgICAgaW50IG1f
YXBwQ2FjaGVIb3N0SUQ7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0v
UmVzb3VyY2VSZXNwb25zZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2Nocm9taXVtL1Jlc291cmNlUmVzcG9uc2UuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVzcG9uc2UuY3BwCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwg
SW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlc291cmNl
UmVzcG9uc2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzT3duUHRyPENyb3NzVGhy
ZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IFJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1Db3B5
RGF0YShQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpIGNv
bnN0Cit7CisgICAgZGF0YS0+bV9hcHBDYWNoZUlEID0gbV9hcHBDYWNoZUlEOworICAgIGRhdGEt
Pm1fYXBwQ2FjaGVNYW5pZmVzdFVSTCA9IG1fYXBwQ2FjaGVNYW5pZmVzdFVSTC5jb3B5KCk7Cisg
ICAgZGF0YS0+bV9pc0NvbnRlbnRGaWx0ZXJlZCA9IG1faXNDb250ZW50RmlsdGVyZWQ7CisgICAg
ZGF0YS0+bV9pc011bHRpcGFydFBheWxvYWQgPSBtX2lzTXVsdGlwYXJ0UGF5bG9hZDsKKyAgICBk
YXRhLT5tX3dhc0ZldGNoZWRWaWFTUERZID0gbV93YXNGZXRjaGVkVmlhU1BEWTsKKyAgICBkYXRh
LT5tX3dhc05wbk5lZ290aWF0ZWQgPSBtX3dhc05wbk5lZ290aWF0ZWQ7CisgICAgZGF0YS0+bV93
YXNBbHRlcm5hdGVQcm90b2NvbEF2YWlsYWJsZSA9IG1fd2FzQWx0ZXJuYXRlUHJvdG9jb2xBdmFp
bGFibGU7CisgICAgZGF0YS0+bV93YXNGZXRjaGVkVmlhUHJveHkgPSBtX3dhc0ZldGNoZWRWaWFQ
cm94eTsKKyAgICBkYXRhLT5tX3Jlc3BvbnNlVGltZSA9IG1fcmVzcG9uc2VUaW1lOworICAgIHJl
dHVybiBkYXRhOworfQorCit2b2lkIFJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1BZG9wdChQ
YXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpCit7CisgICAg
bV9hcHBDYWNoZUlEID0gZGF0YS0+bV9hcHBDYWNoZUlEOworICAgIG1fYXBwQ2FjaGVNYW5pZmVz
dFVSTCA9IGRhdGEtPm1fYXBwQ2FjaGVNYW5pZmVzdFVSTC5jb3B5KCk7CisgICAgbV9pc0NvbnRl
bnRGaWx0ZXJlZCA9IGRhdGEtPm1faXNDb250ZW50RmlsdGVyZWQ7CisgICAgbV9pc011bHRpcGFy
dFBheWxvYWQgPSBkYXRhLT5tX2lzTXVsdGlwYXJ0UGF5bG9hZDsKKyAgICBtX3dhc0ZldGNoZWRW
aWFTUERZID0gZGF0YS0+bV93YXNGZXRjaGVkVmlhU1BEWTsKKyAgICBtX3dhc05wbk5lZ290aWF0
ZWQgPSBkYXRhLT5tX3dhc05wbk5lZ290aWF0ZWQ7CisgICAgbV93YXNBbHRlcm5hdGVQcm90b2Nv
bEF2YWlsYWJsZSA9IGRhdGEtPm1fd2FzQWx0ZXJuYXRlUHJvdG9jb2xBdmFpbGFibGU7CisgICAg
bV93YXNGZXRjaGVkVmlhUHJveHkgPSBkYXRhLT5tX3dhc0ZldGNoZWRWaWFQcm94eTsKKyAgICBt
X3Jlc3BvbnNlVGltZSA9IGRhdGEtPm1fcmVzcG9uc2VUaW1lOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3Vy
Y2VSZXNwb25zZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJv
bWl1bS9SZXNvdXJjZVJlc3BvbnNlLmgJKHJldmlzaW9uIDY4NDc3KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVzcG9uc2UuaAkod29ya2luZyBjb3B5KQpA
QCAtMTA5LDYgKzEwOSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIG5vdElt
cGxlbWVudGVkKCk7CiAgICAgICAgIH0KIAorICAgICAgICBQYXNzT3duUHRyPENyb3NzVGhyZWFk
UmVzb3VyY2VSZXNwb25zZURhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQYXNzT3duUHRyPENyb3Nz
VGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpIGNvbnN0OworICAgICAgICB2b2lkIGRv
UGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+
IGRhdGEpOworCiAgICAgICAgIC8vIFRoZSBpZCBvZiB0aGUgYXBwY2FjaGUgdGhpcyByZXNwb25z
ZSB3YXMgcmV0cmlldmVkIGZyb20sIG9yIHplcm8gaWYKICAgICAgICAgLy8gdGhlIHJlc3BvbnNl
IHdhcyBub3QgcmV0cmlldmVkIGZyb20gYW4gYXBwY2FjaGUuCiAgICAgICAgIGxvbmcgbG9uZyBt
X2FwcENhY2hlSUQ7CkBAIC0xNDIsNiArMTQ1LDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgZG91YmxlIG1fcmVzcG9uc2VUaW1lOwogICAgIH07CiAKKyAgICBzdHJ1Y3QgQ3Jvc3NU
aHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291cmNlUmVz
cG9uc2VEYXRhQmFzZSB7CisgICAgICAgIGxvbmcgbG9uZyBtX2FwcENhY2hlSUQ7CisgICAgICAg
IEtVUkwgbV9hcHBDYWNoZU1hbmlmZXN0VVJMOworICAgICAgICBib29sIG1faXNDb250ZW50Rmls
dGVyZWQ7CisgICAgICAgIGJvb2wgbV9pc011bHRpcGFydFBheWxvYWQ7CisgICAgICAgIGJvb2wg
bV93YXNGZXRjaGVkVmlhU1BEWTsKKyAgICAgICAgYm9vbCBtX3dhc05wbk5lZ290aWF0ZWQ7Cisg
ICAgICAgIGJvb2wgbV93YXNBbHRlcm5hdGVQcm90b2NvbEF2YWlsYWJsZTsKKyAgICAgICAgYm9v
bCBtX3dhc0ZldGNoZWRWaWFQcm94eTsKKyAgICAgICAgZG91YmxlIG1fcmVzcG9uc2VUaW1lOwor
ICAgIH07CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZVJlcXVlc3QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZVJlcXVlc3QuaAkocmV2aXNpb24g
Njg0NzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZVJlcXVlc3Qu
aAkod29ya2luZyBjb3B5KQpAQCAtNjksNiArNjksMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgICAgIHZvaWQgZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3QoKSB7fQogICAgICAgICB2b2lk
IGRvVXBkYXRlUmVzb3VyY2VSZXF1ZXN0KCkge30KKworICAgICAgICBQYXNzT3duUHRyPENyb3Nz
VGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKFBhc3NPd25QdHI8
Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkYXRhKSBjb25zdCB7IHJldHVybiBkYXRh
OyB9CisgICAgICAgIHZvaWQgZG9QbGF0Zm9ybUFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRS
ZXNvdXJjZVJlcXVlc3REYXRhPiBkYXRhKSB7IH0KKyAgICB9OworCisgICAgc3RydWN0IENyb3Nz
VGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291cmNlUmVx
dWVzdERhdGFCYXNlIHsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZVJlc3BvbnNlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VSZXNwb25zZS5oCShy
ZXZpc2lvbiA2ODQ3NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNl
UmVzcG9uc2UuaAkod29ya2luZyBjb3B5KQpAQCAtNTIsOSArNTIsMTcgQEAgcHVibGljOgogICAg
IENGVVJMUmVzcG9uc2VSZWYgY2ZVUkxSZXNwb25zZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIAog
cHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgUmVzb3VyY2VSZXNwb25zZUJhc2U7CisKKyAgICBQ
YXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRvUGxhdGZvcm1Db3B5
RGF0YShQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpIGNv
bnN0IHsgcmV0dXJuIGRhdGE7IH0KKyAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRy
PENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpIHsgfQorCiAgICAgYm9vbCBt
X3Jlc3BvbnNlRmlyZWQ7CiB9OwogCitzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNl
RGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhQmFzZSB7Cit9Owor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBSZXNvdXJjZVJlc3BvbnNlX2gK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlcXVlc3Qu
aAkocmV2aXNpb24gNjg0NzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291
cmNlUmVxdWVzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC03NCw5ICs3NCwxNSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3QoKTsKICAgICAg
ICAgdm9pZCBkb1VwZGF0ZVJlc291cmNlUmVxdWVzdCgpOwogICAgICAgICAKKyAgICAgICAgUGFz
c093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IGRvUGxhdGZvcm1Db3B5RGF0
YShQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gZGF0YSkgY29uc3Qg
eyByZXR1cm4gZGF0YTsgfQorICAgICAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRy
PENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gZGF0YSkgeyB9CisKICAgICAgICAgUmV0
YWluUHRyPE5TVVJMUmVxdWVzdD4gbV9uc1JlcXVlc3Q7CiAgICAgfTsKIAorICAgIHN0cnVjdCBD
cm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGEgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRSZXNvdXJj
ZVJlcXVlc3REYXRhQmFzZSB7CisgICAgfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gUmVzb3VyY2VSZXF1ZXN0X2gKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvUmVzb3VyY2VSZXNwb25zZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvUmVzb3VyY2VSZXNwb25zZS5oCShyZXZpc2lvbiA2ODQ3NykKKysrIFdlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXNwb25zZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC03NSwxMiArNzUsMTkgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUmVzb3VyY2VS
ZXNwb25zZUJhc2U7CiAKICAgICB2b2lkIHBsYXRmb3JtTGF6eUluaXQoKTsKKworICAgIFBhc3NP
d25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZG9QbGF0Zm9ybUNvcHlEYXRh
KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZGF0YSkgY29uc3Qg
eyByZXR1cm4gZGF0YTsgfQorICAgIHZvaWQgZG9QbGF0Zm9ybUFkb3B0KFBhc3NPd25QdHI8Q3Jv
c3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZGF0YSkgeyB9CisKICAgICBzdGF0aWMgYm9v
bCBwbGF0Zm9ybUNvbXBhcmUoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgYSwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgYik7CiAKICAgICBSZXRhaW5QdHI8TlNVUkxSZXNwb25zZT4gbV9uc1Jlc3Bv
bnNlOwogICAgIGJvb2wgbV9pc1VwVG9EYXRlOwogfTsKIAorc3RydWN0IENyb3NzVGhyZWFkUmVz
b3VyY2VSZXNwb25zZURhdGEgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0
YUJhc2UgeworfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUmVzb3Vy
Y2VSZXNwb25zZV9oCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VS
ZXF1ZXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291
cmNlUmVxdWVzdC5oCShyZXZpc2lvbiA2ODQ3NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9xdC9SZXNvdXJjZVJlcXVlc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNjYsNiArNjYsMTIgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQgZG9VcGRhdGVQbGF0Zm9ybVJlcXVl
c3QoKSB7fQogICAgICAgICB2b2lkIGRvVXBkYXRlUmVzb3VyY2VSZXF1ZXN0KCkge30KKworICAg
ICAgICBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gZG9QbGF0Zm9y
bUNvcHlEYXRhKFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkYXRh
KSBjb25zdCB7IHJldHVybiBkYXRhOyB9CisgICAgICAgIHZvaWQgZG9QbGF0Zm9ybUFkb3B0KFBh
c3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkYXRhKSB7IH0KKyAgICB9
OworCisgICAgc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YSA6IHB1YmxpYyBD
cm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGFCYXNlIHsKICAgICB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VS
ZXNwb25zZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNv
dXJjZVJlc3BvbnNlLmgJKHJldmlzaW9uIDY4NDc3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3F0L1Jlc291cmNlUmVzcG9uc2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsMTUg
QEAgcHVibGljOgogICAgICAgICA6IFJlc291cmNlUmVzcG9uc2VCYXNlKHVybCwgbWltZVR5cGUs
IGV4cGVjdGVkTGVuZ3RoLCB0ZXh0RW5jb2RpbmdOYW1lLCBmaWxlbmFtZSkKICAgICB7CiAgICAg
fQorCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlQmFzZTsKKwor
ICAgIFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZG9QbGF0Zm9y
bUNvcHlEYXRhKFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZGF0
YSkgY29uc3QgeyByZXR1cm4gZGF0YTsgfQorICAgIHZvaWQgZG9QbGF0Zm9ybUFkb3B0KFBhc3NP
d25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZGF0YSkgeyB9Cit9OworCitz
dHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YSA6IHB1YmxpYyBDcm9zc1RocmVh
ZFJlc291cmNlUmVzcG9uc2VEYXRhQmFzZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3QuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVl
c3QuaAkocmV2aXNpb24gNjg0NzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9S
ZXNvdXJjZVJlcXVlc3QuaAkod29ya2luZyBjb3B5KQpAQCAtODAsNiArODAsMTIgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQgZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3QoKSB7
fTsKICAgICAgICAgdm9pZCBkb1VwZGF0ZVJlc291cmNlUmVxdWVzdCgpIHt9OworCisgICAgICAg
IFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkb1BsYXRmb3JtQ29w
eURhdGEoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IGRhdGEpIGNv
bnN0IHsgcmV0dXJuIGRhdGE7IH0KKyAgICAgICAgdm9pZCBkb1BsYXRmb3JtQWRvcHQoUGFzc093
blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IGRhdGEpIHsgfQorICAgIH07CisK
KyAgICBzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhIDogcHVibGljIENyb3Nz
VGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YUJhc2UgewogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVz
cG9uc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZVJlc3BvbnNlLmgJKHJldmlzaW9uIDY4NDc3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02Myw5ICs2Mywx
MyBAQCBwcml2YXRlOgogCiAgICAgU291cE1lc3NhZ2VGbGFncyBtX3NvdXBGbGFnczsKIAotICAg
IHZvaWQgZG9VcGRhdGVSZXNvdXJjZVJlc3BvbnNlKCkKLSAgICB7Ci0gICAgfQorICAgIHZvaWQg
ZG9VcGRhdGVSZXNvdXJjZVJlc3BvbnNlKCkgeyB9CisKKyAgICBQYXNzT3duUHRyPENyb3NzVGhy
ZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQYXNzT3duUHRyPENy
b3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpIGNvbnN0IHsgcmV0dXJuIGRhdGE7
IH0KKyAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3Vy
Y2VSZXNwb25zZURhdGE+IGRhdGEpIHsgfQorfTsKKworc3RydWN0IENyb3NzVGhyZWFkUmVzb3Vy
Y2VSZXNwb25zZURhdGEgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YUJh
c2UgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>
<flag name="review"
          id="58729"
          type_id="1"
          status="+"
          setter="levin"
    />
    <flag name="commit-queue"
          id="58750"
          type_id="3"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69126</attachid>
            <date>2010-09-28 16:13:41 -0700</date>
            <delta_ts>2010-09-28 16:48:03 -0700</delta_ts>
            <desc>crossThread patch</desc>
            <filename>cross3.txt</filename>
            <type>text/plain</type>
            <size>26057</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODU1NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsODAgQEAKKzIwMTAtMDktMjggIE1pY2hhZWwgTm9yZG1hbiAgPG1pY2hhZWxuQGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTWFrZSBpdCBwb3NzaWJsZSB0byBjb3B5IHBsYXRmb3JtIHNwZWNpZmljIGRhdGEgbWVtYmVy
cyBvZiBSZXNvdXJjZVJlcXVlc3QgYW5kIFJlc291cmNlUmVzcG9uc2UKKyAgICAgICAgYWNyb3Nz
IHRocmVhZHMgYW5kIHRvIGNvbXBhcmUgcGxhdGZvcm0gc3BlY2lmaWMgZGF0YSBtZW1iZXJzIG9m
IFJlc291cmNlUmVxdWVzdC4KKyAgICAgICAgLSBBZGRlZCB0d28gaW5zdGFuY2UgbWV0aG9kcyB0
byB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgc3ViY2xhc3NlczogZG9QbGF0Zm9ybUFkb3B0IGFuZCBk
b1BsYXRmb3JtQ29weURhdGEuCisgICAgICAgIC0gQWxzbyBhZGRlZCBhICJzaGFkb3dhYmxlIiBz
dGF0aWMgbWV0aG9kIGZvciBwbGF0Zm9ybUNvbXBhcmUgdG8gUmVzb3VyY2VSZXF1ZXN0QmFzZSwg
YSBzaW1pbGFyIG1ldGhvZAorICAgICAgICAgIGlzIGFscmVhZHkgcHJlc2VudCBvbiBSZXNvdXJj
ZVJlc3BvbnNlQmFzZS4KKyAgICAgICAgLSBDb252ZXJ0ZWQgdGhlIGNyb3NzIHRocmVhZCBzdHJ1
Y3RzIGRlZmluZWQgaW4gUmVzb3VyY2VSZXF1ZXN0L1Jlc3BvbnNlQmFzZS5oIHRvIGJhc2UKKyAg
ICAgICAgICBjbGFzc2VzIGFuZCBleHRlbmRlZCB0aG9zZSBiYXNlIGNsYXNzZXMgaW4gdGhlIHBs
YXRmb3JtIHNwZWNpZmljIGhlYWRlcnMgdG8gcHJvdmlkZSBhIHBsYWNlCisgICAgICAgICAgdG8g
aG9sZCBhZGRpdGlvbmFsIGZpZWxkcy4KKyAgICAgICAgLSBVc2VkIHRoaXMgbWVjaGFuc2ltIHRv
IGhhdmUgdGhlIGNocm9taXVtIHBvcnQncyBkYXRhIG1lbWJlcnMgbWFrZSB0aGUgaG9wLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY0MzAKKworICAg
ICAgICBObyBuZXcgdGVzdHMuIEp1c3QgcGx1bWJpbmcuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OmFkb3B0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OmNvcHlEYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OmNvbXBhcmUpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0QmFzZTo6cGxhdGZvcm1Db21wYXJlKToKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9y
PT0pOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3IhPSk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlQmFzZTo6YXNSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2VCYXNlOjphZG9wdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlQmFzZTo6Y29weURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VSZXNwb25zZUJhc2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2FuZHJvaWQv
UmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRv
UGxhdGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRv
UGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9hbmRyb2lkL1Jlc291
cmNlUmVzcG9uc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxh
dGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1Bs
YXRmb3JtQWRvcHQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1
ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1Db3B5
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1BZG9w
dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1BsYXRmb3JtQ29weURhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6ZG9QbGF0Zm9ybUFkb3B0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVxdWVzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1Db3B5RGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVzcG9uc2UuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1Db3B5RGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1BsYXRmb3JtQWRvcHQp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXNwb25zZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZVJlcXVlc3QuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUFkb3B0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VSZXNwb25zZS5oOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9tYWMvUmVzb3VyY2VSZXNwb25zZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZTo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9xdC9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dDo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dDo6ZG9QbGF0Zm9ybUFkb3B0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291
cmNlUmVzcG9uc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxh
dGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1Bs
YXRmb3JtQWRvcHQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJl
cXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUNv
cHlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUFk
b3B0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZS5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6ZG9VcGRhdGVSZXNvdXJjZVJl
c3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1D
b3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1BsYXRmb3Jt
QWRvcHQpOgorCiAyMDEwLTA5LTI4ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5
cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDY4NDc3KQor
KysgV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTI4NDksNiArMjg0OSw3
IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUVycm9y
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1
ZXN0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJj
ZVJlcXVlc3QuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNv
dXJjZVJlc3BvbnNlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9jaHJvbWl1
bS9SZXNvdXJjZVJlc3BvbnNlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvY2hy
b21pdW0vU29ja2V0U3RyZWFtRXJyb3IuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29y
ay9jaHJvbWl1bS9Tb2NrZXRTdHJlYW1IYW5kbGUuaCcsCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwCShyZXZpc2lvbiA2ODQ3NykK
KysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjUsNiArNjUsNyBAQCBQYXNzT3duUHRyPFJlc291cmNlUmVxdWVzdD4g
UmVzb3VyY2VSZXF1CiAgICAgfQogICAgIHJlcXVlc3QtPnNldEhUVFBCb2R5KGRhdGEtPm1faHR0
cEJvZHkpOwogICAgIHJlcXVlc3QtPnNldEFsbG93Q29va2llcyhkYXRhLT5tX2FsbG93Q29va2ll
cyk7CisgICAgcmVxdWVzdC0+ZG9QbGF0Zm9ybUFkb3B0KGRhdGEpOwogICAgIHJldHVybiByZXF1
ZXN0LnJlbGVhc2UoKTsKIH0KIApAQCAtODcsNyArODgsNyBAQCBQYXNzT3duUHRyPENyb3NzVGhy
ZWFkUmVzb3VyY2VSZXF1ZXN0RGF0CiAgICAgaWYgKG1faHR0cEJvZHkpCiAgICAgICAgIGRhdGEt
Pm1faHR0cEJvZHkgPSBtX2h0dHBCb2R5LT5kZWVwQ29weSgpOwogICAgIGRhdGEtPm1fYWxsb3dD
b29raWVzID0gbV9hbGxvd0Nvb2tpZXM7Ci0gICAgcmV0dXJuIGRhdGEucmVsZWFzZSgpOworICAg
IHJldHVybiBhc1Jlc291cmNlUmVxdWVzdCgpLmRvUGxhdGZvcm1Db3B5RGF0YShkYXRhLnJlbGVh
c2UoKSk7CiB9CiAKIGJvb2wgUmVzb3VyY2VSZXF1ZXN0QmFzZTo6aXNFbXB0eSgpIGNvbnN0CkBA
IC0zNTUsNyArMzU2LDcgQEAgYm9vbCBlcXVhbElnbm9yaW5nSGVhZGVyRmllbGRzKGNvbnN0IFJl
cwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIG9wZXJhdG9yPT0oY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0QmFzZSYgYSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0QmFzZSYgYikKK2Jvb2wgUmVzb3Vy
Y2VSZXF1ZXN0QmFzZTo6Y29tcGFyZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGEsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgYikKIHsKICAgICBpZiAoIWVxdWFsSWdub3JpbmdIZWFkZXJGaWVsZHMo
YSwgYikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM2Myw3ICszNjQsNyBAQCBib29sIG9w
ZXJhdG9yPT0oY29uc3QgUmVzb3VyY2VSZXF1ZXN0QmFzCiAgICAgaWYgKGEuaHR0cEhlYWRlckZp
ZWxkcygpICE9IGIuaHR0cEhlYWRlckZpZWxkcygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIAotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBSZXNvdXJjZVJlcXVlc3Q6OnBs
YXRmb3JtQ29tcGFyZShhLCBiKTsKIH0KIAogYm9vbCBSZXNvdXJjZVJlcXVlc3RCYXNlOjppc0Nv
bmRpdGlvbmFsKCkgY29uc3QKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZVJlcXVlc3RCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlUmVxdWVzdEJhc2UuaAkocmV2aXNpb24gNjg0NzcpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDAsNiAr
MTQwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBUYXJnZXRUeXBlIHRhcmdldFR5
cGUoKSBjb25zdCB7IHJldHVybiBtX3RhcmdldFR5cGU7IH0KICAgICAgICAgdm9pZCBzZXRUYXJn
ZXRUeXBlKFRhcmdldFR5cGUgdHlwZSkgeyBtX3RhcmdldFR5cGUgPSB0eXBlOyB9CiAKKyAgICAg
ICAgc3RhdGljIGJvb2wgY29tcGFyZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmKTsKKwogICAgIHByb3RlY3RlZDoKICAgICAgICAgLy8gVXNlZCB3aGVuIFJl
c291cmNlUmVxdWVzdCBpcyBpbml0aWFsaXplZCBmcm9tIGEgcGxhdGZvcm0gcmVwcmVzZW50YXRp
b24gb2YgdGhlIHJlcXVlc3QKICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0QmFzZSgpCkBAIC0xNjgs
NiArMTcwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHVwZGF0ZVBsYXRm
b3JtUmVxdWVzdCgpIGNvbnN0OyAKICAgICAgICAgdm9pZCB1cGRhdGVSZXNvdXJjZVJlcXVlc3Qo
KSBjb25zdDsgCiAKKyAgICAgICAgLy8gVGhlIFJlc291cmNlUmVxdWVzdCBzdWJjbGFzcyBtYXkg
InNoYWRvdyIgdGhpcyBtZXRob2QgdG8gY29tcGFyZSBwbGF0Zm9ybSBzcGVjaWZpYyBmaWVsZHMK
KyAgICAgICAgc3RhdGljIGJvb2wgcGxhdGZvcm1Db21wYXJlKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIHsgcmV0dXJuIHRydWU7IH0KKwogICAgICAgICBL
VVJMIG1fdXJsOwogCiAgICAgICAgIFJlc291cmNlUmVxdWVzdENhY2hlUG9saWN5IG1fY2FjaGVQ
b2xpY3k7CkBAIC0xOTAsMTAgKzE5NSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBi
b29sIGVxdWFsSWdub3JpbmdIZWFkZXJGaWVsZHMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0QmFzZSYs
IGNvbnN0IFJlc291cmNlUmVxdWVzdEJhc2UmKTsKIAotICAgIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBSZXNvdXJjZVJlcXVlc3RCYXNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0QmFzZSYpOwotICAg
IGlubGluZSBib29sIG9wZXJhdG9yIT0oUmVzb3VyY2VSZXF1ZXN0QmFzZSYgYSwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0QmFzZSYgYikgeyByZXR1cm4gIShhID09IGIpOyB9CisgICAgaW5saW5lIGJv
b2wgb3BlcmF0b3I9PShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGEsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgYikgeyByZXR1cm4gUmVzb3VyY2VSZXF1ZXN0QmFzZTo6Y29tcGFyZShhLCBiKTsgfQor
ICAgIGlubGluZSBib29sIG9wZXJhdG9yIT0oUmVzb3VyY2VSZXF1ZXN0JiBhLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIGIpIHsgcmV0dXJuICEoYSA9PSBiKTsgfQogCi0gICAgc3RydWN0IENyb3Nz
VGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YSA6IE5vbmNvcHlhYmxlIHsKKyAgICBzdHJ1Y3QgQ3Jv
c3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhQmFzZSA6IE5vbmNvcHlhYmxlIHsKICAgICAgICAg
S1VSTCBtX3VybDsKIAogICAgICAgICBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeSBtX2NhY2hl
UG9saWN5OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VC
YXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VS
ZXNwb25zZUJhc2UuY3BwCShyZXZpc2lvbiA2ODQ3NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5
LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIHZvaWQgcGFyc2VDYWNoZUhlYWRl
cihjb25zdCBTdHJpbmcmIGhlYWRlciwgVmVjdG9yPHBhaXI8U3RyaW5nLCBTdHJpbmc+ID4mIHJl
c3VsdCk7CiAKK2lubGluZSBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBSZXNvdXJjZVJlc3BvbnNl
QmFzZTo6YXNSZXNvdXJjZVJlc3BvbnNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKnN0YXRpY19j
YXN0PGNvbnN0IFJlc291cmNlUmVzcG9uc2UqPih0aGlzKTsKK30KKwogUmVzb3VyY2VSZXNwb25z
ZUJhc2U6OlJlc291cmNlUmVzcG9uc2VCYXNlKCkgIAogICAgIDogbV9leHBlY3RlZENvbnRlbnRM
ZW5ndGgoMCkKICAgICAsIG1faHR0cFN0YXR1c0NvZGUoMCkKQEAgLTEwNyw3ICsxMTIsNyBAQCBQ
YXNzT3duUHRyPFJlc291cmNlUmVzcG9uc2U+IFJlc291cmNlUmVzCiAgICAgcmVzcG9uc2UtPm1f
aHR0cEhlYWRlckZpZWxkcy5hZG9wdChkYXRhLT5tX2h0dHBIZWFkZXJzLnJlbGVhc2UoKSk7CiAg
ICAgcmVzcG9uc2UtPnNldExhc3RNb2RpZmllZERhdGUoZGF0YS0+bV9sYXN0TW9kaWZpZWREYXRl
KTsKICAgICByZXNwb25zZS0+c2V0UmVzb3VyY2VMb2FkVGltaW5nKGRhdGEtPm1fcmVzb3VyY2VM
b2FkVGltaW5nLnJlbGVhc2UoKSk7Ci0KKyAgICByZXNwb25zZS0+ZG9QbGF0Zm9ybUFkb3B0KGRh
dGEpOwogICAgIHJldHVybiByZXNwb25zZS5yZWxlYXNlKCk7CiB9CiAKQEAgLTEyNSw3ICsxMzAs
OCBAQCBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhCiAgICAgZGF0YS0+
bV9sYXN0TW9kaWZpZWREYXRlID0gbGFzdE1vZGlmaWVkRGF0ZSgpOwogICAgIGlmIChtX3Jlc291
cmNlTG9hZFRpbWluZykKICAgICAgICAgZGF0YS0+bV9yZXNvdXJjZUxvYWRUaW1pbmcgPSBtX3Jl
c291cmNlTG9hZFRpbWluZy0+ZGVlcENvcHkoKTsKLSAgICByZXR1cm4gZGF0YS5yZWxlYXNlKCk7
CisgICAgcmV0dXJuIGFzUmVzb3VyY2VSZXNwb25zZSgpLmRvUGxhdGZvcm1Db3B5RGF0YShkYXRh
LnJlbGVhc2UoKSk7CisKIH0KIAogYm9vbCBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6aXNIVFRQKCkg
Y29uc3QKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFz
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3Bv
bnNlQmFzZS5oCShyZXZpc2lvbiA2ODQ3NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZVJlc3BvbnNlQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDcsNiArMTQ3LDcgQEAg
cHJvdGVjdGVkOgogICAgIGJvb2wgbV9pc051bGwgOiAxOwogICAgIAogcHJpdmF0ZToKKyAgICBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiBhc1Jlc291cmNlUmVzcG9uc2UoKSBjb25zdDsKICAgICB2
b2lkIHBhcnNlQ2FjaGVDb250cm9sRGlyZWN0aXZlcygpIGNvbnN0OwogCiAgICAgbXV0YWJsZSBi
b29sIG1faGF2ZVBhcnNlZENhY2hlQ29udHJvbEhlYWRlciA6IDE7CkBAIC0xNjksNyArMTcwLDcg
QEAgcHJpdmF0ZToKIGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgYSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgYikgeyByZXR1cm4gUmVzb3VyY2VSZXNwb25z
ZUJhc2U6OmNvbXBhcmUoYSwgYik7IH0KIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgYSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgYikgeyByZXR1cm4gIShh
ID09IGIpOyB9CiAKLXN0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhIDogTm9u
Y29weWFibGUgeworc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGFCYXNlIDog
Tm9uY29weWFibGUgewogICAgIEtVUkwgbV91cmw7CiAgICAgU3RyaW5nIG1fbWltZVR5cGU7CiAg
ICAgbG9uZyBsb25nIG1fZXhwZWN0ZWRDb250ZW50TGVuZ3RoOwpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2FuZHJvaWQvUmVzb3VyY2VSZXF1ZXN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2FuZHJvaWQvUmVzb3VyY2VSZXF1ZXN0LmgJKHJldmlzaW9u
IDY4NDc3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2FuZHJvaWQvUmVzb3VyY2VSZXF1
ZXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDEyIEBAIHB1YmxpYzoKIAogcHJpdmF0
ZToKICAgICBmcmllbmQgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0QmFzZTsKKworICAgIFBhc3NPd25Q
dHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkb1BsYXRmb3JtQ29weURhdGEoUGFz
c093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IGRhdGEpIGNvbnN0IHsgcmV0
dXJuIGRhdGE7IH0KKyAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhy
ZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4pIHsgfQorfTsKKworc3RydWN0IENyb3NzVGhyZWFkUmVz
b3VyY2VSZXF1ZXN0RGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGFC
YXNlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9hbmRyb2lkL1Jlc291cmNlUmVzcG9uc2UuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvYW5kcm9pZC9SZXNvdXJjZVJlc3BvbnNlLmgJKHJldmlzaW9u
IDY4NDc3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2FuZHJvaWQvUmVzb3VyY2VSZXNw
b25zZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0NiwxMiBAQCBwcml2YXRlOgogICAgIHsK
ICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICB9CisKKyAgICBQYXNzT3duUHRyPENyb3Nz
VGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQYXNzT3duUHRy
PENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpIGNvbnN0IHsgcmV0dXJuIGRh
dGE7IH0KKyAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVz
b3VyY2VSZXNwb25zZURhdGE+KSB7IH0KK307CisKK3N0cnVjdCBDcm9zc1RocmVhZFJlc291cmNl
UmVzcG9uc2VEYXRhIDogcHVibGljIENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGFCYXNl
IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgJKHJldmlzaW9uIDY4NDc3KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC02OCwxMCArNjgsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQg
ZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3QoKTsKICAgICAgICAgdm9pZCBkb1VwZGF0ZVJlc291cmNl
UmVxdWVzdCgpOwotICAgICAgICAKKworICAgICAgICBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVz
b3VyY2VSZXF1ZXN0RGF0YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKFBhc3NPd25QdHI8Q3Jvc3NUaHJl
YWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkYXRhKSBjb25zdCB7IHJldHVybiBkYXRhOyB9CisgICAg
ICAgIHZvaWQgZG9QbGF0Zm9ybUFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJl
cXVlc3REYXRhPikgeyB9CisKICAgICAgICAgUmV0YWluUHRyPENGVVJMUmVxdWVzdFJlZj4gbV9j
ZlJlcXVlc3Q7ICAgICAgCiAgICAgfTsKIAorICAgIHN0cnVjdCBDcm9zc1RocmVhZFJlc291cmNl
UmVxdWVzdERhdGEgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhQmFzZSB7
CisgICAgfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUmVzb3VyY2VS
ZXF1ZXN0X2gKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlc3Bv
bnNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNl
UmVzcG9uc2UuaAkocmV2aXNpb24gNjg0NzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2YvUmVzb3VyY2VSZXNwb25zZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03MCwxMiArNzAsMTggQEAg
cHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUmVzb3VyY2VSZXNwb25zZUJhc2U7CiAKICAgICB2
b2lkIHBsYXRmb3JtTGF6eUluaXQoKTsKKyAgICBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3Vy
Y2VSZXNwb25zZURhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQYXNzT3duUHRyPENyb3NzVGhyZWFk
UmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpIGNvbnN0IHsgcmV0dXJuIGRhdGE7IH0KKyAgICB2
b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25z
ZURhdGE+KSB7IH0KKwogICAgIHN0YXRpYyBib29sIHBsYXRmb3JtQ29tcGFyZShjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiBhLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBiKTsKIAogICAgIFJldGFp
blB0cjxDRlVSTFJlc3BvbnNlUmVmPiBtX2NmUmVzcG9uc2U7CiAgICAgYm9vbCBtX2lzVXBUb0Rh
dGU7CiB9OwogCitzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YSA6IHB1Ymxp
YyBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhQmFzZSB7Cit9OworCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBSZXNvdXJjZVJlc3BvbnNlX2gKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3Qu
Y3BwCShyZXZpc2lvbiA2ODQ3NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1
bS9SZXNvdXJjZVJlcXVlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw0ICszNywxOSBAQCB1
bnNpZ25lZCBpbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uCiAgICAgcmV0dXJuIDEwMDAw
OwogfQogCitQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gUmVzb3Vy
Y2VSZXF1ZXN0Ojpkb1BsYXRmb3JtQ29weURhdGEoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291
cmNlUmVxdWVzdERhdGE+IGRhdGEpIGNvbnN0Cit7CisgICAgZGF0YS0+bV9yZXF1ZXN0b3JJRCA9
IG1fcmVxdWVzdG9ySUQ7CisgICAgZGF0YS0+bV9yZXF1ZXN0b3JQcm9jZXNzSUQgPSBtX3JlcXVl
c3RvclByb2Nlc3NJRDsKKyAgICBkYXRhLT5tX2FwcENhY2hlSG9zdElEID0gbV9hcHBDYWNoZUhv
c3RJRDsKKyAgICByZXR1cm4gZGF0YTsKK30KKwordm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmRvUGxh
dGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gZGF0
YSkKK3sKKyAgICBtX3JlcXVlc3RvcklEID0gZGF0YS0+bV9yZXF1ZXN0b3JJRDsKKyAgICBtX3Jl
cXVlc3RvclByb2Nlc3NJRCA9IGRhdGEtPm1fcmVxdWVzdG9yUHJvY2Vzc0lEOworICAgIG1fYXBw
Q2FjaGVIb3N0SUQgPSBkYXRhLT5tX2FwcENhY2hlSG9zdElEOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3Vy
Y2VSZXF1ZXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9t
aXVtL1Jlc291cmNlUmVxdWVzdC5oCShyZXZpc2lvbiA2ODQ3NykKKysrIFdlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuaAkod29ya2luZyBjb3B5KQpAQCAt
OTAsNiArOTAsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGRvVXBkYXRl
UGxhdGZvcm1SZXF1ZXN0KCkge30KICAgICAgICAgdm9pZCBkb1VwZGF0ZVJlc291cmNlUmVxdWVz
dCgpIHt9CiAKKyAgICAgICAgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERh
dGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1
ZXN0RGF0YT4pIGNvbnN0OworICAgICAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRy
PENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4pOworCisgICAgICAgIGludCBtX3JlcXVl
c3RvcklEOworICAgICAgICBpbnQgbV9yZXF1ZXN0b3JQcm9jZXNzSUQ7CisgICAgICAgIGludCBt
X2FwcENhY2hlSG9zdElEOworICAgIH07CisKKyAgICBzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJj
ZVJlcXVlc3REYXRhIDogcHVibGljIENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YUJhc2Ug
ewogICAgICAgICBpbnQgbV9yZXF1ZXN0b3JJRDsKICAgICAgICAgaW50IG1fcmVxdWVzdG9yUHJv
Y2Vzc0lEOwogICAgICAgICBpbnQgbV9hcHBDYWNoZUhvc3RJRDsKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlc3BvbnNlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXNwb25zZS5jcHAJ
KHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3Vy
Y2VSZXNwb25zZS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1Bhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gUmVzb3VyY2VS
ZXNwb25zZTo6ZG9QbGF0Zm9ybUNvcHlEYXRhKFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJj
ZVJlc3BvbnNlRGF0YT4gZGF0YSkgY29uc3QKK3sKKyAgICBkYXRhLT5tX2FwcENhY2hlSUQgPSBt
X2FwcENhY2hlSUQ7CisgICAgZGF0YS0+bV9hcHBDYWNoZU1hbmlmZXN0VVJMID0gbV9hcHBDYWNo
ZU1hbmlmZXN0VVJMLmNvcHkoKTsKKyAgICBkYXRhLT5tX2lzQ29udGVudEZpbHRlcmVkID0gbV9p
c0NvbnRlbnRGaWx0ZXJlZDsKKyAgICBkYXRhLT5tX2lzTXVsdGlwYXJ0UGF5bG9hZCA9IG1faXNN
dWx0aXBhcnRQYXlsb2FkOworICAgIGRhdGEtPm1fd2FzRmV0Y2hlZFZpYVNQRFkgPSBtX3dhc0Zl
dGNoZWRWaWFTUERZOworICAgIGRhdGEtPm1fd2FzTnBuTmVnb3RpYXRlZCA9IG1fd2FzTnBuTmVn
b3RpYXRlZDsKKyAgICBkYXRhLT5tX3dhc0FsdGVybmF0ZVByb3RvY29sQXZhaWxhYmxlID0gbV93
YXNBbHRlcm5hdGVQcm90b2NvbEF2YWlsYWJsZTsKKyAgICBkYXRhLT5tX3dhc0ZldGNoZWRWaWFQ
cm94eSA9IG1fd2FzRmV0Y2hlZFZpYVByb3h5OworICAgIGRhdGEtPm1fcmVzcG9uc2VUaW1lID0g
bV9yZXNwb25zZVRpbWU7CisgICAgcmV0dXJuIGRhdGE7Cit9CisKK3ZvaWQgUmVzb3VyY2VSZXNw
b25zZTo6ZG9QbGF0Zm9ybUFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3Bv
bnNlRGF0YT4gZGF0YSkKK3sKKyAgICBtX2FwcENhY2hlSUQgPSBkYXRhLT5tX2FwcENhY2hlSUQ7
CisgICAgbV9hcHBDYWNoZU1hbmlmZXN0VVJMID0gZGF0YS0+bV9hcHBDYWNoZU1hbmlmZXN0VVJM
LmNvcHkoKTsKKyAgICBtX2lzQ29udGVudEZpbHRlcmVkID0gZGF0YS0+bV9pc0NvbnRlbnRGaWx0
ZXJlZDsKKyAgICBtX2lzTXVsdGlwYXJ0UGF5bG9hZCA9IGRhdGEtPm1faXNNdWx0aXBhcnRQYXls
b2FkOworICAgIG1fd2FzRmV0Y2hlZFZpYVNQRFkgPSBkYXRhLT5tX3dhc0ZldGNoZWRWaWFTUERZ
OworICAgIG1fd2FzTnBuTmVnb3RpYXRlZCA9IGRhdGEtPm1fd2FzTnBuTmVnb3RpYXRlZDsKKyAg
ICBtX3dhc0FsdGVybmF0ZVByb3RvY29sQXZhaWxhYmxlID0gZGF0YS0+bV93YXNBbHRlcm5hdGVQ
cm90b2NvbEF2YWlsYWJsZTsKKyAgICBtX3dhc0ZldGNoZWRWaWFQcm94eSA9IGRhdGEtPm1fd2Fz
RmV0Y2hlZFZpYVByb3h5OworICAgIG1fcmVzcG9uc2VUaW1lID0gZGF0YS0+bV9yZXNwb25zZVRp
bWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlc3BvbnNlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVzcG9uc2UuaAkocmV2aXNpb24g
Njg0NzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXNw
b25zZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksNiArMTA5LDkgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICAgICAgfQogCisgICAgICAg
IFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZG9QbGF0Zm9ybUNv
cHlEYXRhKFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4pIGNvbnN0
OworICAgICAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVz
b3VyY2VSZXNwb25zZURhdGE+KTsKKwogICAgICAgICAvLyBUaGUgaWQgb2YgdGhlIGFwcGNhY2hl
IHRoaXMgcmVzcG9uc2Ugd2FzIHJldHJpZXZlZCBmcm9tLCBvciB6ZXJvIGlmCiAgICAgICAgIC8v
IHRoZSByZXNwb25zZSB3YXMgbm90IHJldHJpZXZlZCBmcm9tIGFuIGFwcGNhY2hlLgogICAgICAg
ICBsb25nIGxvbmcgbV9hcHBDYWNoZUlEOwpAQCAtMTQyLDYgKzE0NSwxOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIGRvdWJsZSBtX3Jlc3BvbnNlVGltZTsKICAgICB9OwogCisgICAg
c3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGEgOiBwdWJsaWMgQ3Jvc3NUaHJl
YWRSZXNvdXJjZVJlc3BvbnNlRGF0YUJhc2UgeworICAgICAgICBsb25nIGxvbmcgbV9hcHBDYWNo
ZUlEOworICAgICAgICBLVVJMIG1fYXBwQ2FjaGVNYW5pZmVzdFVSTDsKKyAgICAgICAgYm9vbCBt
X2lzQ29udGVudEZpbHRlcmVkOworICAgICAgICBib29sIG1faXNNdWx0aXBhcnRQYXlsb2FkOwor
ICAgICAgICBib29sIG1fd2FzRmV0Y2hlZFZpYVNQRFk7CisgICAgICAgIGJvb2wgbV93YXNOcG5O
ZWdvdGlhdGVkOworICAgICAgICBib29sIG1fd2FzQWx0ZXJuYXRlUHJvdG9jb2xBdmFpbGFibGU7
CisgICAgICAgIGJvb2wgbV93YXNGZXRjaGVkVmlhUHJveHk7CisgICAgICAgIGRvdWJsZSBtX3Jl
c3BvbnNlVGltZTsKKyAgICB9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VSZXF1ZXN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VSZXF1ZXN0
LmgJKHJldmlzaW9uIDY4NDc3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVz
b3VyY2VSZXF1ZXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDYgKzY5LDEyIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIGRvVXBkYXRlUGxhdGZvcm1SZXF1ZXN0KCkge30K
ICAgICAgICAgdm9pZCBkb1VwZGF0ZVJlc291cmNlUmVxdWVzdCgpIHt9CisKKyAgICAgICAgUGFz
c093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IGRvUGxhdGZvcm1Db3B5RGF0
YShQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gZGF0YSkgY29uc3Qg
eyByZXR1cm4gZGF0YTsgfQorICAgICAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRy
PENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4pIHsgfQorICAgIH07CisKKyAgICBzdHJ1
Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhIDogcHVibGljIENyb3NzVGhyZWFkUmVz
b3VyY2VSZXF1ZXN0RGF0YUJhc2UgewogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlUmVzcG9uc2UuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZVJlc3Bv
bnNlLmgJKHJldmlzaW9uIDY4NDc3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
UmVzb3VyY2VSZXNwb25zZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw5ICs1MiwxNyBAQCBwdWJs
aWM6CiAgICAgQ0ZVUkxSZXNwb25zZVJlZiBjZlVSTFJlc3BvbnNlKCkgY29uc3QgeyByZXR1cm4g
MDsgfQogCiBwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlQmFzZTsK
KworICAgIFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZG9QbGF0
Zm9ybUNvcHlEYXRhKFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4g
ZGF0YSkgY29uc3QgeyByZXR1cm4gZGF0YTsgfQorICAgIHZvaWQgZG9QbGF0Zm9ybUFkb3B0KFBh
c3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4pIHsgfQorCiAgICAgYm9v
bCBtX3Jlc3BvbnNlRmlyZWQ7CiB9OwogCitzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3Bv
bnNlRGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhQmFzZSB7Cit9
OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBSZXNvdXJjZVJlc3BvbnNl
X2gKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlcXVl
c3QuaAkocmV2aXNpb24gNjg0NzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jl
c291cmNlUmVxdWVzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC03NCw5ICs3NCwxNSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3QoKTsKICAg
ICAgICAgdm9pZCBkb1VwZGF0ZVJlc291cmNlUmVxdWVzdCgpOwogICAgICAgICAKKyAgICAgICAg
UGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IGRvUGxhdGZvcm1Db3B5
RGF0YShQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gZGF0YSkgY29u
c3QgeyByZXR1cm4gZGF0YTsgfQorICAgICAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3du
UHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4pIHsgfQorCiAgICAgICAgIFJldGFp
blB0cjxOU1VSTFJlcXVlc3Q+IG1fbnNSZXF1ZXN0OwogICAgIH07CiAKKyAgICBzdHJ1Y3QgQ3Jv
c3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhIDogcHVibGljIENyb3NzVGhyZWFkUmVzb3VyY2VS
ZXF1ZXN0RGF0YUJhc2UgeworICAgIH07CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIFJlc291cmNlUmVxdWVzdF9oCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
bWFjL1Jlc291cmNlUmVzcG9uc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1Jlc291cmNlUmVzcG9uc2UuaAkocmV2aXNpb24gNjg0NzcpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVzcG9uc2UuaAkod29ya2luZyBjb3B5KQpA
QCAtNzUsMTIgKzc1LDE5IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFJlc291cmNlUmVz
cG9uc2VCYXNlOwogCiAgICAgdm9pZCBwbGF0Zm9ybUxhenlJbml0KCk7CisKKyAgICBQYXNzT3du
UHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQ
YXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpIGNvbnN0IHsg
cmV0dXJuIGRhdGE7IH0KKyAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3Nz
VGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+KSB7IH0KKwogICAgIHN0YXRpYyBib29sIHBsYXRm
b3JtQ29tcGFyZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBhLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiBiKTsKIAogICAgIFJldGFpblB0cjxOU1VSTFJlc3BvbnNlPiBtX25zUmVzcG9uc2U7CiAg
ICAgYm9vbCBtX2lzVXBUb0RhdGU7CiB9OwogCitzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJl
c3BvbnNlRGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhQmFzZSB7
Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBSZXNvdXJjZVJlc3Bv
bnNlX2gKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZVJlcXVlc3Qu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VSZXF1
ZXN0LmgJKHJldmlzaW9uIDY4NDc3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jl
c291cmNlUmVxdWVzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Niw2ICs2NiwxMiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBkb1VwZGF0ZVBsYXRmb3JtUmVxdWVzdCgpIHt9
CiAgICAgICAgIHZvaWQgZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QoKSB7fQorCisgICAgICAgIFBh
c3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkb1BsYXRmb3JtQ29weURh
dGEoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IGRhdGEpIGNvbnN0
IHsgcmV0dXJuIGRhdGE7IH0KKyAgICAgICAgdm9pZCBkb1BsYXRmb3JtQWRvcHQoUGFzc093blB0
cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+KSB7IH0KKyAgICB9OworCisgICAgc3Ry
dWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJl
c291cmNlUmVxdWVzdERhdGFCYXNlIHsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VSZXNwb25zZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZVJlc3BvbnNl
LmgJKHJldmlzaW9uIDY4NDc3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291
cmNlUmVzcG9uc2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsMTUgQEAgcHVibGljOgog
ICAgICAgICA6IFJlc291cmNlUmVzcG9uc2VCYXNlKHVybCwgbWltZVR5cGUsIGV4cGVjdGVkTGVu
Z3RoLCB0ZXh0RW5jb2RpbmdOYW1lLCBmaWxlbmFtZSkKICAgICB7CiAgICAgfQorCitwcml2YXRl
OgorICAgIGZyaWVuZCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlQmFzZTsKKworICAgIFBhc3NPd25Q
dHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKFBh
c3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZGF0YSkgY29uc3QgeyBy
ZXR1cm4gZGF0YTsgfQorICAgIHZvaWQgZG9QbGF0Zm9ybUFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NU
aHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4pIHsgfQorfTsKKworc3RydWN0IENyb3NzVGhyZWFk
UmVzb3VyY2VSZXNwb25zZURhdGEgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNl
RGF0YUJhc2UgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0LmgJKHJldmlzaW9uIDY4
NDc3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTgwLDYgKzgwLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgICAgICB2b2lkIGRvVXBkYXRlUGxhdGZvcm1SZXF1ZXN0KCkge307CiAgICAgICAgIHZvaWQg
ZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QoKSB7fTsKKworICAgICAgICBQYXNzT3duUHRyPENyb3Nz
VGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKFBhc3NPd25QdHI8
Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkYXRhKSBjb25zdCB7IHJldHVybiBkYXRh
OyB9CisgICAgICAgIHZvaWQgZG9QbGF0Zm9ybUFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRS
ZXNvdXJjZVJlcXVlc3REYXRhPikgeyB9CisgICAgfTsKKworICAgIHN0cnVjdCBDcm9zc1RocmVh
ZFJlc291cmNlUmVxdWVzdERhdGEgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3RE
YXRhQmFzZSB7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2UuaAkocmV2aXNp
b24gNjg0NzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3Bv
bnNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTYzLDkgKzYzLDEzIEBAIHByaXZhdGU6CiAKICAgICBT
b3VwTWVzc2FnZUZsYWdzIG1fc291cEZsYWdzOwogCi0gICAgdm9pZCBkb1VwZGF0ZVJlc291cmNl
UmVzcG9uc2UoKQotICAgIHsKLSAgICB9CisgICAgdm9pZCBkb1VwZGF0ZVJlc291cmNlUmVzcG9u
c2UoKSB7IH0KKworICAgIFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0
YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3Bv
bnNlRGF0YT4gZGF0YSkgY29uc3QgeyByZXR1cm4gZGF0YTsgfQorICAgIHZvaWQgZG9QbGF0Zm9y
bUFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4pIHsgfQor
fTsKKworc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGEgOiBwdWJsaWMgQ3Jv
c3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YUJhc2UgewogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQo=
</data>
<flag name="review"
          id="58758"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69134</attachid>
            <date>2010-09-28 16:48:03 -0700</date>
            <delta_ts>2010-09-28 18:37:00 -0700</delta_ts>
            <desc>crossThread patch</desc>
            <filename>cross4.txt</filename>
            <type>text/plain</type>
            <size>26313</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODU1NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsODAgQEAKKzIwMTAtMDktMjggIE1pY2hhZWwgTm9yZG1hbiAgPG1pY2hhZWxuQGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTWFrZSBpdCBwb3NzaWJsZSB0byBjb3B5IHBsYXRmb3JtIHNwZWNpZmljIGRhdGEgbWVtYmVy
cyBvZiBSZXNvdXJjZVJlcXVlc3QgYW5kIFJlc291cmNlUmVzcG9uc2UKKyAgICAgICAgYWNyb3Nz
IHRocmVhZHMgYW5kIHRvIGNvbXBhcmUgcGxhdGZvcm0gc3BlY2lmaWMgZGF0YSBtZW1iZXJzIG9m
IFJlc291cmNlUmVxdWVzdC4KKyAgICAgICAgLSBBZGRlZCB0d28gaW5zdGFuY2UgbWV0aG9kcyB0
byB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgc3ViY2xhc3NlczogZG9QbGF0Zm9ybUFkb3B0IGFuZCBk
b1BsYXRmb3JtQ29weURhdGEuCisgICAgICAgIC0gQWxzbyBhZGRlZCBhICJzaGFkb3dhYmxlIiBz
dGF0aWMgbWV0aG9kIGZvciBwbGF0Zm9ybUNvbXBhcmUgdG8gUmVzb3VyY2VSZXF1ZXN0QmFzZSwg
YSBzaW1pbGFyIG1ldGhvZAorICAgICAgICAgIGlzIGFscmVhZHkgcHJlc2VudCBvbiBSZXNvdXJj
ZVJlc3BvbnNlQmFzZS4KKyAgICAgICAgLSBDb252ZXJ0ZWQgdGhlIGNyb3NzIHRocmVhZCBzdHJ1
Y3RzIGRlZmluZWQgaW4gUmVzb3VyY2VSZXF1ZXN0L1Jlc3BvbnNlQmFzZS5oIHRvIGJhc2UKKyAg
ICAgICAgICBjbGFzc2VzIGFuZCBleHRlbmRlZCB0aG9zZSBiYXNlIGNsYXNzZXMgaW4gdGhlIHBs
YXRmb3JtIHNwZWNpZmljIGhlYWRlcnMgdG8gcHJvdmlkZSBhIHBsYWNlCisgICAgICAgICAgdG8g
aG9sZCBhZGRpdGlvbmFsIGZpZWxkcy4KKyAgICAgICAgLSBVc2VkIHRoaXMgbWVjaGFuaXNtIHRv
IGhhdmUgdGhlIGNocm9taXVtIHBvcnQncyBkYXRhIG1lbWJlcnMgbWFrZSB0aGUgaG9wLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY0MzAKKworICAg
ICAgICBObyBuZXcgdGVzdHMuIEp1c3QgcGx1bWJpbmcuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OmFkb3B0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OmNvcHlEYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OmNvbXBhcmUpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0QmFzZTo6cGxhdGZvcm1Db21wYXJlKToKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9y
PT0pOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3IhPSk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlQmFzZTo6YXNSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2VCYXNlOjphZG9wdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlQmFzZTo6Y29weURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VSZXNwb25zZUJhc2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2FuZHJvaWQv
UmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRv
UGxhdGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRv
UGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9hbmRyb2lkL1Jlc291
cmNlUmVzcG9uc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxh
dGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1Bs
YXRmb3JtQWRvcHQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1
ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1Db3B5
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1BZG9w
dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1BsYXRmb3JtQ29weURhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6ZG9QbGF0Zm9ybUFkb3B0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVxdWVzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1Db3B5RGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVzcG9uc2UuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1Db3B5RGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1BsYXRmb3JtQWRvcHQp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXNwb25zZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZVJlcXVlc3QuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUFkb3B0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VSZXNwb25zZS5oOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9tYWMvUmVzb3VyY2VSZXNwb25zZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZTo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9xdC9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dDo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dDo6ZG9QbGF0Zm9ybUFkb3B0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291
cmNlUmVzcG9uc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxh
dGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1Bs
YXRmb3JtQWRvcHQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJl
cXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUNv
cHlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUFk
b3B0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZS5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6ZG9VcGRhdGVSZXNvdXJjZVJl
c3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1D
b3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1BsYXRmb3Jt
QWRvcHQpOgorCiAyMDEwLTA5LTI4ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5
cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDY4NDc3KQor
KysgV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTI4NDksNiArMjg0OSw3
IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUVycm9y
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1
ZXN0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJj
ZVJlcXVlc3QuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNv
dXJjZVJlc3BvbnNlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9jaHJvbWl1
bS9SZXNvdXJjZVJlc3BvbnNlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvY2hy
b21pdW0vU29ja2V0U3RyZWFtRXJyb3IuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29y
ay9jaHJvbWl1bS9Tb2NrZXRTdHJlYW1IYW5kbGUuaCcsCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwCShyZXZpc2lvbiA2ODQ3NykK
KysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjUsNiArNjUsNyBAQCBQYXNzT3duUHRyPFJlc291cmNlUmVxdWVzdD4g
UmVzb3VyY2VSZXF1CiAgICAgfQogICAgIHJlcXVlc3QtPnNldEhUVFBCb2R5KGRhdGEtPm1faHR0
cEJvZHkpOwogICAgIHJlcXVlc3QtPnNldEFsbG93Q29va2llcyhkYXRhLT5tX2FsbG93Q29va2ll
cyk7CisgICAgcmVxdWVzdC0+ZG9QbGF0Zm9ybUFkb3B0KGRhdGEpOwogICAgIHJldHVybiByZXF1
ZXN0LnJlbGVhc2UoKTsKIH0KIApAQCAtODcsNyArODgsNyBAQCBQYXNzT3duUHRyPENyb3NzVGhy
ZWFkUmVzb3VyY2VSZXF1ZXN0RGF0CiAgICAgaWYgKG1faHR0cEJvZHkpCiAgICAgICAgIGRhdGEt
Pm1faHR0cEJvZHkgPSBtX2h0dHBCb2R5LT5kZWVwQ29weSgpOwogICAgIGRhdGEtPm1fYWxsb3dD
b29raWVzID0gbV9hbGxvd0Nvb2tpZXM7Ci0gICAgcmV0dXJuIGRhdGEucmVsZWFzZSgpOworICAg
IHJldHVybiBhc1Jlc291cmNlUmVxdWVzdCgpLmRvUGxhdGZvcm1Db3B5RGF0YShkYXRhLnJlbGVh
c2UoKSk7CiB9CiAKIGJvb2wgUmVzb3VyY2VSZXF1ZXN0QmFzZTo6aXNFbXB0eSgpIGNvbnN0CkBA
IC0zNTUsNyArMzU2LDcgQEAgYm9vbCBlcXVhbElnbm9yaW5nSGVhZGVyRmllbGRzKGNvbnN0IFJl
cwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIG9wZXJhdG9yPT0oY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0QmFzZSYgYSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0QmFzZSYgYikKK2Jvb2wgUmVzb3Vy
Y2VSZXF1ZXN0QmFzZTo6Y29tcGFyZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGEsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgYikKIHsKICAgICBpZiAoIWVxdWFsSWdub3JpbmdIZWFkZXJGaWVsZHMo
YSwgYikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM2Myw3ICszNjQsNyBAQCBib29sIG9w
ZXJhdG9yPT0oY29uc3QgUmVzb3VyY2VSZXF1ZXN0QmFzCiAgICAgaWYgKGEuaHR0cEhlYWRlckZp
ZWxkcygpICE9IGIuaHR0cEhlYWRlckZpZWxkcygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIAotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBSZXNvdXJjZVJlcXVlc3Q6OnBs
YXRmb3JtQ29tcGFyZShhLCBiKTsKIH0KIAogYm9vbCBSZXNvdXJjZVJlcXVlc3RCYXNlOjppc0Nv
bmRpdGlvbmFsKCkgY29uc3QKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZVJlcXVlc3RCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlUmVxdWVzdEJhc2UuaAkocmV2aXNpb24gNjg0NzcpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDAsNiAr
MTQwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBUYXJnZXRUeXBlIHRhcmdldFR5
cGUoKSBjb25zdCB7IHJldHVybiBtX3RhcmdldFR5cGU7IH0KICAgICAgICAgdm9pZCBzZXRUYXJn
ZXRUeXBlKFRhcmdldFR5cGUgdHlwZSkgeyBtX3RhcmdldFR5cGUgPSB0eXBlOyB9CiAKKyAgICAg
ICAgc3RhdGljIGJvb2wgY29tcGFyZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmKTsKKwogICAgIHByb3RlY3RlZDoKICAgICAgICAgLy8gVXNlZCB3aGVuIFJl
c291cmNlUmVxdWVzdCBpcyBpbml0aWFsaXplZCBmcm9tIGEgcGxhdGZvcm0gcmVwcmVzZW50YXRp
b24gb2YgdGhlIHJlcXVlc3QKICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0QmFzZSgpCkBAIC0xNjgs
NiArMTcwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHVwZGF0ZVBsYXRm
b3JtUmVxdWVzdCgpIGNvbnN0OyAKICAgICAgICAgdm9pZCB1cGRhdGVSZXNvdXJjZVJlcXVlc3Qo
KSBjb25zdDsgCiAKKyAgICAgICAgLy8gVGhlIFJlc291cmNlUmVxdWVzdCBzdWJjbGFzcyBtYXkg
InNoYWRvdyIgdGhpcyBtZXRob2QgdG8gY29tcGFyZSBwbGF0Zm9ybSBzcGVjaWZpYyBmaWVsZHMK
KyAgICAgICAgc3RhdGljIGJvb2wgcGxhdGZvcm1Db21wYXJlKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIHsgcmV0dXJuIHRydWU7IH0KKwogICAgICAgICBL
VVJMIG1fdXJsOwogCiAgICAgICAgIFJlc291cmNlUmVxdWVzdENhY2hlUG9saWN5IG1fY2FjaGVQ
b2xpY3k7CkBAIC0xOTAsMTAgKzE5NSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBi
b29sIGVxdWFsSWdub3JpbmdIZWFkZXJGaWVsZHMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0QmFzZSYs
IGNvbnN0IFJlc291cmNlUmVxdWVzdEJhc2UmKTsKIAotICAgIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBSZXNvdXJjZVJlcXVlc3RCYXNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0QmFzZSYpOwotICAg
IGlubGluZSBib29sIG9wZXJhdG9yIT0oUmVzb3VyY2VSZXF1ZXN0QmFzZSYgYSwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0QmFzZSYgYikgeyByZXR1cm4gIShhID09IGIpOyB9CisgICAgaW5saW5lIGJv
b2wgb3BlcmF0b3I9PShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGEsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgYikgeyByZXR1cm4gUmVzb3VyY2VSZXF1ZXN0QmFzZTo6Y29tcGFyZShhLCBiKTsgfQor
ICAgIGlubGluZSBib29sIG9wZXJhdG9yIT0oUmVzb3VyY2VSZXF1ZXN0JiBhLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIGIpIHsgcmV0dXJuICEoYSA9PSBiKTsgfQogCi0gICAgc3RydWN0IENyb3Nz
VGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YSA6IE5vbmNvcHlhYmxlIHsKKyAgICBzdHJ1Y3QgQ3Jv
c3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhQmFzZSA6IE5vbmNvcHlhYmxlIHsKICAgICAgICAg
S1VSTCBtX3VybDsKIAogICAgICAgICBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeSBtX2NhY2hl
UG9saWN5OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VC
YXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VS
ZXNwb25zZUJhc2UuY3BwCShyZXZpc2lvbiA2ODQ3NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5
LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIHZvaWQgcGFyc2VDYWNoZUhlYWRl
cihjb25zdCBTdHJpbmcmIGhlYWRlciwgVmVjdG9yPHBhaXI8U3RyaW5nLCBTdHJpbmc+ID4mIHJl
c3VsdCk7CiAKK2lubGluZSBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBSZXNvdXJjZVJlc3BvbnNl
QmFzZTo6YXNSZXNvdXJjZVJlc3BvbnNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKnN0YXRpY19j
YXN0PGNvbnN0IFJlc291cmNlUmVzcG9uc2UqPih0aGlzKTsKK30KKwogUmVzb3VyY2VSZXNwb25z
ZUJhc2U6OlJlc291cmNlUmVzcG9uc2VCYXNlKCkgIAogICAgIDogbV9leHBlY3RlZENvbnRlbnRM
ZW5ndGgoMCkKICAgICAsIG1faHR0cFN0YXR1c0NvZGUoMCkKQEAgLTEwNyw3ICsxMTIsNyBAQCBQ
YXNzT3duUHRyPFJlc291cmNlUmVzcG9uc2U+IFJlc291cmNlUmVzCiAgICAgcmVzcG9uc2UtPm1f
aHR0cEhlYWRlckZpZWxkcy5hZG9wdChkYXRhLT5tX2h0dHBIZWFkZXJzLnJlbGVhc2UoKSk7CiAg
ICAgcmVzcG9uc2UtPnNldExhc3RNb2RpZmllZERhdGUoZGF0YS0+bV9sYXN0TW9kaWZpZWREYXRl
KTsKICAgICByZXNwb25zZS0+c2V0UmVzb3VyY2VMb2FkVGltaW5nKGRhdGEtPm1fcmVzb3VyY2VM
b2FkVGltaW5nLnJlbGVhc2UoKSk7Ci0KKyAgICByZXNwb25zZS0+ZG9QbGF0Zm9ybUFkb3B0KGRh
dGEpOwogICAgIHJldHVybiByZXNwb25zZS5yZWxlYXNlKCk7CiB9CiAKQEAgLTEyNSw3ICsxMzAs
NyBAQCBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhCiAgICAgZGF0YS0+
bV9sYXN0TW9kaWZpZWREYXRlID0gbGFzdE1vZGlmaWVkRGF0ZSgpOwogICAgIGlmIChtX3Jlc291
cmNlTG9hZFRpbWluZykKICAgICAgICAgZGF0YS0+bV9yZXNvdXJjZUxvYWRUaW1pbmcgPSBtX3Jl
c291cmNlTG9hZFRpbWluZy0+ZGVlcENvcHkoKTsKLSAgICByZXR1cm4gZGF0YS5yZWxlYXNlKCk7
CisgICAgcmV0dXJuIGFzUmVzb3VyY2VSZXNwb25zZSgpLmRvUGxhdGZvcm1Db3B5RGF0YShkYXRh
LnJlbGVhc2UoKSk7CiB9CiAKIGJvb2wgUmVzb3VyY2VSZXNwb25zZUJhc2U6OmlzSFRUUCgpIGNv
bnN0CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25z
ZUJhc2UuaAkocmV2aXNpb24gNjg0NzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VSZXNwb25zZUJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTE2LDcgKzExNiw3IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIDEyODA7CiAgICAgfQogCi0gICAgc3RhdGljIGJvb2wgY29t
cGFyZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBhLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBi
KTsKKyAgICBzdGF0aWMgYm9vbCBjb21wYXJlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJik7CiAKIHByb3RlY3RlZDoKICAgICBSZXNvdXJjZVJlc3BvbnNl
QmFzZSgpOwpAQCAtMTQ3LDYgKzE0Nyw3IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1faXNOdWxs
IDogMTsKICAgICAKIHByaXZhdGU6CisgICAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgYXNSZXNv
dXJjZVJlc3BvbnNlKCkgY29uc3Q7CiAgICAgdm9pZCBwYXJzZUNhY2hlQ29udHJvbERpcmVjdGl2
ZXMoKSBjb25zdDsKIAogICAgIG11dGFibGUgYm9vbCBtX2hhdmVQYXJzZWRDYWNoZUNvbnRyb2xI
ZWFkZXIgOiAxOwpAQCAtMTY5LDcgKzE3MCw3IEBAIHByaXZhdGU6CiBpbmxpbmUgYm9vbCBvcGVy
YXRvcj09KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIGEsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IGIpIHsgcmV0dXJuIFJlc291cmNlUmVzcG9uc2VCYXNlOjpjb21wYXJlKGEsIGIpOyB9CiBpbmxp
bmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIGEsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIGIpIHsgcmV0dXJuICEoYSA9PSBiKTsgfQogCi1zdHJ1Y3QgQ3Jvc3NUaHJl
YWRSZXNvdXJjZVJlc3BvbnNlRGF0YSA6IE5vbmNvcHlhYmxlIHsKK3N0cnVjdCBDcm9zc1RocmVh
ZFJlc291cmNlUmVzcG9uc2VEYXRhQmFzZSA6IE5vbmNvcHlhYmxlIHsKICAgICBLVVJMIG1fdXJs
OwogICAgIFN0cmluZyBtX21pbWVUeXBlOwogICAgIGxvbmcgbG9uZyBtX2V4cGVjdGVkQ29udGVu
dExlbmd0aDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9hbmRyb2lkL1Jlc291cmNl
UmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9hbmRyb2lk
L1Jlc291cmNlUmVxdWVzdC5oCShyZXZpc2lvbiA2ODQ3NykKKysrIFdlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9hbmRyb2lkL1Jlc291cmNlUmVxdWVzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2
ICs1MywxMiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFJlc291cmNl
UmVxdWVzdEJhc2U7CisKKyAgICBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0
RGF0YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJl
cXVlc3REYXRhPiBkYXRhKSBjb25zdCB7IHJldHVybiBkYXRhOyB9CisgICAgdm9pZCBkb1BsYXRm
b3JtQWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+KSB7IH0K
K307CisKK3N0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGEgOiBwdWJsaWMgQ3Jv
c3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhQmFzZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYW5kcm9pZC9SZXNvdXJjZVJl
c3BvbnNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2FuZHJvaWQv
UmVzb3VyY2VSZXNwb25zZS5oCShyZXZpc2lvbiA2ODQ3NykKKysrIFdlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9hbmRyb2lkL1Jlc291cmNlUmVzcG9uc2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDYs
NiArNDYsMTIgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAg
ICAgfQorCisgICAgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBk
b1BsYXRmb3JtQ29weURhdGEoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VE
YXRhPiBkYXRhKSBjb25zdCB7IHJldHVybiBkYXRhOyB9CisgICAgdm9pZCBkb1BsYXRmb3JtQWRv
cHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPikgeyB9Cit9Owor
CitzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YSA6IHB1YmxpYyBDcm9zc1Ro
cmVhZFJlc291cmNlUmVzcG9uc2VEYXRhQmFzZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVz
dC5oCShyZXZpc2lvbiA2ODQ3NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZVJlcXVlc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNjgsMTAgKzY4LDE2IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIGRvVXBkYXRlUGxhdGZvcm1SZXF1ZXN0KCk7CiAg
ICAgICAgIHZvaWQgZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QoKTsKLSAgICAgICAgCisKKyAgICAg
ICAgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IGRvUGxhdGZvcm1D
b3B5RGF0YShQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gZGF0YSkg
Y29uc3QgeyByZXR1cm4gZGF0YTsgfQorICAgICAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNz
T3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4pIHsgfQorCiAgICAgICAgIFJl
dGFpblB0cjxDRlVSTFJlcXVlc3RSZWY+IG1fY2ZSZXF1ZXN0OyAgICAgIAogICAgIH07CiAKKyAg
ICBzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhIDogcHVibGljIENyb3NzVGhy
ZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YUJhc2UgeworICAgIH07CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIFJlc291cmNlUmVxdWVzdF9oCkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlLmgJKHJldmlzaW9uIDY4NDc3KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVzcG9uc2UuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNzAsMTIgKzcwLDE4IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFJl
c291cmNlUmVzcG9uc2VCYXNlOwogCiAgICAgdm9pZCBwbGF0Zm9ybUxhenlJbml0KCk7CisgICAg
UGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBkb1BsYXRmb3JtQ29w
eURhdGEoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBkYXRhKSBj
b25zdCB7IHJldHVybiBkYXRhOyB9CisgICAgdm9pZCBkb1BsYXRmb3JtQWRvcHQoUGFzc093blB0
cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPikgeyB9CisKICAgICBzdGF0aWMgYm9v
bCBwbGF0Zm9ybUNvbXBhcmUoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgYSwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgYik7CiAKICAgICBSZXRhaW5QdHI8Q0ZVUkxSZXNwb25zZVJlZj4gbV9jZlJl
c3BvbnNlOwogICAgIGJvb2wgbV9pc1VwVG9EYXRlOwogfTsKIAorc3RydWN0IENyb3NzVGhyZWFk
UmVzb3VyY2VSZXNwb25zZURhdGEgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNl
RGF0YUJhc2UgeworfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUmVz
b3VyY2VSZXNwb25zZV9oCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0v
UmVzb3VyY2VSZXF1ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0LmNwcAkocmV2aXNpb24gNjg0NzcpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzcsNCArMzcsMTkgQEAgdW5zaWduZWQgaW5pdGlhbGl6ZU1heGltdW1IVFRQ
Q29ubmVjdGlvbgogICAgIHJldHVybiAxMDAwMDsKIH0KIAorUGFzc093blB0cjxDcm9zc1RocmVh
ZFJlc291cmNlUmVxdWVzdERhdGE+IFJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUNvcHlEYXRh
KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkYXRhKSBjb25zdAor
eworICAgIGRhdGEtPm1fcmVxdWVzdG9ySUQgPSBtX3JlcXVlc3RvcklEOworICAgIGRhdGEtPm1f
cmVxdWVzdG9yUHJvY2Vzc0lEID0gbV9yZXF1ZXN0b3JQcm9jZXNzSUQ7CisgICAgZGF0YS0+bV9h
cHBDYWNoZUhvc3RJRCA9IG1fYXBwQ2FjaGVIb3N0SUQ7CisgICAgcmV0dXJuIGRhdGE7Cit9CisK
K3ZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojpkb1BsYXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9zc1Ro
cmVhZFJlc291cmNlUmVxdWVzdERhdGE+IGRhdGEpCit7CisgICAgbV9yZXF1ZXN0b3JJRCA9IGRh
dGEtPm1fcmVxdWVzdG9ySUQ7CisgICAgbV9yZXF1ZXN0b3JQcm9jZXNzSUQgPSBkYXRhLT5tX3Jl
cXVlc3RvclByb2Nlc3NJRDsKKyAgICBtX2FwcENhY2hlSG9zdElEID0gZGF0YS0+bV9hcHBDYWNo
ZUhvc3RJRDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVxdWVzdC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuaAkocmV2aXNp
b24gNjg0NzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VS
ZXF1ZXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTkwLDYgKzkwLDE1IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgdm9pZCBkb1VwZGF0ZVBsYXRmb3JtUmVxdWVzdCgpIHt9CiAgICAgICAg
IHZvaWQgZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QoKSB7fQogCisgICAgICAgIFBhc3NPd25QdHI8
Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkb1BsYXRmb3JtQ29weURhdGEoUGFzc093
blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+KSBjb25zdDsKKyAgICAgICAgdm9p
ZCBkb1BsYXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERh
dGE+KTsKKworICAgICAgICBpbnQgbV9yZXF1ZXN0b3JJRDsKKyAgICAgICAgaW50IG1fcmVxdWVz
dG9yUHJvY2Vzc0lEOworICAgICAgICBpbnQgbV9hcHBDYWNoZUhvc3RJRDsKKyAgICB9OworCisg
ICAgc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YSA6IHB1YmxpYyBDcm9zc1Ro
cmVhZFJlc291cmNlUmVxdWVzdERhdGFCYXNlIHsKICAgICAgICAgaW50IG1fcmVxdWVzdG9ySUQ7
CiAgICAgICAgIGludCBtX3JlcXVlc3RvclByb2Nlc3NJRDsKICAgICAgICAgaW50IG1fYXBwQ2Fj
aGVIb3N0SUQ7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3Vy
Y2VSZXNwb25zZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2No
cm9taXVtL1Jlc291cmNlUmVzcG9uc2UuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVzcG9uc2UuY3BwCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlc291cmNlUmVzcG9u
c2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVz
b3VyY2VSZXNwb25zZURhdGE+IFJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1Db3B5RGF0YShQ
YXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpIGNvbnN0Cit7
CisgICAgZGF0YS0+bV9hcHBDYWNoZUlEID0gbV9hcHBDYWNoZUlEOworICAgIGRhdGEtPm1fYXBw
Q2FjaGVNYW5pZmVzdFVSTCA9IG1fYXBwQ2FjaGVNYW5pZmVzdFVSTC5jb3B5KCk7CisgICAgZGF0
YS0+bV9pc0NvbnRlbnRGaWx0ZXJlZCA9IG1faXNDb250ZW50RmlsdGVyZWQ7CisgICAgZGF0YS0+
bV9pc011bHRpcGFydFBheWxvYWQgPSBtX2lzTXVsdGlwYXJ0UGF5bG9hZDsKKyAgICBkYXRhLT5t
X3dhc0ZldGNoZWRWaWFTUERZID0gbV93YXNGZXRjaGVkVmlhU1BEWTsKKyAgICBkYXRhLT5tX3dh
c05wbk5lZ290aWF0ZWQgPSBtX3dhc05wbk5lZ290aWF0ZWQ7CisgICAgZGF0YS0+bV93YXNBbHRl
cm5hdGVQcm90b2NvbEF2YWlsYWJsZSA9IG1fd2FzQWx0ZXJuYXRlUHJvdG9jb2xBdmFpbGFibGU7
CisgICAgZGF0YS0+bV93YXNGZXRjaGVkVmlhUHJveHkgPSBtX3dhc0ZldGNoZWRWaWFQcm94eTsK
KyAgICBkYXRhLT5tX3Jlc3BvbnNlVGltZSA9IG1fcmVzcG9uc2VUaW1lOworICAgIHJldHVybiBk
YXRhOworfQorCit2b2lkIFJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1BZG9wdChQYXNzT3du
UHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpCit7CisgICAgbV9hcHBD
YWNoZUlEID0gZGF0YS0+bV9hcHBDYWNoZUlEOworICAgIG1fYXBwQ2FjaGVNYW5pZmVzdFVSTCA9
IGRhdGEtPm1fYXBwQ2FjaGVNYW5pZmVzdFVSTC5jb3B5KCk7CisgICAgbV9pc0NvbnRlbnRGaWx0
ZXJlZCA9IGRhdGEtPm1faXNDb250ZW50RmlsdGVyZWQ7CisgICAgbV9pc011bHRpcGFydFBheWxv
YWQgPSBkYXRhLT5tX2lzTXVsdGlwYXJ0UGF5bG9hZDsKKyAgICBtX3dhc0ZldGNoZWRWaWFTUERZ
ID0gZGF0YS0+bV93YXNGZXRjaGVkVmlhU1BEWTsKKyAgICBtX3dhc05wbk5lZ290aWF0ZWQgPSBk
YXRhLT5tX3dhc05wbk5lZ290aWF0ZWQ7CisgICAgbV93YXNBbHRlcm5hdGVQcm90b2NvbEF2YWls
YWJsZSA9IGRhdGEtPm1fd2FzQWx0ZXJuYXRlUHJvdG9jb2xBdmFpbGFibGU7CisgICAgbV93YXNG
ZXRjaGVkVmlhUHJveHkgPSBkYXRhLT5tX3dhc0ZldGNoZWRWaWFQcm94eTsKKyAgICBtX3Jlc3Bv
bnNlVGltZSA9IGRhdGEtPm1fcmVzcG9uc2VUaW1lOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXNw
b25zZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9S
ZXNvdXJjZVJlc3BvbnNlLmgJKHJldmlzaW9uIDY4NDc3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVzcG9uc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTA5
LDYgKzEwOSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIG5vdEltcGxlbWVu
dGVkKCk7CiAgICAgICAgIH0KIAorICAgICAgICBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3Vy
Y2VSZXNwb25zZURhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQYXNzT3duUHRyPENyb3NzVGhyZWFk
UmVzb3VyY2VSZXNwb25zZURhdGE+KSBjb25zdDsKKyAgICAgICAgdm9pZCBkb1BsYXRmb3JtQWRv
cHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPik7CisKICAgICAg
ICAgLy8gVGhlIGlkIG9mIHRoZSBhcHBjYWNoZSB0aGlzIHJlc3BvbnNlIHdhcyByZXRyaWV2ZWQg
ZnJvbSwgb3IgemVybyBpZgogICAgICAgICAvLyB0aGUgcmVzcG9uc2Ugd2FzIG5vdCByZXRyaWV2
ZWQgZnJvbSBhbiBhcHBjYWNoZS4KICAgICAgICAgbG9uZyBsb25nIG1fYXBwQ2FjaGVJRDsKQEAg
LTE0Miw2ICsxNDUsMTggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBkb3VibGUgbV9y
ZXNwb25zZVRpbWU7CiAgICAgfTsKIAorICAgIHN0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVz
cG9uc2VEYXRhIDogcHVibGljIENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGFCYXNlIHsK
KyAgICAgICAgbG9uZyBsb25nIG1fYXBwQ2FjaGVJRDsKKyAgICAgICAgS1VSTCBtX2FwcENhY2hl
TWFuaWZlc3RVUkw7CisgICAgICAgIGJvb2wgbV9pc0NvbnRlbnRGaWx0ZXJlZDsKKyAgICAgICAg
Ym9vbCBtX2lzTXVsdGlwYXJ0UGF5bG9hZDsKKyAgICAgICAgYm9vbCBtX3dhc0ZldGNoZWRWaWFT
UERZOworICAgICAgICBib29sIG1fd2FzTnBuTmVnb3RpYXRlZDsKKyAgICAgICAgYm9vbCBtX3dh
c0FsdGVybmF0ZVByb3RvY29sQXZhaWxhYmxlOworICAgICAgICBib29sIG1fd2FzRmV0Y2hlZFZp
YVByb3h5OworICAgICAgICBkb3VibGUgbV9yZXNwb25zZVRpbWU7CisgICAgfTsKKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL1Jlc291cmNlUmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1Jlc291cmNlUmVxdWVzdC5oCShyZXZpc2lvbiA2ODQ3NykKKysrIFdlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlUmVxdWVzdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC02OSw2ICs2OSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBk
b1VwZGF0ZVBsYXRmb3JtUmVxdWVzdCgpIHt9CiAgICAgICAgIHZvaWQgZG9VcGRhdGVSZXNvdXJj
ZVJlcXVlc3QoKSB7fQorCisgICAgICAgIFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJl
cXVlc3REYXRhPiBkb1BsYXRmb3JtQ29weURhdGEoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291
cmNlUmVxdWVzdERhdGE+IGRhdGEpIGNvbnN0IHsgcmV0dXJuIGRhdGE7IH0KKyAgICAgICAgdm9p
ZCBkb1BsYXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERh
dGE+KSB7IH0KKyAgICB9OworCisgICAgc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0
RGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGFCYXNlIHsKICAgICB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9SZXNvdXJjZVJlc3BvbnNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VSZXNwb25zZS5oCShyZXZpc2lvbiA2ODQ3NykKKysrIFdl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlUmVzcG9uc2UuaAkod29ya2luZyBj
b3B5KQpAQCAtNTIsOSArNTIsMTcgQEAgcHVibGljOgogICAgIENGVVJMUmVzcG9uc2VSZWYgY2ZV
UkxSZXNwb25zZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIAogcHJpdmF0ZToKKyAgICBmcmllbmQg
Y2xhc3MgUmVzb3VyY2VSZXNwb25zZUJhc2U7CisKKyAgICBQYXNzT3duUHRyPENyb3NzVGhyZWFk
UmVzb3VyY2VSZXNwb25zZURhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQYXNzT3duUHRyPENyb3Nz
VGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpIGNvbnN0IHsgcmV0dXJuIGRhdGE7IH0K
KyAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VS
ZXNwb25zZURhdGE+KSB7IH0KKwogICAgIGJvb2wgbV9yZXNwb25zZUZpcmVkOwogfTsKIAorc3Ry
dWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGEgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRS
ZXNvdXJjZVJlc3BvbnNlRGF0YUJhc2UgeworfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gUmVzb3VyY2VSZXNwb25zZV9oCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1Jlc291cmNlUmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0LmgJKHJldmlzaW9uIDY4NDc3KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlcXVlc3QuaAkod29ya2luZyBjb3B5
KQpAQCAtNzQsOSArNzQsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGRv
VXBkYXRlUGxhdGZvcm1SZXF1ZXN0KCk7CiAgICAgICAgIHZvaWQgZG9VcGRhdGVSZXNvdXJjZVJl
cXVlc3QoKTsKICAgICAgICAgCisgICAgICAgIFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJj
ZVJlcXVlc3REYXRhPiBkb1BsYXRmb3JtQ29weURhdGEoUGFzc093blB0cjxDcm9zc1RocmVhZFJl
c291cmNlUmVxdWVzdERhdGE+IGRhdGEpIGNvbnN0IHsgcmV0dXJuIGRhdGE7IH0KKyAgICAgICAg
dm9pZCBkb1BsYXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVz
dERhdGE+KSB7IH0KKwogICAgICAgICBSZXRhaW5QdHI8TlNVUkxSZXF1ZXN0PiBtX25zUmVxdWVz
dDsKICAgICB9OwogCisgICAgc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YSA6
IHB1YmxpYyBDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGFCYXNlIHsKKyAgICB9OworCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBSZXNvdXJjZVJlcXVlc3RfaApJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlc3BvbnNlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlc3BvbnNlLmgJ
KHJldmlzaW9uIDY4NDc3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJj
ZVJlc3BvbnNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc1LDEyICs3NSwxOSBAQCBwcml2YXRlOgog
ICAgIGZyaWVuZCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlQmFzZTsKIAogICAgIHZvaWQgcGxhdGZv
cm1MYXp5SW5pdCgpOworCisgICAgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9u
c2VEYXRhPiBkb1BsYXRmb3JtQ29weURhdGEoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNl
UmVzcG9uc2VEYXRhPiBkYXRhKSBjb25zdCB7IHJldHVybiBkYXRhOyB9CisgICAgdm9pZCBkb1Bs
YXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPikg
eyB9CisKICAgICBzdGF0aWMgYm9vbCBwbGF0Zm9ybUNvbXBhcmUoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgYSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgYik7CiAKICAgICBSZXRhaW5QdHI8TlNV
UkxSZXNwb25zZT4gbV9uc1Jlc3BvbnNlOwogICAgIGJvb2wgbV9pc1VwVG9EYXRlOwogfTsKIAor
c3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGEgOiBwdWJsaWMgQ3Jvc3NUaHJl
YWRSZXNvdXJjZVJlc3BvbnNlRGF0YUJhc2UgeworfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gUmVzb3VyY2VSZXNwb25zZV9oCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvcXQvUmVzb3VyY2VSZXF1ZXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlUmVxdWVzdC5oCShyZXZpc2lvbiA2ODQ3NykKKysrIFdl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZVJlcXVlc3QuaAkod29ya2luZyBjb3B5
KQpAQCAtNjYsNiArNjYsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQg
ZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3QoKSB7fQogICAgICAgICB2b2lkIGRvVXBkYXRlUmVzb3Vy
Y2VSZXF1ZXN0KCkge30KKworICAgICAgICBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VS
ZXF1ZXN0RGF0YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNv
dXJjZVJlcXVlc3REYXRhPiBkYXRhKSBjb25zdCB7IHJldHVybiBkYXRhOyB9CisgICAgICAgIHZv
aWQgZG9QbGF0Zm9ybUFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3RE
YXRhPikgeyB9CisgICAgfTsKKworICAgIHN0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVxdWVz
dERhdGEgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhQmFzZSB7CiAgICAg
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3F0L1Jlc291cmNlUmVzcG9uc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvcXQvUmVzb3VyY2VSZXNwb25zZS5oCShyZXZpc2lvbiA2ODQ3NykKKysrIFdlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZVJlc3BvbnNlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQwLDYgKzQwLDE1IEBAIHB1YmxpYzoKICAgICAgICAgOiBSZXNvdXJjZVJlc3BvbnNlQmFz
ZSh1cmwsIG1pbWVUeXBlLCBleHBlY3RlZExlbmd0aCwgdGV4dEVuY29kaW5nTmFtZSwgZmlsZW5h
bWUpCiAgICAgewogICAgIH0KKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgUmVzb3VyY2VS
ZXNwb25zZUJhc2U7CisKKyAgICBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25z
ZURhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VS
ZXNwb25zZURhdGE+IGRhdGEpIGNvbnN0IHsgcmV0dXJuIGRhdGE7IH0KKyAgICB2b2lkIGRvUGxh
dGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+KSB7
IH0KK307CisKK3N0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhIDogcHVibGlj
IENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGFCYXNlIHsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
UmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jl
c291cmNlUmVxdWVzdC5oCShyZXZpc2lvbiA2ODQ3NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC04MCw2ICs4MCwx
MiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBkb1VwZGF0ZVBsYXRmb3Jt
UmVxdWVzdCgpIHt9OwogICAgICAgICB2b2lkIGRvVXBkYXRlUmVzb3VyY2VSZXF1ZXN0KCkge307
CisKKyAgICAgICAgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IGRv
UGxhdGZvcm1Db3B5RGF0YShQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0
YT4gZGF0YSkgY29uc3QgeyByZXR1cm4gZGF0YTsgfQorICAgICAgICB2b2lkIGRvUGxhdGZvcm1B
ZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4pIHsgfQorICAg
IH07CisKKyAgICBzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhIDogcHVibGlj
IENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YUJhc2UgewogICAgIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291
cmNlUmVzcG9uc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZVJlc3BvbnNlLmgJKHJldmlzaW9uIDY4NDc3KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02Myw5
ICs2MywxMyBAQCBwcml2YXRlOgogCiAgICAgU291cE1lc3NhZ2VGbGFncyBtX3NvdXBGbGFnczsK
IAotICAgIHZvaWQgZG9VcGRhdGVSZXNvdXJjZVJlc3BvbnNlKCkKLSAgICB7Ci0gICAgfQorICAg
IHZvaWQgZG9VcGRhdGVSZXNvdXJjZVJlc3BvbnNlKCkgeyB9CisKKyAgICBQYXNzT3duUHRyPENy
b3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQYXNzT3du
UHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpIGNvbnN0IHsgcmV0dXJu
IGRhdGE7IH0KKyAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFk
UmVzb3VyY2VSZXNwb25zZURhdGE+KSB7IH0KK307CisKK3N0cnVjdCBDcm9zc1RocmVhZFJlc291
cmNlUmVzcG9uc2VEYXRhIDogcHVibGljIENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGFC
YXNlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>
<flag name="review"
          id="58767"
          type_id="1"
          status="+"
          setter="levin"
    />
    <flag name="commit-queue"
          id="58768"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69150</attachid>
            <date>2010-09-28 18:37:00 -0700</date>
            <delta_ts>2010-09-29 12:57:30 -0700</delta_ts>
            <desc>crossThread patch</desc>
            <filename>cross5.txt</filename>
            <type>text/plain</type>
            <size>26328</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODYxNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsODAgQEAKKzIwMTAtMDktMjggIE1pY2hhZWwgTm9yZG1hbiAgPG1pY2hhZWxuQGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTWFrZSBpdCBwb3NzaWJsZSB0byBjb3B5IHBsYXRmb3JtIHNwZWNpZmljIGRhdGEgbWVtYmVy
cyBvZiBSZXNvdXJjZVJlcXVlc3QgYW5kIFJlc291cmNlUmVzcG9uc2UKKyAgICAgICAgYWNyb3Nz
IHRocmVhZHMgYW5kIHRvIGNvbXBhcmUgcGxhdGZvcm0gc3BlY2lmaWMgZGF0YSBtZW1iZXJzIG9m
IFJlc291cmNlUmVxdWVzdC4KKyAgICAgICAgLSBBZGRlZCB0d28gaW5zdGFuY2UgbWV0aG9kcyB0
byB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgc3ViY2xhc3NlczogZG9QbGF0Zm9ybUFkb3B0IGFuZCBk
b1BsYXRmb3JtQ29weURhdGEuCisgICAgICAgIC0gQWxzbyBhZGRlZCBhICJzaGFkb3dhYmxlIiBz
dGF0aWMgbWV0aG9kIGZvciBwbGF0Zm9ybUNvbXBhcmUgdG8gUmVzb3VyY2VSZXF1ZXN0QmFzZSwg
YSBzaW1pbGFyIG1ldGhvZAorICAgICAgICAgIGlzIGFscmVhZHkgcHJlc2VudCBvbiBSZXNvdXJj
ZVJlc3BvbnNlQmFzZS4KKyAgICAgICAgLSBDb252ZXJ0ZWQgdGhlIGNyb3NzIHRocmVhZCBzdHJ1
Y3RzIGRlZmluZWQgaW4gUmVzb3VyY2VSZXF1ZXN0L1Jlc3BvbnNlQmFzZS5oIHRvIGJhc2UKKyAg
ICAgICAgICBjbGFzc2VzIGFuZCBleHRlbmRlZCB0aG9zZSBiYXNlIGNsYXNzZXMgaW4gdGhlIHBs
YXRmb3JtIHNwZWNpZmljIGhlYWRlcnMgdG8gcHJvdmlkZSBhIHBsYWNlCisgICAgICAgICAgdG8g
aG9sZCBhZGRpdGlvbmFsIGZpZWxkcy4KKyAgICAgICAgLSBVc2VkIHRoaXMgbWVjaGFuaXNtIHRv
IGhhdmUgdGhlIGNocm9taXVtIHBvcnQncyBkYXRhIG1lbWJlcnMgbWFrZSB0aGUgaG9wLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY0MzAKKworICAg
ICAgICBObyBuZXcgdGVzdHMuIEp1c3QgcGx1bWJpbmcuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OmFkb3B0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OmNvcHlEYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OmNvbXBhcmUpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0QmFzZTo6cGxhdGZvcm1Db21wYXJlKToKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9y
PT0pOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3IhPSk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlQmFzZTo6YXNSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2VCYXNlOjphZG9wdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlQmFzZTo6Y29weURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VSZXNwb25zZUJhc2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2FuZHJvaWQv
UmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRv
UGxhdGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRv
UGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9hbmRyb2lkL1Jlc291
cmNlUmVzcG9uc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxh
dGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1Bs
YXRmb3JtQWRvcHQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1
ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1Db3B5
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1BZG9w
dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1BsYXRmb3JtQ29weURhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6ZG9QbGF0Zm9ybUFkb3B0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVxdWVzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1Db3B5RGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVzcG9uc2UuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1Db3B5RGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1BsYXRmb3JtQWRvcHQp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXNwb25zZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZVJlcXVlc3QuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUFkb3B0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VSZXNwb25zZS5oOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9tYWMvUmVzb3VyY2VSZXNwb25zZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZTo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9xdC9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dDo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dDo6ZG9QbGF0Zm9ybUFkb3B0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291
cmNlUmVzcG9uc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxh
dGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1Bs
YXRmb3JtQWRvcHQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJl
cXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUNv
cHlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUFk
b3B0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZS5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6ZG9VcGRhdGVSZXNvdXJjZVJl
c3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1D
b3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1BsYXRmb3Jt
QWRvcHQpOgorCiAyMDEwLTA5LTI4ICBNYXJjLUFudG9pbmUgUnVlbCAgPG1hcnVlbEBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KSW5kZXg6IFdlYkNvcmUv
V2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lv
biA2ODYxNykKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0yODQ5
LDYgKzI4NDksNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVz
b3VyY2VFcnJvci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jl
c291cmNlUmVxdWVzdC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvY2hyb21p
dW0vUmVzb3VyY2VSZXF1ZXN0LmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvY2hy
b21pdW0vUmVzb3VyY2VSZXNwb25zZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdv
cmsvY2hyb21pdW0vUmVzb3VyY2VSZXNwb25zZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9u
ZXR3b3JrL2Nocm9taXVtL1NvY2tldFN0cmVhbUVycm9yLmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL25ldHdvcmsvY2hyb21pdW0vU29ja2V0U3RyZWFtSGFuZGxlLmgnLApJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAkocmV2aXNp
b24gNjg2MTcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFz
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDYgKzY1LDcgQEAgUGFzc093blB0cjxSZXNvdXJj
ZVJlcXVlc3Q+IFJlc291cmNlUmVxdQogICAgIH0KICAgICByZXF1ZXN0LT5zZXRIVFRQQm9keShk
YXRhLT5tX2h0dHBCb2R5KTsKICAgICByZXF1ZXN0LT5zZXRBbGxvd0Nvb2tpZXMoZGF0YS0+bV9h
bGxvd0Nvb2tpZXMpOworICAgIHJlcXVlc3QtPmRvUGxhdGZvcm1BZG9wdChkYXRhKTsKICAgICBy
ZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7CiB9CiAKQEAgLTg3LDcgKzg4LDcgQEAgUGFzc093blB0
cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdAogICAgIGlmIChtX2h0dHBCb2R5KQogICAg
ICAgICBkYXRhLT5tX2h0dHBCb2R5ID0gbV9odHRwQm9keS0+ZGVlcENvcHkoKTsKICAgICBkYXRh
LT5tX2FsbG93Q29va2llcyA9IG1fYWxsb3dDb29raWVzOwotICAgIHJldHVybiBkYXRhLnJlbGVh
c2UoKTsKKyAgICByZXR1cm4gYXNSZXNvdXJjZVJlcXVlc3QoKS5kb1BsYXRmb3JtQ29weURhdGEo
ZGF0YS5yZWxlYXNlKCkpOwogfQogCiBib29sIFJlc291cmNlUmVxdWVzdEJhc2U6OmlzRW1wdHko
KSBjb25zdApAQCAtMzU1LDcgKzM1Niw3IEBAIGJvb2wgZXF1YWxJZ25vcmluZ0hlYWRlckZpZWxk
cyhjb25zdCBSZXMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBvcGVyYXRvcj09KGNvbnN0
IFJlc291cmNlUmVxdWVzdEJhc2UmIGEsIGNvbnN0IFJlc291cmNlUmVxdWVzdEJhc2UmIGIpCiti
b29sIFJlc291cmNlUmVxdWVzdEJhc2U6OmNvbXBhcmUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBh
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGIpCiB7CiAgICAgaWYgKCFlcXVhbElnbm9yaW5nSGVh
ZGVyRmllbGRzKGEsIGIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zNjMsNyArMzY0LDcg
QEAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlc291cmNlUmVxdWVzdEJhcwogICAgIGlmIChhLmh0
dHBIZWFkZXJGaWVsZHMoKSAhPSBiLmh0dHBIZWFkZXJGaWVsZHMoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICAKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gUmVzb3VyY2VS
ZXF1ZXN0OjpwbGF0Zm9ybUNvbXBhcmUoYSwgYik7CiB9CiAKIGJvb2wgUmVzb3VyY2VSZXF1ZXN0
QmFzZTo6aXNDb25kaXRpb25hbCgpIGNvbnN0CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmgJKHJldmlzaW9uIDY4NjE3KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaAkod29ya2luZyBjb3B5KQpA
QCAtMTQwLDYgKzE0MCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgVGFyZ2V0VHlw
ZSB0YXJnZXRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXRUeXBlOyB9CiAgICAgICAgIHZv
aWQgc2V0VGFyZ2V0VHlwZShUYXJnZXRUeXBlIHR5cGUpIHsgbV90YXJnZXRUeXBlID0gdHlwZTsg
fQogCisgICAgICAgIHN0YXRpYyBib29sIGNvbXBhcmUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CisKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIC8vIFVz
ZWQgd2hlbiBSZXNvdXJjZVJlcXVlc3QgaXMgaW5pdGlhbGl6ZWQgZnJvbSBhIHBsYXRmb3JtIHJl
cHJlc2VudGF0aW9uIG9mIHRoZSByZXF1ZXN0CiAgICAgICAgIFJlc291cmNlUmVxdWVzdEJhc2Uo
KQpAQCAtMTY4LDYgKzE3MCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCB1
cGRhdGVQbGF0Zm9ybVJlcXVlc3QoKSBjb25zdDsgCiAgICAgICAgIHZvaWQgdXBkYXRlUmVzb3Vy
Y2VSZXF1ZXN0KCkgY29uc3Q7IAogCisgICAgICAgIC8vIFRoZSBSZXNvdXJjZVJlcXVlc3Qgc3Vi
Y2xhc3MgbWF5ICJzaGFkb3ciIHRoaXMgbWV0aG9kIHRvIGNvbXBhcmUgcGxhdGZvcm0gc3BlY2lm
aWMgZmllbGRzCisgICAgICAgIHN0YXRpYyBib29sIHBsYXRmb3JtQ29tcGFyZShjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSB7IHJldHVybiB0cnVlOyB9CisK
ICAgICAgICAgS1VSTCBtX3VybDsKIAogICAgICAgICBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGlj
eSBtX2NhY2hlUG9saWN5OwpAQCAtMTkwLDEwICsxOTUsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgYm9vbCBlcXVhbElnbm9yaW5nSGVhZGVyRmllbGRzKGNvbnN0IFJlc291cmNlUmVx
dWVzdEJhc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3RCYXNlJik7CiAKLSAgICBib29sIG9wZXJh
dG9yPT0oY29uc3QgUmVzb3VyY2VSZXF1ZXN0QmFzZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdEJh
c2UmKTsKLSAgICBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KFJlc291cmNlUmVxdWVzdEJhc2UmIGEs
IGNvbnN0IFJlc291cmNlUmVxdWVzdEJhc2UmIGIpIHsgcmV0dXJuICEoYSA9PSBiKTsgfQorICAg
IGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBhLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIGIpIHsgcmV0dXJuIFJlc291cmNlUmVxdWVzdEJhc2U6OmNvbXBhcmUo
YSwgYik7IH0KKyAgICBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KFJlc291cmNlUmVxdWVzdCYgYSwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBiKSB7IHJldHVybiAhKGEgPT0gYik7IH0KIAotICAgIHN0
cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGEgOiBOb25jb3B5YWJsZSB7CisgICAg
c3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YUJhc2UgOiBOb25jb3B5YWJsZSB7
CiAgICAgICAgIEtVUkwgbV91cmw7CiAKICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xp
Y3kgbV9jYWNoZVBvbGljeTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZVJlc3BvbnNlQmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAkocmV2aXNpb24gNjg2MTcpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zOSw2ICszOSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyB2b2lkIHBhcnNl
Q2FjaGVIZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXIsIFZlY3RvcjxwYWlyPFN0cmluZywgU3Ry
aW5nPiA+JiByZXN1bHQpOwogCitpbmxpbmUgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgUmVzb3Vy
Y2VSZXNwb25zZUJhc2U6OmFzUmVzb3VyY2VSZXNwb25zZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
ICpzdGF0aWNfY2FzdDxjb25zdCBSZXNvdXJjZVJlc3BvbnNlKj4odGhpcyk7Cit9CisKIFJlc291
cmNlUmVzcG9uc2VCYXNlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZSgpICAKICAgICA6IG1fZXhwZWN0
ZWRDb250ZW50TGVuZ3RoKDApCiAgICAgLCBtX2h0dHBTdGF0dXNDb2RlKDApCkBAIC0xMDcsNyAr
MTEyLDcgQEAgUGFzc093blB0cjxSZXNvdXJjZVJlc3BvbnNlPiBSZXNvdXJjZVJlcwogICAgIHJl
c3BvbnNlLT5tX2h0dHBIZWFkZXJGaWVsZHMuYWRvcHQoZGF0YS0+bV9odHRwSGVhZGVycy5yZWxl
YXNlKCkpOwogICAgIHJlc3BvbnNlLT5zZXRMYXN0TW9kaWZpZWREYXRlKGRhdGEtPm1fbGFzdE1v
ZGlmaWVkRGF0ZSk7CiAgICAgcmVzcG9uc2UtPnNldFJlc291cmNlTG9hZFRpbWluZyhkYXRhLT5t
X3Jlc291cmNlTG9hZFRpbWluZy5yZWxlYXNlKCkpOwotCisgICAgcmVzcG9uc2UtPmRvUGxhdGZv
cm1BZG9wdChkYXRhKTsKICAgICByZXR1cm4gcmVzcG9uc2UucmVsZWFzZSgpOwogfQogCkBAIC0x
MjUsNyArMTMwLDcgQEAgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYQog
ICAgIGRhdGEtPm1fbGFzdE1vZGlmaWVkRGF0ZSA9IGxhc3RNb2RpZmllZERhdGUoKTsKICAgICBp
ZiAobV9yZXNvdXJjZUxvYWRUaW1pbmcpCiAgICAgICAgIGRhdGEtPm1fcmVzb3VyY2VMb2FkVGlt
aW5nID0gbV9yZXNvdXJjZUxvYWRUaW1pbmctPmRlZXBDb3B5KCk7Ci0gICAgcmV0dXJuIGRhdGEu
cmVsZWFzZSgpOworICAgIHJldHVybiBhc1Jlc291cmNlUmVzcG9uc2UoKS5kb1BsYXRmb3JtQ29w
eURhdGEoZGF0YS5yZWxlYXNlKCkpOwogfQogCiBib29sIFJlc291cmNlUmVzcG9uc2VCYXNlOjpp
c0hUVFAoKSBjb25zdApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVz
cG9uc2VCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlUmVzcG9uc2VCYXNlLmgJKHJldmlzaW9uIDY4NjE3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNiw3ICsx
MTYsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAxMjgwOwogICAgIH0KIAotICAgIHN0YXRp
YyBib29sIGNvbXBhcmUoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgYSwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgYik7CisgICAgc3RhdGljIGJvb2wgY29tcGFyZShjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogCiBwcm90ZWN0ZWQ6CiAgICAgUmVzb3Vy
Y2VSZXNwb25zZUJhc2UoKTsKQEAgLTE0Nyw2ICsxNDcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9v
bCBtX2lzTnVsbCA6IDE7CiAgICAgCiBwcml2YXRlOgorICAgIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIGFzUmVzb3VyY2VSZXNwb25zZSgpIGNvbnN0OwogICAgIHZvaWQgcGFyc2VDYWNoZUNvbnRy
b2xEaXJlY3RpdmVzKCkgY29uc3Q7CiAKICAgICBtdXRhYmxlIGJvb2wgbV9oYXZlUGFyc2VkQ2Fj
aGVDb250cm9sSGVhZGVyIDogMTsKQEAgLTE2OSw3ICsxNzAsNyBAQCBwcml2YXRlOgogaW5saW5l
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBhLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiBiKSB7IHJldHVybiBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6Y29tcGFyZShhLCBi
KTsgfQogaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBhLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiBiKSB7IHJldHVybiAhKGEgPT0gYik7IH0KIAotc3RydWN0
IENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGEgOiBOb25jb3B5YWJsZSB7CitzdHJ1Y3Qg
Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YUJhc2UgOiBOb25jb3B5YWJsZSB7CiAgICAg
S1VSTCBtX3VybDsKICAgICBTdHJpbmcgbV9taW1lVHlwZTsKICAgICBsb25nIGxvbmcgbV9leHBl
Y3RlZENvbnRlbnRMZW5ndGg7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYW5kcm9p
ZC9SZXNvdXJjZVJlcXVlc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvYW5kcm9pZC9SZXNvdXJjZVJlcXVlc3QuaAkocmV2aXNpb24gNjg2MTcpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvYW5kcm9pZC9SZXNvdXJjZVJlcXVlc3QuaAkod29ya2luZyBjb3B5
KQpAQCAtNTMsNiArNTMsMTIgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFz
cyBSZXNvdXJjZVJlcXVlc3RCYXNlOworCisgICAgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291
cmNlUmVxdWVzdERhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQYXNzT3duUHRyPENyb3NzVGhyZWFk
UmVzb3VyY2VSZXF1ZXN0RGF0YT4gZGF0YSkgY29uc3QgeyByZXR1cm4gZGF0YTsgfQorICAgIHZv
aWQgZG9QbGF0Zm9ybUFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3RE
YXRhPikgeyB9Cit9OworCitzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhIDog
cHVibGljIENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YUJhc2UgewogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2FuZHJvaWQv
UmVzb3VyY2VSZXNwb25zZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9hbmRyb2lkL1Jlc291cmNlUmVzcG9uc2UuaAkocmV2aXNpb24gNjg2MTcpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvYW5kcm9pZC9SZXNvdXJjZVJlc3BvbnNlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQ2LDYgKzQ2LDEyIEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICBub3RJbXBsZW1l
bnRlZCgpOwogICAgIH0KKworICAgIFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3Bv
bnNlRGF0YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJj
ZVJlc3BvbnNlRGF0YT4gZGF0YSkgY29uc3QgeyByZXR1cm4gZGF0YTsgfQorICAgIHZvaWQgZG9Q
bGF0Zm9ybUFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4p
IHsgfQorfTsKKworc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGEgOiBwdWJs
aWMgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YUJhc2UgewogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNl
UmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZVJlcXVlc3QuaAkocmV2aXNpb24gNjg2MTcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTY4LDEwICs2OCwxNiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBkb1VwZGF0ZVBsYXRmb3JtUmVx
dWVzdCgpOwogICAgICAgICB2b2lkIGRvVXBkYXRlUmVzb3VyY2VSZXF1ZXN0KCk7Ci0gICAgICAg
IAorCisgICAgICAgIFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBk
b1BsYXRmb3JtQ29weURhdGEoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERh
dGE+IGRhdGEpIGNvbnN0IHsgcmV0dXJuIGRhdGE7IH0KKyAgICAgICAgdm9pZCBkb1BsYXRmb3Jt
QWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+KSB7IH0KKwog
ICAgICAgICBSZXRhaW5QdHI8Q0ZVUkxSZXF1ZXN0UmVmPiBtX2NmUmVxdWVzdDsgICAgICAKICAg
ICB9OwogCisgICAgc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YSA6IHB1Ymxp
YyBDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGFCYXNlIHsKKyAgICB9OworCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBSZXNvdXJjZVJlcXVlc3RfaApJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVzcG9uc2UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZS5oCShyZXZpc2lv
biA2ODYxNykKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTcwLDEyICs3MCwxOCBAQCBwcml2YXRlOgogICAgIGZyaWVu
ZCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlQmFzZTsKIAogICAgIHZvaWQgcGxhdGZvcm1MYXp5SW5p
dCgpOworICAgIFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZG9Q
bGF0Zm9ybUNvcHlEYXRhKFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0
YT4gZGF0YSkgY29uc3QgeyByZXR1cm4gZGF0YTsgfQorICAgIHZvaWQgZG9QbGF0Zm9ybUFkb3B0
KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4pIHsgfQorCiAgICAg
c3RhdGljIGJvb2wgcGxhdGZvcm1Db21wYXJlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIGEsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIGIpOwogCiAgICAgUmV0YWluUHRyPENGVVJMUmVzcG9uc2VS
ZWY+IG1fY2ZSZXNwb25zZTsKICAgICBib29sIG1faXNVcFRvRGF0ZTsKIH07CiAKK3N0cnVjdCBD
cm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhIDogcHVibGljIENyb3NzVGhyZWFkUmVzb3Vy
Y2VSZXNwb25zZURhdGFCYXNlIHsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIFJlc291cmNlUmVzcG9uc2VfaApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2Nocm9taXVtL1Jlc291cmNlUmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVxdWVzdC5jcHAJKHJldmlzaW9uIDY4NjE3
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVxdWVzdC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDQgKzM3LDE5IEBAIHVuc2lnbmVkIGluaXRpYWxpemVN
YXhpbXVtSFRUUENvbm5lY3Rpb24KICAgICByZXR1cm4gMTAwMDA7CiB9CiAKK1Bhc3NPd25QdHI8
Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZv
cm1Db3B5RGF0YShQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gZGF0
YSkgY29uc3QKK3sKKyAgICBkYXRhLT5tX3JlcXVlc3RvcklEID0gbV9yZXF1ZXN0b3JJRDsKKyAg
ICBkYXRhLT5tX3JlcXVlc3RvclByb2Nlc3NJRCA9IG1fcmVxdWVzdG9yUHJvY2Vzc0lEOworICAg
IGRhdGEtPm1fYXBwQ2FjaGVIb3N0SUQgPSBtX2FwcENhY2hlSG9zdElEOworICAgIHJldHVybiBk
YXRhOworfQorCit2b2lkIFJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUFkb3B0KFBhc3NPd25Q
dHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkYXRhKQoreworICAgIG1fcmVxdWVz
dG9ySUQgPSBkYXRhLT5tX3JlcXVlc3RvcklEOworICAgIG1fcmVxdWVzdG9yUHJvY2Vzc0lEID0g
ZGF0YS0+bV9yZXF1ZXN0b3JQcm9jZXNzSUQ7CisgICAgbV9hcHBDYWNoZUhvc3RJRCA9IGRhdGEt
Pm1fYXBwQ2FjaGVIb3N0SUQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0
LmgJKHJldmlzaW9uIDY4NjE3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVt
L1Jlc291cmNlUmVxdWVzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC05MCw2ICs5MCwxNSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3QoKSB7
fQogICAgICAgICB2b2lkIGRvVXBkYXRlUmVzb3VyY2VSZXF1ZXN0KCkge30KIAorICAgICAgICBQ
YXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gZG9QbGF0Zm9ybUNvcHlE
YXRhKFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPikgY29uc3Q7Cisg
ICAgICAgIHZvaWQgZG9QbGF0Zm9ybUFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJj
ZVJlcXVlc3REYXRhPik7CisKKyAgICAgICAgaW50IG1fcmVxdWVzdG9ySUQ7CisgICAgICAgIGlu
dCBtX3JlcXVlc3RvclByb2Nlc3NJRDsKKyAgICAgICAgaW50IG1fYXBwQ2FjaGVIb3N0SUQ7Cisg
ICAgfTsKKworICAgIHN0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGEgOiBwdWJs
aWMgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhQmFzZSB7CiAgICAgICAgIGludCBtX3Jl
cXVlc3RvcklEOwogICAgICAgICBpbnQgbV9yZXF1ZXN0b3JQcm9jZXNzSUQ7CiAgICAgICAgIGlu
dCBtX2FwcENhY2hlSG9zdElEOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9t
aXVtL1Jlc291cmNlUmVzcG9uc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlc3BvbnNlLmNwcAkocmV2aXNpb24gMCkKKysrIFdl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlc3BvbnNlLmNwcAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUsIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXNv
dXJjZVJlc3BvbnNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc093blB0cjxDcm9z
c1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBSZXNvdXJjZVJlc3BvbnNlOjpkb1BsYXRmb3Jt
Q29weURhdGEoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBkYXRh
KSBjb25zdAoreworICAgIGRhdGEtPm1fYXBwQ2FjaGVJRCA9IG1fYXBwQ2FjaGVJRDsKKyAgICBk
YXRhLT5tX2FwcENhY2hlTWFuaWZlc3RVUkwgPSBtX2FwcENhY2hlTWFuaWZlc3RVUkwuY29weSgp
OworICAgIGRhdGEtPm1faXNDb250ZW50RmlsdGVyZWQgPSBtX2lzQ29udGVudEZpbHRlcmVkOwor
ICAgIGRhdGEtPm1faXNNdWx0aXBhcnRQYXlsb2FkID0gbV9pc011bHRpcGFydFBheWxvYWQ7Cisg
ICAgZGF0YS0+bV93YXNGZXRjaGVkVmlhU1BEWSA9IG1fd2FzRmV0Y2hlZFZpYVNQRFk7CisgICAg
ZGF0YS0+bV93YXNOcG5OZWdvdGlhdGVkID0gbV93YXNOcG5OZWdvdGlhdGVkOworICAgIGRhdGEt
Pm1fd2FzQWx0ZXJuYXRlUHJvdG9jb2xBdmFpbGFibGUgPSBtX3dhc0FsdGVybmF0ZVByb3RvY29s
QXZhaWxhYmxlOworICAgIGRhdGEtPm1fd2FzRmV0Y2hlZFZpYVByb3h5ID0gbV93YXNGZXRjaGVk
VmlhUHJveHk7CisgICAgZGF0YS0+bV9yZXNwb25zZVRpbWUgPSBtX3Jlc3BvbnNlVGltZTsKKyAg
ICByZXR1cm4gZGF0YTsKK30KKwordm9pZCBSZXNvdXJjZVJlc3BvbnNlOjpkb1BsYXRmb3JtQWRv
cHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBkYXRhKQorewor
ICAgIG1fYXBwQ2FjaGVJRCA9IGRhdGEtPm1fYXBwQ2FjaGVJRDsKKyAgICBtX2FwcENhY2hlTWFu
aWZlc3RVUkwgPSBkYXRhLT5tX2FwcENhY2hlTWFuaWZlc3RVUkwuY29weSgpOworICAgIG1faXND
b250ZW50RmlsdGVyZWQgPSBkYXRhLT5tX2lzQ29udGVudEZpbHRlcmVkOworICAgIG1faXNNdWx0
aXBhcnRQYXlsb2FkID0gZGF0YS0+bV9pc011bHRpcGFydFBheWxvYWQ7CisgICAgbV93YXNGZXRj
aGVkVmlhU1BEWSA9IGRhdGEtPm1fd2FzRmV0Y2hlZFZpYVNQRFk7CisgICAgbV93YXNOcG5OZWdv
dGlhdGVkID0gZGF0YS0+bV93YXNOcG5OZWdvdGlhdGVkOworICAgIG1fd2FzQWx0ZXJuYXRlUHJv
dG9jb2xBdmFpbGFibGUgPSBkYXRhLT5tX3dhc0FsdGVybmF0ZVByb3RvY29sQXZhaWxhYmxlOwor
ICAgIG1fd2FzRmV0Y2hlZFZpYVByb3h5ID0gZGF0YS0+bV93YXNGZXRjaGVkVmlhUHJveHk7Cisg
ICAgbV9yZXNwb25zZVRpbWUgPSBkYXRhLT5tX3Jlc3BvbnNlVGltZTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jl
c291cmNlUmVzcG9uc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2hyb21pdW0vUmVzb3VyY2VSZXNwb25zZS5oCShyZXZpc2lvbiA2ODYxNykKKysrIFdlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlc3BvbnNlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEwOSw2ICsxMDksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogICAgICAgICB9CiAKKyAgICAgICAgUGFzc093blB0cjxDcm9zc1Ro
cmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBkb1BsYXRmb3JtQ29weURhdGEoUGFzc093blB0cjxD
cm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPikgY29uc3Q7CisgICAgICAgIHZvaWQgZG9Q
bGF0Zm9ybUFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4p
OworCiAgICAgICAgIC8vIFRoZSBpZCBvZiB0aGUgYXBwY2FjaGUgdGhpcyByZXNwb25zZSB3YXMg
cmV0cmlldmVkIGZyb20sIG9yIHplcm8gaWYKICAgICAgICAgLy8gdGhlIHJlc3BvbnNlIHdhcyBu
b3QgcmV0cmlldmVkIGZyb20gYW4gYXBwY2FjaGUuCiAgICAgICAgIGxvbmcgbG9uZyBtX2FwcENh
Y2hlSUQ7CkBAIC0xNDIsNiArMTQ1LDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
ZG91YmxlIG1fcmVzcG9uc2VUaW1lOwogICAgIH07CiAKKyAgICBzdHJ1Y3QgQ3Jvc3NUaHJlYWRS
ZXNvdXJjZVJlc3BvbnNlRGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VE
YXRhQmFzZSB7CisgICAgICAgIGxvbmcgbG9uZyBtX2FwcENhY2hlSUQ7CisgICAgICAgIEtVUkwg
bV9hcHBDYWNoZU1hbmlmZXN0VVJMOworICAgICAgICBib29sIG1faXNDb250ZW50RmlsdGVyZWQ7
CisgICAgICAgIGJvb2wgbV9pc011bHRpcGFydFBheWxvYWQ7CisgICAgICAgIGJvb2wgbV93YXNG
ZXRjaGVkVmlhU1BEWTsKKyAgICAgICAgYm9vbCBtX3dhc05wbk5lZ290aWF0ZWQ7CisgICAgICAg
IGJvb2wgbV93YXNBbHRlcm5hdGVQcm90b2NvbEF2YWlsYWJsZTsKKyAgICAgICAgYm9vbCBtX3dh
c0ZldGNoZWRWaWFQcm94eTsKKyAgICAgICAgZG91YmxlIG1fcmVzcG9uc2VUaW1lOworICAgIH07
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZVJlcXVlc3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZVJlcXVlc3QuaAkocmV2aXNpb24gNjg2MTcp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZVJlcXVlc3QuaAkod29y
a2luZyBjb3B5KQpAQCAtNjksNiArNjksMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
ICAgIHZvaWQgZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3QoKSB7fQogICAgICAgICB2b2lkIGRvVXBk
YXRlUmVzb3VyY2VSZXF1ZXN0KCkge30KKworICAgICAgICBQYXNzT3duUHRyPENyb3NzVGhyZWFk
UmVzb3VyY2VSZXF1ZXN0RGF0YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKFBhc3NPd25QdHI8Q3Jvc3NU
aHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkYXRhKSBjb25zdCB7IHJldHVybiBkYXRhOyB9Cisg
ICAgICAgIHZvaWQgZG9QbGF0Zm9ybUFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJj
ZVJlcXVlc3REYXRhPikgeyB9CisgICAgfTsKKworICAgIHN0cnVjdCBDcm9zc1RocmVhZFJlc291
cmNlUmVxdWVzdERhdGEgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhQmFz
ZSB7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VSZXNwb25zZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlUmVzcG9uc2UuaAkocmV2aXNpb24gNjg2
MTcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZVJlc3BvbnNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTUyLDkgKzUyLDE3IEBAIHB1YmxpYzoKICAgICBDRlVSTFJlc3Bv
bnNlUmVmIGNmVVJMUmVzcG9uc2UoKSBjb25zdCB7IHJldHVybiAwOyB9CiAKIHByaXZhdGU6Cisg
ICAgZnJpZW5kIGNsYXNzIFJlc291cmNlUmVzcG9uc2VCYXNlOworCisgICAgUGFzc093blB0cjxD
cm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBkb1BsYXRmb3JtQ29weURhdGEoUGFzc093
blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBkYXRhKSBjb25zdCB7IHJldHVy
biBkYXRhOyB9CisgICAgdm9pZCBkb1BsYXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVh
ZFJlc291cmNlUmVzcG9uc2VEYXRhPikgeyB9CisKICAgICBib29sIG1fcmVzcG9uc2VGaXJlZDsK
IH07CiAKK3N0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhIDogcHVibGljIENy
b3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGFCYXNlIHsKK307CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIFJlc291cmNlUmVzcG9uc2VfaApJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlcXVlc3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVxdWVzdC5oCShyZXZpc2lvbiA2ODYx
NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTczLDEwICs3MywxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICAgICAgdm9pZCBkb1VwZGF0ZVBsYXRmb3JtUmVxdWVzdCgpOwogICAgICAgICB2b2lkIGRvVXBk
YXRlUmVzb3VyY2VSZXF1ZXN0KCk7Ci0gICAgICAgIAorCisgICAgICAgIFBhc3NPd25QdHI8Q3Jv
c3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkb1BsYXRmb3JtQ29weURhdGEoUGFzc093blB0
cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IGRhdGEpIGNvbnN0IHsgcmV0dXJuIGRh
dGE7IH0KKyAgICAgICAgdm9pZCBkb1BsYXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVh
ZFJlc291cmNlUmVxdWVzdERhdGE+KSB7IH0KKwogICAgICAgICBSZXRhaW5QdHI8TlNVUkxSZXF1
ZXN0PiBtX25zUmVxdWVzdDsKICAgICB9OwogCisgICAgc3RydWN0IENyb3NzVGhyZWFkUmVzb3Vy
Y2VSZXF1ZXN0RGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGFCYXNl
IHsKKyAgICB9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBSZXNvdXJj
ZVJlcXVlc3RfaApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJl
c3BvbnNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNv
dXJjZVJlc3BvbnNlLmgJKHJldmlzaW9uIDY4NjE3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL21hYy9SZXNvdXJjZVJlc3BvbnNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc1LDEyICs3NSwx
OSBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlQmFzZTsKIAog
ICAgIHZvaWQgcGxhdGZvcm1MYXp5SW5pdCgpOworCisgICAgUGFzc093blB0cjxDcm9zc1RocmVh
ZFJlc291cmNlUmVzcG9uc2VEYXRhPiBkb1BsYXRmb3JtQ29weURhdGEoUGFzc093blB0cjxDcm9z
c1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBkYXRhKSBjb25zdCB7IHJldHVybiBkYXRhOyB9
CisgICAgdm9pZCBkb1BsYXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNl
UmVzcG9uc2VEYXRhPikgeyB9CisKICAgICBzdGF0aWMgYm9vbCBwbGF0Zm9ybUNvbXBhcmUoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgYSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgYik7CiAKICAg
ICBSZXRhaW5QdHI8TlNVUkxSZXNwb25zZT4gbV9uc1Jlc3BvbnNlOwogICAgIGJvb2wgbV9pc1Vw
VG9EYXRlOwogfTsKIAorc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGEgOiBw
dWJsaWMgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YUJhc2UgeworfTsKKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUmVzb3VyY2VSZXNwb25zZV9oCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VSZXF1ZXN0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlUmVxdWVzdC5oCShyZXZpc2lv
biA2ODYxNykKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZVJlcXVlc3Qu
aAkod29ya2luZyBjb3B5KQpAQCAtNjYsNiArNjYsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgICAgIHZvaWQgZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3QoKSB7fQogICAgICAgICB2b2lk
IGRvVXBkYXRlUmVzb3VyY2VSZXF1ZXN0KCkge30KKworICAgICAgICBQYXNzT3duUHRyPENyb3Nz
VGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKFBhc3NPd25QdHI8
Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkYXRhKSBjb25zdCB7IHJldHVybiBkYXRh
OyB9CisgICAgICAgIHZvaWQgZG9QbGF0Zm9ybUFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRS
ZXNvdXJjZVJlcXVlc3REYXRhPikgeyB9CisgICAgfTsKKworICAgIHN0cnVjdCBDcm9zc1RocmVh
ZFJlc291cmNlUmVxdWVzdERhdGEgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3RE
YXRhQmFzZSB7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlUmVzcG9uc2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VSZXNwb25zZS5oCShyZXZpc2lvbiA2
ODYxNykKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZVJlc3BvbnNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDE1IEBAIHB1YmxpYzoKICAgICAgICAgOiBSZXNv
dXJjZVJlc3BvbnNlQmFzZSh1cmwsIG1pbWVUeXBlLCBleHBlY3RlZExlbmd0aCwgdGV4dEVuY29k
aW5nTmFtZSwgZmlsZW5hbWUpCiAgICAgewogICAgIH0KKworcHJpdmF0ZToKKyAgICBmcmllbmQg
Y2xhc3MgUmVzb3VyY2VSZXNwb25zZUJhc2U7CisKKyAgICBQYXNzT3duUHRyPENyb3NzVGhyZWFk
UmVzb3VyY2VSZXNwb25zZURhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQYXNzT3duUHRyPENyb3Nz
VGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpIGNvbnN0IHsgcmV0dXJuIGRhdGE7IH0K
KyAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VS
ZXNwb25zZURhdGE+KSB7IH0KK307CisKK3N0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9u
c2VEYXRhIDogcHVibGljIENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGFCYXNlIHsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlUmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdC5oCShyZXZpc2lvbiA2ODYxNykKKysrIFdlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC04MCw2ICs4MCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBk
b1VwZGF0ZVBsYXRmb3JtUmVxdWVzdCgpIHt9OwogICAgICAgICB2b2lkIGRvVXBkYXRlUmVzb3Vy
Y2VSZXF1ZXN0KCkge307CisKKyAgICAgICAgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNl
UmVxdWVzdERhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVz
b3VyY2VSZXF1ZXN0RGF0YT4gZGF0YSkgY29uc3QgeyByZXR1cm4gZGF0YTsgfQorICAgICAgICB2
b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0
RGF0YT4pIHsgfQorICAgIH07CisKKyAgICBzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVl
c3REYXRhIDogcHVibGljIENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YUJhc2UgewogICAg
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlLmgJKHJldmlzaW9uIDY4NjE3KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC02Myw5ICs2MywxMyBAQCBwcml2YXRlOgogCiAgICAgU291cE1lc3NhZ2VGbGFn
cyBtX3NvdXBGbGFnczsKIAotICAgIHZvaWQgZG9VcGRhdGVSZXNvdXJjZVJlc3BvbnNlKCkKLSAg
ICB7Ci0gICAgfQorICAgIHZvaWQgZG9VcGRhdGVSZXNvdXJjZVJlc3BvbnNlKCkgeyB9CisKKyAg
ICBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRvUGxhdGZvcm1D
b3B5RGF0YShQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEp
IGNvbnN0IHsgcmV0dXJuIGRhdGE7IH0KKyAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3du
UHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+KSB7IH0KK307CisKK3N0cnVjdCBD
cm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhIDogcHVibGljIENyb3NzVGhyZWFkUmVzb3Vy
Y2VSZXNwb25zZURhdGFCYXNlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>
<flag name="review"
          id="58787"
          type_id="1"
          status="+"
          setter="dumi"
    />
    <flag name="commit-queue"
          id="58788"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69241</attachid>
            <date>2010-09-29 12:57:30 -0700</date>
            <delta_ts>2010-09-30 00:51:13 -0700</delta_ts>
            <desc>crossThread patch</desc>
            <filename>cross6.txt</filename>
            <type>text/plain</type>
            <size>26969</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODY3OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsODEgQEAKKzIwMTAtMDktMjggIE1pY2hhZWwgTm9yZG1hbiAgPG1pY2hhZWxuQGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTWFrZSBpdCBwb3NzaWJsZSB0byBjb3B5IHBsYXRmb3JtIHNwZWNpZmljIGRhdGEgbWVtYmVy
cyBvZiBSZXNvdXJjZVJlcXVlc3QgYW5kIFJlc291cmNlUmVzcG9uc2UKKyAgICAgICAgYWNyb3Nz
IHRocmVhZHMgYW5kIHRvIGNvbXBhcmUgcGxhdGZvcm0gc3BlY2lmaWMgZGF0YSBtZW1iZXJzIG9m
IFJlc291cmNlUmVxdWVzdC4KKyAgICAgICAgLSBBZGRlZCB0d28gaW5zdGFuY2UgbWV0aG9kcyB0
byB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgc3ViY2xhc3NlczogZG9QbGF0Zm9ybUFkb3B0IGFuZCBk
b1BsYXRmb3JtQ29weURhdGEuCisgICAgICAgIC0gQWxzbyBhZGRlZCBhICJzaGFkb3dhYmxlIiBz
dGF0aWMgbWV0aG9kIGZvciBwbGF0Zm9ybUNvbXBhcmUgdG8gUmVzb3VyY2VSZXF1ZXN0QmFzZSwg
YSBzaW1pbGFyIG1ldGhvZAorICAgICAgICAgIGlzIGFscmVhZHkgcHJlc2VudCBvbiBSZXNvdXJj
ZVJlc3BvbnNlQmFzZS4KKyAgICAgICAgLSBDb252ZXJ0ZWQgdGhlIGNyb3NzIHRocmVhZCBzdHJ1
Y3RzIGRlZmluZWQgaW4gUmVzb3VyY2VSZXF1ZXN0L1Jlc3BvbnNlQmFzZS5oIHRvIGJhc2UKKyAg
ICAgICAgICBjbGFzc2VzIGFuZCBleHRlbmRlZCB0aG9zZSBiYXNlIGNsYXNzZXMgaW4gdGhlIHBs
YXRmb3JtIHNwZWNpZmljIGhlYWRlcnMgdG8gcHJvdmlkZSBhIHBsYWNlCisgICAgICAgICAgdG8g
aG9sZCBhZGRpdGlvbmFsIGZpZWxkcy4KKyAgICAgICAgLSBVc2VkIHRoaXMgbWVjaGFuaXNtIHRv
IGhhdmUgdGhlIGNocm9taXVtIHBvcnQncyBkYXRhIG1lbWJlcnMgbWFrZSB0aGUgaG9wLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY0MzAKKworICAg
ICAgICBObyBuZXcgdGVzdHMuIEp1c3QgcGx1bWJpbmcuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4
cC5pbjogcmVtb3ZlZCB0aGUgc3ltYm9sIGZvciB0aGUgbm93IGlubGluZWQgPT0gb3BlcmF0b3IK
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IGFkZGVkIGNocm9taXVtL1Jlc291cmNlUmVzcG9uc2Uu
Y3BwCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OmFkb3B0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OmNvcHlEYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OmNvbXBhcmUpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0QmFzZTo6cGxhdGZvcm1Db21wYXJlKToKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9y
PT0pOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3IhPSk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlQmFzZTo6YXNSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2VCYXNlOjphZG9wdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlQmFzZTo6Y29weURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VSZXNwb25zZUJhc2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2FuZHJvaWQv
UmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRv
UGxhdGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRv
UGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9hbmRyb2lkL1Jlc291
cmNlUmVzcG9uc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxh
dGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1Bs
YXRmb3JtQWRvcHQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1
ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1Db3B5
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1BZG9w
dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1BsYXRmb3JtQ29weURhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6ZG9QbGF0Zm9ybUFkb3B0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVxdWVzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1Db3B5RGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVzcG9uc2UuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1Db3B5RGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1BsYXRmb3JtQWRvcHQp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXNwb25zZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZVJlcXVlc3QuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUFkb3B0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VSZXNwb25zZS5oOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Q6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9tYWMvUmVzb3VyY2VSZXNwb25zZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZTo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9xdC9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dDo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dDo6ZG9QbGF0Zm9ybUFkb3B0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291
cmNlUmVzcG9uc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxh
dGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1Bs
YXRmb3JtQWRvcHQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJl
cXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUNv
cHlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9QbGF0Zm9ybUFk
b3B0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZS5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6ZG9VcGRhdGVSZXNvdXJjZVJl
c3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1D
b3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1BsYXRmb3Jt
QWRvcHQpOgorCiAyMDEwLTA5LTI5ICBKb8OjbyBQYXVsbyBSZWNoaSBWaXRhICA8anBydml0YUBw
cm9mdXNpb24ubW9iaT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbnRvbmlvIEdvbWVzLgpJbmRl
eDogV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCShyZXZpc2lvbiA2ODY3OSkKKysrIFdlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtp
bmcgY29weSkKQEAgLTg1Miw3ICs4NTIsNiBAQCBfX1pON1dlYkNvcmU5Zm9udENhY2hlRXYKIF9f
Wk43V2ViQ29yZTltYWtlUmFuZ2VFUktOU18xNVZpc2libGVQb3NpdGlvbkVTMl8KIF9fWk43V2Vi
Q29yZTlwYWdlQ2FjaGVFdgogX19aTjdXZWJDb3JlOXRvRWxlbWVudEVOM0pTQzdKU1ZhbHVlRQot
X19aTjdXZWJDb3JlZXFFUktOU18xOVJlc291cmNlUmVxdWVzdEJhc2VFUzJfCiBfX1pOSzNKU0M4
QmluZGluZ3MxMFJvb3RPYmplY3QxMmdsb2JhbE9iamVjdEV2CiBfX1pOSzNXVEY2U3RyaW5nMTRj
cmVhdGVDRlN0cmluZ0V2CiBfX1pOSzdXZWJDb3JlMTBGbG9hdFBvaW50Y3Y4X05TUG9pbnRFdgpJ
bmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkJKHJldmlzaW9uIDY4Njc5KQorKysgV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcg
Y29weSkKQEAgLTI5MDUsNiArMjkwNSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29y
ay9jaHJvbWl1bS9SZXNvdXJjZUVycm9yLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdv
cmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
bmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuaCcsCisgICAgICAgICAgICAncGxhdGZv
cm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlc3BvbnNlLmNwcCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlc3BvbnNlLmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vU29ja2V0U3RyZWFtRXJyb3IuaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9Tb2NrZXRTdHJlYW1IYW5kbGUuaCcs
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJh
c2UuY3BwCShyZXZpc2lvbiA2ODY3OSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZVJlcXVlc3RCYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUsNiArNjUsNyBAQCBQYXNz
T3duUHRyPFJlc291cmNlUmVxdWVzdD4gUmVzb3VyY2VSZXF1CiAgICAgfQogICAgIHJlcXVlc3Qt
PnNldEhUVFBCb2R5KGRhdGEtPm1faHR0cEJvZHkpOwogICAgIHJlcXVlc3QtPnNldEFsbG93Q29v
a2llcyhkYXRhLT5tX2FsbG93Q29va2llcyk7CisgICAgcmVxdWVzdC0+ZG9QbGF0Zm9ybUFkb3B0
KGRhdGEpOwogICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIApAQCAtODcsNyArODgs
NyBAQCBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0CiAgICAgaWYgKG1f
aHR0cEJvZHkpCiAgICAgICAgIGRhdGEtPm1faHR0cEJvZHkgPSBtX2h0dHBCb2R5LT5kZWVwQ29w
eSgpOwogICAgIGRhdGEtPm1fYWxsb3dDb29raWVzID0gbV9hbGxvd0Nvb2tpZXM7Ci0gICAgcmV0
dXJuIGRhdGEucmVsZWFzZSgpOworICAgIHJldHVybiBhc1Jlc291cmNlUmVxdWVzdCgpLmRvUGxh
dGZvcm1Db3B5RGF0YShkYXRhLnJlbGVhc2UoKSk7CiB9CiAKIGJvb2wgUmVzb3VyY2VSZXF1ZXN0
QmFzZTo6aXNFbXB0eSgpIGNvbnN0CkBAIC0zNTUsNyArMzU2LDcgQEAgYm9vbCBlcXVhbElnbm9y
aW5nSGVhZGVyRmllbGRzKGNvbnN0IFJlcwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIG9w
ZXJhdG9yPT0oY29uc3QgUmVzb3VyY2VSZXF1ZXN0QmFzZSYgYSwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0QmFzZSYgYikKK2Jvb2wgUmVzb3VyY2VSZXF1ZXN0QmFzZTo6Y29tcGFyZShjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIGEsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgYikKIHsKICAgICBpZiAoIWVx
dWFsSWdub3JpbmdIZWFkZXJGaWVsZHMoYSwgYikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTM2Myw3ICszNjQsNyBAQCBib29sIG9wZXJhdG9yPT0oY29uc3QgUmVzb3VyY2VSZXF1ZXN0QmFz
CiAgICAgaWYgKGEuaHR0cEhlYWRlckZpZWxkcygpICE9IGIuaHR0cEhlYWRlckZpZWxkcygpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAotICAgIHJldHVybiB0cnVlOworICAgIHJl
dHVybiBSZXNvdXJjZVJlcXVlc3Q6OnBsYXRmb3JtQ29tcGFyZShhLCBiKTsKIH0KIAogYm9vbCBS
ZXNvdXJjZVJlcXVlc3RCYXNlOjppc0NvbmRpdGlvbmFsKCkgY29uc3QKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaAkocmV2aXNpb24gNjg2
NzkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNDAsNiArMTQwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICBUYXJnZXRUeXBlIHRhcmdldFR5cGUoKSBjb25zdCB7IHJldHVybiBtX3RhcmdldFR5cGU7
IH0KICAgICAgICAgdm9pZCBzZXRUYXJnZXRUeXBlKFRhcmdldFR5cGUgdHlwZSkgeyBtX3Rhcmdl
dFR5cGUgPSB0eXBlOyB9CiAKKyAgICAgICAgc3RhdGljIGJvb2wgY29tcGFyZShjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKwogICAgIHByb3RlY3RlZDoK
ICAgICAgICAgLy8gVXNlZCB3aGVuIFJlc291cmNlUmVxdWVzdCBpcyBpbml0aWFsaXplZCBmcm9t
IGEgcGxhdGZvcm0gcmVwcmVzZW50YXRpb24gb2YgdGhlIHJlcXVlc3QKICAgICAgICAgUmVzb3Vy
Y2VSZXF1ZXN0QmFzZSgpCkBAIC0xNjgsNiArMTcwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICB2b2lkIHVwZGF0ZVBsYXRmb3JtUmVxdWVzdCgpIGNvbnN0OyAKICAgICAgICAgdm9p
ZCB1cGRhdGVSZXNvdXJjZVJlcXVlc3QoKSBjb25zdDsgCiAKKyAgICAgICAgLy8gVGhlIFJlc291
cmNlUmVxdWVzdCBzdWJjbGFzcyBtYXkgInNoYWRvdyIgdGhpcyBtZXRob2QgdG8gY29tcGFyZSBw
bGF0Zm9ybSBzcGVjaWZpYyBmaWVsZHMKKyAgICAgICAgc3RhdGljIGJvb2wgcGxhdGZvcm1Db21w
YXJlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIHsgcmV0
dXJuIHRydWU7IH0KKwogICAgICAgICBLVVJMIG1fdXJsOwogCiAgICAgICAgIFJlc291cmNlUmVx
dWVzdENhY2hlUG9saWN5IG1fY2FjaGVQb2xpY3k7CkBAIC0xOTAsMTAgKzE5NSwxMCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKICAgICBib29sIGVxdWFsSWdub3JpbmdIZWFkZXJGaWVsZHMoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0QmFzZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdEJhc2UmKTsKIAot
ICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZXNvdXJjZVJlcXVlc3RCYXNlJiwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0QmFzZSYpOwotICAgIGlubGluZSBib29sIG9wZXJhdG9yIT0oUmVzb3VyY2VS
ZXF1ZXN0QmFzZSYgYSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0QmFzZSYgYikgeyByZXR1cm4gIShh
ID09IGIpOyB9CisgICAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIGEsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgYikgeyByZXR1cm4gUmVzb3VyY2VSZXF1ZXN0
QmFzZTo6Y29tcGFyZShhLCBiKTsgfQorICAgIGlubGluZSBib29sIG9wZXJhdG9yIT0oUmVzb3Vy
Y2VSZXF1ZXN0JiBhLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGIpIHsgcmV0dXJuICEoYSA9PSBi
KTsgfQogCi0gICAgc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YSA6IE5vbmNv
cHlhYmxlIHsKKyAgICBzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhQmFzZSA6
IE5vbmNvcHlhYmxlIHsKICAgICAgICAgS1VSTCBtX3VybDsKIAogICAgICAgICBSZXNvdXJjZVJl
cXVlc3RDYWNoZVBvbGljeSBtX2NhY2hlUG9saWN5OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCShyZXZpc2lvbiA2ODY3OSkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3Rh
dGljIHZvaWQgcGFyc2VDYWNoZUhlYWRlcihjb25zdCBTdHJpbmcmIGhlYWRlciwgVmVjdG9yPHBh
aXI8U3RyaW5nLCBTdHJpbmc+ID4mIHJlc3VsdCk7CiAKK2lubGluZSBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6YXNSZXNvdXJjZVJlc3BvbnNlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gKnN0YXRpY19jYXN0PGNvbnN0IFJlc291cmNlUmVzcG9uc2UqPih0aGlz
KTsKK30KKwogUmVzb3VyY2VSZXNwb25zZUJhc2U6OlJlc291cmNlUmVzcG9uc2VCYXNlKCkgIAog
ICAgIDogbV9leHBlY3RlZENvbnRlbnRMZW5ndGgoMCkKICAgICAsIG1faHR0cFN0YXR1c0NvZGUo
MCkKQEAgLTEwNyw3ICsxMTIsNyBAQCBQYXNzT3duUHRyPFJlc291cmNlUmVzcG9uc2U+IFJlc291
cmNlUmVzCiAgICAgcmVzcG9uc2UtPm1faHR0cEhlYWRlckZpZWxkcy5hZG9wdChkYXRhLT5tX2h0
dHBIZWFkZXJzLnJlbGVhc2UoKSk7CiAgICAgcmVzcG9uc2UtPnNldExhc3RNb2RpZmllZERhdGUo
ZGF0YS0+bV9sYXN0TW9kaWZpZWREYXRlKTsKICAgICByZXNwb25zZS0+c2V0UmVzb3VyY2VMb2Fk
VGltaW5nKGRhdGEtPm1fcmVzb3VyY2VMb2FkVGltaW5nLnJlbGVhc2UoKSk7Ci0KKyAgICByZXNw
b25zZS0+ZG9QbGF0Zm9ybUFkb3B0KGRhdGEpOwogICAgIHJldHVybiByZXNwb25zZS5yZWxlYXNl
KCk7CiB9CiAKQEAgLTEyNSw3ICsxMzAsNyBAQCBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3Vy
Y2VSZXNwb25zZURhCiAgICAgZGF0YS0+bV9sYXN0TW9kaWZpZWREYXRlID0gbGFzdE1vZGlmaWVk
RGF0ZSgpOwogICAgIGlmIChtX3Jlc291cmNlTG9hZFRpbWluZykKICAgICAgICAgZGF0YS0+bV9y
ZXNvdXJjZUxvYWRUaW1pbmcgPSBtX3Jlc291cmNlTG9hZFRpbWluZy0+ZGVlcENvcHkoKTsKLSAg
ICByZXR1cm4gZGF0YS5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGFzUmVzb3VyY2VSZXNwb25zZSgp
LmRvUGxhdGZvcm1Db3B5RGF0YShkYXRhLnJlbGVhc2UoKSk7CiB9CiAKIGJvb2wgUmVzb3VyY2VS
ZXNwb25zZUJhc2U6OmlzSFRUUCgpIGNvbnN0CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaAkocmV2aXNpb24gNjg2NzkpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaAkod29ya2luZyBjb3B5
KQpAQCAtMTE2LDcgKzExNiw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIDEyODA7CiAgICAg
fQogCi0gICAgc3RhdGljIGJvb2wgY29tcGFyZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBhLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiBiKTsKKyAgICBzdGF0aWMgYm9vbCBjb21wYXJlKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAKIHByb3RlY3Rl
ZDoKICAgICBSZXNvdXJjZVJlc3BvbnNlQmFzZSgpOwpAQCAtMTQ3LDYgKzE0Nyw3IEBAIHByb3Rl
Y3RlZDoKICAgICBib29sIG1faXNOdWxsIDogMTsKICAgICAKIHByaXZhdGU6CisgICAgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgYXNSZXNvdXJjZVJlc3BvbnNlKCkgY29uc3Q7CiAgICAgdm9pZCBw
YXJzZUNhY2hlQ29udHJvbERpcmVjdGl2ZXMoKSBjb25zdDsKIAogICAgIG11dGFibGUgYm9vbCBt
X2hhdmVQYXJzZWRDYWNoZUNvbnRyb2xIZWFkZXIgOiAxOwpAQCAtMTY5LDcgKzE3MCw3IEBAIHBy
aXZhdGU6CiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIGEs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIGIpIHsgcmV0dXJuIFJlc291cmNlUmVzcG9uc2VCYXNl
Ojpjb21wYXJlKGEsIGIpOyB9CiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIGEsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIGIpIHsgcmV0dXJuICEoYSA9PSBi
KTsgfQogCi1zdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YSA6IE5vbmNvcHlh
YmxlIHsKK3N0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhQmFzZSA6IE5vbmNv
cHlhYmxlIHsKICAgICBLVVJMIG1fdXJsOwogICAgIFN0cmluZyBtX21pbWVUeXBlOwogICAgIGxv
bmcgbG9uZyBtX2V4cGVjdGVkQ29udGVudExlbmd0aDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9hbmRyb2lkL1Jlc291cmNlUmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9hbmRyb2lkL1Jlc291cmNlUmVxdWVzdC5oCShyZXZpc2lvbiA2ODY3
OSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9hbmRyb2lkL1Jlc291cmNlUmVxdWVzdC5o
CSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1MywxMiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAg
ICAgZnJpZW5kIGNsYXNzIFJlc291cmNlUmVxdWVzdEJhc2U7CisKKyAgICBQYXNzT3duUHRyPENy
b3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKFBhc3NPd25Q
dHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkYXRhKSBjb25zdCB7IHJldHVybiBk
YXRhOyB9CisgICAgdm9pZCBkb1BsYXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJl
c291cmNlUmVxdWVzdERhdGE+KSB7IH0KK307CisKK3N0cnVjdCBDcm9zc1RocmVhZFJlc291cmNl
UmVxdWVzdERhdGEgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhQmFzZSB7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvYW5kcm9pZC9SZXNvdXJjZVJlc3BvbnNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2FuZHJvaWQvUmVzb3VyY2VSZXNwb25zZS5oCShyZXZpc2lvbiA2ODY3
OSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9hbmRyb2lkL1Jlc291cmNlUmVzcG9uc2Uu
aAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsMTIgQEAgcHJpdmF0ZToKICAgICB7CiAgICAg
ICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgfQorCisgICAgUGFzc093blB0cjxDcm9zc1RocmVh
ZFJlc291cmNlUmVzcG9uc2VEYXRhPiBkb1BsYXRmb3JtQ29weURhdGEoUGFzc093blB0cjxDcm9z
c1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBkYXRhKSBjb25zdCB7IHJldHVybiBkYXRhOyB9
CisgICAgdm9pZCBkb1BsYXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNl
UmVzcG9uc2VEYXRhPikgeyB9Cit9OworCitzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3Bv
bnNlRGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhQmFzZSB7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oCShyZXZpc2lvbiA2ODY3OSkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaAkod29ya2luZyBjb3B5KQpAQCAt
NjgsMTAgKzY4LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIGRvVXBk
YXRlUGxhdGZvcm1SZXF1ZXN0KCk7CiAgICAgICAgIHZvaWQgZG9VcGRhdGVSZXNvdXJjZVJlcXVl
c3QoKTsKLSAgICAgICAgCisKKyAgICAgICAgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNl
UmVxdWVzdERhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVz
b3VyY2VSZXF1ZXN0RGF0YT4gZGF0YSkgY29uc3QgeyByZXR1cm4gZGF0YTsgfQorICAgICAgICB2
b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0
RGF0YT4pIHsgfQorCiAgICAgICAgIFJldGFpblB0cjxDRlVSTFJlcXVlc3RSZWY+IG1fY2ZSZXF1
ZXN0OyAgICAgIAogICAgIH07CiAKKyAgICBzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVl
c3REYXRhIDogcHVibGljIENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YUJhc2UgeworICAg
IH07CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFJlc291cmNlUmVxdWVz
dF9oCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlc3Bv
bnNlLmgJKHJldmlzaW9uIDY4Njc5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jl
c291cmNlUmVzcG9uc2UuaAkod29ya2luZyBjb3B5KQpAQCAtNzAsMTIgKzcwLDE4IEBAIHByaXZh
dGU6CiAgICAgZnJpZW5kIGNsYXNzIFJlc291cmNlUmVzcG9uc2VCYXNlOwogCiAgICAgdm9pZCBw
bGF0Zm9ybUxhenlJbml0KCk7CisgICAgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVz
cG9uc2VEYXRhPiBkb1BsYXRmb3JtQ29weURhdGEoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291
cmNlUmVzcG9uc2VEYXRhPiBkYXRhKSBjb25zdCB7IHJldHVybiBkYXRhOyB9CisgICAgdm9pZCBk
b1BsYXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRh
PikgeyB9CisKICAgICBzdGF0aWMgYm9vbCBwbGF0Zm9ybUNvbXBhcmUoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgYSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgYik7CiAKICAgICBSZXRhaW5QdHI8
Q0ZVUkxSZXNwb25zZVJlZj4gbV9jZlJlc3BvbnNlOwogICAgIGJvb2wgbV9pc1VwVG9EYXRlOwog
fTsKIAorc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGEgOiBwdWJsaWMgQ3Jv
c3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YUJhc2UgeworfTsKKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gUmVzb3VyY2VSZXNwb25zZV9oCkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0LmNwcAko
cmV2aXNpb24gNjg2NzkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVz
b3VyY2VSZXF1ZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNCArMzcsMTkgQEAgdW5zaWdu
ZWQgaW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbgogICAgIHJldHVybiAxMDAwMDsKIH0K
IAorUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IFJlc291cmNlUmVx
dWVzdDo6ZG9QbGF0Zm9ybUNvcHlEYXRhKFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJl
cXVlc3REYXRhPiBkYXRhKSBjb25zdAoreworICAgIGRhdGEtPm1fcmVxdWVzdG9ySUQgPSBtX3Jl
cXVlc3RvcklEOworICAgIGRhdGEtPm1fcmVxdWVzdG9yUHJvY2Vzc0lEID0gbV9yZXF1ZXN0b3JQ
cm9jZXNzSUQ7CisgICAgZGF0YS0+bV9hcHBDYWNoZUhvc3RJRCA9IG1fYXBwQ2FjaGVIb3N0SUQ7
CisgICAgcmV0dXJuIGRhdGE7Cit9CisKK3ZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojpkb1BsYXRmb3Jt
QWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IGRhdGEpCit7
CisgICAgbV9yZXF1ZXN0b3JJRCA9IGRhdGEtPm1fcmVxdWVzdG9ySUQ7CisgICAgbV9yZXF1ZXN0
b3JQcm9jZXNzSUQgPSBkYXRhLT5tX3JlcXVlc3RvclByb2Nlc3NJRDsKKyAgICBtX2FwcENhY2hl
SG9zdElEID0gZGF0YS0+bV9hcHBDYWNoZUhvc3RJRDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVx
dWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9S
ZXNvdXJjZVJlcXVlc3QuaAkocmV2aXNpb24gNjg2NzkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTkwLDYg
KzkwLDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBkb1VwZGF0ZVBsYXRm
b3JtUmVxdWVzdCgpIHt9CiAgICAgICAgIHZvaWQgZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QoKSB7
fQogCisgICAgICAgIFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBk
b1BsYXRmb3JtQ29weURhdGEoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERh
dGE+KSBjb25zdDsKKyAgICAgICAgdm9pZCBkb1BsYXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9z
c1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+KTsKKworICAgICAgICBpbnQgbV9yZXF1ZXN0b3JJ
RDsKKyAgICAgICAgaW50IG1fcmVxdWVzdG9yUHJvY2Vzc0lEOworICAgICAgICBpbnQgbV9hcHBD
YWNoZUhvc3RJRDsKKyAgICB9OworCisgICAgc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1
ZXN0RGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGFCYXNlIHsKICAg
ICAgICAgaW50IG1fcmVxdWVzdG9ySUQ7CiAgICAgICAgIGludCBtX3JlcXVlc3RvclByb2Nlc3NJ
RDsKICAgICAgICAgaW50IG1fYXBwQ2FjaGVIb3N0SUQ7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXNwb25zZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVzcG9uc2UuY3BwCShyZXZp
c2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVz
cG9uc2UuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSwgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQ
YXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IFJlc291cmNlUmVzcG9u
c2U6OmRvUGxhdGZvcm1Db3B5RGF0YShQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNw
b25zZURhdGE+IGRhdGEpIGNvbnN0Cit7CisgICAgZGF0YS0+bV9hcHBDYWNoZUlEID0gbV9hcHBD
YWNoZUlEOworICAgIGRhdGEtPm1fYXBwQ2FjaGVNYW5pZmVzdFVSTCA9IG1fYXBwQ2FjaGVNYW5p
ZmVzdFVSTC5jb3B5KCk7CisgICAgZGF0YS0+bV9pc0NvbnRlbnRGaWx0ZXJlZCA9IG1faXNDb250
ZW50RmlsdGVyZWQ7CisgICAgZGF0YS0+bV9pc011bHRpcGFydFBheWxvYWQgPSBtX2lzTXVsdGlw
YXJ0UGF5bG9hZDsKKyAgICBkYXRhLT5tX3dhc0ZldGNoZWRWaWFTUERZID0gbV93YXNGZXRjaGVk
VmlhU1BEWTsKKyAgICBkYXRhLT5tX3dhc05wbk5lZ290aWF0ZWQgPSBtX3dhc05wbk5lZ290aWF0
ZWQ7CisgICAgZGF0YS0+bV93YXNBbHRlcm5hdGVQcm90b2NvbEF2YWlsYWJsZSA9IG1fd2FzQWx0
ZXJuYXRlUHJvdG9jb2xBdmFpbGFibGU7CisgICAgZGF0YS0+bV93YXNGZXRjaGVkVmlhUHJveHkg
PSBtX3dhc0ZldGNoZWRWaWFQcm94eTsKKyAgICBkYXRhLT5tX3Jlc3BvbnNlVGltZSA9IG1fcmVz
cG9uc2VUaW1lOworICAgIHJldHVybiBkYXRhOworfQorCit2b2lkIFJlc291cmNlUmVzcG9uc2U6
OmRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURh
dGE+IGRhdGEpCit7CisgICAgbV9hcHBDYWNoZUlEID0gZGF0YS0+bV9hcHBDYWNoZUlEOworICAg
IG1fYXBwQ2FjaGVNYW5pZmVzdFVSTCA9IGRhdGEtPm1fYXBwQ2FjaGVNYW5pZmVzdFVSTC5jb3B5
KCk7CisgICAgbV9pc0NvbnRlbnRGaWx0ZXJlZCA9IGRhdGEtPm1faXNDb250ZW50RmlsdGVyZWQ7
CisgICAgbV9pc011bHRpcGFydFBheWxvYWQgPSBkYXRhLT5tX2lzTXVsdGlwYXJ0UGF5bG9hZDsK
KyAgICBtX3dhc0ZldGNoZWRWaWFTUERZID0gZGF0YS0+bV93YXNGZXRjaGVkVmlhU1BEWTsKKyAg
ICBtX3dhc05wbk5lZ290aWF0ZWQgPSBkYXRhLT5tX3dhc05wbk5lZ290aWF0ZWQ7CisgICAgbV93
YXNBbHRlcm5hdGVQcm90b2NvbEF2YWlsYWJsZSA9IGRhdGEtPm1fd2FzQWx0ZXJuYXRlUHJvdG9j
b2xBdmFpbGFibGU7CisgICAgbV93YXNGZXRjaGVkVmlhUHJveHkgPSBkYXRhLT5tX3dhc0ZldGNo
ZWRWaWFQcm94eTsKKyAgICBtX3Jlc3BvbnNlVGltZSA9IGRhdGEtPm1fcmVzcG9uc2VUaW1lOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2hyb21pdW0vUmVzb3VyY2VSZXNwb25zZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlc3BvbnNlLmgJKHJldmlzaW9uIDY4Njc5
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVzcG9uc2Uu
aAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgICAgIH0KIAorICAgICAgICBQYXNz
T3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRvUGxhdGZvcm1Db3B5RGF0
YShQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+KSBjb25zdDsKKyAg
ICAgICAgdm9pZCBkb1BsYXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNl
UmVzcG9uc2VEYXRhPik7CisKICAgICAgICAgLy8gVGhlIGlkIG9mIHRoZSBhcHBjYWNoZSB0aGlz
IHJlc3BvbnNlIHdhcyByZXRyaWV2ZWQgZnJvbSwgb3IgemVybyBpZgogICAgICAgICAvLyB0aGUg
cmVzcG9uc2Ugd2FzIG5vdCByZXRyaWV2ZWQgZnJvbSBhbiBhcHBjYWNoZS4KICAgICAgICAgbG9u
ZyBsb25nIG1fYXBwQ2FjaGVJRDsKQEAgLTE0Miw2ICsxNDUsMTggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBkb3VibGUgbV9yZXNwb25zZVRpbWU7CiAgICAgfTsKIAorICAgIHN0cnVj
dCBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhIDogcHVibGljIENyb3NzVGhyZWFkUmVz
b3VyY2VSZXNwb25zZURhdGFCYXNlIHsKKyAgICAgICAgbG9uZyBsb25nIG1fYXBwQ2FjaGVJRDsK
KyAgICAgICAgS1VSTCBtX2FwcENhY2hlTWFuaWZlc3RVUkw7CisgICAgICAgIGJvb2wgbV9pc0Nv
bnRlbnRGaWx0ZXJlZDsKKyAgICAgICAgYm9vbCBtX2lzTXVsdGlwYXJ0UGF5bG9hZDsKKyAgICAg
ICAgYm9vbCBtX3dhc0ZldGNoZWRWaWFTUERZOworICAgICAgICBib29sIG1fd2FzTnBuTmVnb3Rp
YXRlZDsKKyAgICAgICAgYm9vbCBtX3dhc0FsdGVybmF0ZVByb3RvY29sQXZhaWxhYmxlOworICAg
ICAgICBib29sIG1fd2FzRmV0Y2hlZFZpYVByb3h5OworICAgICAgICBkb3VibGUgbV9yZXNwb25z
ZVRpbWU7CisgICAgfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlUmVxdWVzdC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlUmVxdWVzdC5oCShy
ZXZpc2lvbiA2ODY3OSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNl
UmVxdWVzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC02OSw2ICs2OSwxMiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICAgICAgICAgdm9pZCBkb1VwZGF0ZVBsYXRmb3JtUmVxdWVzdCgpIHt9CiAgICAg
ICAgIHZvaWQgZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QoKSB7fQorCisgICAgICAgIFBhc3NPd25Q
dHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkb1BsYXRmb3JtQ29weURhdGEoUGFz
c093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IGRhdGEpIGNvbnN0IHsgcmV0
dXJuIGRhdGE7IH0KKyAgICAgICAgdm9pZCBkb1BsYXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9z
c1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+KSB7IH0KKyAgICB9OworCisgICAgc3RydWN0IENy
b3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291cmNl
UmVxdWVzdERhdGFCYXNlIHsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZVJlc3BvbnNlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VSZXNwb25zZS5o
CShyZXZpc2lvbiA2ODY3OSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291
cmNlUmVzcG9uc2UuaAkod29ya2luZyBjb3B5KQpAQCAtNTIsOSArNTIsMTcgQEAgcHVibGljOgog
ICAgIENGVVJMUmVzcG9uc2VSZWYgY2ZVUkxSZXNwb25zZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0K
IAogcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgUmVzb3VyY2VSZXNwb25zZUJhc2U7CisKKyAg
ICBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRvUGxhdGZvcm1D
b3B5RGF0YShQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEp
IGNvbnN0IHsgcmV0dXJuIGRhdGE7IH0KKyAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3du
UHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+KSB7IH0KKwogICAgIGJvb2wgbV9y
ZXNwb25zZUZpcmVkOwogfTsKIAorc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURh
dGEgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YUJhc2UgeworfTsKKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUmVzb3VyY2VSZXNwb25zZV9oCklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVxdWVzdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0LmgJ
KHJldmlzaW9uIDY4Njc5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJj
ZVJlcXVlc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNzMsMTAgKzczLDE2IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgICAgICB2b2lkIGRvVXBkYXRlUGxhdGZvcm1SZXF1ZXN0KCk7CiAgICAg
ICAgIHZvaWQgZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QoKTsKLSAgICAgICAgCisKKyAgICAgICAg
UGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IGRvUGxhdGZvcm1Db3B5
RGF0YShQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gZGF0YSkgY29u
c3QgeyByZXR1cm4gZGF0YTsgfQorICAgICAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3du
UHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4pIHsgfQorCiAgICAgICAgIFJldGFp
blB0cjxOU1VSTFJlcXVlc3Q+IG1fbnNSZXF1ZXN0OwogICAgIH07CiAKKyAgICBzdHJ1Y3QgQ3Jv
c3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhIDogcHVibGljIENyb3NzVGhyZWFkUmVzb3VyY2VS
ZXF1ZXN0RGF0YUJhc2UgeworICAgIH07CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIFJlc291cmNlUmVxdWVzdF9oCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
bWFjL1Jlc291cmNlUmVzcG9uc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1Jlc291cmNlUmVzcG9uc2UuaAkocmV2aXNpb24gNjg2NzkpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVzcG9uc2UuaAkod29ya2luZyBjb3B5KQpA
QCAtNzUsMTIgKzc1LDE5IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFJlc291cmNlUmVz
cG9uc2VCYXNlOwogCiAgICAgdm9pZCBwbGF0Zm9ybUxhenlJbml0KCk7CisKKyAgICBQYXNzT3du
UHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQ
YXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpIGNvbnN0IHsg
cmV0dXJuIGRhdGE7IH0KKyAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3Nz
VGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+KSB7IH0KKwogICAgIHN0YXRpYyBib29sIHBsYXRm
b3JtQ29tcGFyZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBhLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiBiKTsKIAogICAgIFJldGFpblB0cjxOU1VSTFJlc3BvbnNlPiBtX25zUmVzcG9uc2U7CiAg
ICAgYm9vbCBtX2lzVXBUb0RhdGU7CiB9OwogCitzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJl
c3BvbnNlRGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhQmFzZSB7
Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBSZXNvdXJjZVJlc3Bv
bnNlX2gKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZVJlcXVlc3Qu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VSZXF1
ZXN0LmgJKHJldmlzaW9uIDY4Njc5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jl
c291cmNlUmVxdWVzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Niw2ICs2NiwxMiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBkb1VwZGF0ZVBsYXRmb3JtUmVxdWVzdCgpIHt9
CiAgICAgICAgIHZvaWQgZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QoKSB7fQorCisgICAgICAgIFBh
c3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkb1BsYXRmb3JtQ29weURh
dGEoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IGRhdGEpIGNvbnN0
IHsgcmV0dXJuIGRhdGE7IH0KKyAgICAgICAgdm9pZCBkb1BsYXRmb3JtQWRvcHQoUGFzc093blB0
cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+KSB7IH0KKyAgICB9OworCisgICAgc3Ry
dWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJl
c291cmNlUmVxdWVzdERhdGFCYXNlIHsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VSZXNwb25zZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZVJlc3BvbnNl
LmgJKHJldmlzaW9uIDY4Njc5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291
cmNlUmVzcG9uc2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsMTUgQEAgcHVibGljOgog
ICAgICAgICA6IFJlc291cmNlUmVzcG9uc2VCYXNlKHVybCwgbWltZVR5cGUsIGV4cGVjdGVkTGVu
Z3RoLCB0ZXh0RW5jb2RpbmdOYW1lLCBmaWxlbmFtZSkKICAgICB7CiAgICAgfQorCitwcml2YXRl
OgorICAgIGZyaWVuZCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlQmFzZTsKKworICAgIFBhc3NPd25Q
dHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKFBh
c3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZGF0YSkgY29uc3QgeyBy
ZXR1cm4gZGF0YTsgfQorICAgIHZvaWQgZG9QbGF0Zm9ybUFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NU
aHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4pIHsgfQorfTsKKworc3RydWN0IENyb3NzVGhyZWFk
UmVzb3VyY2VSZXNwb25zZURhdGEgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNl
RGF0YUJhc2UgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0LmgJKHJldmlzaW9uIDY4
Njc5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTgwLDYgKzgwLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgICAgICB2b2lkIGRvVXBkYXRlUGxhdGZvcm1SZXF1ZXN0KCkge307CiAgICAgICAgIHZvaWQg
ZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QoKSB7fTsKKworICAgICAgICBQYXNzT3duUHRyPENyb3Nz
VGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKFBhc3NPd25QdHI8
Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkYXRhKSBjb25zdCB7IHJldHVybiBkYXRh
OyB9CisgICAgICAgIHZvaWQgZG9QbGF0Zm9ybUFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRS
ZXNvdXJjZVJlcXVlc3REYXRhPikgeyB9CisgICAgfTsKKworICAgIHN0cnVjdCBDcm9zc1RocmVh
ZFJlc291cmNlUmVxdWVzdERhdGEgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3RE
YXRhQmFzZSB7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2UuaAkocmV2aXNp
b24gNjg2NzkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3Bv
bnNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTYzLDkgKzYzLDEzIEBAIHByaXZhdGU6CiAKICAgICBT
b3VwTWVzc2FnZUZsYWdzIG1fc291cEZsYWdzOwogCi0gICAgdm9pZCBkb1VwZGF0ZVJlc291cmNl
UmVzcG9uc2UoKQotICAgIHsKLSAgICB9CisgICAgdm9pZCBkb1VwZGF0ZVJlc291cmNlUmVzcG9u
c2UoKSB7IH0KKworICAgIFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0
YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3Bv
bnNlRGF0YT4gZGF0YSkgY29uc3QgeyByZXR1cm4gZGF0YTsgfQorICAgIHZvaWQgZG9QbGF0Zm9y
bUFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4pIHsgfQor
fTsKKworc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGEgOiBwdWJsaWMgQ3Jv
c3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YUJhc2UgewogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>