<?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>193111</bug_id>
          
          <creation_ts>2019-01-03 10:23:29 -0800</creation_ts>
          <short_desc>[Cocoa] Allow the page to add to the platform undo stack via UndoManager.addItem()</short_desc>
          <delta_ts>2019-01-22 19:44:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>193109</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1491459</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-03 10:23:29 -0800</bug_when>
    <thetext>&lt;rdar://problem/44807048&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492043</commentid>
    <comment_count>1</comment_count>
      <attachid>358427</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-04 20:45:23 -0800</bug_when>
    <thetext>Created attachment 358427
WIP (with tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495886</commentid>
    <comment_count>2</comment_count>
      <attachid>359498</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-18 09:34:59 -0800</bug_when>
    <thetext>Created attachment 359498
Part 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496195</commentid>
    <comment_count>3</comment_count>
      <attachid>359590</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-18 23:43:24 -0800</bug_when>
    <thetext>Created attachment 359590
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496196</commentid>
    <comment_count>4</comment_count>
      <attachid>359591</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-18 23:52:05 -0800</bug_when>
    <thetext>Created attachment 359591
Part 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496199</commentid>
    <comment_count>5</comment_count>
      <attachid>359592</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-19 00:15:42 -0800</bug_when>
    <thetext>Created attachment 359592
Part 1 (w/ unified build fix)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496200</commentid>
    <comment_count>6</comment_count>
      <attachid>359593</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-19 00:29:10 -0800</bug_when>
    <thetext>Created attachment 359593
Part 1 (fix typo in title)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496201</commentid>
    <comment_count>7</comment_count>
      <attachid>359594</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-19 00:34:29 -0800</bug_when>
    <thetext>Created attachment 359594
Part 2 (CustomUndoStep)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496297</commentid>
    <comment_count>8</comment_count>
      <attachid>359631</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-19 20:41:14 -0800</bug_when>
    <thetext>Created attachment 359631
Part 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496298</commentid>
    <comment_count>9</comment_count>
      <attachid>359632</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-19 20:54:05 -0800</bug_when>
    <thetext>Created attachment 359632
Part 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496980</commentid>
    <comment_count>10</comment_count>
      <attachid>359593</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-01-22 14:32:08 -0800</bug_when>
    <thetext>Comment on attachment 359593
Part 1 (fix typo in title)

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

&gt; Source/WebCore/bindings/js/JSUndoItemCustom.cpp:47
&gt; +    if (UNLIKELY(reason))
&gt; +        *reason = &quot;Document is an opaque root.&quot;;

You can always set the reason even if you were to return false.
So the idiomatic way of writing isReachableFromOpaqueRoots is to put this code at the beginning of the function.

&gt; Source/WebCore/page/UndoItem.cpp:55
&gt; +    return isValid() ? &amp;m_undoManager-&gt;document() : nullptr;

I&apos;d prefer clearing m_undoManager in invalidate() instead.
That way, UndoItem would be destructed even after it had been removed from UndoManager
e.g. via some kind of clear() operation in the future.

&gt; Source/WebCore/page/UndoManager.cpp:59
&gt; +    auto items = std::exchange(m_items, { });

I think you can just iterate over m_items and call clear at the end.
There is no reentrancy concern here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497066</commentid>
    <comment_count>11</comment_count>
      <attachid>359593</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-22 16:12:06 -0800</bug_when>
    <thetext>Comment on attachment 359593
Part 1 (fix typo in title)

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

&gt;&gt; Source/WebCore/bindings/js/JSUndoItemCustom.cpp:47
&gt;&gt; +        *reason = &quot;Document is an opaque root.&quot;;
&gt; 
&gt; You can always set the reason even if you were to return false.
&gt; So the idiomatic way of writing isReachableFromOpaqueRoots is to put this code at the beginning of the function.

Ah, I see! Fixed.

&gt;&gt; Source/WebCore/page/UndoItem.cpp:55
&gt;&gt; +    return isValid() ? &amp;m_undoManager-&gt;document() : nullptr;
&gt; 
&gt; I&apos;d prefer clearing m_undoManager in invalidate() instead.
&gt; That way, UndoItem would be destructed even after it had been removed from UndoManager
&gt; e.g. via some kind of clear() operation in the future.

So in my patch, UndoItem::invalidate() already does null out m_undoManager by using std::exchange(m_undoManager, nullptr). But maybe this was too subtle :/

I&apos;ll change this to set m_undoManager to nullptr instead, to make it more obvious...

&gt;&gt; Source/WebCore/page/UndoManager.cpp:59
&gt;&gt; +    auto items = std::exchange(m_items, { });
&gt; 
&gt; I think you can just iterate over m_items and call clear at the end.
&gt; There is no reentrancy concern here.

The reason I used std::exchange here is that UndoItem::invalidate calls back into UndoManager::removeItem to actually remove the UndoItem from the UndoManager, and so iterating over m_items while invalidating each item is going to cause m_items to mutate during iteration.

On second thought, this code is unnecessarily convoluted; I&apos;ll refactor this...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497120</commentid>
    <comment_count>12</comment_count>
      <attachid>359819</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-22 17:30:04 -0800</bug_when>
    <thetext>Created attachment 359819
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497142</commentid>
    <comment_count>13</comment_count>
      <attachid>359819</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-22 18:06:58 -0800</bug_when>
    <thetext>Comment on attachment 359819
Patch for landing

Clearing flags on attachment: 359819

Committed r240315: &lt;https://trac.webkit.org/changeset/240315&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497143</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-22 18:07:00 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497155</commentid>
    <comment_count>15</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-22 18:38:00 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497156</commentid>
    <comment_count>16</comment_count>
      <attachid>359832</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-22 18:38:01 -0800</bug_when>
    <thetext>Created attachment 359832
Part 2 (rebase on trunk)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497158</commentid>
    <comment_count>17</comment_count>
      <attachid>359834</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-22 18:53:45 -0800</bug_when>
    <thetext>Created attachment 359834
Part 2 (fix GTK/WPE builds)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497170</commentid>
    <comment_count>18</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-01-22 19:42:13 -0800</bug_when>
    <thetext>Can we file a separate bug for part 2? It&apos;s confusing to post multiple patches per Bugzilla bug like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497172</commentid>
    <comment_count>19</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-22 19:43:59 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #18)
&gt; Can we file a separate bug for part 2? It&apos;s confusing to post multiple
&gt; patches per Bugzilla bug like this.

Sure thing — filed &lt;https://bugs.webkit.org/show_bug.cgi?id=193704&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358427</attachid>
            <date>2019-01-04 20:45:23 -0800</date>
            <delta_ts>2019-01-10 12:25:55 -0800</delta_ts>
            <desc>WIP (with tests)</desc>
            <filename>bug-193111-20190104204522.patch</filename>
            <type>text/plain</type>
            <size>64452</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjQ3N2EzNzhiYzk1Mjg5
ZTRmYTMyNjRlYzczMzEyZTU4ZDY4MGIyOC4uZDcxOWFjYTc0N2RmZjg1NDUzOGM3OWRkYzE2YTM2
OTdhMGVhNWFhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE5LTAxLTA0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWxs
b3cgdGhlIHBhZ2UgdG8gYWRkIHRvIHRoZSBwbGF0Zm9ybSB1bmRvIHN0YWNrIHZpYSBVbmRvTWFu
YWdlci5hZGRJdGVtKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5MzExMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQ4MDcwNDg+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGVkaXRpbmcv
dW5kby9VbmRvTWFuYWdlci91bmRvLW1hbmFnZXItYWRkLWl0ZW0uaHRtbAorICAgICAgICAgICAg
ICAgZWRpdGluZy91bmRvL1VuZG9NYW5hZ2VyL3VuZG8tbWFuYWdlci1wcmV2ZW50LXVuZG8tcmVk
by5odG1sCisgICAgICAgICAgICAgICBlZGl0aW5nL3VuZG8vVW5kb01hbmFnZXIvdW5kby1tYW5h
Z2VyLXNldC1pdGVtLWxhYmVsLmh0bWwKKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBlZGl0aW5n
L0NvbXBvc2l0ZUVkaXRDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9DdXN0b21VbmRvU3Rl
cC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tVW5kb1N0ZXA6OkN1c3RvbVVu
ZG9TdGVwKToKKyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbVVuZG9TdGVwOjp1bmFwcGx5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkN1c3RvbVVuZG9TdGVwOjpyZWFwcGx5KToKKyAgICAgICAgKFdlYkNv
cmU6OkN1c3RvbVVuZG9TdGVwOjpjdXN0b21VbmRvTGFiZWwgY29uc3QpOgorICAgICAgICAqIGVk
aXRpbmcvQ3VzdG9tVW5kb1N0ZXAuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGFnZS9V
bmRvTWFuYWdlci5jcHAuCisgICAgICAgICogZWRpdGluZy9FZGl0QWN0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Om5hbWVGb3JVbmRvUmVkbyk6CisgICAgICAgICogZWRpdGluZy9FZGl0QWN0
aW9uLmg6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwOgorICAgICAgICAqIGVk
aXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6d2lsbFVuYXBwbHlF
ZGl0aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6d2lsbFJlYXBwbHlFZGl0
aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6dW5hcHBsaWVkRWRpdGluZyk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnJlYXBwbGllZEVkaXRpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yOjpyZWdpc3RlckN1c3RvbVVuZG9TdGVwKToKKyAgICAgICAgKiBlZGl0
aW5nL0VkaXRvci5oOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0RWRpdGFibGVJbWFnZUNvbW1h
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0RWRpdGFibGVJbWFnZUNvbW1hbmQ6OmRv
QXBwbHkpOgorICAgICAgICAqIGVkaXRpbmcvVW5kb1N0ZXAuaDoKKyAgICAgICAgKiBsb2FkZXIv
RW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50Ojpy
ZWdpc3RlclVuZG9TdGVwKToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50Ojpy
ZWdpc3RlclJlZG9TdGVwKToKKyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOgorICAgICAg
ICAqIHBhZ2UvVW5kb0l0ZW0uaDoKKyAgICAgICAgKiBwYWdlL1VuZG9NYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlVuZG9NYW5hZ2VyOjphZGRJdGVtKToKKwogMjAxOS0wMS0wMyAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2Ug
SURMIGZpbGVzIGZvciBydW50aW1lLWVuYWJsZWQgVW5kb01hbmFnZXIgYW5kIFVuZG9JdGVtIEph
dmFTY3JpcHQgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE0ZWU3Mzc0MmUwNWE3ODk3Mzk0NGM0NGJmYTIwYTE4
NWIyNzAwZGUuLjJlYzJhN2NhM2I1MmFmYTE1YWRkYjA5OWZmMDg1OWZlMjk2Zjc1NDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTktMDEtMDQgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBbGxvdyB0aGUgcGFnZSB0byBhZGQg
dG8gdGhlIHBsYXRmb3JtIHVuZG8gc3RhY2sgdmlhIFVuZG9NYW5hZ2VyLmFkZEl0ZW0oKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMTExCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NDgwNzA0OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRWRpdENvbW1hbmRQcm94eTo6V2ViRWRpdENvbW1hbmRQcm94eSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHk6Om5hbWVGb3JVbmRvUmVkbyBjb25zdCk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRWRpdENvbW1hbmRQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWdpc3RlckVkaXRD
b21tYW5kRm9yVW5kbyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWRp
dG9yQ2xpZW50OjpyZWdpc3RlclVuZG9TdGVwKToKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9y
Q2xpZW50OjpyZWdpc3RlclJlZG9TdGVwKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorCiAyMDE5LTAxLTAzICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSBJREwgZmlsZXMgZm9y
IHJ1bnRpbWUtZW5hYmxlZCBVbmRvTWFuYWdlciBhbmQgVW5kb0l0ZW0gSmF2YVNjcmlwdCBBUEkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBlNmM5ZjBhYzUxZGQ2MWE4YjM2Nzc2ZGMx
YzE5OGVhNTczMWRlZTZlLi44Y2IyYzQ0MTdmZTkyNjBlODljODQzZjVmODI0Y2M3MmJjNTA5YmVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTktMDEt
MDQgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0Nv
Y29hXSBBbGxvdyB0aGUgcGFnZSB0byBhZGQgdG8gdGhlIHBsYXRmb3JtIHVuZG8gc3RhY2sgdmlh
IFVuZG9NYW5hZ2VyLmFkZEl0ZW0oKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkzMTExCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NDgwNzA0OD4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbToKKyAgICAgICAgKC1bV2ViVW5kb1N0ZXAgaW5pdFdpdGhVbmRvU3Rl
cDpdKToKKyAgICAgICAgKCtbV2ViVW5kb1N0ZXAgc3RlcFdpdGhVbmRvU3RlcDpdKToKKyAgICAg
ICAgKFdlYkVkaXRvckNsaWVudDo6cmVnaXN0ZXJVbmRvT3JSZWRvU3RlcCk6CisgICAgICAgIChX
ZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyVW5kb1N0ZXApOgorICAgICAgICAoV2ViRWRpdG9yQ2xp
ZW50OjpyZWdpc3RlclJlZG9TdGVwKToKKwogMjAxOS0wMS0wNCAgV2Vuc29uIEhzaWVoICA8d2Vu
c29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIE1lcmdlIFdlYkVkaXRDb21t
YW5kUHJveHk6Om5hbWVGb3JFZGl0QWN0aW9uIGFuZCB1bmRvTmFtZUZvckVkaXRBY3Rpb24gaW50
byBhIHNpbmdsZSBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBjZmZkNWQ1ODMwMTZkOTI2NzBj
Mjg1MDBmZmMyZDg2MzQ1MWM2NjgxLi41Njc4OWYzNzQ5MzQ1NTE5NmE1NzAxZmNiZjkzODEyZjJl
NDQ3Nzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtOTA5LDYgKzkwOSw3IEBAIGVkaXRpbmcvQnJlYWtC
bG9ja3F1b3RlQ29tbWFuZC5jcHAKIGVkaXRpbmcvQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmNwcAog
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKIGVkaXRpbmcvQ3JlYXRlTGlua0NvbW1h
bmQuY3BwCitlZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmNwcAogZWRpdGluZy9EZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcAogZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAogZWRp
dGluZy9EaWN0YXRpb25BbHRlcm5hdGl2ZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkYmNhMGEwN2FkZDRlMTU0MGEwY2U5
NTg0ZjM3YmQ1OGRiMWU4Njg2Li4xMDI2NWE0MDljNjY2NzU2ZDRhNWFlMDY0MTcwN2FiZDBhN2Y1
MjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xNDkyMSw2ICsxNDkyMSw4IEBACiAJCUY0NUMyMzFCMTk5NUI3M0IwMEE2RTJF
MyAvKiBBeGlzU2Nyb2xsU25hcE9mZnNldHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQXhpc1Njcm9sbFNuYXBPZmZzZXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjQ1QzIzMUMxOTk1QjczQjAwQTZFMkUzIC8qIEF4aXNTY3JvbGxTbmFwT2Zm
c2V0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBeGlzU2Nyb2xsU25hcE9m
ZnNldHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ2NzI5MjUxRTBERTVBQjAw
QUNDM0Q4IC8qIFNjcm9sbFNuYXBPZmZzZXRzSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTY3JvbGxTbmFwT2Zmc2V0c0luZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRjQ2ODAyRDUyMUQ5ODM3MjAwMDdEQjI0IC8qIEN1c3RvbVVuZG9TdGVwLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEN1c3RvbVVuZG9TdGVwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY0NjgwMkQ2MjFEOTgzNzIwMDA3REIyNCAvKiBDdXN0b21VbmRvU3RlcC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDdXN0b21VbmRvU3RlcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY0Nzg3NTUyMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxTbmFwQW5pbWF0b3JT
dGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDc4NzU1MzE5OTgzQUZGMDAy
NEEyODcgLyogU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ3QTA5Q0YyMEE5MzlGNjAwMjQwRkFFIC8qIERpc2FibGVk
QWRhcHRhdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzYWJsZWRBZGFwdGF0aW9ucy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA3ODQsNiArMjA3ODYsOCBAQAogCQkJCTJERDVB
NzI2MUVCRUU0N0QwMDlCQTU5NyAvKiBDb21wb3NpdGlvblVuZGVybGluZS5oICovLAogCQkJCUQw
QjA1NTY3MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5jcHAgKi8sCiAJCQkJ
RDBCMDU1NjYwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmggKi8sCisJCQkJ
RjQ2ODAyRDUyMUQ5ODM3MjAwMDdEQjI0IC8qIEN1c3RvbVVuZG9TdGVwLmggKi8sCisJCQkJRjQ2
ODAyRDYyMUQ5ODM3MjAwMDdEQjI0IC8qIEN1c3RvbVVuZG9TdGVwLmNwcCAqLywKIAkJCQk5MzMw
OUQ4RjA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8s
CiAJCQkJOTMzMDlEOTAwOTlFNjQ5MTAwNTZFNTgxIC8qIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCAqLywKIAkJCQk5MzMwOUQ5MTA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBv
c2l0ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRD
b21tYW5kLmgKaW5kZXggMmRhNTIwZmRjNDY0OTI5MmRjN2JmY2EyMGI3ZDExYjExOGM1ZGExYy4u
YjJmYTVkMDE5YTQ2M2ZjNmIyNTBhNDg0YTJiNDM5NjdmZTJkNjFmMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApAQCAtODgsNiArODgsOCBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIEVkaXRDb21tYW5kQ29tcG9zaXRpb24oRG9jdW1lbnQmLCBj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzdGFydGluZ1NlbGVjdGlvbiwgY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgZW5kaW5nU2VsZWN0aW9uLCBFZGl0QWN0aW9uKTsKIAorICAgIGNvbnN0IFN0cmlu
ZyYgY3VzdG9tVW5kb0xhYmVsKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsg
fQorCiAgICAgUmVmUHRyPERvY3VtZW50PiBtX2RvY3VtZW50OwogICAgIFZpc2libGVTZWxlY3Rp
b24gbV9zdGFydGluZ1NlbGVjdGlvbjsKICAgICBWaXNpYmxlU2VsZWN0aW9uIG1fZW5kaW5nU2Vs
ZWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0b21VbmRvU3Rl
cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iODFhMzRkMmI4N2M0MTUyNWMyNDc0MWJhMTYwZDA5MGIyZTE3MjZjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0b21VbmRvU3RlcC5jcHAKQEAgLTAs
MCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJD
dXN0b21VbmRvU3RlcC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFZGl0
b3IuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIlVuZG9JdGVtLmgiCisjaW5jbHVk
ZSAiVW5kb01hbmFnZXIuaCIKKyNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitDdXN0b21VbmRvU3RlcDo6Q3VzdG9tVW5kb1N0ZXAoUmVmPERvY3VtZW50
PiYmIGRvY3VtZW50LCBSZWY8VW5kb0l0ZW0+JiYgdW5kb0l0ZW0pCisgICAgOiBtX2RvY3VtZW50
KFdURk1vdmUoZG9jdW1lbnQpKQorICAgICwgbV91bmRvSXRlbShXVEZNb3ZlKHVuZG9JdGVtKSkK
K3sKK30KKwordm9pZCBDdXN0b21VbmRvU3RlcDo6dW5hcHBseSgpCit7CisgICAgUmVmPEN1c3Rv
bVVuZG9TdGVwPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKKyAgICBkb2N1bWVudCgpLnVwZGF0ZUxh
eW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworCisgICAgYXV0byBwcm90ZWN0ZWRGcmFt
ZSA9IG1ha2VSZWZQdHIoZG9jdW1lbnQoKS5mcmFtZSgpKTsKKyAgICBpZiAoIXByb3RlY3RlZEZy
YW1lKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGSVhNRTogSXQncyBjdXJyZW50bHkgdW5j
bGVhciBob3cgYmVmb3JlaW5wdXQgYW5kIGlucHV0IGV2ZW50cyBzaG91bGQgYmUgZGlzcGF0Y2hl
ZCB3aGVuIHVuYXBwbHlpbmcgb3IgcmVhcHBseWluZyBjdXN0b20KKyAgICAvLyBlZGl0IGNvbW1h
bmRzLiBTaG91bGQgdGhlIHBhZ2UgYmUgYWxsb3dlZCB0byBzcGVjaWZ5IGEgdGFyZ2V0IGluIHRo
ZSBET00gZm9yIHVuZG8gYW5kIHJlZG8/IEZvciB0aGUgdGltZSBiZWluZywgZGlzcGF0Y2gKKyAg
ICAvLyB0aGVtIG9uIHRoZSBkb2N1bWVudCdzIGFjdGl2ZSBlbGVtZW50LgorICAgIGF1dG8gYWN0
aXZlRWxlbWVudCA9IG1ha2VSZWZQdHIoZG9jdW1lbnQoKS5hY3RpdmVFbGVtZW50KCkpOworICAg
IGlmICghYWN0aXZlRWxlbWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFwcm90ZWN0
ZWRGcmFtZS0+ZWRpdG9yKCkud2lsbFVuYXBwbHlFZGl0aW5nKCp0aGlzLCAqYWN0aXZlRWxlbWVu
dCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChhdXRvIGhhbmRsZXIgPSBpdGVtKCkudW5k
b0hhbmRsZXIoKSkKKyAgICAgICAgaGFuZGxlci0+aGFuZGxlRXZlbnQoKTsKKworICAgIHByb3Rl
Y3RlZEZyYW1lLT5lZGl0b3IoKS51bmFwcGxpZWRFZGl0aW5nKCp0aGlzLCAqYWN0aXZlRWxlbWVu
dCk7Cit9CisKK3ZvaWQgQ3VzdG9tVW5kb1N0ZXA6OnJlYXBwbHkoKQoreworICAgIFJlZjxDdXN0
b21VbmRvU3RlcD4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVM
YXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKworICAgIGF1dG8gcHJvdGVjdGVkRnJh
bWUgPSBtYWtlUmVmUHRyKGRvY3VtZW50KCkuZnJhbWUoKSk7CisgICAgaWYgKCFwcm90ZWN0ZWRG
cmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBhY3RpdmVFbGVtZW50ID0gbWFrZVJl
ZlB0cihkb2N1bWVudCgpLmFjdGl2ZUVsZW1lbnQoKSk7CisgICAgaWYgKCFhY3RpdmVFbGVtZW50
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXByb3RlY3RlZEZyYW1lLT5lZGl0b3IoKS53
aWxsUmVhcHBseUVkaXRpbmcoKnRoaXMsICphY3RpdmVFbGVtZW50KSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKGF1dG8gaGFuZGxlciA9IGl0ZW0oKS5yZWRvSGFuZGxlcigpKQorICAgICAg
ICBoYW5kbGVyLT5oYW5kbGVFdmVudCgpOworCisgICAgcHJvdGVjdGVkRnJhbWUtPmVkaXRvcigp
LnJlYXBwbGllZEVkaXRpbmcoKnRoaXMsICphY3RpdmVFbGVtZW50KTsKK30KKworY29uc3QgU3Ry
aW5nJiBDdXN0b21VbmRvU3RlcDo6Y3VzdG9tVW5kb0xhYmVsKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gaXRlbSgpLmxhYmVsKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODUwOGUzM2Q3NTZlMGZi
NTVmM2M4OTg2NTVmYmM0MDA4NDg2MzExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9DdXN0b21VbmRvU3RlcC5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlVuZG9TdGVwLmgiCisjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50OworY2xhc3MgVW5k
b0l0ZW07CisKK2NsYXNzIEN1c3RvbVVuZG9TdGVwIGZpbmFsIDogcHVibGljIFVuZG9TdGVwIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1c3RvbVVuZG9TdGVwPiBjcmVhdGUoUmVmPERvY3Vt
ZW50PiYmIGRvY3VtZW50LCBSZWY8VW5kb0l0ZW0+JiYgaXRlbSkKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEN1c3RvbVVuZG9TdGVwKFdURk1vdmUoZG9jdW1lbnQpLCBXVEZN
b3ZlKGl0ZW0pKSk7CisgICAgfQorCisgICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9kb2N1bWVudC5nZXQoKTsgfQorICAgIFVuZG9JdGVtJiBpdGVtKCkgY29uc3QgeyBy
ZXR1cm4gbV91bmRvSXRlbS5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIEN1c3RvbVVuZG9TdGVw
KFJlZjxEb2N1bWVudD4mJiwgUmVmPFVuZG9JdGVtPiYmKTsKKworICAgIHZvaWQgdW5hcHBseSgp
IGZpbmFsOworICAgIHZvaWQgcmVhcHBseSgpIGZpbmFsOworICAgIEVkaXRBY3Rpb24gZWRpdGlu
Z0FjdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIEVkaXRBY3Rpb246OkN1c3RvbUVkaXRDb21t
YW5kOyB9CisgICAgY29uc3QgU3RyaW5nJiBjdXN0b21VbmRvTGFiZWwoKSBjb25zdCBmaW5hbDsK
KworICAgIFJlZjxEb2N1bWVudD4gbV9kb2N1bWVudDsKKyAgICBSZWY8VW5kb0l0ZW0+IG1fdW5k
b0l0ZW07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0QWN0aW9uLmNwcAppbmRleCA0MTI1ZTM1MDc4ZjI1YTZlZGNmOGUxZDY4OTk0NzU0NzRlOTYy
ZTNhLi5lYzFmYzVmZjQxMGIyZDA3NTJkYjE0ZmRiMTVkMTkzMDU0ZjY5MmI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5jcHAKQEAgLTM3LDYgKzM3LDcgQEAgU3RyaW5nIG5hbWVG
b3JVbmRvUmVkbyhFZGl0QWN0aW9uIGVkaXRBY3Rpb24pCiAgICAgY2FzZSBFZGl0QWN0aW9uOjpJ
bnNlcnQ6CiAgICAgY2FzZSBFZGl0QWN0aW9uOjpJbnNlcnRSZXBsYWNlbWVudDoKICAgICBjYXNl
IEVkaXRBY3Rpb246Okluc2VydEZyb21Ecm9wOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6Q3VzdG9t
RWRpdENvbW1hbmQ6CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgY2FzZSBFZGl0QWN0aW9uOjpT
ZXRDb2xvcjoKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJTZXQgQ29sb3IiLCAi
U2V0IENvbG9yIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5oCmluZGV4IGI2YzQ1ZGFmODQ2YTY0OWUwMmUyOTQ1YzEy
YzhiY2ZlYWQ2MGI3NmQuLjc2ZWNkNTVmYjBkOWJjNjA5NmYwMTRmYjRkY2MxYjQ5MmJmMzU1OTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5oCkBAIC05Miw3ICs5Miw4IEBAIGVudW0g
Y2xhc3MgRWRpdEFjdGlvbiA6IHVpbnQ4X3QgewogICAgIENvbnZlcnRUb1Vub3JkZXJlZExpc3Qs
CiAgICAgSW5kZW50LAogICAgIE91dGRlbnQsCi0gICAgSW5zZXJ0RWRpdGFibGVJbWFnZQorICAg
IEluc2VydEVkaXRhYmxlSW1hZ2UsCisgICAgQ3VzdG9tRWRpdENvbW1hbmQKIH07CiAKIFdFQkNP
UkVfRVhQT1JUIFdURjo6U3RyaW5nIG5hbWVGb3JVbmRvUmVkbyhFZGl0QWN0aW9uKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAppbmRleCBiMzhjMTUwOWVlOTc5YmU5ZTQw
ZmUzYmFkMjkwZDQ3NDI2NjAwMDZjLi42YmJmMDE0MzA0YjQ4Yzc3NTFlYzk4Y2NiMjYyYjhhOWEz
MDcwYzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCkBAIC00NSw2
ICs0NSw3IEBACiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIk5vZGVUcmF2ZXJzYWwuaCIK
ICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCisjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgog
I2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU3R5bGVGb250U2l6ZUZ1bmN0aW9u
cy5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCmluZGV4IDU4NTRhZWI1NWEwZjI0ZDg1ODU1ZWVkMTI2MGUzZTNkOTRlYWYwYTMuLjFiZmVh
OWNkOTk2NzdiZTA3MmJhOGMzYzk4ZGE4ZmUwNjQ4ZWU5ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJDbGlwYm9hcmRFdmVudC5oIgog
I2luY2x1ZGUgIkNvbXBvc2l0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJDcmVhdGVMaW5rQ29tbWFu
ZC5oIgorI2luY2x1ZGUgIkN1c3RvbVVuZG9TdGVwLmgiCiAjaW5jbHVkZSAiRGF0YVRyYW5zZmVy
LmgiCiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRpY3Rh
dGlvbkFsdGVybmF0aXZlLmgiCkBAIC0xMTUwLDYgKzExNTEsNDYgQEAgdm9pZCBFZGl0b3I6OnVu
YXBwbGllZEVkaXRpbmcoRWRpdENvbW1hbmRDb21wb3NpdGlvbiYgY29tcG9zaXRpb24pCiAgICAg
cmVzcG9uZFRvQ2hhbmdlZENvbnRlbnRzKG5ld1NlbGVjdGlvbik7CiB9CiAKK2Jvb2wgRWRpdG9y
Ojp3aWxsVW5hcHBseUVkaXRpbmcoY29uc3QgQ3VzdG9tVW5kb1N0ZXAmIHVuZG9TdGVwLCBFbGVt
ZW50JiB0YXJnZXQpIGNvbnN0Cit7CisgICAgaWYgKCZkb2N1bWVudCgpICE9ICZ1bmRvU3RlcC5k
b2N1bWVudCgpKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIGRpc3BhdGNoQmVmb3JlSW5wdXRFdmVudHMo
JnRhcmdldCwgbnVsbHB0ciwgImhpc3RvcnlVbmRvIik7Cit9CisKK2Jvb2wgRWRpdG9yOjp3aWxs
UmVhcHBseUVkaXRpbmcoY29uc3QgQ3VzdG9tVW5kb1N0ZXAmIHVuZG9TdGVwLCBFbGVtZW50JiB0
YXJnZXQpIGNvbnN0Cit7CisgICAgaWYgKCZkb2N1bWVudCgpICE9ICZ1bmRvU3RlcC5kb2N1bWVu
dCgpKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorCisgICAgcmV0dXJuIGRpc3BhdGNoQmVmb3JlSW5wdXRFdmVudHMoJnRhcmdl
dCwgbnVsbHB0ciwgImhpc3RvcnlSZWRvIik7Cit9CisKK3ZvaWQgRWRpdG9yOjp1bmFwcGxpZWRF
ZGl0aW5nKEN1c3RvbVVuZG9TdGVwJiB1bmRvU3RlcCwgRWxlbWVudCYgdGFyZ2V0KQoreworICAg
IGlmICgmZG9jdW1lbnQoKSAhPSAmdW5kb1N0ZXAuZG9jdW1lbnQoKSkgeworICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRpc3BhdGNo
SW5wdXRFdmVudHMoJnRhcmdldCwgbnVsbHB0ciwgImhpc3RvcnlVbmRvIik7Cit9CisKK3ZvaWQg
RWRpdG9yOjpyZWFwcGxpZWRFZGl0aW5nKEN1c3RvbVVuZG9TdGVwJiB1bmRvU3RlcCwgRWxlbWVu
dCYgdGFyZ2V0KQoreworICAgIGlmICgmZG9jdW1lbnQoKSAhPSAmdW5kb1N0ZXAuZG9jdW1lbnQo
KSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGRpc3BhdGNoSW5wdXRFdmVudHMoJnRhcmdldCwgbnVsbHB0ciwgImhpc3RvcnlS
ZWRvIik7Cit9CisKIGJvb2wgRWRpdG9yOjp3aWxsUmVhcHBseUVkaXRpbmcoY29uc3QgRWRpdENv
bW1hbmRDb21wb3NpdGlvbiYgY29tcG9zaXRpb24pIGNvbnN0CiB7CiAgICAgcmV0dXJuIGRpc3Bh
dGNoQmVmb3JlSW5wdXRFdmVudHMoY29tcG9zaXRpb24uc3RhcnRpbmdSb290RWRpdGFibGVFbGVt
ZW50KCksIGNvbXBvc2l0aW9uLmVuZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgImhpc3RvcnlS
ZWRvIik7CkBAIC0xNzQwLDYgKzE3ODEsMTMgQEAgdm9pZCBFZGl0b3I6OnJlZG8oKQogICAgICAg
ICBjbGllbnQoKS0+cmVkbygpOwogfQogCit2b2lkIEVkaXRvcjo6cmVnaXN0ZXJDdXN0b21VbmRv
U3RlcChSZWY8Q3VzdG9tVW5kb1N0ZXA+JiYgdW5kb1N0ZXApCit7CisgICAgQVNTRVJUKFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudW5kb01hbmFnZXJBUElFbmFibGVk
KCkpOworICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKKyAgICAgICAgY2xp
ZW50LT5yZWdpc3RlclVuZG9TdGVwKFdURk1vdmUodW5kb1N0ZXApKTsKK30KKwogdm9pZCBFZGl0
b3I6OmRpZEJlZ2luRWRpdGluZygpCiB7CiAgICAgaWYgKGNsaWVudCgpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmgKaW5kZXggMDVjYzFiODJhZWFjMTQwYjQwOTMwZGY2ZjM3ZWE1NDk1NWM2M2Y0Ni4u
ZmQzZWU1NjQ5ZGRlNDRjYzc4NGIxYmUzNjBmYTk5NWEzYjVmZWM4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5oCkBAIC01OCw2ICs1OCw3IEBAIGNsYXNzIEFsdGVybmF0aXZlVGV4dENvbnRyb2xs
ZXI7CiBjbGFzcyBBcmNoaXZlUmVzb3VyY2U7CiBjbGFzcyBEYXRhVHJhbnNmZXI7CiBjbGFzcyBD
b21wb3NpdGVFZGl0Q29tbWFuZDsKK2NsYXNzIEN1c3RvbVVuZG9TdGVwOwogY2xhc3MgRGVsZXRl
QnV0dG9uQ29udHJvbGxlcjsKIGNsYXNzIEVkaXRDb21tYW5kOwogY2xhc3MgRWRpdENvbW1hbmRD
b21wb3NpdGlvbjsKQEAgLTIzNiwxMCArMjM3LDE0IEBAIHB1YmxpYzoKICAgICBib29sIHdpbGxB
cHBseUVkaXRpbmcoQ29tcG9zaXRlRWRpdENvbW1hbmQmLCBWZWN0b3I8UmVmUHRyPFN0YXRpY1Jh
bmdlPj4mJikgY29uc3Q7CiAgICAgYm9vbCB3aWxsVW5hcHBseUVkaXRpbmcoY29uc3QgRWRpdENv
bW1hbmRDb21wb3NpdGlvbiYpIGNvbnN0OwogICAgIGJvb2wgd2lsbFJlYXBwbHlFZGl0aW5nKGNv
bnN0IEVkaXRDb21tYW5kQ29tcG9zaXRpb24mKSBjb25zdDsKKyAgICBib29sIHdpbGxVbmFwcGx5
RWRpdGluZyhjb25zdCBDdXN0b21VbmRvU3RlcCYsIEVsZW1lbnQmIHRhcmdldCkgY29uc3Q7Cisg
ICAgYm9vbCB3aWxsUmVhcHBseUVkaXRpbmcoY29uc3QgQ3VzdG9tVW5kb1N0ZXAmLCBFbGVtZW50
JiB0YXJnZXQpIGNvbnN0OwogCiAgICAgdm9pZCBhcHBsaWVkRWRpdGluZyhDb21wb3NpdGVFZGl0
Q29tbWFuZCYpOwogICAgIHZvaWQgdW5hcHBsaWVkRWRpdGluZyhFZGl0Q29tbWFuZENvbXBvc2l0
aW9uJik7CiAgICAgdm9pZCByZWFwcGxpZWRFZGl0aW5nKEVkaXRDb21tYW5kQ29tcG9zaXRpb24m
KTsKKyAgICB2b2lkIHVuYXBwbGllZEVkaXRpbmcoQ3VzdG9tVW5kb1N0ZXAmLCBFbGVtZW50JiB0
YXJnZXQpOworICAgIHZvaWQgcmVhcHBsaWVkRWRpdGluZyhDdXN0b21VbmRvU3RlcCYsIEVsZW1l
bnQmIHRhcmdldCk7CiAgICAgdm9pZCB1bmFwcGxpZWRTcGVsbENvcnJlY3Rpb24oY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uT2ZDb3JyZWN0ZWQsIGNvbnN0IFN0cmluZyYgY29ycmVj
dGVkLCBjb25zdCBTdHJpbmcmIGNvcnJlY3Rpb24pOwogCiAgICAgLy8gVGhpcyBpcyBvZmYgYnkg
ZGVmYXVsdCwgc2luY2UgbW9zdCBlZGl0b3JzIHdhbnQgdGhpcyBiZWhhdmlvciAob3JpZ2luYWxs
eSBtYXRjaGVkIElFIGJ1dCBub3QgRmlyZWZveCkuCkBAIC0zMjQsNiArMzI5LDggQEAgcHVibGlj
OgogICAgIGJvb2wgY2FuUmVkbygpIGNvbnN0OwogICAgIHZvaWQgcmVkbygpOwogCisgICAgdm9p
ZCByZWdpc3RlckN1c3RvbVVuZG9TdGVwKFJlZjxDdXN0b21VbmRvU3RlcD4mJik7CisKICAgICB2
b2lkIGRpZEJlZ2luRWRpdGluZygpOwogICAgIHZvaWQgZGlkRW5kRWRpdGluZygpOwogICAgIHZv
aWQgd2lsbFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKFJhbmdlKik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEVkaXRhYmxlSW1hZ2VDb21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0RWRpdGFibGVJbWFnZUNvbW1hbmQuY3BwCmluZGV4
IDU1ZDExODRjNzgwN2M3ZTA5YTRjNWY2NmU1Njc5MmVjMThhMzZhMjYuLmQ5YWZhNTZlNmNjY2Fm
MDkyYmIzZGE1MjI4NmZhZGUxOTJiNjliZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0RWRpdGFibGVJbWFnZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0RWRpdGFibGVJbWFnZUNvbW1hbmQuY3BwCkBAIC00OSwxMCArNDksMTAg
QEAgdm9pZCBJbnNlcnRFZGl0YWJsZUltYWdlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIG1faW1hZ2VFbGVtZW50ID0gSFRNTEltYWdlRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KCkpOwotICAgIG1faW1hZ2VFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hy
b25pemF0aW9uKHhfYXBwbGVfZWRpdGFibGVfaW1hZ2VBdHRyLCBlbXB0eUF0b20oKSk7Ci0gICAg
bV9pbWFnZUVsZW1lbnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24od2lkdGhB
dHRyLCBBdG9taWNTdHJpbmcoIjEwMCUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7Ci0gICAgbV9pbWFnZUVsZW1lbnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6
YXRpb24oaGVpZ2h0QXR0ciwgQXRvbWljU3RyaW5nKCIzMDBweCIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBtX2ltYWdlRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihzdHlsZUF0dHIsIEF0b21pY1N0cmluZygiZGlzcGxheTogYmxv
Y2siLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgbV9pbWFnZUVs
ZW1lbnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjp4X2Fw
cGxlX2VkaXRhYmxlX2ltYWdlQXR0ciwgZW1wdHlBdG9tKCkpOworICAgIG1faW1hZ2VFbGVtZW50
LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6d2lkdGhBdHRy
LCBBdG9taWNTdHJpbmcoIjEwMCUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CisgICAgbV9pbWFnZUVsZW1lbnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oSFRNTE5hbWVzOjpoZWlnaHRBdHRyLCBBdG9taWNTdHJpbmcoIjMwMHB4IiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIG1faW1hZ2VFbGVtZW50LT5zZXRBdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6c3R5bGVBdHRyLCBBdG9taWNT
dHJpbmcoImRpc3BsYXk6IGJsb2NrIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogCiAgICAgaW5zZXJ0Tm9kZUF0KCptX2ltYWdlRWxlbWVudCwgZW5kaW5nU2VsZWN0aW9u
KCkuc3RhcnQoKSk7CiAgICAgc2V0RW5kaW5nU2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbkFmdGVy
Tm9kZSgqbV9pbWFnZUVsZW1lbnQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVW5kb1N0ZXAuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVW5kb1N0ZXAuaAppbmRleCAw
MGMxNzAwMTA3YjJjYzc5Y2MxMzI2NzlkODk4ZDcwNWJhNzg3ZTc4Li4zNDkwZmZmODk4YmE2MzU4
YmIzN2E1OGFjYzI2YzM0NDk3YjUyNDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1VuZG9TdGVwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9VbmRvU3RlcC5oCkBA
IC0zMiw2ICszMiw3IEBACiAKICNpbmNsdWRlICJFZGl0QWN0aW9uLmgiCiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC00Miw2ICs0Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgdW5hcHBseSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVhcHBseSgpID0gMDsKICAgICB2
aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IGNvbnN0IFN0cmluZyYgY3VzdG9tVW5kb0xhYmVsKCkgY29uc3QgPSAwOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRl
eCA0OTI1MjRiMjNlZWQ4MWZlZGY2OGVkNjViN2FlODg4N2I1NWFjMzY0Li4xZjcyOTUxMDgwMTEw
Nzg2NTFmOWJlMWVlNDM1ZGU5NzY1M2ZmOWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmNwcApAQCAtMTg1LDggKzE4NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0
Q2FuZGlkYXRlc0ZvclNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgZmluYWwgeyB9
CiAgICAgdm9pZCBoYW5kbGVBY2NlcHRlZENhbmRpZGF0ZVdpdGhTb2Z0U3BhY2VzKFRleHRDaGVj
a2luZ1Jlc3VsdCkgZmluYWwgeyB9CiAKLSAgICB2b2lkIHJlZ2lzdGVyVW5kb1N0ZXAoVW5kb1N0
ZXAmKSBmaW5hbDsKLSAgICB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoVW5kb1N0ZXAmKSBmaW5hbDsK
KyAgICB2b2lkIHJlZ2lzdGVyVW5kb1N0ZXAoUmVmPFVuZG9TdGVwPiYmKSBmaW5hbDsKKyAgICB2
b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoUmVmPFVuZG9TdGVwPiYmKSBmaW5hbDsKICAgICB2b2lkIGNs
ZWFyVW5kb1JlZG9PcGVyYXRpb25zKCkgZmluYWwgeyB9CiAKICAgICBib29sIGNhbkNvcHlDdXQo
RnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgY29uc3QgZmluYWwgeyByZXR1cm4gZGVmYXVsdFZh
bHVlOyB9CkBAIC01MDYsMTEgKzUwNiwxMSBAQCB2b2lkIEVtcHR5RWRpdG9yQ2xpZW50OjpFbXB0
eVRleHRDaGVja2VyQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhUZXh0Q2hlYwogewog
fQogCi12b2lkIEVtcHR5RWRpdG9yQ2xpZW50OjpyZWdpc3RlclVuZG9TdGVwKFVuZG9TdGVwJikK
K3ZvaWQgRW1wdHlFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyVW5kb1N0ZXAoUmVmPFVuZG9TdGVwPiYm
KQogewogfQogCi12b2lkIEVtcHR5RWRpdG9yQ2xpZW50OjpyZWdpc3RlclJlZG9TdGVwKFVuZG9T
dGVwJikKK3ZvaWQgRW1wdHlFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyUmVkb1N0ZXAoUmVmPFVuZG9T
dGVwPiYmKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNs
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAppbmRleCAzN2JmMTgy
M2E5OGMyZDllNTJmM2QwMmNiZjViY2ZmYWVlMzU4YzQ0Li5hYmJmNTgyOWMxN2RjYWU5N2QwNGIy
Y2NmYjRlMGRkMzM0NGQ0MmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRv
ckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKQEAgLTEw
NCw4ICsxMDQsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbGVkQ29tcG9zaXRp
b24oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZUNvbXBvc2l0aW9uKCkgPSAwOwog
Ci0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyVW5kb1N0ZXAoVW5kb1N0ZXAmKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoVW5kb1N0ZXAmKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHJlZ2lzdGVyVW5kb1N0ZXAoUmVmPFVuZG9TdGVwPiYmKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoUmVmPFVuZG9TdGVwPiYmKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGNsZWFyVW5kb1JlZG9PcGVyYXRpb25zKCkgPSAwOwogCiAgICAgdmlydHVhbCBib29s
IGNhbkNvcHlDdXQoRnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgY29uc3QgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvSXRlbS5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9VbmRvSXRlbS5oCmluZGV4IDJhNmUyNTE2YTFhOGQ3NWUxMGY2N2Y2MmU1M2U4NGUzNWVhN2M2
ZmMuLjk0YTg0ZTM3Y2IzMzcyOTgzNjk3OTViZWM3YTg4MzkxOTJmMmNlY2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb0l0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1VuZG9JdGVtLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIK
ICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
I2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
VW5kb01hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvTWFuYWdlci5jcHAKaW5k
ZXggYWM4NjYwMGJhZmQ4MDBlZTAyYTIyMzVkZDJiZjhlZDlmYTk5ZTU1NS4uZjRkZDUwMjc2M2Nk
ODYwNTU5MTQ4YjRkODRlODY3NmIwMGZmYzljNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9VbmRvTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvTWFuYWdl
ci5jcHAKQEAgLTI2LDE0ICsyNiwxNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IlVuZG9NYW5hZ2VyLmgiCiAKKyNpbmNsdWRlICJDdXN0b21VbmRvU3RlcC5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiVW5kb0l0ZW0uaCIKKyNpbmNsdWRlICJFZGl0b3IuaCIK
KyNpbmNsdWRlICJGcmFtZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgVW5kb01h
bmFnZXI6OmFkZEl0ZW0oUmVmPFVuZG9JdGVtPiYmIGl0ZW0pCiB7Ci0gICAgVU5VU0VEX1BBUkFN
KGl0ZW0pOworICAgIGlmIChhdXRvIGZyYW1lID0gbWFrZVJlZlB0cihtX2RvY3VtZW50LmZyYW1l
KCkpKQorICAgICAgICBmcmFtZS0+ZWRpdG9yKCkucmVnaXN0ZXJDdXN0b21VbmRvU3RlcChDdXN0
b21VbmRvU3RlcDo6Y3JlYXRlKG1fZG9jdW1lbnQsIFdURk1vdmUoaXRlbSkpKTsKIH0KIAogdm9p
ZCBVbmRvTWFuYWdlcjo6dW5kbygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlZpZXdJbXBsLm1tCmluZGV4IDc3MTk3MmIxYWM4MWU5NjY1YjdjZTRhNmE4YzNkNjBkYzM1NmI5
NTcuLjBiNzNlZjI5ZDVhMWQ0NWFjZDYwNGYxNDU4ZTQ3YmM1ZjlmOWQwM2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0yNjc3LDcgKzI2Nzcs
NyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpleGVjdXRlRWRpdENvbW1hbmRGb3JTZWxlY3RvcihTRUwg
c2VsZWN0b3IsIGNvbnN0IFN0cmluZyYgYXJndQogCiB2b2lkIFdlYlZpZXdJbXBsOjpyZWdpc3Rl
ckVkaXRDb21tYW5kKFJlZjxXZWJFZGl0Q29tbWFuZFByb3h5PiYmIGNvbW1hbmQsIFVuZG9PclJl
ZG8gdW5kb09yUmVkbykKIHsKLSAgICBhdXRvIGFjdGlvbk5hbWUgPSBXZWJDb3JlOjpuYW1lRm9y
VW5kb1JlZG8oY29tbWFuZC0+ZWRpdEFjdGlvbigpKTsKKyAgICBhdXRvIGFjdGlvbk5hbWUgPSBj
b21tYW5kLT5uYW1lRm9yVW5kb1JlZG8oKTsKICAgICBhdXRvIGNvbW1hbmRPYmpDID0gYWRvcHRO
UyhbW1dLRWRpdENvbW1hbmQgYWxsb2NdIGluaXRXaXRoV2ViRWRpdENvbW1hbmRQcm94eTpXVEZN
b3ZlKGNvbW1hbmQpXSk7CiAKICAgICBOU1VuZG9NYW5hZ2VyICp1bmRvTWFuYWdlciA9IFttX3Zp
ZXcgdW5kb01hbmFnZXJdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
RWRpdENvbW1hbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29t
bWFuZFByb3h5LmNwcAppbmRleCA5ZjgzZTNjMTlkODZjOWYyMzUzYTdlOTU3NjEwYTFlYTVkODU4
NGIyLi45M2ViY2JkN2EzMDU3NTRmYzY4ZTU3NGFhYTY0YTJlN2ZmN2FhMzU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNwcApAQCAtMzYsOSAr
MzYsMTAgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
LVdlYkVkaXRDb21tYW5kUHJveHk6OldlYkVkaXRDb21tYW5kUHJveHkoV2ViVW5kb1N0ZXBJRCBj
b21tYW5kSUQsIFdlYkNvcmU6OkVkaXRBY3Rpb24gZWRpdEFjdGlvbiwgV2ViUGFnZVByb3h5KiBw
YWdlKQorV2ViRWRpdENvbW1hbmRQcm94eTo6V2ViRWRpdENvbW1hbmRQcm94eShXZWJVbmRvU3Rl
cElEIGNvbW1hbmRJRCwgV2ViQ29yZTo6RWRpdEFjdGlvbiBlZGl0QWN0aW9uLCBjb25zdCBTdHJp
bmcmIGN1c3RvbVVuZG9MYWJlbCwgV2ViUGFnZVByb3h5KiBwYWdlKQogICAgIDogbV9jb21tYW5k
SUQoY29tbWFuZElEKQogICAgICwgbV9lZGl0QWN0aW9uKGVkaXRBY3Rpb24pCisgICAgLCBtX2N1
c3RvbVVuZG9MYWJlbChjdXN0b21VbmRvTGFiZWwpCiAgICAgLCBtX3BhZ2UocGFnZSkKIHsKICAg
ICBtX3BhZ2UtPmFkZEVkaXRDb21tYW5kKCp0aGlzKTsKQEAgLTY4LDQgKzY5LDkgQEAgdm9pZCBX
ZWJFZGl0Q29tbWFuZFByb3h5OjpyZWFwcGx5KCkKICAgICBtX3BhZ2UtPnJlZ2lzdGVyRWRpdENv
bW1hbmQoKnRoaXMsIFVuZG9PclJlZG86OlVuZG8pOwogfQogCitTdHJpbmcgV2ViRWRpdENvbW1h
bmRQcm94eTo6bmFtZUZvclVuZG9SZWRvKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jdXN0b21V
bmRvTGFiZWwuaXNFbXB0eSgpID8gV2ViQ29yZTo6bmFtZUZvclVuZG9SZWRvKG1fZWRpdEFjdGlv
bikgOiBtX2N1c3RvbVVuZG9MYWJlbDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmgKaW5kZXggNzE2Y2I1
OGY0MDNkZDgyMzE5NmY4NjQyZjc1ZjRkZjNkNzFhYThjYS4uMmU5YzI0ZjYzZWJiMTk3ZmFhMjJl
MDI5OWVkMTg2NDM1YzgxZjM1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViRWRpdENvbW1hbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVk
aXRDb21tYW5kUHJveHkuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CkBAIC0zOCwxNCArMzksMTUgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogCiBjbGFzcyBXZWJFZGl0
Q29tbWFuZFByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6
RWRpdENvbW1hbmRQcm94eT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViRWRpdENvbW1h
bmRQcm94eT4gY3JlYXRlKFdlYlVuZG9TdGVwSUQgY29tbWFuZElELCBXZWJDb3JlOjpFZGl0QWN0
aW9uIGVkaXRBY3Rpb24sIFdlYlBhZ2VQcm94eSogcGFnZSkKKyAgICBzdGF0aWMgUmVmPFdlYkVk
aXRDb21tYW5kUHJveHk+IGNyZWF0ZShXZWJVbmRvU3RlcElEIGNvbW1hbmRJRCwgV2ViQ29yZTo6
RWRpdEFjdGlvbiBlZGl0QWN0aW9uLCBjb25zdCBTdHJpbmcmIGN1c3RvbVVuZG9MYWJlbCwgV2Vi
UGFnZVByb3h5KiBwYWdlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2Vi
RWRpdENvbW1hbmRQcm94eShjb21tYW5kSUQsIGVkaXRBY3Rpb24sIHBhZ2UpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViRWRpdENvbW1hbmRQcm94eShjb21tYW5kSUQsIGVkaXRB
Y3Rpb24sIGN1c3RvbVVuZG9MYWJlbCwgcGFnZSkpOwogICAgIH0KICAgICB+V2ViRWRpdENvbW1h
bmRQcm94eSgpOwogCiAgICAgV2ViVW5kb1N0ZXBJRCBjb21tYW5kSUQoKSBjb25zdCB7IHJldHVy
biBtX2NvbW1hbmRJRDsgfQogICAgIFdlYkNvcmU6OkVkaXRBY3Rpb24gZWRpdEFjdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fZWRpdEFjdGlvbjsgfQorICAgIFN0cmluZyBuYW1lRm9yVW5kb1JlZG8o
KSBjb25zdDsKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpIHsgbV9wYWdlID0gMDsgfQogCkBAIC01
MywxMCArNTUsMTEgQEAgcHVibGljOgogICAgIHZvaWQgcmVhcHBseSgpOwogCiBwcml2YXRlOgot
ICAgIFdlYkVkaXRDb21tYW5kUHJveHkoV2ViVW5kb1N0ZXBJRCBjb21tYW5kSUQsIFdlYkNvcmU6
OkVkaXRBY3Rpb24sIFdlYlBhZ2VQcm94eSopOworICAgIFdlYkVkaXRDb21tYW5kUHJveHkoV2Vi
VW5kb1N0ZXBJRCBjb21tYW5kSUQsIFdlYkNvcmU6OkVkaXRBY3Rpb24sIGNvbnN0IFN0cmluZyYg
Y3VzdG9tVW5kb0xhYmVsLCBXZWJQYWdlUHJveHkqKTsKIAogICAgIFdlYlVuZG9TdGVwSUQgbV9j
b21tYW5kSUQ7CiAgICAgV2ViQ29yZTo6RWRpdEFjdGlvbiBtX2VkaXRBY3Rpb247CisgICAgU3Ry
aW5nIG1fY3VzdG9tVW5kb0xhYmVsOwogICAgIFdlYlBhZ2VQcm94eSogbV9wYWdlOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZTczYzI3Njk1ZTgz
OGJkZWE2ZjkyYTljNmRiMmJhOGZkM2ExNjY5YS4uZGM1NWQ4MGUxNDNmZDBiY2UwOTMzZjYyNzZm
OWQxMzFiZDVjMDcyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CkBAIC01MzQwLDkgKzUzNDAsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29tcG9zaXRpb25XYXND
YW5jZWxlZCgpCiAKIC8vIFVuZG8gbWFuYWdlbWVudAogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVn
aXN0ZXJFZGl0Q29tbWFuZEZvclVuZG8oV2ViVW5kb1N0ZXBJRCBjb21tYW5kSUQsIHVpbnQzMl90
IGVkaXRBY3Rpb24pCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVnaXN0ZXJFZGl0Q29tbWFuZEZvclVu
ZG8oV2ViVW5kb1N0ZXBJRCBjb21tYW5kSUQsIHVpbnQzMl90IGVkaXRBY3Rpb24sIGNvbnN0IFN0
cmluZyYgY3VzdG9tVW5kb0xhYmVsKQogewotICAgIHJlZ2lzdGVyRWRpdENvbW1hbmQoV2ViRWRp
dENvbW1hbmRQcm94eTo6Y3JlYXRlKGNvbW1hbmRJRCwgc3RhdGljX2Nhc3Q8RWRpdEFjdGlvbj4o
ZWRpdEFjdGlvbiksIHRoaXMpLCBVbmRvT3JSZWRvOjpVbmRvKTsKKyAgICByZWdpc3RlckVkaXRD
b21tYW5kKFdlYkVkaXRDb21tYW5kUHJveHk6OmNyZWF0ZShjb21tYW5kSUQsIHN0YXRpY19jYXN0
PEVkaXRBY3Rpb24+KGVkaXRBY3Rpb24pLCBjdXN0b21VbmRvTGFiZWwsIHRoaXMpLCBVbmRvT3JS
ZWRvOjpVbmRvKTsKIH0KICAgICAKIHZvaWQgV2ViUGFnZVByb3h5OjpyZWdpc3Rlckluc2VydGlv
blVuZG9Hcm91cGluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4
IDlkNjIxY2ZmOWQwYzBiNDcwMzc3YWViZDAyY2RlN2E4MGE3NTZjMDYuLmU0ZjlmYzNmYWY4ZTk5
MTQ5M2IxYjNkZTk2ODY1MDk2ZDFmMTIzMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCkBAIC0xNjE1LDcgKzE2MTUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYmFja0Zv
cndhcmRDbGVhcigpOwogCiAgICAgLy8gVW5kbyBtYW5hZ2VtZW50Ci0gICAgdm9pZCByZWdpc3Rl
ckVkaXRDb21tYW5kRm9yVW5kbyhXZWJVbmRvU3RlcElEIGNvbW1hbmRJRCwgdWludDMyX3QgZWRp
dEFjdGlvbik7CisgICAgdm9pZCByZWdpc3RlckVkaXRDb21tYW5kRm9yVW5kbyhXZWJVbmRvU3Rl
cElEIGNvbW1hbmRJRCwgdWludDMyX3QgZWRpdEFjdGlvbiwgY29uc3QgU3RyaW5nJiBjdXN0b21V
bmRvTGFiZWwpOwogICAgIHZvaWQgcmVnaXN0ZXJJbnNlcnRpb25VbmRvR3JvdXBpbmcoKTsKICAg
ICB2b2lkIGNsZWFyQWxsRWRpdENvbW1hbmRzKCk7CiAgICAgdm9pZCBjYW5VbmRvUmVkbyhVbmRv
T3JSZWRvLCBib29sJiByZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGNmNDBmZGNiMGU1ZDFlZDBlMTc2ZGIyOTZjMjMw
MzEzZWNiZGM5YjcuLjg0NWY5MDc4MGM3NmJlNTdjOGFiOGU3YWE1YjQwNDE2MDgxZTgyM2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
QEAgLTIzMyw3ICsyMzMsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIFdpbGxH
b1RvQmFja0ZvcndhcmRMaXN0SXRlbShzdHJ1Y3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRl
bnRpZmllciBpdGVtSUQsIGJvb2wgaW5QYWdlQ2FjaGUpCiAKICAgICAjIFVuZG8vUmVkbyBtZXNz
YWdlcwotICAgIFJlZ2lzdGVyRWRpdENvbW1hbmRGb3JVbmRvKHVpbnQ2NF90IGNvbW1hbmRJRCwg
dWludDMyX3QgZWRpdEFjdGlvbikKKyAgICBSZWdpc3RlckVkaXRDb21tYW5kRm9yVW5kbyh1aW50
NjRfdCBjb21tYW5kSUQsIHVpbnQzMl90IGVkaXRBY3Rpb24sIFN0cmluZyBjdXN0b21VbmRvTGFi
ZWwpCiAgICAgQ2xlYXJBbGxFZGl0Q29tbWFuZHMoKQogICAgIFJlZ2lzdGVySW5zZXJ0aW9uVW5k
b0dyb3VwaW5nKCkKICAgICBDYW5VbmRvUmVkbyhlbnVtOmJvb2wgV2ViS2l0OjpVbmRvT3JSZWRv
IHVuZG9PclJlZG8pIC0+IChib29sIHJlc3VsdCkgTGVnYWN5U3luYwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IDViYmM4MzI5ZTk4
ODVkOTRhOGM2YzRkZDI5OTU5YzI4OTIwNjU5NzcuLmQwMDU5ODY5OTc4NzBiNDgyNjBmZTRkYzNi
ODViOWNkNzhmYTY5NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MubW0KQEAgLTI2NSw3ICsyNjUsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBs
OjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgVmlld3BvcnRBdHRyaWJ1dGVzJikK
IAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVnaXN0ZXJFZGl0Q29tbWFuZChSZWY8V2ViRWRpdENv
bW1hbmRQcm94eT4mJiBjb21tYW5kLCBVbmRvT3JSZWRvIHVuZG9PclJlZG8pCiB7Ci0gICAgYXV0
byBhY3Rpb25OYW1lID0gV2ViQ29yZTo6bmFtZUZvclVuZG9SZWRvKGNvbW1hbmQtPmVkaXRBY3Rp
b24oKSk7CisgICAgYXV0byBhY3Rpb25OYW1lID0gY29tbWFuZC0+bmFtZUZvclVuZG9SZWRvKCk7
CiAgICAgYXV0byBjb21tYW5kT2JqQyA9IGFkb3B0TlMoW1tXS0VkaXRDb21tYW5kIGFsbG9jXSBp
bml0V2l0aFdlYkVkaXRDb21tYW5kUHJveHk6V1RGTW92ZShjb21tYW5kKV0pOwogICAgIAogICAg
IE5TVW5kb01hbmFnZXIgKnVuZG9NYW5hZ2VyID0gW21fY29udGVudFZpZXcgdW5kb01hbmFnZXJd
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRleCAwMDk0ZTM1NmQ1MTRiODc3ZGIxZjMwYjZhNjhl
ZDJkNzNjOWYxMzU3Li44YjlmYWI1MDlhOTk1NGIwMTUyNjViNGM1YjZiMGQ5MjFjMjljNzYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtMzAyLDIyICszMDIsMjMgQEAgU3RyaW5nIFdlYkVk
aXRvckNsaWVudDo6cmVwbGFjZW1lbnRVUkxGb3JSZXNvdXJjZShSZWY8V2ViQ29yZTo6U2hhcmVk
QnVmZmVyPiYmIHIKICAgICByZXR1cm4gbV9wYWdlLT5pbmplY3RlZEJ1bmRsZUVkaXRvckNsaWVu
dCgpLnJlcGxhY2VtZW50VVJMRm9yUmVzb3VyY2UoKm1fcGFnZSwgV1RGTW92ZShyZXNvdXJjZURh
dGEpLCBtaW1lVHlwZSk7CiB9CiAKLXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZWdpc3RlclVuZG9T
dGVwKFVuZG9TdGVwJiBzdGVwKQordm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyVW5kb1N0
ZXAoUmVmPFVuZG9TdGVwPiYmIHN0ZXApCiB7CiAgICAgLy8gRklYTUU6IEFkZCBhc3NlcnRpb24g
dGhhdCB0aGUgY29tbWFuZCBiZWluZyByZWFwcGxpZWQgaXMgdGhlIHNhbWUgY29tbWFuZCB0aGF0
IGlzCiAgICAgLy8gYmVpbmcgcGFzc2VkIHRvIHVzLgogICAgIGlmIChtX3BhZ2UtPmlzSW5SZWRv
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gd2ViU3RlcCA9IFdlYlVuZG9TdGVwOjpj
cmVhdGUoc3RlcCk7CisgICAgYXV0byBlZGl0QWN0aW9uID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KHN0ZXAtPmVkaXRpbmdBY3Rpb24oKSk7CisgICAgYXV0byBjdXN0b21OYW1lID0gc3RlcC0+Y3Vz
dG9tVW5kb0xhYmVsKCk7CisgICAgYXV0byB3ZWJTdGVwID0gV2ViVW5kb1N0ZXA6OmNyZWF0ZShX
VEZNb3ZlKHN0ZXApKTsKICAgICBhdXRvIHN0ZXBJRCA9IHdlYlN0ZXAtPnN0ZXBJRCgpOwotICAg
IGF1dG8gZWRpdEFjdGlvbiA9IHN0YXRpY19jYXN0PHVpbnQzMl90Pih3ZWJTdGVwLT5zdGVwKCku
ZWRpdGluZ0FjdGlvbigpKTsKIAogICAgIG1fcGFnZS0+YWRkV2ViVW5kb1N0ZXAoc3RlcElELCBX
VEZNb3ZlKHdlYlN0ZXApKTsKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UmVnaXN0ZXJFZGl0Q29tbWFuZEZvclVuZG8oc3RlcElELCBlZGl0QWN0aW9uKSwgbV9wYWdl
LT5wYWdlSUQoKSwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRp
bmdGb3JTeW5jUmVwbHkpOworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpSZWdpc3RlckVkaXRDb21tYW5kRm9yVW5kbyhzdGVwSUQsIGVkaXRBY3Rpb24sIGN1c3RvbU5h
bWUpLCBtX3BhZ2UtPnBhZ2VJRCgpLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2
ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CiB9CiAKLXZvaWQgV2ViRWRpdG9yQ2xpZW50Ojpy
ZWdpc3RlclJlZG9TdGVwKFVuZG9TdGVwJikKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZWdpc3Rl
clJlZG9TdGVwKFJlZjxVbmRvU3RlcD4mJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4
IDQ3MjBiNzExNzU0MTJhNTlhMjI5YmM0NzEwNmRhYjJkYTNjODc1NmUuLmY0MWIwODYzMjFjMWY0
MjgyNWM1YWQ5YWUyZDk2YTllMmQ3MDViNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTg1LDgg
Kzg1LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldENsaWVudFBhc3RlYm9hcmREYXRhRm9yUmFu
Z2UoV2ViQ29yZTo6UmFuZ2UqLCBWZWN0b3I8U3RyaW5nPiYgcGFzdGVib2FyZFR5cGVzLCBWZWN0
b3I8UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4+JiBwYXN0ZWJvYXJkRGF0YSkgZmluYWw7
CiAgICAgU3RyaW5nIHJlcGxhY2VtZW50VVJMRm9yUmVzb3VyY2UoUmVmPFdlYkNvcmU6OlNoYXJl
ZEJ1ZmZlcj4mJiByZXNvdXJjZURhdGEsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGZpbmFsOwog
ICAgIAotICAgIHZvaWQgcmVnaXN0ZXJVbmRvU3RlcChXZWJDb3JlOjpVbmRvU3RlcCYpIGZpbmFs
OwotICAgIHZvaWQgcmVnaXN0ZXJSZWRvU3RlcChXZWJDb3JlOjpVbmRvU3RlcCYpIGZpbmFsOwor
ICAgIHZvaWQgcmVnaXN0ZXJVbmRvU3RlcChSZWY8V2ViQ29yZTo6VW5kb1N0ZXA+JiYpIGZpbmFs
OworICAgIHZvaWQgcmVnaXN0ZXJSZWRvU3RlcChSZWY8V2ViQ29yZTo6VW5kb1N0ZXA+JiYpIGZp
bmFsOwogICAgIHZvaWQgY2xlYXJVbmRvUmVkb09wZXJhdGlvbnMoKSBmaW5hbDsKIAogICAgIGJv
b2wgY2FuQ29weUN1dChXZWJDb3JlOjpGcmFtZSosIGJvb2wgZGVmYXVsdFZhbHVlKSBjb25zdCBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggZjBmOTY4YjdlMmI2NmM4OTFkYzE0YjZjMWZhYWYw
YjhiYmUxZDE5ZS4uYWYzNWRiMjVhY2JiZDRhZjMyODI3ZmMyZGE5Y2UxMjg3ZTA1YjgwMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmgKQEAgLTExNCw4ICsxMTQsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgY2Fu
Y2VsZWRDb21wb3NpdGlvbigpIGZpbmFsOwogICAgIHZvaWQgZGlkVXBkYXRlQ29tcG9zaXRpb24o
KSBmaW5hbCB7IH0KIAotICAgIHZvaWQgcmVnaXN0ZXJVbmRvU3RlcChXZWJDb3JlOjpVbmRvU3Rl
cCYpIGZpbmFsOwotICAgIHZvaWQgcmVnaXN0ZXJSZWRvU3RlcChXZWJDb3JlOjpVbmRvU3RlcCYp
IGZpbmFsOworICAgIHZvaWQgcmVnaXN0ZXJVbmRvU3RlcChSZWY8V2ViQ29yZTo6VW5kb1N0ZXA+
JiYpIGZpbmFsOworICAgIHZvaWQgcmVnaXN0ZXJSZWRvU3RlcChSZWY8V2ViQ29yZTo6VW5kb1N0
ZXA+JiYpIGZpbmFsOwogICAgIHZvaWQgY2xlYXJVbmRvUmVkb09wZXJhdGlvbnMoKSBmaW5hbDsK
IAogICAgIGJvb2wgY2FuQ29weUN1dChXZWJDb3JlOjpGcmFtZSosIGJvb2wgZGVmYXVsdFZhbHVl
KSBjb25zdCBmaW5hbDsKQEAgLTE3Miw3ICsxNzIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgaGFu
ZGxlQWNjZXB0ZWRDYW5kaWRhdGVXaXRoU29mdFNwYWNlcyhXZWJDb3JlOjpUZXh0Q2hlY2tpbmdS
ZXN1bHQpIGZpbmFsOwogI2VuZGlmCiAKLSAgICB2b2lkIHJlZ2lzdGVyVW5kb09yUmVkb1N0ZXAo
V2ViQ29yZTo6VW5kb1N0ZXAmLCBib29sIGlzUmVkbyk7CisgICAgdm9pZCByZWdpc3RlclVuZG9P
clJlZG9TdGVwKFJlZjxXZWJDb3JlOjpVbmRvU3RlcD4mJiwgYm9vbCBpc1JlZG8pOwogCiAgICAg
V2ViVmlldyAqbV93ZWJWaWV3OwogICAgIFJldGFpblB0cjxXZWJFZGl0b3JVbmRvVGFyZ2V0PiBt
X3VuZG9UYXJnZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggNjliNzY3YWU3ZDc0ZGUxZTZkMjdk
OWIxNjkyMjZmY2VkY2I0YzcxOS4uOTEzZGI2ZDBkZmRlZGZkM2IxOTFkY2I4ZTkxNGQzNDMwMTNj
OWI1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpAQCAtMTI1LDcgKzEyNSw3IEBAIEBpbnRlcmZhY2Ug
V2ViVW5kb1N0ZXAgOiBOU09iamVjdAogICAgIFJlZlB0cjxVbmRvU3RlcD4gbV9zdGVwOyAgIAog
fQogCi0rIChXZWJVbmRvU3RlcCAqKXN0ZXBXaXRoVW5kb1N0ZXA6KFVuZG9TdGVwJilzdGVwOwor
KyAoV2ViVW5kb1N0ZXAgKilzdGVwV2l0aFVuZG9TdGVwOihSZWY8VW5kb1N0ZXA+JiYpc3RlcDsK
IC0gKFVuZG9TdGVwJilzdGVwOwogCiBAZW5kCkBAIC0xNDEsMTIgKzE0MSwxMiBAQCArICh2b2lk
KWluaXRpYWxpemUKICNlbmRpZgogfQogCi0tIChpZClpbml0V2l0aFVuZG9TdGVwOihVbmRvU3Rl
cCYpc3RlcAorLSAoaWQpaW5pdFdpdGhVbmRvU3RlcDooUmVmPFVuZG9TdGVwPiYmKXN0ZXAKIHsK
ICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJu
IG5pbDsKLSAgICBtX3N0ZXAgPSAmc3RlcDsKKyAgICBtX3N0ZXAgPSBXVEZNb3ZlKHN0ZXApOwog
ICAgIHJldHVybiBzZWxmOwogfQogCkBAIC0xNTgsOSArMTU4LDkgQEAgLSAodm9pZClkZWFsbG9j
CiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQogCi0rIChXZWJVbmRvU3RlcCAqKXN0ZXBXaXRoVW5k
b1N0ZXA6KFVuZG9TdGVwJilzdGVwCisrIChXZWJVbmRvU3RlcCAqKXN0ZXBXaXRoVW5kb1N0ZXA6
KFJlZjxVbmRvU3RlcD4mJilzdGVwCiB7Ci0gICAgcmV0dXJuIFtbW1dlYlVuZG9TdGVwIGFsbG9j
XSBpbml0V2l0aFVuZG9TdGVwOnN0ZXBdIGF1dG9yZWxlYXNlXTsKKyAgICByZXR1cm4gW1tbV2Vi
VW5kb1N0ZXAgYWxsb2NdIGluaXRXaXRoVW5kb1N0ZXA6V1RGTW92ZShzdGVwKV0gYXV0b3JlbGVh
c2VdOwogfQogCiAtIChVbmRvU3RlcCYpc3RlcApAQCAtNTg5LDcgKzU4OSw3IEBAIGJvb2wgV2Vi
RWRpdG9yQ2xpZW50OjpzaG91bGRJbnNlcnROb2RlKE5vZGUgKm5vZGUsIFJhbmdlKiByZXBsYWNp
bmdSYW5nZSwgRWRpdG9yCiAgICAgcmV0dXJuIFtbbV93ZWJWaWV3IF9lZGl0aW5nRGVsZWdhdGVG
b3J3YXJkZXJdIHdlYlZpZXc6bV93ZWJWaWV3IHNob3VsZEluc2VydE5vZGU6a2l0KG5vZGUpIHJl
cGxhY2luZ0RPTVJhbmdlOmtpdChyZXBsYWNpbmdSYW5nZSkgZ2l2ZW5BY3Rpb246KFdlYlZpZXdJ
bnNlcnRBY3Rpb24pZ2l2ZW5BY3Rpb25dOwogfQogCi12b2lkIFdlYkVkaXRvckNsaWVudDo6cmVn
aXN0ZXJVbmRvT3JSZWRvU3RlcChVbmRvU3RlcCYgc3RlcCwgYm9vbCBpc1JlZG8pCit2b2lkIFdl
YkVkaXRvckNsaWVudDo6cmVnaXN0ZXJVbmRvT3JSZWRvU3RlcChSZWY8VW5kb1N0ZXA+JiYgc3Rl
cCwgYm9vbCBpc1JlZG8pCiB7CiAgICAgTlNVbmRvTWFuYWdlciAqdW5kb01hbmFnZXIgPSBbbV93
ZWJWaWV3IHVuZG9NYW5hZ2VyXTsKIApAQCAtNjAxLDEwICs2MDEsOSBAQCB2b2lkIFdlYkVkaXRv
ckNsaWVudDo6cmVnaXN0ZXJVbmRvT3JSZWRvU3RlcChVbmRvU3RlcCYgc3RlcCwgYm9vbCBpc1Jl
ZG8pCiAgICAgICAgIHJldHVybjsKICNlbmRpZgogCi0gICAgTlNTdHJpbmcgKmFjdGlvbk5hbWUg
PSBXZWJDb3JlOjpuYW1lRm9yVW5kb1JlZG8oc3RlcC5lZGl0aW5nQWN0aW9uKCkpOwotICAgIFdl
YlVuZG9TdGVwICp3ZWJFbnRyeSA9IFtXZWJVbmRvU3RlcCBzdGVwV2l0aFVuZG9TdGVwOnN0ZXBd
OwotICAgIFt1bmRvTWFuYWdlciByZWdpc3RlclVuZG9XaXRoVGFyZ2V0Om1fdW5kb1RhcmdldC5n
ZXQoKSBzZWxlY3RvcjooaXNSZWRvID8gQHNlbGVjdG9yKHJlZG9FZGl0aW5nOikgOiBAc2VsZWN0
b3IodW5kb0VkaXRpbmc6KSkgb2JqZWN0OndlYkVudHJ5XTsKLSAgICBpZiAoYWN0aW9uTmFtZSkK
KyAgICBTdHJpbmcgYWN0aW9uTmFtZSA9IHN0ZXAtPmN1c3RvbVVuZG9MYWJlbCgpLmlzRW1wdHko
KSA/IFdlYkNvcmU6Om5hbWVGb3JVbmRvUmVkbyhzdGVwLT5lZGl0aW5nQWN0aW9uKCkpIDogc3Rl
cC0+Y3VzdG9tVW5kb0xhYmVsKCk7CisgICAgW3VuZG9NYW5hZ2VyIHJlZ2lzdGVyVW5kb1dpdGhU
YXJnZXQ6bV91bmRvVGFyZ2V0LmdldCgpIHNlbGVjdG9yOihpc1JlZG8gPyBAc2VsZWN0b3IocmVk
b0VkaXRpbmc6KSA6IEBzZWxlY3Rvcih1bmRvRWRpdGluZzopKSBvYmplY3Q6W1dlYlVuZG9TdGVw
IHN0ZXBXaXRoVW5kb1N0ZXA6V1RGTW92ZShzdGVwKV1dOworICAgIGlmICghYWN0aW9uTmFtZS5p
c0VtcHR5KCkpCiAgICAgICAgIFt1bmRvTWFuYWdlciBzZXRBY3Rpb25OYW1lOmFjdGlvbk5hbWVd
OwogICAgIG1faGF2ZVVuZG9SZWRvT3BlcmF0aW9ucyA9IFlFUzsKIH0KQEAgLTYyOSwxNCArNjI4
LDE0IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp1cGRhdGVFZGl0b3JTdGF0ZUFmdGVyTGF5b3V0
SWZFZGl0YWJpbGl0eUNoYW5nZWQoKQogICAgICAgICBbbV93ZWJWaWV3IHVwZGF0ZVRvdWNoQmFy
XTsKIH0KIAotdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyVW5kb1N0ZXAoVW5kb1N0ZXAm
IGNtZCkKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZWdpc3RlclVuZG9TdGVwKFJlZjxVbmRvU3Rl
cD4mJiBjb21tYW5kKQogewotICAgIHJlZ2lzdGVyVW5kb09yUmVkb1N0ZXAoY21kLCBmYWxzZSk7
CisgICAgcmVnaXN0ZXJVbmRvT3JSZWRvU3RlcChXVEZNb3ZlKGNvbW1hbmQpLCBmYWxzZSk7CiB9
CiAKLXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZWdpc3RlclJlZG9TdGVwKFVuZG9TdGVwJiBjbWQp
Cit2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVnaXN0ZXJSZWRvU3RlcChSZWY8VW5kb1N0ZXA+JiYg
Y29tbWFuZCkKIHsKLSAgICByZWdpc3RlclVuZG9PclJlZG9TdGVwKGNtZCwgdHJ1ZSk7CisgICAg
cmVnaXN0ZXJVbmRvT3JSZWRvU3RlcChXVEZNb3ZlKGNvbW1hbmQpLCB0cnVlKTsKIH0KIAogdm9p
ZCBXZWJFZGl0b3JDbGllbnQ6OmNsZWFyVW5kb1JlZG9PcGVyYXRpb25zKCkKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlYjNmZmZjMzJlNDc2ODhk
OGUzNWQ2ODgyZmMzMjYxZDA0MzE0YmJjLi5hMGJkMGVmZWRlMWZiMTUwNjQyMWNhNjk0MTIyNTk5
NWVkYmZmZjM1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTktMDEtMDQgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBbGxvdyB0aGUgcGFnZSB0byBhZGQg
dG8gdGhlIHBsYXRmb3JtIHVuZG8gc3RhY2sgdmlhIFVuZG9NYW5hZ2VyLmFkZEl0ZW0oKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMTExCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NDgwNzA0OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2lvcy9VSVNjcmlwdENvbnRy
b2xsZXJJT1MubW06CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6dW5kb0FjdGlv
bk5hbWUgY29uc3QpOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnJlZG9BY3Rp
b25OYW1lIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9y
bVVuZG9NYW5hZ2VyIGNvbnN0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3Jp
cHRDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnVu
ZG9BY3Rpb25OYW1lIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpy
ZWRvQWN0aW9uTmFtZSBjb25zdCk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6
cGxhdGZvcm1VbmRvTWFuYWdlciBjb25zdCk6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9V
SVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbDoKKyAgICAgICAg
KiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnVuZG9BY3Rpb25OYW1lIGNvbnN0
KToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpyZWRvQWN0aW9uTmFtZSBjb25z
dCk6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRD
b250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9VSVNjcmlwdENvbnRyb2xs
ZXJDb2NvYS5tbToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjp1bmRvQWN0aW9u
TmFtZSBjb25zdCk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cmVkb0FjdGlv
bk5hbWUgY29uc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29u
dHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9y
bVVuZG9NYW5hZ2VyIGNvbnN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9VSVNj
cmlwdENvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6
cGxhdGZvcm1VbmRvTWFuYWdlciBjb25zdCk6CisKIDIwMTktMDEtMDMgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgSW50cm9kdWNlIElETCBmaWxlcyBm
b3IgcnVudGltZS1lbmFibGVkIFVuZG9NYW5hZ2VyIGFuZCBVbmRvSXRlbSBKYXZhU2NyaXB0IEFQ
SQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxl
cklPUy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1Mu
bW0KaW5kZXggMzk4MDM0YTRjMjBlMzlhY2FlZjI2OWNlOTQ1ODk0ODQ4MjRjMmI5Ni4uOGEwNGU4
YWYzYmM4YjU3YWU1MzYwOTVlMjFhOTlhMTc0MzIxZjQyOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCkBAIC00NDAsNiArNDQwLDIx
IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXRLZXlib2FyZElucHV0TW9kZUlkZW50aWZp
ZXIoSlNTdHJpbmdSZWYpCiB7CiB9CiAKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBVSVNjcmlw
dENvbnRyb2xsZXI6OnVuZG9BY3Rpb25OYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IFVJU2NyaXB0Q29udHJvbGxlcjo6cmVk
b0FjdGlvbk5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBudWxscHRyOworfQorCitOU1VuZG9N
YW5hZ2VyICpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtVW5kb01hbmFnZXIoKSBjb25zdAor
eworICAgIHJldHVybiBuaWw7Cit9CisKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1J
TFkpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9s
bGVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1h
Yy5tbQppbmRleCBjNDQ1MTQ1ZjMzYmVmMGNjMTk0OWUzZDVhYWUwZjUzM2JlZTE0MmQ3Li5iODA2
ODQ2MTM3YWEyMWY5YzZmZTYzZWEzNWJhZmJmYzIxMzMyOWFmIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KQEAgLTIxNSw2ICsyMTUs
MjEgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnRvZ2dsZUNhcHNMb2NrKEpTVmFsdWVSZWYg
Y2FsbGJhY2spCiAgICAgZG9Bc3luY1Rhc2soY2FsbGJhY2spOwogfQogCitKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gVUlTY3JpcHRDb250cm9sbGVyOjp1bmRvQWN0aW9uTmFtZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBVSVNj
cmlwdENvbnRyb2xsZXI6OnJlZG9BY3Rpb25OYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworTlNVbmRvTWFuYWdlciAqVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVVu
ZG9NYW5hZ2VyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbmlsOworfQorCiB9CiAKICNlbmRpZiAv
LyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2Ny
aXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsIGIvVG9vbHMvVGVzdFJ1
bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlk
bAppbmRleCA3ZDIwNGU4NTcyNmE4NmQzZmE4ZWMyYzM4Yjk3NzhjMTNiNzA2NjIzLi5mNzg3ZTRj
NzI3ODljNTRiNmUxZDRjYmNiYzU4MTk0YjJjNDNhNjI3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIu
aWRsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdz
L1VJU2NyaXB0Q29udHJvbGxlci5pZGwKQEAgLTI4Nyw4ICsyODcsMTEgQEAgaW50ZXJmYWNlIFVJ
U2NyaXB0Q29udHJvbGxlciB7CiAgICAgdm9pZCBtYWtlV2luZG93Q29udGVudFZpZXdGaXJzdFJl
c3BvbmRlcigpOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzV2luZG93Q29udGVu
dFZpZXdGaXJzdFJlc3BvbmRlcjsKIAorICAgIG9iamVjdCBhdHRhY2htZW50SW5mbyhET01TdHJp
bmcgYXR0YWNobWVudElkZW50aWZpZXIpOworCisgICAgLy8gRWRpdGluZwogICAgIHZvaWQgZHJh
d1NxdWFyZUluRWRpdGFibGVJbWFnZSgpOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIG51
bWJlck9mU3Ryb2tlc0luRWRpdGFibGVJbWFnZTsKLQotICAgIG9iamVjdCBhdHRhY2htZW50SW5m
byhET01TdHJpbmcgYXR0YWNobWVudElkZW50aWZpZXIpOworICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgdW5kb0FjdGlvbk5hbWU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyByZWRvQWN0aW9uTmFtZTsKIH07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvVGVzdFJ1
bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBj
OTU4N2M0MmU5ZjAzZWZhODk5NGQ1NGQzOTAxOWU3Njc4ZWM2Yjc4Li5iMzE2N2QzOWEwYjdlY2Mw
Y2JlZTE3OTI3NzJlNTIzZDkwOTYxNWVhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHAKQEAg
LTI0NSw2ICsyNDUsMTYgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnRvZ2dsZUNhcHNMb2Nr
KEpTVmFsdWVSZWYpCiB7CiB9CiAKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBVSVNjcmlwdENv
bnRyb2xsZXI6OnVuZG9BY3Rpb25OYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IFVJU2NyaXB0Q29udHJvbGxlcjo6cmVkb0Fj
dGlvbk5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBudWxscHRyOworfQorCiAjZW5kaWYgLy8g
IVBMQVRGT1JNKENPQ09BKQogCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxheUJhY2tFdmVu
dFN0cmVhbShKU1N0cmluZ1JlZiBzdHJlYW0sIEpTVmFsdWVSZWYgY2FsbGJhY2spCkBAIC01NTks
NiArNTY5LDE2IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpvdmVycmlkZVByZWZlcmVuY2Uo
SlNTdHJpbmdSZWYsIEpTU3RyaW5nUmVmKQogewogfQogCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gVUlTY3JpcHRDb250cm9sbGVyOjp1bmRvQWN0aW9uTmFtZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBVSVNjcmlwdENvbnRy
b2xsZXI6OnJlZG9BY3Rpb25OYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KwogI2VuZGlmIC8vICFQTEFURk9STShDT0NPQSkKIAogI2lmICFQTEFURk9STShNQUMpCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENv
bnRyb2xsZXIuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2Ny
aXB0Q29udHJvbGxlci5oCmluZGV4IGE2NDgyYzllNzk0MGE5ZTU3NDVmYjAyNjQwNjQwOGQwYjRl
MzQ1OGUuLjBkM2RiNWU0YjE3Y2JhNzI4MmY1NjkxODc0NmMwNzRlZGFlMDhjYzMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJv
bGxlci5oCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2Ny
aXB0Q29udHJvbGxlci5oCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSA8d3RmL09wdGlvbmFs
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCitPQkpDX0NMQVNTIE5TVW5kb01hbmFnZXI7CisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZsb2F0UmVjdDsKIH0KQEAgLTIwMyw2ICsyMDUs
OSBAQCBwdWJsaWM6CiAgICAgdm9pZCBkcmF3U3F1YXJlSW5FZGl0YWJsZUltYWdlKCk7CiAgICAg
bG9uZyBudW1iZXJPZlN0cm9rZXNJbkVkaXRhYmxlSW1hZ2UoKTsKIAorICAgIEpTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiB1bmRvQWN0aW9uTmFtZSgpIGNvbnN0OworICAgIEpTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiByZWRvQWN0aW9uTmFtZSgpIGNvbnN0OworCiAgICAgSlNPYmplY3RSZWYgYXR0
YWNobWVudEluZm8oSlNTdHJpbmdSZWYgYXR0YWNobWVudElkZW50aWZpZXIpOwogCiBwcml2YXRl
OgpAQCAtMjIyLDYgKzIyNywxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1DbGVhckFs
bENhbGxiYWNrcygpOwogICAgIHZvaWQgcGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKEpTU3Ry
aW5nUmVmLCBKU1ZhbHVlUmVmKTsKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIE5TVW5kb01h
bmFnZXIgKnBsYXRmb3JtVW5kb01hbmFnZXIoKSBjb25zdDsKKyNlbmRpZgorCiAgICAgSlNDbGFz
c1JlZiB3cmFwcGVyQ2xhc3MoKSBmaW5hbDsKIAogICAgIEpTT2JqZWN0UmVmIG9iamVjdEZyb21S
ZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0KaW5kZXggYTdiOThlNDA0Yjgz
MTAyMjk0OTM3ZjY0NmY2NGVjZjg5MjU3MTJmNi4uNzNhNmM5OGFlNmZlY2YxYTM3NWJkYWNlOWFj
OGJkYjAzZWZiMzY0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9VSVNjcmlw
dENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1VJU2NyaXB0
Q29udHJvbGxlckNvY29hLm1tCkBAIC0xOTIsNSArMTkyLDE1IEBAIEpTT2JqZWN0UmVmIFVJU2Ny
aXB0Q29udHJvbGxlcjo6Y2FsZW5kYXJUeXBlKCkgY29uc3QKICAgICByZXR1cm4gbnVsbHB0cjsK
ICNlbmRpZgogfQotICAgIAorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gVUlTY3JpcHRDb250
cm9sbGVyOjp1bmRvQWN0aW9uTmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3Jl
YXRlV2l0aENGU3RyaW5nKChfX2JyaWRnZSBDRlN0cmluZ1JlZilwbGF0Zm9ybVVuZG9NYW5hZ2Vy
KCkudW5kb0FjdGlvbk5hbWUpOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gVUlTY3Jp
cHRDb250cm9sbGVyOjpyZWRvQWN0aW9uTmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEpTU3Ry
aW5nQ3JlYXRlV2l0aENGU3RyaW5nKChfX2JyaWRnZSBDRlN0cmluZ1JlZilwbGF0Zm9ybVVuZG9N
YW5hZ2VyKCkucmVkb0FjdGlvbk5hbWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5t
bSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQpp
bmRleCA5ZTIwNDc3YjFlODY4MjY3ZjQ5YzRhMDA5MmIwYWQ1OGMzZDQ5MTg2Li40NzhmODg1ZTVi
OTgwNTE0MmU5YTg2YTk0YzdhYWUzMTM0Y2YxNzc2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCkBAIC05NTksNiArOTU5LDEx
IEBAIEpTT2JqZWN0UmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6YXR0YWNobWVudEluZm8oSlNTdHJp
bmdSZWYganNBdHRhY2htZW50SWRlbnRpZmllCiAgICAgcmV0dXJuIEpTVmFsdWVUb09iamVjdCht
X2NvbnRleHQtPmpzQ29udGV4dCgpLCBbSlNWYWx1ZSB2YWx1ZVdpdGhPYmplY3Q6YXR0YWNobWVu
dEluZm9EaWN0aW9uYXJ5IGluQ29udGV4dDpbSlNDb250ZXh0IGNvbnRleHRXaXRoSlNHbG9iYWxD
b250ZXh0UmVmOm1fY29udGV4dC0+anNDb250ZXh0KCldXS5KU1ZhbHVlUmVmLCBudWxscHRyKTsK
IH0KIAorTlNVbmRvTWFuYWdlciAqVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVVuZG9NYW5h
Z2VyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gWyhVSVZpZXcgKilbVGVzdENvbnRyb2xsZXI6OnNp
bmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpIHZhbHVlRm9yS2V5UGF0aDpA
Il9jdXJyZW50Q29udGVudFZpZXciXSB1bmRvTWFuYWdlcl07Cit9CisKIH0KIAogI2VuZGlmIC8v
IFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21h
Yy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KaW5kZXggMjE4ODgxMTUyYTg5NWNkZGI2YTdmNDA3
MTZmMTkwMGE1ZDc3YWMzYi4uNzU3ZmEwNmJkNzhmMTgzM2YxM2IzOGNiYzliMDMwZjkzNDE5NzYz
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9s
bGVyTWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJv
bGxlck1hYy5tbQpAQCAtMjA5LDQgKzIwOSw5IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjp0
b2dnbGVDYXBzTG9jayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQogICAgIGRvQXN5bmNUYXNrKGNhbGxi
YWNrKTsKIH0KIAorTlNVbmRvTWFuYWdlciAqVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVVu
ZG9NYW5hZ2VyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRv
bigpLm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpLnVuZG9NYW5hZ2VyOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjNmVjYTFhYzkwMmU2MTQyMGI3YTNiZmQxOWNiODcyY2Uz
OTM0MWY2Li4xYzE4N2I1ZTVmNzEwYmI4NWY4NDUzYzYwOTIyMWZiZGQwNjdhNDNiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTktMDEtMDQgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBbGxvdyB0aGUgcGFnZSB0byBhZGQgdG8gdGhl
IHBsYXRmb3JtIHVuZG8gc3RhY2sgdmlhIFVuZG9NYW5hZ2VyLmFkZEl0ZW0oKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMTExCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS80NDgwNzA0OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGVkaXRpbmcvdW5kby9VbmRvTWFuYWdlci91bmRvLW1hbmFnZXIt
YWRkLWl0ZW0tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3VuZG8vVW5k
b01hbmFnZXIvdW5kby1tYW5hZ2VyLWFkZC1pdGVtLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVk
aXRpbmcvdW5kby9VbmRvTWFuYWdlci91bmRvLW1hbmFnZXItcHJldmVudC11bmRvLXJlZG8tZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3VuZG8vVW5kb01hbmFnZXIvdW5k
by1tYW5hZ2VyLXByZXZlbnQtdW5kby1yZWRvLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRp
bmcvdW5kby9VbmRvTWFuYWdlci91bmRvLW1hbmFnZXItc2V0LWl0ZW0tbGFiZWwtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3VuZG8vVW5kb01hbmFnZXIvdW5kby1tYW5h
Z2VyLXNldC1pdGVtLWxhYmVsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHJlc291cmNlcy91aS1o
ZWxwZXIuanM6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIudW5kb0FuZFJlZG9BY3Rpb25OYW1l
cyk6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIpOgorCiAyMDE5LTAxLTAzICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSBJREwgZmls
ZXMgZm9yIHJ1bnRpbWUtZW5hYmxlZCBVbmRvTWFuYWdlciBhbmQgVW5kb0l0ZW0gSmF2YVNjcmlw
dCBBUEkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvdW5kby9VbmRvTWFuYWdlci91
bmRvLW1hbmFnZXItYWRkLWl0ZW0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy91
bmRvL1VuZG9NYW5hZ2VyL3VuZG8tbWFuYWdlci1hZGQtaXRlbS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTU2ZGE4OTkxNmM3YmY0NDA4MTZhNTUxZWZlYWNkNzM0MGQ4MTM2ZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvdW5kby9VbmRvTWFuYWdlci91bmRvLW1hbmFn
ZXItYWRkLWl0ZW0tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzIgQEAKK1RoaXMgdGVzdCB2ZXJp
ZmllcyB0aGF0IFVuZG9NYW5hZ2VyLmFkZEl0ZW0oKSBjYW4gYmUgdXNlZCB0byBhZGQgdW5kbyBp
dGVtcyB0byB0aGUgcGxhdGZvcm0gdW5kbyBzdGFjay4KKworCitBZnRlciBhZGRpbmcgYW4gdW5k
byBpdGVtIChtYWluZnJhbWUpOgorUEFTUyB1bmRvTmFtZSBpcyAibWFpbmZyYW1lIgorUEFTUyBy
ZWRvTmFtZSBpcyAiIgorQWZ0ZXIgcGVyZm9ybWluZyB1bmRvIChtYWluZnJhbWUpOgorKiogVU5E
TyAqKgorUEFTUyB1bmRvTmFtZSBpcyAiIgorUEFTUyByZWRvTmFtZSBpcyAibWFpbmZyYW1lIgor
QWZ0ZXIgcGVyZm9ybWluZyByZWRvIChtYWluZnJhbWUpOgorKiogUkVETyAqKgorUEFTUyB1bmRv
TmFtZSBpcyAibWFpbmZyYW1lIgorUEFTUyByZWRvTmFtZSBpcyAiIgorQWZ0ZXIgYWRkaW5nIGFu
IHVuZG8gaXRlbSAoc3ViZnJhbWUpOgorUEFTUyB1bmRvTmFtZSBpcyAic3ViZnJhbWUiCitQQVNT
IHJlZG9OYW1lIGlzICIiCitBZnRlciBwZXJmb3JtaW5nIHVuZG8gKHN1YmZyYW1lKToKK1BBU1Mg
dW5kb05hbWUgaXMgIm1haW5mcmFtZSIKK1BBU1MgcmVkb05hbWUgaXMgInN1YmZyYW1lIgorQWZ0
ZXIgcGVyZm9ybWluZyByZWRvIChzdWJmcmFtZSk6CitQQVNTIHVuZG9OYW1lIGlzICJzdWJmcmFt
ZSIKK1BBU1MgcmVkb05hbWUgaXMgIiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCist
LS0tLS0tLQorVU5ETywgUkVETwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRv
L1VuZG9NYW5hZ2VyL3VuZG8tbWFuYWdlci1hZGQtaXRlbS5odG1sIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy91bmRvL1VuZG9NYW5hZ2VyL3VuZG8tbWFuYWdlci1hZGQtaXRlbS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmI5MjM2MTVhMDljZjEwMGE3YzdiZjMxMzVjMzNiMmM1MGIzMGYwMTcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG8vVW5kb01hbmFnZXIvdW5kby1tYW5hZ2Vy
LWFkZC1pdGVtLmh0bWwKQEAgLTAsMCArMSw5MSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlVW5kb01hbmFnZXJBUEk9dHJ1ZSBdIC0tPgorPGh0bWw+
CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgZnVu
Y3Rpb24gYWRkVW5kb0l0ZW0oKQorICAgICAgICB7CisgICAgICAgICAgICBjb25zdCBpdGVtID0g
bmV3IFVuZG9JdGVtKCJtYWluZnJhbWUiKTsKKyAgICAgICAgICAgIGl0ZW0udW5kbyA9ICgpID0+
IGRlYnVnKCIqKiBVTkRPICoqIik7CisgICAgICAgICAgICBpdGVtLnJlZG8gPSAoKSA9PiBkZWJ1
ZygiKiogUkVETyAqKiIpOworICAgICAgICAgICAgZG9jdW1lbnQudW5kb01hbmFnZXIuYWRkSXRl
bShpdGVtKTsKKyAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAg
PGJvZHk+CisgICAgICAgIDxwPlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IDxjb2RlPlVuZG9NYW5h
Z2VyLmFkZEl0ZW0oKTwvY29kZT4gY2FuIGJlIHVzZWQgdG8gYWRkIHVuZG8gaXRlbXMgdG8gdGhl
IHBsYXRmb3JtIHVuZG8gc3RhY2suPC9wPgorICAgICAgICA8aWZyYW1lIGlkPSJmcmFtZSIgc3Jj
ZG9jPSIKKyAgICAgICAgICAgIDxib2R5PgorICAgICAgICAgICAgICAgIDxwcmUgaWQ9J291dHB1
dCc+PC9wcmU+CisgICAgICAgICAgICA8L2JvZHk+CisgICAgICAgICAgICA8c2NyaXB0PgorICAg
ICAgICAgICAgZnVuY3Rpb24gYXBwZW5kT3V0cHV0KHN0cmluZykKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICBpZiAob3V0cHV0LnRleHRDb250ZW50Lmxlbmd0aCkKKyAgICAgICAgICAg
ICAgICAgICAgb3V0cHV0LnRleHRDb250ZW50ICs9ICcsICc7CisgICAgICAgICAgICAgICAgb3V0
cHV0LnRleHRDb250ZW50ICs9IHN0cmluZzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ZnVuY3Rpb24gYWRkVW5kb0l0ZW0oKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNv
bnN0IGl0ZW0gPSBuZXcgVW5kb0l0ZW0oJ3N1YmZyYW1lJyk7CisgICAgICAgICAgICAgICAgaXRl
bS51bmRvID0gKCkgPT4gYXBwZW5kT3V0cHV0KCdVTkRPJyk7CisgICAgICAgICAgICAgICAgaXRl
bS5yZWRvID0gKCkgPT4gYXBwZW5kT3V0cHV0KCdSRURPJyk7CisgICAgICAgICAgICAgICAgZG9j
dW1lbnQudW5kb01hbmFnZXIuYWRkSXRlbShpdGVtKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIDwvc2NyaXB0PgorICAgICAgICAiPjwvaWZyYW1lPgorICAgICAgICA8cHJlIGlkPSdjb25z
b2xlJz48L3ByZT4KKyAgICA8L2JvZHk+CisgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0SXNB
c3luYyA9IHRydWU7CisgICAgICAgIHVuZG9OYW1lID0gbnVsbDsKKyAgICAgICAgcmVkb05hbWUg
PSBudWxsOworCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisKKyAgICAgICAgYWRkRXZlbnRMaXN0
ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGRlYnVnKCJBZnRlciBhZGRp
bmcgYW4gdW5kbyBpdGVtIChtYWluZnJhbWUpOiIpOworICAgICAgICAgICAgYWRkVW5kb0l0ZW0o
KTsKKyAgICAgICAgICAgIFt1bmRvTmFtZSwgcmVkb05hbWVdID0gYXdhaXQgVUlIZWxwZXIudW5k
b0FuZFJlZG9BY3Rpb25OYW1lcygpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJ1bmRvTmFtZSIsICJtYWluZnJhbWUiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygicmVkb05hbWUiLCAiIik7CisKKyAgICAgICAgICAgIGRlYnVnKCJBZnRlciBwZXJmb3Jt
aW5nIHVuZG8gKG1haW5mcmFtZSk6Iik7CisgICAgICAgICAgICBkb2N1bWVudC51bmRvTWFuYWdl
ci51bmRvKCk7CisgICAgICAgICAgICBbdW5kb05hbWUsIHJlZG9OYW1lXSA9IGF3YWl0IFVJSGVs
cGVyLnVuZG9BbmRSZWRvQWN0aW9uTmFtZXMoKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygidW5kb05hbWUiLCAiIik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlZG9OYW1lIiwgIm1haW5mcmFtZSIpOworCisgICAgICAgICAgICBkZWJ1ZygiQWZ0ZXIg
cGVyZm9ybWluZyByZWRvIChtYWluZnJhbWUpOiIpOworICAgICAgICAgICAgZG9jdW1lbnQudW5k
b01hbmFnZXIucmVkbygpOworICAgICAgICAgICAgW3VuZG9OYW1lLCByZWRvTmFtZV0gPSBhd2Fp
dCBVSUhlbHBlci51bmRvQW5kUmVkb0FjdGlvbk5hbWVzKCk7CisgICAgICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoInVuZG9OYW1lIiwgIm1haW5mcmFtZSIpOworICAgICAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJyZWRvTmFtZSIsICIiKTsKKworICAgICAgICAgICAgY29uc3Qg
ZnJhbWVXaW5kb3cgPSBmcmFtZS5jb250ZW50V2luZG93OworCisgICAgICAgICAgICBkZWJ1Zygi
QWZ0ZXIgYWRkaW5nIGFuIHVuZG8gaXRlbSAoc3ViZnJhbWUpOiIpOworICAgICAgICAgICAgZnJh
bWVXaW5kb3cuYWRkVW5kb0l0ZW0oKTsKKyAgICAgICAgICAgIFt1bmRvTmFtZSwgcmVkb05hbWVd
ID0gYXdhaXQgVUlIZWxwZXIudW5kb0FuZFJlZG9BY3Rpb25OYW1lcygpOworICAgICAgICAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ1bmRvTmFtZSIsICJzdWJmcmFtZSIpOworICAgICAgICAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWRvTmFtZSIsICIiKTsKKworICAgICAgICAgICAg
ZGVidWcoIkFmdGVyIHBlcmZvcm1pbmcgdW5kbyAoc3ViZnJhbWUpOiIpOworICAgICAgICAgICAg
ZnJhbWVXaW5kb3cuZG9jdW1lbnQudW5kb01hbmFnZXIudW5kbygpOworICAgICAgICAgICAgW3Vu
ZG9OYW1lLCByZWRvTmFtZV0gPSBhd2FpdCBVSUhlbHBlci51bmRvQW5kUmVkb0FjdGlvbk5hbWVz
KCk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInVuZG9OYW1lIiwgIm1haW5m
cmFtZSIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWRvTmFtZSIsICJz
dWJmcmFtZSIpOworCisgICAgICAgICAgICBkZWJ1ZygiQWZ0ZXIgcGVyZm9ybWluZyByZWRvIChz
dWJmcmFtZSk6Iik7CisgICAgICAgICAgICBmcmFtZVdpbmRvdy5kb2N1bWVudC51bmRvTWFuYWdl
ci5yZWRvKCk7CisgICAgICAgICAgICBbdW5kb05hbWUsIHJlZG9OYW1lXSA9IGF3YWl0IFVJSGVs
cGVyLnVuZG9BbmRSZWRvQWN0aW9uTmFtZXMoKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygidW5kb05hbWUiLCAic3ViZnJhbWUiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygicmVkb05hbWUiLCAiIik7CisKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgp
OworICAgICAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2VkaXRpbmcvdW5kby9VbmRvTWFuYWdlci91bmRvLW1hbmFnZXItcHJldmVudC11bmRv
LXJlZG8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvL1VuZG9NYW5hZ2Vy
L3VuZG8tbWFuYWdlci1wcmV2ZW50LXVuZG8tcmVkby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTg4MmRjMmNkMjUzYzVlMjQxM2FlZGU0NjU1ZTUzYWE5NTczZDQwOQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2VkaXRpbmcvdW5kby9VbmRvTWFuYWdlci91bmRvLW1hbmFnZXItcHJl
dmVudC11bmRvLXJlZG8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKK1ZlcmlmaWVzIHRo
YXQgY3VzdG9tIHVuZG8gaXRlbXMgYWRkZWQgdmlhIFVuZG9NYW5hZ2VyIEFQSSBlbWl0IGlucHV0
IGV2ZW50cywgYW5kIG1heSBiZSBwcmV2ZW50ZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworPERJViBpZD0iZWRpdG9yIj4gYmVmb3JlaW5wdXQ6aGlzdG9yeVVuZG8KKzxESVYgaWQ9
ImVkaXRvciI+IGlucHV0Omhpc3RvcnlVbmRvCitQQVNTIGVkaXRvci50ZXh0Q29udGVudCBpcyAi
YmVmb3JlIgorCis8RElWIGlkPSJlZGl0b3IiPiBiZWZvcmVpbnB1dDpoaXN0b3J5UmVkbworPERJ
ViBpZD0iZWRpdG9yIj4gaW5wdXQ6aGlzdG9yeVJlZG8KK1BBU1MgZWRpdG9yLnRleHRDb250ZW50
IGlzICJhZnRlciIKKworPERJViBpZD0iZWRpdG9yIj4gYmVmb3JlaW5wdXQ6aGlzdG9yeVVuZG8K
K1BBU1MgZWRpdG9yLnRleHRDb250ZW50IGlzICJiZWZvcmUgKHByZXZlbnRlZCkiCisKKzxESVYg
aWQ9ImVkaXRvciI+IGJlZm9yZWlucHV0Omhpc3RvcnlSZWRvCitQQVNTIGVkaXRvci50ZXh0Q29u
dGVudCBpcyAiYWZ0ZXIgKHByZXZlbnRlZCkiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy91
bmRvL1VuZG9NYW5hZ2VyL3VuZG8tbWFuYWdlci1wcmV2ZW50LXVuZG8tcmVkby5odG1sIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy91bmRvL1VuZG9NYW5hZ2VyL3VuZG8tbWFuYWdlci1wcmV2ZW50LXVu
ZG8tcmVkby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiMjc3ZTFmNzc2MWRhODIwNWFjYTU0YWM0MzQ5NmI5
OTZkMTU1NTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG8vVW5k
b01hbmFnZXIvdW5kby1tYW5hZ2VyLXByZXZlbnQtdW5kby1yZWRvLmh0bWwKQEAgLTAsMCArMSw1
NyBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlVW5k
b01hbmFnZXJBUEk9dHJ1ZSBdIC0tPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9o
ZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJlZGl0b3IiIGNvbnRlbnRlZGl0YWJs
ZT5iZWZvcmU8L2Rpdj4KKyAgICAgICAgPHByZSBpZD0iZGVzY3JpcHRpb24iPjwvcHJlPgorICAg
ICAgICA8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKyAgICA8L2JvZHk+CisgICAgPHNjcmlwdD4K
KyAgICAgICAgZnVuY3Rpb24gbG9nKGV2ZW50KSB7CisgICAgICAgICAgICBkZWJ1ZyhgJmx0OyR7
ZXZlbnQudGFyZ2V0LnRhZ05hbWV9IGlkPSIke2V2ZW50LnRhcmdldC5pZH0iJmd0OyAke2V2ZW50
LnR5cGV9OiR7ZXZlbnQuaW5wdXRUeXBlfWApOworICAgICAgICB9CisKKyAgICAgICAgc2hvdWxk
UHJldmVudERlZmF1bHQgPSBmYWxzZTsKKworICAgICAgICBlZGl0b3IgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiZWRpdG9yIik7CisgICAgICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJp
bnB1dCIsIGxvZyk7CisgICAgICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmVpbnB1
dCIsIGV2ZW50ID0+IHsKKyAgICAgICAgICAgIGlmIChzaG91bGRQcmV2ZW50RGVmYXVsdCkgewor
ICAgICAgICAgICAgICAgIGlmIChldmVudC5pbnB1dFR5cGUgPT09ICJoaXN0b3J5VW5kbyIpCisg
ICAgICAgICAgICAgICAgICAgIGVkaXRvci50ZXh0Q29udGVudCA9ICJiZWZvcmUgKHByZXZlbnRl
ZCkiOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgZWRpdG9yLnRl
eHRDb250ZW50ID0gImFmdGVyIChwcmV2ZW50ZWQpIjsKKyAgICAgICAgICAgICAgICBldmVudC5w
cmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nKGV2ZW50KTsK
KyAgICAgICAgfSk7CisKKyAgICAgICAgZWRpdG9yLmZvY3VzKCk7CisgICAgICAgIGVkaXRvci50
ZXh0Q29udGVudCA9ICJhZnRlciI7CisKKyAgICAgICAgZGVzY3JpcHRpb24oIlZlcmlmaWVzIHRo
YXQgY3VzdG9tIHVuZG8gaXRlbXMgYWRkZWQgdmlhIFVuZG9NYW5hZ2VyIEFQSSBlbWl0IGlucHV0
IGV2ZW50cywgYW5kIG1heSBiZSBwcmV2ZW50ZWQuIik7CisgICAgICAgIGNvbnN0IGl0ZW0gPSBu
ZXcgVW5kb0l0ZW0oImN1c3RvbSBhY3Rpb24iKTsKKyAgICAgICAgaXRlbS51bmRvID0gKCkgPT4g
ZWRpdG9yLnRleHRDb250ZW50ID0gImJlZm9yZSI7CisgICAgICAgIGl0ZW0ucmVkbyA9ICgpID0+
IGVkaXRvci50ZXh0Q29udGVudCA9ICJhZnRlciI7CisgICAgICAgIGRvY3VtZW50LnVuZG9NYW5h
Z2VyLmFkZEl0ZW0oaXRlbSk7CisgICAgICAgIHRlc3RSdW5uZXIuZXhlY0NvbW1hbmQoInVuZG8i
KTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlZGl0b3IudGV4dENvbnRlbnQiLCAi
YmVmb3JlIik7CisgICAgICAgIGRlYnVnKCIiKTsKKworICAgICAgICB0ZXN0UnVubmVyLmV4ZWND
b21tYW5kKCJyZWRvIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZWRpdG9yLnRl
eHRDb250ZW50IiwgImFmdGVyIik7CisgICAgICAgIGRlYnVnKCIiKTsKKworICAgICAgICBzaG91
bGRQcmV2ZW50RGVmYXVsdCA9IHRydWU7CisKKyAgICAgICAgdGVzdFJ1bm5lci5leGVjQ29tbWFu
ZCgidW5kbyIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImVkaXRvci50ZXh0Q29u
dGVudCIsICJiZWZvcmUgKHByZXZlbnRlZCkiKTsKKyAgICAgICAgZGVidWcoIiIpOworCisgICAg
ICAgIHRlc3RSdW5uZXIuZXhlY0NvbW1hbmQoInJlZG8iKTsKKyAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJlZGl0b3IudGV4dENvbnRlbnQiLCAiYWZ0ZXIgKHByZXZlbnRlZCkiKTsKKyAg
ICAgICAgZWRpdG9yLnJlbW92ZSgpOworICAgIDwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvL1VuZG9NYW5hZ2VyL3VuZG8tbWFuYWdlci1zZXQt
aXRlbS1sYWJlbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG8vVW5kb01h
bmFnZXIvdW5kby1tYW5hZ2VyLXNldC1pdGVtLWxhYmVsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kNmQ3NWMxNjNhNzQ0NjRmNjg3OTMxYmYwYWEyY2M4Y2JkZDNjZTMwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvL1VuZG9NYW5hZ2VyL3VuZG8tbWFuYWdlci1z
ZXQtaXRlbS1sYWJlbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNiBAQAorCitWZXJpZmllcyB0
aGF0IHNldHRpbmcgdGhlIGxhYmVsIGF0dHJpYnV0ZSBvZiBVbmRvSXRlbSBhZmZlY3RzIHRoZSB1
bmRvIGFuZCByZWRvIGFjdGlvbiBuYW1lcyBpbiB0aGUgcGxhdGZvcm0gdW5kbyBtYW5hZ2VyLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK0FmdGVyIHR5cGluZzoKK1BBU1MgdW5kb05h
bWUgaXMgIlR5cGluZyIKK1BBU1MgcmVkb05hbWUgaXMgIiIKK0FmdGVyIGFkZGluZyB0aGUgZmly
c3QgVW5kb0l0ZW06CitQQVNTIHVuZG9OYW1lIGlzICJGaXJzdCDwn6WHIgorUEFTUyByZWRvTmFt
ZSBpcyAiIgorQWZ0ZXIgYWRkaW5nIHRoZSBzZWNvbmQgVW5kb0l0ZW06CitQQVNTIHVuZG9OYW1l
IGlzICJTZWNvbmQg8J+liCIKK1BBU1MgcmVkb05hbWUgaXMgIiIKK0FmdGVyIHVuZG9pbmc6CitQ
QVNTIHVuZG9OYW1lIGlzICJGaXJzdCDwn6WHIgorUEFTUyByZWRvTmFtZSBpcyAiU2Vjb25kIPCf
pYgiCitBZnRlciB1bmRvaW5nIGFnYWluOgorUEFTUyB1bmRvTmFtZSBpcyAiVHlwaW5nIgorUEFT
UyByZWRvTmFtZSBpcyAiRmlyc3Qg8J+lhyIKK0FmdGVyIHJlZG9pbmc6CitQQVNTIHVuZG9OYW1l
IGlzICJGaXJzdCDwn6WHIgorUEFTUyByZWRvTmFtZSBpcyAiU2Vjb25kIPCfpYgiCitBZnRlciBy
ZWRvaW5nIGFnYWluOgorUEFTUyB1bmRvTmFtZSBpcyAiU2Vjb25kIPCfpYgiCitQQVNTIHJlZG9O
YW1lIGlzICIiCitBZnRlciB1bmRvaW5nIGFuZCB0aGVuIHBhc3Rpbmc6CitQQVNTIHVuZG9OYW1l
IGlzICJQYXN0ZSIKK1BBU1MgcmVkb05hbWUgaXMgIiIKK0FmdGVyIHVuZG9pbmcgdGhlIHBhc3Rl
IGNvbW1hbmQ6CitQQVNTIHVuZG9OYW1lIGlzICJGaXJzdCDwn6WHIgorUEFTUyByZWRvTmFtZSBp
cyAiUGFzdGUiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvL1VuZG9NYW5hZ2VyL3Vu
ZG8tbWFuYWdlci1zZXQtaXRlbS1sYWJlbC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRv
L1VuZG9NYW5hZ2VyL3VuZG8tbWFuYWdlci1zZXQtaXRlbS1sYWJlbC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmI1MjhmZjZlZDUyYWZlYTE3Mjk2N2QxMDFjN2YzNzFmZmQ2NTFmM2MKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG8vVW5kb01hbmFnZXIvdW5kby1tYW5hZ2VyLXNl
dC1pdGVtLWxhYmVsLmh0bWwKQEAgLTAsMCArMSw4OSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlVW5kb01hbmFnZXJBUEk9dHJ1ZSBdIC0tPgorPGh0
bWw+CisgICAgPG1ldGEgY2hhcnNldD0idXRmOCI+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2VkaXRpbmcuanMiPjwvc2NyaXB0PgorICAgICAg
ICA8c2NyaXB0PgorICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgdW5kb05h
bWUgPSBudWxsOworICAgICAgICByZWRvTmFtZSA9IG51bGw7CisKKyAgICAgICAgYXN5bmMgZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJWZXJpZmllcyB0aGF0
IHNldHRpbmcgdGhlIGxhYmVsIGF0dHJpYnV0ZSBvZiBVbmRvSXRlbSBhZmZlY3RzIHRoZSB1bmRv
IGFuZCByZWRvIGFjdGlvbiBuYW1lcyAiCisgICAgICAgICAgICAgICAgKyAiaW4gdGhlIHBsYXRm
b3JtIHVuZG8gbWFuYWdlci4iKTsKKworICAgICAgICAgICAgZmllbGQuZm9jdXMoKTsKKworICAg
ICAgICAgICAgZGVidWcoIkFmdGVyIHR5cGluZzoiKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmV4
ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgdHJ1ZSwgImhlbGxvIik7CisgICAgICAgICAgICBbdW5k
b05hbWUsIHJlZG9OYW1lXSA9IGF3YWl0IFVJSGVscGVyLnVuZG9BbmRSZWRvQWN0aW9uTmFtZXMo
KTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidW5kb05hbWUiLCAiVHlwaW5n
Iik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZG9OYW1lIiwgIiIpOwor
CisgICAgICAgICAgICBkZWJ1ZygiQWZ0ZXIgYWRkaW5nIHRoZSBmaXJzdCBVbmRvSXRlbToiKTsK
KyAgICAgICAgICAgIGNvbnN0IGZpcnN0SXRlbSA9IG5ldyBVbmRvSXRlbSgiIik7CisgICAgICAg
ICAgICBmaXJzdEl0ZW0ubGFiZWwgPSAiRmlyc3Qg8J+lhyI7CisgICAgICAgICAgICBkb2N1bWVu
dC51bmRvTWFuYWdlci5hZGRJdGVtKGZpcnN0SXRlbSk7CisgICAgICAgICAgICBbdW5kb05hbWUs
IHJlZG9OYW1lXSA9IGF3YWl0IFVJSGVscGVyLnVuZG9BbmRSZWRvQWN0aW9uTmFtZXMoKTsKKyAg
ICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidW5kb05hbWUiLCBmaXJzdEl0ZW0ubGFi
ZWwpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWRvTmFtZSIsICIiKTsK
KworICAgICAgICAgICAgZGVidWcoIkFmdGVyIGFkZGluZyB0aGUgc2Vjb25kIFVuZG9JdGVtOiIp
OworICAgICAgICAgICAgY29uc3Qgc2Vjb25kSXRlbSA9IG5ldyBVbmRvSXRlbSgiIik7CisgICAg
ICAgICAgICBzZWNvbmRJdGVtLmxhYmVsID0gIlNlY29uZCDwn6WIIjsKKyAgICAgICAgICAgIGRv
Y3VtZW50LnVuZG9NYW5hZ2VyLmFkZEl0ZW0oc2Vjb25kSXRlbSk7CisgICAgICAgICAgICBbdW5k
b05hbWUsIHJlZG9OYW1lXSA9IGF3YWl0IFVJSGVscGVyLnVuZG9BbmRSZWRvQWN0aW9uTmFtZXMo
KTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidW5kb05hbWUiLCBzZWNvbmRJ
dGVtLmxhYmVsKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVkb05hbWUi
LCAiIik7CisKKyAgICAgICAgICAgIGRlYnVnKCJBZnRlciB1bmRvaW5nOiIpOworICAgICAgICAg
ICAgZG9jdW1lbnQudW5kb01hbmFnZXIudW5kbygpOworICAgICAgICAgICAgW3VuZG9OYW1lLCBy
ZWRvTmFtZV0gPSBhd2FpdCBVSUhlbHBlci51bmRvQW5kUmVkb0FjdGlvbk5hbWVzKCk7CisgICAg
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInVuZG9OYW1lIiwgZmlyc3RJdGVtLmxhYmVs
KTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVkb05hbWUiLCBzZWNvbmRJ
dGVtLmxhYmVsKTsKKworICAgICAgICAgICAgZGVidWcoIkFmdGVyIHVuZG9pbmcgYWdhaW46Iik7
CisgICAgICAgICAgICBkb2N1bWVudC51bmRvTWFuYWdlci51bmRvKCk7CisgICAgICAgICAgICBb
dW5kb05hbWUsIHJlZG9OYW1lXSA9IGF3YWl0IFVJSGVscGVyLnVuZG9BbmRSZWRvQWN0aW9uTmFt
ZXMoKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidW5kb05hbWUiLCAiVHlw
aW5nIik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZG9OYW1lIiwgZmly
c3RJdGVtLmxhYmVsKTsKKworICAgICAgICAgICAgZGVidWcoIkFmdGVyIHJlZG9pbmc6Iik7Cisg
ICAgICAgICAgICBkb2N1bWVudC51bmRvTWFuYWdlci5yZWRvKCk7CisgICAgICAgICAgICBbdW5k
b05hbWUsIHJlZG9OYW1lXSA9IGF3YWl0IFVJSGVscGVyLnVuZG9BbmRSZWRvQWN0aW9uTmFtZXMo
KTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidW5kb05hbWUiLCBmaXJzdEl0
ZW0ubGFiZWwpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWRvTmFtZSIs
IHNlY29uZEl0ZW0ubGFiZWwpOworCisgICAgICAgICAgICBkZWJ1ZygiQWZ0ZXIgcmVkb2luZyBh
Z2FpbjoiKTsKKyAgICAgICAgICAgIGRvY3VtZW50LnVuZG9NYW5hZ2VyLnJlZG8oKTsKKyAgICAg
ICAgICAgIFt1bmRvTmFtZSwgcmVkb05hbWVdID0gYXdhaXQgVUlIZWxwZXIudW5kb0FuZFJlZG9B
Y3Rpb25OYW1lcygpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ1bmRvTmFt
ZSIsIHNlY29uZEl0ZW0ubGFiZWwpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJyZWRvTmFtZSIsICIiKTsKKworICAgICAgICAgICAgZGVidWcoIkFmdGVyIHVuZG9pbmcgYW5k
IHRoZW4gcGFzdGluZzoiKTsKKyAgICAgICAgICAgIGRvY3VtZW50LnVuZG9NYW5hZ2VyLnVuZG8o
KTsKKyAgICAgICAgICAgIHNlbGVjdEFsbENvbW1hbmQoKTsKKyAgICAgICAgICAgIGNvcHlDb21t
YW5kKCk7CisgICAgICAgICAgICBwYXN0ZUNvbW1hbmQoKTsKKyAgICAgICAgICAgIFt1bmRvTmFt
ZSwgcmVkb05hbWVdID0gYXdhaXQgVUlIZWxwZXIudW5kb0FuZFJlZG9BY3Rpb25OYW1lcygpOwor
ICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ1bmRvTmFtZSIsICJQYXN0ZSIpOwor
ICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWRvTmFtZSIsICIiKTsKKworICAg
ICAgICAgICAgZGVidWcoIkFmdGVyIHVuZG9pbmcgdGhlIHBhc3RlIGNvbW1hbmQ6Iik7CisgICAg
ICAgICAgICBkb2N1bWVudC51bmRvTWFuYWdlci51bmRvKCk7CisgICAgICAgICAgICBbdW5kb05h
bWUsIHJlZG9OYW1lXSA9IGF3YWl0IFVJSGVscGVyLnVuZG9BbmRSZWRvQWN0aW9uTmFtZXMoKTsK
KyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidW5kb05hbWUiLCBmaXJzdEl0ZW0u
bGFiZWwpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWRvTmFtZSIsICJQ
YXN0ZSIpOworCisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorICAgICAg
ICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgor
ICAgICAgICA8aW5wdXQgaWQ9ImZpZWxkIj48L2lucHV0PgorICAgICAgICA8cHJlIGlkPSJkZXNj
cmlwdGlvbiI+PC9wcmU+CisgICAgICAgIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorICAgIDwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxw
ZXIuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCmluZGV4IDJmNTY5YWFj
YzU1YzQ1YzcwMjVjZTIxNmE3MDM0NTcyOTIyNGJjNmUuLjhjODViNmIzNDJkZDZkMmQyMTQwNjU0
NGEzODYzZGFhNWY4NzM4ZjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1o
ZWxwZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwpAQCAtNTA0
LDQgKzUwNCwxMyBAQCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAgICAgICAg
IGNvbnN0IGVzY2FwZWRJZGVudGlmaWVyID0gaWRlbnRpZmllci5yZXBsYWNlKC9gL2csICJcXGAi
KTsKICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdGVzdFJ1bm5lci5ydW5V
SVNjcmlwdChgdWlDb250cm9sbGVyLnNldEtleWJvYXJkSW5wdXRNb2RlSWRlbnRpZmllcihcYCR7
ZXNjYXBlZElkZW50aWZpZXJ9XGApYCwgcmVzb2x2ZSkpOwogICAgIH0KKworICAgIHN0YXRpYyB1
bmRvQW5kUmVkb0FjdGlvbk5hbWVzKCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5pc1dlYktp
dDIoKSkKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKKworICAgICAgICBj
b25zdCBzY3JpcHQgPSAiSlNPTi5zdHJpbmdpZnkoW3VpQ29udHJvbGxlci51bmRvQWN0aW9uTmFt
ZSwgdWlDb250cm9sbGVyLnJlZG9BY3Rpb25OYW1lXSkiOworICAgICAgICByZXR1cm4gbmV3IFBy
b21pc2UocmVzb2x2ZSA9PiB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KHNjcmlwdCwgcmVzdWx0ID0+
IHJlc29sdmUoSlNPTi5wYXJzZShyZXN1bHQpKSkpOworICAgIH0KIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359498</attachid>
            <date>2019-01-18 09:34:59 -0800</date>
            <delta_ts>2019-01-18 15:27:22 -0800</delta_ts>
            <desc>Part 1</desc>
            <filename>bug-193111-20190118093459.patch</filename>
            <type>text/plain</type>
            <size>23221</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjA5YWFhZmFmYzc0Yjgx
YTdhM2YxMWZjMmQ2N2IyNTc1OWU4ZTkyNS4uYjA4YTY2MGM1MDNhM2ZlNjgzNWQzMzJiYWY2ZjRk
NTk0ZGVlODZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTAxLTE4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEpTVW5kb0l0ZW0g
c2hvdWxkIHZpc2l0IGl0cyB1bmRvIGFuZCByZWRvIGhhbmRsZXJzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTMxMTEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICBBZGRpdGlvbmFs
bHkgc29ydCBzb21lIHVucmVsYXRlZCBXSExTTCBzb3VyY2VzLgorCisgICAgICAgICogYmluZGlu
Z3MvanMvSlNVbmRvSXRlbUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1VuZG9JdGVt
Ojp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbik6CisgICAgICAgICogcGFnZS9VbmRvSXRlbS5pZGw6
CisKIDIwMTktMDEtMTcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAK
ICAgICAgICAgW2lPU10gQ29udGVudCBvZmZzZXQganVtcHMgZXJyYXRpY2FsbHkgd2hlbiBhdXRv
c2Nyb2xsaW5nIG5lYXIgc2Nyb2xsIHZpZXcgY29udGVudCBpbnNldCBhcmVhcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAppbmRleCBiNjEyNDE5MmNlOTQ0NTJmNmQxZmU0YmJmMzA5ZmNkYWM0MWI0NzJhLi5kMzFiY2M4
MDczNzMyOTNlYTVhZDZiYWE3NWRlZTk5NTcwNzk4N2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNTIw
LDYgKzUyMCw3IEBAIGJpbmRpbmdzL2pzL0pTVGV4dFRyYWNrTGlzdEN1c3RvbS5jcHAKIGJpbmRp
bmdzL2pzL0pTVHJhY2tDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1RyZWVXYWxrZXJDdXN0b20u
Y3BwCiBiaW5kaW5ncy9qcy9KU1R5cGVkT01DU1NTdHlsZVZhbHVlQ3VzdG9tLmNwcAorYmluZGlu
Z3MvanMvSlNVbmRvSXRlbUN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTVmlkZW9UcmFja0N1c3Rv
bS5jcHAKIGJpbmRpbmdzL2pzL0pTVmlkZW9UcmFja0xpc3RDdXN0b20uY3BwCiBiaW5kaW5ncy9q
cy9KU1dlYkFuaW1hdGlvbkN1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjMGMyOTczODU1YmZhN2VjN2ZmYTcxMTQx
Mjc3YmVjOGNmNWU2MWQ3Li40OTQ3NGNmNTE1N2IzMTliMDJhN2RkZWZiNTQ1YjE2ZGIzY2RhYzU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC02NDMwLDE3ICs2NDMwLDE2IEBACiAJCTFDODQwQjlBMjFFQzQwMDkwMEQwNTAwRCAv
KiBXSExTTEdhdGhlckVudHJ5UG9pbnRJdGVtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTEdhdGhl
ckVudHJ5UG9pbnRJdGVtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzg0MEI5
QjIxRUM0MDA5MDBEMDUwMEQgLyogV0hMU0xDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdITFNMQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDOTA0REY5
MEJBOUQyQzgwMDgxRTlEMCAvKiBWZXJzaW9uLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2Nv
bmZpZzsgcGF0aCA9IFZlcnNpb24ueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTFDQTBDMkU0MjFFRUQxMkEwMEExMTg2MCAvKiBXSExTTEZ1bmN0aW9uU3RhZ2VDaGVja2Vy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdITFNMRnVuY3Rpb25TdGFnZUNoZWNrZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQ0EwQzJFNTIxRUVEMTJBMDBBMTE4NjAgLyog
V0hMU0xGdW5jdGlvblN0YWdlQ2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTEZ1bmN0aW9u
U3RhZ2VDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOUFFNUNBMjFF
RDlERjUwMDY5RDVGMiAvKiBXSExTTEhpZ2hab21iaWVGaW5kZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV0hMU0xIaWdoWm9tYmllRmluZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUM5QUU1Q0IyMUVEOURGNTAwNjlENUYyIC8qIFdITFNMSGlnaFpvbWJpZUZpbmRlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXSExTTEhpZ2hab21iaWVGaW5kZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUNBMEMyREUyMUVFQjVGNDAwQTExODYwIC8qIFdITFNMUmVjdXJzaW9u
Q2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTFJlY3Vyc2lvbkNoZWNrZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMEMyRTAyMUVFQjVGNTAwQTExODYwIC8qIFdITFNM
UmVjdXJzaW9uQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXSExTTFJlY3Vyc2lvbkNo
ZWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0EwQzJFNDIxRUVEMTJB
MDBBMTE4NjAgLyogV0hMU0xGdW5jdGlvblN0YWdlQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXSExTTEZ1bmN0aW9uU3RhZ2VDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUNBMEMyRTUyMUVFRDEyQTAwQTExODYwIC8qIFdITFNMRnVuY3Rpb25TdGFnZUNo
ZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xGdW5jdGlvblN0YWdlQ2hlY2tlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0EwQzJFQTIxRUVENkY1MDBBMTE4NjAgLyogV0hM
U0xMaXRlcmFsVHlwZUNoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xMaXRlcmFsVHlwZUNo
ZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMEMyRUMyMUVFRDZGNjAw
QTExODYwIC8qIFdITFNMTGl0ZXJhbFR5cGVDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdITFNMTGl0ZXJhbFR5cGVDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMUM5QUU1Q0EyMUVEOURGNTAwNjlENUYyIC8qIFdITFNMSGlnaFpvbWJpZUZpbmRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXSExTTEhpZ2hab21iaWVGaW5kZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkxQzlBRTVDQjIxRUQ5REY1MDA2OUQ1RjIgLyogV0hMU0xIaWdo
Wm9tYmllRmluZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNMSGlnaFpvbWJpZUZpbmRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0EwQzJGNDIxRUVEQUQwMDBBMTE4NjAgLyog
V0hMU0xMb29wQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXSExTTExvb3BDaGVja2Vy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMEMyRjUyMUVFREFEMTAwQTEx
ODYwIC8qIFdITFNMTG9vcENoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xMb29wQ2hlY2tl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQ0EwQzJGNjIxRUVEQUQyMDBBMTE4
NjAgLyogQVNUICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gZm9sZGVyOyBwYXRoID0gQVNUOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0Ex
OUUwMzBEQzI1NTk1MDA2NUE5OTQgLyogRXZlbnRMb29wTWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gRXZlbnRMb29wTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0ExOUUxNTBEQzI1NUNBMDA2NUE5OTQgLyogRXZlbnRMb29wLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TG9vcC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQ0FGMzQ3RTBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2Jq
ZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNjcmlwdE9iamVjdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzA5MCw4ICs3MDg5LDYgQEAKIAkJMzE5
QkRFNTMxRTdBODZDMTAwQkEyOTZDIC8qIEpTUlRDSWNlVHJhbnNwb3J0U3RhdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSVENJY2VUcmFuc3BvcnRTdGF0ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTlCREU1MzFFN0E4NkMxMDBCQTI5NkQgLyogSlNS
VENQZWVyQ29ubmVjdGlvblN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTUlRDUGVlckNvbm5lY3Rpb25TdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzMTlGQkQ1RDE1RDJGNDQ0MDA5NjQwQTYgLyogQ2FjaGVkSW1hZ2VDbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkSW1hZ2VDbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFBMDg4QzQxRTczN0IyQzAwM0I2NjA5IC8qIEpTV2ViR1BV
UmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1dlYkdQVVJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkzMUEwODhDNTFFNzM3QjJDMDAzQjY2MDkgLyogSlNXZWJHUFVSZW5k
ZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3JDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHUFVSZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3JD
dXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUEwODkxQjFFNzM4RDU5
MDAzQjY2MDkgLyogSlNXZWJHUFVCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNXZWJHUFVCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkzMUEwODkxRDFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVCdWZmZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHUFVCdWZmZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMzFBMDg5MUUxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVQ29t
bWFuZEJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dl
YkdQVUNvbW1hbmRCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTUx
MjMsNiArMTUxMjAsNyBAQAogCQlGNEQ0M0Q2NDIxODgwMkU2MDBFQ0VDQUMgLyogU2VyaWFsaXpl
ZEF0dGFjaG1lbnREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcmlhbGl6ZWRBdHRhY2htZW50RGF0
YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ5ODE3RDIxOTVGQkY2MDA4MjMw
RkMgLyogQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoYW5nZUxpc3RU
eXBlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ5ODE3RTIxOTVG
QkY2MDA4MjMwRkMgLyogQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENoYW5nZUxpc3RUeXBlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY0RTE5NjVBMjFGMjM5NTAwMDI4NTA3OCAvKiBKU1VuZG9JdGVtQ3VzdG9tLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVW5kb0l0ZW1DdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEU1N0VEQTIxM0YzRjVGMDA0RUE5OEUgLyog
Rm9udEF0dHJpYnV0ZUNoYW5nZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udEF0dHJpYnV0ZUNoYW5n
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFNTdFREYyMTNGNDM0QTAwNEVB
OThFIC8qIFdlYkNvcmVOU0ZvbnRNYW5hZ2VyRXh0cmFzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNv
cmVOU0ZvbnRNYW5hZ2VyRXh0cmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0
RTU3RUUwMjEzRjQzNEEwMDRFQTk4RSAvKiBXZWJDb3JlTlNGb250TWFuYWdlckV4dHJhcy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVOU0ZvbnRNYW5hZ2VyRXh0cmFzLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcwMzgsNiArMTcwMzYsMTAwIEBACiAJCQl0YWJX
aWR0aCA9IDg7CiAJCQl1c2VzVGFicyA9IDA7CiAJCX07CisJCTFDQTBDMkY2MjFFRURBRDIwMEEx
MTg2MCAvKiBBU1QgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAor
CQkJCTFDODQwQjkwMjFFQzMwRjkwMEQwNTAwRCAvKiBXSExTTEFkZHJlc3NTcGFjZS5oICovLAor
CQkJCUMyMUJGNzI1MjFDRDg5RTIwMDIyNzk3OSAvKiBXSExTTEFycmF5UmVmZXJlbmNlVHlwZS5o
ICovLAorCQkJCUMyMUJGNzA5MjFDRDg5Q0EwMDIyNzk3OSAvKiBXSExTTEFycmF5VHlwZS5oICov
LAorCQkJCUMyMUJGNzMwMjFDRDg5RUQwMDIyNzk3OSAvKiBXSExTTEFzc2lnbm1lbnRFeHByZXNz
aW9uLmggKi8sCisJCQkJQzIxQkY3MEEyMUNEODlDQjAwMjI3OTc5IC8qIFdITFNMQmFzZUZ1bmN0
aW9uQXR0cmlidXRlLmggKi8sCisJCQkJQzIxQkY2RkEyMUNEODlCRTAwMjI3OTc5IC8qIFdITFNM
QmFzZVNlbWFudGljLmggKi8sCisJCQkJQzIxQkY3MUUyMUNEODlEQzAwMjI3OTc5IC8qIFdITFNM
QmxvY2suaCAqLywKKwkJCQlDMjFCRjZGNjIxQ0Q4OUI3MDAyMjc5NzkgLyogV0hMU0xCb29sZWFu
TGl0ZXJhbC5oICovLAorCQkJCUMyMUJGNzFBMjFDRDg5RDgwMDIyNzk3OSAvKiBXSExTTEJyZWFr
LmggKi8sCisJCQkJQzIxMzhBMTMyMURERUNEMzAwRjUxNkJBIC8qIFdITFNMQnVpbHRJblNlbWFu
dGljLmNwcCAqLywKKwkJCQlDMjFCRjcyMjIxQ0Q4OURGMDAyMjc5NzkgLyogV0hMU0xCdWlsdElu
U2VtYW50aWMuaCAqLywKKwkJCQlDMjFCRjcxNjIxQ0Q4OUQ1MDAyMjc5NzkgLyogV0hMU0xDYWxs
RXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzA2MjFDRDg5QzcwMDIyNzk3OSAvKiBXSExTTENv
bW1hRXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzMzMjFDRDg5RjAwMDIyNzk3OSAvKiBXSExT
TENvbnN0YW50RXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNkY1MjFDRDg5QjUwMDIyNzk3OSAv
KiBXSExTTENvbnRpbnVlLmggKi8sCisJCQkJQzIxQkY3MDEyMUNEODlDNDAwMjI3OTc5IC8qIFdI
TFNMRGVyZWZlcmVuY2VFeHByZXNzaW9uLmggKi8sCisJCQkJQzIxQkY3MTgyMUNEODlENzAwMjI3
OTc5IC8qIFdITFNMRG90RXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNkZCMjFDRDg5QkUwMDIy
Nzk3OSAvKiBXSExTTERvV2hpbGVMb29wLmggKi8sCisJCQkJQzIxQkY3MjgyMUNEODlFNTAwMjI3
OTc5IC8qIFdITFNMRWZmZWN0ZnVsRXhwcmVzc2lvblN0YXRlbWVudC5oICovLAorCQkJCTFDODQw
QjdEMjFFQkUwQjgwMEQwNTAwRCAvKiBXSExTTEVudHJ5UG9pbnRUeXBlLmggKi8sCisJCQkJQzIx
QkY3MjAyMUNEODlERDAwMjI3OTc5IC8qIFdITFNMRW51bWVyYXRpb25EZWZpbml0aW9uLmggKi8s
CisJCQkJQzIxQkY3MjYyMUNEODlFMzAwMjI3OTc5IC8qIFdITFNMRW51bWVyYXRpb25NZW1iZXIu
aCAqLywKKwkJCQlDMjFCRjcwMjIxQ0Q4OUM0MDAyMjc5NzkgLyogV0hMU0xFbnVtZXJhdGlvbk1l
bWJlckxpdGVyYWwuaCAqLywKKwkJCQlDMjFCRjcwQzIxQ0Q4OUNDMDAyMjc5NzkgLyogV0hMU0xF
eHByZXNzaW9uLmggKi8sCisJCQkJQzIxQkY3MDAyMUNEODlDMjAwMjI3OTc5IC8qIFdITFNMRmFs
bHRocm91Z2guaCAqLywKKwkJCQlDMjFCRjczNTIxQ0Q4OUYyMDAyMjc5NzkgLyogV0hMU0xGbG9h
dExpdGVyYWwuaCAqLywKKwkJCQkxQ0I2OUIzODIxREYwM0UxMDA2RTg0NkEgLyogV0hMU0xGbG9h
dExpdGVyYWxUeXBlLmNwcCAqLywKKwkJCQkxQ0I2OUIzNDIxREVENjNBMDA2RTg0NkEgLyogV0hM
U0xGbG9hdExpdGVyYWxUeXBlLmggKi8sCisJCQkJQzIxQkY3MzQyMUNEODlGMTAwMjI3OTc5IC8q
IFdITFNMRm9yTG9vcC5oICovLAorCQkJCUMyMUJGNzA1MjFDRDg5QzcwMDIyNzk3OSAvKiBXSExT
TEZ1bmN0aW9uQXR0cmlidXRlLmggKi8sCisJCQkJQzIxQkY2RkQyMUNEODlDMDAwMjI3OTc5IC8q
IFdITFNMRnVuY3Rpb25EZWNsYXJhdGlvbi5oICovLAorCQkJCUMyMUJGNkY0MjFDRDg5QjMwMDIy
Nzk3OSAvKiBXSExTTEZ1bmN0aW9uRGVmaW5pdGlvbi5oICovLAorCQkJCUMyMUJGNkZGMjFDRDg5
QzIwMDIyNzk3OSAvKiBXSExTTElmU3RhdGVtZW50LmggKi8sCisJCQkJQzIxQkY2RjcyMUNEODlC
OTAwMjI3OTc5IC8qIFdITFNMSW5kZXhFeHByZXNzaW9uLmggKi8sCisJCQkJQzIwRjRGNjYyMURG
RjIzNjAwNzBDNDVBIC8qIFdITFNMSW50ZWdlckxpdGVyYWwuY3BwICovLAorCQkJCUMyMUJGNkY4
MjFDRDg5QkIwMDIyNzk3OSAvKiBXSExTTEludGVnZXJMaXRlcmFsLmggKi8sCisJCQkJMUNCNjlC
MzkyMURGMDNGMzAwNkU4NDZBIC8qIFdITFNMSW50ZWdlckxpdGVyYWxUeXBlLmNwcCAqLywKKwkJ
CQkxQ0I2OUIzNTIxREVENjQ5MDA2RTg0NkEgLyogV0hMU0xJbnRlZ2VyTGl0ZXJhbFR5cGUuaCAq
LywKKwkJCQlDMjFCRjczMjIxQ0Q4OUVGMDAyMjc5NzkgLyogV0hMU0xMb2dpY2FsRXhwcmVzc2lv
bi5oICovLAorCQkJCUMyMUJGNzE1MjFDRDg5RDQwMDIyNzk3OSAvKiBXSExTTExvZ2ljYWxOb3RF
eHByZXNzaW9uLmggKi8sCisJCQkJQzIxQkY3MkQyMUNEODlFOTAwMjI3OTc5IC8qIFdITFNMTWFr
ZUFycmF5UmVmZXJlbmNlRXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzJDMjFDRDg5RTkwMDIy
Nzk3OSAvKiBXSExTTE1ha2VQb2ludGVyRXhwcmVzc2lvbi5oICovLAorCQkJCTFDMzMyNzcxMjFD
RjBCRTEwMDBEQzlGMiAvKiBXSExTTE5hbWVkVHlwZS5oICovLAorCQkJCUMyMUJGNzIzMjFDRDg5
RTEwMDIyNzk3OSAvKiBXSExTTE5hdGl2ZUZ1bmN0aW9uRGVjbGFyYXRpb24uaCAqLywKKwkJCQlD
MjFCRjcyQTIxQ0Q4OUU3MDAyMjc5NzkgLyogV0hMU0xOYXRpdmVUeXBlRGVjbGFyYXRpb24uaCAq
LywKKwkJCQlDMjFCRjcyNDIxQ0Q4OUUxMDAyMjc5NzkgLyogV0hMU0xOb2RlLmggKi8sCisJCQkJ
QzIxQkY3MDcyMUNEODlDODAwMjI3OTc5IC8qIFdITFNMTnVsbExpdGVyYWwuaCAqLywKKwkJCQkx
Q0I2OUIzQTIxREYwNDAzMDA2RTg0NkEgLyogV0hMU0xOdWxsTGl0ZXJhbFR5cGUuY3BwICovLAor
CQkJCTFDQjY5QjM2MjFERUQ2NTcwMDZFODQ2QSAvKiBXSExTTE51bGxMaXRlcmFsVHlwZS5oICov
LAorCQkJCUMyMUJGNzIxMjFDRDg5REUwMDIyNzk3OSAvKiBXSExTTE51bVRocmVhZHNGdW5jdGlv
bkF0dHJpYnV0ZS5oICovLAorCQkJCUMyMUJGNzJGMjFDRDg5RUMwMDIyNzk3OSAvKiBXSExTTFBv
aW50ZXJUeXBlLmggKi8sCisJCQkJQzIxQkY3MkUyMUNEODlFQTAwMjI3OTc5IC8qIFdITFNMUHJv
cGVydHlBY2Nlc3NFeHByZXNzaW9uLmggKi8sCisJCQkJQzIxQkY3MEIyMUNEODlDQzAwMjI3OTc5
IC8qIFdITFNMUXVhbGlmaWVyLmggKi8sCisJCQkJQzIxQkY3MUIyMUNEODlEOTAwMjI3OTc5IC8q
IFdITFNMUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzBEMjFDRDg5
Q0QwMDIyNzk3OSAvKiBXSExTTFJlZmVyZW5jZVR5cGUuaCAqLywKKwkJCQkxQ0I2OUIzMjIxREVE
NDBCMDA2RTg0NkEgLyogV0hMU0xSZXNvbHZhYmxlVHlwZS5oICovLAorCQkJCUMyMTM4QTE1MjFE
REVDRTkwMEY1MTZCQSAvKiBXSExTTFJlc291cmNlU2VtYW50aWMuY3BwICovLAorCQkJCUMyMUJG
NzA4MjFDRDg5QzkwMDIyNzk3OSAvKiBXSExTTFJlc291cmNlU2VtYW50aWMuaCAqLywKKwkJCQlD
MjFCRjcwMzIxQ0Q4OUM1MDAyMjc5NzkgLyogV0hMU0xSZXR1cm4uaCAqLywKKwkJCQlDMjFCRjZG
OTIxQ0Q4OUJEMDAyMjc5NzkgLyogV0hMU0xTZW1hbnRpYy5oICovLAorCQkJCUMyMTM4QTE2MjFE
REVDRkIwMEY1MTZCQSAvKiBXSExTTFNwZWNpYWxpemF0aW9uQ29uc3RhbnRTZW1hbnRpYy5jcHAg
Ki8sCisJCQkJQzIxQkY3MzYyMUNEODlGMzAwMjI3OTc5IC8qIFdITFNMU3BlY2lhbGl6YXRpb25D
b25zdGFudFNlbWFudGljLmggKi8sCisJCQkJQzIxMzhBMTcyMURERUQwRDAwRjUxNkJBIC8qIFdI
TFNMU3RhZ2VJbk91dFNlbWFudGljLmNwcCAqLywKKwkJCQlDMjFCRjcwRTIxQ0Q4OUNFMDAyMjc5
NzkgLyogV0hMU0xTdGFnZUluT3V0U2VtYW50aWMuaCAqLywKKwkJCQlDMjFCRjcxMjIxQ0Q4OUQx
MDAyMjc5NzkgLyogV0hMU0xTdGF0ZW1lbnQuaCAqLywKKwkJCQlDMjFCRjcyNzIxQ0Q4OUU0MDAy
Mjc5NzkgLyogV0hMU0xTdHJ1Y3R1cmVEZWZpbml0aW9uLmggKi8sCisJCQkJQzIxQkY2RkUyMUNE
ODlDMTAwMjI3OTc5IC8qIFdITFNMU3RydWN0dXJlRWxlbWVudC5oICovLAorCQkJCUMyMUJGNzE5
MjFDRDg5RDcwMDIyNzk3OSAvKiBXSExTTFN3aXRjaENhc2UuaCAqLywKKwkJCQlDMjFCRjczMTIx
Q0Q4OUVFMDAyMjc5NzkgLyogV0hMU0xTd2l0Y2hTdGF0ZW1lbnQuaCAqLywKKwkJCQlDMjFCRjcx
QzIxQ0Q4OURBMDAyMjc5NzkgLyogV0hMU0xUZXJuYXJ5RXhwcmVzc2lvbi5oICovLAorCQkJCUMy
MUJGNkYzMjFDRDg5QUQwMDIyNzk3OSAvKiBXSExTTFRyYXAuaCAqLywKKwkJCQlDMjFCRjcxRDIx
Q0Q4OURCMDAyMjc5NzkgLyogV0hMU0xUeXBlLmggKi8sCisJCQkJQzI4OEM3MkQyMUM5OTFEQTAw
MkRGNUNBIC8qIFdITFNMVHlwZUFyZ3VtZW50LmNwcCAqLywKKwkJCQlDMjFCRjcxMTIxQ0Q4OUQx
MDAyMjc5NzkgLyogV0hMU0xUeXBlQXJndW1lbnQuaCAqLywKKwkJCQlDMjFCRjcyOTIxQ0Q4OUU2
MDAyMjc5NzkgLyogV0hMU0xUeXBlRGVmaW5pdGlvbi5oICovLAorCQkJCUMyMEY0RjY0MjFERkJF
NUMwMDcwQzQ1QSAvKiBXSExTTFR5cGVSZWZlcmVuY2UuY3BwICovLAorCQkJCUMyMUJGNzFGMjFD
RDg5REMwMDIyNzk3OSAvKiBXSExTTFR5cGVSZWZlcmVuY2UuaCAqLywKKwkJCQkxQzMzMjc3MjIx
Q0YwRDJFMDAwREM5RjIgLyogV0hMU0xVbm5hbWVkVHlwZS5oICovLAorCQkJCUMyMEY0RjY3MjFE
RkYzQTcwMDcwQzQ1QSAvKiBXSExTTFVuc2lnbmVkSW50ZWdlckxpdGVyYWwuY3BwICovLAorCQkJ
CUMyMUJGNzJCMjFDRDg5RTgwMDIyNzk3OSAvKiBXSExTTFVuc2lnbmVkSW50ZWdlckxpdGVyYWwu
aCAqLywKKwkJCQkxQ0I2OUIzQjIxREYwNDFFMDA2RTg0NkEgLyogV0hMU0xVbnNpZ25lZEludGVn
ZXJMaXRlcmFsVHlwZS5jcHAgKi8sCisJCQkJMUNCNjlCMzcyMURFRDY2QjAwNkU4NDZBIC8qIFdI
TFNMVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5cGUuaCAqLywKKwkJCQlDMjFCRjZGQzIxQ0Q4OUJG
MDAyMjc5NzkgLyogV0hMU0xWYWx1ZS5oICovLAorCQkJCUMyMUJGNzEwMjFDRDg5RDAwMDIyNzk3
OSAvKiBXSExTTFZhcmlhYmxlRGVjbGFyYXRpb24uaCAqLywKKwkJCQlDMjFCRjcxNDIxQ0Q4OUQz
MDAyMjc5NzkgLyogV0hMU0xWYXJpYWJsZURlY2xhcmF0aW9uc1N0YXRlbWVudC5oICovLAorCQkJ
CUMyMUJGNzEzMjFDRDg5RDIwMDIyNzk3OSAvKiBXSExTTFZhcmlhYmxlUmVmZXJlbmNlLmggKi8s
CisJCQkJQzIxQkY3MDQyMUNEODlDNjAwMjI3OTc5IC8qIFdITFNMV2hpbGVMb29wLmggKi8sCisJ
CQkpOworCQkJcGF0aCA9IEFTVDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJ
CTFDREQ0NDY2MEJBOUM4MDAwMEY5MDE0NyAvKiBDb25maWd1cmF0aW9ucyAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yMDY4MSwxMyArMjA3NzMsMTIgQEAK
IAkJCQkwNzg0NjM4NDE0NUIxQjhFMDBBNThERjEgLyogSlNUcmFja0N1c3RvbS5oICovLAogCQkJ
CTUxNkJCNzkyMENFOTFFNjgwMDUxMkY3OSAvKiBKU1RyZWVXYWxrZXJDdXN0b20uY3BwICovLAog
CQkJCTRCQUZEMEUyMjE5MjYwNEQwMEMwQUI2NCAvKiBKU1R5cGVkT01DU1NTdHlsZVZhbHVlQ3Vz
dG9tLmNwcCAqLywKKwkJCQlGNEUxOTY1QTIxRjIzOTUwMDAyODUwNzggLyogSlNVbmRvSXRlbUN1
c3RvbS5jcHAgKi8sCiAJCQkJQkU2REY3MDgxNzFDQTJDNTAwREQ1MkI4IC8qIEpTVmlkZW9UcmFj
a0N1c3RvbS5jcHAgKi8sCiAJCQkJQkU2REY3MEExNzFDQTJDNTAwREQ1MkI4IC8qIEpTVmlkZW9U
cmFja0xpc3RDdXN0b20uY3BwICovLAogCQkJCTcxNURBNUQzMjAxQkI5MDIwMDJFRjJCMCAvKiBK
U1dlYkFuaW1hdGlvbkN1c3RvbS5jcHAgKi8sCiAJCQkJRDNGM0QzNTkxQTY5QTNCMDAwNTlGQzJC
IC8qIEpTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgKi8sCiAJCQkJNDlFRUQxNEMx
MDUxOTcxQTAwMDk5RkFCIC8qIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCAqLywK
LQkJCQkzMUEwODhDNDFFNzM3QjJDMDAzQjY2MDkgLyogSlNXZWJHUFVSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcCAqLywKLQkJCQkzMUEwODhDNTFFNzM3QjJDMDAzQjY2MDkgLyogSlNXZWJHUFVS
ZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3JDdXN0b20uY3BwICovLAogCQkJCUUxODI1OEFC
MEVGM0NENzAwMDkzMzI0MiAvKiBKU1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCAqLywKIAkJ
CQk0NkY5MUJDOTFGQ0REMEZFMDAxNTk5QzMgLyogSlNXb3JrZXJOYXZpZ2F0b3JDdXN0b20uY3Bw
ICovLAogCQkJCTgzQTRBOUY4MUNFN0ZEN0UwMDcwOUIwMCAvKiBKU1hNTERvY3VtZW50Q3VzdG9t
LmNwcCAqLywKQEAgLTI1NTE1LDEwMCArMjU2MDYsNiBAQAogCQkJcGF0aCA9IFdITFNMOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJMUNBMEMyRjYyMUVFREFEMjAwQTExODYw
IC8qIEFTVCAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJ
MUM4NDBCOTAyMUVDMzBGOTAwRDA1MDBEIC8qIFdITFNMQWRkcmVzc1NwYWNlLmggKi8sCi0JCQkJ
QzIxQkY3MjUyMUNEODlFMjAwMjI3OTc5IC8qIFdITFNMQXJyYXlSZWZlcmVuY2VUeXBlLmggKi8s
Ci0JCQkJQzIxQkY3MDkyMUNEODlDQTAwMjI3OTc5IC8qIFdITFNMQXJyYXlUeXBlLmggKi8sCi0J
CQkJQzIxQkY3MzAyMUNEODlFRDAwMjI3OTc5IC8qIFdITFNMQXNzaWdubWVudEV4cHJlc3Npb24u
aCAqLywKLQkJCQlDMjFCRjcwQTIxQ0Q4OUNCMDAyMjc5NzkgLyogV0hMU0xCYXNlRnVuY3Rpb25B
dHRyaWJ1dGUuaCAqLywKLQkJCQlDMjFCRjZGQTIxQ0Q4OUJFMDAyMjc5NzkgLyogV0hMU0xCYXNl
U2VtYW50aWMuaCAqLywKLQkJCQlDMjFCRjcxRTIxQ0Q4OURDMDAyMjc5NzkgLyogV0hMU0xCbG9j
ay5oICovLAotCQkJCUMyMUJGNkY2MjFDRDg5QjcwMDIyNzk3OSAvKiBXSExTTEJvb2xlYW5MaXRl
cmFsLmggKi8sCi0JCQkJQzIxQkY3MUEyMUNEODlEODAwMjI3OTc5IC8qIFdITFNMQnJlYWsuaCAq
LywKLQkJCQlDMjEzOEExMzIxRERFQ0QzMDBGNTE2QkEgLyogV0hMU0xCdWlsdEluU2VtYW50aWMu
Y3BwICovLAotCQkJCUMyMUJGNzIyMjFDRDg5REYwMDIyNzk3OSAvKiBXSExTTEJ1aWx0SW5TZW1h
bnRpYy5oICovLAotCQkJCUMyMUJGNzE2MjFDRDg5RDUwMDIyNzk3OSAvKiBXSExTTENhbGxFeHBy
ZXNzaW9uLmggKi8sCi0JCQkJQzIxQkY3MDYyMUNEODlDNzAwMjI3OTc5IC8qIFdITFNMQ29tbWFF
eHByZXNzaW9uLmggKi8sCi0JCQkJQzIxQkY3MzMyMUNEODlGMDAwMjI3OTc5IC8qIFdITFNMQ29u
c3RhbnRFeHByZXNzaW9uLmggKi8sCi0JCQkJQzIxQkY2RjUyMUNEODlCNTAwMjI3OTc5IC8qIFdI
TFNMQ29udGludWUuaCAqLywKLQkJCQlDMjFCRjcwMTIxQ0Q4OUM0MDAyMjc5NzkgLyogV0hMU0xE
ZXJlZmVyZW5jZUV4cHJlc3Npb24uaCAqLywKLQkJCQlDMjFCRjcxODIxQ0Q4OUQ3MDAyMjc5Nzkg
LyogV0hMU0xEb3RFeHByZXNzaW9uLmggKi8sCi0JCQkJQzIxQkY2RkIyMUNEODlCRTAwMjI3OTc5
IC8qIFdITFNMRG9XaGlsZUxvb3AuaCAqLywKLQkJCQlDMjFCRjcyODIxQ0Q4OUU1MDAyMjc5Nzkg
LyogV0hMU0xFZmZlY3RmdWxFeHByZXNzaW9uU3RhdGVtZW50LmggKi8sCi0JCQkJMUM4NDBCN0Qy
MUVCRTBCODAwRDA1MDBEIC8qIFdITFNMRW50cnlQb2ludFR5cGUuaCAqLywKLQkJCQlDMjFCRjcy
MDIxQ0Q4OUREMDAyMjc5NzkgLyogV0hMU0xFbnVtZXJhdGlvbkRlZmluaXRpb24uaCAqLywKLQkJ
CQlDMjFCRjcyNjIxQ0Q4OUUzMDAyMjc5NzkgLyogV0hMU0xFbnVtZXJhdGlvbk1lbWJlci5oICov
LAotCQkJCUMyMUJGNzAyMjFDRDg5QzQwMDIyNzk3OSAvKiBXSExTTEVudW1lcmF0aW9uTWVtYmVy
TGl0ZXJhbC5oICovLAotCQkJCUMyMUJGNzBDMjFDRDg5Q0MwMDIyNzk3OSAvKiBXSExTTEV4cHJl
c3Npb24uaCAqLywKLQkJCQlDMjFCRjcwMDIxQ0Q4OUMyMDAyMjc5NzkgLyogV0hMU0xGYWxsdGhy
b3VnaC5oICovLAotCQkJCUMyMUJGNzM1MjFDRDg5RjIwMDIyNzk3OSAvKiBXSExTTEZsb2F0TGl0
ZXJhbC5oICovLAotCQkJCTFDQjY5QjM4MjFERjAzRTEwMDZFODQ2QSAvKiBXSExTTEZsb2F0TGl0
ZXJhbFR5cGUuY3BwICovLAotCQkJCTFDQjY5QjM0MjFERUQ2M0EwMDZFODQ2QSAvKiBXSExTTEZs
b2F0TGl0ZXJhbFR5cGUuaCAqLywKLQkJCQlDMjFCRjczNDIxQ0Q4OUYxMDAyMjc5NzkgLyogV0hM
U0xGb3JMb29wLmggKi8sCi0JCQkJQzIxQkY3MDUyMUNEODlDNzAwMjI3OTc5IC8qIFdITFNMRnVu
Y3Rpb25BdHRyaWJ1dGUuaCAqLywKLQkJCQlDMjFCRjZGRDIxQ0Q4OUMwMDAyMjc5NzkgLyogV0hM
U0xGdW5jdGlvbkRlY2xhcmF0aW9uLmggKi8sCi0JCQkJQzIxQkY2RjQyMUNEODlCMzAwMjI3OTc5
IC8qIFdITFNMRnVuY3Rpb25EZWZpbml0aW9uLmggKi8sCi0JCQkJQzIxQkY2RkYyMUNEODlDMjAw
MjI3OTc5IC8qIFdITFNMSWZTdGF0ZW1lbnQuaCAqLywKLQkJCQlDMjFCRjZGNzIxQ0Q4OUI5MDAy
Mjc5NzkgLyogV0hMU0xJbmRleEV4cHJlc3Npb24uaCAqLywKLQkJCQlDMjBGNEY2NjIxREZGMjM2
MDA3MEM0NUEgLyogV0hMU0xJbnRlZ2VyTGl0ZXJhbC5jcHAgKi8sCi0JCQkJQzIxQkY2RjgyMUNE
ODlCQjAwMjI3OTc5IC8qIFdITFNMSW50ZWdlckxpdGVyYWwuaCAqLywKLQkJCQkxQ0I2OUIzOTIx
REYwM0YzMDA2RTg0NkEgLyogV0hMU0xJbnRlZ2VyTGl0ZXJhbFR5cGUuY3BwICovLAotCQkJCTFD
QjY5QjM1MjFERUQ2NDkwMDZFODQ2QSAvKiBXSExTTEludGVnZXJMaXRlcmFsVHlwZS5oICovLAot
CQkJCUMyMUJGNzMyMjFDRDg5RUYwMDIyNzk3OSAvKiBXSExTTExvZ2ljYWxFeHByZXNzaW9uLmgg
Ki8sCi0JCQkJQzIxQkY3MTUyMUNEODlENDAwMjI3OTc5IC8qIFdITFNMTG9naWNhbE5vdEV4cHJl
c3Npb24uaCAqLywKLQkJCQlDMjFCRjcyRDIxQ0Q4OUU5MDAyMjc5NzkgLyogV0hMU0xNYWtlQXJy
YXlSZWZlcmVuY2VFeHByZXNzaW9uLmggKi8sCi0JCQkJQzIxQkY3MkMyMUNEODlFOTAwMjI3OTc5
IC8qIFdITFNMTWFrZVBvaW50ZXJFeHByZXNzaW9uLmggKi8sCi0JCQkJMUMzMzI3NzEyMUNGMEJF
MTAwMERDOUYyIC8qIFdITFNMTmFtZWRUeXBlLmggKi8sCi0JCQkJQzIxQkY3MjMyMUNEODlFMTAw
MjI3OTc5IC8qIFdITFNMTmF0aXZlRnVuY3Rpb25EZWNsYXJhdGlvbi5oICovLAotCQkJCUMyMUJG
NzJBMjFDRDg5RTcwMDIyNzk3OSAvKiBXSExTTE5hdGl2ZVR5cGVEZWNsYXJhdGlvbi5oICovLAot
CQkJCUMyMUJGNzI0MjFDRDg5RTEwMDIyNzk3OSAvKiBXSExTTE5vZGUuaCAqLywKLQkJCQlDMjFC
RjcwNzIxQ0Q4OUM4MDAyMjc5NzkgLyogV0hMU0xOdWxsTGl0ZXJhbC5oICovLAotCQkJCTFDQjY5
QjNBMjFERjA0MDMwMDZFODQ2QSAvKiBXSExTTE51bGxMaXRlcmFsVHlwZS5jcHAgKi8sCi0JCQkJ
MUNCNjlCMzYyMURFRDY1NzAwNkU4NDZBIC8qIFdITFNMTnVsbExpdGVyYWxUeXBlLmggKi8sCi0J
CQkJQzIxQkY3MjEyMUNEODlERTAwMjI3OTc5IC8qIFdITFNMTnVtVGhyZWFkc0Z1bmN0aW9uQXR0
cmlidXRlLmggKi8sCi0JCQkJQzIxQkY3MkYyMUNEODlFQzAwMjI3OTc5IC8qIFdITFNMUG9pbnRl
clR5cGUuaCAqLywKLQkJCQlDMjFCRjcyRTIxQ0Q4OUVBMDAyMjc5NzkgLyogV0hMU0xQcm9wZXJ0
eUFjY2Vzc0V4cHJlc3Npb24uaCAqLywKLQkJCQlDMjFCRjcwQjIxQ0Q4OUNDMDAyMjc5NzkgLyog
V0hMU0xRdWFsaWZpZXIuaCAqLywKLQkJCQlDMjFCRjcxQjIxQ0Q4OUQ5MDAyMjc5NzkgLyogV0hM
U0xSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uLmggKi8sCi0JCQkJQzIxQkY3MEQyMUNEODlDRDAw
MjI3OTc5IC8qIFdITFNMUmVmZXJlbmNlVHlwZS5oICovLAotCQkJCTFDQjY5QjMyMjFERUQ0MEIw
MDZFODQ2QSAvKiBXSExTTFJlc29sdmFibGVUeXBlLmggKi8sCi0JCQkJQzIxMzhBMTUyMURERUNF
OTAwRjUxNkJBIC8qIFdITFNMUmVzb3VyY2VTZW1hbnRpYy5jcHAgKi8sCi0JCQkJQzIxQkY3MDgy
MUNEODlDOTAwMjI3OTc5IC8qIFdITFNMUmVzb3VyY2VTZW1hbnRpYy5oICovLAotCQkJCUMyMUJG
NzAzMjFDRDg5QzUwMDIyNzk3OSAvKiBXSExTTFJldHVybi5oICovLAotCQkJCUMyMUJGNkY5MjFD
RDg5QkQwMDIyNzk3OSAvKiBXSExTTFNlbWFudGljLmggKi8sCi0JCQkJQzIxMzhBMTYyMURERUNG
QjAwRjUxNkJBIC8qIFdITFNMU3BlY2lhbGl6YXRpb25Db25zdGFudFNlbWFudGljLmNwcCAqLywK
LQkJCQlDMjFCRjczNjIxQ0Q4OUYzMDAyMjc5NzkgLyogV0hMU0xTcGVjaWFsaXphdGlvbkNvbnN0
YW50U2VtYW50aWMuaCAqLywKLQkJCQlDMjEzOEExNzIxRERFRDBEMDBGNTE2QkEgLyogV0hMU0xT
dGFnZUluT3V0U2VtYW50aWMuY3BwICovLAotCQkJCUMyMUJGNzBFMjFDRDg5Q0UwMDIyNzk3OSAv
KiBXSExTTFN0YWdlSW5PdXRTZW1hbnRpYy5oICovLAotCQkJCUMyMUJGNzEyMjFDRDg5RDEwMDIy
Nzk3OSAvKiBXSExTTFN0YXRlbWVudC5oICovLAotCQkJCUMyMUJGNzI3MjFDRDg5RTQwMDIyNzk3
OSAvKiBXSExTTFN0cnVjdHVyZURlZmluaXRpb24uaCAqLywKLQkJCQlDMjFCRjZGRTIxQ0Q4OUMx
MDAyMjc5NzkgLyogV0hMU0xTdHJ1Y3R1cmVFbGVtZW50LmggKi8sCi0JCQkJQzIxQkY3MTkyMUNE
ODlENzAwMjI3OTc5IC8qIFdITFNMU3dpdGNoQ2FzZS5oICovLAotCQkJCUMyMUJGNzMxMjFDRDg5
RUUwMDIyNzk3OSAvKiBXSExTTFN3aXRjaFN0YXRlbWVudC5oICovLAotCQkJCUMyMUJGNzFDMjFD
RDg5REEwMDIyNzk3OSAvKiBXSExTTFRlcm5hcnlFeHByZXNzaW9uLmggKi8sCi0JCQkJQzIxQkY2
RjMyMUNEODlBRDAwMjI3OTc5IC8qIFdITFNMVHJhcC5oICovLAotCQkJCUMyMUJGNzFEMjFDRDg5
REIwMDIyNzk3OSAvKiBXSExTTFR5cGUuaCAqLywKLQkJCQlDMjg4QzcyRDIxQzk5MURBMDAyREY1
Q0EgLyogV0hMU0xUeXBlQXJndW1lbnQuY3BwICovLAotCQkJCUMyMUJGNzExMjFDRDg5RDEwMDIy
Nzk3OSAvKiBXSExTTFR5cGVBcmd1bWVudC5oICovLAotCQkJCUMyMUJGNzI5MjFDRDg5RTYwMDIy
Nzk3OSAvKiBXSExTTFR5cGVEZWZpbml0aW9uLmggKi8sCi0JCQkJQzIwRjRGNjQyMURGQkU1QzAw
NzBDNDVBIC8qIFdITFNMVHlwZVJlZmVyZW5jZS5jcHAgKi8sCi0JCQkJQzIxQkY3MUYyMUNEODlE
QzAwMjI3OTc5IC8qIFdITFNMVHlwZVJlZmVyZW5jZS5oICovLAotCQkJCTFDMzMyNzcyMjFDRjBE
MkUwMDBEQzlGMiAvKiBXSExTTFVubmFtZWRUeXBlLmggKi8sCi0JCQkJQzIwRjRGNjcyMURGRjNB
NzAwNzBDNDVBIC8qIFdITFNMVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbC5jcHAgKi8sCi0JCQkJQzIx
QkY3MkIyMUNEODlFODAwMjI3OTc5IC8qIFdITFNMVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbC5oICov
LAotCQkJCTFDQjY5QjNCMjFERjA0MUUwMDZFODQ2QSAvKiBXSExTTFVuc2lnbmVkSW50ZWdlckxp
dGVyYWxUeXBlLmNwcCAqLywKLQkJCQkxQ0I2OUIzNzIxREVENjZCMDA2RTg0NkEgLyogV0hMU0xV
bnNpZ25lZEludGVnZXJMaXRlcmFsVHlwZS5oICovLAotCQkJCUMyMUJGNkZDMjFDRDg5QkYwMDIy
Nzk3OSAvKiBXSExTTFZhbHVlLmggKi8sCi0JCQkJQzIxQkY3MTAyMUNEODlEMDAwMjI3OTc5IC8q
IFdITFNMVmFyaWFibGVEZWNsYXJhdGlvbi5oICovLAotCQkJCUMyMUJGNzE0MjFDRDg5RDMwMDIy
Nzk3OSAvKiBXSExTTFZhcmlhYmxlRGVjbGFyYXRpb25zU3RhdGVtZW50LmggKi8sCi0JCQkJQzIx
QkY3MTMyMUNEODlEMjAwMjI3OTc5IC8qIFdITFNMVmFyaWFibGVSZWZlcmVuY2UuaCAqLywKLQkJ
CQlDMjFCRjcwNDIxQ0Q4OUM2MDAyMjc5NzkgLyogV0hMU0xXaGlsZUxvb3AuaCAqLywKLQkJCSk7
Ci0JCQlwYXRoID0gQVNUOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKIAkJQzk2
RjVFQkYxQjU4NzIyNjAwOTFFQTlEIC8qIG1lZGlhc2Vzc2lvbiAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1VuZG9JdGVtQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTVW5kb0l0ZW1DdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2ZmU4YjQ0NzRjZmFlMTI4N2U0NjNl
Y2YyMDhlOTYzZGI0ZTg4YWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1VuZG9JdGVtQ3VzdG9tLmNwcApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTVW5kb0l0ZW0uaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCit2b2lkIEpTVW5kb0l0ZW06OnZpc2l0QWRkaXRpb25hbENoaWxkcmVu
KEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgd3JhcHBlZCgpLnVuZG9IYW5kbGVy
KCkudmlzaXRKU0Z1bmN0aW9uKHZpc2l0b3IpOworICAgIHdyYXBwZWQoKS5yZWRvSGFuZGxlcigp
LnZpc2l0SlNGdW5jdGlvbih2aXNpdG9yKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvSXRlbS5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1VuZG9JdGVtLmlkbAppbmRleCAwOWI5N2M4YzE1MGMxMDdlMDk0MTQxOGVjMTE3
NzBkODZkNGE5MWNhLi5lMDJjNjJhMmYwMDhiZGExNjRmOTRkNDI0MDc2Yjg0ODQ0YzEyZjVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9JdGVtLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1VuZG9JdGVtLmlkbApAQCAtMzQsNiArMzQsNyBAQAogWwogICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9VW5kb01hbmFnZXJBUEksCiAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJs
ZSwKKyAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKICAgICBDb25zdHJ1Y3RvcihVbmRvSXRlbUlu
aXQgaW5pdERpY3QpLAogXSBpbnRlcmZhY2UgVW5kb0l0ZW0gewogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgbGFiZWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359590</attachid>
            <date>2019-01-18 23:43:24 -0800</date>
            <delta_ts>2019-01-18 23:52:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193111-20190118234324.patch</filename>
            <type>text/plain</type>
            <size>33667</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjA5YWFhZmFmYzc0Yjgx
YTdhM2YxMWZjMmQ2N2IyNTc1OWU4ZTkyNS4uOWU1Mzc4Yjg0MGE4OGY3NmNmODE2NTRlNzZiODFk
MjI5MTc2Y2ExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE5LTAxLTE4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzb21lIGJp
bmRpbmdzLXJlbGF0ZWQgYm9va2tlZXBwaW5nIHRvIFVuZG9NYW5hZ2VyIGFuZCBVbmRvSXRlbQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMTExCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NDgwNzA0OD4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIHdvcmsgaW4gcHJvZ3Jlc3Mg
dG93YXJkcyBzdXBwb3J0aW5nIGBVbmRvTWFuYWdlci5hZGRJdGVtKClgLiBIZXJlLCB3ZSBhZGQg
aGVscGVyIG1ldGhvZHMgdG8KKyAgICAgICAgVW5kb0l0ZW0gYW5kIFVuZG9NYW5hZ2VyIHdoaWNo
IGxhdGVyIHBhdGNoZXMgd2lsbCBleGVyY2lzZSwgYXMgd2VsbCBhcyBpbnRyb2R1Y2Ugc29tZSBj
dXN0b20gYmluZGluZ3MgdG8KKyAgICAgICAgcHJvcGVybHkgaGFuZGxlIHRoZSBjYXNlIHdoZXJl
IFVuZG9JdGVtcyBhcmUgZ2l2ZW4gYW5vbnltb3VzIEphdmFTY3JpcHQgZnVuY3Rpb25zIChzZWUg
YmVsb3cgZm9yIG1vcmUgZGV0YWlscykuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBiZWNhdXNl
IHRoZXJlIGlzIG5vIHNjcmlwdC1vYnNlcnZhYmxlIGNoYW5nZSBpbiBiZWhhdmlvciB5ZXQuIFdo
ZW4gYGFkZEl0ZW1zKClgIGlzIGhvb2tlZCB1cCwgSQorICAgICAgICB3aWxsIHdyaXRlIGEgdGVz
dCB0byB2ZXJpZnkgdGhhdCB0aGUgdW5kbyBhbmQgcmVkbyBKYXZhU2NyaXB0IGZ1bmN0aW9ucyBz
dXJ2aXZlIGdhcmJhZ2UgY29sbGVjdGlvbi4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICBBdXRv
LXNvcnQgc29tZSBXSExTTCBoZWFkZXJzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNVbmRv
SXRlbUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1VuZG9JdGVtOjp2aXNpdEFkZGl0
aW9uYWxDaGlsZHJlbik6CisKKyAgICAgICAgSGF2ZSBlYWNoIEpTVW5kb0l0ZW0gdmlzaXQgaXRz
IHVuZG8gYW5kIHJlZG8gY2FsbGJhY2sgZnVuY3Rpb25zIHRvIGVuc3VyZSB0aGF0IHRoZSBKYXZh
U2NyaXB0IHdyYXBwZXIgb2JqZWN0cworICAgICAgICBmb3IgdGhlc2UgZnVuY3Rpb25zIGFyZSBu
b3QgZ2FyYmFnZSBjb2xsZWN0ZWQgdW5kZXJuZWF0aCB0aGUgaXRlbS4KKworICAgICAgICAoV2Vi
Q29yZTo6SlNVbmRvSXRlbU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisKKyAg
ICAgICAgQ29uc2lkZXIgdGhlIHVuZG8gaXRlbSB3cmFwcGVyIHJlYWNoYWJsZSBmcm9tIG9wYXF1
ZSByb290cyBpZiBpdCBpcyBhc3NvY2lhdGVkIHdpdGggaXRzIFVuZG9NYW5hZ2VyJ3MgRG9jdW1l
bnQuCisgICAgICAgIFRoaXMgZW5zdXJlcyB0aGF0IGlmIHNjcmlwdCBpc24ndCBob2xkaW5nIG9u
IHRvIGEgcmVmZXJlbmNlIHRvIHRoZSB3cmFwcGVyIChmb3IgaW5zdGFuY2UsIGJ5IGNhbGxpbmcK
KyAgICAgICAgYFVuZG9NYW5hZ2VyLmFkZEl0ZW0obmV3IFVuZG9JdGVtKHsgLi4uIH0pKWApLCB3
ZSBzdGlsbCBwcm90ZWN0IHRoZSBjb3JyZXNwb25kaW5nIEpTVW5kb0l0ZW0gYXMgbG9uZyBhcyB0
aGUKKyAgICAgICAgVW5kb01hbmFnZXIncyBEb2N1bWVudCBpcyBhbGl2ZS4gSW4gdGhlIGNhc2Ug
d2hlcmUgdGhlIHVuZG8gaXRlbSBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIGEgZG9jdW1lbnQsIGVp
dGhlciAoMSkKKyAgICAgICAgc2NyaXB0IGlzIGtlZXBpbmcgYSByZWZlcmVuY2UgdG8gaXQsIGlu
IHdoaWNoIGNhc2UgaXQgd2lsbCBiZSB0cml2aWFsbHkgcmVhY2hhYmxlLCBvciAoMikgc2NyaXB0
IHdvbid0IGJlIGFibGUKKyAgICAgICAgdG8gb2JzZXJ2ZSB0aGUgZGVzdHJ1Y3Rpb24gb2YgdGhl
IHdyYXBwZXIgYW55d2F5cyAoZS5nLiBjYWxsaW5nIGBuZXcgVW5kb0l0ZW0oeyAuLi4gfSlgIGJ5
IGl0c2VsZikuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OnByZXBhcmVGb3JEZXN0cnVjdGlvbik6CisKKyAgICAgICAgSW52YWxpZGF0
ZSBhbGwgdW5kbyBpdGVtcyB3aGVuIHRoZSBkb2N1bWVudCBpcyBhYm91dCB0byBnbyBhd2F5Lgor
CisgICAgICAgICogcGFnZS9VbmRvSXRlbS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvVW5kb01hbmFnZXIuY3BwLgorICAgICAgICAoV2ViQ29yZTo6VW5kb0l0ZW06OnNldFVu
ZG9NYW5hZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlVuZG9JdGVtOjppbnZhbGlkYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlVuZG9JdGVtOjppc1ZhbGlkIGNvbnN0KToKKworICAgICAgICBBZGQg
YSBmZXcgaGVscGVycywgdG8gYmUgdXNlZCBpbiBhIGZ1dHVyZSBwYXRjaC4gV2UgY29uc2lkZXIg
YW4gVW5kb0l0ZW0gdmFsaWQgaWYgaXQgaGFzIGJlZW4gYWRkZWQgdG8gYW4KKyAgICAgICAgVW5k
b01hbmFnZXIsIGFuZCBpcyB0aHVzIGFzc29jaWF0ZWQgd2l0aCBhIGRvY3VtZW50LgorCisgICAg
ICAgIChXZWJDb3JlOjpVbmRvSXRlbTo6ZG9jdW1lbnQgY29uc3QpOgorICAgICAgICAqIHBhZ2Uv
VW5kb0l0ZW0uaDoKKyAgICAgICAgKiBwYWdlL1VuZG9JdGVtLmlkbDoKKyAgICAgICAgKiBwYWdl
L1VuZG9NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVuZG9NYW5hZ2VyOjpVbmRvTWFu
YWdlcik6CisgICAgICAgIChXZWJDb3JlOjpVbmRvTWFuYWdlcjo6YWRkSXRlbSk6CisKKyAgICAg
ICAgSGF2ZSBhbiBVbmRvTWFuYWdlciBrZWVwIGl0cyBVbmRvSXRlbXMgYWxpdmUuIFRoZXNlIFVu
ZG9JdGVtcyByZW1haW4gaW4gdGhpcyBzZXQgdW50aWwgZWl0aGVyIHRoZSBkb2N1bWVudCB3aWxs
CisgICAgICAgIGJlIGRlc3Ryb3llZCwgb3IgdGhlIGNvcnJlc3BvbmRpbmcgdW5kbyBhY3Rpb24g
aXMgbm8gbG9uZ2VyIG5lZWRlZCBiZWNhdXNlIHRoZSBwbGF0Zm9ybSB1bmRvIHN0YWNrIGhhcyBj
aGFuZ2VkCisgICAgICAgICh0aGlzIGxhdHRlciBiZWhhdmlvciBpcyB5ZXQgdG8gYmUgaW1wbGVt
ZW50ZWQpLgorCisgICAgICAgIChXZWJDb3JlOjpVbmRvTWFuYWdlcjo6cmVtb3ZlSXRlbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpVbmRvTWFuYWdlcjo6cmVtb3ZlQWxsSXRlbXMpOgorICAgICAgICAq
IHBhZ2UvVW5kb01hbmFnZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlVuZG9NYW5hZ2VyOjpVbmRv
TWFuYWdlcik6IERlbGV0ZWQuCisKIDIwMTktMDEtMTcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQ29udGVudCBvZmZzZXQganVtcHMgZXJy
YXRpY2FsbHkgd2hlbiBhdXRvc2Nyb2xsaW5nIG5lYXIgc2Nyb2xsIHZpZXcgY29udGVudCBpbnNl
dCBhcmVhcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBiNjEyNDE5MmNlOTQ0NTJmNmQxZmU0YmJmMzA5ZmNk
YWM0MWI0NzJhLi4yNDVhNTU5MDhkZmUyZTMwNTVhYzZhZGI3ZmQ0YmIwMDIxNjI0NjU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dApAQCAtNTIwLDYgKzUyMCw3IEBAIGJpbmRpbmdzL2pzL0pTVGV4dFRyYWNrTGlz
dEN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTVHJhY2tDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9K
U1RyZWVXYWxrZXJDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1R5cGVkT01DU1NTdHlsZVZhbHVl
Q3VzdG9tLmNwcAorYmluZGluZ3MvanMvSlNVbmRvSXRlbUN1c3RvbS5jcHAKIGJpbmRpbmdzL2pz
L0pTVmlkZW9UcmFja0N1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTVmlkZW9UcmFja0xpc3RDdXN0
b20uY3BwCiBiaW5kaW5ncy9qcy9KU1dlYkFuaW1hdGlvbkN1c3RvbS5jcHAKQEAgLTE1MzAsNiAr
MTUzMSw3IEBAIHBhZ2UvU29ja2V0UHJvdmlkZXIuY3BwCiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9u
LmNwcAogcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmNwcAogcGFnZS9UZXh0SW5kaWNhdG9yLmNwcAor
cGFnZS9VbmRvSXRlbS5jcHAKIHBhZ2UvVW5kb01hbmFnZXIuY3BwCiBwYWdlL1VzZXJDb250ZW50
UHJvdmlkZXIuY3BwCiBwYWdlL1VzZXJDb250ZW50Q29udHJvbGxlci5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjMGMyOTcz
ODU1YmZhN2VjN2ZmYTcxMTQxMjc3YmVjOGNmNWU2MWQ3Li4zYTExNjFhNzk1MWZjN2U0NGVjZWMy
MGZlZWUyY2U0ODBkYmRkZGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NDMwLDE3ICs2NDMwLDE2IEBACiAJCTFDODQwQjlB
MjFFQzQwMDkwMEQwNTAwRCAvKiBXSExTTEdhdGhlckVudHJ5UG9pbnRJdGVtcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXSExTTEdhdGhlckVudHJ5UG9pbnRJdGVtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxQzg0MEI5QjIxRUM0MDA5MDBEMDUwMEQgLyogV0hMU0xDaGVja2VyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdITFNMQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFDOTA0REY5MEJBOUQyQzgwMDgxRTlEMCAvKiBWZXJzaW9uLnhjY29uZmlnICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFZlcnNpb24ueGNjb25maWc7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFDQTBDMkU0MjFFRUQxMkEwMEExMTg2MCAvKiBXSExTTEZ1
bmN0aW9uU3RhZ2VDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdITFNMRnVuY3Rpb25T
dGFnZUNoZWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQ0EwQzJFNTIx
RUVEMTJBMDBBMTE4NjAgLyogV0hMU0xGdW5jdGlvblN0YWdlQ2hlY2tlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXSExTTEZ1bmN0aW9uU3RhZ2VDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFDOUFFNUNBMjFFRDlERjUwMDY5RDVGMiAvKiBXSExTTEhpZ2hab21iaWVGaW5kZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0hMU0xIaWdoWm9tYmllRmluZGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5QUU1Q0IyMUVEOURGNTAwNjlENUYyIC8qIFdITFNM
SGlnaFpvbWJpZUZpbmRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTEhpZ2hab21iaWVGaW5kZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMEMyREUyMUVFQjVGNDAwQTExODYw
IC8qIFdITFNMUmVjdXJzaW9uQ2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTFJlY3Vyc2lv
bkNoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMEMyRTAyMUVFQjVG
NTAwQTExODYwIC8qIFdITFNMUmVjdXJzaW9uQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXSExTTFJlY3Vyc2lvbkNoZWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQ0EwQzJFNDIxRUVEMTJBMDBBMTE4NjAgLyogV0hMU0xGdW5jdGlvblN0YWdlQ2hlY2tlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXSExTTEZ1bmN0aW9uU3RhZ2VDaGVja2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNBMEMyRTUyMUVFRDEyQTAwQTExODYwIC8qIFdI
TFNMRnVuY3Rpb25TdGFnZUNoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xGdW5jdGlvblN0
YWdlQ2hlY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0EwQzJFQTIxRUVE
NkY1MDBBMTE4NjAgLyogV0hMU0xMaXRlcmFsVHlwZUNoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0hMU0xMaXRlcmFsVHlwZUNoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUNBMEMyRUMyMUVFRDZGNjAwQTExODYwIC8qIFdITFNMTGl0ZXJhbFR5cGVDaGVja2VyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdITFNMTGl0ZXJhbFR5cGVDaGVja2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUM5QUU1Q0EyMUVEOURGNTAwNjlENUYyIC8qIFdITFNMSGln
aFpvbWJpZUZpbmRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXSExTTEhpZ2hab21iaWVGaW5k
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQzlBRTVDQjIxRUQ5REY1MDA2
OUQ1RjIgLyogV0hMU0xIaWdoWm9tYmllRmluZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNMSGln
aFpvbWJpZUZpbmRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0EwQzJGNDIx
RUVEQUQwMDBBMTE4NjAgLyogV0hMU0xMb29wQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXSExTTExvb3BDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNB
MEMyRjUyMUVFREFEMTAwQTExODYwIC8qIFdITFNMTG9vcENoZWNrZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0hMU0xMb29wQ2hlY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQ0Ew
QzJGNjIxRUVEQUQyMDBBMTE4NjAgLyogQVNUICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gZm9sZGVyOyBwYXRoID0gQVNUOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0ExOUUwMzBEQzI1NTk1MDA2NUE5OTQgLyogRXZlbnRMb29wTWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRXZlbnRMb29wTWFjLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0ExOUUxNTBEQzI1NUNBMDA2NUE5OTQg
LyogRXZlbnRMb29wLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TG9v
cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FGMzQ3RTBBNkM0MDUyMDBBQkUw
NkUgLyogV2ViU2NyaXB0T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYlNjcmlwdE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzA5MCw4
ICs3MDg5LDYgQEAKIAkJMzE5QkRFNTMxRTdBODZDMTAwQkEyOTZDIC8qIEpTUlRDSWNlVHJhbnNw
b3J0U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSVENJY2VUcmFu
c3BvcnRTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTlCREU1MzFFN0E4
NkMxMDBCQTI5NkQgLyogSlNSVENQZWVyQ29ubmVjdGlvblN0YXRlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTUlRDUGVlckNvbm5lY3Rpb25TdGF0ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkzMTlGQkQ1RDE1RDJGNDQ0MDA5NjQwQTYgLyogQ2FjaGVkSW1h
Z2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkSW1hZ2VD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFBMDg4QzQxRTczN0IyQzAw
M0I2NjA5IC8qIEpTV2ViR1BVUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdQVVJlbmRlcmluZ0NvbnRleHRDdXN0b20u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUEwODhDNTFFNzM3QjJDMDAzQjY2
MDkgLyogSlNXZWJHUFVSZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3JDdXN0b20uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHUFVSZW5kZXJQYXNzQXR0
YWNobWVudERlc2NyaXB0b3JDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzMUEwODkxQjFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVCdWZmZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHUFVCdWZmZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkzMUEwODkxRDFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJH
UFVCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHUFVCdWZm
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFBMDg5MUUxRTczOEQ1OTAwM0I2
NjA5IC8qIEpTV2ViR1BVQ29tbWFuZEJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1dlYkdQVUNvbW1hbmRCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTUxMjMsNiArMTUxMjAsOCBAQAogCQlGNEQ0M0Q2NDIxODgwMkU2MDBF
Q0VDQUMgLyogU2VyaWFsaXplZEF0dGFjaG1lbnREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcmlh
bGl6ZWRBdHRhY2htZW50RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ5
ODE3RDIxOTVGQkY2MDA4MjMwRkMgLyogQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENoYW5nZUxpc3RUeXBlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNEQ5ODE3RTIxOTVGQkY2MDA4MjMwRkMgLyogQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENoYW5nZUxpc3RUeXBlQ29tbWFuZC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0RTE5NjVBMjFGMjM5NTAwMDI4NTA3OCAvKiBKU1VuZG9J
dGVtQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVW5k
b0l0ZW1DdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNEUxOTY1RjIx
RjI2RTRFMDAyODUwNzggLyogVW5kb0l0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVW5kb0l0
ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEU1N0VEQTIxM0YzRjVGMDA0
RUE5OEUgLyogRm9udEF0dHJpYnV0ZUNoYW5nZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udEF0dHJp
YnV0ZUNoYW5nZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFNTdFREYyMTNG
NDM0QTAwNEVBOThFIC8qIFdlYkNvcmVOU0ZvbnRNYW5hZ2VyRXh0cmFzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkNvcmVOU0ZvbnRNYW5hZ2VyRXh0cmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY0RTU3RUUwMjEzRjQzNEEwMDRFQTk4RSAvKiBXZWJDb3JlTlNGb250TWFuYWdlckV4
dHJhcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVOU0ZvbnRNYW5hZ2VyRXh0cmFz
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcwMzgsNiArMTcwMzcsMTAwIEBA
CiAJCQl0YWJXaWR0aCA9IDg7CiAJCQl1c2VzVGFicyA9IDA7CiAJCX07CisJCTFDQTBDMkY2MjFF
RURBRDIwMEExMTg2MCAvKiBBU1QgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCTFDODQwQjkwMjFFQzMwRjkwMEQwNTAwRCAvKiBXSExTTEFkZHJlc3NTcGFj
ZS5oICovLAorCQkJCUMyMUJGNzI1MjFDRDg5RTIwMDIyNzk3OSAvKiBXSExTTEFycmF5UmVmZXJl
bmNlVHlwZS5oICovLAorCQkJCUMyMUJGNzA5MjFDRDg5Q0EwMDIyNzk3OSAvKiBXSExTTEFycmF5
VHlwZS5oICovLAorCQkJCUMyMUJGNzMwMjFDRDg5RUQwMDIyNzk3OSAvKiBXSExTTEFzc2lnbm1l
bnRFeHByZXNzaW9uLmggKi8sCisJCQkJQzIxQkY3MEEyMUNEODlDQjAwMjI3OTc5IC8qIFdITFNM
QmFzZUZ1bmN0aW9uQXR0cmlidXRlLmggKi8sCisJCQkJQzIxQkY2RkEyMUNEODlCRTAwMjI3OTc5
IC8qIFdITFNMQmFzZVNlbWFudGljLmggKi8sCisJCQkJQzIxQkY3MUUyMUNEODlEQzAwMjI3OTc5
IC8qIFdITFNMQmxvY2suaCAqLywKKwkJCQlDMjFCRjZGNjIxQ0Q4OUI3MDAyMjc5NzkgLyogV0hM
U0xCb29sZWFuTGl0ZXJhbC5oICovLAorCQkJCUMyMUJGNzFBMjFDRDg5RDgwMDIyNzk3OSAvKiBX
SExTTEJyZWFrLmggKi8sCisJCQkJQzIxMzhBMTMyMURERUNEMzAwRjUxNkJBIC8qIFdITFNMQnVp
bHRJblNlbWFudGljLmNwcCAqLywKKwkJCQlDMjFCRjcyMjIxQ0Q4OURGMDAyMjc5NzkgLyogV0hM
U0xCdWlsdEluU2VtYW50aWMuaCAqLywKKwkJCQlDMjFCRjcxNjIxQ0Q4OUQ1MDAyMjc5NzkgLyog
V0hMU0xDYWxsRXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzA2MjFDRDg5QzcwMDIyNzk3OSAv
KiBXSExTTENvbW1hRXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzMzMjFDRDg5RjAwMDIyNzk3
OSAvKiBXSExTTENvbnN0YW50RXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNkY1MjFDRDg5QjUw
MDIyNzk3OSAvKiBXSExTTENvbnRpbnVlLmggKi8sCisJCQkJQzIxQkY3MDEyMUNEODlDNDAwMjI3
OTc5IC8qIFdITFNMRGVyZWZlcmVuY2VFeHByZXNzaW9uLmggKi8sCisJCQkJQzIxQkY3MTgyMUNE
ODlENzAwMjI3OTc5IC8qIFdITFNMRG90RXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNkZCMjFD
RDg5QkUwMDIyNzk3OSAvKiBXSExTTERvV2hpbGVMb29wLmggKi8sCisJCQkJQzIxQkY3MjgyMUNE
ODlFNTAwMjI3OTc5IC8qIFdITFNMRWZmZWN0ZnVsRXhwcmVzc2lvblN0YXRlbWVudC5oICovLAor
CQkJCTFDODQwQjdEMjFFQkUwQjgwMEQwNTAwRCAvKiBXSExTTEVudHJ5UG9pbnRUeXBlLmggKi8s
CisJCQkJQzIxQkY3MjAyMUNEODlERDAwMjI3OTc5IC8qIFdITFNMRW51bWVyYXRpb25EZWZpbml0
aW9uLmggKi8sCisJCQkJQzIxQkY3MjYyMUNEODlFMzAwMjI3OTc5IC8qIFdITFNMRW51bWVyYXRp
b25NZW1iZXIuaCAqLywKKwkJCQlDMjFCRjcwMjIxQ0Q4OUM0MDAyMjc5NzkgLyogV0hMU0xFbnVt
ZXJhdGlvbk1lbWJlckxpdGVyYWwuaCAqLywKKwkJCQlDMjFCRjcwQzIxQ0Q4OUNDMDAyMjc5Nzkg
LyogV0hMU0xFeHByZXNzaW9uLmggKi8sCisJCQkJQzIxQkY3MDAyMUNEODlDMjAwMjI3OTc5IC8q
IFdITFNMRmFsbHRocm91Z2guaCAqLywKKwkJCQlDMjFCRjczNTIxQ0Q4OUYyMDAyMjc5NzkgLyog
V0hMU0xGbG9hdExpdGVyYWwuaCAqLywKKwkJCQkxQ0I2OUIzODIxREYwM0UxMDA2RTg0NkEgLyog
V0hMU0xGbG9hdExpdGVyYWxUeXBlLmNwcCAqLywKKwkJCQkxQ0I2OUIzNDIxREVENjNBMDA2RTg0
NkEgLyogV0hMU0xGbG9hdExpdGVyYWxUeXBlLmggKi8sCisJCQkJQzIxQkY3MzQyMUNEODlGMTAw
MjI3OTc5IC8qIFdITFNMRm9yTG9vcC5oICovLAorCQkJCUMyMUJGNzA1MjFDRDg5QzcwMDIyNzk3
OSAvKiBXSExTTEZ1bmN0aW9uQXR0cmlidXRlLmggKi8sCisJCQkJQzIxQkY2RkQyMUNEODlDMDAw
MjI3OTc5IC8qIFdITFNMRnVuY3Rpb25EZWNsYXJhdGlvbi5oICovLAorCQkJCUMyMUJGNkY0MjFD
RDg5QjMwMDIyNzk3OSAvKiBXSExTTEZ1bmN0aW9uRGVmaW5pdGlvbi5oICovLAorCQkJCUMyMUJG
NkZGMjFDRDg5QzIwMDIyNzk3OSAvKiBXSExTTElmU3RhdGVtZW50LmggKi8sCisJCQkJQzIxQkY2
RjcyMUNEODlCOTAwMjI3OTc5IC8qIFdITFNMSW5kZXhFeHByZXNzaW9uLmggKi8sCisJCQkJQzIw
RjRGNjYyMURGRjIzNjAwNzBDNDVBIC8qIFdITFNMSW50ZWdlckxpdGVyYWwuY3BwICovLAorCQkJ
CUMyMUJGNkY4MjFDRDg5QkIwMDIyNzk3OSAvKiBXSExTTEludGVnZXJMaXRlcmFsLmggKi8sCisJ
CQkJMUNCNjlCMzkyMURGMDNGMzAwNkU4NDZBIC8qIFdITFNMSW50ZWdlckxpdGVyYWxUeXBlLmNw
cCAqLywKKwkJCQkxQ0I2OUIzNTIxREVENjQ5MDA2RTg0NkEgLyogV0hMU0xJbnRlZ2VyTGl0ZXJh
bFR5cGUuaCAqLywKKwkJCQlDMjFCRjczMjIxQ0Q4OUVGMDAyMjc5NzkgLyogV0hMU0xMb2dpY2Fs
RXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzE1MjFDRDg5RDQwMDIyNzk3OSAvKiBXSExTTExv
Z2ljYWxOb3RFeHByZXNzaW9uLmggKi8sCisJCQkJQzIxQkY3MkQyMUNEODlFOTAwMjI3OTc5IC8q
IFdITFNMTWFrZUFycmF5UmVmZXJlbmNlRXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJGNzJDMjFD
RDg5RTkwMDIyNzk3OSAvKiBXSExTTE1ha2VQb2ludGVyRXhwcmVzc2lvbi5oICovLAorCQkJCTFD
MzMyNzcxMjFDRjBCRTEwMDBEQzlGMiAvKiBXSExTTE5hbWVkVHlwZS5oICovLAorCQkJCUMyMUJG
NzIzMjFDRDg5RTEwMDIyNzk3OSAvKiBXSExTTE5hdGl2ZUZ1bmN0aW9uRGVjbGFyYXRpb24uaCAq
LywKKwkJCQlDMjFCRjcyQTIxQ0Q4OUU3MDAyMjc5NzkgLyogV0hMU0xOYXRpdmVUeXBlRGVjbGFy
YXRpb24uaCAqLywKKwkJCQlDMjFCRjcyNDIxQ0Q4OUUxMDAyMjc5NzkgLyogV0hMU0xOb2RlLmgg
Ki8sCisJCQkJQzIxQkY3MDcyMUNEODlDODAwMjI3OTc5IC8qIFdITFNMTnVsbExpdGVyYWwuaCAq
LywKKwkJCQkxQ0I2OUIzQTIxREYwNDAzMDA2RTg0NkEgLyogV0hMU0xOdWxsTGl0ZXJhbFR5cGUu
Y3BwICovLAorCQkJCTFDQjY5QjM2MjFERUQ2NTcwMDZFODQ2QSAvKiBXSExTTE51bGxMaXRlcmFs
VHlwZS5oICovLAorCQkJCUMyMUJGNzIxMjFDRDg5REUwMDIyNzk3OSAvKiBXSExTTE51bVRocmVh
ZHNGdW5jdGlvbkF0dHJpYnV0ZS5oICovLAorCQkJCUMyMUJGNzJGMjFDRDg5RUMwMDIyNzk3OSAv
KiBXSExTTFBvaW50ZXJUeXBlLmggKi8sCisJCQkJQzIxQkY3MkUyMUNEODlFQTAwMjI3OTc5IC8q
IFdITFNMUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uLmggKi8sCisJCQkJQzIxQkY3MEIyMUNEODlD
QzAwMjI3OTc5IC8qIFdITFNMUXVhbGlmaWVyLmggKi8sCisJCQkJQzIxQkY3MUIyMUNEODlEOTAw
MjI3OTc5IC8qIFdITFNMUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5oICovLAorCQkJCUMyMUJG
NzBEMjFDRDg5Q0QwMDIyNzk3OSAvKiBXSExTTFJlZmVyZW5jZVR5cGUuaCAqLywKKwkJCQkxQ0I2
OUIzMjIxREVENDBCMDA2RTg0NkEgLyogV0hMU0xSZXNvbHZhYmxlVHlwZS5oICovLAorCQkJCUMy
MTM4QTE1MjFEREVDRTkwMEY1MTZCQSAvKiBXSExTTFJlc291cmNlU2VtYW50aWMuY3BwICovLAor
CQkJCUMyMUJGNzA4MjFDRDg5QzkwMDIyNzk3OSAvKiBXSExTTFJlc291cmNlU2VtYW50aWMuaCAq
LywKKwkJCQlDMjFCRjcwMzIxQ0Q4OUM1MDAyMjc5NzkgLyogV0hMU0xSZXR1cm4uaCAqLywKKwkJ
CQlDMjFCRjZGOTIxQ0Q4OUJEMDAyMjc5NzkgLyogV0hMU0xTZW1hbnRpYy5oICovLAorCQkJCUMy
MTM4QTE2MjFEREVDRkIwMEY1MTZCQSAvKiBXSExTTFNwZWNpYWxpemF0aW9uQ29uc3RhbnRTZW1h
bnRpYy5jcHAgKi8sCisJCQkJQzIxQkY3MzYyMUNEODlGMzAwMjI3OTc5IC8qIFdITFNMU3BlY2lh
bGl6YXRpb25Db25zdGFudFNlbWFudGljLmggKi8sCisJCQkJQzIxMzhBMTcyMURERUQwRDAwRjUx
NkJBIC8qIFdITFNMU3RhZ2VJbk91dFNlbWFudGljLmNwcCAqLywKKwkJCQlDMjFCRjcwRTIxQ0Q4
OUNFMDAyMjc5NzkgLyogV0hMU0xTdGFnZUluT3V0U2VtYW50aWMuaCAqLywKKwkJCQlDMjFCRjcx
MjIxQ0Q4OUQxMDAyMjc5NzkgLyogV0hMU0xTdGF0ZW1lbnQuaCAqLywKKwkJCQlDMjFCRjcyNzIx
Q0Q4OUU0MDAyMjc5NzkgLyogV0hMU0xTdHJ1Y3R1cmVEZWZpbml0aW9uLmggKi8sCisJCQkJQzIx
QkY2RkUyMUNEODlDMTAwMjI3OTc5IC8qIFdITFNMU3RydWN0dXJlRWxlbWVudC5oICovLAorCQkJ
CUMyMUJGNzE5MjFDRDg5RDcwMDIyNzk3OSAvKiBXSExTTFN3aXRjaENhc2UuaCAqLywKKwkJCQlD
MjFCRjczMTIxQ0Q4OUVFMDAyMjc5NzkgLyogV0hMU0xTd2l0Y2hTdGF0ZW1lbnQuaCAqLywKKwkJ
CQlDMjFCRjcxQzIxQ0Q4OURBMDAyMjc5NzkgLyogV0hMU0xUZXJuYXJ5RXhwcmVzc2lvbi5oICov
LAorCQkJCUMyMUJGNkYzMjFDRDg5QUQwMDIyNzk3OSAvKiBXSExTTFRyYXAuaCAqLywKKwkJCQlD
MjFCRjcxRDIxQ0Q4OURCMDAyMjc5NzkgLyogV0hMU0xUeXBlLmggKi8sCisJCQkJQzI4OEM3MkQy
MUM5OTFEQTAwMkRGNUNBIC8qIFdITFNMVHlwZUFyZ3VtZW50LmNwcCAqLywKKwkJCQlDMjFCRjcx
MTIxQ0Q4OUQxMDAyMjc5NzkgLyogV0hMU0xUeXBlQXJndW1lbnQuaCAqLywKKwkJCQlDMjFCRjcy
OTIxQ0Q4OUU2MDAyMjc5NzkgLyogV0hMU0xUeXBlRGVmaW5pdGlvbi5oICovLAorCQkJCUMyMEY0
RjY0MjFERkJFNUMwMDcwQzQ1QSAvKiBXSExTTFR5cGVSZWZlcmVuY2UuY3BwICovLAorCQkJCUMy
MUJGNzFGMjFDRDg5REMwMDIyNzk3OSAvKiBXSExTTFR5cGVSZWZlcmVuY2UuaCAqLywKKwkJCQkx
QzMzMjc3MjIxQ0YwRDJFMDAwREM5RjIgLyogV0hMU0xVbm5hbWVkVHlwZS5oICovLAorCQkJCUMy
MEY0RjY3MjFERkYzQTcwMDcwQzQ1QSAvKiBXSExTTFVuc2lnbmVkSW50ZWdlckxpdGVyYWwuY3Bw
ICovLAorCQkJCUMyMUJGNzJCMjFDRDg5RTgwMDIyNzk3OSAvKiBXSExTTFVuc2lnbmVkSW50ZWdl
ckxpdGVyYWwuaCAqLywKKwkJCQkxQ0I2OUIzQjIxREYwNDFFMDA2RTg0NkEgLyogV0hMU0xVbnNp
Z25lZEludGVnZXJMaXRlcmFsVHlwZS5jcHAgKi8sCisJCQkJMUNCNjlCMzcyMURFRDY2QjAwNkU4
NDZBIC8qIFdITFNMVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5cGUuaCAqLywKKwkJCQlDMjFCRjZG
QzIxQ0Q4OUJGMDAyMjc5NzkgLyogV0hMU0xWYWx1ZS5oICovLAorCQkJCUMyMUJGNzEwMjFDRDg5
RDAwMDIyNzk3OSAvKiBXSExTTFZhcmlhYmxlRGVjbGFyYXRpb24uaCAqLywKKwkJCQlDMjFCRjcx
NDIxQ0Q4OUQzMDAyMjc5NzkgLyogV0hMU0xWYXJpYWJsZURlY2xhcmF0aW9uc1N0YXRlbWVudC5o
ICovLAorCQkJCUMyMUJGNzEzMjFDRDg5RDIwMDIyNzk3OSAvKiBXSExTTFZhcmlhYmxlUmVmZXJl
bmNlLmggKi8sCisJCQkJQzIxQkY3MDQyMUNEODlDNjAwMjI3OTc5IC8qIFdITFNMV2hpbGVMb29w
LmggKi8sCisJCQkpOworCQkJcGF0aCA9IEFTVDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CisJCX07CiAJCTFDREQ0NDY2MEJBOUM4MDAwMEY5MDE0NyAvKiBDb25maWd1cmF0aW9ucyAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yMDMxMyw2ICsyMDQw
Niw3IEBACiAJCQkJNjJDMTIxN0IxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIu
aCAqLywKIAkJCQkyRDRGOTZGMTFBMUVDQzI0MDA5OEJGODggLyogVGV4dEluZGljYXRvci5jcHAg
Ki8sCiAJCQkJMkQ0Rjk2RjIxQTFFQ0MyNDAwOThCRjg4IC8qIFRleHRJbmRpY2F0b3IuaCAqLywK
KwkJCQlGNEUxOTY1RjIxRjI2RTRFMDAyODUwNzggLyogVW5kb0l0ZW0uY3BwICovLAogCQkJCTJF
Q0RCQUQ1MjFEODkwNjMwMEYwMEVDRCAvKiBVbmRvSXRlbS5oICovLAogCQkJCTJFQ0RCQUQ3MjFE
ODkwNjMwMEYwMEVDRCAvKiBVbmRvSXRlbS5pZGwgKi8sCiAJCQkJMkVDREJBQ0YyMUQ4OTAzNDAw
RjAwRUNEIC8qIFVuZG9NYW5hZ2VyLmNwcCAqLywKQEAgLTIwNjgxLDEzICsyMDc3NSwxMiBAQAog
CQkJCTA3ODQ2Mzg0MTQ1QjFCOEUwMEE1OERGMSAvKiBKU1RyYWNrQ3VzdG9tLmggKi8sCiAJCQkJ
NTE2QkI3OTIwQ0U5MUU2ODAwNTEyRjc5IC8qIEpTVHJlZVdhbGtlckN1c3RvbS5jcHAgKi8sCiAJ
CQkJNEJBRkQwRTIyMTkyNjA0RDAwQzBBQjY0IC8qIEpTVHlwZWRPTUNTU1N0eWxlVmFsdWVDdXN0
b20uY3BwICovLAorCQkJCUY0RTE5NjVBMjFGMjM5NTAwMDI4NTA3OCAvKiBKU1VuZG9JdGVtQ3Vz
dG9tLmNwcCAqLywKIAkJCQlCRTZERjcwODE3MUNBMkM1MDBERDUyQjggLyogSlNWaWRlb1RyYWNr
Q3VzdG9tLmNwcCAqLywKIAkJCQlCRTZERjcwQTE3MUNBMkM1MDBERDUyQjggLyogSlNWaWRlb1Ry
YWNrTGlzdEN1c3RvbS5jcHAgKi8sCiAJCQkJNzE1REE1RDMyMDFCQjkwMjAwMkVGMkIwIC8qIEpT
V2ViQW5pbWF0aW9uQ3VzdG9tLmNwcCAqLywKIAkJCQlEM0YzRDM1OTFBNjlBM0IwMDA1OUZDMkIg
LyogSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCAqLywKIAkJCQk0OUVFRDE0QzEw
NTE5NzFBMDAwOTlGQUIgLyogSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwICovLAot
CQkJCTMxQTA4OEM0MUU3MzdCMkMwMDNCNjYwOSAvKiBKU1dlYkdQVVJlbmRlcmluZ0NvbnRleHRD
dXN0b20uY3BwICovLAotCQkJCTMxQTA4OEM1MUU3MzdCMkMwMDNCNjYwOSAvKiBKU1dlYkdQVVJl
bmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvckN1c3RvbS5jcHAgKi8sCiAJCQkJRTE4MjU4QUIw
RUYzQ0Q3MDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwICovLAogCQkJ
CTQ2RjkxQkM5MUZDREQwRkUwMDE1OTlDMyAvKiBKU1dvcmtlck5hdmlnYXRvckN1c3RvbS5jcHAg
Ki8sCiAJCQkJODNBNEE5RjgxQ0U3RkQ3RTAwNzA5QjAwIC8qIEpTWE1MRG9jdW1lbnRDdXN0b20u
Y3BwICovLApAQCAtMjU1MTUsMTAwICsyNTYwOCw2IEBACiAJCQlwYXRoID0gV0hMU0w7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OwotCQkxQ0EwQzJGNjIxRUVEQUQyMDBBMTE4NjAg
LyogQVNUICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQkx
Qzg0MEI5MDIxRUMzMEY5MDBEMDUwMEQgLyogV0hMU0xBZGRyZXNzU3BhY2UuaCAqLywKLQkJCQlD
MjFCRjcyNTIxQ0Q4OUUyMDAyMjc5NzkgLyogV0hMU0xBcnJheVJlZmVyZW5jZVR5cGUuaCAqLywK
LQkJCQlDMjFCRjcwOTIxQ0Q4OUNBMDAyMjc5NzkgLyogV0hMU0xBcnJheVR5cGUuaCAqLywKLQkJ
CQlDMjFCRjczMDIxQ0Q4OUVEMDAyMjc5NzkgLyogV0hMU0xBc3NpZ25tZW50RXhwcmVzc2lvbi5o
ICovLAotCQkJCUMyMUJGNzBBMjFDRDg5Q0IwMDIyNzk3OSAvKiBXSExTTEJhc2VGdW5jdGlvbkF0
dHJpYnV0ZS5oICovLAotCQkJCUMyMUJGNkZBMjFDRDg5QkUwMDIyNzk3OSAvKiBXSExTTEJhc2VT
ZW1hbnRpYy5oICovLAotCQkJCUMyMUJGNzFFMjFDRDg5REMwMDIyNzk3OSAvKiBXSExTTEJsb2Nr
LmggKi8sCi0JCQkJQzIxQkY2RjYyMUNEODlCNzAwMjI3OTc5IC8qIFdITFNMQm9vbGVhbkxpdGVy
YWwuaCAqLywKLQkJCQlDMjFCRjcxQTIxQ0Q4OUQ4MDAyMjc5NzkgLyogV0hMU0xCcmVhay5oICov
LAotCQkJCUMyMTM4QTEzMjFEREVDRDMwMEY1MTZCQSAvKiBXSExTTEJ1aWx0SW5TZW1hbnRpYy5j
cHAgKi8sCi0JCQkJQzIxQkY3MjIyMUNEODlERjAwMjI3OTc5IC8qIFdITFNMQnVpbHRJblNlbWFu
dGljLmggKi8sCi0JCQkJQzIxQkY3MTYyMUNEODlENTAwMjI3OTc5IC8qIFdITFNMQ2FsbEV4cHJl
c3Npb24uaCAqLywKLQkJCQlDMjFCRjcwNjIxQ0Q4OUM3MDAyMjc5NzkgLyogV0hMU0xDb21tYUV4
cHJlc3Npb24uaCAqLywKLQkJCQlDMjFCRjczMzIxQ0Q4OUYwMDAyMjc5NzkgLyogV0hMU0xDb25z
dGFudEV4cHJlc3Npb24uaCAqLywKLQkJCQlDMjFCRjZGNTIxQ0Q4OUI1MDAyMjc5NzkgLyogV0hM
U0xDb250aW51ZS5oICovLAotCQkJCUMyMUJGNzAxMjFDRDg5QzQwMDIyNzk3OSAvKiBXSExTTERl
cmVmZXJlbmNlRXhwcmVzc2lvbi5oICovLAotCQkJCUMyMUJGNzE4MjFDRDg5RDcwMDIyNzk3OSAv
KiBXSExTTERvdEV4cHJlc3Npb24uaCAqLywKLQkJCQlDMjFCRjZGQjIxQ0Q4OUJFMDAyMjc5Nzkg
LyogV0hMU0xEb1doaWxlTG9vcC5oICovLAotCQkJCUMyMUJGNzI4MjFDRDg5RTUwMDIyNzk3OSAv
KiBXSExTTEVmZmVjdGZ1bEV4cHJlc3Npb25TdGF0ZW1lbnQuaCAqLywKLQkJCQkxQzg0MEI3RDIx
RUJFMEI4MDBEMDUwMEQgLyogV0hMU0xFbnRyeVBvaW50VHlwZS5oICovLAotCQkJCUMyMUJGNzIw
MjFDRDg5REQwMDIyNzk3OSAvKiBXSExTTEVudW1lcmF0aW9uRGVmaW5pdGlvbi5oICovLAotCQkJ
CUMyMUJGNzI2MjFDRDg5RTMwMDIyNzk3OSAvKiBXSExTTEVudW1lcmF0aW9uTWVtYmVyLmggKi8s
Ci0JCQkJQzIxQkY3MDIyMUNEODlDNDAwMjI3OTc5IC8qIFdITFNMRW51bWVyYXRpb25NZW1iZXJM
aXRlcmFsLmggKi8sCi0JCQkJQzIxQkY3MEMyMUNEODlDQzAwMjI3OTc5IC8qIFdITFNMRXhwcmVz
c2lvbi5oICovLAotCQkJCUMyMUJGNzAwMjFDRDg5QzIwMDIyNzk3OSAvKiBXSExTTEZhbGx0aHJv
dWdoLmggKi8sCi0JCQkJQzIxQkY3MzUyMUNEODlGMjAwMjI3OTc5IC8qIFdITFNMRmxvYXRMaXRl
cmFsLmggKi8sCi0JCQkJMUNCNjlCMzgyMURGMDNFMTAwNkU4NDZBIC8qIFdITFNMRmxvYXRMaXRl
cmFsVHlwZS5jcHAgKi8sCi0JCQkJMUNCNjlCMzQyMURFRDYzQTAwNkU4NDZBIC8qIFdITFNMRmxv
YXRMaXRlcmFsVHlwZS5oICovLAotCQkJCUMyMUJGNzM0MjFDRDg5RjEwMDIyNzk3OSAvKiBXSExT
TEZvckxvb3AuaCAqLywKLQkJCQlDMjFCRjcwNTIxQ0Q4OUM3MDAyMjc5NzkgLyogV0hMU0xGdW5j
dGlvbkF0dHJpYnV0ZS5oICovLAotCQkJCUMyMUJGNkZEMjFDRDg5QzAwMDIyNzk3OSAvKiBXSExT
TEZ1bmN0aW9uRGVjbGFyYXRpb24uaCAqLywKLQkJCQlDMjFCRjZGNDIxQ0Q4OUIzMDAyMjc5Nzkg
LyogV0hMU0xGdW5jdGlvbkRlZmluaXRpb24uaCAqLywKLQkJCQlDMjFCRjZGRjIxQ0Q4OUMyMDAy
Mjc5NzkgLyogV0hMU0xJZlN0YXRlbWVudC5oICovLAotCQkJCUMyMUJGNkY3MjFDRDg5QjkwMDIy
Nzk3OSAvKiBXSExTTEluZGV4RXhwcmVzc2lvbi5oICovLAotCQkJCUMyMEY0RjY2MjFERkYyMzYw
MDcwQzQ1QSAvKiBXSExTTEludGVnZXJMaXRlcmFsLmNwcCAqLywKLQkJCQlDMjFCRjZGODIxQ0Q4
OUJCMDAyMjc5NzkgLyogV0hMU0xJbnRlZ2VyTGl0ZXJhbC5oICovLAotCQkJCTFDQjY5QjM5MjFE
RjAzRjMwMDZFODQ2QSAvKiBXSExTTEludGVnZXJMaXRlcmFsVHlwZS5jcHAgKi8sCi0JCQkJMUNC
NjlCMzUyMURFRDY0OTAwNkU4NDZBIC8qIFdITFNMSW50ZWdlckxpdGVyYWxUeXBlLmggKi8sCi0J
CQkJQzIxQkY3MzIyMUNEODlFRjAwMjI3OTc5IC8qIFdITFNMTG9naWNhbEV4cHJlc3Npb24uaCAq
LywKLQkJCQlDMjFCRjcxNTIxQ0Q4OUQ0MDAyMjc5NzkgLyogV0hMU0xMb2dpY2FsTm90RXhwcmVz
c2lvbi5oICovLAotCQkJCUMyMUJGNzJEMjFDRDg5RTkwMDIyNzk3OSAvKiBXSExTTE1ha2VBcnJh
eVJlZmVyZW5jZUV4cHJlc3Npb24uaCAqLywKLQkJCQlDMjFCRjcyQzIxQ0Q4OUU5MDAyMjc5Nzkg
LyogV0hMU0xNYWtlUG9pbnRlckV4cHJlc3Npb24uaCAqLywKLQkJCQkxQzMzMjc3MTIxQ0YwQkUx
MDAwREM5RjIgLyogV0hMU0xOYW1lZFR5cGUuaCAqLywKLQkJCQlDMjFCRjcyMzIxQ0Q4OUUxMDAy
Mjc5NzkgLyogV0hMU0xOYXRpdmVGdW5jdGlvbkRlY2xhcmF0aW9uLmggKi8sCi0JCQkJQzIxQkY3
MkEyMUNEODlFNzAwMjI3OTc5IC8qIFdITFNMTmF0aXZlVHlwZURlY2xhcmF0aW9uLmggKi8sCi0J
CQkJQzIxQkY3MjQyMUNEODlFMTAwMjI3OTc5IC8qIFdITFNMTm9kZS5oICovLAotCQkJCUMyMUJG
NzA3MjFDRDg5QzgwMDIyNzk3OSAvKiBXSExTTE51bGxMaXRlcmFsLmggKi8sCi0JCQkJMUNCNjlC
M0EyMURGMDQwMzAwNkU4NDZBIC8qIFdITFNMTnVsbExpdGVyYWxUeXBlLmNwcCAqLywKLQkJCQkx
Q0I2OUIzNjIxREVENjU3MDA2RTg0NkEgLyogV0hMU0xOdWxsTGl0ZXJhbFR5cGUuaCAqLywKLQkJ
CQlDMjFCRjcyMTIxQ0Q4OURFMDAyMjc5NzkgLyogV0hMU0xOdW1UaHJlYWRzRnVuY3Rpb25BdHRy
aWJ1dGUuaCAqLywKLQkJCQlDMjFCRjcyRjIxQ0Q4OUVDMDAyMjc5NzkgLyogV0hMU0xQb2ludGVy
VHlwZS5oICovLAotCQkJCUMyMUJGNzJFMjFDRDg5RUEwMDIyNzk3OSAvKiBXSExTTFByb3BlcnR5
QWNjZXNzRXhwcmVzc2lvbi5oICovLAotCQkJCUMyMUJGNzBCMjFDRDg5Q0MwMDIyNzk3OSAvKiBX
SExTTFF1YWxpZmllci5oICovLAotCQkJCUMyMUJGNzFCMjFDRDg5RDkwMDIyNzk3OSAvKiBXSExT
TFJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb24uaCAqLywKLQkJCQlDMjFCRjcwRDIxQ0Q4OUNEMDAy
Mjc5NzkgLyogV0hMU0xSZWZlcmVuY2VUeXBlLmggKi8sCi0JCQkJMUNCNjlCMzIyMURFRDQwQjAw
NkU4NDZBIC8qIFdITFNMUmVzb2x2YWJsZVR5cGUuaCAqLywKLQkJCQlDMjEzOEExNTIxRERFQ0U5
MDBGNTE2QkEgLyogV0hMU0xSZXNvdXJjZVNlbWFudGljLmNwcCAqLywKLQkJCQlDMjFCRjcwODIx
Q0Q4OUM5MDAyMjc5NzkgLyogV0hMU0xSZXNvdXJjZVNlbWFudGljLmggKi8sCi0JCQkJQzIxQkY3
MDMyMUNEODlDNTAwMjI3OTc5IC8qIFdITFNMUmV0dXJuLmggKi8sCi0JCQkJQzIxQkY2RjkyMUNE
ODlCRDAwMjI3OTc5IC8qIFdITFNMU2VtYW50aWMuaCAqLywKLQkJCQlDMjEzOEExNjIxRERFQ0ZC
MDBGNTE2QkEgLyogV0hMU0xTcGVjaWFsaXphdGlvbkNvbnN0YW50U2VtYW50aWMuY3BwICovLAot
CQkJCUMyMUJGNzM2MjFDRDg5RjMwMDIyNzk3OSAvKiBXSExTTFNwZWNpYWxpemF0aW9uQ29uc3Rh
bnRTZW1hbnRpYy5oICovLAotCQkJCUMyMTM4QTE3MjFEREVEMEQwMEY1MTZCQSAvKiBXSExTTFN0
YWdlSW5PdXRTZW1hbnRpYy5jcHAgKi8sCi0JCQkJQzIxQkY3MEUyMUNEODlDRTAwMjI3OTc5IC8q
IFdITFNMU3RhZ2VJbk91dFNlbWFudGljLmggKi8sCi0JCQkJQzIxQkY3MTIyMUNEODlEMTAwMjI3
OTc5IC8qIFdITFNMU3RhdGVtZW50LmggKi8sCi0JCQkJQzIxQkY3MjcyMUNEODlFNDAwMjI3OTc5
IC8qIFdITFNMU3RydWN0dXJlRGVmaW5pdGlvbi5oICovLAotCQkJCUMyMUJGNkZFMjFDRDg5QzEw
MDIyNzk3OSAvKiBXSExTTFN0cnVjdHVyZUVsZW1lbnQuaCAqLywKLQkJCQlDMjFCRjcxOTIxQ0Q4
OUQ3MDAyMjc5NzkgLyogV0hMU0xTd2l0Y2hDYXNlLmggKi8sCi0JCQkJQzIxQkY3MzEyMUNEODlF
RTAwMjI3OTc5IC8qIFdITFNMU3dpdGNoU3RhdGVtZW50LmggKi8sCi0JCQkJQzIxQkY3MUMyMUNE
ODlEQTAwMjI3OTc5IC8qIFdITFNMVGVybmFyeUV4cHJlc3Npb24uaCAqLywKLQkJCQlDMjFCRjZG
MzIxQ0Q4OUFEMDAyMjc5NzkgLyogV0hMU0xUcmFwLmggKi8sCi0JCQkJQzIxQkY3MUQyMUNEODlE
QjAwMjI3OTc5IC8qIFdITFNMVHlwZS5oICovLAotCQkJCUMyODhDNzJEMjFDOTkxREEwMDJERjVD
QSAvKiBXSExTTFR5cGVBcmd1bWVudC5jcHAgKi8sCi0JCQkJQzIxQkY3MTEyMUNEODlEMTAwMjI3
OTc5IC8qIFdITFNMVHlwZUFyZ3VtZW50LmggKi8sCi0JCQkJQzIxQkY3MjkyMUNEODlFNjAwMjI3
OTc5IC8qIFdITFNMVHlwZURlZmluaXRpb24uaCAqLywKLQkJCQlDMjBGNEY2NDIxREZCRTVDMDA3
MEM0NUEgLyogV0hMU0xUeXBlUmVmZXJlbmNlLmNwcCAqLywKLQkJCQlDMjFCRjcxRjIxQ0Q4OURD
MDAyMjc5NzkgLyogV0hMU0xUeXBlUmVmZXJlbmNlLmggKi8sCi0JCQkJMUMzMzI3NzIyMUNGMEQy
RTAwMERDOUYyIC8qIFdITFNMVW5uYW1lZFR5cGUuaCAqLywKLQkJCQlDMjBGNEY2NzIxREZGM0E3
MDA3MEM0NUEgLyogV0hMU0xVbnNpZ25lZEludGVnZXJMaXRlcmFsLmNwcCAqLywKLQkJCQlDMjFC
RjcyQjIxQ0Q4OUU4MDAyMjc5NzkgLyogV0hMU0xVbnNpZ25lZEludGVnZXJMaXRlcmFsLmggKi8s
Ci0JCQkJMUNCNjlCM0IyMURGMDQxRTAwNkU4NDZBIC8qIFdITFNMVW5zaWduZWRJbnRlZ2VyTGl0
ZXJhbFR5cGUuY3BwICovLAotCQkJCTFDQjY5QjM3MjFERUQ2NkIwMDZFODQ2QSAvKiBXSExTTFVu
c2lnbmVkSW50ZWdlckxpdGVyYWxUeXBlLmggKi8sCi0JCQkJQzIxQkY2RkMyMUNEODlCRjAwMjI3
OTc5IC8qIFdITFNMVmFsdWUuaCAqLywKLQkJCQlDMjFCRjcxMDIxQ0Q4OUQwMDAyMjc5NzkgLyog
V0hMU0xWYXJpYWJsZURlY2xhcmF0aW9uLmggKi8sCi0JCQkJQzIxQkY3MTQyMUNEODlEMzAwMjI3
OTc5IC8qIFdITFNMVmFyaWFibGVEZWNsYXJhdGlvbnNTdGF0ZW1lbnQuaCAqLywKLQkJCQlDMjFC
RjcxMzIxQ0Q4OUQyMDAyMjc5NzkgLyogV0hMU0xWYXJpYWJsZVJlZmVyZW5jZS5oICovLAotCQkJ
CUMyMUJGNzA0MjFDRDg5QzYwMDIyNzk3OSAvKiBXSExTTFdoaWxlTG9vcC5oICovLAotCQkJKTsK
LQkJCXBhdGggPSBBU1Q7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwogCQlDOTZG
NUVCRjFCNTg3MjI2MDA5MUVBOUQgLyogbWVkaWFzZXNzaW9uICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTVW5kb0l0ZW1DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNVbmRvSXRlbUN1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc1ZGIwYTIyNDhjNGYxOGE1ODIxZDI1
MjBkYTk2OGYyOTk1NGMwNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTVW5kb0l0ZW1DdXN0b20uY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNVbmRvSXRlbS5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3ZvaWQgSlNVbmRvSXRlbTo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4o
SlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICB3cmFwcGVkKCkudW5kb0hhbmRsZXIo
KS52aXNpdEpTRnVuY3Rpb24odmlzaXRvcik7CisgICAgd3JhcHBlZCgpLnJlZG9IYW5kbGVyKCku
dmlzaXRKU0Z1bmN0aW9uKHZpc2l0b3IpOworfQorCitib29sIEpTVW5kb0l0ZW1Pd25lcjo6aXNS
ZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUs
IHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKK3sKKyAg
ICBhdXRvKiBkb2N1bWVudEZvclVuZG9JdGVtID0ganNDYXN0PEpTVW5kb0l0ZW0qPihoYW5kbGUu
c2xvdCgpLT5hc0NlbGwoKSktPndyYXBwZWQoKS5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1l
bnRGb3JVbmRvSXRlbSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCF2aXNpdG9y
LmNvbnRhaW5zT3BhcXVlUm9vdChkb2N1bWVudEZvclVuZG9JdGVtKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisgICAgICAgICpyZWFzb24gPSAi
RG9jdW1lbnQgaXMgYW4gb3BhcXVlIHJvb3QuIjsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNjdlYjFhMTlh
ZmY3OTFlNjJkNjQ1ZDY5M2FkOTIzNzc5YjEyMWJkZi4uOTM4MDE5YWNhMTY1OTc2OTllZjUwNzdl
ZDQyNzNkOTYyNDNkOTcxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yNTAxLDYgKzI1
MDEsOCBAQCB2b2lkIERvY3VtZW50OjpwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKQogICAgIGNsZWFy
VG91Y2hFdmVudEhhbmRsZXJzQW5kTGlzdGVuZXJzKCk7CiAjZW5kaWYKIAorICAgIG1fdW5kb01h
bmFnZXItPnJlbW92ZUFsbEl0ZW1zKCk7CisKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCiAgICAg
aWYgKHRoaXMgIT0gJnRvcERvY3VtZW50KCkpIHsKICAgICAgICAgLy8gTGV0IHRoZSBheCBjYWNo
ZSBrbm93IHRoYXQgdGhpcyBzdWJmcmFtZSBnb2VzIG91dCBvZiBzY29wZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb0l0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9V
bmRvSXRlbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjkxZmM4NmM3NjYwMmE5Y2Q2YzRhYzQ5OTZjN2ZkMGI5
NzIwNTJjZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb0l0ZW0u
Y3BwCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiVW5kb0l0ZW0uaCIKKworI2luY2x1ZGUgIlVuZG9NYW5hZ2VyLmgiCisjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoVW5kb0l0ZW0pOworCit2b2lkIFVuZG9JdGVtOjpzZXRV
bmRvTWFuYWdlcihVbmRvTWFuYWdlciYgdW5kb01hbmFnZXIpCit7CisgICAgQVNTRVJUKCFtX3Vu
ZG9NYW5hZ2VyKTsKKyAgICBtX3VuZG9NYW5hZ2VyID0gbWFrZVdlYWtQdHIodW5kb01hbmFnZXIp
OworfQorCit2b2lkIFVuZG9JdGVtOjppbnZhbGlkYXRlKCkKK3sKKyAgICBpZiAoYXV0byBtYW5h
Z2VyID0gc3RkOjpleGNoYW5nZShtX3VuZG9NYW5hZ2VyLCBudWxscHRyKSkKKyAgICAgICAgbWFu
YWdlci0+cmVtb3ZlSXRlbSgqdGhpcyk7Cit9CisKK2Jvb2wgVW5kb0l0ZW06OmlzVmFsaWQoKSBj
b25zdAoreworICAgIHJldHVybiAhIW1fdW5kb01hbmFnZXI7Cit9CisKK0RvY3VtZW50KiBVbmRv
SXRlbTo6ZG9jdW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiBpc1ZhbGlkKCkgPyAmbV91bmRv
TWFuYWdlci0+ZG9jdW1lbnQoKSA6IG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb0l0ZW0uaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvVW5kb0l0ZW0uaAppbmRleCAwMTliYjlhZmNmZmUxZGY3MGQzMzE2MzUwNjEz
MzQ3MTM4MDZhYWY0Li5iM2ExNWU3MWQ0MGFjMzBjYTc2YzViMWQwNGRiNGEyMTYwMzAxYTM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9JdGVtLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9VbmRvSXRlbS5oCkBAIC0yNiwxNSArMjYsMTggQEAKICNwcmFnbWEgb25jZQog
CiAjaW5jbHVkZSAiVm9pZENhbGxiYWNrLmgiCi0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+Ci0j
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK2NsYXNzIERvY3VtZW50OworY2xhc3MgVW5kb01hbmFnZXI7CisKIGNsYXNzIFVuZG9JdGVt
IDogcHVibGljIFJlZkNvdW50ZWQ8VW5kb0l0ZW0+IHsKLSAgICBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEX0lOTElORShVbmRvSXRlbSk7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChVbmRvSXRl
bSk7CiBwdWJsaWM6CiAgICAgc3RydWN0IEluaXQgewogICAgICAgICBTdHJpbmcgbGFiZWw7CkBA
IC00Nyw2ICs1MCwxMyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFVu
ZG9JdGVtKFdURk1vdmUoaW5pdCkpKTsKICAgICB9CiAKKyAgICBib29sIGlzVmFsaWQoKSBjb25z
dDsKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKKworICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNv
bnN0OworCisgICAgdm9pZCBzZXRVbmRvTWFuYWdlcihVbmRvTWFuYWdlciYpOworCiAgICAgY29u
c3QgU3RyaW5nJiBsYWJlbCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFiZWw7IH0KICAgICBWb2lkQ2Fs
bGJhY2smIHVuZG9IYW5kbGVyKCkgY29uc3QgeyByZXR1cm4gbV91bmRvSGFuZGxlci5nZXQoKTsg
fQogICAgIFZvaWRDYWxsYmFjayYgcmVkb0hhbmRsZXIoKSBjb25zdCB7IHJldHVybiBtX3JlZG9I
YW5kbGVyLmdldCgpOyB9CkBAIC02Miw2ICs3Miw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1f
bGFiZWw7CiAgICAgUmVmPFZvaWRDYWxsYmFjaz4gbV91bmRvSGFuZGxlcjsKICAgICBSZWY8Vm9p
ZENhbGxiYWNrPiBtX3JlZG9IYW5kbGVyOworICAgIFdlYWtQdHI8VW5kb01hbmFnZXI+IG1fdW5k
b01hbmFnZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1VuZG9JdGVtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb0l0
ZW0uaWRsCmluZGV4IDA5Yjk3YzhjMTUwYzEwN2UwOTQxNDE4ZWMxMTc3MGQ4NmQ0YTkxY2EuLjE5
MGY5YmJiNTJkMGU1ZjgxYzY1Y2Q0ZTBlN2Q0MDY4M2U4MDg3NjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvVW5kb0l0ZW0uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5k
b0l0ZW0uaWRsCkBAIC0zNCw2ICszNCw4IEBACiBbCiAgICAgRW5hYmxlZEF0UnVudGltZT1VbmRv
TWFuYWdlckFQSSwKICAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEpTQ3VzdG9t
TWFya0Z1bmN0aW9uLAorICAgIEN1c3RvbUlzUmVhY2hhYmxlLAogICAgIENvbnN0cnVjdG9yKFVu
ZG9JdGVtSW5pdCBpbml0RGljdCksCiBdIGludGVyZmFjZSBVbmRvSXRlbSB7CiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBsYWJlbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvVW5kb01hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvTWFuYWdlci5j
cHAKaW5kZXggMjIxYmYyOGNjOTY5ZWE4NDIzMDdmYWI4OTFlNWE1YzIwMmEzNTMwNS4uMWQ0NWJh
MzU4YmUwNDllYWRhMTUxZGFiMDkzZjFkYjAwMjM1NTg1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9VbmRvTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRv
TWFuYWdlci5jcHAKQEAgLTMzLDEwICszMywzMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdU
Rl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChVbmRvTWFuYWdlcik7CiAKK1VuZG9NYW5hZ2VyOjpV
bmRvTWFuYWdlcihEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50
KQoreworfQorCitVbmRvTWFuYWdlcjo6flVuZG9NYW5hZ2VyKCkgPSBkZWZhdWx0OworCiB2b2lk
IFVuZG9NYW5hZ2VyOjphZGRJdGVtKFJlZjxVbmRvSXRlbT4mJiBpdGVtKQogewotICAgIFVOVVNF
RF9QQVJBTShpdGVtKTsKICAgICBVTlVTRURfUEFSQU0obV9kb2N1bWVudCk7CisKKyAgICBpdGVt
LT5zZXRVbmRvTWFuYWdlcigqdGhpcyk7CisgICAgbV9pdGVtcy5hZGQoV1RGTW92ZShpdGVtKSk7
Cit9CisKK3ZvaWQgVW5kb01hbmFnZXI6OnJlbW92ZUl0ZW0oVW5kb0l0ZW0mIGl0ZW0pCit7Cisg
ICAgaWYgKGF1dG8gZm91bmRJdGVtID0gbV9pdGVtcy50YWtlKCZpdGVtKSkKKyAgICAgICAgZm91
bmRJdGVtLT5pbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgVW5kb01hbmFnZXI6OnJlbW92ZUFsbEl0
ZW1zKCkKK3sKKyAgICBhdXRvIGl0ZW1zID0gc3RkOjpleGNoYW5nZShtX2l0ZW1zLCB7IH0pOwor
ICAgIGZvciAoYXV0byYgaXRlbSA6IGl0ZW1zKQorICAgICAgICBpdGVtLT5pbnZhbGlkYXRlKCk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvVW5kb01hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb01hbmFnZXIuaApp
bmRleCA0OTYwNGYwOWM1YzhhNTAxNjg5YmM1Y2UxZTg2ZDAzN2Y0OTliYjU0Li43OGZhNzIwZGM3
MzEwODAwNjRiNzBkODMwM2EyZmJiZGI0ZDNjNWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1VuZG9NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvTWFuYWdl
ci5oCkBAIC0yOCwxMyArMjgsMTUgQEAKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBVbmRvSXRlbTsKIAotY2xhc3MgVW5kb01h
bmFnZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxVbmRvTWFuYWdlcj4geworY2xhc3MgVW5kb01hbmFn
ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxVbmRvTWFuYWdlcj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxVbmRvTWFuYWdlcj4gewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoVW5kb01hbmFnZXIp
OwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8VW5kb01hbmFnZXI+IGNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQpCkBAIC00MiwxNiArNDQsMTggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBVbmRvTWFuYWdlcihkb2N1bWVudCkpOwogICAgIH0KIAorICAgIH5VbmRvTWFu
YWdlcigpOworCisgICAgdm9pZCByZW1vdmVJdGVtKFVuZG9JdGVtJik7CisgICAgdm9pZCByZW1v
dmVBbGxJdGVtcygpOwogICAgIHZvaWQgYWRkSXRlbShSZWY8VW5kb0l0ZW0+JiYpOwogICAgIERv
Y3VtZW50JiBkb2N1bWVudCgpIHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0KIAogcHJpdmF0ZToKLSAg
ICBVbmRvTWFuYWdlcihEb2N1bWVudCYgZG9jdW1lbnQpCi0gICAgICAgIDogbV9kb2N1bWVudChk
b2N1bWVudCkKLSAgICB7Ci0gICAgfQorICAgIFVuZG9NYW5hZ2VyKERvY3VtZW50Jik7CiAKICAg
ICBEb2N1bWVudCYgbV9kb2N1bWVudDsKKyAgICBIYXNoU2V0PFJlZlB0cjxVbmRvSXRlbT4+IG1f
aXRlbXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359591</attachid>
            <date>2019-01-18 23:52:05 -0800</date>
            <delta_ts>2019-01-19 00:15:41 -0800</delta_ts>
            <desc>Part 1</desc>
            <filename>bug-193111-20190118235205.patch</filename>
            <type>text/plain</type>
            <size>18603</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjM3ZWI2Mzk0OWYxNDM3
YTY1YzhmZjQwNDgxNzZmYmE1YjFkYTlmZi4uNzBhNGRiNjY1NjJlZjY5ZDZmMGI4Mjc0YzM4NDZj
NTc4MTcwNTFmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE5LTAxLTE4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzb21lIGJp
bmRpbmdzLXJlbGF0ZWQgYm9va2tlZXBwaW5nIHRvIFVuZG9NYW5hZ2VyIGFuZCBVbmRvSXRlbQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMTExCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NDgwNzA0OD4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIHdvcmsgaW4gcHJvZ3Jlc3Mg
dG93YXJkcyBzdXBwb3J0aW5nIGBVbmRvTWFuYWdlci5hZGRJdGVtKClgLiBIZXJlLCB3ZSBhZGQg
aGVscGVyIG1ldGhvZHMgdG8KKyAgICAgICAgVW5kb0l0ZW0gYW5kIFVuZG9NYW5hZ2VyIHdoaWNo
IGxhdGVyIHBhdGNoZXMgd2lsbCBleGVyY2lzZSwgYXMgd2VsbCBhcyBpbnRyb2R1Y2Ugc29tZSBj
dXN0b20gYmluZGluZ3MgdG8KKyAgICAgICAgcHJvcGVybHkgaGFuZGxlIHRoZSBjYXNlIHdoZXJl
IFVuZG9JdGVtcyBhcmUgZ2l2ZW4gYW5vbnltb3VzIEphdmFTY3JpcHQgZnVuY3Rpb25zIChzZWUg
YmVsb3cgZm9yIG1vcmUgZGV0YWlscykuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBiZWNhdXNl
IHRoZXJlIGlzIG5vIHNjcmlwdC1vYnNlcnZhYmxlIGNoYW5nZSBpbiBiZWhhdmlvciB5ZXQuIFdo
ZW4gYGFkZEl0ZW1zKClgIGlzIGhvb2tlZCB1cCwgSQorICAgICAgICB3aWxsIHdyaXRlIGEgdGVz
dCB0byB2ZXJpZnkgdGhhdCB0aGUgdW5kbyBhbmQgcmVkbyBKYXZhU2NyaXB0IGZ1bmN0aW9ucyBz
dXJ2aXZlIGdhcmJhZ2UgY29sbGVjdGlvbi4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICBBdXRv
LXNvcnQgc29tZSBXSExTTCBoZWFkZXJzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNVbmRv
SXRlbUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1VuZG9JdGVtOjp2aXNpdEFkZGl0
aW9uYWxDaGlsZHJlbik6CisKKyAgICAgICAgSGF2ZSBlYWNoIEpTVW5kb0l0ZW0gdmlzaXQgaXRz
IHVuZG8gYW5kIHJlZG8gY2FsbGJhY2sgZnVuY3Rpb25zIHRvIGVuc3VyZSB0aGF0IHRoZSBKYXZh
U2NyaXB0IHdyYXBwZXIgb2JqZWN0cworICAgICAgICBmb3IgdGhlc2UgZnVuY3Rpb25zIGFyZSBu
b3QgZ2FyYmFnZSBjb2xsZWN0ZWQgdW5kZXJuZWF0aCB0aGUgaXRlbS4KKworICAgICAgICAoV2Vi
Q29yZTo6SlNVbmRvSXRlbU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisKKyAg
ICAgICAgQ29uc2lkZXIgdGhlIHVuZG8gaXRlbSB3cmFwcGVyIHJlYWNoYWJsZSBmcm9tIG9wYXF1
ZSByb290cyBpZiBpdCBpcyBhc3NvY2lhdGVkIHdpdGggaXRzIFVuZG9NYW5hZ2VyJ3MgRG9jdW1l
bnQuCisgICAgICAgIFRoaXMgZW5zdXJlcyB0aGF0IGlmIHNjcmlwdCBpc24ndCBob2xkaW5nIG9u
IHRvIGEgcmVmZXJlbmNlIHRvIHRoZSB3cmFwcGVyIChmb3IgaW5zdGFuY2UsIGJ5IGNhbGxpbmcK
KyAgICAgICAgYFVuZG9NYW5hZ2VyLmFkZEl0ZW0obmV3IFVuZG9JdGVtKHsgLi4uIH0pKWApLCB3
ZSBzdGlsbCBwcm90ZWN0IHRoZSBjb3JyZXNwb25kaW5nIEpTVW5kb0l0ZW0gYXMgbG9uZyBhcyB0
aGUKKyAgICAgICAgVW5kb01hbmFnZXIncyBEb2N1bWVudCBpcyBhbGl2ZS4gSW4gdGhlIGNhc2Ug
d2hlcmUgdGhlIHVuZG8gaXRlbSBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIGEgZG9jdW1lbnQsIGVp
dGhlciAoMSkKKyAgICAgICAgc2NyaXB0IGlzIGtlZXBpbmcgYSByZWZlcmVuY2UgdG8gaXQsIGlu
IHdoaWNoIGNhc2UgaXQgd2lsbCBiZSB0cml2aWFsbHkgcmVhY2hhYmxlLCBvciAoMikgc2NyaXB0
IHdvbid0IGJlIGFibGUKKyAgICAgICAgdG8gb2JzZXJ2ZSB0aGUgZGVzdHJ1Y3Rpb24gb2YgdGhl
IHdyYXBwZXIgYW55d2F5cyAoZS5nLiBjYWxsaW5nIGBuZXcgVW5kb0l0ZW0oeyAuLi4gfSlgIGJ5
IGl0c2VsZikuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OnByZXBhcmVGb3JEZXN0cnVjdGlvbik6CisKKyAgICAgICAgSW52YWxpZGF0
ZSBhbGwgdW5kbyBpdGVtcyB3aGVuIHRoZSBkb2N1bWVudCBpcyBhYm91dCB0byBnbyBhd2F5Lgor
CisgICAgICAgICogcGFnZS9VbmRvSXRlbS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvVW5kb01hbmFnZXIuY3BwLgorICAgICAgICAoV2ViQ29yZTo6VW5kb0l0ZW06OnNldFVu
ZG9NYW5hZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlVuZG9JdGVtOjppbnZhbGlkYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlVuZG9JdGVtOjppc1ZhbGlkIGNvbnN0KToKKworICAgICAgICBBZGQg
YSBmZXcgaGVscGVycywgdG8gYmUgdXNlZCBpbiBhIGZ1dHVyZSBwYXRjaC4gV2UgY29uc2lkZXIg
YW4gVW5kb0l0ZW0gdmFsaWQgaWYgaXQgaGFzIGJlZW4gYWRkZWQgdG8gYW4KKyAgICAgICAgVW5k
b01hbmFnZXIsIGFuZCBpcyB0aHVzIGFzc29jaWF0ZWQgd2l0aCBhIGRvY3VtZW50LgorCisgICAg
ICAgIChXZWJDb3JlOjpVbmRvSXRlbTo6ZG9jdW1lbnQgY29uc3QpOgorICAgICAgICAqIHBhZ2Uv
VW5kb0l0ZW0uaDoKKyAgICAgICAgKiBwYWdlL1VuZG9JdGVtLmlkbDoKKyAgICAgICAgKiBwYWdl
L1VuZG9NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVuZG9NYW5hZ2VyOjpVbmRvTWFu
YWdlcik6CisgICAgICAgIChXZWJDb3JlOjpVbmRvTWFuYWdlcjo6YWRkSXRlbSk6CisKKyAgICAg
ICAgSGF2ZSBhbiBVbmRvTWFuYWdlciBrZWVwIGl0cyBVbmRvSXRlbXMgYWxpdmUuIFRoZXNlIFVu
ZG9JdGVtcyByZW1haW4gaW4gdGhpcyBzZXQgdW50aWwgZWl0aGVyIHRoZSBkb2N1bWVudCB3aWxs
CisgICAgICAgIGJlIGRlc3Ryb3llZCwgb3IgdGhlIGNvcnJlc3BvbmRpbmcgdW5kbyBhY3Rpb24g
aXMgbm8gbG9uZ2VyIG5lZWRlZCBiZWNhdXNlIHRoZSBwbGF0Zm9ybSB1bmRvIHN0YWNrIGhhcyBj
aGFuZ2VkCisgICAgICAgICh0aGlzIGxhdHRlciBiZWhhdmlvciBpcyB5ZXQgdG8gYmUgaW1wbGVt
ZW50ZWQpLgorCisgICAgICAgIChXZWJDb3JlOjpVbmRvTWFuYWdlcjo6cmVtb3ZlSXRlbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpVbmRvTWFuYWdlcjo6cmVtb3ZlQWxsSXRlbXMpOgorICAgICAgICAq
IHBhZ2UvVW5kb01hbmFnZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlVuZG9NYW5hZ2VyOjpVbmRv
TWFuYWdlcik6IERlbGV0ZWQuCisKIDIwMTktMDEtMTggIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBs
ZS5jb20+CiAKICAgICAgICAgQXV0b21hdGlvbi5jb21wdXRlRWxlbWVudExheW91dCBzaG91bGQg
cmV0dXJuIHZpc3VhbCB2aWV3cG9ydC1hd2FyZSBjb29yZGluYXRlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRl
eCBiNjEyNDE5MmNlOTQ0NTJmNmQxZmU0YmJmMzA5ZmNkYWM0MWI0NzJhLi4yNDVhNTU5MDhkZmUy
ZTMwNTVhYzZhZGI3ZmQ0YmIwMDIxNjI0NjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNTIwLDYgKzUy
MCw3IEBAIGJpbmRpbmdzL2pzL0pTVGV4dFRyYWNrTGlzdEN1c3RvbS5jcHAKIGJpbmRpbmdzL2pz
L0pTVHJhY2tDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1RyZWVXYWxrZXJDdXN0b20uY3BwCiBi
aW5kaW5ncy9qcy9KU1R5cGVkT01DU1NTdHlsZVZhbHVlQ3VzdG9tLmNwcAorYmluZGluZ3MvanMv
SlNVbmRvSXRlbUN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTVmlkZW9UcmFja0N1c3RvbS5jcHAK
IGJpbmRpbmdzL2pzL0pTVmlkZW9UcmFja0xpc3RDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1dl
YkFuaW1hdGlvbkN1c3RvbS5jcHAKQEAgLTE1MzAsNiArMTUzMSw3IEBAIHBhZ2UvU29ja2V0UHJv
dmlkZXIuY3BwCiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcAogcGFnZS9TdXNwZW5kYWJsZVRp
bWVyLmNwcAogcGFnZS9UZXh0SW5kaWNhdG9yLmNwcAorcGFnZS9VbmRvSXRlbS5jcHAKIHBhZ2Uv
VW5kb01hbmFnZXIuY3BwCiBwYWdlL1VzZXJDb250ZW50UHJvdmlkZXIuY3BwCiBwYWdlL1VzZXJD
b250ZW50Q29udHJvbGxlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2ZmVkYzIyMjRmOGIxNWYyNWQwMTMzODcxMGEwNjk2
MWY2MzU2NGQ4Li5iYTIwNjM5ZGQ1ODk2MTlhOWFjYTYwODA3ZjFkMzEwY2Q1Yzc2MDkyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC03MDg4LDggKzcwODgsNiBAQAogCQkzMTlCREU1MzFFN0E4NkMxMDBCQTI5NkMgLyogSlNSVENJ
Y2VUcmFuc3BvcnRTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1JU
Q0ljZVRyYW5zcG9ydFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxOUJE
RTUzMUU3QTg2QzEwMEJBMjk2RCAvKiBKU1JUQ1BlZXJDb25uZWN0aW9uU3RhdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSVENQZWVyQ29ubmVjdGlvblN0YXRlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxOUZCRDVEMTVEMkY0NDQwMDk2NDBBNiAvKiBD
YWNoZWRJbWFnZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNo
ZWRJbWFnZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUEwODhDNDFF
NzM3QjJDMDAzQjY2MDkgLyogSlNXZWJHUFVSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR1BVUmVuZGVyaW5nQ29udGV4
dEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxQTA4OEM1MUU3MzdC
MkMwMDNCNjYwOSAvKiBKU1dlYkdQVVJlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvckN1c3Rv
bS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdQVVJlbmRl
clBhc3NBdHRhY2htZW50RGVzY3JpcHRvckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTMxQTA4OTFCMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVUJ1ZmZlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdQVUJ1ZmZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQTA4OTFEMUU3MzhENTkwMDNCNjYwOSAv
KiBKU1dlYkdQVUJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dl
YkdQVUJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUEwODkxRTFFNzM4
RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVDb21tYW5kQnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR1BVQ29tbWFuZEJ1ZmZlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTEyMyw2ICsxNTEyMSw4IEBACiAJCUY0RDQzRDY0MjE4
ODAyRTYwMEVDRUNBQyAvKiBTZXJpYWxpemVkQXR0YWNobWVudERhdGEuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU2VyaWFsaXplZEF0dGFjaG1lbnREYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY0RDk4MTdEMjE5NUZCRjYwMDgyMzBGQyAvKiBDaGFuZ2VMaXN0VHlwZUNvbW1hbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY0RDk4MTdFMjE5NUZCRjYwMDgyMzBGQyAvKiBDaGFuZ2VMaXN0VHlwZUNv
bW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjRFMTk2NUEyMUYyMzk1MDAwMjg1MDc4IC8q
IEpTVW5kb0l0ZW1DdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNVbmRvSXRlbUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0
RTE5NjVGMjFGMjZFNEUwMDI4NTA3OCAvKiBVbmRvSXRlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBVbmRvSXRlbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RTU3RURBMjEz
RjNGNUYwMDRFQTk4RSAvKiBGb250QXR0cmlidXRlQ2hhbmdlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBG
b250QXR0cmlidXRlQ2hhbmdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEU1
N0VERjIxM0Y0MzRBMDA0RUE5OEUgLyogV2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjRFNTdFRTAyMTNGNDM0QTAwNEVBOThFIC8qIFdlYkNvcmVOU0ZvbnRN
YW5hZ2VyRXh0cmFzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZU5TRm9udE1hbmFn
ZXJFeHRyYXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDQwNyw2ICsyMDQw
Nyw3IEBACiAJCQkJNjJDMTIxN0IxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIu
aCAqLywKIAkJCQkyRDRGOTZGMTFBMUVDQzI0MDA5OEJGODggLyogVGV4dEluZGljYXRvci5jcHAg
Ki8sCiAJCQkJMkQ0Rjk2RjIxQTFFQ0MyNDAwOThCRjg4IC8qIFRleHRJbmRpY2F0b3IuaCAqLywK
KwkJCQlGNEUxOTY1RjIxRjI2RTRFMDAyODUwNzggLyogVW5kb0l0ZW0uY3BwICovLAogCQkJCTJF
Q0RCQUQ1MjFEODkwNjMwMEYwMEVDRCAvKiBVbmRvSXRlbS5oICovLAogCQkJCTJFQ0RCQUQ3MjFE
ODkwNjMwMEYwMEVDRCAvKiBVbmRvSXRlbS5pZGwgKi8sCiAJCQkJMkVDREJBQ0YyMUQ4OTAzNDAw
RjAwRUNEIC8qIFVuZG9NYW5hZ2VyLmNwcCAqLywKQEAgLTIwNzc1LDEzICsyMDc3NiwxMiBAQAog
CQkJCTA3ODQ2Mzg0MTQ1QjFCOEUwMEE1OERGMSAvKiBKU1RyYWNrQ3VzdG9tLmggKi8sCiAJCQkJ
NTE2QkI3OTIwQ0U5MUU2ODAwNTEyRjc5IC8qIEpTVHJlZVdhbGtlckN1c3RvbS5jcHAgKi8sCiAJ
CQkJNEJBRkQwRTIyMTkyNjA0RDAwQzBBQjY0IC8qIEpTVHlwZWRPTUNTU1N0eWxlVmFsdWVDdXN0
b20uY3BwICovLAorCQkJCUY0RTE5NjVBMjFGMjM5NTAwMDI4NTA3OCAvKiBKU1VuZG9JdGVtQ3Vz
dG9tLmNwcCAqLywKIAkJCQlCRTZERjcwODE3MUNBMkM1MDBERDUyQjggLyogSlNWaWRlb1RyYWNr
Q3VzdG9tLmNwcCAqLywKIAkJCQlCRTZERjcwQTE3MUNBMkM1MDBERDUyQjggLyogSlNWaWRlb1Ry
YWNrTGlzdEN1c3RvbS5jcHAgKi8sCiAJCQkJNzE1REE1RDMyMDFCQjkwMjAwMkVGMkIwIC8qIEpT
V2ViQW5pbWF0aW9uQ3VzdG9tLmNwcCAqLywKIAkJCQlEM0YzRDM1OTFBNjlBM0IwMDA1OUZDMkIg
LyogSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCAqLywKIAkJCQk0OUVFRDE0QzEw
NTE5NzFBMDAwOTlGQUIgLyogSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwICovLAot
CQkJCTMxQTA4OEM0MUU3MzdCMkMwMDNCNjYwOSAvKiBKU1dlYkdQVVJlbmRlcmluZ0NvbnRleHRD
dXN0b20uY3BwICovLAotCQkJCTMxQTA4OEM1MUU3MzdCMkMwMDNCNjYwOSAvKiBKU1dlYkdQVVJl
bmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvckN1c3RvbS5jcHAgKi8sCiAJCQkJRTE4MjU4QUIw
RUYzQ0Q3MDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwICovLAogCQkJ
CTQ2RjkxQkM5MUZDREQwRkUwMDE1OTlDMyAvKiBKU1dvcmtlck5hdmlnYXRvckN1c3RvbS5jcHAg
Ki8sCiAJCQkJODNBNEE5RjgxQ0U3RkQ3RTAwNzA5QjAwIC8qIEpTWE1MRG9jdW1lbnRDdXN0b20u
Y3BwICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVbmRvSXRl
bUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VuZG9JdGVtQ3VzdG9t
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40NzVkYjBhMjI0OGM0ZjE4YTU4MjFkMjUyMGRhOTY4ZjI5OTU0YzA0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVbmRvSXRl
bUN1c3RvbS5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJKU1VuZG9JdGVtLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
dm9pZCBKU1VuZG9JdGVtOjp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihKU0M6OlNsb3RWaXNpdG9y
JiB2aXNpdG9yKQoreworICAgIHdyYXBwZWQoKS51bmRvSGFuZGxlcigpLnZpc2l0SlNGdW5jdGlv
bih2aXNpdG9yKTsKKyAgICB3cmFwcGVkKCkucmVkb0hhbmRsZXIoKS52aXNpdEpTRnVuY3Rpb24o
dmlzaXRvcik7Cit9CisKK2Jvb2wgSlNVbmRvSXRlbU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNp
dG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQoreworICAgIGF1dG8qIGRvY3VtZW50
Rm9yVW5kb0l0ZW0gPSBqc0Nhc3Q8SlNVbmRvSXRlbSo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgp
KS0+d3JhcHBlZCgpLmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudEZvclVuZG9JdGVtKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIXZpc2l0b3IuY29udGFpbnNPcGFxdWVS
b290KGRvY3VtZW50Rm9yVW5kb0l0ZW0pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBp
ZiAoVU5MSUtFTFkocmVhc29uKSkKKyAgICAgICAgKnJlYXNvbiA9ICJEb2N1bWVudCBpcyBhbiBv
cGFxdWUgcm9vdC4iOworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA2N2ViMWExOWFmZjc5MWU2MmQ2NDVkNjkz
YWQ5MjM3NzliMTIxYmRmLi45MzgwMTlhY2ExNjU5NzY5OWVmNTA3N2VkNDI3M2Q5NjI0M2Q5NzE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTI1MDEsNiArMjUwMSw4IEBAIHZvaWQgRG9j
dW1lbnQ6OnByZXBhcmVGb3JEZXN0cnVjdGlvbigpCiAgICAgY2xlYXJUb3VjaEV2ZW50SGFuZGxl
cnNBbmRMaXN0ZW5lcnMoKTsKICNlbmRpZgogCisgICAgbV91bmRvTWFuYWdlci0+cmVtb3ZlQWxs
SXRlbXMoKTsKKwogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKICAgICBpZiAodGhpcyAhPSAmdG9w
RG9jdW1lbnQoKSkgewogICAgICAgICAvLyBMZXQgdGhlIGF4IGNhY2hlIGtub3cgdGhhdCB0aGlz
IHN1YmZyYW1lIGdvZXMgb3V0IG9mIHNjb3BlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9VbmRvSXRlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9JdGVtLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iOTFmYzg2Yzc2NjAyYTljZDZjNGFjNDk5NmM3ZmQwYjk3MjA1MmNlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvSXRlbS5jcHAKQEAgLTAsMCArMSw1
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJVbmRvSXRl
bS5oIgorCisjaW5jbHVkZSAiVW5kb01hbmFnZXIuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
SW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FU
RURfSU1QTChVbmRvSXRlbSk7CisKK3ZvaWQgVW5kb0l0ZW06OnNldFVuZG9NYW5hZ2VyKFVuZG9N
YW5hZ2VyJiB1bmRvTWFuYWdlcikKK3sKKyAgICBBU1NFUlQoIW1fdW5kb01hbmFnZXIpOworICAg
IG1fdW5kb01hbmFnZXIgPSBtYWtlV2Vha1B0cih1bmRvTWFuYWdlcik7Cit9CisKK3ZvaWQgVW5k
b0l0ZW06OmludmFsaWRhdGUoKQoreworICAgIGlmIChhdXRvIG1hbmFnZXIgPSBzdGQ6OmV4Y2hh
bmdlKG1fdW5kb01hbmFnZXIsIG51bGxwdHIpKQorICAgICAgICBtYW5hZ2VyLT5yZW1vdmVJdGVt
KCp0aGlzKTsKK30KKworYm9vbCBVbmRvSXRlbTo6aXNWYWxpZCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuICEhbV91bmRvTWFuYWdlcjsKK30KKworRG9jdW1lbnQqIFVuZG9JdGVtOjpkb2N1bWVudCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGlzVmFsaWQoKSA/ICZtX3VuZG9NYW5hZ2VyLT5kb2N1bWVu
dCgpIDogbnVsbHB0cjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9VbmRvSXRlbS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRv
SXRlbS5oCmluZGV4IDAxOWJiOWFmY2ZmZTFkZjcwZDMzMTYzNTA2MTMzNDcxMzgwNmFhZjQuLmIz
YTE1ZTcxZDQwYWMzMGNhNzZjNWIxZDA0ZGI0YTIxNjAzMDFhMzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvVW5kb0l0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9J
dGVtLmgKQEAgLTI2LDE1ICsyNiwxOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJWb2lk
Q2FsbGJhY2suaCIKLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KLSNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRG9jdW1l
bnQ7CitjbGFzcyBVbmRvTWFuYWdlcjsKKwogY2xhc3MgVW5kb0l0ZW0gOiBwdWJsaWMgUmVmQ291
bnRlZDxVbmRvSXRlbT4gewotICAgIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU5MSU5FKFVuZG9J
dGVtKTsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFVuZG9JdGVtKTsKIHB1YmxpYzoKICAg
ICBzdHJ1Y3QgSW5pdCB7CiAgICAgICAgIFN0cmluZyBsYWJlbDsKQEAgLTQ3LDYgKzUwLDEzIEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVW5kb0l0ZW0oV1RGTW92ZShp
bml0KSkpOwogICAgIH0KIAorICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OworICAgIHZvaWQgaW52
YWxpZGF0ZSgpOworCisgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CisKKyAgICB2b2lk
IHNldFVuZG9NYW5hZ2VyKFVuZG9NYW5hZ2VyJik7CisKICAgICBjb25zdCBTdHJpbmcmIGxhYmVs
KCkgY29uc3QgeyByZXR1cm4gbV9sYWJlbDsgfQogICAgIFZvaWRDYWxsYmFjayYgdW5kb0hhbmRs
ZXIoKSBjb25zdCB7IHJldHVybiBtX3VuZG9IYW5kbGVyLmdldCgpOyB9CiAgICAgVm9pZENhbGxi
YWNrJiByZWRvSGFuZGxlcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVkb0hhbmRsZXIuZ2V0KCk7IH0K
QEAgLTYyLDYgKzcyLDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9sYWJlbDsKICAgICBSZWY8
Vm9pZENhbGxiYWNrPiBtX3VuZG9IYW5kbGVyOwogICAgIFJlZjxWb2lkQ2FsbGJhY2s+IG1fcmVk
b0hhbmRsZXI7CisgICAgV2Vha1B0cjxVbmRvTWFuYWdlcj4gbV91bmRvTWFuYWdlcjsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
VW5kb0l0ZW0uaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvSXRlbS5pZGwKaW5kZXggMDli
OTdjOGMxNTBjMTA3ZTA5NDE0MThlYzExNzcwZDg2ZDRhOTFjYS4uMTkwZjliYmI1MmQwZTVmODFj
NjVjZDRlMGU3ZDQwNjgzZTgwODc2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9V
bmRvSXRlbS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvSXRlbS5pZGwKQEAgLTM0
LDYgKzM0LDggQEAKIFsKICAgICBFbmFibGVkQXRSdW50aW1lPVVuZG9NYW5hZ2VyQVBJLAogICAg
IEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCisg
ICAgQ3VzdG9tSXNSZWFjaGFibGUsCiAgICAgQ29uc3RydWN0b3IoVW5kb0l0ZW1Jbml0IGluaXRE
aWN0KSwKIF0gaW50ZXJmYWNlIFVuZG9JdGVtIHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIGxhYmVsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9NYW5hZ2VyLmNwcAppbmRleCAyMjFiZjI4
Y2M5NjllYTg0MjMwN2ZhYjg5MWU1YTVjMjAyYTM1MzA1Li4xZDQ1YmEzNThiZTA0OWVhZGExNTFk
YWIwOTNmMWRiMDAyMzU1ODUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9N
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9NYW5hZ2VyLmNwcApAQCAt
MzMsMTAgKzMzLDMyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9D
QVRFRF9JTVBMKFVuZG9NYW5hZ2VyKTsKIAorVW5kb01hbmFnZXI6OlVuZG9NYW5hZ2VyKERvY3Vt
ZW50JiBkb2N1bWVudCkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCit7Cit9CisKK1VuZG9N
YW5hZ2VyOjp+VW5kb01hbmFnZXIoKSA9IGRlZmF1bHQ7CisKIHZvaWQgVW5kb01hbmFnZXI6OmFk
ZEl0ZW0oUmVmPFVuZG9JdGVtPiYmIGl0ZW0pCiB7Ci0gICAgVU5VU0VEX1BBUkFNKGl0ZW0pOwog
ICAgIFVOVVNFRF9QQVJBTShtX2RvY3VtZW50KTsKKworICAgIGl0ZW0tPnNldFVuZG9NYW5hZ2Vy
KCp0aGlzKTsKKyAgICBtX2l0ZW1zLmFkZChXVEZNb3ZlKGl0ZW0pKTsKK30KKwordm9pZCBVbmRv
TWFuYWdlcjo6cmVtb3ZlSXRlbShVbmRvSXRlbSYgaXRlbSkKK3sKKyAgICBpZiAoYXV0byBmb3Vu
ZEl0ZW0gPSBtX2l0ZW1zLnRha2UoJml0ZW0pKQorICAgICAgICBmb3VuZEl0ZW0tPmludmFsaWRh
dGUoKTsKK30KKwordm9pZCBVbmRvTWFuYWdlcjo6cmVtb3ZlQWxsSXRlbXMoKQoreworICAgIGF1
dG8gaXRlbXMgPSBzdGQ6OmV4Y2hhbmdlKG1faXRlbXMsIHsgfSk7CisgICAgZm9yIChhdXRvJiBp
dGVtIDogaXRlbXMpCisgICAgICAgIGl0ZW0tPmludmFsaWRhdGUoKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvTWFuYWdl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvTWFuYWdlci5oCmluZGV4IDQ5NjA0ZjA5YzVj
OGE1MDE2ODliYzVjZTFlODZkMDM3ZjQ5OWJiNTQuLjc4ZmE3MjBkYzczMTA4MDA2NGI3MGQ4MzAz
YTJmYmJkYjRkM2M1ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb01hbmFn
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9NYW5hZ2VyLmgKQEAgLTI4LDEzICsy
OCwxNSBAQAogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBE
b2N1bWVudDsKIGNsYXNzIFVuZG9JdGVtOwogCi1jbGFzcyBVbmRvTWFuYWdlciA6IHB1YmxpYyBS
ZWZDb3VudGVkPFVuZG9NYW5hZ2VyPiB7CitjbGFzcyBVbmRvTWFuYWdlciA6IHB1YmxpYyBSZWZD
b3VudGVkPFVuZG9NYW5hZ2VyPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFVuZG9NYW5hZ2VyPiB7
CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChVbmRvTWFuYWdlcik7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxVbmRvTWFuYWdlcj4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKQEAgLTQy
LDE2ICs0NCwxOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFVuZG9N
YW5hZ2VyKGRvY3VtZW50KSk7CiAgICAgfQogCisgICAgflVuZG9NYW5hZ2VyKCk7CisKKyAgICB2
b2lkIHJlbW92ZUl0ZW0oVW5kb0l0ZW0mKTsKKyAgICB2b2lkIHJlbW92ZUFsbEl0ZW1zKCk7CiAg
ICAgdm9pZCBhZGRJdGVtKFJlZjxVbmRvSXRlbT4mJik7CiAgICAgRG9jdW1lbnQmIGRvY3VtZW50
KCkgeyByZXR1cm4gbV9kb2N1bWVudDsgfQogCiBwcml2YXRlOgotICAgIFVuZG9NYW5hZ2VyKERv
Y3VtZW50JiBkb2N1bWVudCkKLSAgICAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQotICAgIHsK
LSAgICB9CisgICAgVW5kb01hbmFnZXIoRG9jdW1lbnQmKTsKIAogICAgIERvY3VtZW50JiBtX2Rv
Y3VtZW50OworICAgIEhhc2hTZXQ8UmVmUHRyPFVuZG9JdGVtPj4gbV9pdGVtczsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359592</attachid>
            <date>2019-01-19 00:15:42 -0800</date>
            <delta_ts>2019-01-19 00:29:08 -0800</delta_ts>
            <desc>Part 1 (w/ unified build fix)</desc>
            <filename>bug-193111-20190119001542.patch</filename>
            <type>text/plain</type>
            <size>19154</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjM3ZWI2Mzk0OWYxNDM3
YTY1YzhmZjQwNDgxNzZmYmE1YjFkYTlmZi4uOWQ2OTQ0MDZiNzFiY2JmNTVjNzgzMTBiYzQxZjUx
N2UxYzk3NTY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE5LTAxLTE5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzb21lIGJp
bmRpbmdzLXJlbGF0ZWQgYm9va2tlZXBwaW5nIHRvIFVuZG9NYW5hZ2VyIGFuZCBVbmRvSXRlbQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMTExCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NDgwNzA0OD4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIHdvcmsgaW4gcHJvZ3Jlc3Mg
dG93YXJkcyBzdXBwb3J0aW5nIGBVbmRvTWFuYWdlci5hZGRJdGVtKClgLiBIZXJlLCB3ZSBhZGQg
aGVscGVyIG1ldGhvZHMgdG8KKyAgICAgICAgVW5kb0l0ZW0gYW5kIFVuZG9NYW5hZ2VyIHdoaWNo
IGxhdGVyIHBhdGNoZXMgd2lsbCBleGVyY2lzZSwgYXMgd2VsbCBhcyBpbnRyb2R1Y2Ugc29tZSBj
dXN0b20gYmluZGluZ3MgdG8KKyAgICAgICAgcHJvcGVybHkgaGFuZGxlIHRoZSBjYXNlIHdoZXJl
IFVuZG9JdGVtcyBhcmUgZ2l2ZW4gYW5vbnltb3VzIEphdmFTY3JpcHQgZnVuY3Rpb25zIChzZWUg
YmVsb3cgZm9yIG1vcmUgZGV0YWlscykuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBiZWNhdXNl
IHRoZXJlIGlzIG5vIHNjcmlwdC1vYnNlcnZhYmxlIGNoYW5nZSBpbiBiZWhhdmlvciB5ZXQuIFdo
ZW4gYGFkZEl0ZW1zKClgIGlzIGhvb2tlZCB1cCwgSQorICAgICAgICB3aWxsIHdyaXRlIGEgdGVz
dCB0byB2ZXJpZnkgdGhhdCB0aGUgdW5kbyBhbmQgcmVkbyBKYXZhU2NyaXB0IGZ1bmN0aW9ucyBz
dXJ2aXZlIGdhcmJhZ2UgY29sbGVjdGlvbi4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU1VuZG9JdGVtQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVW5kb0l0
ZW06OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKToKKworICAgICAgICBIYXZlIGVhY2ggSlNVbmRv
SXRlbSB2aXNpdCBpdHMgdW5kbyBhbmQgcmVkbyBjYWxsYmFjayBmdW5jdGlvbnMgdG8gZW5zdXJl
IHRoYXQgdGhlIEphdmFTY3JpcHQgd3JhcHBlciBvYmplY3RzCisgICAgICAgIGZvciB0aGVzZSBm
dW5jdGlvbnMgYXJlIG5vdCBnYXJiYWdlIGNvbGxlY3RlZCB1bmRlcm5lYXRoIHRoZSBpdGVtLgor
CisgICAgICAgIChXZWJDb3JlOjpKU1VuZG9JdGVtT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKToKKworICAgICAgICBDb25zaWRlciB0aGUgdW5kbyBpdGVtIHdyYXBwZXIgcmVhY2hh
YmxlIGZyb20gb3BhcXVlIHJvb3RzIGlmIGl0IGlzIGFzc29jaWF0ZWQgd2l0aCBpdHMgVW5kb01h
bmFnZXIncyBEb2N1bWVudC4KKyAgICAgICAgVGhpcyBlbnN1cmVzIHRoYXQgaWYgc2NyaXB0IGlz
bid0IGhvbGRpbmcgb24gdG8gYSByZWZlcmVuY2UgdG8gdGhlIHdyYXBwZXIgKGZvciBpbnN0YW5j
ZSwgYnkgY2FsbGluZworICAgICAgICBgVW5kb01hbmFnZXIuYWRkSXRlbShuZXcgVW5kb0l0ZW0o
eyAuLi4gfSkpYCksIHdlIHN0aWxsIHByb3RlY3QgdGhlIGNvcnJlc3BvbmRpbmcgSlNVbmRvSXRl
bSBhcyBsb25nIGFzIHRoZQorICAgICAgICBVbmRvTWFuYWdlcidzIERvY3VtZW50IGlzIGFsaXZl
LiBJbiB0aGUgY2FzZSB3aGVyZSB0aGUgdW5kbyBpdGVtIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGgg
YSBkb2N1bWVudCwgZWl0aGVyICgxKQorICAgICAgICBzY3JpcHQgaXMga2VlcGluZyBhIHJlZmVy
ZW5jZSB0byBpdCwgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIHRyaXZpYWxseSByZWFjaGFibGUs
IG9yICgyKSBzY3JpcHQgd29uJ3QgYmUgYWJsZQorICAgICAgICB0byBvYnNlcnZlIHRoZSBkZXN0
cnVjdGlvbiBvZiB0aGUgd3JhcHBlciBhbnl3YXlzIChlLmcuIGNhbGxpbmcgYG5ldyBVbmRvSXRl
bSh7IC4uLiB9KWAgYnkgaXRzZWxmKS4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cHJlcGFyZUZvckRlc3RydWN0aW9uKToKKworICAg
ICAgICBJbnZhbGlkYXRlIGFsbCB1bmRvIGl0ZW1zIHdoZW4gdGhlIGRvY3VtZW50IGlzIGFib3V0
IHRvIGdvIGF3YXkuCisKKyAgICAgICAgKiBwYWdlL1VuZG9JdGVtLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlVuZG9JdGVtOjpzZXRVbmRvTWFuYWdlcik6CisgICAgICAgIChXZWJDb3JlOjpVbmRv
SXRlbTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpVbmRvSXRlbTo6aXNWYWxpZCBj
b25zdCk6CisKKyAgICAgICAgQWRkIGEgZmV3IGhlbHBlcnMsIHRvIGJlIHVzZWQgaW4gYSBmdXR1
cmUgcGF0Y2guIFdlIGNvbnNpZGVyIGFuIFVuZG9JdGVtIHZhbGlkIGlmIGl0IGhhcyBiZWVuIGFk
ZGVkIHRvIGFuCisgICAgICAgIFVuZG9NYW5hZ2VyLCBhbmQgaXMgdGh1cyBhc3NvY2lhdGVkIHdp
dGggYSBkb2N1bWVudC4KKworICAgICAgICAoV2ViQ29yZTo6VW5kb0l0ZW06OmRvY3VtZW50IGNv
bnN0KToKKyAgICAgICAgKiBwYWdlL1VuZG9JdGVtLmg6CisgICAgICAgICogcGFnZS9VbmRvSXRl
bS5pZGw6CisgICAgICAgICogcGFnZS9VbmRvTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpVbmRvTWFuYWdlcjo6VW5kb01hbmFnZXIpOgorICAgICAgICAoV2ViQ29yZTo6VW5kb01hbmFn
ZXI6OmFkZEl0ZW0pOgorCisgICAgICAgIEhhdmUgYW4gVW5kb01hbmFnZXIga2VlcCBpdHMgVW5k
b0l0ZW1zIGFsaXZlLiBUaGVzZSBVbmRvSXRlbXMgcmVtYWluIGluIHRoaXMgc2V0IHVudGlsIGVp
dGhlciB0aGUgZG9jdW1lbnQgd2lsbAorICAgICAgICBiZSBkZXN0cm95ZWQsIG9yIHRoZSBjb3Jy
ZXNwb25kaW5nIHVuZG8gYWN0aW9uIGlzIG5vIGxvbmdlciBuZWVkZWQgYmVjYXVzZSB0aGUgcGxh
dGZvcm0gdW5kbyBzdGFjayBoYXMgY2hhbmdlZAorICAgICAgICAodGhpcyBsYXR0ZXIgYmVoYXZp
b3IgaXMgeWV0IHRvIGJlIGltcGxlbWVudGVkKS4KKworICAgICAgICAoV2ViQ29yZTo6VW5kb01h
bmFnZXI6OnJlbW92ZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6VW5kb01hbmFnZXI6OnJlbW92
ZUFsbEl0ZW1zKToKKyAgICAgICAgKiBwYWdlL1VuZG9NYW5hZ2VyLmg6CisgICAgICAgIChXZWJD
b3JlOjpVbmRvTWFuYWdlcjo6VW5kb01hbmFnZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcDoKKworICAgICAgICBVbmlm
aWVkIGJ1aWxkIGZpeC4KKwogMjAxOS0wMS0xOCAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNv
bT4KIAogICAgICAgICBBdXRvbWF0aW9uLmNvbXB1dGVFbGVtZW50TGF5b3V0IHNob3VsZCByZXR1
cm4gdmlzdWFsIHZpZXdwb3J0LWF3YXJlIGNvb3JkaW5hdGVzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGI2
MTI0MTkyY2U5NDQ1MmY2ZDFmZTRiYmYzMDlmY2RhYzQxYjQ3MmEuLjI0NWE1NTkwOGRmZTJlMzA1
NWFjNmFkYjdmZDRiYjAwMjE2MjQ2NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC01MjAsNiArNTIwLDcg
QEAgYmluZGluZ3MvanMvSlNUZXh0VHJhY2tMaXN0Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNU
cmFja0N1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTVHJlZVdhbGtlckN1c3RvbS5jcHAKIGJpbmRp
bmdzL2pzL0pTVHlwZWRPTUNTU1N0eWxlVmFsdWVDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU1Vu
ZG9JdGVtQ3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNWaWRlb1RyYWNrQ3VzdG9tLmNwcAogYmlu
ZGluZ3MvanMvSlNWaWRlb1RyYWNrTGlzdEN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTV2ViQW5p
bWF0aW9uQ3VzdG9tLmNwcApAQCAtMTUzMCw2ICsxNTMxLDcgQEAgcGFnZS9Tb2NrZXRQcm92aWRl
ci5jcHAKIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCiBwYWdlL1N1c3BlbmRhYmxlVGltZXIu
Y3BwCiBwYWdlL1RleHRJbmRpY2F0b3IuY3BwCitwYWdlL1VuZG9JdGVtLmNwcAogcGFnZS9VbmRv
TWFuYWdlci5jcHAKIHBhZ2UvVXNlckNvbnRlbnRQcm92aWRlci5jcHAKIHBhZ2UvVXNlckNvbnRl
bnRDb250cm9sbGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDZmZWRjMjIyNGY4YjE1ZjI1ZDAxMzM4NzEwYTA2OTYxZjYz
NTY0ZDguLmJhMjA2MzlkZDU4OTYxOWE5YWNhNjA4MDdmMWQzMTBjZDVjNzYwOTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTcw
ODgsOCArNzA4OCw2IEBACiAJCTMxOUJERTUzMUU3QTg2QzEwMEJBMjk2QyAvKiBKU1JUQ0ljZVRy
YW5zcG9ydFN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUlRDSWNl
VHJhbnNwb3J0U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE5QkRFNTMx
RTdBODZDMTAwQkEyOTZEIC8qIEpTUlRDUGVlckNvbm5lY3Rpb25TdGF0ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU1JUQ1BlZXJDb25uZWN0aW9uU3RhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE5RkJENUQxNUQyRjQ0NDAwOTY0MEE2IC8qIENhY2hl
ZEltYWdlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZElt
YWdlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxQTA4OEM0MUU3MzdC
MkMwMDNCNjYwOSAvKiBKU1dlYkdQVVJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHUFVSZW5kZXJpbmdDb250ZXh0Q3Vz
dG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFBMDg4QzUxRTczN0IyQzAw
M0I2NjA5IC8qIEpTV2ViR1BVUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yQ3VzdG9tLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR1BVUmVuZGVyUGFz
c0F0dGFjaG1lbnREZXNjcmlwdG9yQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMzFBMDg5MUIxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVQnVmZmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR1BVQnVmZmVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFBMDg5MUQxRTczOEQ1OTAwM0I2NjA5IC8qIEpT
V2ViR1BVQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR1BV
QnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQTA4OTFFMUU3MzhENTkw
MDNCNjYwOSAvKiBKU1dlYkdQVUNvbW1hbmRCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHUFVDb21tYW5kQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MTIzLDYgKzE1MTIxLDggQEAKIAkJRjRENDNENjQyMTg4MDJF
NjAwRUNFQ0FDIC8qIFNlcmlhbGl6ZWRBdHRhY2htZW50RGF0YS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
ZXJpYWxpemVkQXR0YWNobWVudERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjREOTgxN0QyMTk1RkJGNjAwODIzMEZDIC8qIENoYW5nZUxpc3RUeXBlQ29tbWFuZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDaGFuZ2VMaXN0VHlwZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjREOTgxN0UyMTk1RkJGNjAwODIzMEZDIC8qIENoYW5nZUxpc3RUeXBlQ29tbWFu
ZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDaGFuZ2VMaXN0VHlwZUNvbW1hbmQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNEUxOTY1QTIxRjIzOTUwMDAyODUwNzggLyogSlNV
bmRvSXRlbUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U1VuZG9JdGVtQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjRFMTk2
NUYyMUYyNkU0RTAwMjg1MDc4IC8qIFVuZG9JdGVtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVu
ZG9JdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFNTdFREEyMTNGM0Y1
RjAwNEVBOThFIC8qIEZvbnRBdHRyaWJ1dGVDaGFuZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRB
dHRyaWJ1dGVDaGFuZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RTU3RURG
MjEzRjQzNEEwMDRFQTk4RSAvKiBXZWJDb3JlTlNGb250TWFuYWdlckV4dHJhcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJDb3JlTlNGb250TWFuYWdlckV4dHJhcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNEU1N0VFMDIxM0Y0MzRBMDA0RUE5OEUgLyogV2ViQ29yZU5TRm9udE1hbmFn
ZXJFeHRyYXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlTlNGb250TWFuYWdlckV4
dHJhcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwNDA3LDYgKzIwNDA3LDcg
QEAKIAkJCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5oICov
LAogCQkJCTJENEY5NkYxMUExRUNDMjQwMDk4QkY4OCAvKiBUZXh0SW5kaWNhdG9yLmNwcCAqLywK
IAkJCQkyRDRGOTZGMjFBMUVDQzI0MDA5OEJGODggLyogVGV4dEluZGljYXRvci5oICovLAorCQkJ
CUY0RTE5NjVGMjFGMjZFNEUwMDI4NTA3OCAvKiBVbmRvSXRlbS5jcHAgKi8sCiAJCQkJMkVDREJB
RDUyMUQ4OTA2MzAwRjAwRUNEIC8qIFVuZG9JdGVtLmggKi8sCiAJCQkJMkVDREJBRDcyMUQ4OTA2
MzAwRjAwRUNEIC8qIFVuZG9JdGVtLmlkbCAqLywKIAkJCQkyRUNEQkFDRjIxRDg5MDM0MDBGMDBF
Q0QgLyogVW5kb01hbmFnZXIuY3BwICovLApAQCAtMjA3NzUsMTMgKzIwNzc2LDEyIEBACiAJCQkJ
MDc4NDYzODQxNDVCMUI4RTAwQTU4REYxIC8qIEpTVHJhY2tDdXN0b20uaCAqLywKIAkJCQk1MTZC
Qjc5MjBDRTkxRTY4MDA1MTJGNzkgLyogSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcCAqLywKIAkJCQk0
QkFGRDBFMjIxOTI2MDREMDBDMEFCNjQgLyogSlNUeXBlZE9NQ1NTU3R5bGVWYWx1ZUN1c3RvbS5j
cHAgKi8sCisJCQkJRjRFMTk2NUEyMUYyMzk1MDAwMjg1MDc4IC8qIEpTVW5kb0l0ZW1DdXN0b20u
Y3BwICovLAogCQkJCUJFNkRGNzA4MTcxQ0EyQzUwMERENTJCOCAvKiBKU1ZpZGVvVHJhY2tDdXN0
b20uY3BwICovLAogCQkJCUJFNkRGNzBBMTcxQ0EyQzUwMERENTJCOCAvKiBKU1ZpZGVvVHJhY2tM
aXN0Q3VzdG9tLmNwcCAqLywKIAkJCQk3MTVEQTVEMzIwMUJCOTAyMDAyRUYyQjAgLyogSlNXZWJB
bmltYXRpb25DdXN0b20uY3BwICovLAogCQkJCUQzRjNEMzU5MUE2OUEzQjAwMDU5RkMyQiAvKiBK
U1dlYkdMMlJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwICovLAogCQkJCTQ5RUVEMTRDMTA1MTk3
MUEwMDA5OUZBQiAvKiBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgKi8sCi0JCQkJ
MzFBMDg4QzQxRTczN0IyQzAwM0I2NjA5IC8qIEpTV2ViR1BVUmVuZGVyaW5nQ29udGV4dEN1c3Rv
bS5jcHAgKi8sCi0JCQkJMzFBMDg4QzUxRTczN0IyQzAwM0I2NjA5IC8qIEpTV2ViR1BVUmVuZGVy
UGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yQ3VzdG9tLmNwcCAqLywKIAkJCQlFMTgyNThBQjBFRjND
RDcwMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAgKi8sCiAJCQkJNDZG
OTFCQzkxRkNERDBGRTAwMTU5OUMzIC8qIEpTV29ya2VyTmF2aWdhdG9yQ3VzdG9tLmNwcCAqLywK
IAkJCQk4M0E0QTlGODFDRTdGRDdFMDA3MDlCMDAgLyogSlNYTUxEb2N1bWVudEN1c3RvbS5jcHAg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VuZG9JdGVtQ3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVW5kb0l0ZW1DdXN0b20uY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQ3NWRiMGEyMjQ4YzRmMThhNTgyMWQyNTIwZGE5NjhmMjk5NTRjMDQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VuZG9JdGVtQ3Vz
dG9tLmNwcApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkpTVW5kb0l0ZW0uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lk
IEpTVW5kb0l0ZW06OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKEpTQzo6U2xvdFZpc2l0b3ImIHZp
c2l0b3IpCit7CisgICAgd3JhcHBlZCgpLnVuZG9IYW5kbGVyKCkudmlzaXRKU0Z1bmN0aW9uKHZp
c2l0b3IpOworICAgIHdyYXBwZWQoKS5yZWRvSGFuZGxlcigpLnZpc2l0SlNGdW5jdGlvbih2aXNp
dG9yKTsKK30KKworYm9vbCBKU1VuZG9JdGVtT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3Im
IHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCit7CisgICAgYXV0byogZG9jdW1lbnRGb3JV
bmRvSXRlbSA9IGpzQ2FzdDxKU1VuZG9JdGVtKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpLT53
cmFwcGVkKCkuZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50Rm9yVW5kb0l0ZW0pCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghdmlzaXRvci5jb250YWluc09wYXF1ZVJvb3Qo
ZG9jdW1lbnRGb3JVbmRvSXRlbSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChV
TkxJS0VMWShyZWFzb24pKQorICAgICAgICAqcmVhc29uID0gIkRvY3VtZW50IGlzIGFuIG9wYXF1
ZSByb290LiI7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDY3ZWIxYTE5YWZmNzkxZTYyZDY0NWQ2OTNhZDky
Mzc3OWIxMjFiZGYuLjkzODAxOWFjYTE2NTk3Njk5ZWY1MDc3ZWQ0MjczZDk2MjQzZDk3MTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjUwMSw2ICsyNTAxLDggQEAgdm9pZCBEb2N1bWVu
dDo6cHJlcGFyZUZvckRlc3RydWN0aW9uKCkKICAgICBjbGVhclRvdWNoRXZlbnRIYW5kbGVyc0Fu
ZExpc3RlbmVycygpOwogI2VuZGlmCiAKKyAgICBtX3VuZG9NYW5hZ2VyLT5yZW1vdmVBbGxJdGVt
cygpOworCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQogICAgIGlmICh0aGlzICE9ICZ0b3BEb2N1
bWVudCgpKSB7CiAgICAgICAgIC8vIExldCB0aGUgYXggY2FjaGUga25vdyB0aGF0IHRoaXMgc3Vi
ZnJhbWUgZ29lcyBvdXQgb2Ygc2NvcGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1VuZG9JdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb0l0ZW0uY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmI5MWZjODZjNzY2MDJhOWNkNmM0YWM0OTk2YzdmZDBiOTcyMDUyY2UKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9JdGVtLmNwcApAQCAtMCwwICsxLDU4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVuZG9JdGVtLmgi
CisKKyNpbmNsdWRlICJVbmRvTWFuYWdlci5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9J
TVBMKFVuZG9JdGVtKTsKKwordm9pZCBVbmRvSXRlbTo6c2V0VW5kb01hbmFnZXIoVW5kb01hbmFn
ZXImIHVuZG9NYW5hZ2VyKQoreworICAgIEFTU0VSVCghbV91bmRvTWFuYWdlcik7CisgICAgbV91
bmRvTWFuYWdlciA9IG1ha2VXZWFrUHRyKHVuZG9NYW5hZ2VyKTsKK30KKwordm9pZCBVbmRvSXRl
bTo6aW52YWxpZGF0ZSgpCit7CisgICAgaWYgKGF1dG8gbWFuYWdlciA9IHN0ZDo6ZXhjaGFuZ2Uo
bV91bmRvTWFuYWdlciwgbnVsbHB0cikpCisgICAgICAgIG1hbmFnZXItPnJlbW92ZUl0ZW0oKnRo
aXMpOworfQorCitib29sIFVuZG9JdGVtOjppc1ZhbGlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
ISFtX3VuZG9NYW5hZ2VyOworfQorCitEb2N1bWVudCogVW5kb0l0ZW06OmRvY3VtZW50KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gaXNWYWxpZCgpID8gJm1fdW5kb01hbmFnZXItPmRvY3VtZW50KCkg
OiBudWxscHRyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1VuZG9JdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9JdGVt
LmgKaW5kZXggMDE5YmI5YWZjZmZlMWRmNzBkMzMxNjM1MDYxMzM0NzEzODA2YWFmNC4uYjNhMTVl
NzFkNDBhYzMwY2E3NmM1YjFkMDRkYjRhMjE2MDMwMWEzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9VbmRvSXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb0l0ZW0u
aApAQCAtMjYsMTUgKzI2LDE4IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlZvaWRDYWxs
YmFjay5oIgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgotI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBEb2N1bWVudDsK
K2NsYXNzIFVuZG9NYW5hZ2VyOworCiBjbGFzcyBVbmRvSXRlbSA6IHB1YmxpYyBSZWZDb3VudGVk
PFVuZG9JdGVtPiB7Ci0gICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTkxJTkUoVW5kb0l0ZW0p
OworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoVW5kb0l0ZW0pOwogcHVibGljOgogICAgIHN0
cnVjdCBJbml0IHsKICAgICAgICAgU3RyaW5nIGxhYmVsOwpAQCAtNDcsNiArNTAsMTMgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVbmRvSXRlbShXVEZNb3ZlKGluaXQp
KSk7CiAgICAgfQogCisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisgICAgdm9pZCBpbnZhbGlk
YXRlKCk7CisKKyAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsKKworICAgIHZvaWQgc2V0
VW5kb01hbmFnZXIoVW5kb01hbmFnZXImKTsKKwogICAgIGNvbnN0IFN0cmluZyYgbGFiZWwoKSBj
b25zdCB7IHJldHVybiBtX2xhYmVsOyB9CiAgICAgVm9pZENhbGxiYWNrJiB1bmRvSGFuZGxlcigp
IGNvbnN0IHsgcmV0dXJuIG1fdW5kb0hhbmRsZXIuZ2V0KCk7IH0KICAgICBWb2lkQ2FsbGJhY2sm
IHJlZG9IYW5kbGVyKCkgY29uc3QgeyByZXR1cm4gbV9yZWRvSGFuZGxlci5nZXQoKTsgfQpAQCAt
NjIsNiArNzIsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX2xhYmVsOwogICAgIFJlZjxWb2lk
Q2FsbGJhY2s+IG1fdW5kb0hhbmRsZXI7CiAgICAgUmVmPFZvaWRDYWxsYmFjaz4gbV9yZWRvSGFu
ZGxlcjsKKyAgICBXZWFrUHRyPFVuZG9NYW5hZ2VyPiBtX3VuZG9NYW5hZ2VyOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRv
SXRlbS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9JdGVtLmlkbAppbmRleCAwOWI5N2M4
YzE1MGMxMDdlMDk0MTQxOGVjMTE3NzBkODZkNGE5MWNhLi4xOTBmOWJiYjUyZDBlNWY4MWM2NWNk
NGUwZTdkNDA2ODNlODA4NzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9J
dGVtLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9JdGVtLmlkbApAQCAtMzQsNiAr
MzQsOCBAQAogWwogICAgIEVuYWJsZWRBdFJ1bnRpbWU9VW5kb01hbmFnZXJBUEksCiAgICAgSW1w
bGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKKyAgICBD
dXN0b21Jc1JlYWNoYWJsZSwKICAgICBDb25zdHJ1Y3RvcihVbmRvSXRlbUluaXQgaW5pdERpY3Qp
LAogXSBpbnRlcmZhY2UgVW5kb0l0ZW0gewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgbGFiZWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9NYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb01hbmFnZXIuY3BwCmluZGV4IDIyMWJmMjhjYzk2
OWVhODQyMzA3ZmFiODkxZTVhNWMyMDJhMzUzMDUuLjFkNDViYTM1OGJlMDQ5ZWFkYTE1MWRhYjA5
M2YxZGIwMDIzNTU4NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb01hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb01hbmFnZXIuY3BwCkBAIC0zMywx
MCArMzMsMzIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
X0lNUEwoVW5kb01hbmFnZXIpOwogCitVbmRvTWFuYWdlcjo6VW5kb01hbmFnZXIoRG9jdW1lbnQm
IGRvY3VtZW50KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKK3sKK30KKworVW5kb01hbmFn
ZXI6On5VbmRvTWFuYWdlcigpID0gZGVmYXVsdDsKKwogdm9pZCBVbmRvTWFuYWdlcjo6YWRkSXRl
bShSZWY8VW5kb0l0ZW0+JiYgaXRlbSkKIHsKLSAgICBVTlVTRURfUEFSQU0oaXRlbSk7CiAgICAg
VU5VU0VEX1BBUkFNKG1fZG9jdW1lbnQpOworCisgICAgaXRlbS0+c2V0VW5kb01hbmFnZXIoKnRo
aXMpOworICAgIG1faXRlbXMuYWRkKFdURk1vdmUoaXRlbSkpOworfQorCit2b2lkIFVuZG9NYW5h
Z2VyOjpyZW1vdmVJdGVtKFVuZG9JdGVtJiBpdGVtKQoreworICAgIGlmIChhdXRvIGZvdW5kSXRl
bSA9IG1faXRlbXMudGFrZSgmaXRlbSkpCisgICAgICAgIGZvdW5kSXRlbS0+aW52YWxpZGF0ZSgp
OworfQorCit2b2lkIFVuZG9NYW5hZ2VyOjpyZW1vdmVBbGxJdGVtcygpCit7CisgICAgYXV0byBp
dGVtcyA9IHN0ZDo6ZXhjaGFuZ2UobV9pdGVtcywgeyB9KTsKKyAgICBmb3IgKGF1dG8mIGl0ZW0g
OiBpdGVtcykKKyAgICAgICAgaXRlbS0+aW52YWxpZGF0ZSgpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9NYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9NYW5hZ2VyLmgKaW5kZXggNDk2MDRmMDljNWM4YTUw
MTY4OWJjNWNlMWU4NmQwMzdmNDk5YmI1NC4uNzhmYTcyMGRjNzMxMDgwMDY0YjcwZDgzMDNhMmZi
YmRiNGQzYzVkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvTWFuYWdlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb01hbmFnZXIuaApAQCAtMjgsMTMgKzI4LDE1
IEBACiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3Vt
ZW50OwogY2xhc3MgVW5kb0l0ZW07CiAKLWNsYXNzIFVuZG9NYW5hZ2VyIDogcHVibGljIFJlZkNv
dW50ZWQ8VW5kb01hbmFnZXI+IHsKK2NsYXNzIFVuZG9NYW5hZ2VyIDogcHVibGljIFJlZkNvdW50
ZWQ8VW5kb01hbmFnZXI+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8VW5kb01hbmFnZXI+IHsKICAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFVuZG9NYW5hZ2VyKTsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPFVuZG9NYW5hZ2VyPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQpAQCAtNDIsMTYg
KzQ0LDE4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVW5kb01hbmFn
ZXIoZG9jdW1lbnQpKTsKICAgICB9CiAKKyAgICB+VW5kb01hbmFnZXIoKTsKKworICAgIHZvaWQg
cmVtb3ZlSXRlbShVbmRvSXRlbSYpOworICAgIHZvaWQgcmVtb3ZlQWxsSXRlbXMoKTsKICAgICB2
b2lkIGFkZEl0ZW0oUmVmPFVuZG9JdGVtPiYmKTsKICAgICBEb2N1bWVudCYgZG9jdW1lbnQoKSB7
IHJldHVybiBtX2RvY3VtZW50OyB9CiAKIHByaXZhdGU6Ci0gICAgVW5kb01hbmFnZXIoRG9jdW1l
bnQmIGRvY3VtZW50KQotICAgICAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCi0gICAgewotICAg
IH0KKyAgICBVbmRvTWFuYWdlcihEb2N1bWVudCYpOwogCiAgICAgRG9jdW1lbnQmIG1fZG9jdW1l
bnQ7CisgICAgSGFzaFNldDxSZWZQdHI8VW5kb0l0ZW0+PiBtX2l0ZW1zOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IGI0MWY3ZTFhNTI5
YWIyNmRjZmZkNDU4Njc3NjBiYWExNWZhNTY2NGYuLjZiNTZiMWZlNmM2YmQ5ZmIwMzIwZGE3NDc4
NWUxY2QzNDU1MjFiMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiAKKyNpbmNsdWRlICJTY3JvbGxpbmdT
dGF0ZVNjcm9sbGluZ05vZGUuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdTdGF0ZVRyZWUuaCIKICNp
bmNsdWRlICJTY3JvbGxpbmdUcmVlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5o
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359593</attachid>
            <date>2019-01-19 00:29:10 -0800</date>
            <delta_ts>2019-01-22 17:30:25 -0800</delta_ts>
            <desc>Part 1 (fix typo in title)</desc>
            <filename>bug-193111-20190119002909.patch</filename>
            <type>text/plain</type>
            <size>19153</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjM3ZWI2Mzk0OWYxNDM3
YTY1YzhmZjQwNDgxNzZmYmE1YjFkYTlmZi4uNjcwMDY1OWI0MDhlNmYzY2NkMzhiMDQ2MjgwZWUw
YjdhYjkwMjZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE5LTAxLTE5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzb21lIGJp
bmRpbmdzLXJlbGF0ZWQgYm9va2tlZXBpbmcgdG8gVW5kb01hbmFnZXIgYW5kIFVuZG9JdGVtCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTMxMTEKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ0ODA3MDQ4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgd29yayBpbiBwcm9ncmVzcyB0
b3dhcmRzIHN1cHBvcnRpbmcgYFVuZG9NYW5hZ2VyLmFkZEl0ZW0oKWAuIEhlcmUsIHdlIGFkZCBo
ZWxwZXIgbWV0aG9kcyB0bworICAgICAgICBVbmRvSXRlbSBhbmQgVW5kb01hbmFnZXIgd2hpY2gg
bGF0ZXIgcGF0Y2hlcyB3aWxsIGV4ZXJjaXNlLCBhcyB3ZWxsIGFzIGludHJvZHVjZSBzb21lIGN1
c3RvbSBiaW5kaW5ncyB0bworICAgICAgICBwcm9wZXJseSBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUg
VW5kb0l0ZW1zIGFyZSBnaXZlbiBhbm9ueW1vdXMgSmF2YVNjcmlwdCBmdW5jdGlvbnMgKHNlZSBi
ZWxvdyBmb3IgbW9yZSBkZXRhaWxzKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGJlY2F1c2Ug
dGhlcmUgaXMgbm8gc2NyaXB0LW9ic2VydmFibGUgY2hhbmdlIGluIGJlaGF2aW9yIHlldC4gV2hl
biBgYWRkSXRlbXMoKWAgaXMgaG9va2VkIHVwLCBJCisgICAgICAgIHdpbGwgd3JpdGUgYSB0ZXN0
IHRvIHZlcmlmeSB0aGF0IHRoZSB1bmRvIGFuZCByZWRvIEphdmFTY3JpcHQgZnVuY3Rpb25zIHN1
cnZpdmUgZ2FyYmFnZSBjb2xsZWN0aW9uLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTVW5kb0l0ZW1DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNVbmRvSXRl
bTo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4pOgorCisgICAgICAgIEhhdmUgZWFjaCBKU1VuZG9J
dGVtIHZpc2l0IGl0cyB1bmRvIGFuZCByZWRvIGNhbGxiYWNrIGZ1bmN0aW9ucyB0byBlbnN1cmUg
dGhhdCB0aGUgSmF2YVNjcmlwdCB3cmFwcGVyIG9iamVjdHMKKyAgICAgICAgZm9yIHRoZXNlIGZ1
bmN0aW9ucyBhcmUgbm90IGdhcmJhZ2UgY29sbGVjdGVkIHVuZGVybmVhdGggdGhlIGl0ZW0uCisK
KyAgICAgICAgKFdlYkNvcmU6OkpTVW5kb0l0ZW1Pd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVl
Um9vdHMpOgorCisgICAgICAgIENvbnNpZGVyIHRoZSB1bmRvIGl0ZW0gd3JhcHBlciByZWFjaGFi
bGUgZnJvbSBvcGFxdWUgcm9vdHMgaWYgaXQgaXMgYXNzb2NpYXRlZCB3aXRoIGl0cyBVbmRvTWFu
YWdlcidzIERvY3VtZW50LgorICAgICAgICBUaGlzIGVuc3VyZXMgdGhhdCBpZiBzY3JpcHQgaXNu
J3QgaG9sZGluZyBvbiB0byBhIHJlZmVyZW5jZSB0byB0aGUgd3JhcHBlciAoZm9yIGluc3RhbmNl
LCBieSBjYWxsaW5nCisgICAgICAgIGBVbmRvTWFuYWdlci5hZGRJdGVtKG5ldyBVbmRvSXRlbSh7
IC4uLiB9KSlgKSwgd2Ugc3RpbGwgcHJvdGVjdCB0aGUgY29ycmVzcG9uZGluZyBKU1VuZG9JdGVt
IGFzIGxvbmcgYXMgdGhlCisgICAgICAgIFVuZG9NYW5hZ2VyJ3MgRG9jdW1lbnQgaXMgYWxpdmUu
IEluIHRoZSBjYXNlIHdoZXJlIHRoZSB1bmRvIGl0ZW0gaXMgbm90IGFzc29jaWF0ZWQgd2l0aCBh
IGRvY3VtZW50LCBlaXRoZXIgKDEpCisgICAgICAgIHNjcmlwdCBpcyBrZWVwaW5nIGEgcmVmZXJl
bmNlIHRvIGl0LCBpbiB3aGljaCBjYXNlIGl0IHdpbGwgYmUgdHJpdmlhbGx5IHJlYWNoYWJsZSwg
b3IgKDIpIHNjcmlwdCB3b24ndCBiZSBhYmxlCisgICAgICAgIHRvIG9ic2VydmUgdGhlIGRlc3Ry
dWN0aW9uIG9mIHRoZSB3cmFwcGVyIGFueXdheXMgKGUuZy4gY2FsbGluZyBgbmV3IFVuZG9JdGVt
KHsgLi4uIH0pYCBieSBpdHNlbGYpLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24pOgorCisgICAg
ICAgIEludmFsaWRhdGUgYWxsIHVuZG8gaXRlbXMgd2hlbiB0aGUgZG9jdW1lbnQgaXMgYWJvdXQg
dG8gZ28gYXdheS4KKworICAgICAgICAqIHBhZ2UvVW5kb0l0ZW0uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VW5kb0l0ZW06OnNldFVuZG9NYW5hZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlVuZG9J
dGVtOjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlVuZG9JdGVtOjppc1ZhbGlkIGNv
bnN0KToKKworICAgICAgICBBZGQgYSBmZXcgaGVscGVycywgdG8gYmUgdXNlZCBpbiBhIGZ1dHVy
ZSBwYXRjaC4gV2UgY29uc2lkZXIgYW4gVW5kb0l0ZW0gdmFsaWQgaWYgaXQgaGFzIGJlZW4gYWRk
ZWQgdG8gYW4KKyAgICAgICAgVW5kb01hbmFnZXIsIGFuZCBpcyB0aHVzIGFzc29jaWF0ZWQgd2l0
aCBhIGRvY3VtZW50LgorCisgICAgICAgIChXZWJDb3JlOjpVbmRvSXRlbTo6ZG9jdW1lbnQgY29u
c3QpOgorICAgICAgICAqIHBhZ2UvVW5kb0l0ZW0uaDoKKyAgICAgICAgKiBwYWdlL1VuZG9JdGVt
LmlkbDoKKyAgICAgICAgKiBwYWdlL1VuZG9NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlVuZG9NYW5hZ2VyOjpVbmRvTWFuYWdlcik6CisgICAgICAgIChXZWJDb3JlOjpVbmRvTWFuYWdl
cjo6YWRkSXRlbSk6CisKKyAgICAgICAgSGF2ZSBhbiBVbmRvTWFuYWdlciBrZWVwIGl0cyBVbmRv
SXRlbXMgYWxpdmUuIFRoZXNlIFVuZG9JdGVtcyByZW1haW4gaW4gdGhpcyBzZXQgdW50aWwgZWl0
aGVyIHRoZSBkb2N1bWVudCB3aWxsCisgICAgICAgIGJlIGRlc3Ryb3llZCwgb3IgdGhlIGNvcnJl
c3BvbmRpbmcgdW5kbyBhY3Rpb24gaXMgbm8gbG9uZ2VyIG5lZWRlZCBiZWNhdXNlIHRoZSBwbGF0
Zm9ybSB1bmRvIHN0YWNrIGhhcyBjaGFuZ2VkCisgICAgICAgICh0aGlzIGxhdHRlciBiZWhhdmlv
ciBpcyB5ZXQgdG8gYmUgaW1wbGVtZW50ZWQpLgorCisgICAgICAgIChXZWJDb3JlOjpVbmRvTWFu
YWdlcjo6cmVtb3ZlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpVbmRvTWFuYWdlcjo6cmVtb3Zl
QWxsSXRlbXMpOgorICAgICAgICAqIHBhZ2UvVW5kb01hbmFnZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlVuZG9NYW5hZ2VyOjpVbmRvTWFuYWdlcik6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwOgorCisgICAgICAgIFVuaWZp
ZWQgYnVpbGQgZml4LgorCiAyMDE5LTAxLTE4ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29t
PgogCiAgICAgICAgIEF1dG9tYXRpb24uY29tcHV0ZUVsZW1lbnRMYXlvdXQgc2hvdWxkIHJldHVy
biB2aXN1YWwgdmlld3BvcnQtYXdhcmUgY29vcmRpbmF0ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYjYx
MjQxOTJjZTk0NDUyZjZkMWZlNGJiZjMwOWZjZGFjNDFiNDcyYS4uMjQ1YTU1OTA4ZGZlMmUzMDU1
YWM2YWRiN2ZkNGJiMDAyMTYyNDY1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTUyMCw2ICs1MjAsNyBA
QCBiaW5kaW5ncy9qcy9KU1RleHRUcmFja0xpc3RDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1Ry
YWNrQ3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcAogYmluZGlu
Z3MvanMvSlNUeXBlZE9NQ1NTU3R5bGVWYWx1ZUN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pTVW5k
b0l0ZW1DdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1ZpZGVvVHJhY2tDdXN0b20uY3BwCiBiaW5k
aW5ncy9qcy9KU1ZpZGVvVHJhY2tMaXN0Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNXZWJBbmlt
YXRpb25DdXN0b20uY3BwCkBAIC0xNTMwLDYgKzE1MzEsNyBAQCBwYWdlL1NvY2tldFByb3ZpZGVy
LmNwcAogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKIHBhZ2UvU3VzcGVuZGFibGVUaW1lci5j
cHAKIHBhZ2UvVGV4dEluZGljYXRvci5jcHAKK3BhZ2UvVW5kb0l0ZW0uY3BwCiBwYWdlL1VuZG9N
YW5hZ2VyLmNwcAogcGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmNwcAogcGFnZS9Vc2VyQ29udGVu
dENvbnRyb2xsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNmZlZGMyMjI0ZjhiMTVmMjVkMDEzMzg3MTBhMDY5NjFmNjM1
NjRkOC4uYmEyMDYzOWRkNTg5NjE5YTlhY2E2MDgwN2YxZDMxMGNkNWM3NjA5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzA4
OCw4ICs3MDg4LDYgQEAKIAkJMzE5QkRFNTMxRTdBODZDMTAwQkEyOTZDIC8qIEpTUlRDSWNlVHJh
bnNwb3J0U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSVENJY2VU
cmFuc3BvcnRTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTlCREU1MzFF
N0E4NkMxMDBCQTI5NkQgLyogSlNSVENQZWVyQ29ubmVjdGlvblN0YXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUlRDUGVlckNvbm5lY3Rpb25TdGF0ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkzMTlGQkQ1RDE1RDJGNDQ0MDA5NjQwQTYgLyogQ2FjaGVk
SW1hZ2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkSW1h
Z2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFBMDg4QzQxRTczN0Iy
QzAwM0I2NjA5IC8qIEpTV2ViR1BVUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdQVVJlbmRlcmluZ0NvbnRleHRDdXN0
b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUEwODhDNTFFNzM3QjJDMDAz
QjY2MDkgLyogSlNXZWJHUFVSZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3JDdXN0b20uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHUFVSZW5kZXJQYXNz
QXR0YWNobWVudERlc2NyaXB0b3JDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkzMUEwODkxQjFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVCdWZmZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHUFVCdWZmZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUEwODkxRDFFNzM4RDU5MDAzQjY2MDkgLyogSlNX
ZWJHUFVCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHUFVC
dWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFBMDg5MUUxRTczOEQ1OTAw
M0I2NjA5IC8qIEpTV2ViR1BVQ29tbWFuZEJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1dlYkdQVUNvbW1hbmRCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTUxMjMsNiArMTUxMjEsOCBAQAogCQlGNEQ0M0Q2NDIxODgwMkU2
MDBFQ0VDQUMgLyogU2VyaWFsaXplZEF0dGFjaG1lbnREYXRhLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNl
cmlhbGl6ZWRBdHRhY2htZW50RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NEQ5ODE3RDIxOTVGQkY2MDA4MjMwRkMgLyogQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENoYW5nZUxpc3RUeXBlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNEQ5ODE3RTIxOTVGQkY2MDA4MjMwRkMgLyogQ2hhbmdlTGlzdFR5cGVDb21tYW5k
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENoYW5nZUxpc3RUeXBlQ29tbWFuZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0RTE5NjVBMjFGMjM5NTAwMDI4NTA3OCAvKiBKU1Vu
ZG9JdGVtQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
VW5kb0l0ZW1DdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNEUxOTY1
RjIxRjI2RTRFMDAyODUwNzggLyogVW5kb0l0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVW5k
b0l0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEU1N0VEQTIxM0YzRjVG
MDA0RUE5OEUgLyogRm9udEF0dHJpYnV0ZUNoYW5nZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udEF0
dHJpYnV0ZUNoYW5nZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFNTdFREYy
MTNGNDM0QTAwNEVBOThFIC8qIFdlYkNvcmVOU0ZvbnRNYW5hZ2VyRXh0cmFzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkNvcmVOU0ZvbnRNYW5hZ2VyRXh0cmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY0RTU3RUUwMjEzRjQzNEEwMDRFQTk4RSAvKiBXZWJDb3JlTlNGb250TWFuYWdl
ckV4dHJhcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVOU0ZvbnRNYW5hZ2VyRXh0
cmFzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA0MDcsNiArMjA0MDcsNyBA
QAogCQkJCTYyQzEyMTdCMTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggKi8s
CiAJCQkJMkQ0Rjk2RjExQTFFQ0MyNDAwOThCRjg4IC8qIFRleHRJbmRpY2F0b3IuY3BwICovLAog
CQkJCTJENEY5NkYyMUExRUNDMjQwMDk4QkY4OCAvKiBUZXh0SW5kaWNhdG9yLmggKi8sCisJCQkJ
RjRFMTk2NUYyMUYyNkU0RTAwMjg1MDc4IC8qIFVuZG9JdGVtLmNwcCAqLywKIAkJCQkyRUNEQkFE
NTIxRDg5MDYzMDBGMDBFQ0QgLyogVW5kb0l0ZW0uaCAqLywKIAkJCQkyRUNEQkFENzIxRDg5MDYz
MDBGMDBFQ0QgLyogVW5kb0l0ZW0uaWRsICovLAogCQkJCTJFQ0RCQUNGMjFEODkwMzQwMEYwMEVD
RCAvKiBVbmRvTWFuYWdlci5jcHAgKi8sCkBAIC0yMDc3NSwxMyArMjA3NzYsMTIgQEAKIAkJCQkw
Nzg0NjM4NDE0NUIxQjhFMDBBNThERjEgLyogSlNUcmFja0N1c3RvbS5oICovLAogCQkJCTUxNkJC
NzkyMENFOTFFNjgwMDUxMkY3OSAvKiBKU1RyZWVXYWxrZXJDdXN0b20uY3BwICovLAogCQkJCTRC
QUZEMEUyMjE5MjYwNEQwMEMwQUI2NCAvKiBKU1R5cGVkT01DU1NTdHlsZVZhbHVlQ3VzdG9tLmNw
cCAqLywKKwkJCQlGNEUxOTY1QTIxRjIzOTUwMDAyODUwNzggLyogSlNVbmRvSXRlbUN1c3RvbS5j
cHAgKi8sCiAJCQkJQkU2REY3MDgxNzFDQTJDNTAwREQ1MkI4IC8qIEpTVmlkZW9UcmFja0N1c3Rv
bS5jcHAgKi8sCiAJCQkJQkU2REY3MEExNzFDQTJDNTAwREQ1MkI4IC8qIEpTVmlkZW9UcmFja0xp
c3RDdXN0b20uY3BwICovLAogCQkJCTcxNURBNUQzMjAxQkI5MDIwMDJFRjJCMCAvKiBKU1dlYkFu
aW1hdGlvbkN1c3RvbS5jcHAgKi8sCiAJCQkJRDNGM0QzNTkxQTY5QTNCMDAwNTlGQzJCIC8qIEpT
V2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgKi8sCiAJCQkJNDlFRUQxNEMxMDUxOTcx
QTAwMDk5RkFCIC8qIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCAqLywKLQkJCQkz
MUEwODhDNDFFNzM3QjJDMDAzQjY2MDkgLyogSlNXZWJHUFVSZW5kZXJpbmdDb250ZXh0Q3VzdG9t
LmNwcCAqLywKLQkJCQkzMUEwODhDNTFFNzM3QjJDMDAzQjY2MDkgLyogSlNXZWJHUFVSZW5kZXJQ
YXNzQXR0YWNobWVudERlc2NyaXB0b3JDdXN0b20uY3BwICovLAogCQkJCUUxODI1OEFCMEVGM0NE
NzAwMDkzMzI0MiAvKiBKU1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCAqLywKIAkJCQk0NkY5
MUJDOTFGQ0REMEZFMDAxNTk5QzMgLyogSlNXb3JrZXJOYXZpZ2F0b3JDdXN0b20uY3BwICovLAog
CQkJCTgzQTRBOUY4MUNFN0ZEN0UwMDcwOUIwMCAvKiBKU1hNTERvY3VtZW50Q3VzdG9tLmNwcCAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVW5kb0l0ZW1DdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVbmRvSXRlbUN1c3RvbS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDc1ZGIwYTIyNDhjNGYxOGE1ODIxZDI1MjBkYTk2OGYyOTk1NGMwNAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVW5kb0l0ZW1DdXN0
b20uY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiSlNVbmRvSXRlbS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQg
SlNVbmRvSXRlbTo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4oSlNDOjpTbG90VmlzaXRvciYgdmlz
aXRvcikKK3sKKyAgICB3cmFwcGVkKCkudW5kb0hhbmRsZXIoKS52aXNpdEpTRnVuY3Rpb24odmlz
aXRvcik7CisgICAgd3JhcHBlZCgpLnJlZG9IYW5kbGVyKCkudmlzaXRKU0Z1bmN0aW9uKHZpc2l0
b3IpOworfQorCitib29sIEpTVW5kb0l0ZW1Pd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9v
dHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYg
dmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKK3sKKyAgICBhdXRvKiBkb2N1bWVudEZvclVu
ZG9JdGVtID0ganNDYXN0PEpTVW5kb0l0ZW0qPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSktPndy
YXBwZWQoKS5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnRGb3JVbmRvSXRlbSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCF2aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdChk
b2N1bWVudEZvclVuZG9JdGVtKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKFVO
TElLRUxZKHJlYXNvbikpCisgICAgICAgICpyZWFzb24gPSAiRG9jdW1lbnQgaXMgYW4gb3BhcXVl
IHJvb3QuIjsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNjdlYjFhMTlhZmY3OTFlNjJkNjQ1ZDY5M2FkOTIz
Nzc5YjEyMWJkZi4uOTM4MDE5YWNhMTY1OTc2OTllZjUwNzdlZDQyNzNkOTYyNDNkOTcxNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yNTAxLDYgKzI1MDEsOCBAQCB2b2lkIERvY3VtZW50
OjpwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKQogICAgIGNsZWFyVG91Y2hFdmVudEhhbmRsZXJzQW5k
TGlzdGVuZXJzKCk7CiAjZW5kaWYKIAorICAgIG1fdW5kb01hbmFnZXItPnJlbW92ZUFsbEl0ZW1z
KCk7CisKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCiAgICAgaWYgKHRoaXMgIT0gJnRvcERvY3Vt
ZW50KCkpIHsKICAgICAgICAgLy8gTGV0IHRoZSBheCBjYWNoZSBrbm93IHRoYXQgdGhpcyBzdWJm
cmFtZSBnb2VzIG91dCBvZiBzY29wZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
VW5kb0l0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvSXRlbS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjkxZmM4NmM3NjYwMmE5Y2Q2YzRhYzQ5OTZjN2ZkMGI5NzIwNTJjZQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb0l0ZW0uY3BwCkBAIC0wLDAgKzEsNTggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVW5kb0l0ZW0uaCIK
KworI2luY2x1ZGUgIlVuZG9NYW5hZ2VyLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGlu
ZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lN
UEwoVW5kb0l0ZW0pOworCit2b2lkIFVuZG9JdGVtOjpzZXRVbmRvTWFuYWdlcihVbmRvTWFuYWdl
ciYgdW5kb01hbmFnZXIpCit7CisgICAgQVNTRVJUKCFtX3VuZG9NYW5hZ2VyKTsKKyAgICBtX3Vu
ZG9NYW5hZ2VyID0gbWFrZVdlYWtQdHIodW5kb01hbmFnZXIpOworfQorCit2b2lkIFVuZG9JdGVt
OjppbnZhbGlkYXRlKCkKK3sKKyAgICBpZiAoYXV0byBtYW5hZ2VyID0gc3RkOjpleGNoYW5nZSht
X3VuZG9NYW5hZ2VyLCBudWxscHRyKSkKKyAgICAgICAgbWFuYWdlci0+cmVtb3ZlSXRlbSgqdGhp
cyk7Cit9CisKK2Jvb2wgVW5kb0l0ZW06OmlzVmFsaWQoKSBjb25zdAoreworICAgIHJldHVybiAh
IW1fdW5kb01hbmFnZXI7Cit9CisKK0RvY3VtZW50KiBVbmRvSXRlbTo6ZG9jdW1lbnQoKSBjb25z
dAoreworICAgIHJldHVybiBpc1ZhbGlkKCkgPyAmbV91bmRvTWFuYWdlci0+ZG9jdW1lbnQoKSA6
IG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvVW5kb0l0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb0l0ZW0u
aAppbmRleCAwMTliYjlhZmNmZmUxZGY3MGQzMzE2MzUwNjEzMzQ3MTM4MDZhYWY0Li5iM2ExNWU3
MWQ0MGFjMzBjYTc2YzViMWQwNGRiNGEyMTYwMzAxYTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1VuZG9JdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvSXRlbS5o
CkBAIC0yNiwxNSArMjYsMTggQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiVm9pZENhbGxi
YWNrLmgiCi0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0lzb01hbGxv
Y0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERvY3VtZW50Owor
Y2xhc3MgVW5kb01hbmFnZXI7CisKIGNsYXNzIFVuZG9JdGVtIDogcHVibGljIFJlZkNvdW50ZWQ8
VW5kb0l0ZW0+IHsKLSAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lOTElORShVbmRvSXRlbSk7
CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChVbmRvSXRlbSk7CiBwdWJsaWM6CiAgICAgc3Ry
dWN0IEluaXQgewogICAgICAgICBTdHJpbmcgbGFiZWw7CkBAIC00Nyw2ICs1MCwxMyBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFVuZG9JdGVtKFdURk1vdmUoaW5pdCkp
KTsKICAgICB9CiAKKyAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKKyAgICB2b2lkIGludmFsaWRh
dGUoKTsKKworICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OworCisgICAgdm9pZCBzZXRV
bmRvTWFuYWdlcihVbmRvTWFuYWdlciYpOworCiAgICAgY29uc3QgU3RyaW5nJiBsYWJlbCgpIGNv
bnN0IHsgcmV0dXJuIG1fbGFiZWw7IH0KICAgICBWb2lkQ2FsbGJhY2smIHVuZG9IYW5kbGVyKCkg
Y29uc3QgeyByZXR1cm4gbV91bmRvSGFuZGxlci5nZXQoKTsgfQogICAgIFZvaWRDYWxsYmFjayYg
cmVkb0hhbmRsZXIoKSBjb25zdCB7IHJldHVybiBtX3JlZG9IYW5kbGVyLmdldCgpOyB9CkBAIC02
Miw2ICs3Miw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fbGFiZWw7CiAgICAgUmVmPFZvaWRD
YWxsYmFjaz4gbV91bmRvSGFuZGxlcjsKICAgICBSZWY8Vm9pZENhbGxiYWNrPiBtX3JlZG9IYW5k
bGVyOworICAgIFdlYWtQdHI8VW5kb01hbmFnZXI+IG1fdW5kb01hbmFnZXI7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9J
dGVtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb0l0ZW0uaWRsCmluZGV4IDA5Yjk3Yzhj
MTUwYzEwN2UwOTQxNDE4ZWMxMTc3MGQ4NmQ0YTkxY2EuLjE5MGY5YmJiNTJkMGU1ZjgxYzY1Y2Q0
ZTBlN2Q0MDY4M2U4MDg3NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb0l0
ZW0uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb0l0ZW0uaWRsCkBAIC0zNCw2ICsz
NCw4IEBACiBbCiAgICAgRW5hYmxlZEF0UnVudGltZT1VbmRvTWFuYWdlckFQSSwKICAgICBJbXBs
ZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAorICAgIEN1
c3RvbUlzUmVhY2hhYmxlLAogICAgIENvbnN0cnVjdG9yKFVuZG9JdGVtSW5pdCBpbml0RGljdCks
CiBdIGludGVyZmFjZSBVbmRvSXRlbSB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyBsYWJlbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb01hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvTWFuYWdlci5jcHAKaW5kZXggMjIxYmYyOGNjOTY5
ZWE4NDIzMDdmYWI4OTFlNWE1YzIwMmEzNTMwNS4uMWQ0NWJhMzU4YmUwNDllYWRhMTUxZGFiMDkz
ZjFkYjAwMjM1NTg1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvTWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvTWFuYWdlci5jcHAKQEAgLTMzLDEw
ICszMywzMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURf
SU1QTChVbmRvTWFuYWdlcik7CiAKK1VuZG9NYW5hZ2VyOjpVbmRvTWFuYWdlcihEb2N1bWVudCYg
ZG9jdW1lbnQpCisgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQoreworfQorCitVbmRvTWFuYWdl
cjo6flVuZG9NYW5hZ2VyKCkgPSBkZWZhdWx0OworCiB2b2lkIFVuZG9NYW5hZ2VyOjphZGRJdGVt
KFJlZjxVbmRvSXRlbT4mJiBpdGVtKQogewotICAgIFVOVVNFRF9QQVJBTShpdGVtKTsKICAgICBV
TlVTRURfUEFSQU0obV9kb2N1bWVudCk7CisKKyAgICBpdGVtLT5zZXRVbmRvTWFuYWdlcigqdGhp
cyk7CisgICAgbV9pdGVtcy5hZGQoV1RGTW92ZShpdGVtKSk7Cit9CisKK3ZvaWQgVW5kb01hbmFn
ZXI6OnJlbW92ZUl0ZW0oVW5kb0l0ZW0mIGl0ZW0pCit7CisgICAgaWYgKGF1dG8gZm91bmRJdGVt
ID0gbV9pdGVtcy50YWtlKCZpdGVtKSkKKyAgICAgICAgZm91bmRJdGVtLT5pbnZhbGlkYXRlKCk7
Cit9CisKK3ZvaWQgVW5kb01hbmFnZXI6OnJlbW92ZUFsbEl0ZW1zKCkKK3sKKyAgICBhdXRvIGl0
ZW1zID0gc3RkOjpleGNoYW5nZShtX2l0ZW1zLCB7IH0pOworICAgIGZvciAoYXV0byYgaXRlbSA6
IGl0ZW1zKQorICAgICAgICBpdGVtLT5pbnZhbGlkYXRlKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb01hbmFnZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb01hbmFnZXIuaAppbmRleCA0OTYwNGYwOWM1YzhhNTAx
Njg5YmM1Y2UxZTg2ZDAzN2Y0OTliYjU0Li43OGZhNzIwZGM3MzEwODAwNjRiNzBkODMwM2EyZmJi
ZGI0ZDNjNWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9NYW5hZ2VyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvTWFuYWdlci5oCkBAIC0yOCwxMyArMjgsMTUg
QEAKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1l
bnQ7CiBjbGFzcyBVbmRvSXRlbTsKIAotY2xhc3MgVW5kb01hbmFnZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxVbmRvTWFuYWdlcj4geworY2xhc3MgVW5kb01hbmFnZXIgOiBwdWJsaWMgUmVmQ291bnRl
ZDxVbmRvTWFuYWdlcj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxVbmRvTWFuYWdlcj4gewogICAg
IFdURl9NQUtFX0lTT19BTExPQ0FURUQoVW5kb01hbmFnZXIpOwogcHVibGljOgogICAgIHN0YXRp
YyBSZWY8VW5kb01hbmFnZXI+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC00MiwxNiAr
NDQsMTggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVbmRvTWFuYWdl
cihkb2N1bWVudCkpOwogICAgIH0KIAorICAgIH5VbmRvTWFuYWdlcigpOworCisgICAgdm9pZCBy
ZW1vdmVJdGVtKFVuZG9JdGVtJik7CisgICAgdm9pZCByZW1vdmVBbGxJdGVtcygpOwogICAgIHZv
aWQgYWRkSXRlbShSZWY8VW5kb0l0ZW0+JiYpOwogICAgIERvY3VtZW50JiBkb2N1bWVudCgpIHsg
cmV0dXJuIG1fZG9jdW1lbnQ7IH0KIAogcHJpdmF0ZToKLSAgICBVbmRvTWFuYWdlcihEb2N1bWVu
dCYgZG9jdW1lbnQpCi0gICAgICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKLSAgICB7Ci0gICAg
fQorICAgIFVuZG9NYW5hZ2VyKERvY3VtZW50Jik7CiAKICAgICBEb2N1bWVudCYgbV9kb2N1bWVu
dDsKKyAgICBIYXNoU2V0PFJlZlB0cjxVbmRvSXRlbT4+IG1faXRlbXM7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKaW5kZXggYjQxZjdlMWE1Mjlh
YjI2ZGNmZmQ0NTg2Nzc2MGJhYTE1ZmE1NjY0Zi4uNmI1NmIxZmU2YzZiZDlmYjAzMjBkYTc0Nzg1
ZTFjZDM0NTUyMWIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApAQCAtMjgsNiArMjgsNyBA
QAogCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKIAorI2luY2x1ZGUgIlNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZS5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1N0YXRlVHJlZS5oIgogI2lu
Y2x1ZGUgIlNjcm9sbGluZ1RyZWUuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+
Cg==
</data>
<flag name="review"
          id="376378"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359594</attachid>
            <date>2019-01-19 00:34:29 -0800</date>
            <delta_ts>2019-01-22 18:36:24 -0800</delta_ts>
            <desc>Part 2 (CustomUndoStep)</desc>
            <filename>bug-193111-20190119003428.patch</filename>
            <type>text/plain</type>
            <size>13567</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjcwMDY1OWI0MDhlNmYz
Y2NkMzhiMDQ2MjgwZWUwYjdhYjkwMjZhOC4uZDY2YzkzZTk2YWQ0ZmJjYTdkNjcxYzkyY2RiZjQ1
MWM4MjQ4MDdhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE5LTAxLTE5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBD
dXN0b21VbmRvU3RlcC5oIGFuZCBDdXN0b21VbmRvU3RlcC5jcHAKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzExMQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNDQ4MDcwNDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBpcyBtb3JlIHdvcmsgaW4gcHJvZ3Jlc3MgdG93YXJkcyBzdXBw
b3J0aW5nIGBVbmRvTWFuYWdlci5hZGRJdGVtKClgLiBIZXJlLCB3ZSBpbnRyb2R1Y2UgYSBoZWxw
ZXIKKyAgICAgICAgY2xhc3MsIEN1c3RvbVVuZG9TdGVwLCB0aGF0IGhvbGRzIGEgd2VhayByZWZl
cmVuY2UgdG8gYSBzY3JpcHQtZGVmaW5lZCBVbmRvSXRlbS4gU2VlIGJlbG93IGZvciBtb3JlIGRl
dGFpbHMuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0
aW5nL0N1c3RvbVVuZG9TdGVwLmNwcDoKKworICAgICAgICBTdWJjbGFzcyBVbmRvU3RlcC4KKwor
ICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tVW5kb1N0ZXA6OkN1c3RvbVVuZG9TdGVwKToKKyAgICAg
ICAgKFdlYkNvcmU6OkN1c3RvbVVuZG9TdGVwOjp1bmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6
OkN1c3RvbVVuZG9TdGVwOjpyZWFwcGx5KToKKworICAgICAgICBJZiBwb3NzaWJsZSwgaW52b2tl
IHRoZSBVbmRvSXRlbSdzIHVuZG8gYW5kIHJlZG8gaGFuZGxlcnMuCisKKyAgICAgICAgKFdlYkNv
cmU6OkN1c3RvbVVuZG9TdGVwOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkN1
c3RvbVVuZG9TdGVwOjpjdXN0b21VbmRvTGFiZWwgY29uc3QpOgorCisgICAgICAgIFRoZSB1bmRv
L3JlZG8gYWN0aW9uIGxhYmVsIHVzZWQgdG8gcmVwcmVzZW50IHRoaXMgaW4gcGxhdGZvcm0gVUku
CisKKyAgICAgICAgKiBlZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmg6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0aW5nU3R5bGUuY3BwOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0RWRpdGFibGVJbWFn
ZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0RWRpdGFibGVJbWFnZUNvbW1h
bmQ6OmRvQXBwbHkpOgorCisgICAgICAgIFVuaWZpZWQgYnVpbGQgZml4ZXMuCisKKyAgICAgICAg
KiBlZGl0aW5nL1VuZG9TdGVwLmg6CisgICAgICAgICogcGFnZS9VbmRvSXRlbS5oOgorCiAyMDE5
LTAxLTE5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBzb21lIGJpbmRpbmdzLXJlbGF0ZWQgYm9va2tlZXBpbmcgdG8gVW5kb01hbmFnZXIgYW5k
IFVuZG9JdGVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDI0NWE1NTkwOGRmZTJlMzA1NWFjNmFkYjdmZDRi
YjAwMjE2MjQ2NTkuLmM5NDA4NGQwYTFlMGNmNzFhMDM4MjExNTEyNjIzYWUwMTk3ZmUzN2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CkBAIC05NDYsNiArOTQ2LDcgQEAgZWRpdGluZy9CcmVha0Jsb2NrcXVvdGVD
b21tYW5kLmNwcAogZWRpdGluZy9DaGFuZ2VMaXN0VHlwZUNvbW1hbmQuY3BwCiBlZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmNwcAogZWRpdGluZy9DcmVhdGVMaW5rQ29tbWFuZC5jcHAKK2Vk
aXRpbmcvQ3VzdG9tVW5kb1N0ZXAuY3BwCiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwCiBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCiBlZGl0aW5nL0RpY3Rh
dGlvbkFsdGVybmF0aXZlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJhMjA2MzlkZDU4OTYxOWE5YWNhNjA4MDdmMWQzMTBj
ZDVjNzYwOTIuLjE1MDgwZTg2MTcyMjhlMDFjY2M4OTc3YmQ4MDU5NGJlMDFjNTNkMzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTE1MTIzLDYgKzE1MTIzLDggQEAKIAkJRjREOTgxN0UyMTk1RkJGNjAwODIzMEZDIC8qIENoYW5n
ZUxpc3RUeXBlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDaGFuZ2VMaXN0VHlwZUNv
bW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEUxOTY1QTIxRjIzOTUw
MDAyODUwNzggLyogSlNVbmRvSXRlbUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1VuZG9JdGVtQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjRFMTk2NUYyMUYyNkU0RTAwMjg1MDc4IC8qIFVuZG9JdGVtLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFVuZG9JdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RjRFMTk2NjEyMUYyN0QzQzAwMjg1MDc4IC8qIEN1c3RvbVVuZG9TdGVwLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1c3RvbVVuZG9TdGVwLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY0RTE5NjYyMjFGMjdEM0QwMDI4NTA3OCAvKiBDdXN0b21VbmRvU3RlcC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXN0b21VbmRvU3RlcC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RTU3RURBMjEzRjNGNUYwMDRFQTk4
RSAvKiBGb250QXR0cmlidXRlQ2hhbmdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250QXR0cmlidXRl
Q2hhbmdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEU1N0VERjIxM0Y0MzRB
MDA0RUE5OEUgLyogV2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjRFNTdFRTAyMTNGNDM0QTAwNEVBOThFIC8qIFdlYkNvcmVOU0ZvbnRNYW5hZ2VyRXh0cmFz
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTA1OSw2ICsyMTA2MSw4IEBACiAJCTkz
MzA5RDg2MDk5RTY0OTEwMDU2RTU4MSAvKiBlZGl0aW5nICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlGNEUxOTY2MjIxRjI3RDNEMDAyODUwNzggLyogQ3Vz
dG9tVW5kb1N0ZXAuY3BwICovLAorCQkJCUY0RTE5NjYxMjFGMjdEM0MwMDI4NTA3OCAvKiBDdXN0
b21VbmRvU3RlcC5oICovLAogCQkJCTdDM0U1MTA3MThERjhGMTIwMEMxMTJGNyAvKiBjb2NvYSAq
LywKIAkJCQk0NDMyOTJDMTBFQkE2RDczMDBFNjIwMTYgLyogaW9zICovLAogCQkJCUVENTAxREM5
MEIyNDlGMzkwMEFFMThEOSAvKiBtYWMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5kZXggMmRhNTIwZmRjNDY0OTI5MmRjN2JmY2EyMGI3ZDEx
YjExOGM1ZGExYy4uYjJmYTVkMDE5YTQ2M2ZjNmIyNTBhNDg0YTJiNDM5NjdmZTJkNjFmMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApAQCAtODgs
NiArODgsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEVkaXRDb21tYW5kQ29tcG9zaXRpb24o
RG9jdW1lbnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzdGFydGluZ1NlbGVjdGlvbiwgY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgZW5kaW5nU2VsZWN0aW9uLCBFZGl0QWN0aW9uKTsKIAorICAg
IGNvbnN0IFN0cmluZyYgY3VzdG9tVW5kb0xhYmVsKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZW1w
dHlTdHJpbmcoKTsgfQorCiAgICAgUmVmUHRyPERvY3VtZW50PiBtX2RvY3VtZW50OwogICAgIFZp
c2libGVTZWxlY3Rpb24gbV9zdGFydGluZ1NlbGVjdGlvbjsKICAgICBWaXNpYmxlU2VsZWN0aW9u
IG1fZW5kaW5nU2VsZWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9D
dXN0b21VbmRvU3RlcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1c3RvbVVuZG9TdGVw
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xZTZiNzBiMTI4MzUzNTc1MDI4MTY0NGJiNjM1NTQ5MzlmNmZhMTQy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0b21VbmRvU3Rl
cC5jcHAKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJDdXN0b21VbmRvU3RlcC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJVbmRvSXRlbS5oIgorI2luY2x1ZGUgIlVuZG9NYW5hZ2VyLmgiCisjaW5jbHVkZSAi
Vm9pZENhbGxiYWNrLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3VzdG9tVW5kb1N0ZXA6
OkN1c3RvbVVuZG9TdGVwKFVuZG9JdGVtJiBpdGVtKQorICAgIDogbV91bmRvSXRlbShtYWtlV2Vh
a1B0cihpdGVtKSkKK3sKK30KKwordm9pZCBDdXN0b21VbmRvU3RlcDo6dW5hcHBseSgpCit7Cisg
ICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FOiBJdCdz
IGN1cnJlbnRseSB1bmNsZWFyIGhvdyBpbnB1dCBldmVudHMgc2hvdWxkIGJlIGRpc3BhdGNoZWQg
d2hlbiB1bmFwcGx5aW5nIG9yIHJlYXBwbHlpbmcgY3VzdG9tCisgICAgLy8gZWRpdCBjb21tYW5k
cy4gU2hvdWxkIHRoZSBwYWdlIGJlIGFsbG93ZWQgdG8gc3BlY2lmeSBhIHRhcmdldCBpbiB0aGUg
RE9NIGZvciB1bmRvIGFuZCByZWRvPworICAgIFJlZjxVbmRvSXRlbT4gcHJvdGVjdGVkVW5kb0l0
ZW0oKm1fdW5kb0l0ZW0pOworICAgIHByb3RlY3RlZEl0ZW0tPmRvY3VtZW50KCktPnVwZGF0ZUxh
eW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIHByb3RlY3RlZEl0ZW0tPnVuZG9I
YW5kbGVyKCkuaGFuZGxlRXZlbnQoKTsKK30KKwordm9pZCBDdXN0b21VbmRvU3RlcDo6cmVhcHBs
eSgpCit7CisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZjxV
bmRvSXRlbT4gcHJvdGVjdGVkVW5kb0l0ZW0oKm1fdW5kb0l0ZW0pOworICAgIHByb3RlY3RlZEl0
ZW0tPmRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwor
ICAgIHByb3RlY3RlZEl0ZW0tPnJlZG9IYW5kbGVyKCkuaGFuZGxlRXZlbnQoKTsKK30KKworYm9v
bCBDdXN0b21VbmRvU3RlcDo6aXNWYWxpZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdW5kb0l0
ZW0gJiYgbV91bmRvSXRlbS0+aXNWYWxpZCgpOworfQorCitjb25zdCBTdHJpbmcmIEN1c3RvbVVu
ZG9TdGVwOjpjdXN0b21VbmRvTGFiZWwoKSBjb25zdAoreworICAgIGlmICghaXNWYWxpZCgpKSB7
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gZW1wdHlTdHJp
bmcoKTsKKyAgICB9CisgICAgcmV0dXJuIG1fdW5kb0l0ZW0tPmxhYmVsKCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3Vz
dG9tVW5kb1N0ZXAuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xYjZkOTA2YjliOGY2M2FmOTEyNzJmMDRkZWNmNGIxOWQ5NzdjNDE5Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0b21VbmRvU3RlcC5oCkBA
IC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlVu
ZG9TdGVwLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBVbmRvSXRl
bTsKKworY2xhc3MgQ3VzdG9tVW5kb1N0ZXAgZmluYWwgOiBwdWJsaWMgVW5kb1N0ZXAgeworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8Q3VzdG9tVW5kb1N0ZXA+IGNyZWF0ZShVbmRvSXRlbSYgaXRl
bSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEN1c3RvbVVuZG9TdGVwKGl0
ZW0pKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQ3VzdG9tVW5kb1N0ZXAoVW5kb0l0ZW0mKTsK
KworICAgIHZvaWQgdW5hcHBseSgpIGZpbmFsOworICAgIHZvaWQgcmVhcHBseSgpIGZpbmFsOwor
ICAgIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIEVkaXRB
Y3Rpb246OlVuc3BlY2lmaWVkOyB9CisgICAgY29uc3QgU3RyaW5nJiBjdXN0b21VbmRvTGFiZWwo
KSBjb25zdCBmaW5hbDsKKworICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OworCisgICAgV2Vha1B0
cjxVbmRvSXRlbT4gbV91bmRvSXRlbTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAppbmRleCBiMzhjMTUwOWVlOTc5YmU5
ZTQwZmUzYmFkMjkwZDQ3NDI2NjAwMDZjLi42YmJmMDE0MzA0YjQ4Yzc3NTFlYzk4Y2NiMjYyYjhh
OWEzMDcwYzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHls
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCkBAIC00
NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIk5vZGVUcmF2ZXJzYWwu
aCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCisjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5o
IgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU3R5bGVGb250U2l6ZUZ1bmN0
aW9ucy5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbnNlcnRFZGl0YWJsZUltYWdlQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydEVkaXRhYmxlSW1hZ2VDb21tYW5kLmNwcAppbmRleCA1NWQx
MTg0Yzc4MDdjN2UwOWE0YzVmNjZlNTY3OTJlYzE4YTM2YTI2Li5kOWFmYTU2ZTZjY2NhZjA5MmJi
M2RhNTIyODZmYWRlMTkyYjY5YmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydEVkaXRhYmxlSW1hZ2VDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydEVkaXRhYmxlSW1hZ2VDb21tYW5kLmNwcApAQCAtNDksMTAgKzQ5LDEwIEBAIHZv
aWQgSW5zZXJ0RWRpdGFibGVJbWFnZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgICAgICByZXR1cm47
CiAKICAgICBtX2ltYWdlRWxlbWVudCA9IEhUTUxJbWFnZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCgpKTsKLSAgICBtX2ltYWdlRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbih4X2FwcGxlX2VkaXRhYmxlX2ltYWdlQXR0ciwgZW1wdHlBdG9tKCkpOwotICAgIG1faW1h
Z2VFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHdpZHRoQXR0ciwg
QXRvbWljU3RyaW5nKCIxMDAlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwotICAgIG1faW1hZ2VFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9u
KGhlaWdodEF0dHIsIEF0b21pY1N0cmluZygiMzAwcHgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7Ci0gICAgbV9pbWFnZUVsZW1lbnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRT
eW5jaHJvbml6YXRpb24oc3R5bGVBdHRyLCBBdG9taWNTdHJpbmcoImRpc3BsYXk6IGJsb2NrIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIG1faW1hZ2VFbGVtZW50
LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6eF9hcHBsZV9l
ZGl0YWJsZV9pbWFnZUF0dHIsIGVtcHR5QXRvbSgpKTsKKyAgICBtX2ltYWdlRWxlbWVudC0+c2V0
QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OndpZHRoQXR0ciwgQXRv
bWljU3RyaW5nKCIxMDAlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIG1faW1hZ2VFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhU
TUxOYW1lczo6aGVpZ2h0QXR0ciwgQXRvbWljU3RyaW5nKCIzMDBweCIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBtX2ltYWdlRWxlbWVudC0+c2V0QXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OnN0eWxlQXR0ciwgQXRvbWljU3RyaW5n
KCJkaXNwbGF5OiBibG9jayIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
IAogICAgIGluc2VydE5vZGVBdCgqbV9pbWFnZUVsZW1lbnQsIGVuZGluZ1NlbGVjdGlvbigpLnN0
YXJ0KCkpOwogICAgIHNldEVuZGluZ1NlbGVjdGlvbih2aXNpYmxlUG9zaXRpb25BZnRlck5vZGUo
Km1faW1hZ2VFbGVtZW50KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Vu
ZG9TdGVwLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1VuZG9TdGVwLmgKaW5kZXggMDBjMTcw
MDEwN2IyY2M3OWNjMTMyNjc5ZDg5OGQ3MDViYTc4N2U3OC4uNTcxYmY5OWNhNDMyYjI4MDM4MDlj
MGNjY2VjNzlmZmE0YmIwNWMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9V
bmRvU3RlcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVW5kb1N0ZXAuaApAQCAtNDIs
NiArNDIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVuYXBwbHkoKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHJlYXBwbHkoKSA9IDA7CiAgICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRp
bmdBY3Rpb24oKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBjb25zdCBTdHJpbmcmIGN1c3RvbVVu
ZG9MYWJlbCgpIGNvbnN0ID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb0l0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvVW5kb0l0ZW0uaAppbmRleCBiM2ExNWU3MWQ0MGFjMzBjYTc2YzViMWQwNGRiNGEyMTYwMzAx
YTM0Li5lNmQzMzJkNTk0ODNhZDgzYWNiZGVlMjExYzc1NjU2YmUyNGRkMTkyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9JdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9VbmRvSXRlbS5oCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IERvY3VtZW50OwogY2xhc3MgVW5kb01hbmFnZXI7CiAKLWNsYXNzIFVuZG9JdGVtIDogcHVibGlj
IFJlZkNvdW50ZWQ8VW5kb0l0ZW0+IHsKK2NsYXNzIFVuZG9JdGVtIDogcHVibGljIFJlZkNvdW50
ZWQ8VW5kb0l0ZW0+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8VW5kb0l0ZW0+IHsKICAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKFVuZG9JdGVtKTsKIHB1YmxpYzoKICAgICBzdHJ1Y3QgSW5pdCB7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359631</attachid>
            <date>2019-01-19 20:41:14 -0800</date>
            <delta_ts>2019-01-19 20:50:37 -0800</delta_ts>
            <desc>Part 3</desc>
            <filename>bug-193111-20190119204113.patch</filename>
            <type>text/plain</type>
            <size>57809</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDY2YzkzZTk2YWQ0ZmJj
YTdkNjcxYzkyY2RiZjQ1MWM4MjQ4MDdhZC4uYjVjZjYxMTJkOTJlZmZiMGEzYTM5NDk3ODc2OWNi
Zjg4YTEwM2Y2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE5LTAxLTE5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWxs
b3cgdGhlIHBhZ2UgdG8gYWRkIHRvIHRoZSBwbGF0Zm9ybSB1bmRvIHN0YWNrIHZpYSBVbmRvTWFu
YWdlci5hZGRJdGVtKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5MzExMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQ4MDcwNDg+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRmluaXNoIGhvb2tpbmcg
dXAgYFVuZG9NYW5hZ2VyOjphZGRJdGVtcygpYCB0byBDdXN0b21VbmRvU3RlcC4KKworICAgICAg
ICBUZXN0czogZWRpdGluZy91bmRvLW1hbmFnZXIvdW5kby1tYW5hZ2VyLWFkZC1pdGVtLmh0bWwK
KyAgICAgICAgICAgICAgIGVkaXRpbmcvdW5kby1tYW5hZ2VyL3VuZG8tbWFuYWdlci1kZWxldGUt
c3RhbGUtdW5kby1pdGVtcy5odG1sCisgICAgICAgICAgICAgICBlZGl0aW5nL3VuZG8tbWFuYWdl
ci91bmRvLW1hbmFnZXItaXRlbS1sYWJlbHMuaHRtbAorICAgICAgICAgICAgICAgZWRpdGluZy91
bmRvLW1hbmFnZXIvdW5kby1tYW5hZ2VyLXVuZG8tcmVkby1hZnRlci1nYXJnYWdlLWNvbGxlY3Rp
b24uaHRtbAorCisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oOgorICAg
ICAgICAqIGVkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3Vz
dG9tVW5kb1N0ZXA6OmludmFsaWRhdGUpOgorCisgICAgICAgIEFkZCBhIG1ldGhvZCB0byBpbnZh
bGlkYXRlIEN1c3RvbVVuZG9TdGVwLiBUaGlzIGNsZWFycyBvdXQgdGhlIHBvaW50ZXIgdG8gdGhl
IHVuZG8gaXRlbSwgYW5kIGFsc28gaW52YWxpZGF0ZXMKKyAgICAgICAgdGhlIFVuZG9JdGVtLCBy
ZW1vdmluZyBpdCBmcm9tIGl0cyBVbmRvTWFuYWdlci4KKworICAgICAgICAqIGVkaXRpbmcvQ3Vz
dG9tVW5kb1N0ZXAuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OnJlZ2lzdGVyQ3VzdG9tVW5kb1N0ZXApOgorCisgICAgICAgIEFkZCBh
IGhlbHBlciBtZXRob2QgdG8gcmVnaXN0ZXIgYSBDdXN0b21VbmRvU3RlcCBhcyBhIHBsYXRmb3Jt
IHVuZG9hYmxlIHN0ZXAuCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAq
IGVkaXRpbmcvVW5kb1N0ZXAuaDoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50OjpyZWdpc3RlclVuZG9TdGVwKToK
KyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50OjpyZWdpc3RlclJlZG9TdGVwKToK
KworICAgICAgICBNYWtlIHRoZXNlIHRha2UgYFJlZjxVbmRvU3RlcD4mJmAgaW5zdGVhZCBvZiBg
VW5kb1N0ZXAmYC4KKworICAgICAgICAqIHBhZ2UvRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICog
cGFnZS9VbmRvTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVbmRvTWFuYWdlcjo6YWRk
SXRlbSk6CisKKyAgICAgICAgQ3JlYXRlIGEgQ3VzdG9tVW5kb1N0ZXAgd2l0aCB0aGUgZ2l2ZW4g
VW5kb0l0ZW0sIGFuZCByZWdpc3RlciBpdCB3aXRoIHRoZSBwbGF0Zm9ybSB1bmRvIG1hbmFnZXIu
CisKIDIwMTktMDEtMTkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAK
ICAgICAgICAgSW50cm9kdWNlIEN1c3RvbVVuZG9TdGVwLmggYW5kIEN1c3RvbVVuZG9TdGVwLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAzNGQ0M2YzZWY3YzlhZTQ1ZDVmODliNDQwODBmNTVmYTBlNDlhN2E2Li4y
Y2E0ZTY2ZjE2NGMzNzQ1ODFhMTlhMzViYjlmZWM3MGJkODJmZDNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDUzIEBACisyMDE5LTAxLTE5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgorCisgICAgICAgIFtDb2NvYV0gQWxsb3cgdGhlIHBhZ2UgdG8gYWRkIHRvIHRoZSBwbGF0
Zm9ybSB1bmRvIHN0YWNrIHZpYSBVbmRvTWFuYWdlci5hZGRJdGVtKCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzExMQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNDQ4MDcwNDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIHBsdW1iaW5nIHRvIHVzZSBhIGN1c3RvbSB1bmRvIGxhYmVsIChkZWZp
bmVkIGJ5IGFuIFVuZG9JdGVtKSBhcyB0aGUgYWN0aW9uIG5hbWUgZm9yIE5TVW5kb01hbmFnZXIu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjpyZWdpc3RlckVkaXRDb21tYW5kKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRD
b21tYW5kUHJveHk6OldlYkVkaXRDb21tYW5kUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJF
ZGl0Q29tbWFuZFByb3h5OjpuYW1lRm9yVW5kb1JlZG8gY29uc3QpOgorCisgICAgICAgIEFkZCBh
IGhlbHBlciBtZXRob2QgdG8gZ2V0IHRoZSB1bmRvL3JlZG8gbmFtZSBmb3IgYSBlZGl0IGNvbW1h
bmQgaW4gdGhlIFVJIHByb2Nlc3MuIFRoaXMgcHJlZmVycyB0aGUgY3VzdG9tIG5hbWUKKyAgICAg
ICAgKGlmIHNwZWNpZmllZCksIGFuZCBmYWxscyBiYWNrIHRvIHRoZSBgRWRpdEFjdGlvbmAuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJF
ZGl0Q29tbWFuZFByb3h5OjppbnZhbGlkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWdpc3RlckVkaXRD
b21tYW5kRm9yVW5kbyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVzZXRTdGF0
ZSk6CisKKyAgICAgICAgVGFrZSBhZHZhbnRhZ2Ugb2YgYHN0ZDo6ZXhjaGFuZ2VgIGluc3RlYWQg
b2YgY29weWluZyBhbGwgdGhlIGVkaXQgY29tbWFuZHMgaW50byBhIG5ldyBWZWN0b3IuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVnaXN0ZXJF
ZGl0Q29tbWFuZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVy
VW5kb1N0ZXApOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyUmVk
b1N0ZXApOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50Lmg6CisKKyAgICAgICAgTUFrZSB0aGUgZnVuY3Rpb24gdGFrZSBhIGBSZWY8VW5kb1N0ZXA+
JiZgIGluc3RlYWQgb2YgYW4gYFVuZG9TdGVwJmAuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmFkZFdlYlVuZG9T
dGVwKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVtb3ZlV2ViRWRpdENvbW1hbmQpOgor
CisgICAgICAgIEludmFsaWRhdGUgdW5kbyBzdGVwcyB3aGVuIHJlbW92aW5nIHRoZW0gZnJvbSBX
ZWJQYWdlLiBJbnZhbGlkYXRpb24gaXMgYSBuby1vcCBmb3IgZWRpdGluZyBhY3Rpb25zIHRoYXQg
Y29tZQorICAgICAgICBmcm9tIHRoZSBVQSwgYnV0IGZvciBjdXN0b20gdW5kbyBzdGVwcyBiYWNr
ZWQgYnkgYW4gVW5kb0l0ZW0sIHdlIGNsZWFyIG91dCB0aGUgY3VzdG9tIHVuZG8gc3RlcCdzIHBv
aW50ZXIgdG8gaXRzCisgICAgICAgIFVuZG9JdGVtIGFuZCBhZGRpdGlvbmFsbHkgZGlzY29ubmVj
dCB0aGUgVW5kb0l0ZW0gZnJvbSBpdHMgVW5kb01hbmFnZXIuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViVW5kb1N0ZXAuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVW5kb1N0ZXA6
OmludmFsaWRhdGUpOgorCiAyMDE5LTAxLTE4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25A
YXBwbGUuY29tPgogCiAgICAgICAgIEFkanVzdCBXS0RyYXdpbmdWaWV3IHByb3RvY29sIG1ldGhv
ZCBuYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMWUwNjRmZWM3YmNiMGRhYjA3
NDNjM2Q1MmNhYmYxZmUzYzkyM2I0My4uOTA5MzNhMjliZGUwZTViMGE1MzdiMzkyOTMzN2M5ZTcw
NmU3MzFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisy
MDE5LTAxLTE5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAg
ICAgIFtDb2NvYV0gQWxsb3cgdGhlIHBhZ2UgdG8gYWRkIHRvIHRoZSBwbGF0Zm9ybSB1bmRvIHN0
YWNrIHZpYSBVbmRvTWFuYWdlci5hZGRJdGVtKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzExMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQ4
MDcwNDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRqdXN0IGZvciBzb21lIGNoYW5nZWQgZnVuY3Rpb24gcGFyYW1ldGVycy4gU2VlIG90aGVyIENo
YW5nZUxvZ3MgZm9yIG1vcmUgZGV0YWlsLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
Lm1tOgorICAgICAgICAoLVtXZWJVbmRvU3RlcCBpbml0V2l0aFVuZG9TdGVwOl0pOgorICAgICAg
ICAoK1tXZWJVbmRvU3RlcCBzdGVwV2l0aFVuZG9TdGVwOl0pOgorICAgICAgICAoV2ViRWRpdG9y
Q2xpZW50OjpyZWdpc3RlclVuZG9PclJlZG9TdGVwKToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVu
dDo6cmVnaXN0ZXJVbmRvU3RlcCk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVy
UmVkb1N0ZXApOgorCiAyMDE5LTAxLTE4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmVydCByMjM4ODE1LCBpdCBicm9rZSBXSzEgdmlkZW8gZnVs
bHNjcmVlbiBvbiBNYWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENv
bW1hbmQuaAppbmRleCBiMmZhNWQwMTlhNDYzZmM2YjI1MGE0ODRhMmI0Mzk2N2ZlMmQ2MWYyLi4y
ZTM5NmMxYmE2N2I5MjhjMTVhNjA5NDJiNjY2MTU4MWEzNGFlZWQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCkBAIC04OSw2ICs4OSw3IEBAIHBy
aXZhdGU6CiAgICAgRWRpdENvbW1hbmRDb21wb3NpdGlvbihEb2N1bWVudCYsIGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIHN0YXJ0aW5nU2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBl
bmRpbmdTZWxlY3Rpb24sIEVkaXRBY3Rpb24pOwogCiAgICAgY29uc3QgU3RyaW5nJiBjdXN0b21V
bmRvTGFiZWwoKSBjb25zdCBmaW5hbCB7IHJldHVybiBlbXB0eVN0cmluZygpOyB9CisgICAgdm9p
ZCBpbnZhbGlkYXRlKCkgZmluYWwgeyB9CiAKICAgICBSZWZQdHI8RG9jdW1lbnQ+IG1fZG9jdW1l
bnQ7CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBtX3N0YXJ0aW5nU2VsZWN0aW9uOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0b21VbmRvU3RlcC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmNwcAppbmRleCBlZDhlMDI4YjdjYTc5M2U1N2Fi
Zjk1N2U5M2Y1YzlmNjlhNWIyMmEwLi5hNDhjMWU4Nzg0OTVkN2IzYWRjZTc0NDUwMjZhODEzYWJh
ZThlZDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1c3RvbVVuZG9TdGVw
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmNwcApAQCAt
NzQsNCArNzQsMTAgQEAgY29uc3QgU3RyaW5nJiBDdXN0b21VbmRvU3RlcDo6Y3VzdG9tVW5kb0xh
YmVsKCkgY29uc3QKICAgICByZXR1cm4gbV91bmRvSXRlbS0+bGFiZWwoKTsKIH0KIAordm9pZCBD
dXN0b21VbmRvU3RlcDo6aW52YWxpZGF0ZSgpCit7CisgICAgaWYgKGF1dG8gdW5kb0l0ZW0gPSBz
dGQ6OmV4Y2hhbmdlKG1fdW5kb0l0ZW0sIG51bGxwdHIpKQorICAgICAgICB1bmRvSXRlbS0+aW52
YWxpZGF0ZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0N1c3RvbVVuZG9TdGVwLmgKaW5kZXggMWI2ZDkwNmI5YjhmNjNhZjkxMjcyZjA0ZGVjZjRi
MTlkOTc3YzQxOS4uNGJiNDIzOTc5MTE5ZjNjODYzMGE0ZDc0OGI5Nzc4NTZhMmNhYzljZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0b21VbmRvU3RlcC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuaApAQCAtNDksNiArNDksNyBAQCBw
cml2YXRlOgogICAgIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIEVkaXRBY3Rpb246OlVuc3BlY2lmaWVkOyB9CiAgICAgY29uc3QgU3RyaW5nJiBjdXN0b21V
bmRvTGFiZWwoKSBjb25zdCBmaW5hbDsKIAorICAgIHZvaWQgaW52YWxpZGF0ZSgpIGZpbmFsOwog
ICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OwogCiAgICAgV2Vha1B0cjxVbmRvSXRlbT4gbV91bmRv
SXRlbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA1ODU0YWViNTVhMGYyNGQ4NTg1
NWVlZDEyNjBlM2UzZDk0ZWFmMGEzLi4yMDYxNWU4NzI4NTgyMTZlODI2YjUzNGNmMDY5NWI1NWY5
ZTNiNDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAj
aW5jbHVkZSAiQ2xpcGJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJDb21wb3NpdGlvbkV2ZW50Lmgi
CiAjaW5jbHVkZSAiQ3JlYXRlTGlua0NvbW1hbmQuaCIKKyNpbmNsdWRlICJDdXN0b21VbmRvU3Rl
cC5oIgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuaCIKICNpbmNsdWRlICJEaWN0YXRpb25BbHRlcm5hdGl2ZS5oIgpAQCAtMTc0MCw2
ICsxNzQxLDEzIEBAIHZvaWQgRWRpdG9yOjpyZWRvKCkKICAgICAgICAgY2xpZW50KCktPnJlZG8o
KTsKIH0KIAordm9pZCBFZGl0b3I6OnJlZ2lzdGVyQ3VzdG9tVW5kb1N0ZXAoUmVmPEN1c3RvbVVu
ZG9TdGVwPiYmIHVuZG9TdGVwKQoreworICAgIEFTU0VSVChSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLnVuZG9NYW5hZ2VyQVBJRW5hYmxlZCgpKTsKKyAgICBpZiAoYXV0
byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCisgICAgICAgIGNsaWVudC0+cmVnaXN0ZXJVbmRv
U3RlcChXVEZNb3ZlKHVuZG9TdGVwKSk7Cit9CisKIHZvaWQgRWRpdG9yOjpkaWRCZWdpbkVkaXRp
bmcoKQogewogICAgIGlmIChjbGllbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDA1
Y2MxYjgyYWVhYzE0MGI0MDkzMGRmNmYzN2VhNTQ5NTVjNjNmNDYuLjQ1NDdkNDcxNWY5ODMzYTg2
N2NlN2Y2YTgzMzM3OGM1MzYzZDAzYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNTgs
NiArNTgsNyBAQCBjbGFzcyBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOwogY2xhc3MgQXJjaGl2
ZVJlc291cmNlOwogY2xhc3MgRGF0YVRyYW5zZmVyOwogY2xhc3MgQ29tcG9zaXRlRWRpdENvbW1h
bmQ7CitjbGFzcyBDdXN0b21VbmRvU3RlcDsKIGNsYXNzIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXI7
CiBjbGFzcyBFZGl0Q29tbWFuZDsKIGNsYXNzIEVkaXRDb21tYW5kQ29tcG9zaXRpb247CkBAIC0z
MjQsNiArMzI1LDggQEAgcHVibGljOgogICAgIGJvb2wgY2FuUmVkbygpIGNvbnN0OwogICAgIHZv
aWQgcmVkbygpOwogCisgICAgdm9pZCByZWdpc3RlckN1c3RvbVVuZG9TdGVwKFJlZjxDdXN0b21V
bmRvU3RlcD4mJik7CisKICAgICB2b2lkIGRpZEJlZ2luRWRpdGluZygpOwogICAgIHZvaWQgZGlk
RW5kRWRpdGluZygpOwogICAgIHZvaWQgd2lsbFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKFJh
bmdlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1VuZG9TdGVwLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1VuZG9TdGVwLmgKaW5kZXggNTcxYmY5OWNhNDMyYjI4MDM4
MDljMGNjY2VjNzlmZmE0YmIwNWMyMi4uOGIyOWQ3NDE3YWIxMjg3MTM2NGM2YjEwMDJkMGRiZmJj
N2VlODQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9VbmRvU3RlcC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVW5kb1N0ZXAuaApAQCAtNDMsNiArNDMsOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlYXBwbHkoKSA9IDA7CiAgICAgdmlydHVhbCBFZGl0
QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBjb25zdCBTdHJp
bmcmIGN1c3RvbVVuZG9MYWJlbCgpIGNvbnN0ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBpbnZh
bGlkYXRlKCkgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCBhNWU1ZWY3NTgzNTRmZWM3NDM2MDhhMDMzZWI2
OWNkNzAxODA1YjQ3Li5hZTkyMGYwMWFiZjg3MjFjMzYyYTU1MzYxMzZhYWIzOGQwODExNDRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtMTg2LDggKzE4Niw4IEBA
IHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0Q2FuZGlkYXRlc0ZvclNlbGVjdGlvbihjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJikgZmluYWwgeyB9CiAgICAgdm9pZCBoYW5kbGVBY2NlcHRlZENhbmRp
ZGF0ZVdpdGhTb2Z0U3BhY2VzKFRleHRDaGVja2luZ1Jlc3VsdCkgZmluYWwgeyB9CiAKLSAgICB2
b2lkIHJlZ2lzdGVyVW5kb1N0ZXAoVW5kb1N0ZXAmKSBmaW5hbDsKLSAgICB2b2lkIHJlZ2lzdGVy
UmVkb1N0ZXAoVW5kb1N0ZXAmKSBmaW5hbDsKKyAgICB2b2lkIHJlZ2lzdGVyVW5kb1N0ZXAoUmVm
PFVuZG9TdGVwPiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoUmVmPFVuZG9T
dGVwPiYmKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyVW5kb1JlZG9PcGVyYXRpb25zKCkgZmluYWwg
eyB9CiAKICAgICBib29sIGNhbkNvcHlDdXQoRnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgY29u
c3QgZmluYWwgeyByZXR1cm4gZGVmYXVsdFZhbHVlOyB9CkBAIC01MDcsMTEgKzUwNywxMSBAQCB2
b2lkIEVtcHR5RWRpdG9yQ2xpZW50OjpFbXB0eVRleHRDaGVja2VyQ2xpZW50OjpyZXF1ZXN0Q2hl
Y2tpbmdPZlN0cmluZyhUZXh0Q2hlYwogewogfQogCi12b2lkIEVtcHR5RWRpdG9yQ2xpZW50Ojpy
ZWdpc3RlclVuZG9TdGVwKFVuZG9TdGVwJikKK3ZvaWQgRW1wdHlFZGl0b3JDbGllbnQ6OnJlZ2lz
dGVyVW5kb1N0ZXAoUmVmPFVuZG9TdGVwPiYmKQogewogfQogCi12b2lkIEVtcHR5RWRpdG9yQ2xp
ZW50OjpyZWdpc3RlclJlZG9TdGVwKFVuZG9TdGVwJikKK3ZvaWQgRW1wdHlFZGl0b3JDbGllbnQ6
OnJlZ2lzdGVyUmVkb1N0ZXAoUmVmPFVuZG9TdGVwPiYmKQogewogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
ZGl0b3JDbGllbnQuaAppbmRleCAzN2JmMTgyM2E5OGMyZDllNTJmM2QwMmNiZjViY2ZmYWVlMzU4
YzQ0Li5hYmJmNTgyOWMxN2RjYWU5N2QwNGIyY2NmYjRlMGRkMzM0NGQ0MmFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRWRpdG9yQ2xpZW50LmgKQEAgLTEwNCw4ICsxMDQsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGNhbmNlbGVkQ29tcG9zaXRpb24oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFVwZGF0ZUNvbXBvc2l0aW9uKCkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyVW5k
b1N0ZXAoVW5kb1N0ZXAmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAo
VW5kb1N0ZXAmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyVW5kb1N0ZXAoUmVmPFVu
ZG9TdGVwPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoUmVmPFVu
ZG9TdGVwPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyVW5kb1JlZG9PcGVyYXRpb25z
KCkgPSAwOwogCiAgICAgdmlydHVhbCBib29sIGNhbkNvcHlDdXQoRnJhbWUqLCBib29sIGRlZmF1
bHRWYWx1ZSkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRv
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9NYW5hZ2VyLmNwcAppbmRleCAx
ZDQ1YmEzNThiZTA0OWVhZGExNTFkYWIwOTNmMWRiMDAyMzU1ODUxLi5iZDQ3Nzc4YjVjMDBlMzY5
MmMyYzkwNWNlMzFlNzliOTQ0N2QxODM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1VuZG9NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9NYW5hZ2VyLmNw
cApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlVuZG9N
YW5hZ2VyLmgiCiAKKyNpbmNsdWRlICJDdXN0b21VbmRvU3RlcC5oIgorI2luY2x1ZGUgIkZyYW1l
LmgiCiAjaW5jbHVkZSAiVW5kb0l0ZW0uaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5l
cy5oPgogCkBAIC00Miw5ICs0NCwxNSBAQCBVbmRvTWFuYWdlcjo6flVuZG9NYW5hZ2VyKCkgPSBk
ZWZhdWx0OwogCiB2b2lkIFVuZG9NYW5hZ2VyOjphZGRJdGVtKFJlZjxVbmRvSXRlbT4mJiBpdGVt
KQogewotICAgIFVOVVNFRF9QQVJBTShtX2RvY3VtZW50KTsKKyAgICBpZiAobV9pdGVtcy5jb250
YWlucyhpdGVtLnB0cigpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBmcmFtZSA9IG1h
a2VSZWZQdHIobV9kb2N1bWVudC5mcmFtZSgpKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICBy
ZXR1cm47CiAKICAgICBpdGVtLT5zZXRVbmRvTWFuYWdlcigqdGhpcyk7CisgICAgZnJhbWUtPmVk
aXRvcigpLnJlZ2lzdGVyQ3VzdG9tVW5kb1N0ZXAoQ3VzdG9tVW5kb1N0ZXA6OmNyZWF0ZShpdGVt
KSk7CiAgICAgbV9pdGVtcy5hZGQoV1RGTW92ZShpdGVtKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggN2QyYjEyYTA4OGNlMGU0MmNm
ZjMxZmM1ZWJhZTI5MjNiYzA4MjBlYy4uZWVjNWYyZTc1ZjEzODZhZGJjMjQzNmZmMzM4MzhhNzVh
MGVjNmM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW0KQEAgLTI2OTIsNyArMjY5Miw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmV4ZWN1dGVFZGl0Q29t
bWFuZEZvclNlbGVjdG9yKFNFTCBzZWxlY3RvciwgY29uc3QgU3RyaW5nJiBhcmd1CiAKIHZvaWQg
V2ViVmlld0ltcGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQoUmVmPFdlYkVkaXRDb21tYW5kUHJveHk+
JiYgY29tbWFuZCwgVW5kb09yUmVkbyB1bmRvT3JSZWRvKQogewotICAgIGF1dG8gYWN0aW9uTmFt
ZSA9IFdlYkNvcmU6Om5hbWVGb3JVbmRvUmVkbyhjb21tYW5kLT5lZGl0QWN0aW9uKCkpOworICAg
IGF1dG8gYWN0aW9uTmFtZSA9IGNvbW1hbmQtPm5hbWVGb3JVbmRvUmVkbygpOwogICAgIGF1dG8g
Y29tbWFuZE9iakMgPSBhZG9wdE5TKFtbV0tFZGl0Q29tbWFuZCBhbGxvY10gaW5pdFdpdGhXZWJF
ZGl0Q29tbWFuZFByb3h5OldURk1vdmUoY29tbWFuZCldKTsKIAogICAgIE5TVW5kb01hbmFnZXIg
KnVuZG9NYW5hZ2VyID0gW21fdmlldyB1bmRvTWFuYWdlcl07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCmluZGV4IDlmODNlM2MxOWQ4NmM5ZjIz
NTNhN2U5NTc2MTBhMWVhNWQ4NTg0YjIuLjY2MTZmM2E4ZjBhMGM5NTZhOGFhMDJkZjUzYzliNDY1
NGVlZGIyNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21t
YW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5k
UHJveHkuY3BwCkBAIC0zNiwxMCArMzYsMTEgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKLVdlYkVkaXRDb21tYW5kUHJveHk6OldlYkVkaXRDb21tYW5k
UHJveHkoV2ViVW5kb1N0ZXBJRCBjb21tYW5kSUQsIFdlYkNvcmU6OkVkaXRBY3Rpb24gZWRpdEFj
dGlvbiwgV2ViUGFnZVByb3h5KiBwYWdlKQorV2ViRWRpdENvbW1hbmRQcm94eTo6V2ViRWRpdENv
bW1hbmRQcm94eShXZWJVbmRvU3RlcElEIGNvbW1hbmRJRCwgV2ViQ29yZTo6RWRpdEFjdGlvbiBl
ZGl0QWN0aW9uLCBjb25zdCBTdHJpbmcmIGN1c3RvbVVuZG9MYWJlbCwgV2ViUGFnZVByb3h5JiBw
YWdlKQogICAgIDogbV9jb21tYW5kSUQoY29tbWFuZElEKQogICAgICwgbV9lZGl0QWN0aW9uKGVk
aXRBY3Rpb24pCi0gICAgLCBtX3BhZ2UocGFnZSkKKyAgICAsIG1fY3VzdG9tVW5kb0xhYmVsKGN1
c3RvbVVuZG9MYWJlbCkKKyAgICAsIG1fcGFnZShtYWtlV2Vha1B0cihwYWdlKSkKIHsKICAgICBt
X3BhZ2UtPmFkZEVkaXRDb21tYW5kKCp0aGlzKTsKIH0KQEAgLTY4LDQgKzY5LDkgQEAgdm9pZCBX
ZWJFZGl0Q29tbWFuZFByb3h5OjpyZWFwcGx5KCkKICAgICBtX3BhZ2UtPnJlZ2lzdGVyRWRpdENv
bW1hbmQoKnRoaXMsIFVuZG9PclJlZG86OlVuZG8pOwogfQogCitTdHJpbmcgV2ViRWRpdENvbW1h
bmRQcm94eTo6bmFtZUZvclVuZG9SZWRvKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jdXN0b21V
bmRvTGFiZWwuaXNFbXB0eSgpID8gV2ViQ29yZTo6bmFtZUZvclVuZG9SZWRvKG1fZWRpdEFjdGlv
bikgOiBtX2N1c3RvbVVuZG9MYWJlbDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmgKaW5kZXggNzE2Y2I1
OGY0MDNkZDgyMzE5NmY4NjQyZjc1ZjRkZjNkNzFhYThjYS4uN2MwODExNGY1ODNkYjZkNTFhYmFj
OTMzY2ViM2Q0Mjk4MjE3MjhkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViRWRpdENvbW1hbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVk
aXRDb21tYW5kUHJveHkuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTM4
LDI2ICszOSwyOCBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiAKIGNsYXNzIFdlYkVkaXRDb21tYW5k
UHJveHkgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpFZGl0Q29t
bWFuZFByb3h5PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJFZGl0Q29tbWFuZFByb3h5
PiBjcmVhdGUoV2ViVW5kb1N0ZXBJRCBjb21tYW5kSUQsIFdlYkNvcmU6OkVkaXRBY3Rpb24gZWRp
dEFjdGlvbiwgV2ViUGFnZVByb3h5KiBwYWdlKQorICAgIHN0YXRpYyBSZWY8V2ViRWRpdENvbW1h
bmRQcm94eT4gY3JlYXRlKFdlYlVuZG9TdGVwSUQgY29tbWFuZElELCBXZWJDb3JlOjpFZGl0QWN0
aW9uIGVkaXRBY3Rpb24sIGNvbnN0IFN0cmluZyYgY3VzdG9tVW5kb0xhYmVsLCBXZWJQYWdlUHJv
eHkmIHBhZ2UpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJFZGl0Q29t
bWFuZFByb3h5KGNvbW1hbmRJRCwgZWRpdEFjdGlvbiwgcGFnZSkpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBXZWJFZGl0Q29tbWFuZFByb3h5KGNvbW1hbmRJRCwgZWRpdEFjdGlvbiwg
Y3VzdG9tVW5kb0xhYmVsLCBwYWdlKSk7CiAgICAgfQogICAgIH5XZWJFZGl0Q29tbWFuZFByb3h5
KCk7CiAKICAgICBXZWJVbmRvU3RlcElEIGNvbW1hbmRJRCgpIGNvbnN0IHsgcmV0dXJuIG1fY29t
bWFuZElEOyB9CiAgICAgV2ViQ29yZTo6RWRpdEFjdGlvbiBlZGl0QWN0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9lZGl0QWN0aW9uOyB9CiAKLSAgICB2b2lkIGludmFsaWRhdGUoKSB7IG1fcGFnZSA9
IDA7IH0KKyAgICBTdHJpbmcgbmFtZUZvclVuZG9SZWRvKCkgY29uc3Q7CisgICAgdm9pZCBpbnZh
bGlkYXRlKCkgeyBtX3BhZ2UuY2xlYXIoKTsgfQogCiAgICAgdm9pZCB1bmFwcGx5KCk7CiAgICAg
dm9pZCByZWFwcGx5KCk7CiAKIHByaXZhdGU6Ci0gICAgV2ViRWRpdENvbW1hbmRQcm94eShXZWJV
bmRvU3RlcElEIGNvbW1hbmRJRCwgV2ViQ29yZTo6RWRpdEFjdGlvbiwgV2ViUGFnZVByb3h5Kik7
CisgICAgV2ViRWRpdENvbW1hbmRQcm94eShXZWJVbmRvU3RlcElEIGNvbW1hbmRJRCwgV2ViQ29y
ZTo6RWRpdEFjdGlvbiwgY29uc3QgU3RyaW5nJiBjdXN0b21VbmRvTGFiZWwsIFdlYlBhZ2VQcm94
eSYpOwogCiAgICAgV2ViVW5kb1N0ZXBJRCBtX2NvbW1hbmRJRDsKICAgICBXZWJDb3JlOjpFZGl0
QWN0aW9uIG1fZWRpdEFjdGlvbjsKLSAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKKyAgICBTdHJp
bmcgbV9jdXN0b21VbmRvTGFiZWw7CisgICAgV2Vha1B0cjxXZWJQYWdlUHJveHk+IG1fcGFnZTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKaW5kZXggYjkxZmFhZjc0NDkzYmM5ODU5ZjRjMWQ2YjQzN2YxNTBlNTMyOGY1
YS4uMTVlYzlmYjFlOTFjNDM3ZGQyZWVjZDJhZTk5ZWY2YTM1OWI2YjdjMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01NDE5LDkgKzU0MTksOSBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6Y29tcG9zaXRpb25XYXNDYW5jZWxlZCgpCiAKIC8vIFVuZG8gbWFuYWdl
bWVudAogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVnaXN0ZXJFZGl0Q29tbWFuZEZvclVuZG8oV2Vi
VW5kb1N0ZXBJRCBjb21tYW5kSUQsIHVpbnQzMl90IGVkaXRBY3Rpb24pCit2b2lkIFdlYlBhZ2VQ
cm94eTo6cmVnaXN0ZXJFZGl0Q29tbWFuZEZvclVuZG8oV2ViVW5kb1N0ZXBJRCBjb21tYW5kSUQs
IHVpbnQzMl90IGVkaXRBY3Rpb24sIGNvbnN0IFN0cmluZyYgY3VzdG9tVW5kb0xhYmVsKQogewot
ICAgIHJlZ2lzdGVyRWRpdENvbW1hbmQoV2ViRWRpdENvbW1hbmRQcm94eTo6Y3JlYXRlKGNvbW1h
bmRJRCwgc3RhdGljX2Nhc3Q8RWRpdEFjdGlvbj4oZWRpdEFjdGlvbiksIHRoaXMpLCBVbmRvT3JS
ZWRvOjpVbmRvKTsKKyAgICByZWdpc3RlckVkaXRDb21tYW5kKFdlYkVkaXRDb21tYW5kUHJveHk6
OmNyZWF0ZShjb21tYW5kSUQsIHN0YXRpY19jYXN0PEVkaXRBY3Rpb24+KGVkaXRBY3Rpb24pLCBj
dXN0b21VbmRvTGFiZWwsICp0aGlzKSwgVW5kb09yUmVkbzo6VW5kbyk7CiB9CiAgICAgCiB2b2lk
IFdlYlBhZ2VQcm94eTo6cmVnaXN0ZXJJbnNlcnRpb25VbmRvR3JvdXBpbmcoKQpAQCAtNjYzMiwx
MCArNjYzMiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXNldFN0YXRlKFJlc2V0U3RhdGVSZWFz
b24gcmVzZXRTdGF0ZVJlYXNvbikKICAgICBtX2NhbGxiYWNrcy5pbnZhbGlkYXRlKGVycm9yKTsK
ICAgICBtX2xvYWREZXBlbmRlbnRTdHJpbmdDYWxsYmFja0lEcy5jbGVhcigpOwogCi0gICAgYXV0
byBlZGl0Q29tbWFuZFZlY3RvciA9IGNvcHlUb1ZlY3RvcihtX2VkaXRDb21tYW5kU2V0KTsKLSAg
ICBtX2VkaXRDb21tYW5kU2V0LmNsZWFyKCk7Ci0KLSAgICBmb3IgKGF1dG8mIGVkaXRDb21tYW5k
IDogZWRpdENvbW1hbmRWZWN0b3IpCisgICAgZm9yIChhdXRvJiBlZGl0Q29tbWFuZCA6IHN0ZDo6
ZXhjaGFuZ2UobV9lZGl0Q29tbWFuZFNldCwgeyB9KSkKICAgICAgICAgZWRpdENvbW1hbmQtPmlu
dmFsaWRhdGUoKTsKIAogICAgIG1fYWN0aXZlUG9wdXBNZW51ID0gbnVsbHB0cjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMjI4NmIzNWM5ZmI5Nzk0YTllM2Q3ZDQz
N2I0OWMzODg2MmRmZmZlZC4uNTJmMGY2MTY4Y2Y2OTEzMDM2ZWIyMWM2ODkxYzc1YjA4MWRkZjVi
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE2NDEsNyArMTY0
MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBiYWNrRm9yd2FyZENsZWFyKCk7CiAKICAgICAvLyBV
bmRvIG1hbmFnZW1lbnQKLSAgICB2b2lkIHJlZ2lzdGVyRWRpdENvbW1hbmRGb3JVbmRvKFdlYlVu
ZG9TdGVwSUQgY29tbWFuZElELCB1aW50MzJfdCBlZGl0QWN0aW9uKTsKKyAgICB2b2lkIHJlZ2lz
dGVyRWRpdENvbW1hbmRGb3JVbmRvKFdlYlVuZG9TdGVwSUQgY29tbWFuZElELCB1aW50MzJfdCBl
ZGl0QWN0aW9uLCBjb25zdCBTdHJpbmcmIGN1c3RvbVVuZG9MYWJlbCk7CiAgICAgdm9pZCByZWdp
c3Rlckluc2VydGlvblVuZG9Hcm91cGluZygpOwogICAgIHZvaWQgY2xlYXJBbGxFZGl0Q29tbWFu
ZHMoKTsKICAgICB2b2lkIGNhblVuZG9SZWRvKFVuZG9PclJlZG8sIGJvb2wmIHJlc3VsdCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5k
ZXggMmQyOGVlMThiNjllODI5NWMxZjdhODEzZjljYjQ3MWJkZGE0OGZmMi4uMjIwZWFkZTM0NGJl
NGViNDZiNDQxNjVhYmIwNTA0NTE0NTE5MTM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjMzLDcgKzIzMyw3IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgV2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHN0
cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGl0ZW1JRCwgYm9vbCBpblBh
Z2VDYWNoZSkKIAogICAgICMgVW5kby9SZWRvIG1lc3NhZ2VzCi0gICAgUmVnaXN0ZXJFZGl0Q29t
bWFuZEZvclVuZG8odWludDY0X3QgY29tbWFuZElELCB1aW50MzJfdCBlZGl0QWN0aW9uKQorICAg
IFJlZ2lzdGVyRWRpdENvbW1hbmRGb3JVbmRvKHVpbnQ2NF90IGNvbW1hbmRJRCwgdWludDMyX3Qg
ZWRpdEFjdGlvbiwgU3RyaW5nIGN1c3RvbVVuZG9MYWJlbCkKICAgICBDbGVhckFsbEVkaXRDb21t
YW5kcygpCiAgICAgUmVnaXN0ZXJJbnNlcnRpb25VbmRvR3JvdXBpbmcoKQogICAgIENhblVuZG9S
ZWRvKGVudW06Ym9vbCBXZWJLaXQ6OlVuZG9PclJlZG8gdW5kb09yUmVkbykgLT4gKGJvb2wgcmVz
dWx0KSBMZWdhY3lTeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MubW0KaW5kZXggYjYxMDcyNGY3ZGY4ZWYwYzMyMWEwYzY0MjQ5NWJhYzA2ZmE2
ZTM0My4uMTY0N2ZjNWZlNTcyN2U2ZmQzNTQyMmNmMDBiZThkYTlkZGI4Y2E5OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtMjY3
LDcgKzI2Nyw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVy
dGllcyhjb25zdCBWaWV3cG9ydEF0dHJpYnV0ZXMmKQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpy
ZWdpc3RlckVkaXRDb21tYW5kKFJlZjxXZWJFZGl0Q29tbWFuZFByb3h5PiYmIGNvbW1hbmQsIFVu
ZG9PclJlZG8gdW5kb09yUmVkbykKIHsKLSAgICBhdXRvIGFjdGlvbk5hbWUgPSBXZWJDb3JlOjpu
YW1lRm9yVW5kb1JlZG8oY29tbWFuZC0+ZWRpdEFjdGlvbigpKTsKKyAgICBhdXRvIGFjdGlvbk5h
bWUgPSBjb21tYW5kLT5uYW1lRm9yVW5kb1JlZG8oKTsKICAgICBhdXRvIGNvbW1hbmRPYmpDID0g
YWRvcHROUyhbW1dLRWRpdENvbW1hbmQgYWxsb2NdIGluaXRXaXRoV2ViRWRpdENvbW1hbmRQcm94
eTpXVEZNb3ZlKGNvbW1hbmQpXSk7CiAgICAgCiAgICAgTlNVbmRvTWFuYWdlciAqdW5kb01hbmFn
ZXIgPSBbbV9jb250ZW50VmlldyB1bmRvTWFuYWdlcl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmlu
ZGV4IDAwOTRlMzU2ZDUxNGI4NzdkYjFmMzBiNmE2OGVkMmQ3M2M5ZjEzNTcuLjhiOWZhYjUwOWE5
OTU0YjAxNTI2NWI0YzViNmIwZDkyMWMyOWM3NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBA
IC0zMDIsMjIgKzMwMiwyMyBAQCBTdHJpbmcgV2ViRWRpdG9yQ2xpZW50OjpyZXBsYWNlbWVudFVS
TEZvclJlc291cmNlKFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYgcgogICAgIHJldHVybiBt
X3BhZ2UtPmluamVjdGVkQnVuZGxlRWRpdG9yQ2xpZW50KCkucmVwbGFjZW1lbnRVUkxGb3JSZXNv
dXJjZSgqbV9wYWdlLCBXVEZNb3ZlKHJlc291cmNlRGF0YSksIG1pbWVUeXBlKTsKIH0KIAotdm9p
ZCBXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyVW5kb1N0ZXAoVW5kb1N0ZXAmIHN0ZXApCit2b2lk
IFdlYkVkaXRvckNsaWVudDo6cmVnaXN0ZXJVbmRvU3RlcChSZWY8VW5kb1N0ZXA+JiYgc3RlcCkK
IHsKICAgICAvLyBGSVhNRTogQWRkIGFzc2VydGlvbiB0aGF0IHRoZSBjb21tYW5kIGJlaW5nIHJl
YXBwbGllZCBpcyB0aGUgc2FtZSBjb21tYW5kIHRoYXQgaXMKICAgICAvLyBiZWluZyBwYXNzZWQg
dG8gdXMuCiAgICAgaWYgKG1fcGFnZS0+aXNJblJlZG8oKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgYXV0byB3ZWJTdGVwID0gV2ViVW5kb1N0ZXA6OmNyZWF0ZShzdGVwKTsKKyAgICBhdXRvIGVk
aXRBY3Rpb24gPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oc3RlcC0+ZWRpdGluZ0FjdGlvbigpKTsK
KyAgICBhdXRvIGN1c3RvbU5hbWUgPSBzdGVwLT5jdXN0b21VbmRvTGFiZWwoKTsKKyAgICBhdXRv
IHdlYlN0ZXAgPSBXZWJVbmRvU3RlcDo6Y3JlYXRlKFdURk1vdmUoc3RlcCkpOwogICAgIGF1dG8g
c3RlcElEID0gd2ViU3RlcC0+c3RlcElEKCk7Ci0gICAgYXV0byBlZGl0QWN0aW9uID0gc3RhdGlj
X2Nhc3Q8dWludDMyX3Q+KHdlYlN0ZXAtPnN0ZXAoKS5lZGl0aW5nQWN0aW9uKCkpOwogCiAgICAg
bV9wYWdlLT5hZGRXZWJVbmRvU3RlcChzdGVwSUQsIFdURk1vdmUod2ViU3RlcCkpOwotICAgIG1f
cGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZWdpc3RlckVkaXRDb21tYW5kRm9y
VW5kbyhzdGVwSUQsIGVkaXRBY3Rpb24pLCBtX3BhZ2UtPnBhZ2VJRCgpLCBJUEM6OlNlbmRPcHRp
b246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CisgICAgbV9w
YWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlZ2lzdGVyRWRpdENvbW1hbmRGb3JV
bmRvKHN0ZXBJRCwgZWRpdEFjdGlvbiwgY3VzdG9tTmFtZSksIG1fcGFnZS0+cGFnZUlEKCksIElQ
Qzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5
KTsKIH0KIAotdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyUmVkb1N0ZXAoVW5kb1N0ZXAm
KQordm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyUmVkb1N0ZXAoUmVmPFVuZG9TdGVwPiYm
KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggNDcyMGI3MTE3NTQxMmE1OWEyMjliYzQ3
MTA2ZGFiMmRhM2M4NzU2ZS4uZjQxYjA4NjMyMWMxZjQyODI1YzVhZDlhZTJkOTZhOWUyZDcwNWI2
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtODUsOCArODUsOCBAQCBwcml2YXRlOgogICAgIHZv
aWQgZ2V0Q2xpZW50UGFzdGVib2FyZERhdGFGb3JSYW5nZShXZWJDb3JlOjpSYW5nZSosIFZlY3Rv
cjxTdHJpbmc+JiBwYXN0ZWJvYXJkVHlwZXMsIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6U2hhcmVk
QnVmZmVyPj4mIHBhc3RlYm9hcmREYXRhKSBmaW5hbDsKICAgICBTdHJpbmcgcmVwbGFjZW1lbnRV
UkxGb3JSZXNvdXJjZShSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmIHJlc291cmNlRGF0YSwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgZmluYWw7CiAgICAgCi0gICAgdm9pZCByZWdpc3RlclVu
ZG9TdGVwKFdlYkNvcmU6OlVuZG9TdGVwJikgZmluYWw7Ci0gICAgdm9pZCByZWdpc3RlclJlZG9T
dGVwKFdlYkNvcmU6OlVuZG9TdGVwJikgZmluYWw7CisgICAgdm9pZCByZWdpc3RlclVuZG9TdGVw
KFJlZjxXZWJDb3JlOjpVbmRvU3RlcD4mJikgZmluYWw7CisgICAgdm9pZCByZWdpc3RlclJlZG9T
dGVwKFJlZjxXZWJDb3JlOjpVbmRvU3RlcD4mJikgZmluYWw7CiAgICAgdm9pZCBjbGVhclVuZG9S
ZWRvT3BlcmF0aW9ucygpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5Db3B5Q3V0KFdlYkNvcmU6OkZy
YW1lKiwgYm9vbCBkZWZhdWx0VmFsdWUpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBkZDk3ZDZlYjA3YWUyNTJhNmVjN2Vj
MTVmY2U3N2EzNGYyMTU2NDNjLi41OTY4YTFiZjU5MGMwZjAyZjEyZGViMTEyY2E1YWI4YmJlMmRh
Nzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApA
QCAtMzc5MSwxMiArMzc5MSwxNCBAQCBXZWJVbmRvU3RlcCogV2ViUGFnZTo6d2ViVW5kb1N0ZXAo
V2ViVW5kb1N0ZXBJRCBzdGVwSUQpCiAKIHZvaWQgV2ViUGFnZTo6YWRkV2ViVW5kb1N0ZXAoV2Vi
VW5kb1N0ZXBJRCBzdGVwSUQsIFJlZjxXZWJVbmRvU3RlcD4mJiBlbnRyeSkKIHsKLSAgICBtX3Vu
ZG9TdGVwTWFwLnNldChzdGVwSUQsIFdURk1vdmUoZW50cnkpKTsKKyAgICBhdXRvIGFkZFJlc3Vs
dCA9IG1fdW5kb1N0ZXBNYXAuc2V0KHN0ZXBJRCwgV1RGTW92ZShlbnRyeSkpOworICAgIEFTU0VS
VF9VTlVTRUQoYWRkUmVzdWx0LCBhZGRSZXN1bHQuaXNOZXdFbnRyeSk7CiB9CiAKIHZvaWQgV2Vi
UGFnZTo6cmVtb3ZlV2ViRWRpdENvbW1hbmQoV2ViVW5kb1N0ZXBJRCBzdGVwSUQpCiB7Ci0gICAg
bV91bmRvU3RlcE1hcC5yZW1vdmUoc3RlcElEKTsKKyAgICBpZiAoYXV0byB1bmRvU3RlcCA9IG1f
dW5kb1N0ZXBNYXAudGFrZShzdGVwSUQpKQorICAgICAgICB1bmRvU3RlcC0+aW52YWxpZGF0ZSgp
OwogfQogCiBib29sIFdlYlBhZ2U6OmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVbmRvU3RlcC5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVW5kb1N0ZXAuaAppbmRleCAy
MTFmZDk5ZTVlNmM2OTZmYTdjMzk5ZjdmN2VkZDAzOGFiOGE4ZDhhLi40N2ZiZjVkYjYwNmMwZDEx
MjIwNzMzZWE4ZjcyOTFkMWU5ZmZjNDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJVbmRvU3RlcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlVuZG9TdGVwLmgKQEAgLTM5LDYgKzM5LDggQEAgcHVibGljOgogICAgIFdl
YkNvcmU6OlVuZG9TdGVwJiBzdGVwKCkgY29uc3QgeyByZXR1cm4gbV9zdGVwLmdldCgpOyB9CiAg
ICAgV2ViVW5kb1N0ZXBJRCBzdGVwSUQoKSBjb25zdCB7IHJldHVybiBtX3N0ZXBJRDsgfQogCisg
ICAgdm9pZCBpbnZhbGlkYXRlKCkgeyBtX3N0ZXAtPmludmFsaWRhdGUoKTsgfQorCiBwcml2YXRl
OgogICAgIFdlYlVuZG9TdGVwKFJlZjxXZWJDb3JlOjpVbmRvU3RlcD4mJiBzdGVwLCBXZWJVbmRv
U3RlcElEIHN0ZXBJRCkKICAgICAgICAgOiBtX3N0ZXAoV1RGTW92ZShzdGVwKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmgKaW5kZXggZjBmOTY4YjdlMmI2NmM4OTFkYzE0YjZjMWZhYWYwYjhiYmUxZDE5ZS4uYWYz
NWRiMjVhY2JiZDRhZjMyODI3ZmMyZGE5Y2UxMjg3ZTA1YjgwMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgK
QEAgLTExNCw4ICsxMTQsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgY2FuY2VsZWRDb21wb3NpdGlv
bigpIGZpbmFsOwogICAgIHZvaWQgZGlkVXBkYXRlQ29tcG9zaXRpb24oKSBmaW5hbCB7IH0KIAot
ICAgIHZvaWQgcmVnaXN0ZXJVbmRvU3RlcChXZWJDb3JlOjpVbmRvU3RlcCYpIGZpbmFsOwotICAg
IHZvaWQgcmVnaXN0ZXJSZWRvU3RlcChXZWJDb3JlOjpVbmRvU3RlcCYpIGZpbmFsOworICAgIHZv
aWQgcmVnaXN0ZXJVbmRvU3RlcChSZWY8V2ViQ29yZTo6VW5kb1N0ZXA+JiYpIGZpbmFsOworICAg
IHZvaWQgcmVnaXN0ZXJSZWRvU3RlcChSZWY8V2ViQ29yZTo6VW5kb1N0ZXA+JiYpIGZpbmFsOwog
ICAgIHZvaWQgY2xlYXJVbmRvUmVkb09wZXJhdGlvbnMoKSBmaW5hbDsKIAogICAgIGJvb2wgY2Fu
Q29weUN1dChXZWJDb3JlOjpGcmFtZSosIGJvb2wgZGVmYXVsdFZhbHVlKSBjb25zdCBmaW5hbDsK
QEAgLTE3Miw3ICsxNzIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgaGFuZGxlQWNjZXB0ZWRDYW5k
aWRhdGVXaXRoU29mdFNwYWNlcyhXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQpIGZpbmFsOwog
I2VuZGlmCiAKLSAgICB2b2lkIHJlZ2lzdGVyVW5kb09yUmVkb1N0ZXAoV2ViQ29yZTo6VW5kb1N0
ZXAmLCBib29sIGlzUmVkbyk7CisgICAgdm9pZCByZWdpc3RlclVuZG9PclJlZG9TdGVwKFJlZjxX
ZWJDb3JlOjpVbmRvU3RlcD4mJiwgYm9vbCBpc1JlZG8pOwogCiAgICAgV2ViVmlldyAqbV93ZWJW
aWV3OwogICAgIFJldGFpblB0cjxXZWJFZGl0b3JVbmRvVGFyZ2V0PiBtX3VuZG9UYXJnZXQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQubW0KaW5kZXggY2NjMzNmOTQwZmJjOWU2MzFmZGQ5OGQyZWExNmI5N2UxNTZi
ZDBiMy4uNjU5ZTdmODkyNjljYTdlM2EzMDQyMWJlZjQ1YTI3NjQ2ZjhiMDM4ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5tbQpAQCAtMTI1LDcgKzEyNSw3IEBAIEBpbnRlcmZhY2UgV2ViVW5kb1N0ZXAgOiBO
U09iamVjdAogICAgIFJlZlB0cjxVbmRvU3RlcD4gbV9zdGVwOyAgIAogfQogCi0rIChXZWJVbmRv
U3RlcCAqKXN0ZXBXaXRoVW5kb1N0ZXA6KFVuZG9TdGVwJilzdGVwOworKyAoV2ViVW5kb1N0ZXAg
KilzdGVwV2l0aFVuZG9TdGVwOihSZWY8VW5kb1N0ZXA+JiYpc3RlcDsKIC0gKFVuZG9TdGVwJilz
dGVwOwogCiBAZW5kCkBAIC0xNDEsMTIgKzE0MSwxMiBAQCArICh2b2lkKWluaXRpYWxpemUKICNl
bmRpZgogfQogCi0tIChpZClpbml0V2l0aFVuZG9TdGVwOihVbmRvU3RlcCYpc3RlcAorLSAoaWQp
aW5pdFdpdGhVbmRvU3RlcDooUmVmPFVuZG9TdGVwPiYmKXN0ZXAKIHsKICAgICBzZWxmID0gW3N1
cGVyIGluaXRdOwogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICBtX3N0
ZXAgPSAmc3RlcDsKKyAgICBtX3N0ZXAgPSBXVEZNb3ZlKHN0ZXApOwogICAgIHJldHVybiBzZWxm
OwogfQogCkBAIC0xNTgsOSArMTU4LDkgQEAgLSAodm9pZClkZWFsbG9jCiAgICAgW3N1cGVyIGRl
YWxsb2NdOwogfQogCi0rIChXZWJVbmRvU3RlcCAqKXN0ZXBXaXRoVW5kb1N0ZXA6KFVuZG9TdGVw
JilzdGVwCisrIChXZWJVbmRvU3RlcCAqKXN0ZXBXaXRoVW5kb1N0ZXA6KFJlZjxVbmRvU3RlcD4m
JilzdGVwCiB7Ci0gICAgcmV0dXJuIFtbW1dlYlVuZG9TdGVwIGFsbG9jXSBpbml0V2l0aFVuZG9T
dGVwOnN0ZXBdIGF1dG9yZWxlYXNlXTsKKyAgICByZXR1cm4gW1tbV2ViVW5kb1N0ZXAgYWxsb2Nd
IGluaXRXaXRoVW5kb1N0ZXA6V1RGTW92ZShzdGVwKV0gYXV0b3JlbGVhc2VdOwogfQogCiAtIChV
bmRvU3RlcCYpc3RlcApAQCAtNTg5LDcgKzU4OSw3IEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50Ojpz
aG91bGRJbnNlcnROb2RlKE5vZGUgKm5vZGUsIFJhbmdlKiByZXBsYWNpbmdSYW5nZSwgRWRpdG9y
CiAgICAgcmV0dXJuIFtbbV93ZWJWaWV3IF9lZGl0aW5nRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZp
ZXc6bV93ZWJWaWV3IHNob3VsZEluc2VydE5vZGU6a2l0KG5vZGUpIHJlcGxhY2luZ0RPTVJhbmdl
OmtpdChyZXBsYWNpbmdSYW5nZSkgZ2l2ZW5BY3Rpb246KFdlYlZpZXdJbnNlcnRBY3Rpb24pZ2l2
ZW5BY3Rpb25dOwogfQogCi12b2lkIFdlYkVkaXRvckNsaWVudDo6cmVnaXN0ZXJVbmRvT3JSZWRv
U3RlcChVbmRvU3RlcCYgc3RlcCwgYm9vbCBpc1JlZG8pCit2b2lkIFdlYkVkaXRvckNsaWVudDo6
cmVnaXN0ZXJVbmRvT3JSZWRvU3RlcChSZWY8VW5kb1N0ZXA+JiYgc3RlcCwgYm9vbCBpc1JlZG8p
CiB7CiAgICAgTlNVbmRvTWFuYWdlciAqdW5kb01hbmFnZXIgPSBbbV93ZWJWaWV3IHVuZG9NYW5h
Z2VyXTsKIApAQCAtNjAxLDEwICs2MDEsOSBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVnaXN0
ZXJVbmRvT3JSZWRvU3RlcChVbmRvU3RlcCYgc3RlcCwgYm9vbCBpc1JlZG8pCiAgICAgICAgIHJl
dHVybjsKICNlbmRpZgogCi0gICAgTlNTdHJpbmcgKmFjdGlvbk5hbWUgPSBXZWJDb3JlOjpuYW1l
Rm9yVW5kb1JlZG8oc3RlcC5lZGl0aW5nQWN0aW9uKCkpOwotICAgIFdlYlVuZG9TdGVwICp3ZWJF
bnRyeSA9IFtXZWJVbmRvU3RlcCBzdGVwV2l0aFVuZG9TdGVwOnN0ZXBdOwotICAgIFt1bmRvTWFu
YWdlciByZWdpc3RlclVuZG9XaXRoVGFyZ2V0Om1fdW5kb1RhcmdldC5nZXQoKSBzZWxlY3Rvcjoo
aXNSZWRvID8gQHNlbGVjdG9yKHJlZG9FZGl0aW5nOikgOiBAc2VsZWN0b3IodW5kb0VkaXRpbmc6
KSkgb2JqZWN0OndlYkVudHJ5XTsKLSAgICBpZiAoYWN0aW9uTmFtZSkKKyAgICBTdHJpbmcgYWN0
aW9uTmFtZSA9IHN0ZXAtPmN1c3RvbVVuZG9MYWJlbCgpLmlzRW1wdHkoKSA/IFdlYkNvcmU6Om5h
bWVGb3JVbmRvUmVkbyhzdGVwLT5lZGl0aW5nQWN0aW9uKCkpIDogc3RlcC0+Y3VzdG9tVW5kb0xh
YmVsKCk7CisgICAgW3VuZG9NYW5hZ2VyIHJlZ2lzdGVyVW5kb1dpdGhUYXJnZXQ6bV91bmRvVGFy
Z2V0LmdldCgpIHNlbGVjdG9yOihpc1JlZG8gPyBAc2VsZWN0b3IocmVkb0VkaXRpbmc6KSA6IEBz
ZWxlY3Rvcih1bmRvRWRpdGluZzopKSBvYmplY3Q6W1dlYlVuZG9TdGVwIHN0ZXBXaXRoVW5kb1N0
ZXA6V1RGTW92ZShzdGVwKV1dOworICAgIGlmICghYWN0aW9uTmFtZS5pc0VtcHR5KCkpCiAgICAg
ICAgIFt1bmRvTWFuYWdlciBzZXRBY3Rpb25OYW1lOmFjdGlvbk5hbWVdOwogICAgIG1faGF2ZVVu
ZG9SZWRvT3BlcmF0aW9ucyA9IFlFUzsKIH0KQEAgLTYyOSwxNCArNjI4LDE0IEBAIHZvaWQgV2Vi
RWRpdG9yQ2xpZW50Ojp1cGRhdGVFZGl0b3JTdGF0ZUFmdGVyTGF5b3V0SWZFZGl0YWJpbGl0eUNo
YW5nZWQoKQogICAgICAgICBbbV93ZWJWaWV3IHVwZGF0ZVRvdWNoQmFyXTsKIH0KIAotdm9pZCBX
ZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyVW5kb1N0ZXAoVW5kb1N0ZXAmIGNtZCkKK3ZvaWQgV2Vi
RWRpdG9yQ2xpZW50OjpyZWdpc3RlclVuZG9TdGVwKFJlZjxVbmRvU3RlcD4mJiBjb21tYW5kKQog
ewotICAgIHJlZ2lzdGVyVW5kb09yUmVkb1N0ZXAoY21kLCBmYWxzZSk7CisgICAgcmVnaXN0ZXJV
bmRvT3JSZWRvU3RlcChXVEZNb3ZlKGNvbW1hbmQpLCBmYWxzZSk7CiB9CiAKLXZvaWQgV2ViRWRp
dG9yQ2xpZW50OjpyZWdpc3RlclJlZG9TdGVwKFVuZG9TdGVwJiBjbWQpCit2b2lkIFdlYkVkaXRv
ckNsaWVudDo6cmVnaXN0ZXJSZWRvU3RlcChSZWY8VW5kb1N0ZXA+JiYgY29tbWFuZCkKIHsKLSAg
ICByZWdpc3RlclVuZG9PclJlZG9TdGVwKGNtZCwgdHJ1ZSk7CisgICAgcmVnaXN0ZXJVbmRvT3JS
ZWRvU3RlcChXVEZNb3ZlKGNvbW1hbmQpLCB0cnVlKTsKIH0KIAogdm9pZCBXZWJFZGl0b3JDbGll
bnQ6OmNsZWFyVW5kb1JlZG9PcGVyYXRpb25zKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlOTQ1MGVhMDkzZTI2ZjIxYWQ3NzE3ZWYyNjRmOGY0
MTg1NDFjMDk5Li42Mjk2ZmVmZGUyYjlhY2ZiYTNhN2UxYmU0ODhhYzNjMDgwOWY1MzkwIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzUgQEAKKzIwMTktMDEtMTkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CisKKyAgICAgICAgW0NvY29hXSBBbGxvdyB0aGUgcGFnZSB0byBhZGQgdG8gdGhlIHBsYXRmb3Jt
IHVuZG8gc3RhY2sgdmlhIFVuZG9NYW5hZ2VyLmFkZEl0ZW0oKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMTExCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS80NDgwNzA0OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgVUlTY3JpcHRDb250cm9sbGVyIGhlbHBlcnMgdG8gZ3JhYiB0aGUgcGxhdGZv
cm0gdW5kbyBhbmQgcmVkbyBhY3Rpb24gbGFiZWxzLiBDdXJyZW50bHkgb25seSBpbXBsZW1lbnRl
ZCBmb3IKKyAgICAgICAgQ29jb2EgcGxhdGZvcm1zIGluIFdlYktpdDIuIFNlZSBvdGhlciBDaGFu
Z2VMb2dzIGZvciBtb3JlIGRldGFpbC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2lvcy9V
SVNjcmlwdENvbnRyb2xsZXJJT1MubW06CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxl
cjo6dW5kb0FjdGlvbk5hbWUgY29uc3QpOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xs
ZXI6OnJlZG9BY3Rpb25OYW1lIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9s
bGVyOjpwbGF0Zm9ybVVuZG9NYW5hZ2VyIGNvbnN0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENv
bnRyb2xsZXI6OnVuZG9BY3Rpb25OYW1lIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRD
b250cm9sbGVyOjpyZWRvQWN0aW9uTmFtZSBjb25zdCk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0
Q29udHJvbGxlcjo6cGxhdGZvcm1VbmRvTWFuYWdlciBjb25zdCk6CisgICAgICAgICogVGVzdFJ1
bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlk
bDoKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnVuZG9BY3Rp
b25OYW1lIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpyZWRvQWN0
aW9uTmFtZSBjb25zdCk6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRl
eHQvVUlTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9VSVNj
cmlwdENvbnRyb2xsZXJDb2NvYS5tbToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVy
Ojp1bmRvQWN0aW9uTmFtZSBjb25zdCk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxl
cjo6cmVkb0FjdGlvbk5hbWUgY29uc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvaW9z
L1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9s
bGVyOjpwbGF0Zm9ybVVuZG9NYW5hZ2VyIGNvbnN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXVFI6OlVJU2NyaXB0
Q29udHJvbGxlcjo6cGxhdGZvcm1VbmRvTWFuYWdlciBjb25zdCk6CisKIDIwMTktMDEtMTggIFpo
aWZlaSBGQU5HICA8emhpZmVpX2ZhbmdAYXBwbGUuY29tPgogCiAgICAgICAgIERpc2FibGUgdGhl
IHJ1bi1qc2Mtc3RyZXNzLXRlc3QgcmVtb3RlIGhvc3Qga2V5IGNoZWNrIFtzZWNvbmQgcm91bmRd
LgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxl
cklPUy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1Mu
bW0KaW5kZXggOGExMTI1ZjRlZjkxOTg0NTI2NjllMDQxOWM1ODlhODkwMmU4YTY3MC4uNzdlMzI2
NmJkOWQ4NDNmMzI1Nzc1OTEzNTA4ZGJmYTk1ZDU1OGI0NSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCkBAIC00NTAsNiArNDUwLDIx
IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXRLZXlib2FyZElucHV0TW9kZUlkZW50aWZp
ZXIoSlNTdHJpbmdSZWYpCiB7CiB9CiAKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBVSVNjcmlw
dENvbnRyb2xsZXI6OnVuZG9BY3Rpb25OYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IFVJU2NyaXB0Q29udHJvbGxlcjo6cmVk
b0FjdGlvbk5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBudWxscHRyOworfQorCitOU1VuZG9N
YW5hZ2VyICpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtVW5kb01hbmFnZXIoKSBjb25zdAor
eworICAgIHJldHVybiBuaWw7Cit9CisKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1J
TFkpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9s
bGVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1h
Yy5tbQppbmRleCBjNDQ1MTQ1ZjMzYmVmMGNjMTk0OWUzZDVhYWUwZjUzM2JlZTE0MmQ3Li5iODA2
ODQ2MTM3YWEyMWY5YzZmZTYzZWEzNWJhZmJmYzIxMzMyOWFmIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KQEAgLTIxNSw2ICsyMTUs
MjEgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnRvZ2dsZUNhcHNMb2NrKEpTVmFsdWVSZWYg
Y2FsbGJhY2spCiAgICAgZG9Bc3luY1Rhc2soY2FsbGJhY2spOwogfQogCitKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gVUlTY3JpcHRDb250cm9sbGVyOjp1bmRvQWN0aW9uTmFtZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBVSVNj
cmlwdENvbnRyb2xsZXI6OnJlZG9BY3Rpb25OYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworTlNVbmRvTWFuYWdlciAqVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVVu
ZG9NYW5hZ2VyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbmlsOworfQorCiB9CiAKICNlbmRpZiAv
LyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2Ny
aXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsIGIvVG9vbHMvVGVzdFJ1
bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlk
bAppbmRleCA1NDI0YmE4YThjZmJlNGFkODE0YzBkYWJlNjExNzMzN2VlZGY5NjdjLi5jOWE0YmJm
MWM1ZWIxYTVmMTFkZDI4MDIxNGMzY2FkOWUwYTUwNjRlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIu
aWRsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdz
L1VJU2NyaXB0Q29udHJvbGxlci5pZGwKQEAgLTI5MCw4ICsyOTAsMTEgQEAgaW50ZXJmYWNlIFVJ
U2NyaXB0Q29udHJvbGxlciB7CiAgICAgdm9pZCBtYWtlV2luZG93Q29udGVudFZpZXdGaXJzdFJl
c3BvbmRlcigpOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzV2luZG93Q29udGVu
dFZpZXdGaXJzdFJlc3BvbmRlcjsKIAorICAgIG9iamVjdCBhdHRhY2htZW50SW5mbyhET01TdHJp
bmcgYXR0YWNobWVudElkZW50aWZpZXIpOworCisgICAgLy8gRWRpdGluZwogICAgIHZvaWQgZHJh
d1NxdWFyZUluRWRpdGFibGVJbWFnZSgpOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIG51
bWJlck9mU3Ryb2tlc0luRWRpdGFibGVJbWFnZTsKLQotICAgIG9iamVjdCBhdHRhY2htZW50SW5m
byhET01TdHJpbmcgYXR0YWNobWVudElkZW50aWZpZXIpOworICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgdW5kb0FjdGlvbk5hbWU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyByZWRvQWN0aW9uTmFtZTsKIH07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvVGVzdFJ1
bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBh
NWJhYTA2Y2Q1MzMyMDA1OTlmM2FmNTY4OTNlMzc1ZjZlMDIzM2MxLi5kMTYzYWI4N2RkYjllMjE4
NjljYTY3MDI2MzA3ODUwZTUxYTcxYzlhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHAKQEAg
LTI0NSw2ICsyNDUsMTYgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnRvZ2dsZUNhcHNMb2Nr
KEpTVmFsdWVSZWYpCiB7CiB9CiAKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBVSVNjcmlwdENv
bnRyb2xsZXI6OnVuZG9BY3Rpb25OYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IFVJU2NyaXB0Q29udHJvbGxlcjo6cmVkb0Fj
dGlvbk5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBudWxscHRyOworfQorCiAjZW5kaWYgLy8g
IVBMQVRGT1JNKENPQ09BKQogCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxheUJhY2tFdmVu
dFN0cmVhbShKU1N0cmluZ1JlZiBzdHJlYW0sIEpTVmFsdWVSZWYgY2FsbGJhY2spCkBAIC01Njks
NiArNTc5LDE2IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpvdmVycmlkZVByZWZlcmVuY2Uo
SlNTdHJpbmdSZWYsIEpTU3RyaW5nUmVmKQogewogfQogCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gVUlTY3JpcHRDb250cm9sbGVyOjp1bmRvQWN0aW9uTmFtZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBVSVNjcmlwdENvbnRy
b2xsZXI6OnJlZG9BY3Rpb25OYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KwogI2VuZGlmIC8vICFQTEFURk9STShDT0NPQSkKIAogI2lmICFQTEFURk9STShNQUMpCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENv
bnRyb2xsZXIuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2Ny
aXB0Q29udHJvbGxlci5oCmluZGV4IGQzZmIxY2JiMDkyNTBhODI3OWRmY2IyOGJiZjhjOTAyN2Y3
MDIxY2IuLmZmN2E4ZTk1NDE2OTBkMjZlMDM2ZDgzNWQ0ODgzNzVhYjI3MjBlOGYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJv
bGxlci5oCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2Ny
aXB0Q29udHJvbGxlci5oCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSA8d3RmL09wdGlvbmFs
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCitPQkpDX0NMQVNTIE5TVW5kb01hbmFnZXI7CisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZsb2F0UmVjdDsKIH0KQEAgLTIwNiw2ICsyMDgs
OSBAQCBwdWJsaWM6CiAgICAgdm9pZCBkcmF3U3F1YXJlSW5FZGl0YWJsZUltYWdlKCk7CiAgICAg
bG9uZyBudW1iZXJPZlN0cm9rZXNJbkVkaXRhYmxlSW1hZ2UoKTsKIAorICAgIEpTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiB1bmRvQWN0aW9uTmFtZSgpIGNvbnN0OworICAgIEpTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiByZWRvQWN0aW9uTmFtZSgpIGNvbnN0OworCiAgICAgSlNPYmplY3RSZWYgYXR0
YWNobWVudEluZm8oSlNTdHJpbmdSZWYgYXR0YWNobWVudElkZW50aWZpZXIpOwogCiBwcml2YXRl
OgpAQCAtMjI1LDYgKzIzMCwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1DbGVhckFs
bENhbGxiYWNrcygpOwogICAgIHZvaWQgcGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKEpTU3Ry
aW5nUmVmLCBKU1ZhbHVlUmVmKTsKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIE5TVW5kb01h
bmFnZXIgKnBsYXRmb3JtVW5kb01hbmFnZXIoKSBjb25zdDsKKyNlbmRpZgorCiAgICAgSlNDbGFz
c1JlZiB3cmFwcGVyQ2xhc3MoKSBmaW5hbDsKIAogICAgIEpTT2JqZWN0UmVmIG9iamVjdEZyb21S
ZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0KaW5kZXggYTdiOThlNDA0Yjgz
MTAyMjk0OTM3ZjY0NmY2NGVjZjg5MjU3MTJmNi4uNzNhNmM5OGFlNmZlY2YxYTM3NWJkYWNlOWFj
OGJkYjAzZWZiMzY0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9VSVNjcmlw
dENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1VJU2NyaXB0
Q29udHJvbGxlckNvY29hLm1tCkBAIC0xOTIsNSArMTkyLDE1IEBAIEpTT2JqZWN0UmVmIFVJU2Ny
aXB0Q29udHJvbGxlcjo6Y2FsZW5kYXJUeXBlKCkgY29uc3QKICAgICByZXR1cm4gbnVsbHB0cjsK
ICNlbmRpZgogfQotICAgIAorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gVUlTY3JpcHRDb250
cm9sbGVyOjp1bmRvQWN0aW9uTmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3Jl
YXRlV2l0aENGU3RyaW5nKChfX2JyaWRnZSBDRlN0cmluZ1JlZilwbGF0Zm9ybVVuZG9NYW5hZ2Vy
KCkudW5kb0FjdGlvbk5hbWUpOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gVUlTY3Jp
cHRDb250cm9sbGVyOjpyZWRvQWN0aW9uTmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEpTU3Ry
aW5nQ3JlYXRlV2l0aENGU3RyaW5nKChfX2JyaWRnZSBDRlN0cmluZ1JlZilwbGF0Zm9ybVVuZG9N
YW5hZ2VyKCkucmVkb0FjdGlvbk5hbWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5t
bSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQpp
bmRleCA0YWE5NDI5MDU3ODc0OGNmODFiYzUzNTUwNzZkZmEyN2E4YTgxYzVkLi5lNjU0MDM5NDU0
ZWEwMTk3OGM4Y2U0NTA1NTk2NzgxYmJhODc1ZmJlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCkBAIC05NzEsNiArOTcxLDEx
IEBAIEpTT2JqZWN0UmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6YXR0YWNobWVudEluZm8oSlNTdHJp
bmdSZWYganNBdHRhY2htZW50SWRlbnRpZmllCiAgICAgcmV0dXJuIEpTVmFsdWVUb09iamVjdCht
X2NvbnRleHQtPmpzQ29udGV4dCgpLCBbSlNWYWx1ZSB2YWx1ZVdpdGhPYmplY3Q6YXR0YWNobWVu
dEluZm9EaWN0aW9uYXJ5IGluQ29udGV4dDpbSlNDb250ZXh0IGNvbnRleHRXaXRoSlNHbG9iYWxD
b250ZXh0UmVmOm1fY29udGV4dC0+anNDb250ZXh0KCldXS5KU1ZhbHVlUmVmLCBudWxscHRyKTsK
IH0KIAorTlNVbmRvTWFuYWdlciAqVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVVuZG9NYW5h
Z2VyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gWyhVSVZpZXcgKilbVGVzdENvbnRyb2xsZXI6OnNp
bmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpIHZhbHVlRm9yS2V5UGF0aDpA
Il9jdXJyZW50Q29udGVudFZpZXciXSB1bmRvTWFuYWdlcl07Cit9CisKIH0KIAogI2VuZGlmIC8v
IFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21h
Yy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KaW5kZXggMjE4ODgxMTUyYTg5NWNkZGI2YTdmNDA3
MTZmMTkwMGE1ZDc3YWMzYi4uNzU3ZmEwNmJkNzhmMTgzM2YxM2IzOGNiYzliMDMwZjkzNDE5NzYz
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9s
bGVyTWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJv
bGxlck1hYy5tbQpAQCAtMjA5LDQgKzIwOSw5IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjp0
b2dnbGVDYXBzTG9jayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQogICAgIGRvQXN5bmNUYXNrKGNhbGxi
YWNrKTsKIH0KIAorTlNVbmRvTWFuYWdlciAqVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVVu
ZG9NYW5hZ2VyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRv
bigpLm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpLnVuZG9NYW5hZ2VyOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzNTQ2MTc4YTA3MmFmOWI3MzllZDY0ZjI3Mjc1YjUzYjFj
MjM5YTNkLi40ZGRiM2E2N2Y0OWY5YTRiMDUzMjQ2Y2JhMmIxMTE5MmJlNGRiZjBmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDIgQEAKKzIwMTktMDEtMTkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBbGxvdyB0aGUgcGFnZSB0byBhZGQgdG8gdGhl
IHBsYXRmb3JtIHVuZG8gc3RhY2sgdmlhIFVuZG9NYW5hZ2VyLmFkZEl0ZW0oKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMTExCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS80NDgwNzA0OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYSBmZXcgbmV3IGxheW91dCB0ZXN0cyBjb3ZlcmluZyBgVW5k
b01hbmFnZXIuYWRkSXRlbSgpYC4KKworICAgICAgICAqIGVkaXRpbmcvdW5kby1tYW5hZ2VyL3Vu
ZG8tbWFuYWdlci1hZGQtaXRlbS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRp
bmcvdW5kby1tYW5hZ2VyL3VuZG8tbWFuYWdlci1hZGQtaXRlbS5odG1sOiBBZGRlZC4KKworICAg
ICAgICBBZGQgYSB0ZXN0IHRoYXQgZXhlcmNpc2VzIHRoZSBuZXcgQVBJIGluIGJvdGggdGhlIHRv
cC1sZXZlbCBjb250ZXh0IGFuZCBhIGNoaWxkIGZyYW1lLgorCisgICAgICAgICogZWRpdGluZy91
bmRvLW1hbmFnZXIvdW5kby1tYW5hZ2VyLWRlbGV0ZS1zdGFsZS11bmRvLWl0ZW1zLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy91bmRvLW1hbmFnZXIvdW5kby1tYW5hZ2Vy
LWRlbGV0ZS1zdGFsZS11bmRvLWl0ZW1zLmh0bWw6IEFkZGVkLgorCisgICAgICAgIEFkZCBhIHRl
c3QgdG8gdmVyaWZ5IHRoYXQgYWZ0ZXIgYWRkaW5nIHVuZG8gaXRlbXMsIHVuZG9pbmcsIGFuZCB0
aGVuIHBlcmZvcm1pbmcgb3RoZXIgZWRpdCBhY3Rpb25zLCBnYXJiYWdlCisgICAgICAgIGNvbGxl
Y3Rpb24gd2lsbCBkZXN0cm95IEpTIHdyYXBwZXJzIGZvciB0aGUgcHJldmlvdXNseSBhZGRlZCBV
bmRvSXRlbXMsIHNpbmNlIHRoZXNlIHVuZG8gaXRlbXMnIGhhbmRsZXJzIGNhbiBubworICAgICAg
ICBsb25nZXIgYmUgaW52b2tlZC4KKworICAgICAgICAqIGVkaXRpbmcvdW5kby1tYW5hZ2VyL3Vu
ZG8tbWFuYWdlci1pdGVtLWxhYmVscy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVk
aXRpbmcvdW5kby1tYW5hZ2VyL3VuZG8tbWFuYWdlci1pdGVtLWxhYmVscy5odG1sOiBBZGRlZC4K
KworICAgICAgICBBZGQgYSB0ZXN0IHZlcmlmeWluZyB0aGF0IHRoZSB1bmRvIGFuZCByZWRvIGFj
dGlvbiBsYWJlbHMgYXJlIHVwZGF0ZWQgY29ycmVjdGx5IHdoZW4gdW5kb2luZyBhbmQgcmVkb2lu
Zy4KKworICAgICAgICAqIGVkaXRpbmcvdW5kby1tYW5hZ2VyL3VuZG8tbWFuYWdlci11bmRvLXJl
ZG8tYWZ0ZXItZ2FyZ2FnZS1jb2xsZWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZWRpdGluZy91bmRvLW1hbmFnZXIvdW5kby1tYW5hZ2VyLXVuZG8tcmVkby1hZnRlci1nYXJn
YWdlLWNvbGxlY3Rpb24uaHRtbDogQWRkZWQuCisKKyAgICAgICAgQWRkIGEgdGVzdCB0byB2ZXJp
ZnkgdGhhdCB0cmlnZ2VyaW5nIGdhcmJhZ2UgY29sbGVjdGlvbiBhZnRlciBhZGRpbmcgYW4gdW5k
byBpdGVtIHdpdGhvdXQga2VlcGluZyByZWZlcmVuY2VzIHRvCisgICAgICAgIHRoZSBpdGVtIChv
ciBpdHMgdW5kby9yZWRvIGhhbmRsZXJzKSBkb2Vzbid0IGJyZWFrIHRoZSBBUEkuCisKKyAgICAg
ICAgKiByZXNvdXJjZXMvdWktaGVscGVyLmpzOgorICAgICAgICAod2luZG93LlVJSGVscGVyLnVu
ZG9BbmRSZWRvQWN0aW9uTmFtZXMpOgorICAgICAgICAod2luZG93LlVJSGVscGVyKToKKworICAg
ICAgICBBZGQgYSBoZWxwZXIgbWV0aG9kIHRvIGdyYWIgdGhlIHBsYXRmb3JtJ3MgY3VycmVudCB1
bmRvIGFuZCByZWRvIGFjdGlvbiBuYW1lcy4KKwogMjAxOS0wMS0xOCAgSnVzdGluIEZhbiAgPGp1
c3Rpbl9mYW5AYXBwbGUuY29tPgogCiAgICAgICAgIChXSVApIFtXZWJHUFVdIFdlYkdQVVByb2dy
YW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAgcHJvdG90eXBlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL3VuZG8tbWFuYWdlci91bmRvLW1hbmFnZXItYWRkLWl0ZW0tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvLW1hbmFnZXIvdW5kby1tYW5hZ2Vy
LWFkZC1pdGVtLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTZkYTg5OTE2YzdiZjQ0MDgxNmE1
NTFlZmVhY2Q3MzQwZDgxMzZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy91bmRvLW1hbmFnZXIvdW5kby1tYW5hZ2VyLWFkZC1pdGVtLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMyIEBACitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBVbmRvTWFuYWdlci5hZGRJdGVtKCkg
Y2FuIGJlIHVzZWQgdG8gYWRkIHVuZG8gaXRlbXMgdG8gdGhlIHBsYXRmb3JtIHVuZG8gc3RhY2su
CisKKworQWZ0ZXIgYWRkaW5nIGFuIHVuZG8gaXRlbSAobWFpbmZyYW1lKToKK1BBU1MgdW5kb05h
bWUgaXMgIm1haW5mcmFtZSIKK1BBU1MgcmVkb05hbWUgaXMgIiIKK0FmdGVyIHBlcmZvcm1pbmcg
dW5kbyAobWFpbmZyYW1lKToKKyoqIFVORE8gKioKK1BBU1MgdW5kb05hbWUgaXMgIiIKK1BBU1Mg
cmVkb05hbWUgaXMgIm1haW5mcmFtZSIKK0FmdGVyIHBlcmZvcm1pbmcgcmVkbyAobWFpbmZyYW1l
KToKKyoqIFJFRE8gKioKK1BBU1MgdW5kb05hbWUgaXMgIm1haW5mcmFtZSIKK1BBU1MgcmVkb05h
bWUgaXMgIiIKK0FmdGVyIGFkZGluZyBhbiB1bmRvIGl0ZW0gKHN1YmZyYW1lKToKK1BBU1MgdW5k
b05hbWUgaXMgInN1YmZyYW1lIgorUEFTUyByZWRvTmFtZSBpcyAiIgorQWZ0ZXIgcGVyZm9ybWlu
ZyB1bmRvIChzdWJmcmFtZSk6CitQQVNTIHVuZG9OYW1lIGlzICJtYWluZnJhbWUiCitQQVNTIHJl
ZG9OYW1lIGlzICJzdWJmcmFtZSIKK0FmdGVyIHBlcmZvcm1pbmcgcmVkbyAoc3ViZnJhbWUpOgor
UEFTUyB1bmRvTmFtZSBpcyAic3ViZnJhbWUiCitQQVNTIHJlZG9OYW1lIGlzICIiCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCistLS0tLS0tLQor
RnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1VORE8sIFJFRE8KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvdW5kby1tYW5hZ2VyL3VuZG8tbWFuYWdlci1hZGQtaXRlbS5o
dG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvLW1hbmFnZXIvdW5kby1tYW5hZ2VyLWFkZC1p
dGVtLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZmVjNjE4OTBiMWI4MWZmN2U1MDNlOGJiMzVjYjg1OGQ5MmE3
YzU5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvdW5kby1tYW5hZ2Vy
L3VuZG8tbWFuYWdlci1hZGQtaXRlbS5odG1sCkBAIC0wLDAgKzEsOTMgQEAKKzwhRE9DVFlQRSBo
dG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVVuZG9NYW5hZ2VyQVBJPXRydWUg
XSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAg
ICAgIGZ1bmN0aW9uIGFkZFVuZG9JdGVtKCkKKyAgICAgICAgeworICAgICAgICAgICAgZG9jdW1l
bnQudW5kb01hbmFnZXIuYWRkSXRlbShuZXcgVW5kb0l0ZW0oeworICAgICAgICAgICAgICAgIGxh
YmVsOiAibWFpbmZyYW1lIiwKKyAgICAgICAgICAgICAgICB1bmRvOiAoKSA9PiBkZWJ1ZygiKiog
VU5ETyAqKiIpLAorICAgICAgICAgICAgICAgIHJlZG86ICgpID0+IGRlYnVnKCIqKiBSRURPICoq
IikKKyAgICAgICAgICAgIH0pKTsKKyAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8
L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IDxj
b2RlPlVuZG9NYW5hZ2VyLmFkZEl0ZW0oKTwvY29kZT4gY2FuIGJlIHVzZWQgdG8gYWRkIHVuZG8g
aXRlbXMgdG8gdGhlIHBsYXRmb3JtIHVuZG8gc3RhY2suPC9wPgorICAgICAgICA8aWZyYW1lIGlk
PSJmcmFtZSIgc3JjZG9jPSIKKyAgICAgICAgICAgIDxib2R5PgorICAgICAgICAgICAgICAgIDxw
cmUgaWQ9J291dHB1dCc+PC9wcmU+CisgICAgICAgICAgICA8L2JvZHk+CisgICAgICAgICAgICA8
c2NyaXB0PgorICAgICAgICAgICAgZnVuY3Rpb24gYXBwZW5kT3V0cHV0KHN0cmluZykKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAob3V0cHV0LnRleHRDb250ZW50Lmxlbmd0aCkK
KyAgICAgICAgICAgICAgICAgICAgb3V0cHV0LnRleHRDb250ZW50ICs9ICcsICc7CisgICAgICAg
ICAgICAgICAgb3V0cHV0LnRleHRDb250ZW50ICs9IHN0cmluZzsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgZnVuY3Rpb24gYWRkVW5kb0l0ZW0oKQorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIGRvY3VtZW50LnVuZG9NYW5hZ2VyLmFkZEl0ZW0obmV3IFVuZG9JdGVtKHsKKyAg
ICAgICAgICAgICAgICAgICAgbGFiZWw6ICdzdWJmcmFtZScsCisgICAgICAgICAgICAgICAgICAg
IHVuZG86ICgpID0+IGFwcGVuZE91dHB1dCgnVU5ETycpLAorICAgICAgICAgICAgICAgICAgICBy
ZWRvOiAoKSA9PiBhcHBlbmRPdXRwdXQoJ1JFRE8nKQorICAgICAgICAgICAgICAgIH0pKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIDwvc2NyaXB0PgorICAgICAgICAiPjwvaWZyYW1lPgor
ICAgICAgICA8cHJlIGlkPSdjb25zb2xlJz48L3ByZT4KKyAgICA8L2JvZHk+CisgICAgPHNjcmlw
dD4KKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHVuZG9OYW1lID0gbnVs
bDsKKyAgICAgICAgcmVkb05hbWUgPSBudWxsOworCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisK
KyAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAg
ICAgIGRlYnVnKCJBZnRlciBhZGRpbmcgYW4gdW5kbyBpdGVtIChtYWluZnJhbWUpOiIpOworICAg
ICAgICAgICAgYWRkVW5kb0l0ZW0oKTsKKyAgICAgICAgICAgIFt1bmRvTmFtZSwgcmVkb05hbWVd
ID0gYXdhaXQgVUlIZWxwZXIudW5kb0FuZFJlZG9BY3Rpb25OYW1lcygpOworICAgICAgICAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ1bmRvTmFtZSIsICJtYWluZnJhbWUiKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVkb05hbWUiLCAiIik7CisKKyAgICAgICAgICAg
IGRlYnVnKCJBZnRlciBwZXJmb3JtaW5nIHVuZG8gKG1haW5mcmFtZSk6Iik7CisgICAgICAgICAg
ICBkb2N1bWVudC5leGVjQ29tbWFuZCgidW5kbyIpOworICAgICAgICAgICAgW3VuZG9OYW1lLCBy
ZWRvTmFtZV0gPSBhd2FpdCBVSUhlbHBlci51bmRvQW5kUmVkb0FjdGlvbk5hbWVzKCk7CisgICAg
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInVuZG9OYW1lIiwgIiIpOworICAgICAgICAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWRvTmFtZSIsICJtYWluZnJhbWUiKTsKKworICAg
ICAgICAgICAgZGVidWcoIkFmdGVyIHBlcmZvcm1pbmcgcmVkbyAobWFpbmZyYW1lKToiKTsKKyAg
ICAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJyZWRvIik7CisgICAgICAgICAgICBbdW5k
b05hbWUsIHJlZG9OYW1lXSA9IGF3YWl0IFVJSGVscGVyLnVuZG9BbmRSZWRvQWN0aW9uTmFtZXMo
KTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidW5kb05hbWUiLCAibWFpbmZy
YW1lIik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZG9OYW1lIiwgIiIp
OworCisgICAgICAgICAgICBjb25zdCBmcmFtZVdpbmRvdyA9IGZyYW1lLmNvbnRlbnRXaW5kb3c7
CisKKyAgICAgICAgICAgIGRlYnVnKCJBZnRlciBhZGRpbmcgYW4gdW5kbyBpdGVtIChzdWJmcmFt
ZSk6Iik7CisgICAgICAgICAgICBmcmFtZVdpbmRvdy5hZGRVbmRvSXRlbSgpOworICAgICAgICAg
ICAgW3VuZG9OYW1lLCByZWRvTmFtZV0gPSBhd2FpdCBVSUhlbHBlci51bmRvQW5kUmVkb0FjdGlv
bk5hbWVzKCk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInVuZG9OYW1lIiwg
InN1YmZyYW1lIik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZG9OYW1l
IiwgIiIpOworCisgICAgICAgICAgICBkZWJ1ZygiQWZ0ZXIgcGVyZm9ybWluZyB1bmRvIChzdWJm
cmFtZSk6Iik7CisgICAgICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgidW5kbyIpOworICAg
ICAgICAgICAgW3VuZG9OYW1lLCByZWRvTmFtZV0gPSBhd2FpdCBVSUhlbHBlci51bmRvQW5kUmVk
b0FjdGlvbk5hbWVzKCk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInVuZG9O
YW1lIiwgIm1haW5mcmFtZSIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZWRvTmFtZSIsICJzdWJmcmFtZSIpOworCisgICAgICAgICAgICBkZWJ1ZygiQWZ0ZXIgcGVyZm9y
bWluZyByZWRvIChzdWJmcmFtZSk6Iik7CisgICAgICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFu
ZCgicmVkbyIpOworICAgICAgICAgICAgW3VuZG9OYW1lLCByZWRvTmFtZV0gPSBhd2FpdCBVSUhl
bHBlci51bmRvQW5kUmVkb0FjdGlvbk5hbWVzKCk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInVuZG9OYW1lIiwgInN1YmZyYW1lIik7CisgICAgICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlZG9OYW1lIiwgIiIpOworCisgICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICAgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL3VuZG8tbWFuYWdlci91bmRvLW1hbmFnZXItZGVsZXRlLXN0YWxlLXVu
ZG8taXRlbXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvLW1hbmFnZXIv
dW5kby1tYW5hZ2VyLWRlbGV0ZS1zdGFsZS11bmRvLWl0ZW1zLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43N2UxY2MyZGE1NjMzZWU3MWE5OTEyYTFjZTBlYmY2MWFjZjVlY2I4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvLW1hbmFnZXIvdW5kby1tYW5hZ2VyLWRl
bGV0ZS1zdGFsZS11bmRvLWl0ZW1zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitFCitW
ZXJpZmllcyB0aGF0IEpTVW5kb0l0ZW1zIGFyZSBkZWxldGVkIHdoZW4gdGhleSBhcmUgbm8gbG9u
Z2VyIG5lZWRlZCBieSB0aGUgcGxhdGZvcm0gY2xpcGJvYXJkLiBUaGlzIHRlc3QgcmVxdWlyZXMg
V2ViS2l0VGVzdFJ1bm5lci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIG9i
amVjdENvdW50QmVmb3JlQ2xlYXJpbmdVbmRvU3RhY2sgLSBvYmplY3RDb3VudEFmdGVyQ2xlYXJp
bmdVbmRvU3RhY2sgaXMgPj0gNTgwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvLW1h
bmFnZXIvdW5kby1tYW5hZ2VyLWRlbGV0ZS1zdGFsZS11bmRvLWl0ZW1zLmh0bWwgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3VuZG8tbWFuYWdlci91bmRvLW1hbmFnZXItZGVsZXRlLXN0YWxlLXVuZG8t
aXRlbXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNTI4OTAwNTZmNTkzNjU2YzFkNzk1NGU5OGM4MDI3NWFl
OTM0Y2E2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvLW1hbmFn
ZXIvdW5kby1tYW5hZ2VyLWRlbGV0ZS1zdGFsZS11bmRvLWl0ZW1zLmh0bWwKQEAgLTAsMCArMSw2
NiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlVW5k
b01hbmFnZXJBUEk9dHJ1ZSBdIC0tPgorPGh0bWw+CisgICAgPG1ldGEgY2hhcnNldD0idXRmOCI+
CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9lZGl0aW5nLmpzIj48L3Nj
cmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisK
KyAgICAgICAgZnVuY3Rpb24gb2JqZWN0Q291bnRBZnRlclNpbXVsYXRpbmdNZW1vcnlQcmVzc3Vy
ZUFuZEdhcmJhZ2VDb2xsZWN0aW9uKCkgeworICAgICAgICAgICAgaW50ZXJuYWxzLmJlZ2luU2lt
dWxhdGVkTWVtb3J5UHJlc3N1cmUoKTsKKyAgICAgICAgICAgIGludGVybmFscy5lbmRTaW11bGF0
ZWRNZW1vcnlQcmVzc3VyZSgpOworICAgICAgICAgICAgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsK
KyAgICAgICAgICAgIHJldHVybiBHQ0NvbnRyb2xsZXIuZ2V0SlNPYmplY3RDb3VudCgpOworICAg
ICAgICB9CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAg
IGRlc2NyaXB0aW9uKCJWZXJpZmllcyB0aGF0IEpTVW5kb0l0ZW1zIGFyZSBkZWxldGVkIHdoZW4g
dGhleSBhcmUgbm8gbG9uZ2VyIG5lZWRlZCBieSB0aGUgcGxhdGZvcm0gY2xpcGJvYXJkLiBUaGlz
IHRlc3QgcmVxdWlyZXMgV2ViS2l0VGVzdFJ1bm5lci4iKTsKKworICAgICAgICAgICAgaWYgKCF3
aW5kb3cuR0NDb250cm9sbGVyKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAg
ICAgZWRpdG9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVkaXRvciIpOworICAgICAgICAg
ICAgZWRpdG9yLmZvY3VzKCk7CisKKyAgICAgICAgICAgIGNvbnN0IHVuZG9JdGVtQ291bnQgPSAy
MDA7CisKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdW5kb0l0ZW1Db3VudDsgKytp
KSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQudW5kb01hbmFnZXIuYWRkSXRlbShuZXcgVW5k
b0l0ZW0oeworICAgICAgICAgICAgICAgICAgICBsYWJlbDogIiIsCisgICAgICAgICAgICAgICAg
ICAgIHVuZG86ICgpID0+IHsgfSwKKyAgICAgICAgICAgICAgICAgICAgcmVkbzogKCkgPT4geyB9
CisgICAgICAgICAgICAgICAgfSkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3Ig
KGxldCBpID0gMDsgaSA8IHVuZG9JdGVtQ291bnQ7ICsraSkKKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5leGVjQ29tbWFuZCgiVW5kbyIpOworCisgICAgICAgICAgICBvYmplY3RDb3VudEJlZm9y
ZUNsZWFyaW5nVW5kb1N0YWNrID0gb2JqZWN0Q291bnRBZnRlclNpbXVsYXRpbmdNZW1vcnlQcmVz
c3VyZUFuZEdhcmJhZ2VDb2xsZWN0aW9uKCk7CisKKyAgICAgICAgICAgIHNlbGVjdEFsbENvbW1h
bmQoKTsKKyAgICAgICAgICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCJFIik7CisKKyAgICAgICAg
ICAgIC8vIFdhaXQgdW50aWwgYWxtb3N0IGFsbCBvZiB0aGUgd3JhcHBlcnMgYXJlIGNvbGxlY3Rl
ZC4gRm9yIGVhY2ggVW5kb0l0ZW0sIHdlIGV4cGVjdCBhIHRvdGFsIG9mIDMgd3JhcHBlcnM6Cisg
ICAgICAgICAgICAvLyBvbmUgZWFjaCBmb3IgdGhlIHVuZG8gYW5kIHJlZG8gaGFuZGxlcnMsIGFu
ZCBvbmUgZm9yIHRoZSBVbmRvSXRlbSBpdHNlbGYuIEhvd2V2ZXIsIHdlIGFsc28gZ2l2ZSBvdXJz
ZWx2ZXMKKyAgICAgICAgICAgIC8vIHNvbWUgd2lnZ2xlIHJvb20gZm9yIGFkZGl0aW9uYWwgd3Jh
cHBlcnMgY3JlYXRlZCB3aGVuIGNhbGxpbmcgc29tZSB0ZXN0aW5nIGhlbHBlciBmdW5jdGlvbnMu
IFRoaXMgaXMKKyAgICAgICAgICAgIC8vIHN0aWxsIGEgdXNlZnVsIHRlc3QsIHNpbmNlIGl0IHdp
bGwgdGltZSBvdXQgaW4gdGhlIGNhc2Ugd2hlcmUgZWl0aGVyIG91ciB1bmRvIGl0ZW1zIG9yIHRo
ZWlyIHVuZG8vcmVkbworICAgICAgICAgICAgLy8gaGFuZGxlcnMgYXJlIG5vdCBwcm9wZXJseSBy
ZWxpbnF1aXNoZWQgb25jZSB0aGV5J3JlIG5vIGxvbmdlciBuZWVkZWQuCisgICAgICAgICAgICBj
b25zdCBtaW5pbXVtTnVtYmVyT2ZXcmFwcGVyc1RvQ29sbGVjdEJlZm9yZVBhc3NpbmcgPSAzICog
dW5kb0l0ZW1Db3VudCAtIDIwOworICAgICAgICAgICAgb2JqZWN0Q291bnRBZnRlckNsZWFyaW5n
VW5kb1N0YWNrID0gb2JqZWN0Q291bnRCZWZvcmVDbGVhcmluZ1VuZG9TdGFjazsKKyAgICAgICAg
ICAgIHdoaWxlIChvYmplY3RDb3VudEJlZm9yZUNsZWFyaW5nVW5kb1N0YWNrIC0gb2JqZWN0Q291
bnRBZnRlckNsZWFyaW5nVW5kb1N0YWNrIDwgbWluaW11bU51bWJlck9mV3JhcHBlcnNUb0NvbGxl
Y3RCZWZvcmVQYXNzaW5nKSB7CisgICAgICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVz
b2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwMCkpOworICAgICAgICAgICAgICAgIG9iamVj
dENvdW50QWZ0ZXJDbGVhcmluZ1VuZG9TdGFjayA9IG9iamVjdENvdW50QWZ0ZXJTaW11bGF0aW5n
TWVtb3J5UHJlc3N1cmVBbmRHYXJiYWdlQ29sbGVjdGlvbigpOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgib2JqZWN0Q291bnRCZWZvcmVD
bGVhcmluZ1VuZG9TdGFjayAtIG9iamVjdENvdW50QWZ0ZXJDbGVhcmluZ1VuZG9TdGFjayIsIGAk
e21pbmltdW1OdW1iZXJPZldyYXBwZXJzVG9Db2xsZWN0QmVmb3JlUGFzc2luZ31gKTsKKyAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAg
IDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgICAgIDxkaXYgY29u
dGVudGVkaXRhYmxlIGlkPSJlZGl0b3IiPjwvZGl2PgorICAgICAgICA8cHJlIGlkPSJkZXNjcmlw
dGlvbiI+PC9wcmU+CisgICAgICAgIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorICAgIDwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvdW5kby1tYW5hZ2Vy
L3VuZG8tbWFuYWdlci1pdGVtLWxhYmVscy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3VuZG8tbWFuYWdlci91bmRvLW1hbmFnZXItaXRlbS1sYWJlbHMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQ2ZDc1YzE2M2E3NDQ2NGY2ODc5MzFiZjBhYTJjYzhjYmRkM2NlMzAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG8tbWFuYWdlci91bmRvLW1hbmFn
ZXItaXRlbS1sYWJlbHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzYgQEAKKworVmVyaWZpZXMg
dGhhdCBzZXR0aW5nIHRoZSBsYWJlbCBhdHRyaWJ1dGUgb2YgVW5kb0l0ZW0gYWZmZWN0cyB0aGUg
dW5kbyBhbmQgcmVkbyBhY3Rpb24gbmFtZXMgaW4gdGhlIHBsYXRmb3JtIHVuZG8gbWFuYWdlci4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitBZnRlciB0eXBpbmc6CitQQVNTIHVuZG9O
YW1lIGlzICJUeXBpbmciCitQQVNTIHJlZG9OYW1lIGlzICIiCitBZnRlciBhZGRpbmcgdGhlIGZp
cnN0IFVuZG9JdGVtOgorUEFTUyB1bmRvTmFtZSBpcyAiRmlyc3Qg8J+lhyIKK1BBU1MgcmVkb05h
bWUgaXMgIiIKK0FmdGVyIGFkZGluZyB0aGUgc2Vjb25kIFVuZG9JdGVtOgorUEFTUyB1bmRvTmFt
ZSBpcyAiU2Vjb25kIPCfpYgiCitQQVNTIHJlZG9OYW1lIGlzICIiCitBZnRlciB1bmRvaW5nOgor
UEFTUyB1bmRvTmFtZSBpcyAiRmlyc3Qg8J+lhyIKK1BBU1MgcmVkb05hbWUgaXMgIlNlY29uZCDw
n6WIIgorQWZ0ZXIgdW5kb2luZyBhZ2FpbjoKK1BBU1MgdW5kb05hbWUgaXMgIlR5cGluZyIKK1BB
U1MgcmVkb05hbWUgaXMgIkZpcnN0IPCfpYciCitBZnRlciByZWRvaW5nOgorUEFTUyB1bmRvTmFt
ZSBpcyAiRmlyc3Qg8J+lhyIKK1BBU1MgcmVkb05hbWUgaXMgIlNlY29uZCDwn6WIIgorQWZ0ZXIg
cmVkb2luZyBhZ2FpbjoKK1BBU1MgdW5kb05hbWUgaXMgIlNlY29uZCDwn6WIIgorUEFTUyByZWRv
TmFtZSBpcyAiIgorQWZ0ZXIgdW5kb2luZyBhbmQgdGhlbiBwYXN0aW5nOgorUEFTUyB1bmRvTmFt
ZSBpcyAiUGFzdGUiCitQQVNTIHJlZG9OYW1lIGlzICIiCitBZnRlciB1bmRvaW5nIHRoZSBwYXN0
ZSBjb21tYW5kOgorUEFTUyB1bmRvTmFtZSBpcyAiRmlyc3Qg8J+lhyIKK1BBU1MgcmVkb05hbWUg
aXMgIlBhc3RlIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvdW5kby1tYW5hZ2VyL3VuZG8t
bWFuYWdlci1pdGVtLWxhYmVscy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvLW1hbmFn
ZXIvdW5kby1tYW5hZ2VyLWl0ZW0tbGFiZWxzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Q2MWQ0YzcwZDdi
YTIwNzYyYzM3NDRmZjM1NjEwN2ZlMWU1ZDRjYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvdW5kby1tYW5hZ2VyL3VuZG8tbWFuYWdlci1pdGVtLWxhYmVscy5odG1sCkBA
IC0wLDAgKzEsOTUgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZVVuZG9NYW5hZ2VyQVBJPXRydWUgXSAtLT4KKzxodG1sPgorICAgIDxtZXRhIGNoYXJz
ZXQ9InV0ZjgiPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9l
ZGl0aW5nLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0SXNB
c3luYyA9IHRydWU7CisgICAgICAgIHVuZG9OYW1lID0gbnVsbDsKKyAgICAgICAgcmVkb05hbWUg
PSBudWxsOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgICAg
ICBkZXNjcmlwdGlvbigiVmVyaWZpZXMgdGhhdCBzZXR0aW5nIHRoZSBsYWJlbCBhdHRyaWJ1dGUg
b2YgVW5kb0l0ZW0gYWZmZWN0cyB0aGUgdW5kbyBhbmQgcmVkbyBhY3Rpb24gbmFtZXMgIgorICAg
ICAgICAgICAgICAgICsgImluIHRoZSBwbGF0Zm9ybSB1bmRvIG1hbmFnZXIuIik7CisKKyAgICAg
ICAgICAgIGZpZWxkLmZvY3VzKCk7CisKKyAgICAgICAgICAgIGRlYnVnKCJBZnRlciB0eXBpbmc6
Iik7CisgICAgICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0VGV4dCIsIHRydWUs
ICJoZWxsbyIpOworICAgICAgICAgICAgW3VuZG9OYW1lLCByZWRvTmFtZV0gPSBhd2FpdCBVSUhl
bHBlci51bmRvQW5kUmVkb0FjdGlvbk5hbWVzKCk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInVuZG9OYW1lIiwgIlR5cGluZyIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJyZWRvTmFtZSIsICIiKTsKKworICAgICAgICAgICAgZnVuY3Rpb24gY3JlYXRl
VW5kb0l0ZW1XaXRoTGFiZWwobGFiZWxTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4g
bmV3IFVuZG9JdGVtKHsKKyAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGxhYmVsU3RyaW5nLAor
ICAgICAgICAgICAgICAgICAgICB1bmRvOiAoKSA9PiB7IH0sCisgICAgICAgICAgICAgICAgICAg
IHJlZG86ICgpID0+IHsgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBkZWJ1ZygiQWZ0ZXIgYWRkaW5nIHRoZSBmaXJzdCBVbmRvSXRlbToiKTsKKyAg
ICAgICAgICAgIGNvbnN0IGZpcnN0SXRlbSA9IGNyZWF0ZVVuZG9JdGVtV2l0aExhYmVsKCJGaXJz
dCDwn6WHIik7CisgICAgICAgICAgICBkb2N1bWVudC51bmRvTWFuYWdlci5hZGRJdGVtKGZpcnN0
SXRlbSk7CisgICAgICAgICAgICBbdW5kb05hbWUsIHJlZG9OYW1lXSA9IGF3YWl0IFVJSGVscGVy
LnVuZG9BbmRSZWRvQWN0aW9uTmFtZXMoKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygidW5kb05hbWUiLCBmaXJzdEl0ZW0ubGFiZWwpOworICAgICAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZWRvTmFtZSIsICIiKTsKKworICAgICAgICAgICAgZGVidWcoIkFmdGVy
IGFkZGluZyB0aGUgc2Vjb25kIFVuZG9JdGVtOiIpOworICAgICAgICAgICAgY29uc3Qgc2Vjb25k
SXRlbSA9IGNyZWF0ZVVuZG9JdGVtV2l0aExhYmVsKCJTZWNvbmQg8J+liCIpOworICAgICAgICAg
ICAgZG9jdW1lbnQudW5kb01hbmFnZXIuYWRkSXRlbShzZWNvbmRJdGVtKTsKKyAgICAgICAgICAg
IFt1bmRvTmFtZSwgcmVkb05hbWVdID0gYXdhaXQgVUlIZWxwZXIudW5kb0FuZFJlZG9BY3Rpb25O
YW1lcygpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ1bmRvTmFtZSIsIHNl
Y29uZEl0ZW0ubGFiZWwpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWRv
TmFtZSIsICIiKTsKKworICAgICAgICAgICAgZGVidWcoIkFmdGVyIHVuZG9pbmc6Iik7CisgICAg
ICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgidW5kbyIpOworICAgICAgICAgICAgW3VuZG9O
YW1lLCByZWRvTmFtZV0gPSBhd2FpdCBVSUhlbHBlci51bmRvQW5kUmVkb0FjdGlvbk5hbWVzKCk7
CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInVuZG9OYW1lIiwgZmlyc3RJdGVt
LmxhYmVsKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVkb05hbWUiLCBz
ZWNvbmRJdGVtLmxhYmVsKTsKKworICAgICAgICAgICAgZGVidWcoIkFmdGVyIHVuZG9pbmcgYWdh
aW46Iik7CisgICAgICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgidW5kbyIpOworICAgICAg
ICAgICAgW3VuZG9OYW1lLCByZWRvTmFtZV0gPSBhd2FpdCBVSUhlbHBlci51bmRvQW5kUmVkb0Fj
dGlvbk5hbWVzKCk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInVuZG9OYW1l
IiwgIlR5cGluZyIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWRvTmFt
ZSIsIGZpcnN0SXRlbS5sYWJlbCk7CisKKyAgICAgICAgICAgIGRlYnVnKCJBZnRlciByZWRvaW5n
OiIpOworICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoInJlZG8iKTsKKyAgICAgICAg
ICAgIFt1bmRvTmFtZSwgcmVkb05hbWVdID0gYXdhaXQgVUlIZWxwZXIudW5kb0FuZFJlZG9BY3Rp
b25OYW1lcygpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ1bmRvTmFtZSIs
IGZpcnN0SXRlbS5sYWJlbCk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJl
ZG9OYW1lIiwgc2Vjb25kSXRlbS5sYWJlbCk7CisKKyAgICAgICAgICAgIGRlYnVnKCJBZnRlciBy
ZWRvaW5nIGFnYWluOiIpOworICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoInJlZG8i
KTsKKyAgICAgICAgICAgIFt1bmRvTmFtZSwgcmVkb05hbWVdID0gYXdhaXQgVUlIZWxwZXIudW5k
b0FuZFJlZG9BY3Rpb25OYW1lcygpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJ1bmRvTmFtZSIsIHNlY29uZEl0ZW0ubGFiZWwpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJyZWRvTmFtZSIsICIiKTsKKworICAgICAgICAgICAgZGVidWcoIkFmdGVyIHVu
ZG9pbmcgYW5kIHRoZW4gcGFzdGluZzoiKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21t
YW5kKCJ1bmRvIik7CisgICAgICAgICAgICBzZWxlY3RBbGxDb21tYW5kKCk7CisgICAgICAgICAg
ICBjb3B5Q29tbWFuZCgpOworICAgICAgICAgICAgcGFzdGVDb21tYW5kKCk7CisgICAgICAgICAg
ICBbdW5kb05hbWUsIHJlZG9OYW1lXSA9IGF3YWl0IFVJSGVscGVyLnVuZG9BbmRSZWRvQWN0aW9u
TmFtZXMoKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidW5kb05hbWUiLCAi
UGFzdGUiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVkb05hbWUiLCAi
Iik7CisKKyAgICAgICAgICAgIGRlYnVnKCJBZnRlciB1bmRvaW5nIHRoZSBwYXN0ZSBjb21tYW5k
OiIpOworICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoInVuZG8iKTsKKyAgICAgICAg
ICAgIFt1bmRvTmFtZSwgcmVkb05hbWVdID0gYXdhaXQgVUlIZWxwZXIudW5kb0FuZFJlZG9BY3Rp
b25OYW1lcygpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ1bmRvTmFtZSIs
IGZpcnN0SXRlbS5sYWJlbCk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJl
ZG9OYW1lIiwgIlBhc3RlIik7CisKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAg
ICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+CisgICAgICAgIDxpbnB1dCBpZD0iZmllbGQiPjwvaW5wdXQ+CisgICAgICAgIDxw
cmUgaWQ9ImRlc2NyaXB0aW9uIj48L3ByZT4KKyAgICAgICAgPHByZSBpZD0iY29uc29sZSI+PC9w
cmU+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy91bmRvLW1hbmFnZXIvdW5kby1tYW5hZ2VyLXVuZG8tcmVkby1hZnRlci1nYXJnYWdlLWNvbGxl
Y3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvLW1hbmFnZXIvdW5k
by1tYW5hZ2VyLXVuZG8tcmVkby1hZnRlci1nYXJnYWdlLWNvbGxlY3Rpb24tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdjOTM5MmFkYzRkM2Q5MDU5OTA3YzdlY2I1OGUxNWJhMjg0NWNhM2IKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG8tbWFuYWdlci91bmRvLW1h
bmFnZXItdW5kby1yZWRvLWFmdGVyLWdhcmdhZ2UtY29sbGVjdGlvbi1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMSBAQAorQWZ0ZXIgcmVkbworVmVyaWZpZXMgdGhhdCB1bmRvIGFuZCByZWRvIGNh
bGxiYWNrIGhhbmRsZXJzIHN1cnZpdmUgZ2FyYmFnZSBjb2xsZWN0aW9uLiBUaGlzIHRlc3QgcmVx
dWlyZXMgV2ViS2l0VGVzdFJ1bm5lci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQ
QVNTIHRleHQudGV4dENvbnRlbnQgaXMgIkFmdGVyIHVuZG8iCitQQVNTIHRleHQudGV4dENvbnRl
bnQgaXMgIkFmdGVyIHJlZG8iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvLW1hbmFn
ZXIvdW5kby1tYW5hZ2VyLXVuZG8tcmVkby1hZnRlci1nYXJnYWdlLWNvbGxlY3Rpb24uaHRtbCBi
L0xheW91dFRlc3RzL2VkaXRpbmcvdW5kby1tYW5hZ2VyL3VuZG8tbWFuYWdlci11bmRvLXJlZG8t
YWZ0ZXItZ2FyZ2FnZS1jb2xsZWN0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjc4NDRlNjM2YWU1OGYw
NWUzMmE3M2IyMjFmMjg3M2JiZjk0MDEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvdW5kby1tYW5hZ2VyL3VuZG8tbWFuYWdlci11bmRvLXJlZG8tYWZ0ZXItZ2FyZ2Fn
ZS1jb2xsZWN0aW9uLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlVW5kb01hbmFnZXJBUEk9dHJ1ZSBdIC0tPgorPGh0
bWw+CisgICAgPG1ldGEgY2hhcnNldD0idXRmOCI+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICAg
ICAgPHNjcmlwdCBzcmM9Ii4uL2VkaXRpbmcuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0
PgorICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICAgICAgZGVzY3JpcHRpb24o
IlZlcmlmaWVzIHRoYXQgdW5kbyBhbmQgcmVkbyBjYWxsYmFjayBoYW5kbGVycyBzdXJ2aXZlIGdh
cmJhZ2UgY29sbGVjdGlvbi4gVGhpcyB0ZXN0IHJlcXVpcmVzIFdlYktpdFRlc3RSdW5uZXIuIik7
CisKKyAgICAgICAgICAgIHRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dCIpOwor
CisgICAgICAgICAgICBkb2N1bWVudC51bmRvTWFuYWdlci5hZGRJdGVtKG5ldyBVbmRvSXRlbSh7
CisgICAgICAgICAgICAgICAgbGFiZWw6ICJUZXN0IGFjdGlvbiIsCisgICAgICAgICAgICAgICAg
dW5kbzogKCkgPT4gdGV4dC50ZXh0Q29udGVudCA9ICJBZnRlciB1bmRvIiwKKyAgICAgICAgICAg
ICAgICByZWRvOiAoKSA9PiB0ZXh0LnRleHRDb250ZW50ID0gIkFmdGVyIHJlZG8iCisgICAgICAg
ICAgICB9KSk7CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cuR0NDb250cm9sbGVyKQorICAgICAg
ICAgICAgICAgIEdDQ29udHJvbGxlci5jb2xsZWN0KCk7CisKKyAgICAgICAgICAgIGRvY3VtZW50
LmV4ZWNDb21tYW5kKCJVbmRvIik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
InRleHQudGV4dENvbnRlbnQiLCAiQWZ0ZXIgdW5kbyIpOworCisgICAgICAgICAgICBkb2N1bWVu
dC5leGVjQ29tbWFuZCgiUmVkbyIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJ0ZXh0LnRleHRDb250ZW50IiwgIkFmdGVyIHJlZG8iKTsKKyAgICAgICAgfQorICAgICAgICA8
L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAg
ICAgICA8ZGl2IGlkPSJ0ZXh0Ij5Jbml0aWFsIHN0YXRlPC9kaXY+CisgICAgICAgIDxwcmUgaWQ9
ImRlc2NyaXB0aW9uIj48L3ByZT4KKyAgICAgICAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cisg
ICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3Vp
LWhlbHBlci5qcyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKaW5kZXggMTg4
NGRiNzY1OTY1MDU3MmRkY2FhYWZjMjk1YjUwMjAyYmU2YjU2NC4uNmU4YjdmMTlhNTczNGQ1NWJm
YzViOTEzNGU5Yjg0ZDYyMDlhN2E3ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2Vz
L3VpLWhlbHBlci5qcworKysgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCkBA
IC01NjYsNCArNTY2LDEzIEBAIHdpbmRvdy5VSUhlbHBlciA9IGNsYXNzIFVJSGVscGVyIHsKICAg
ICAgICAgICAgIHJlc29sdmUoeyB4OiBvZmZzZXRYLCB5OiBvZmZzZXRZIH0pOwogICAgICAgICB9
KSk7CiAgICAgfQorCisgICAgc3RhdGljIHVuZG9BbmRSZWRvQWN0aW9uTmFtZXMoKQorICAgIHsK
KyAgICAgICAgaWYgKCF0aGlzLmlzV2ViS2l0MigpKQorICAgICAgICAgICAgcmV0dXJuIFByb21p
c2UucmVzb2x2ZSgpOworCisgICAgICAgIGNvbnN0IHNjcmlwdCA9ICJKU09OLnN0cmluZ2lmeShb
dWlDb250cm9sbGVyLnVuZG9BY3Rpb25OYW1lLCB1aUNvbnRyb2xsZXIucmVkb0FjdGlvbk5hbWVd
KSI7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHRlc3RSdW5uZXIucnVu
VUlTY3JpcHQoc2NyaXB0LCByZXN1bHQgPT4gcmVzb2x2ZShKU09OLnBhcnNlKHJlc3VsdCkpKSk7
CisgICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359632</attachid>
            <date>2019-01-19 20:54:05 -0800</date>
            <delta_ts>2019-01-22 19:44:03 -0800</delta_ts>
            <desc>Part 3</desc>
            <filename>bug-193111-20190119205405.patch</filename>
            <type>text/plain</type>
            <size>57747</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDY2YzkzZTk2YWQ0ZmJj
YTdkNjcxYzkyY2RiZjQ1MWM4MjQ4MDdhZC4uODVlYmUyOGM3ZDA5ODhiMjdjYTdmZTc3ZWQ5ZDI0
N2U4NTUyZmIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE5LTAxLTE5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWxs
b3cgdGhlIHBhZ2UgdG8gYWRkIHRvIHRoZSBwbGF0Zm9ybSB1bmRvIHN0YWNrIHZpYSBVbmRvTWFu
YWdlci5hZGRJdGVtKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5MzExMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQ4MDcwNDg+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRmluaXNoIGhvb2tpbmcg
dXAgYFVuZG9NYW5hZ2VyOjphZGRJdGVtcygpYCB0byBDdXN0b21VbmRvU3RlcC4KKworICAgICAg
ICBUZXN0czogZWRpdGluZy91bmRvLW1hbmFnZXIvdW5kby1tYW5hZ2VyLWFkZC1pdGVtLmh0bWwK
KyAgICAgICAgICAgICAgIGVkaXRpbmcvdW5kby1tYW5hZ2VyL3VuZG8tbWFuYWdlci1kZWxldGUt
c3RhbGUtdW5kby1pdGVtcy5odG1sCisgICAgICAgICAgICAgICBlZGl0aW5nL3VuZG8tbWFuYWdl
ci91bmRvLW1hbmFnZXItaXRlbS1sYWJlbHMuaHRtbAorICAgICAgICAgICAgICAgZWRpdGluZy91
bmRvLW1hbmFnZXIvdW5kby1tYW5hZ2VyLXVuZG8tcmVkby1hZnRlci1nYXJiYWdlLWNvbGxlY3Rp
b24uaHRtbAorCisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oOgorICAg
ICAgICAqIGVkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3Vz
dG9tVW5kb1N0ZXA6OmludmFsaWRhdGUpOgorCisgICAgICAgIEFkZCBhIG1ldGhvZCB0byBpbnZh
bGlkYXRlIEN1c3RvbVVuZG9TdGVwLiBUaGlzIGNsZWFycyBvdXQgdGhlIHBvaW50ZXIgdG8gdGhl
IHVuZG8gaXRlbSwgYW5kIGFsc28gaW52YWxpZGF0ZXMKKyAgICAgICAgdGhlIFVuZG9JdGVtLCBy
ZW1vdmluZyBpdCBmcm9tIGl0cyBVbmRvTWFuYWdlci4KKworICAgICAgICAqIGVkaXRpbmcvQ3Vz
dG9tVW5kb1N0ZXAuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OnJlZ2lzdGVyQ3VzdG9tVW5kb1N0ZXApOgorCisgICAgICAgIEFkZCBh
IGhlbHBlciBtZXRob2QgdG8gcmVnaXN0ZXIgYSBDdXN0b21VbmRvU3RlcCBhcyBhIHBsYXRmb3Jt
IHVuZG9hYmxlIHN0ZXAuCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAq
IGVkaXRpbmcvVW5kb1N0ZXAuaDoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50OjpyZWdpc3RlclVuZG9TdGVwKToK
KyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50OjpyZWdpc3RlclJlZG9TdGVwKToK
KworICAgICAgICBNYWtlIHRoZXNlIHRha2UgYFJlZjxVbmRvU3RlcD4mJmAgaW5zdGVhZCBvZiBg
VW5kb1N0ZXAmYC4KKworICAgICAgICAqIHBhZ2UvRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICog
cGFnZS9VbmRvTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVbmRvTWFuYWdlcjo6YWRk
SXRlbSk6CisKKyAgICAgICAgQ3JlYXRlIGEgQ3VzdG9tVW5kb1N0ZXAgd2l0aCB0aGUgZ2l2ZW4g
VW5kb0l0ZW0sIGFuZCByZWdpc3RlciBpdCB3aXRoIHRoZSBwbGF0Zm9ybSB1bmRvIG1hbmFnZXIu
CisKIDIwMTktMDEtMTkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAK
ICAgICAgICAgSW50cm9kdWNlIEN1c3RvbVVuZG9TdGVwLmggYW5kIEN1c3RvbVVuZG9TdGVwLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAzNGQ0M2YzZWY3YzlhZTQ1ZDVmODliNDQwODBmNTVmYTBlNDlhN2E2Li4y
Y2E0ZTY2ZjE2NGMzNzQ1ODFhMTlhMzViYjlmZWM3MGJkODJmZDNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDUzIEBACisyMDE5LTAxLTE5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgorCisgICAgICAgIFtDb2NvYV0gQWxsb3cgdGhlIHBhZ2UgdG8gYWRkIHRvIHRoZSBwbGF0
Zm9ybSB1bmRvIHN0YWNrIHZpYSBVbmRvTWFuYWdlci5hZGRJdGVtKCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzExMQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNDQ4MDcwNDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIHBsdW1iaW5nIHRvIHVzZSBhIGN1c3RvbSB1bmRvIGxhYmVsIChkZWZp
bmVkIGJ5IGFuIFVuZG9JdGVtKSBhcyB0aGUgYWN0aW9uIG5hbWUgZm9yIE5TVW5kb01hbmFnZXIu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjpyZWdpc3RlckVkaXRDb21tYW5kKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRD
b21tYW5kUHJveHk6OldlYkVkaXRDb21tYW5kUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJF
ZGl0Q29tbWFuZFByb3h5OjpuYW1lRm9yVW5kb1JlZG8gY29uc3QpOgorCisgICAgICAgIEFkZCBh
IGhlbHBlciBtZXRob2QgdG8gZ2V0IHRoZSB1bmRvL3JlZG8gbmFtZSBmb3IgYSBlZGl0IGNvbW1h
bmQgaW4gdGhlIFVJIHByb2Nlc3MuIFRoaXMgcHJlZmVycyB0aGUgY3VzdG9tIG5hbWUKKyAgICAg
ICAgKGlmIHNwZWNpZmllZCksIGFuZCBmYWxscyBiYWNrIHRvIHRoZSBgRWRpdEFjdGlvbmAuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJF
ZGl0Q29tbWFuZFByb3h5OjppbnZhbGlkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWdpc3RlckVkaXRD
b21tYW5kRm9yVW5kbyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVzZXRTdGF0
ZSk6CisKKyAgICAgICAgVGFrZSBhZHZhbnRhZ2Ugb2YgYHN0ZDo6ZXhjaGFuZ2VgIGluc3RlYWQg
b2YgY29weWluZyBhbGwgdGhlIGVkaXQgY29tbWFuZHMgaW50byBhIG5ldyBWZWN0b3IuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVnaXN0ZXJF
ZGl0Q29tbWFuZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVy
VW5kb1N0ZXApOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyUmVk
b1N0ZXApOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50Lmg6CisKKyAgICAgICAgTUFrZSB0aGUgZnVuY3Rpb24gdGFrZSBhIGBSZWY8VW5kb1N0ZXA+
JiZgIGluc3RlYWQgb2YgYW4gYFVuZG9TdGVwJmAuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmFkZFdlYlVuZG9T
dGVwKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVtb3ZlV2ViRWRpdENvbW1hbmQpOgor
CisgICAgICAgIEludmFsaWRhdGUgdW5kbyBzdGVwcyB3aGVuIHJlbW92aW5nIHRoZW0gZnJvbSBX
ZWJQYWdlLiBJbnZhbGlkYXRpb24gaXMgYSBuby1vcCBmb3IgZWRpdGluZyBhY3Rpb25zIHRoYXQg
Y29tZQorICAgICAgICBmcm9tIHRoZSBVQSwgYnV0IGZvciBjdXN0b20gdW5kbyBzdGVwcyBiYWNr
ZWQgYnkgYW4gVW5kb0l0ZW0sIHdlIGNsZWFyIG91dCB0aGUgY3VzdG9tIHVuZG8gc3RlcCdzIHBv
aW50ZXIgdG8gaXRzCisgICAgICAgIFVuZG9JdGVtIGFuZCBhZGRpdGlvbmFsbHkgZGlzY29ubmVj
dCB0aGUgVW5kb0l0ZW0gZnJvbSBpdHMgVW5kb01hbmFnZXIuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViVW5kb1N0ZXAuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVW5kb1N0ZXA6
OmludmFsaWRhdGUpOgorCiAyMDE5LTAxLTE4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25A
YXBwbGUuY29tPgogCiAgICAgICAgIEFkanVzdCBXS0RyYXdpbmdWaWV3IHByb3RvY29sIG1ldGhv
ZCBuYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMWUwNjRmZWM3YmNiMGRhYjA3
NDNjM2Q1MmNhYmYxZmUzYzkyM2I0My4uOTA5MzNhMjliZGUwZTViMGE1MzdiMzkyOTMzN2M5ZTcw
NmU3MzFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisy
MDE5LTAxLTE5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAg
ICAgIFtDb2NvYV0gQWxsb3cgdGhlIHBhZ2UgdG8gYWRkIHRvIHRoZSBwbGF0Zm9ybSB1bmRvIHN0
YWNrIHZpYSBVbmRvTWFuYWdlci5hZGRJdGVtKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzExMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQ4
MDcwNDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRqdXN0IGZvciBzb21lIGNoYW5nZWQgZnVuY3Rpb24gcGFyYW1ldGVycy4gU2VlIG90aGVyIENo
YW5nZUxvZ3MgZm9yIG1vcmUgZGV0YWlsLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
Lm1tOgorICAgICAgICAoLVtXZWJVbmRvU3RlcCBpbml0V2l0aFVuZG9TdGVwOl0pOgorICAgICAg
ICAoK1tXZWJVbmRvU3RlcCBzdGVwV2l0aFVuZG9TdGVwOl0pOgorICAgICAgICAoV2ViRWRpdG9y
Q2xpZW50OjpyZWdpc3RlclVuZG9PclJlZG9TdGVwKToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVu
dDo6cmVnaXN0ZXJVbmRvU3RlcCk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVy
UmVkb1N0ZXApOgorCiAyMDE5LTAxLTE4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmVydCByMjM4ODE1LCBpdCBicm9rZSBXSzEgdmlkZW8gZnVs
bHNjcmVlbiBvbiBNYWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENv
bW1hbmQuaAppbmRleCBiMmZhNWQwMTlhNDYzZmM2YjI1MGE0ODRhMmI0Mzk2N2ZlMmQ2MWYyLi4y
ZTM5NmMxYmE2N2I5MjhjMTVhNjA5NDJiNjY2MTU4MWEzNGFlZWQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCkBAIC04OSw2ICs4OSw3IEBAIHBy
aXZhdGU6CiAgICAgRWRpdENvbW1hbmRDb21wb3NpdGlvbihEb2N1bWVudCYsIGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIHN0YXJ0aW5nU2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBl
bmRpbmdTZWxlY3Rpb24sIEVkaXRBY3Rpb24pOwogCiAgICAgY29uc3QgU3RyaW5nJiBjdXN0b21V
bmRvTGFiZWwoKSBjb25zdCBmaW5hbCB7IHJldHVybiBlbXB0eVN0cmluZygpOyB9CisgICAgdm9p
ZCBpbnZhbGlkYXRlKCkgZmluYWwgeyB9CiAKICAgICBSZWZQdHI8RG9jdW1lbnQ+IG1fZG9jdW1l
bnQ7CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBtX3N0YXJ0aW5nU2VsZWN0aW9uOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0b21VbmRvU3RlcC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmNwcAppbmRleCBlZDhlMDI4YjdjYTc5M2U1N2Fi
Zjk1N2U5M2Y1YzlmNjlhNWIyMmEwLi5hNDhjMWU4Nzg0OTVkN2IzYWRjZTc0NDUwMjZhODEzYWJh
ZThlZDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1c3RvbVVuZG9TdGVw
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmNwcApAQCAt
NzQsNCArNzQsMTAgQEAgY29uc3QgU3RyaW5nJiBDdXN0b21VbmRvU3RlcDo6Y3VzdG9tVW5kb0xh
YmVsKCkgY29uc3QKICAgICByZXR1cm4gbV91bmRvSXRlbS0+bGFiZWwoKTsKIH0KIAordm9pZCBD
dXN0b21VbmRvU3RlcDo6aW52YWxpZGF0ZSgpCit7CisgICAgaWYgKGF1dG8gdW5kb0l0ZW0gPSBz
dGQ6OmV4Y2hhbmdlKG1fdW5kb0l0ZW0sIG51bGxwdHIpKQorICAgICAgICB1bmRvSXRlbS0+aW52
YWxpZGF0ZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0N1c3RvbVVuZG9TdGVwLmgKaW5kZXggMWI2ZDkwNmI5YjhmNjNhZjkxMjcyZjA0ZGVjZjRi
MTlkOTc3YzQxOS4uNGJiNDIzOTc5MTE5ZjNjODYzMGE0ZDc0OGI5Nzc4NTZhMmNhYzljZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0b21VbmRvU3RlcC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuaApAQCAtNDksNiArNDksNyBAQCBw
cml2YXRlOgogICAgIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIEVkaXRBY3Rpb246OlVuc3BlY2lmaWVkOyB9CiAgICAgY29uc3QgU3RyaW5nJiBjdXN0b21V
bmRvTGFiZWwoKSBjb25zdCBmaW5hbDsKIAorICAgIHZvaWQgaW52YWxpZGF0ZSgpIGZpbmFsOwog
ICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OwogCiAgICAgV2Vha1B0cjxVbmRvSXRlbT4gbV91bmRv
SXRlbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA1ODU0YWViNTVhMGYyNGQ4NTg1
NWVlZDEyNjBlM2UzZDk0ZWFmMGEzLi4yMDYxNWU4NzI4NTgyMTZlODI2YjUzNGNmMDY5NWI1NWY5
ZTNiNDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAj
aW5jbHVkZSAiQ2xpcGJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJDb21wb3NpdGlvbkV2ZW50Lmgi
CiAjaW5jbHVkZSAiQ3JlYXRlTGlua0NvbW1hbmQuaCIKKyNpbmNsdWRlICJDdXN0b21VbmRvU3Rl
cC5oIgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuaCIKICNpbmNsdWRlICJEaWN0YXRpb25BbHRlcm5hdGl2ZS5oIgpAQCAtMTc0MCw2
ICsxNzQxLDEzIEBAIHZvaWQgRWRpdG9yOjpyZWRvKCkKICAgICAgICAgY2xpZW50KCktPnJlZG8o
KTsKIH0KIAordm9pZCBFZGl0b3I6OnJlZ2lzdGVyQ3VzdG9tVW5kb1N0ZXAoUmVmPEN1c3RvbVVu
ZG9TdGVwPiYmIHVuZG9TdGVwKQoreworICAgIEFTU0VSVChSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLnVuZG9NYW5hZ2VyQVBJRW5hYmxlZCgpKTsKKyAgICBpZiAoYXV0
byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCisgICAgICAgIGNsaWVudC0+cmVnaXN0ZXJVbmRv
U3RlcChXVEZNb3ZlKHVuZG9TdGVwKSk7Cit9CisKIHZvaWQgRWRpdG9yOjpkaWRCZWdpbkVkaXRp
bmcoKQogewogICAgIGlmIChjbGllbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDA1
Y2MxYjgyYWVhYzE0MGI0MDkzMGRmNmYzN2VhNTQ5NTVjNjNmNDYuLjQ1NDdkNDcxNWY5ODMzYTg2
N2NlN2Y2YTgzMzM3OGM1MzYzZDAzYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNTgs
NiArNTgsNyBAQCBjbGFzcyBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOwogY2xhc3MgQXJjaGl2
ZVJlc291cmNlOwogY2xhc3MgRGF0YVRyYW5zZmVyOwogY2xhc3MgQ29tcG9zaXRlRWRpdENvbW1h
bmQ7CitjbGFzcyBDdXN0b21VbmRvU3RlcDsKIGNsYXNzIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXI7
CiBjbGFzcyBFZGl0Q29tbWFuZDsKIGNsYXNzIEVkaXRDb21tYW5kQ29tcG9zaXRpb247CkBAIC0z
MjQsNiArMzI1LDggQEAgcHVibGljOgogICAgIGJvb2wgY2FuUmVkbygpIGNvbnN0OwogICAgIHZv
aWQgcmVkbygpOwogCisgICAgdm9pZCByZWdpc3RlckN1c3RvbVVuZG9TdGVwKFJlZjxDdXN0b21V
bmRvU3RlcD4mJik7CisKICAgICB2b2lkIGRpZEJlZ2luRWRpdGluZygpOwogICAgIHZvaWQgZGlk
RW5kRWRpdGluZygpOwogICAgIHZvaWQgd2lsbFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKFJh
bmdlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1VuZG9TdGVwLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1VuZG9TdGVwLmgKaW5kZXggNTcxYmY5OWNhNDMyYjI4MDM4
MDljMGNjY2VjNzlmZmE0YmIwNWMyMi4uOGIyOWQ3NDE3YWIxMjg3MTM2NGM2YjEwMDJkMGRiZmJj
N2VlODQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9VbmRvU3RlcC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVW5kb1N0ZXAuaApAQCAtNDMsNiArNDMsOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlYXBwbHkoKSA9IDA7CiAgICAgdmlydHVhbCBFZGl0
QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBjb25zdCBTdHJp
bmcmIGN1c3RvbVVuZG9MYWJlbCgpIGNvbnN0ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBpbnZh
bGlkYXRlKCkgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCBhNWU1ZWY3NTgzNTRmZWM3NDM2MDhhMDMzZWI2
OWNkNzAxODA1YjQ3Li5hZTkyMGYwMWFiZjg3MjFjMzYyYTU1MzYxMzZhYWIzOGQwODExNDRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtMTg2LDggKzE4Niw4IEBA
IHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0Q2FuZGlkYXRlc0ZvclNlbGVjdGlvbihjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJikgZmluYWwgeyB9CiAgICAgdm9pZCBoYW5kbGVBY2NlcHRlZENhbmRp
ZGF0ZVdpdGhTb2Z0U3BhY2VzKFRleHRDaGVja2luZ1Jlc3VsdCkgZmluYWwgeyB9CiAKLSAgICB2
b2lkIHJlZ2lzdGVyVW5kb1N0ZXAoVW5kb1N0ZXAmKSBmaW5hbDsKLSAgICB2b2lkIHJlZ2lzdGVy
UmVkb1N0ZXAoVW5kb1N0ZXAmKSBmaW5hbDsKKyAgICB2b2lkIHJlZ2lzdGVyVW5kb1N0ZXAoUmVm
PFVuZG9TdGVwPiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoUmVmPFVuZG9T
dGVwPiYmKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyVW5kb1JlZG9PcGVyYXRpb25zKCkgZmluYWwg
eyB9CiAKICAgICBib29sIGNhbkNvcHlDdXQoRnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgY29u
c3QgZmluYWwgeyByZXR1cm4gZGVmYXVsdFZhbHVlOyB9CkBAIC01MDcsMTEgKzUwNywxMSBAQCB2
b2lkIEVtcHR5RWRpdG9yQ2xpZW50OjpFbXB0eVRleHRDaGVja2VyQ2xpZW50OjpyZXF1ZXN0Q2hl
Y2tpbmdPZlN0cmluZyhUZXh0Q2hlYwogewogfQogCi12b2lkIEVtcHR5RWRpdG9yQ2xpZW50Ojpy
ZWdpc3RlclVuZG9TdGVwKFVuZG9TdGVwJikKK3ZvaWQgRW1wdHlFZGl0b3JDbGllbnQ6OnJlZ2lz
dGVyVW5kb1N0ZXAoUmVmPFVuZG9TdGVwPiYmKQogewogfQogCi12b2lkIEVtcHR5RWRpdG9yQ2xp
ZW50OjpyZWdpc3RlclJlZG9TdGVwKFVuZG9TdGVwJikKK3ZvaWQgRW1wdHlFZGl0b3JDbGllbnQ6
OnJlZ2lzdGVyUmVkb1N0ZXAoUmVmPFVuZG9TdGVwPiYmKQogewogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
ZGl0b3JDbGllbnQuaAppbmRleCAzN2JmMTgyM2E5OGMyZDllNTJmM2QwMmNiZjViY2ZmYWVlMzU4
YzQ0Li5hYmJmNTgyOWMxN2RjYWU5N2QwNGIyY2NmYjRlMGRkMzM0NGQ0MmFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRWRpdG9yQ2xpZW50LmgKQEAgLTEwNCw4ICsxMDQsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGNhbmNlbGVkQ29tcG9zaXRpb24oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFVwZGF0ZUNvbXBvc2l0aW9uKCkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyVW5k
b1N0ZXAoVW5kb1N0ZXAmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAo
VW5kb1N0ZXAmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyVW5kb1N0ZXAoUmVmPFVu
ZG9TdGVwPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoUmVmPFVu
ZG9TdGVwPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyVW5kb1JlZG9PcGVyYXRpb25z
KCkgPSAwOwogCiAgICAgdmlydHVhbCBib29sIGNhbkNvcHlDdXQoRnJhbWUqLCBib29sIGRlZmF1
bHRWYWx1ZSkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRv
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9NYW5hZ2VyLmNwcAppbmRleCAx
ZDQ1YmEzNThiZTA0OWVhZGExNTFkYWIwOTNmMWRiMDAyMzU1ODUxLi5iZDQ3Nzc4YjVjMDBlMzY5
MmMyYzkwNWNlMzFlNzliOTQ0N2QxODM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1VuZG9NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9NYW5hZ2VyLmNw
cApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlVuZG9N
YW5hZ2VyLmgiCiAKKyNpbmNsdWRlICJDdXN0b21VbmRvU3RlcC5oIgorI2luY2x1ZGUgIkZyYW1l
LmgiCiAjaW5jbHVkZSAiVW5kb0l0ZW0uaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5l
cy5oPgogCkBAIC00Miw5ICs0NCwxNSBAQCBVbmRvTWFuYWdlcjo6flVuZG9NYW5hZ2VyKCkgPSBk
ZWZhdWx0OwogCiB2b2lkIFVuZG9NYW5hZ2VyOjphZGRJdGVtKFJlZjxVbmRvSXRlbT4mJiBpdGVt
KQogewotICAgIFVOVVNFRF9QQVJBTShtX2RvY3VtZW50KTsKKyAgICBpZiAobV9pdGVtcy5jb250
YWlucyhpdGVtLnB0cigpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBmcmFtZSA9IG1h
a2VSZWZQdHIobV9kb2N1bWVudC5mcmFtZSgpKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICBy
ZXR1cm47CiAKICAgICBpdGVtLT5zZXRVbmRvTWFuYWdlcigqdGhpcyk7CisgICAgZnJhbWUtPmVk
aXRvcigpLnJlZ2lzdGVyQ3VzdG9tVW5kb1N0ZXAoQ3VzdG9tVW5kb1N0ZXA6OmNyZWF0ZShpdGVt
KSk7CiAgICAgbV9pdGVtcy5hZGQoV1RGTW92ZShpdGVtKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggN2QyYjEyYTA4OGNlMGU0MmNm
ZjMxZmM1ZWJhZTI5MjNiYzA4MjBlYy4uZWVjNWYyZTc1ZjEzODZhZGJjMjQzNmZmMzM4MzhhNzVh
MGVjNmM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW0KQEAgLTI2OTIsNyArMjY5Miw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmV4ZWN1dGVFZGl0Q29t
bWFuZEZvclNlbGVjdG9yKFNFTCBzZWxlY3RvciwgY29uc3QgU3RyaW5nJiBhcmd1CiAKIHZvaWQg
V2ViVmlld0ltcGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQoUmVmPFdlYkVkaXRDb21tYW5kUHJveHk+
JiYgY29tbWFuZCwgVW5kb09yUmVkbyB1bmRvT3JSZWRvKQogewotICAgIGF1dG8gYWN0aW9uTmFt
ZSA9IFdlYkNvcmU6Om5hbWVGb3JVbmRvUmVkbyhjb21tYW5kLT5lZGl0QWN0aW9uKCkpOworICAg
IGF1dG8gYWN0aW9uTmFtZSA9IGNvbW1hbmQtPm5hbWVGb3JVbmRvUmVkbygpOwogICAgIGF1dG8g
Y29tbWFuZE9iakMgPSBhZG9wdE5TKFtbV0tFZGl0Q29tbWFuZCBhbGxvY10gaW5pdFdpdGhXZWJF
ZGl0Q29tbWFuZFByb3h5OldURk1vdmUoY29tbWFuZCldKTsKIAogICAgIE5TVW5kb01hbmFnZXIg
KnVuZG9NYW5hZ2VyID0gW21fdmlldyB1bmRvTWFuYWdlcl07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCmluZGV4IDlmODNlM2MxOWQ4NmM5ZjIz
NTNhN2U5NTc2MTBhMWVhNWQ4NTg0YjIuLjY2MTZmM2E4ZjBhMGM5NTZhOGFhMDJkZjUzYzliNDY1
NGVlZGIyNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21t
YW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5k
UHJveHkuY3BwCkBAIC0zNiwxMCArMzYsMTEgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKLVdlYkVkaXRDb21tYW5kUHJveHk6OldlYkVkaXRDb21tYW5k
UHJveHkoV2ViVW5kb1N0ZXBJRCBjb21tYW5kSUQsIFdlYkNvcmU6OkVkaXRBY3Rpb24gZWRpdEFj
dGlvbiwgV2ViUGFnZVByb3h5KiBwYWdlKQorV2ViRWRpdENvbW1hbmRQcm94eTo6V2ViRWRpdENv
bW1hbmRQcm94eShXZWJVbmRvU3RlcElEIGNvbW1hbmRJRCwgV2ViQ29yZTo6RWRpdEFjdGlvbiBl
ZGl0QWN0aW9uLCBjb25zdCBTdHJpbmcmIGN1c3RvbVVuZG9MYWJlbCwgV2ViUGFnZVByb3h5JiBw
YWdlKQogICAgIDogbV9jb21tYW5kSUQoY29tbWFuZElEKQogICAgICwgbV9lZGl0QWN0aW9uKGVk
aXRBY3Rpb24pCi0gICAgLCBtX3BhZ2UocGFnZSkKKyAgICAsIG1fY3VzdG9tVW5kb0xhYmVsKGN1
c3RvbVVuZG9MYWJlbCkKKyAgICAsIG1fcGFnZShtYWtlV2Vha1B0cihwYWdlKSkKIHsKICAgICBt
X3BhZ2UtPmFkZEVkaXRDb21tYW5kKCp0aGlzKTsKIH0KQEAgLTY4LDQgKzY5LDkgQEAgdm9pZCBX
ZWJFZGl0Q29tbWFuZFByb3h5OjpyZWFwcGx5KCkKICAgICBtX3BhZ2UtPnJlZ2lzdGVyRWRpdENv
bW1hbmQoKnRoaXMsIFVuZG9PclJlZG86OlVuZG8pOwogfQogCitTdHJpbmcgV2ViRWRpdENvbW1h
bmRQcm94eTo6bmFtZUZvclVuZG9SZWRvKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jdXN0b21V
bmRvTGFiZWwuaXNFbXB0eSgpID8gV2ViQ29yZTo6bmFtZUZvclVuZG9SZWRvKG1fZWRpdEFjdGlv
bikgOiBtX2N1c3RvbVVuZG9MYWJlbDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmgKaW5kZXggNzE2Y2I1
OGY0MDNkZDgyMzE5NmY4NjQyZjc1ZjRkZjNkNzFhYThjYS4uN2MwODExNGY1ODNkYjZkNTFhYmFj
OTMzY2ViM2Q0Mjk4MjE3MjhkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViRWRpdENvbW1hbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVk
aXRDb21tYW5kUHJveHkuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTM4
LDI2ICszOSwyOCBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiAKIGNsYXNzIFdlYkVkaXRDb21tYW5k
UHJveHkgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpFZGl0Q29t
bWFuZFByb3h5PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJFZGl0Q29tbWFuZFByb3h5
PiBjcmVhdGUoV2ViVW5kb1N0ZXBJRCBjb21tYW5kSUQsIFdlYkNvcmU6OkVkaXRBY3Rpb24gZWRp
dEFjdGlvbiwgV2ViUGFnZVByb3h5KiBwYWdlKQorICAgIHN0YXRpYyBSZWY8V2ViRWRpdENvbW1h
bmRQcm94eT4gY3JlYXRlKFdlYlVuZG9TdGVwSUQgY29tbWFuZElELCBXZWJDb3JlOjpFZGl0QWN0
aW9uIGVkaXRBY3Rpb24sIGNvbnN0IFN0cmluZyYgY3VzdG9tVW5kb0xhYmVsLCBXZWJQYWdlUHJv
eHkmIHBhZ2UpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJFZGl0Q29t
bWFuZFByb3h5KGNvbW1hbmRJRCwgZWRpdEFjdGlvbiwgcGFnZSkpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBXZWJFZGl0Q29tbWFuZFByb3h5KGNvbW1hbmRJRCwgZWRpdEFjdGlvbiwg
Y3VzdG9tVW5kb0xhYmVsLCBwYWdlKSk7CiAgICAgfQogICAgIH5XZWJFZGl0Q29tbWFuZFByb3h5
KCk7CiAKICAgICBXZWJVbmRvU3RlcElEIGNvbW1hbmRJRCgpIGNvbnN0IHsgcmV0dXJuIG1fY29t
bWFuZElEOyB9CiAgICAgV2ViQ29yZTo6RWRpdEFjdGlvbiBlZGl0QWN0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9lZGl0QWN0aW9uOyB9CiAKLSAgICB2b2lkIGludmFsaWRhdGUoKSB7IG1fcGFnZSA9
IDA7IH0KKyAgICBTdHJpbmcgbmFtZUZvclVuZG9SZWRvKCkgY29uc3Q7CisgICAgdm9pZCBpbnZh
bGlkYXRlKCkgeyBtX3BhZ2UuY2xlYXIoKTsgfQogCiAgICAgdm9pZCB1bmFwcGx5KCk7CiAgICAg
dm9pZCByZWFwcGx5KCk7CiAKIHByaXZhdGU6Ci0gICAgV2ViRWRpdENvbW1hbmRQcm94eShXZWJV
bmRvU3RlcElEIGNvbW1hbmRJRCwgV2ViQ29yZTo6RWRpdEFjdGlvbiwgV2ViUGFnZVByb3h5Kik7
CisgICAgV2ViRWRpdENvbW1hbmRQcm94eShXZWJVbmRvU3RlcElEIGNvbW1hbmRJRCwgV2ViQ29y
ZTo6RWRpdEFjdGlvbiwgY29uc3QgU3RyaW5nJiBjdXN0b21VbmRvTGFiZWwsIFdlYlBhZ2VQcm94
eSYpOwogCiAgICAgV2ViVW5kb1N0ZXBJRCBtX2NvbW1hbmRJRDsKICAgICBXZWJDb3JlOjpFZGl0
QWN0aW9uIG1fZWRpdEFjdGlvbjsKLSAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKKyAgICBTdHJp
bmcgbV9jdXN0b21VbmRvTGFiZWw7CisgICAgV2Vha1B0cjxXZWJQYWdlUHJveHk+IG1fcGFnZTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKaW5kZXggYjkxZmFhZjc0NDkzYmM5ODU5ZjRjMWQ2YjQzN2YxNTBlNTMyOGY1
YS4uMTVlYzlmYjFlOTFjNDM3ZGQyZWVjZDJhZTk5ZWY2YTM1OWI2YjdjMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01NDE5LDkgKzU0MTksOSBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6Y29tcG9zaXRpb25XYXNDYW5jZWxlZCgpCiAKIC8vIFVuZG8gbWFuYWdl
bWVudAogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVnaXN0ZXJFZGl0Q29tbWFuZEZvclVuZG8oV2Vi
VW5kb1N0ZXBJRCBjb21tYW5kSUQsIHVpbnQzMl90IGVkaXRBY3Rpb24pCit2b2lkIFdlYlBhZ2VQ
cm94eTo6cmVnaXN0ZXJFZGl0Q29tbWFuZEZvclVuZG8oV2ViVW5kb1N0ZXBJRCBjb21tYW5kSUQs
IHVpbnQzMl90IGVkaXRBY3Rpb24sIGNvbnN0IFN0cmluZyYgY3VzdG9tVW5kb0xhYmVsKQogewot
ICAgIHJlZ2lzdGVyRWRpdENvbW1hbmQoV2ViRWRpdENvbW1hbmRQcm94eTo6Y3JlYXRlKGNvbW1h
bmRJRCwgc3RhdGljX2Nhc3Q8RWRpdEFjdGlvbj4oZWRpdEFjdGlvbiksIHRoaXMpLCBVbmRvT3JS
ZWRvOjpVbmRvKTsKKyAgICByZWdpc3RlckVkaXRDb21tYW5kKFdlYkVkaXRDb21tYW5kUHJveHk6
OmNyZWF0ZShjb21tYW5kSUQsIHN0YXRpY19jYXN0PEVkaXRBY3Rpb24+KGVkaXRBY3Rpb24pLCBj
dXN0b21VbmRvTGFiZWwsICp0aGlzKSwgVW5kb09yUmVkbzo6VW5kbyk7CiB9CiAgICAgCiB2b2lk
IFdlYlBhZ2VQcm94eTo6cmVnaXN0ZXJJbnNlcnRpb25VbmRvR3JvdXBpbmcoKQpAQCAtNjYzMiwx
MCArNjYzMiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXNldFN0YXRlKFJlc2V0U3RhdGVSZWFz
b24gcmVzZXRTdGF0ZVJlYXNvbikKICAgICBtX2NhbGxiYWNrcy5pbnZhbGlkYXRlKGVycm9yKTsK
ICAgICBtX2xvYWREZXBlbmRlbnRTdHJpbmdDYWxsYmFja0lEcy5jbGVhcigpOwogCi0gICAgYXV0
byBlZGl0Q29tbWFuZFZlY3RvciA9IGNvcHlUb1ZlY3RvcihtX2VkaXRDb21tYW5kU2V0KTsKLSAg
ICBtX2VkaXRDb21tYW5kU2V0LmNsZWFyKCk7Ci0KLSAgICBmb3IgKGF1dG8mIGVkaXRDb21tYW5k
IDogZWRpdENvbW1hbmRWZWN0b3IpCisgICAgZm9yIChhdXRvJiBlZGl0Q29tbWFuZCA6IHN0ZDo6
ZXhjaGFuZ2UobV9lZGl0Q29tbWFuZFNldCwgeyB9KSkKICAgICAgICAgZWRpdENvbW1hbmQtPmlu
dmFsaWRhdGUoKTsKIAogICAgIG1fYWN0aXZlUG9wdXBNZW51ID0gbnVsbHB0cjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMjI4NmIzNWM5ZmI5Nzk0YTllM2Q3ZDQz
N2I0OWMzODg2MmRmZmZlZC4uNTJmMGY2MTY4Y2Y2OTEzMDM2ZWIyMWM2ODkxYzc1YjA4MWRkZjVi
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE2NDEsNyArMTY0
MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBiYWNrRm9yd2FyZENsZWFyKCk7CiAKICAgICAvLyBV
bmRvIG1hbmFnZW1lbnQKLSAgICB2b2lkIHJlZ2lzdGVyRWRpdENvbW1hbmRGb3JVbmRvKFdlYlVu
ZG9TdGVwSUQgY29tbWFuZElELCB1aW50MzJfdCBlZGl0QWN0aW9uKTsKKyAgICB2b2lkIHJlZ2lz
dGVyRWRpdENvbW1hbmRGb3JVbmRvKFdlYlVuZG9TdGVwSUQgY29tbWFuZElELCB1aW50MzJfdCBl
ZGl0QWN0aW9uLCBjb25zdCBTdHJpbmcmIGN1c3RvbVVuZG9MYWJlbCk7CiAgICAgdm9pZCByZWdp
c3Rlckluc2VydGlvblVuZG9Hcm91cGluZygpOwogICAgIHZvaWQgY2xlYXJBbGxFZGl0Q29tbWFu
ZHMoKTsKICAgICB2b2lkIGNhblVuZG9SZWRvKFVuZG9PclJlZG8sIGJvb2wmIHJlc3VsdCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5k
ZXggMmQyOGVlMThiNjllODI5NWMxZjdhODEzZjljYjQ3MWJkZGE0OGZmMi4uMjIwZWFkZTM0NGJl
NGViNDZiNDQxNjVhYmIwNTA0NTE0NTE5MTM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjMzLDcgKzIzMyw3IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgV2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHN0
cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGl0ZW1JRCwgYm9vbCBpblBh
Z2VDYWNoZSkKIAogICAgICMgVW5kby9SZWRvIG1lc3NhZ2VzCi0gICAgUmVnaXN0ZXJFZGl0Q29t
bWFuZEZvclVuZG8odWludDY0X3QgY29tbWFuZElELCB1aW50MzJfdCBlZGl0QWN0aW9uKQorICAg
IFJlZ2lzdGVyRWRpdENvbW1hbmRGb3JVbmRvKHVpbnQ2NF90IGNvbW1hbmRJRCwgdWludDMyX3Qg
ZWRpdEFjdGlvbiwgU3RyaW5nIGN1c3RvbVVuZG9MYWJlbCkKICAgICBDbGVhckFsbEVkaXRDb21t
YW5kcygpCiAgICAgUmVnaXN0ZXJJbnNlcnRpb25VbmRvR3JvdXBpbmcoKQogICAgIENhblVuZG9S
ZWRvKGVudW06Ym9vbCBXZWJLaXQ6OlVuZG9PclJlZG8gdW5kb09yUmVkbykgLT4gKGJvb2wgcmVz
dWx0KSBMZWdhY3lTeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MubW0KaW5kZXggYjYxMDcyNGY3ZGY4ZWYwYzMyMWEwYzY0MjQ5NWJhYzA2ZmE2
ZTM0My4uMTY0N2ZjNWZlNTcyN2U2ZmQzNTQyMmNmMDBiZThkYTlkZGI4Y2E5OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtMjY3
LDcgKzI2Nyw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVy
dGllcyhjb25zdCBWaWV3cG9ydEF0dHJpYnV0ZXMmKQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpy
ZWdpc3RlckVkaXRDb21tYW5kKFJlZjxXZWJFZGl0Q29tbWFuZFByb3h5PiYmIGNvbW1hbmQsIFVu
ZG9PclJlZG8gdW5kb09yUmVkbykKIHsKLSAgICBhdXRvIGFjdGlvbk5hbWUgPSBXZWJDb3JlOjpu
YW1lRm9yVW5kb1JlZG8oY29tbWFuZC0+ZWRpdEFjdGlvbigpKTsKKyAgICBhdXRvIGFjdGlvbk5h
bWUgPSBjb21tYW5kLT5uYW1lRm9yVW5kb1JlZG8oKTsKICAgICBhdXRvIGNvbW1hbmRPYmpDID0g
YWRvcHROUyhbW1dLRWRpdENvbW1hbmQgYWxsb2NdIGluaXRXaXRoV2ViRWRpdENvbW1hbmRQcm94
eTpXVEZNb3ZlKGNvbW1hbmQpXSk7CiAgICAgCiAgICAgTlNVbmRvTWFuYWdlciAqdW5kb01hbmFn
ZXIgPSBbbV9jb250ZW50VmlldyB1bmRvTWFuYWdlcl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmlu
ZGV4IDAwOTRlMzU2ZDUxNGI4NzdkYjFmMzBiNmE2OGVkMmQ3M2M5ZjEzNTcuLjhiOWZhYjUwOWE5
OTU0YjAxNTI2NWI0YzViNmIwZDkyMWMyOWM3NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBA
IC0zMDIsMjIgKzMwMiwyMyBAQCBTdHJpbmcgV2ViRWRpdG9yQ2xpZW50OjpyZXBsYWNlbWVudFVS
TEZvclJlc291cmNlKFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYgcgogICAgIHJldHVybiBt
X3BhZ2UtPmluamVjdGVkQnVuZGxlRWRpdG9yQ2xpZW50KCkucmVwbGFjZW1lbnRVUkxGb3JSZXNv
dXJjZSgqbV9wYWdlLCBXVEZNb3ZlKHJlc291cmNlRGF0YSksIG1pbWVUeXBlKTsKIH0KIAotdm9p
ZCBXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyVW5kb1N0ZXAoVW5kb1N0ZXAmIHN0ZXApCit2b2lk
IFdlYkVkaXRvckNsaWVudDo6cmVnaXN0ZXJVbmRvU3RlcChSZWY8VW5kb1N0ZXA+JiYgc3RlcCkK
IHsKICAgICAvLyBGSVhNRTogQWRkIGFzc2VydGlvbiB0aGF0IHRoZSBjb21tYW5kIGJlaW5nIHJl
YXBwbGllZCBpcyB0aGUgc2FtZSBjb21tYW5kIHRoYXQgaXMKICAgICAvLyBiZWluZyBwYXNzZWQg
dG8gdXMuCiAgICAgaWYgKG1fcGFnZS0+aXNJblJlZG8oKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgYXV0byB3ZWJTdGVwID0gV2ViVW5kb1N0ZXA6OmNyZWF0ZShzdGVwKTsKKyAgICBhdXRvIGVk
aXRBY3Rpb24gPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oc3RlcC0+ZWRpdGluZ0FjdGlvbigpKTsK
KyAgICBhdXRvIGN1c3RvbU5hbWUgPSBzdGVwLT5jdXN0b21VbmRvTGFiZWwoKTsKKyAgICBhdXRv
IHdlYlN0ZXAgPSBXZWJVbmRvU3RlcDo6Y3JlYXRlKFdURk1vdmUoc3RlcCkpOwogICAgIGF1dG8g
c3RlcElEID0gd2ViU3RlcC0+c3RlcElEKCk7Ci0gICAgYXV0byBlZGl0QWN0aW9uID0gc3RhdGlj
X2Nhc3Q8dWludDMyX3Q+KHdlYlN0ZXAtPnN0ZXAoKS5lZGl0aW5nQWN0aW9uKCkpOwogCiAgICAg
bV9wYWdlLT5hZGRXZWJVbmRvU3RlcChzdGVwSUQsIFdURk1vdmUod2ViU3RlcCkpOwotICAgIG1f
cGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZWdpc3RlckVkaXRDb21tYW5kRm9y
VW5kbyhzdGVwSUQsIGVkaXRBY3Rpb24pLCBtX3BhZ2UtPnBhZ2VJRCgpLCBJUEM6OlNlbmRPcHRp
b246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CisgICAgbV9w
YWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlZ2lzdGVyRWRpdENvbW1hbmRGb3JV
bmRvKHN0ZXBJRCwgZWRpdEFjdGlvbiwgY3VzdG9tTmFtZSksIG1fcGFnZS0+cGFnZUlEKCksIElQ
Qzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5
KTsKIH0KIAotdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyUmVkb1N0ZXAoVW5kb1N0ZXAm
KQordm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyUmVkb1N0ZXAoUmVmPFVuZG9TdGVwPiYm
KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggNDcyMGI3MTE3NTQxMmE1OWEyMjliYzQ3
MTA2ZGFiMmRhM2M4NzU2ZS4uZjQxYjA4NjMyMWMxZjQyODI1YzVhZDlhZTJkOTZhOWUyZDcwNWI2
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtODUsOCArODUsOCBAQCBwcml2YXRlOgogICAgIHZv
aWQgZ2V0Q2xpZW50UGFzdGVib2FyZERhdGFGb3JSYW5nZShXZWJDb3JlOjpSYW5nZSosIFZlY3Rv
cjxTdHJpbmc+JiBwYXN0ZWJvYXJkVHlwZXMsIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6U2hhcmVk
QnVmZmVyPj4mIHBhc3RlYm9hcmREYXRhKSBmaW5hbDsKICAgICBTdHJpbmcgcmVwbGFjZW1lbnRV
UkxGb3JSZXNvdXJjZShSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmIHJlc291cmNlRGF0YSwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgZmluYWw7CiAgICAgCi0gICAgdm9pZCByZWdpc3RlclVu
ZG9TdGVwKFdlYkNvcmU6OlVuZG9TdGVwJikgZmluYWw7Ci0gICAgdm9pZCByZWdpc3RlclJlZG9T
dGVwKFdlYkNvcmU6OlVuZG9TdGVwJikgZmluYWw7CisgICAgdm9pZCByZWdpc3RlclVuZG9TdGVw
KFJlZjxXZWJDb3JlOjpVbmRvU3RlcD4mJikgZmluYWw7CisgICAgdm9pZCByZWdpc3RlclJlZG9T
dGVwKFJlZjxXZWJDb3JlOjpVbmRvU3RlcD4mJikgZmluYWw7CiAgICAgdm9pZCBjbGVhclVuZG9S
ZWRvT3BlcmF0aW9ucygpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5Db3B5Q3V0KFdlYkNvcmU6OkZy
YW1lKiwgYm9vbCBkZWZhdWx0VmFsdWUpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBkZDk3ZDZlYjA3YWUyNTJhNmVjN2Vj
MTVmY2U3N2EzNGYyMTU2NDNjLi41OTY4YTFiZjU5MGMwZjAyZjEyZGViMTEyY2E1YWI4YmJlMmRh
Nzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApA
QCAtMzc5MSwxMiArMzc5MSwxNCBAQCBXZWJVbmRvU3RlcCogV2ViUGFnZTo6d2ViVW5kb1N0ZXAo
V2ViVW5kb1N0ZXBJRCBzdGVwSUQpCiAKIHZvaWQgV2ViUGFnZTo6YWRkV2ViVW5kb1N0ZXAoV2Vi
VW5kb1N0ZXBJRCBzdGVwSUQsIFJlZjxXZWJVbmRvU3RlcD4mJiBlbnRyeSkKIHsKLSAgICBtX3Vu
ZG9TdGVwTWFwLnNldChzdGVwSUQsIFdURk1vdmUoZW50cnkpKTsKKyAgICBhdXRvIGFkZFJlc3Vs
dCA9IG1fdW5kb1N0ZXBNYXAuc2V0KHN0ZXBJRCwgV1RGTW92ZShlbnRyeSkpOworICAgIEFTU0VS
VF9VTlVTRUQoYWRkUmVzdWx0LCBhZGRSZXN1bHQuaXNOZXdFbnRyeSk7CiB9CiAKIHZvaWQgV2Vi
UGFnZTo6cmVtb3ZlV2ViRWRpdENvbW1hbmQoV2ViVW5kb1N0ZXBJRCBzdGVwSUQpCiB7Ci0gICAg
bV91bmRvU3RlcE1hcC5yZW1vdmUoc3RlcElEKTsKKyAgICBpZiAoYXV0byB1bmRvU3RlcCA9IG1f
dW5kb1N0ZXBNYXAudGFrZShzdGVwSUQpKQorICAgICAgICB1bmRvU3RlcC0+aW52YWxpZGF0ZSgp
OwogfQogCiBib29sIFdlYlBhZ2U6OmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVbmRvU3RlcC5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVW5kb1N0ZXAuaAppbmRleCAy
MTFmZDk5ZTVlNmM2OTZmYTdjMzk5ZjdmN2VkZDAzOGFiOGE4ZDhhLi40N2ZiZjVkYjYwNmMwZDEx
MjIwNzMzZWE4ZjcyOTFkMWU5ZmZjNDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJVbmRvU3RlcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlVuZG9TdGVwLmgKQEAgLTM5LDYgKzM5LDggQEAgcHVibGljOgogICAgIFdl
YkNvcmU6OlVuZG9TdGVwJiBzdGVwKCkgY29uc3QgeyByZXR1cm4gbV9zdGVwLmdldCgpOyB9CiAg
ICAgV2ViVW5kb1N0ZXBJRCBzdGVwSUQoKSBjb25zdCB7IHJldHVybiBtX3N0ZXBJRDsgfQogCisg
ICAgdm9pZCBpbnZhbGlkYXRlKCkgeyBtX3N0ZXAtPmludmFsaWRhdGUoKTsgfQorCiBwcml2YXRl
OgogICAgIFdlYlVuZG9TdGVwKFJlZjxXZWJDb3JlOjpVbmRvU3RlcD4mJiBzdGVwLCBXZWJVbmRv
U3RlcElEIHN0ZXBJRCkKICAgICAgICAgOiBtX3N0ZXAoV1RGTW92ZShzdGVwKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmgKaW5kZXggZjBmOTY4YjdlMmI2NmM4OTFkYzE0YjZjMWZhYWYwYjhiYmUxZDE5ZS4uYWYz
NWRiMjVhY2JiZDRhZjMyODI3ZmMyZGE5Y2UxMjg3ZTA1YjgwMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgK
QEAgLTExNCw4ICsxMTQsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgY2FuY2VsZWRDb21wb3NpdGlv
bigpIGZpbmFsOwogICAgIHZvaWQgZGlkVXBkYXRlQ29tcG9zaXRpb24oKSBmaW5hbCB7IH0KIAot
ICAgIHZvaWQgcmVnaXN0ZXJVbmRvU3RlcChXZWJDb3JlOjpVbmRvU3RlcCYpIGZpbmFsOwotICAg
IHZvaWQgcmVnaXN0ZXJSZWRvU3RlcChXZWJDb3JlOjpVbmRvU3RlcCYpIGZpbmFsOworICAgIHZv
aWQgcmVnaXN0ZXJVbmRvU3RlcChSZWY8V2ViQ29yZTo6VW5kb1N0ZXA+JiYpIGZpbmFsOworICAg
IHZvaWQgcmVnaXN0ZXJSZWRvU3RlcChSZWY8V2ViQ29yZTo6VW5kb1N0ZXA+JiYpIGZpbmFsOwog
ICAgIHZvaWQgY2xlYXJVbmRvUmVkb09wZXJhdGlvbnMoKSBmaW5hbDsKIAogICAgIGJvb2wgY2Fu
Q29weUN1dChXZWJDb3JlOjpGcmFtZSosIGJvb2wgZGVmYXVsdFZhbHVlKSBjb25zdCBmaW5hbDsK
QEAgLTE3Miw3ICsxNzIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgaGFuZGxlQWNjZXB0ZWRDYW5k
aWRhdGVXaXRoU29mdFNwYWNlcyhXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQpIGZpbmFsOwog
I2VuZGlmCiAKLSAgICB2b2lkIHJlZ2lzdGVyVW5kb09yUmVkb1N0ZXAoV2ViQ29yZTo6VW5kb1N0
ZXAmLCBib29sIGlzUmVkbyk7CisgICAgdm9pZCByZWdpc3RlclVuZG9PclJlZG9TdGVwKFJlZjxX
ZWJDb3JlOjpVbmRvU3RlcD4mJiwgYm9vbCBpc1JlZG8pOwogCiAgICAgV2ViVmlldyAqbV93ZWJW
aWV3OwogICAgIFJldGFpblB0cjxXZWJFZGl0b3JVbmRvVGFyZ2V0PiBtX3VuZG9UYXJnZXQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQubW0KaW5kZXggY2NjMzNmOTQwZmJjOWU2MzFmZGQ5OGQyZWExNmI5N2UxNTZi
ZDBiMy4uNjU5ZTdmODkyNjljYTdlM2EzMDQyMWJlZjQ1YTI3NjQ2ZjhiMDM4ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5tbQpAQCAtMTI1LDcgKzEyNSw3IEBAIEBpbnRlcmZhY2UgV2ViVW5kb1N0ZXAgOiBO
U09iamVjdAogICAgIFJlZlB0cjxVbmRvU3RlcD4gbV9zdGVwOyAgIAogfQogCi0rIChXZWJVbmRv
U3RlcCAqKXN0ZXBXaXRoVW5kb1N0ZXA6KFVuZG9TdGVwJilzdGVwOworKyAoV2ViVW5kb1N0ZXAg
KilzdGVwV2l0aFVuZG9TdGVwOihSZWY8VW5kb1N0ZXA+JiYpc3RlcDsKIC0gKFVuZG9TdGVwJilz
dGVwOwogCiBAZW5kCkBAIC0xNDEsMTIgKzE0MSwxMiBAQCArICh2b2lkKWluaXRpYWxpemUKICNl
bmRpZgogfQogCi0tIChpZClpbml0V2l0aFVuZG9TdGVwOihVbmRvU3RlcCYpc3RlcAorLSAoaWQp
aW5pdFdpdGhVbmRvU3RlcDooUmVmPFVuZG9TdGVwPiYmKXN0ZXAKIHsKICAgICBzZWxmID0gW3N1
cGVyIGluaXRdOwogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICBtX3N0
ZXAgPSAmc3RlcDsKKyAgICBtX3N0ZXAgPSBXVEZNb3ZlKHN0ZXApOwogICAgIHJldHVybiBzZWxm
OwogfQogCkBAIC0xNTgsOSArMTU4LDkgQEAgLSAodm9pZClkZWFsbG9jCiAgICAgW3N1cGVyIGRl
YWxsb2NdOwogfQogCi0rIChXZWJVbmRvU3RlcCAqKXN0ZXBXaXRoVW5kb1N0ZXA6KFVuZG9TdGVw
JilzdGVwCisrIChXZWJVbmRvU3RlcCAqKXN0ZXBXaXRoVW5kb1N0ZXA6KFJlZjxVbmRvU3RlcD4m
JilzdGVwCiB7Ci0gICAgcmV0dXJuIFtbW1dlYlVuZG9TdGVwIGFsbG9jXSBpbml0V2l0aFVuZG9T
dGVwOnN0ZXBdIGF1dG9yZWxlYXNlXTsKKyAgICByZXR1cm4gW1tbV2ViVW5kb1N0ZXAgYWxsb2Nd
IGluaXRXaXRoVW5kb1N0ZXA6V1RGTW92ZShzdGVwKV0gYXV0b3JlbGVhc2VdOwogfQogCiAtIChV
bmRvU3RlcCYpc3RlcApAQCAtNTg5LDcgKzU4OSw3IEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50Ojpz
aG91bGRJbnNlcnROb2RlKE5vZGUgKm5vZGUsIFJhbmdlKiByZXBsYWNpbmdSYW5nZSwgRWRpdG9y
CiAgICAgcmV0dXJuIFtbbV93ZWJWaWV3IF9lZGl0aW5nRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZp
ZXc6bV93ZWJWaWV3IHNob3VsZEluc2VydE5vZGU6a2l0KG5vZGUpIHJlcGxhY2luZ0RPTVJhbmdl
OmtpdChyZXBsYWNpbmdSYW5nZSkgZ2l2ZW5BY3Rpb246KFdlYlZpZXdJbnNlcnRBY3Rpb24pZ2l2
ZW5BY3Rpb25dOwogfQogCi12b2lkIFdlYkVkaXRvckNsaWVudDo6cmVnaXN0ZXJVbmRvT3JSZWRv
U3RlcChVbmRvU3RlcCYgc3RlcCwgYm9vbCBpc1JlZG8pCit2b2lkIFdlYkVkaXRvckNsaWVudDo6
cmVnaXN0ZXJVbmRvT3JSZWRvU3RlcChSZWY8VW5kb1N0ZXA+JiYgc3RlcCwgYm9vbCBpc1JlZG8p
CiB7CiAgICAgTlNVbmRvTWFuYWdlciAqdW5kb01hbmFnZXIgPSBbbV93ZWJWaWV3IHVuZG9NYW5h
Z2VyXTsKIApAQCAtNjAxLDEwICs2MDEsOSBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVnaXN0
ZXJVbmRvT3JSZWRvU3RlcChVbmRvU3RlcCYgc3RlcCwgYm9vbCBpc1JlZG8pCiAgICAgICAgIHJl
dHVybjsKICNlbmRpZgogCi0gICAgTlNTdHJpbmcgKmFjdGlvbk5hbWUgPSBXZWJDb3JlOjpuYW1l
Rm9yVW5kb1JlZG8oc3RlcC5lZGl0aW5nQWN0aW9uKCkpOwotICAgIFdlYlVuZG9TdGVwICp3ZWJF
bnRyeSA9IFtXZWJVbmRvU3RlcCBzdGVwV2l0aFVuZG9TdGVwOnN0ZXBdOwotICAgIFt1bmRvTWFu
YWdlciByZWdpc3RlclVuZG9XaXRoVGFyZ2V0Om1fdW5kb1RhcmdldC5nZXQoKSBzZWxlY3Rvcjoo
aXNSZWRvID8gQHNlbGVjdG9yKHJlZG9FZGl0aW5nOikgOiBAc2VsZWN0b3IodW5kb0VkaXRpbmc6
KSkgb2JqZWN0OndlYkVudHJ5XTsKLSAgICBpZiAoYWN0aW9uTmFtZSkKKyAgICBTdHJpbmcgYWN0
aW9uTmFtZSA9IHN0ZXAtPmN1c3RvbVVuZG9MYWJlbCgpLmlzRW1wdHkoKSA/IFdlYkNvcmU6Om5h
bWVGb3JVbmRvUmVkbyhzdGVwLT5lZGl0aW5nQWN0aW9uKCkpIDogc3RlcC0+Y3VzdG9tVW5kb0xh
YmVsKCk7CisgICAgW3VuZG9NYW5hZ2VyIHJlZ2lzdGVyVW5kb1dpdGhUYXJnZXQ6bV91bmRvVGFy
Z2V0LmdldCgpIHNlbGVjdG9yOihpc1JlZG8gPyBAc2VsZWN0b3IocmVkb0VkaXRpbmc6KSA6IEBz
ZWxlY3Rvcih1bmRvRWRpdGluZzopKSBvYmplY3Q6W1dlYlVuZG9TdGVwIHN0ZXBXaXRoVW5kb1N0
ZXA6V1RGTW92ZShzdGVwKV1dOworICAgIGlmICghYWN0aW9uTmFtZS5pc0VtcHR5KCkpCiAgICAg
ICAgIFt1bmRvTWFuYWdlciBzZXRBY3Rpb25OYW1lOmFjdGlvbk5hbWVdOwogICAgIG1faGF2ZVVu
ZG9SZWRvT3BlcmF0aW9ucyA9IFlFUzsKIH0KQEAgLTYyOSwxNCArNjI4LDE0IEBAIHZvaWQgV2Vi
RWRpdG9yQ2xpZW50Ojp1cGRhdGVFZGl0b3JTdGF0ZUFmdGVyTGF5b3V0SWZFZGl0YWJpbGl0eUNo
YW5nZWQoKQogICAgICAgICBbbV93ZWJWaWV3IHVwZGF0ZVRvdWNoQmFyXTsKIH0KIAotdm9pZCBX
ZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyVW5kb1N0ZXAoVW5kb1N0ZXAmIGNtZCkKK3ZvaWQgV2Vi
RWRpdG9yQ2xpZW50OjpyZWdpc3RlclVuZG9TdGVwKFJlZjxVbmRvU3RlcD4mJiBjb21tYW5kKQog
ewotICAgIHJlZ2lzdGVyVW5kb09yUmVkb1N0ZXAoY21kLCBmYWxzZSk7CisgICAgcmVnaXN0ZXJV
bmRvT3JSZWRvU3RlcChXVEZNb3ZlKGNvbW1hbmQpLCBmYWxzZSk7CiB9CiAKLXZvaWQgV2ViRWRp
dG9yQ2xpZW50OjpyZWdpc3RlclJlZG9TdGVwKFVuZG9TdGVwJiBjbWQpCit2b2lkIFdlYkVkaXRv
ckNsaWVudDo6cmVnaXN0ZXJSZWRvU3RlcChSZWY8VW5kb1N0ZXA+JiYgY29tbWFuZCkKIHsKLSAg
ICByZWdpc3RlclVuZG9PclJlZG9TdGVwKGNtZCwgdHJ1ZSk7CisgICAgcmVnaXN0ZXJVbmRvT3JS
ZWRvU3RlcChXVEZNb3ZlKGNvbW1hbmQpLCB0cnVlKTsKIH0KIAogdm9pZCBXZWJFZGl0b3JDbGll
bnQ6OmNsZWFyVW5kb1JlZG9PcGVyYXRpb25zKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlOTQ1MGVhMDkzZTI2ZjIxYWQ3NzE3ZWYyNjRmOGY0
MTg1NDFjMDk5Li42Mjk2ZmVmZGUyYjlhY2ZiYTNhN2UxYmU0ODhhYzNjMDgwOWY1MzkwIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzUgQEAKKzIwMTktMDEtMTkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CisKKyAgICAgICAgW0NvY29hXSBBbGxvdyB0aGUgcGFnZSB0byBhZGQgdG8gdGhlIHBsYXRmb3Jt
IHVuZG8gc3RhY2sgdmlhIFVuZG9NYW5hZ2VyLmFkZEl0ZW0oKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMTExCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS80NDgwNzA0OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgVUlTY3JpcHRDb250cm9sbGVyIGhlbHBlcnMgdG8gZ3JhYiB0aGUgcGxhdGZv
cm0gdW5kbyBhbmQgcmVkbyBhY3Rpb24gbGFiZWxzLiBDdXJyZW50bHkgb25seSBpbXBsZW1lbnRl
ZCBmb3IKKyAgICAgICAgQ29jb2EgcGxhdGZvcm1zIGluIFdlYktpdDIuIFNlZSBvdGhlciBDaGFu
Z2VMb2dzIGZvciBtb3JlIGRldGFpbC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2lvcy9V
SVNjcmlwdENvbnRyb2xsZXJJT1MubW06CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxl
cjo6dW5kb0FjdGlvbk5hbWUgY29uc3QpOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xs
ZXI6OnJlZG9BY3Rpb25OYW1lIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9s
bGVyOjpwbGF0Zm9ybVVuZG9NYW5hZ2VyIGNvbnN0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENv
bnRyb2xsZXI6OnVuZG9BY3Rpb25OYW1lIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRD
b250cm9sbGVyOjpyZWRvQWN0aW9uTmFtZSBjb25zdCk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0
Q29udHJvbGxlcjo6cGxhdGZvcm1VbmRvTWFuYWdlciBjb25zdCk6CisgICAgICAgICogVGVzdFJ1
bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlk
bDoKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnVuZG9BY3Rp
b25OYW1lIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpyZWRvQWN0
aW9uTmFtZSBjb25zdCk6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRl
eHQvVUlTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9VSVNj
cmlwdENvbnRyb2xsZXJDb2NvYS5tbToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVy
Ojp1bmRvQWN0aW9uTmFtZSBjb25zdCk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxl
cjo6cmVkb0FjdGlvbk5hbWUgY29uc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvaW9z
L1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9s
bGVyOjpwbGF0Zm9ybVVuZG9NYW5hZ2VyIGNvbnN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXVFI6OlVJU2NyaXB0
Q29udHJvbGxlcjo6cGxhdGZvcm1VbmRvTWFuYWdlciBjb25zdCk6CisKIDIwMTktMDEtMTggIFpo
aWZlaSBGQU5HICA8emhpZmVpX2ZhbmdAYXBwbGUuY29tPgogCiAgICAgICAgIERpc2FibGUgdGhl
IHJ1bi1qc2Mtc3RyZXNzLXRlc3QgcmVtb3RlIGhvc3Qga2V5IGNoZWNrIFtzZWNvbmQgcm91bmRd
LgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxl
cklPUy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1Mu
bW0KaW5kZXggOGExMTI1ZjRlZjkxOTg0NTI2NjllMDQxOWM1ODlhODkwMmU4YTY3MC4uNzdlMzI2
NmJkOWQ4NDNmMzI1Nzc1OTEzNTA4ZGJmYTk1ZDU1OGI0NSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCkBAIC00NTAsNiArNDUwLDIx
IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXRLZXlib2FyZElucHV0TW9kZUlkZW50aWZp
ZXIoSlNTdHJpbmdSZWYpCiB7CiB9CiAKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBVSVNjcmlw
dENvbnRyb2xsZXI6OnVuZG9BY3Rpb25OYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IFVJU2NyaXB0Q29udHJvbGxlcjo6cmVk
b0FjdGlvbk5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBudWxscHRyOworfQorCitOU1VuZG9N
YW5hZ2VyICpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtVW5kb01hbmFnZXIoKSBjb25zdAor
eworICAgIHJldHVybiBuaWw7Cit9CisKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1J
TFkpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9s
bGVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1h
Yy5tbQppbmRleCBjNDQ1MTQ1ZjMzYmVmMGNjMTk0OWUzZDVhYWUwZjUzM2JlZTE0MmQ3Li5iODA2
ODQ2MTM3YWEyMWY5YzZmZTYzZWEzNWJhZmJmYzIxMzMyOWFmIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KQEAgLTIxNSw2ICsyMTUs
MjEgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnRvZ2dsZUNhcHNMb2NrKEpTVmFsdWVSZWYg
Y2FsbGJhY2spCiAgICAgZG9Bc3luY1Rhc2soY2FsbGJhY2spOwogfQogCitKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gVUlTY3JpcHRDb250cm9sbGVyOjp1bmRvQWN0aW9uTmFtZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBVSVNj
cmlwdENvbnRyb2xsZXI6OnJlZG9BY3Rpb25OYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworTlNVbmRvTWFuYWdlciAqVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVVu
ZG9NYW5hZ2VyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbmlsOworfQorCiB9CiAKICNlbmRpZiAv
LyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2Ny
aXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsIGIvVG9vbHMvVGVzdFJ1
bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlk
bAppbmRleCA1NDI0YmE4YThjZmJlNGFkODE0YzBkYWJlNjExNzMzN2VlZGY5NjdjLi5jOWE0YmJm
MWM1ZWIxYTVmMTFkZDI4MDIxNGMzY2FkOWUwYTUwNjRlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIu
aWRsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdz
L1VJU2NyaXB0Q29udHJvbGxlci5pZGwKQEAgLTI5MCw4ICsyOTAsMTEgQEAgaW50ZXJmYWNlIFVJ
U2NyaXB0Q29udHJvbGxlciB7CiAgICAgdm9pZCBtYWtlV2luZG93Q29udGVudFZpZXdGaXJzdFJl
c3BvbmRlcigpOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzV2luZG93Q29udGVu
dFZpZXdGaXJzdFJlc3BvbmRlcjsKIAorICAgIG9iamVjdCBhdHRhY2htZW50SW5mbyhET01TdHJp
bmcgYXR0YWNobWVudElkZW50aWZpZXIpOworCisgICAgLy8gRWRpdGluZwogICAgIHZvaWQgZHJh
d1NxdWFyZUluRWRpdGFibGVJbWFnZSgpOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIG51
bWJlck9mU3Ryb2tlc0luRWRpdGFibGVJbWFnZTsKLQotICAgIG9iamVjdCBhdHRhY2htZW50SW5m
byhET01TdHJpbmcgYXR0YWNobWVudElkZW50aWZpZXIpOworICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgdW5kb0FjdGlvbk5hbWU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyByZWRvQWN0aW9uTmFtZTsKIH07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvVGVzdFJ1
bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBh
NWJhYTA2Y2Q1MzMyMDA1OTlmM2FmNTY4OTNlMzc1ZjZlMDIzM2MxLi5kMTYzYWI4N2RkYjllMjE4
NjljYTY3MDI2MzA3ODUwZTUxYTcxYzlhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHAKQEAg
LTI0NSw2ICsyNDUsMTYgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnRvZ2dsZUNhcHNMb2Nr
KEpTVmFsdWVSZWYpCiB7CiB9CiAKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBVSVNjcmlwdENv
bnRyb2xsZXI6OnVuZG9BY3Rpb25OYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IFVJU2NyaXB0Q29udHJvbGxlcjo6cmVkb0Fj
dGlvbk5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBudWxscHRyOworfQorCiAjZW5kaWYgLy8g
IVBMQVRGT1JNKENPQ09BKQogCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxheUJhY2tFdmVu
dFN0cmVhbShKU1N0cmluZ1JlZiBzdHJlYW0sIEpTVmFsdWVSZWYgY2FsbGJhY2spCkBAIC01Njks
NiArNTc5LDE2IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpvdmVycmlkZVByZWZlcmVuY2Uo
SlNTdHJpbmdSZWYsIEpTU3RyaW5nUmVmKQogewogfQogCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gVUlTY3JpcHRDb250cm9sbGVyOjp1bmRvQWN0aW9uTmFtZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBVSVNjcmlwdENvbnRy
b2xsZXI6OnJlZG9BY3Rpb25OYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KwogI2VuZGlmIC8vICFQTEFURk9STShDT0NPQSkKIAogI2lmICFQTEFURk9STShNQUMpCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENv
bnRyb2xsZXIuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2Ny
aXB0Q29udHJvbGxlci5oCmluZGV4IGQzZmIxY2JiMDkyNTBhODI3OWRmY2IyOGJiZjhjOTAyN2Y3
MDIxY2IuLmZmN2E4ZTk1NDE2OTBkMjZlMDM2ZDgzNWQ0ODgzNzVhYjI3MjBlOGYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJv
bGxlci5oCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2Ny
aXB0Q29udHJvbGxlci5oCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSA8d3RmL09wdGlvbmFs
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCitPQkpDX0NMQVNTIE5TVW5kb01hbmFnZXI7CisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZsb2F0UmVjdDsKIH0KQEAgLTIwNiw2ICsyMDgs
OSBAQCBwdWJsaWM6CiAgICAgdm9pZCBkcmF3U3F1YXJlSW5FZGl0YWJsZUltYWdlKCk7CiAgICAg
bG9uZyBudW1iZXJPZlN0cm9rZXNJbkVkaXRhYmxlSW1hZ2UoKTsKIAorICAgIEpTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiB1bmRvQWN0aW9uTmFtZSgpIGNvbnN0OworICAgIEpTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiByZWRvQWN0aW9uTmFtZSgpIGNvbnN0OworCiAgICAgSlNPYmplY3RSZWYgYXR0
YWNobWVudEluZm8oSlNTdHJpbmdSZWYgYXR0YWNobWVudElkZW50aWZpZXIpOwogCiBwcml2YXRl
OgpAQCAtMjI1LDYgKzIzMCwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1DbGVhckFs
bENhbGxiYWNrcygpOwogICAgIHZvaWQgcGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKEpTU3Ry
aW5nUmVmLCBKU1ZhbHVlUmVmKTsKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIE5TVW5kb01h
bmFnZXIgKnBsYXRmb3JtVW5kb01hbmFnZXIoKSBjb25zdDsKKyNlbmRpZgorCiAgICAgSlNDbGFz
c1JlZiB3cmFwcGVyQ2xhc3MoKSBmaW5hbDsKIAogICAgIEpTT2JqZWN0UmVmIG9iamVjdEZyb21S
ZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0KaW5kZXggYTdiOThlNDA0Yjgz
MTAyMjk0OTM3ZjY0NmY2NGVjZjg5MjU3MTJmNi4uNzNhNmM5OGFlNmZlY2YxYTM3NWJkYWNlOWFj
OGJkYjAzZWZiMzY0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9VSVNjcmlw
dENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1VJU2NyaXB0
Q29udHJvbGxlckNvY29hLm1tCkBAIC0xOTIsNSArMTkyLDE1IEBAIEpTT2JqZWN0UmVmIFVJU2Ny
aXB0Q29udHJvbGxlcjo6Y2FsZW5kYXJUeXBlKCkgY29uc3QKICAgICByZXR1cm4gbnVsbHB0cjsK
ICNlbmRpZgogfQotICAgIAorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gVUlTY3JpcHRDb250
cm9sbGVyOjp1bmRvQWN0aW9uTmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3Jl
YXRlV2l0aENGU3RyaW5nKChfX2JyaWRnZSBDRlN0cmluZ1JlZilwbGF0Zm9ybVVuZG9NYW5hZ2Vy
KCkudW5kb0FjdGlvbk5hbWUpOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gVUlTY3Jp
cHRDb250cm9sbGVyOjpyZWRvQWN0aW9uTmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEpTU3Ry
aW5nQ3JlYXRlV2l0aENGU3RyaW5nKChfX2JyaWRnZSBDRlN0cmluZ1JlZilwbGF0Zm9ybVVuZG9N
YW5hZ2VyKCkucmVkb0FjdGlvbk5hbWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5t
bSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQpp
bmRleCA0YWE5NDI5MDU3ODc0OGNmODFiYzUzNTUwNzZkZmEyN2E4YTgxYzVkLi5lNjU0MDM5NDU0
ZWEwMTk3OGM4Y2U0NTA1NTk2NzgxYmJhODc1ZmJlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCkBAIC05NzEsNiArOTcxLDEx
IEBAIEpTT2JqZWN0UmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6YXR0YWNobWVudEluZm8oSlNTdHJp
bmdSZWYganNBdHRhY2htZW50SWRlbnRpZmllCiAgICAgcmV0dXJuIEpTVmFsdWVUb09iamVjdCht
X2NvbnRleHQtPmpzQ29udGV4dCgpLCBbSlNWYWx1ZSB2YWx1ZVdpdGhPYmplY3Q6YXR0YWNobWVu
dEluZm9EaWN0aW9uYXJ5IGluQ29udGV4dDpbSlNDb250ZXh0IGNvbnRleHRXaXRoSlNHbG9iYWxD
b250ZXh0UmVmOm1fY29udGV4dC0+anNDb250ZXh0KCldXS5KU1ZhbHVlUmVmLCBudWxscHRyKTsK
IH0KIAorTlNVbmRvTWFuYWdlciAqVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVVuZG9NYW5h
Z2VyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gWyhVSVZpZXcgKilbVGVzdENvbnRyb2xsZXI6OnNp
bmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpIHZhbHVlRm9yS2V5UGF0aDpA
Il9jdXJyZW50Q29udGVudFZpZXciXSB1bmRvTWFuYWdlcl07Cit9CisKIH0KIAogI2VuZGlmIC8v
IFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21h
Yy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KaW5kZXggMjE4ODgxMTUyYTg5NWNkZGI2YTdmNDA3
MTZmMTkwMGE1ZDc3YWMzYi4uNzU3ZmEwNmJkNzhmMTgzM2YxM2IzOGNiYzliMDMwZjkzNDE5NzYz
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9s
bGVyTWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJv
bGxlck1hYy5tbQpAQCAtMjA5LDQgKzIwOSw5IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjp0
b2dnbGVDYXBzTG9jayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQogICAgIGRvQXN5bmNUYXNrKGNhbGxi
YWNrKTsKIH0KIAorTlNVbmRvTWFuYWdlciAqVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVVu
ZG9NYW5hZ2VyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRv
bigpLm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpLnVuZG9NYW5hZ2VyOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzNTQ2MTc4YTA3MmFmOWI3MzllZDY0ZjI3Mjc1YjUzYjFj
MjM5YTNkLi42Yjc1M2I3YTliZjJiZTlhMzc3NWE1NTFjODk0NzJmMDcwYmRiYjc3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDIgQEAKKzIwMTktMDEtMTkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBbGxvdyB0aGUgcGFnZSB0byBhZGQgdG8gdGhl
IHBsYXRmb3JtIHVuZG8gc3RhY2sgdmlhIFVuZG9NYW5hZ2VyLmFkZEl0ZW0oKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMTExCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS80NDgwNzA0OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYSBmZXcgbmV3IGxheW91dCB0ZXN0cyBjb3ZlcmluZyBgVW5k
b01hbmFnZXIuYWRkSXRlbSgpYC4KKworICAgICAgICAqIGVkaXRpbmcvdW5kby1tYW5hZ2VyL3Vu
ZG8tbWFuYWdlci1hZGQtaXRlbS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRp
bmcvdW5kby1tYW5hZ2VyL3VuZG8tbWFuYWdlci1hZGQtaXRlbS5odG1sOiBBZGRlZC4KKworICAg
ICAgICBBZGQgYSB0ZXN0IHRoYXQgZXhlcmNpc2VzIHRoZSBuZXcgQVBJIGluIGJvdGggdGhlIHRv
cC1sZXZlbCBjb250ZXh0IGFuZCBhIGNoaWxkIGZyYW1lLgorCisgICAgICAgICogZWRpdGluZy91
bmRvLW1hbmFnZXIvdW5kby1tYW5hZ2VyLWRlbGV0ZS1zdGFsZS11bmRvLWl0ZW1zLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy91bmRvLW1hbmFnZXIvdW5kby1tYW5hZ2Vy
LWRlbGV0ZS1zdGFsZS11bmRvLWl0ZW1zLmh0bWw6IEFkZGVkLgorCisgICAgICAgIEFkZCBhIHRl
c3QgdG8gdmVyaWZ5IHRoYXQgYWZ0ZXIgYWRkaW5nIHVuZG8gaXRlbXMsIHVuZG9pbmcsIGFuZCB0
aGVuIHBlcmZvcm1pbmcgb3RoZXIgZWRpdCBhY3Rpb25zLCBnYXJiYWdlCisgICAgICAgIGNvbGxl
Y3Rpb24gd2lsbCBkZXN0cm95IEpTIHdyYXBwZXJzIGZvciB0aGUgcHJldmlvdXNseSBhZGRlZCBV
bmRvSXRlbXMsIHNpbmNlIHRoZXNlIHVuZG8gaXRlbXMnIGhhbmRsZXJzIGNhbiBubworICAgICAg
ICBsb25nZXIgYmUgaW52b2tlZC4KKworICAgICAgICAqIGVkaXRpbmcvdW5kby1tYW5hZ2VyL3Vu
ZG8tbWFuYWdlci1pdGVtLWxhYmVscy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVk
aXRpbmcvdW5kby1tYW5hZ2VyL3VuZG8tbWFuYWdlci1pdGVtLWxhYmVscy5odG1sOiBBZGRlZC4K
KworICAgICAgICBBZGQgYSB0ZXN0IHZlcmlmeWluZyB0aGF0IHRoZSB1bmRvIGFuZCByZWRvIGFj
dGlvbiBsYWJlbHMgYXJlIHVwZGF0ZWQgY29ycmVjdGx5IHdoZW4gdW5kb2luZyBhbmQgcmVkb2lu
Zy4KKworICAgICAgICAqIGVkaXRpbmcvdW5kby1tYW5hZ2VyL3VuZG8tbWFuYWdlci11bmRvLXJl
ZG8tYWZ0ZXItZ2FyYmFnZS1jb2xsZWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZWRpdGluZy91bmRvLW1hbmFnZXIvdW5kby1tYW5hZ2VyLXVuZG8tcmVkby1hZnRlci1nYXJi
YWdlLWNvbGxlY3Rpb24uaHRtbDogQWRkZWQuCisKKyAgICAgICAgQWRkIGEgdGVzdCB0byB2ZXJp
ZnkgdGhhdCB0cmlnZ2VyaW5nIGdhcmJhZ2UgY29sbGVjdGlvbiBhZnRlciBhZGRpbmcgYW4gdW5k
byBpdGVtIHdpdGhvdXQga2VlcGluZyByZWZlcmVuY2VzIHRvCisgICAgICAgIHRoZSBpdGVtIChv
ciBpdHMgdW5kby9yZWRvIGhhbmRsZXJzKSBkb2Vzbid0IGJyZWFrIHRoZSBBUEkuCisKKyAgICAg
ICAgKiByZXNvdXJjZXMvdWktaGVscGVyLmpzOgorICAgICAgICAod2luZG93LlVJSGVscGVyLnVu
ZG9BbmRSZWRvQWN0aW9uTmFtZXMpOgorICAgICAgICAod2luZG93LlVJSGVscGVyKToKKworICAg
ICAgICBBZGQgYSBoZWxwZXIgbWV0aG9kIHRvIGdyYWIgdGhlIHBsYXRmb3JtJ3MgY3VycmVudCB1
bmRvIGFuZCByZWRvIGFjdGlvbiBuYW1lcy4KKwogMjAxOS0wMS0xOCAgSnVzdGluIEZhbiAgPGp1
c3Rpbl9mYW5AYXBwbGUuY29tPgogCiAgICAgICAgIChXSVApIFtXZWJHUFVdIFdlYkdQVVByb2dy
YW1tYWJsZVBhc3NFbmNvZGVyOjpzZXRCaW5kR3JvdXAgcHJvdG90eXBlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL3VuZG8tbWFuYWdlci91bmRvLW1hbmFnZXItYWRkLWl0ZW0tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvLW1hbmFnZXIvdW5kby1tYW5hZ2Vy
LWFkZC1pdGVtLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTZkYTg5OTE2YzdiZjQ0MDgxNmE1
NTFlZmVhY2Q3MzQwZDgxMzZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy91bmRvLW1hbmFnZXIvdW5kby1tYW5hZ2VyLWFkZC1pdGVtLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMyIEBACitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBVbmRvTWFuYWdlci5hZGRJdGVtKCkg
Y2FuIGJlIHVzZWQgdG8gYWRkIHVuZG8gaXRlbXMgdG8gdGhlIHBsYXRmb3JtIHVuZG8gc3RhY2su
CisKKworQWZ0ZXIgYWRkaW5nIGFuIHVuZG8gaXRlbSAobWFpbmZyYW1lKToKK1BBU1MgdW5kb05h
bWUgaXMgIm1haW5mcmFtZSIKK1BBU1MgcmVkb05hbWUgaXMgIiIKK0FmdGVyIHBlcmZvcm1pbmcg
dW5kbyAobWFpbmZyYW1lKToKKyoqIFVORE8gKioKK1BBU1MgdW5kb05hbWUgaXMgIiIKK1BBU1Mg
cmVkb05hbWUgaXMgIm1haW5mcmFtZSIKK0FmdGVyIHBlcmZvcm1pbmcgcmVkbyAobWFpbmZyYW1l
KToKKyoqIFJFRE8gKioKK1BBU1MgdW5kb05hbWUgaXMgIm1haW5mcmFtZSIKK1BBU1MgcmVkb05h
bWUgaXMgIiIKK0FmdGVyIGFkZGluZyBhbiB1bmRvIGl0ZW0gKHN1YmZyYW1lKToKK1BBU1MgdW5k
b05hbWUgaXMgInN1YmZyYW1lIgorUEFTUyByZWRvTmFtZSBpcyAiIgorQWZ0ZXIgcGVyZm9ybWlu
ZyB1bmRvIChzdWJmcmFtZSk6CitQQVNTIHVuZG9OYW1lIGlzICJtYWluZnJhbWUiCitQQVNTIHJl
ZG9OYW1lIGlzICJzdWJmcmFtZSIKK0FmdGVyIHBlcmZvcm1pbmcgcmVkbyAoc3ViZnJhbWUpOgor
UEFTUyB1bmRvTmFtZSBpcyAic3ViZnJhbWUiCitQQVNTIHJlZG9OYW1lIGlzICIiCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCistLS0tLS0tLQor
RnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1VORE8sIFJFRE8KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvdW5kby1tYW5hZ2VyL3VuZG8tbWFuYWdlci1hZGQtaXRlbS5o
dG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvLW1hbmFnZXIvdW5kby1tYW5hZ2VyLWFkZC1p
dGVtLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZmVjNjE4OTBiMWI4MWZmN2U1MDNlOGJiMzVjYjg1OGQ5MmE3
YzU5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvdW5kby1tYW5hZ2Vy
L3VuZG8tbWFuYWdlci1hZGQtaXRlbS5odG1sCkBAIC0wLDAgKzEsOTMgQEAKKzwhRE9DVFlQRSBo
dG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVVuZG9NYW5hZ2VyQVBJPXRydWUg
XSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAg
ICAgIGZ1bmN0aW9uIGFkZFVuZG9JdGVtKCkKKyAgICAgICAgeworICAgICAgICAgICAgZG9jdW1l
bnQudW5kb01hbmFnZXIuYWRkSXRlbShuZXcgVW5kb0l0ZW0oeworICAgICAgICAgICAgICAgIGxh
YmVsOiAibWFpbmZyYW1lIiwKKyAgICAgICAgICAgICAgICB1bmRvOiAoKSA9PiBkZWJ1ZygiKiog
VU5ETyAqKiIpLAorICAgICAgICAgICAgICAgIHJlZG86ICgpID0+IGRlYnVnKCIqKiBSRURPICoq
IikKKyAgICAgICAgICAgIH0pKTsKKyAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8
L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IDxj
b2RlPlVuZG9NYW5hZ2VyLmFkZEl0ZW0oKTwvY29kZT4gY2FuIGJlIHVzZWQgdG8gYWRkIHVuZG8g
aXRlbXMgdG8gdGhlIHBsYXRmb3JtIHVuZG8gc3RhY2suPC9wPgorICAgICAgICA8aWZyYW1lIGlk
PSJmcmFtZSIgc3JjZG9jPSIKKyAgICAgICAgICAgIDxib2R5PgorICAgICAgICAgICAgICAgIDxw
cmUgaWQ9J291dHB1dCc+PC9wcmU+CisgICAgICAgICAgICA8L2JvZHk+CisgICAgICAgICAgICA8
c2NyaXB0PgorICAgICAgICAgICAgZnVuY3Rpb24gYXBwZW5kT3V0cHV0KHN0cmluZykKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAob3V0cHV0LnRleHRDb250ZW50Lmxlbmd0aCkK
KyAgICAgICAgICAgICAgICAgICAgb3V0cHV0LnRleHRDb250ZW50ICs9ICcsICc7CisgICAgICAg
ICAgICAgICAgb3V0cHV0LnRleHRDb250ZW50ICs9IHN0cmluZzsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgZnVuY3Rpb24gYWRkVW5kb0l0ZW0oKQorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIGRvY3VtZW50LnVuZG9NYW5hZ2VyLmFkZEl0ZW0obmV3IFVuZG9JdGVtKHsKKyAg
ICAgICAgICAgICAgICAgICAgbGFiZWw6ICdzdWJmcmFtZScsCisgICAgICAgICAgICAgICAgICAg
IHVuZG86ICgpID0+IGFwcGVuZE91dHB1dCgnVU5ETycpLAorICAgICAgICAgICAgICAgICAgICBy
ZWRvOiAoKSA9PiBhcHBlbmRPdXRwdXQoJ1JFRE8nKQorICAgICAgICAgICAgICAgIH0pKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIDwvc2NyaXB0PgorICAgICAgICAiPjwvaWZyYW1lPgor
ICAgICAgICA8cHJlIGlkPSdjb25zb2xlJz48L3ByZT4KKyAgICA8L2JvZHk+CisgICAgPHNjcmlw
dD4KKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHVuZG9OYW1lID0gbnVs
bDsKKyAgICAgICAgcmVkb05hbWUgPSBudWxsOworCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisK
KyAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAg
ICAgIGRlYnVnKCJBZnRlciBhZGRpbmcgYW4gdW5kbyBpdGVtIChtYWluZnJhbWUpOiIpOworICAg
ICAgICAgICAgYWRkVW5kb0l0ZW0oKTsKKyAgICAgICAgICAgIFt1bmRvTmFtZSwgcmVkb05hbWVd
ID0gYXdhaXQgVUlIZWxwZXIudW5kb0FuZFJlZG9BY3Rpb25OYW1lcygpOworICAgICAgICAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ1bmRvTmFtZSIsICJtYWluZnJhbWUiKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVkb05hbWUiLCAiIik7CisKKyAgICAgICAgICAg
IGRlYnVnKCJBZnRlciBwZXJmb3JtaW5nIHVuZG8gKG1haW5mcmFtZSk6Iik7CisgICAgICAgICAg
ICBkb2N1bWVudC5leGVjQ29tbWFuZCgidW5kbyIpOworICAgICAgICAgICAgW3VuZG9OYW1lLCBy
ZWRvTmFtZV0gPSBhd2FpdCBVSUhlbHBlci51bmRvQW5kUmVkb0FjdGlvbk5hbWVzKCk7CisgICAg
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInVuZG9OYW1lIiwgIiIpOworICAgICAgICAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWRvTmFtZSIsICJtYWluZnJhbWUiKTsKKworICAg
ICAgICAgICAgZGVidWcoIkFmdGVyIHBlcmZvcm1pbmcgcmVkbyAobWFpbmZyYW1lKToiKTsKKyAg
ICAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJyZWRvIik7CisgICAgICAgICAgICBbdW5k
b05hbWUsIHJlZG9OYW1lXSA9IGF3YWl0IFVJSGVscGVyLnVuZG9BbmRSZWRvQWN0aW9uTmFtZXMo
KTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidW5kb05hbWUiLCAibWFpbmZy
YW1lIik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZG9OYW1lIiwgIiIp
OworCisgICAgICAgICAgICBjb25zdCBmcmFtZVdpbmRvdyA9IGZyYW1lLmNvbnRlbnRXaW5kb3c7
CisKKyAgICAgICAgICAgIGRlYnVnKCJBZnRlciBhZGRpbmcgYW4gdW5kbyBpdGVtIChzdWJmcmFt
ZSk6Iik7CisgICAgICAgICAgICBmcmFtZVdpbmRvdy5hZGRVbmRvSXRlbSgpOworICAgICAgICAg
ICAgW3VuZG9OYW1lLCByZWRvTmFtZV0gPSBhd2FpdCBVSUhlbHBlci51bmRvQW5kUmVkb0FjdGlv
bk5hbWVzKCk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInVuZG9OYW1lIiwg
InN1YmZyYW1lIik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZG9OYW1l
IiwgIiIpOworCisgICAgICAgICAgICBkZWJ1ZygiQWZ0ZXIgcGVyZm9ybWluZyB1bmRvIChzdWJm
cmFtZSk6Iik7CisgICAgICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgidW5kbyIpOworICAg
ICAgICAgICAgW3VuZG9OYW1lLCByZWRvTmFtZV0gPSBhd2FpdCBVSUhlbHBlci51bmRvQW5kUmVk
b0FjdGlvbk5hbWVzKCk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInVuZG9O
YW1lIiwgIm1haW5mcmFtZSIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZWRvTmFtZSIsICJzdWJmcmFtZSIpOworCisgICAgICAgICAgICBkZWJ1ZygiQWZ0ZXIgcGVyZm9y
bWluZyByZWRvIChzdWJmcmFtZSk6Iik7CisgICAgICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFu
ZCgicmVkbyIpOworICAgICAgICAgICAgW3VuZG9OYW1lLCByZWRvTmFtZV0gPSBhd2FpdCBVSUhl
bHBlci51bmRvQW5kUmVkb0FjdGlvbk5hbWVzKCk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInVuZG9OYW1lIiwgInN1YmZyYW1lIik7CisgICAgICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlZG9OYW1lIiwgIiIpOworCisgICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICAgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL3VuZG8tbWFuYWdlci91bmRvLW1hbmFnZXItZGVsZXRlLXN0YWxlLXVu
ZG8taXRlbXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvLW1hbmFnZXIv
dW5kby1tYW5hZ2VyLWRlbGV0ZS1zdGFsZS11bmRvLWl0ZW1zLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43N2UxY2MyZGE1NjMzZWU3MWE5OTEyYTFjZTBlYmY2MWFjZjVlY2I4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvLW1hbmFnZXIvdW5kby1tYW5hZ2VyLWRl
bGV0ZS1zdGFsZS11bmRvLWl0ZW1zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitFCitW
ZXJpZmllcyB0aGF0IEpTVW5kb0l0ZW1zIGFyZSBkZWxldGVkIHdoZW4gdGhleSBhcmUgbm8gbG9u
Z2VyIG5lZWRlZCBieSB0aGUgcGxhdGZvcm0gY2xpcGJvYXJkLiBUaGlzIHRlc3QgcmVxdWlyZXMg
V2ViS2l0VGVzdFJ1bm5lci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIG9i
amVjdENvdW50QmVmb3JlQ2xlYXJpbmdVbmRvU3RhY2sgLSBvYmplY3RDb3VudEFmdGVyQ2xlYXJp
bmdVbmRvU3RhY2sgaXMgPj0gNTgwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvLW1h
bmFnZXIvdW5kby1tYW5hZ2VyLWRlbGV0ZS1zdGFsZS11bmRvLWl0ZW1zLmh0bWwgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3VuZG8tbWFuYWdlci91bmRvLW1hbmFnZXItZGVsZXRlLXN0YWxlLXVuZG8t
aXRlbXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNTI4OTAwNTZmNTkzNjU2YzFkNzk1NGU5OGM4MDI3NWFl
OTM0Y2E2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvLW1hbmFn
ZXIvdW5kby1tYW5hZ2VyLWRlbGV0ZS1zdGFsZS11bmRvLWl0ZW1zLmh0bWwKQEAgLTAsMCArMSw2
NiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlVW5k
b01hbmFnZXJBUEk9dHJ1ZSBdIC0tPgorPGh0bWw+CisgICAgPG1ldGEgY2hhcnNldD0idXRmOCI+
CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9lZGl0aW5nLmpzIj48L3Nj
cmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisK
KyAgICAgICAgZnVuY3Rpb24gb2JqZWN0Q291bnRBZnRlclNpbXVsYXRpbmdNZW1vcnlQcmVzc3Vy
ZUFuZEdhcmJhZ2VDb2xsZWN0aW9uKCkgeworICAgICAgICAgICAgaW50ZXJuYWxzLmJlZ2luU2lt
dWxhdGVkTWVtb3J5UHJlc3N1cmUoKTsKKyAgICAgICAgICAgIGludGVybmFscy5lbmRTaW11bGF0
ZWRNZW1vcnlQcmVzc3VyZSgpOworICAgICAgICAgICAgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsK
KyAgICAgICAgICAgIHJldHVybiBHQ0NvbnRyb2xsZXIuZ2V0SlNPYmplY3RDb3VudCgpOworICAg
ICAgICB9CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAg
IGRlc2NyaXB0aW9uKCJWZXJpZmllcyB0aGF0IEpTVW5kb0l0ZW1zIGFyZSBkZWxldGVkIHdoZW4g
dGhleSBhcmUgbm8gbG9uZ2VyIG5lZWRlZCBieSB0aGUgcGxhdGZvcm0gY2xpcGJvYXJkLiBUaGlz
IHRlc3QgcmVxdWlyZXMgV2ViS2l0VGVzdFJ1bm5lci4iKTsKKworICAgICAgICAgICAgaWYgKCF3
aW5kb3cuR0NDb250cm9sbGVyKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAg
ICAgZWRpdG9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVkaXRvciIpOworICAgICAgICAg
ICAgZWRpdG9yLmZvY3VzKCk7CisKKyAgICAgICAgICAgIGNvbnN0IHVuZG9JdGVtQ291bnQgPSAy
MDA7CisKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdW5kb0l0ZW1Db3VudDsgKytp
KSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQudW5kb01hbmFnZXIuYWRkSXRlbShuZXcgVW5k
b0l0ZW0oeworICAgICAgICAgICAgICAgICAgICBsYWJlbDogIiIsCisgICAgICAgICAgICAgICAg
ICAgIHVuZG86ICgpID0+IHsgfSwKKyAgICAgICAgICAgICAgICAgICAgcmVkbzogKCkgPT4geyB9
CisgICAgICAgICAgICAgICAgfSkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3Ig
KGxldCBpID0gMDsgaSA8IHVuZG9JdGVtQ291bnQ7ICsraSkKKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5leGVjQ29tbWFuZCgiVW5kbyIpOworCisgICAgICAgICAgICBvYmplY3RDb3VudEJlZm9y
ZUNsZWFyaW5nVW5kb1N0YWNrID0gb2JqZWN0Q291bnRBZnRlclNpbXVsYXRpbmdNZW1vcnlQcmVz
c3VyZUFuZEdhcmJhZ2VDb2xsZWN0aW9uKCk7CisKKyAgICAgICAgICAgIHNlbGVjdEFsbENvbW1h
bmQoKTsKKyAgICAgICAgICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCJFIik7CisKKyAgICAgICAg
ICAgIC8vIFdhaXQgdW50aWwgYWxtb3N0IGFsbCBvZiB0aGUgd3JhcHBlcnMgYXJlIGNvbGxlY3Rl
ZC4gRm9yIGVhY2ggVW5kb0l0ZW0sIHdlIGV4cGVjdCBhIHRvdGFsIG9mIDMgd3JhcHBlcnM6Cisg
ICAgICAgICAgICAvLyBvbmUgZWFjaCBmb3IgdGhlIHVuZG8gYW5kIHJlZG8gaGFuZGxlcnMsIGFu
ZCBvbmUgZm9yIHRoZSBVbmRvSXRlbSBpdHNlbGYuIEhvd2V2ZXIsIHdlIGFsc28gZ2l2ZSBvdXJz
ZWx2ZXMKKyAgICAgICAgICAgIC8vIHNvbWUgd2lnZ2xlIHJvb20gZm9yIGFkZGl0aW9uYWwgd3Jh
cHBlcnMgY3JlYXRlZCB3aGVuIGNhbGxpbmcgc29tZSB0ZXN0aW5nIGhlbHBlciBmdW5jdGlvbnMu
IFRoaXMgaXMKKyAgICAgICAgICAgIC8vIHN0aWxsIGEgdXNlZnVsIHRlc3QsIHNpbmNlIGl0IHdp
bGwgdGltZSBvdXQgaW4gdGhlIGNhc2Ugd2hlcmUgZWl0aGVyIG91ciB1bmRvIGl0ZW1zIG9yIHRo
ZWlyIHVuZG8vcmVkbworICAgICAgICAgICAgLy8gaGFuZGxlcnMgYXJlIG5vdCBwcm9wZXJseSBy
ZWxpbnF1aXNoZWQgb25jZSB0aGV5J3JlIG5vIGxvbmdlciBuZWVkZWQuCisgICAgICAgICAgICBj
b25zdCBtaW5pbXVtTnVtYmVyT2ZXcmFwcGVyc1RvQ29sbGVjdEJlZm9yZVBhc3NpbmcgPSAzICog
dW5kb0l0ZW1Db3VudCAtIDIwOworICAgICAgICAgICAgb2JqZWN0Q291bnRBZnRlckNsZWFyaW5n
VW5kb1N0YWNrID0gb2JqZWN0Q291bnRCZWZvcmVDbGVhcmluZ1VuZG9TdGFjazsKKyAgICAgICAg
ICAgIHdoaWxlIChvYmplY3RDb3VudEJlZm9yZUNsZWFyaW5nVW5kb1N0YWNrIC0gb2JqZWN0Q291
bnRBZnRlckNsZWFyaW5nVW5kb1N0YWNrIDwgbWluaW11bU51bWJlck9mV3JhcHBlcnNUb0NvbGxl
Y3RCZWZvcmVQYXNzaW5nKSB7CisgICAgICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVz
b2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwMCkpOworICAgICAgICAgICAgICAgIG9iamVj
dENvdW50QWZ0ZXJDbGVhcmluZ1VuZG9TdGFjayA9IG9iamVjdENvdW50QWZ0ZXJTaW11bGF0aW5n
TWVtb3J5UHJlc3N1cmVBbmRHYXJiYWdlQ29sbGVjdGlvbigpOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgib2JqZWN0Q291bnRCZWZvcmVD
bGVhcmluZ1VuZG9TdGFjayAtIG9iamVjdENvdW50QWZ0ZXJDbGVhcmluZ1VuZG9TdGFjayIsIGAk
e21pbmltdW1OdW1iZXJPZldyYXBwZXJzVG9Db2xsZWN0QmVmb3JlUGFzc2luZ31gKTsKKyAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAg
IDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgICAgIDxkaXYgY29u
dGVudGVkaXRhYmxlIGlkPSJlZGl0b3IiPjwvZGl2PgorICAgICAgICA8cHJlIGlkPSJkZXNjcmlw
dGlvbiI+PC9wcmU+CisgICAgICAgIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorICAgIDwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvdW5kby1tYW5hZ2Vy
L3VuZG8tbWFuYWdlci1pdGVtLWxhYmVscy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3VuZG8tbWFuYWdlci91bmRvLW1hbmFnZXItaXRlbS1sYWJlbHMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQ2ZDc1YzE2M2E3NDQ2NGY2ODc5MzFiZjBhYTJjYzhjYmRkM2NlMzAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG8tbWFuYWdlci91bmRvLW1hbmFn
ZXItaXRlbS1sYWJlbHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzYgQEAKKworVmVyaWZpZXMg
dGhhdCBzZXR0aW5nIHRoZSBsYWJlbCBhdHRyaWJ1dGUgb2YgVW5kb0l0ZW0gYWZmZWN0cyB0aGUg
dW5kbyBhbmQgcmVkbyBhY3Rpb24gbmFtZXMgaW4gdGhlIHBsYXRmb3JtIHVuZG8gbWFuYWdlci4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitBZnRlciB0eXBpbmc6CitQQVNTIHVuZG9O
YW1lIGlzICJUeXBpbmciCitQQVNTIHJlZG9OYW1lIGlzICIiCitBZnRlciBhZGRpbmcgdGhlIGZp
cnN0IFVuZG9JdGVtOgorUEFTUyB1bmRvTmFtZSBpcyAiRmlyc3Qg8J+lhyIKK1BBU1MgcmVkb05h
bWUgaXMgIiIKK0FmdGVyIGFkZGluZyB0aGUgc2Vjb25kIFVuZG9JdGVtOgorUEFTUyB1bmRvTmFt
ZSBpcyAiU2Vjb25kIPCfpYgiCitQQVNTIHJlZG9OYW1lIGlzICIiCitBZnRlciB1bmRvaW5nOgor
UEFTUyB1bmRvTmFtZSBpcyAiRmlyc3Qg8J+lhyIKK1BBU1MgcmVkb05hbWUgaXMgIlNlY29uZCDw
n6WIIgorQWZ0ZXIgdW5kb2luZyBhZ2FpbjoKK1BBU1MgdW5kb05hbWUgaXMgIlR5cGluZyIKK1BB
U1MgcmVkb05hbWUgaXMgIkZpcnN0IPCfpYciCitBZnRlciByZWRvaW5nOgorUEFTUyB1bmRvTmFt
ZSBpcyAiRmlyc3Qg8J+lhyIKK1BBU1MgcmVkb05hbWUgaXMgIlNlY29uZCDwn6WIIgorQWZ0ZXIg
cmVkb2luZyBhZ2FpbjoKK1BBU1MgdW5kb05hbWUgaXMgIlNlY29uZCDwn6WIIgorUEFTUyByZWRv
TmFtZSBpcyAiIgorQWZ0ZXIgdW5kb2luZyBhbmQgdGhlbiBwYXN0aW5nOgorUEFTUyB1bmRvTmFt
ZSBpcyAiUGFzdGUiCitQQVNTIHJlZG9OYW1lIGlzICIiCitBZnRlciB1bmRvaW5nIHRoZSBwYXN0
ZSBjb21tYW5kOgorUEFTUyB1bmRvTmFtZSBpcyAiRmlyc3Qg8J+lhyIKK1BBU1MgcmVkb05hbWUg
aXMgIlBhc3RlIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvdW5kby1tYW5hZ2VyL3VuZG8t
bWFuYWdlci1pdGVtLWxhYmVscy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvLW1hbmFn
ZXIvdW5kby1tYW5hZ2VyLWl0ZW0tbGFiZWxzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Q2MWQ0YzcwZDdi
YTIwNzYyYzM3NDRmZjM1NjEwN2ZlMWU1ZDRjYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvdW5kby1tYW5hZ2VyL3VuZG8tbWFuYWdlci1pdGVtLWxhYmVscy5odG1sCkBA
IC0wLDAgKzEsOTUgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZVVuZG9NYW5hZ2VyQVBJPXRydWUgXSAtLT4KKzxodG1sPgorICAgIDxtZXRhIGNoYXJz
ZXQ9InV0ZjgiPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9l
ZGl0aW5nLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0SXNB
c3luYyA9IHRydWU7CisgICAgICAgIHVuZG9OYW1lID0gbnVsbDsKKyAgICAgICAgcmVkb05hbWUg
PSBudWxsOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgICAg
ICBkZXNjcmlwdGlvbigiVmVyaWZpZXMgdGhhdCBzZXR0aW5nIHRoZSBsYWJlbCBhdHRyaWJ1dGUg
b2YgVW5kb0l0ZW0gYWZmZWN0cyB0aGUgdW5kbyBhbmQgcmVkbyBhY3Rpb24gbmFtZXMgIgorICAg
ICAgICAgICAgICAgICsgImluIHRoZSBwbGF0Zm9ybSB1bmRvIG1hbmFnZXIuIik7CisKKyAgICAg
ICAgICAgIGZpZWxkLmZvY3VzKCk7CisKKyAgICAgICAgICAgIGRlYnVnKCJBZnRlciB0eXBpbmc6
Iik7CisgICAgICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0VGV4dCIsIHRydWUs
ICJoZWxsbyIpOworICAgICAgICAgICAgW3VuZG9OYW1lLCByZWRvTmFtZV0gPSBhd2FpdCBVSUhl
bHBlci51bmRvQW5kUmVkb0FjdGlvbk5hbWVzKCk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInVuZG9OYW1lIiwgIlR5cGluZyIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJyZWRvTmFtZSIsICIiKTsKKworICAgICAgICAgICAgZnVuY3Rpb24gY3JlYXRl
VW5kb0l0ZW1XaXRoTGFiZWwobGFiZWxTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4g
bmV3IFVuZG9JdGVtKHsKKyAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGxhYmVsU3RyaW5nLAor
ICAgICAgICAgICAgICAgICAgICB1bmRvOiAoKSA9PiB7IH0sCisgICAgICAgICAgICAgICAgICAg
IHJlZG86ICgpID0+IHsgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBkZWJ1ZygiQWZ0ZXIgYWRkaW5nIHRoZSBmaXJzdCBVbmRvSXRlbToiKTsKKyAg
ICAgICAgICAgIGNvbnN0IGZpcnN0SXRlbSA9IGNyZWF0ZVVuZG9JdGVtV2l0aExhYmVsKCJGaXJz
dCDwn6WHIik7CisgICAgICAgICAgICBkb2N1bWVudC51bmRvTWFuYWdlci5hZGRJdGVtKGZpcnN0
SXRlbSk7CisgICAgICAgICAgICBbdW5kb05hbWUsIHJlZG9OYW1lXSA9IGF3YWl0IFVJSGVscGVy
LnVuZG9BbmRSZWRvQWN0aW9uTmFtZXMoKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygidW5kb05hbWUiLCBmaXJzdEl0ZW0ubGFiZWwpOworICAgICAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZWRvTmFtZSIsICIiKTsKKworICAgICAgICAgICAgZGVidWcoIkFmdGVy
IGFkZGluZyB0aGUgc2Vjb25kIFVuZG9JdGVtOiIpOworICAgICAgICAgICAgY29uc3Qgc2Vjb25k
SXRlbSA9IGNyZWF0ZVVuZG9JdGVtV2l0aExhYmVsKCJTZWNvbmQg8J+liCIpOworICAgICAgICAg
ICAgZG9jdW1lbnQudW5kb01hbmFnZXIuYWRkSXRlbShzZWNvbmRJdGVtKTsKKyAgICAgICAgICAg
IFt1bmRvTmFtZSwgcmVkb05hbWVdID0gYXdhaXQgVUlIZWxwZXIudW5kb0FuZFJlZG9BY3Rpb25O
YW1lcygpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ1bmRvTmFtZSIsIHNl
Y29uZEl0ZW0ubGFiZWwpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWRv
TmFtZSIsICIiKTsKKworICAgICAgICAgICAgZGVidWcoIkFmdGVyIHVuZG9pbmc6Iik7CisgICAg
ICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgidW5kbyIpOworICAgICAgICAgICAgW3VuZG9O
YW1lLCByZWRvTmFtZV0gPSBhd2FpdCBVSUhlbHBlci51bmRvQW5kUmVkb0FjdGlvbk5hbWVzKCk7
CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInVuZG9OYW1lIiwgZmlyc3RJdGVt
LmxhYmVsKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVkb05hbWUiLCBz
ZWNvbmRJdGVtLmxhYmVsKTsKKworICAgICAgICAgICAgZGVidWcoIkFmdGVyIHVuZG9pbmcgYWdh
aW46Iik7CisgICAgICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgidW5kbyIpOworICAgICAg
ICAgICAgW3VuZG9OYW1lLCByZWRvTmFtZV0gPSBhd2FpdCBVSUhlbHBlci51bmRvQW5kUmVkb0Fj
dGlvbk5hbWVzKCk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInVuZG9OYW1l
IiwgIlR5cGluZyIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWRvTmFt
ZSIsIGZpcnN0SXRlbS5sYWJlbCk7CisKKyAgICAgICAgICAgIGRlYnVnKCJBZnRlciByZWRvaW5n
OiIpOworICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoInJlZG8iKTsKKyAgICAgICAg
ICAgIFt1bmRvTmFtZSwgcmVkb05hbWVdID0gYXdhaXQgVUlIZWxwZXIudW5kb0FuZFJlZG9BY3Rp
b25OYW1lcygpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ1bmRvTmFtZSIs
IGZpcnN0SXRlbS5sYWJlbCk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJl
ZG9OYW1lIiwgc2Vjb25kSXRlbS5sYWJlbCk7CisKKyAgICAgICAgICAgIGRlYnVnKCJBZnRlciBy
ZWRvaW5nIGFnYWluOiIpOworICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoInJlZG8i
KTsKKyAgICAgICAgICAgIFt1bmRvTmFtZSwgcmVkb05hbWVdID0gYXdhaXQgVUlIZWxwZXIudW5k
b0FuZFJlZG9BY3Rpb25OYW1lcygpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJ1bmRvTmFtZSIsIHNlY29uZEl0ZW0ubGFiZWwpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJyZWRvTmFtZSIsICIiKTsKKworICAgICAgICAgICAgZGVidWcoIkFmdGVyIHVu
ZG9pbmcgYW5kIHRoZW4gcGFzdGluZzoiKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21t
YW5kKCJ1bmRvIik7CisgICAgICAgICAgICBzZWxlY3RBbGxDb21tYW5kKCk7CisgICAgICAgICAg
ICBjb3B5Q29tbWFuZCgpOworICAgICAgICAgICAgcGFzdGVDb21tYW5kKCk7CisgICAgICAgICAg
ICBbdW5kb05hbWUsIHJlZG9OYW1lXSA9IGF3YWl0IFVJSGVscGVyLnVuZG9BbmRSZWRvQWN0aW9u
TmFtZXMoKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidW5kb05hbWUiLCAi
UGFzdGUiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVkb05hbWUiLCAi
Iik7CisKKyAgICAgICAgICAgIGRlYnVnKCJBZnRlciB1bmRvaW5nIHRoZSBwYXN0ZSBjb21tYW5k
OiIpOworICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoInVuZG8iKTsKKyAgICAgICAg
ICAgIFt1bmRvTmFtZSwgcmVkb05hbWVdID0gYXdhaXQgVUlIZWxwZXIudW5kb0FuZFJlZG9BY3Rp
b25OYW1lcygpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ1bmRvTmFtZSIs
IGZpcnN0SXRlbS5sYWJlbCk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJl
ZG9OYW1lIiwgIlBhc3RlIik7CisKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAg
ICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+CisgICAgICAgIDxpbnB1dCBpZD0iZmllbGQiPjwvaW5wdXQ+CisgICAgICAgIDxw
cmUgaWQ9ImRlc2NyaXB0aW9uIj48L3ByZT4KKyAgICAgICAgPHByZSBpZD0iY29uc29sZSI+PC9w
cmU+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy91bmRvLW1hbmFnZXIvdW5kby1tYW5hZ2VyLXVuZG8tcmVkby1hZnRlci1nYXJiYWdlLWNvbGxl
Y3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvLW1hbmFnZXIvdW5k
by1tYW5hZ2VyLXVuZG8tcmVkby1hZnRlci1nYXJiYWdlLWNvbGxlY3Rpb24tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdjOTM5MmFkYzRkM2Q5MDU5OTA3YzdlY2I1OGUxNWJhMjg0NWNhM2IKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG8tbWFuYWdlci91bmRvLW1h
bmFnZXItdW5kby1yZWRvLWFmdGVyLWdhcmJhZ2UtY29sbGVjdGlvbi1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMSBAQAorQWZ0ZXIgcmVkbworVmVyaWZpZXMgdGhhdCB1bmRvIGFuZCByZWRvIGNh
bGxiYWNrIGhhbmRsZXJzIHN1cnZpdmUgZ2FyYmFnZSBjb2xsZWN0aW9uLiBUaGlzIHRlc3QgcmVx
dWlyZXMgV2ViS2l0VGVzdFJ1bm5lci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQ
QVNTIHRleHQudGV4dENvbnRlbnQgaXMgIkFmdGVyIHVuZG8iCitQQVNTIHRleHQudGV4dENvbnRl
bnQgaXMgIkFmdGVyIHJlZG8iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvLW1hbmFn
ZXIvdW5kby1tYW5hZ2VyLXVuZG8tcmVkby1hZnRlci1nYXJiYWdlLWNvbGxlY3Rpb24uaHRtbCBi
L0xheW91dFRlc3RzL2VkaXRpbmcvdW5kby1tYW5hZ2VyL3VuZG8tbWFuYWdlci11bmRvLXJlZG8t
YWZ0ZXItZ2FyYmFnZS1jb2xsZWN0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2FkMGNlZDRjZWU4MzNj
ZGExOWNlZTAzY2NhMTRiNDJhNGFhNDgyMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvdW5kby1tYW5hZ2VyL3VuZG8tbWFuYWdlci11bmRvLXJlZG8tYWZ0ZXItZ2FyYmFn
ZS1jb2xsZWN0aW9uLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlVW5kb01hbmFnZXJBUEk9dHJ1ZSBdIC0tPgorPGh0
bWw+CisgICAgPG1ldGEgY2hhcnNldD0idXRmOCI+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxz
Y3JpcHQgc3JjPSIuLi9lZGl0aW5nLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAg
ICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJWZXJp
ZmllcyB0aGF0IHVuZG8gYW5kIHJlZG8gY2FsbGJhY2sgaGFuZGxlcnMgc3Vydml2ZSBnYXJiYWdl
IGNvbGxlY3Rpb24uIFRoaXMgdGVzdCByZXF1aXJlcyBXZWJLaXRUZXN0UnVubmVyLiIpOworCisg
ICAgICAgICAgICB0ZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHQiKTsKKworICAg
ICAgICAgICAgZG9jdW1lbnQudW5kb01hbmFnZXIuYWRkSXRlbShuZXcgVW5kb0l0ZW0oeworICAg
ICAgICAgICAgICAgIGxhYmVsOiAiVGVzdCBhY3Rpb24iLAorICAgICAgICAgICAgICAgIHVuZG86
ICgpID0+IHRleHQudGV4dENvbnRlbnQgPSAiQWZ0ZXIgdW5kbyIsCisgICAgICAgICAgICAgICAg
cmVkbzogKCkgPT4gdGV4dC50ZXh0Q29udGVudCA9ICJBZnRlciByZWRvIgorICAgICAgICAgICAg
fSkpOworCisgICAgICAgICAgICBpZiAod2luZG93LkdDQ29udHJvbGxlcikKKyAgICAgICAgICAg
ICAgICBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOworCisgICAgICAgICAgICBkb2N1bWVudC5leGVj
Q29tbWFuZCgiVW5kbyIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXh0
LnRleHRDb250ZW50IiwgIkFmdGVyIHVuZG8iKTsKKworICAgICAgICAgICAgZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoIlJlZG8iKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidGV4
dC50ZXh0Q29udGVudCIsICJBZnRlciByZWRvIik7CisgICAgICAgIH0KKyAgICAgICAgPC9zY3Jp
cHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICAgICAg
PGRpdiBpZD0idGV4dCI+SW5pdGlhbCBzdGF0ZTwvZGl2PgorICAgICAgICA8cHJlIGlkPSJkZXNj
cmlwdGlvbiI+PC9wcmU+CisgICAgICAgIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorICAgIDwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxw
ZXIuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCmluZGV4IDE4ODRkYjc2
NTk2NTA1NzJkZGNhYWFmYzI5NWI1MDIwMmJlNmI1NjQuLjZlOGI3ZjE5YTU3MzRkNTViZmM1Yjkx
MzRlOWI4NGQ2MjA5YTdhN2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1o
ZWxwZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwpAQCAtNTY2
LDQgKzU2NiwxMyBAQCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAgICAgICAg
ICAgICByZXNvbHZlKHsgeDogb2Zmc2V0WCwgeTogb2Zmc2V0WSB9KTsKICAgICAgICAgfSkpOwog
ICAgIH0KKworICAgIHN0YXRpYyB1bmRvQW5kUmVkb0FjdGlvbk5hbWVzKCkKKyAgICB7CisgICAg
ICAgIGlmICghdGhpcy5pc1dlYktpdDIoKSkKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJl
c29sdmUoKTsKKworICAgICAgICBjb25zdCBzY3JpcHQgPSAiSlNPTi5zdHJpbmdpZnkoW3VpQ29u
dHJvbGxlci51bmRvQWN0aW9uTmFtZSwgdWlDb250cm9sbGVyLnJlZG9BY3Rpb25OYW1lXSkiOwor
ICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0ZXN0UnVubmVyLnJ1blVJU2Ny
aXB0KHNjcmlwdCwgcmVzdWx0ID0+IHJlc29sdmUoSlNPTi5wYXJzZShyZXN1bHQpKSkpOworICAg
IH0KIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359819</attachid>
            <date>2019-01-22 17:30:04 -0800</date>
            <delta_ts>2019-01-22 18:53:57 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-193111-20190122173002.patch</filename>
            <type>text/plain</type>
            <size>19218</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzU3YzBmYTg3NTJjMzlk
NWM4M2UyZDBlNDc4ZTkyNjllNzY4NmQ3NS4uOWFhYWJiMGIwNDY2M2I2YmYwYWRmMjJlYmFiM2Rm
ZWYzNmFhYWVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE5LTAxLTIyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzb21lIGJp
bmRpbmdzLXJlbGF0ZWQgYm9va2tlZXBpbmcgdG8gVW5kb01hbmFnZXIgYW5kIFVuZG9JdGVtCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTMxMTEKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ0ODA3MDQ4PgorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5
b3N1a2UgTml3YS4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIHdvcmsgaW4gcHJvZ3Jlc3MgdG93
YXJkcyBzdXBwb3J0aW5nIGBVbmRvTWFuYWdlci5hZGRJdGVtKClgLiBIZXJlLCB3ZSBhZGQgaGVs
cGVyIG1ldGhvZHMgdG8KKyAgICAgICAgVW5kb0l0ZW0gYW5kIFVuZG9NYW5hZ2VyIHdoaWNoIGxh
dGVyIHBhdGNoZXMgd2lsbCBleGVyY2lzZSwgYXMgd2VsbCBhcyBpbnRyb2R1Y2Ugc29tZSBjdXN0
b20gYmluZGluZ3MgdG8KKyAgICAgICAgcHJvcGVybHkgaGFuZGxlIHRoZSBjYXNlIHdoZXJlIFVu
ZG9JdGVtcyBhcmUgZ2l2ZW4gYW5vbnltb3VzIEphdmFTY3JpcHQgZnVuY3Rpb25zIChzZWUgYmVs
b3cgZm9yIG1vcmUgZGV0YWlscykuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBiZWNhdXNlIHRo
ZXJlIGlzIG5vIHNjcmlwdC1vYnNlcnZhYmxlIGNoYW5nZSBpbiBiZWhhdmlvciB5ZXQuIFdoZW4g
YGFkZEl0ZW1zKClgIGlzIGhvb2tlZCB1cCwgSQorICAgICAgICB3aWxsIHdyaXRlIGEgdGVzdCB0
byB2ZXJpZnkgdGhhdCB0aGUgdW5kbyBhbmQgcmVkbyBKYXZhU2NyaXB0IGZ1bmN0aW9ucyBzdXJ2
aXZlIGdhcmJhZ2UgY29sbGVjdGlvbi4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU1VuZG9JdGVtQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVW5kb0l0ZW06
OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKToKKworICAgICAgICBIYXZlIGVhY2ggSlNVbmRvSXRl
bSB2aXNpdCBpdHMgdW5kbyBhbmQgcmVkbyBjYWxsYmFjayBmdW5jdGlvbnMgdG8gZW5zdXJlIHRo
YXQgdGhlIEphdmFTY3JpcHQgd3JhcHBlciBvYmplY3RzCisgICAgICAgIGZvciB0aGVzZSBmdW5j
dGlvbnMgYXJlIG5vdCBnYXJiYWdlIGNvbGxlY3RlZCB1bmRlcm5lYXRoIHRoZSBpdGVtLgorCisg
ICAgICAgIChXZWJDb3JlOjpKU1VuZG9JdGVtT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKToKKworICAgICAgICBDb25zaWRlciB0aGUgdW5kbyBpdGVtIHdyYXBwZXIgcmVhY2hhYmxl
IGZyb20gb3BhcXVlIHJvb3RzIGlmIGl0IGlzIGFzc29jaWF0ZWQgd2l0aCBpdHMgVW5kb01hbmFn
ZXIncyBEb2N1bWVudC4KKyAgICAgICAgVGhpcyBlbnN1cmVzIHRoYXQgaWYgc2NyaXB0IGlzbid0
IGhvbGRpbmcgb24gdG8gYSByZWZlcmVuY2UgdG8gdGhlIHdyYXBwZXIgKGZvciBpbnN0YW5jZSwg
YnkgY2FsbGluZworICAgICAgICBgVW5kb01hbmFnZXIuYWRkSXRlbShuZXcgVW5kb0l0ZW0oeyAu
Li4gfSkpYCksIHdlIHN0aWxsIHByb3RlY3QgdGhlIGNvcnJlc3BvbmRpbmcgSlNVbmRvSXRlbSBh
cyBsb25nIGFzIHRoZQorICAgICAgICBVbmRvTWFuYWdlcidzIERvY3VtZW50IGlzIGFsaXZlLiBJ
biB0aGUgY2FzZSB3aGVyZSB0aGUgdW5kbyBpdGVtIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggYSBk
b2N1bWVudCwgZWl0aGVyICgxKQorICAgICAgICBzY3JpcHQgaXMga2VlcGluZyBhIHJlZmVyZW5j
ZSB0byBpdCwgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIHRyaXZpYWxseSByZWFjaGFibGUsIG9y
ICgyKSBzY3JpcHQgd29uJ3QgYmUgYWJsZQorICAgICAgICB0byBvYnNlcnZlIHRoZSBkZXN0cnVj
dGlvbiBvZiB0aGUgd3JhcHBlciBhbnl3YXlzIChlLmcuIGNhbGxpbmcgYG5ldyBVbmRvSXRlbSh7
IC4uLiB9KWAgYnkgaXRzZWxmKS4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cHJlcGFyZUZvckRlc3RydWN0aW9uKToKKworICAgICAg
ICBJbnZhbGlkYXRlIGFsbCB1bmRvIGl0ZW1zIHdoZW4gdGhlIGRvY3VtZW50IGlzIGFib3V0IHRv
IGdvIGF3YXkuCisKKyAgICAgICAgKiBwYWdlL1VuZG9JdGVtLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlVuZG9JdGVtOjpzZXRVbmRvTWFuYWdlcik6CisgICAgICAgIChXZWJDb3JlOjpVbmRvSXRl
bTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpVbmRvSXRlbTo6aXNWYWxpZCBjb25z
dCk6CisKKyAgICAgICAgQWRkIGEgZmV3IGhlbHBlcnMsIHRvIGJlIHVzZWQgaW4gYSBmdXR1cmUg
cGF0Y2guIFdlIGNvbnNpZGVyIGFuIFVuZG9JdGVtIHZhbGlkIGlmIGl0IGhhcyBiZWVuIGFkZGVk
IHRvIGFuCisgICAgICAgIFVuZG9NYW5hZ2VyLCBhbmQgaXMgdGh1cyBhc3NvY2lhdGVkIHdpdGgg
YSBkb2N1bWVudC4KKworICAgICAgICAoV2ViQ29yZTo6VW5kb0l0ZW06OmRvY3VtZW50IGNvbnN0
KToKKyAgICAgICAgKiBwYWdlL1VuZG9JdGVtLmg6CisgICAgICAgICogcGFnZS9VbmRvSXRlbS5p
ZGw6CisgICAgICAgICogcGFnZS9VbmRvTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpV
bmRvTWFuYWdlcjo6VW5kb01hbmFnZXIpOgorICAgICAgICAoV2ViQ29yZTo6VW5kb01hbmFnZXI6
OmFkZEl0ZW0pOgorCisgICAgICAgIEhhdmUgYW4gVW5kb01hbmFnZXIga2VlcCBpdHMgVW5kb0l0
ZW1zIGFsaXZlLiBUaGVzZSBVbmRvSXRlbXMgcmVtYWluIGluIHRoaXMgc2V0IHVudGlsIGVpdGhl
ciB0aGUgZG9jdW1lbnQgd2lsbAorICAgICAgICBiZSBkZXN0cm95ZWQsIG9yIHRoZSBjb3JyZXNw
b25kaW5nIHVuZG8gYWN0aW9uIGlzIG5vIGxvbmdlciBuZWVkZWQgYmVjYXVzZSB0aGUgcGxhdGZv
cm0gdW5kbyBzdGFjayBoYXMgY2hhbmdlZAorICAgICAgICAodGhpcyBsYXR0ZXIgYmVoYXZpb3Ig
aXMgeWV0IHRvIGJlIGltcGxlbWVudGVkKS4KKworICAgICAgICAoV2ViQ29yZTo6VW5kb01hbmFn
ZXI6OnJlbW92ZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6VW5kb01hbmFnZXI6OnJlbW92ZUFs
bEl0ZW1zKToKKyAgICAgICAgKiBwYWdlL1VuZG9NYW5hZ2VyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpVbmRvTWFuYWdlcjo6VW5kb01hbmFnZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcDoKKworICAgICAgICBVbmlmaWVk
IGJ1aWxkIGZpeC4KKwogMjAxOS0wMS0yMiAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWpp
aUBzb255LmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dW1dlYktpdFRlc3RSdW5uZXJdIE51bGwg
ZGVyZWZlcmVuY2Ugb2YgR3JhcGhpY3NDb250ZXh0OjptX2RhdGEgaW4gR3JhcGhpY3NDb250ZXh0
OjpyZWxlYXNlV2luZG93c0NvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMjc0YjA4ODAwZTZiZGU0
M2ZhN2I1MWFmYWY3NjRjYTFhOTQ3MGQ2Yy4uN2M0ODQ0NDhmNGQzYTY1OTYwY2NhOTQ2ZDc0NjQ5
ODA1Y2YwODA0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTUyNiw2ICs1MjYsNyBAQCBiaW5kaW5ncy9q
cy9KU1RleHRUcmFja0xpc3RDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1RyYWNrQ3VzdG9tLmNw
cAogYmluZGluZ3MvanMvSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNUeXBl
ZE9NQ1NTU3R5bGVWYWx1ZUN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pTVW5kb0l0ZW1DdXN0b20u
Y3BwCiBiaW5kaW5ncy9qcy9KU1ZpZGVvVHJhY2tDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1Zp
ZGVvVHJhY2tMaXN0Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNXZWJBbmltYXRpb25DdXN0b20u
Y3BwCkBAIC0xNTM2LDYgKzE1MzcsNyBAQCBwYWdlL1NvY2tldFByb3ZpZGVyLmNwcAogcGFnZS9T
cGF0aWFsTmF2aWdhdGlvbi5jcHAKIHBhZ2UvU3VzcGVuZGFibGVUaW1lci5jcHAKIHBhZ2UvVGV4
dEluZGljYXRvci5jcHAKK3BhZ2UvVW5kb0l0ZW0uY3BwCiBwYWdlL1VuZG9NYW5hZ2VyLmNwcAog
cGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmNwcAogcGFnZS9Vc2VyQ29udGVudENvbnRyb2xsZXIu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMmM0NmIzZGVlNTc0OGZlZjU5YjBkMzRkNDk1MzI3MDlhM2JhNmNhNC4uZDE4NTFl
YmRkZjBmYmQ4MTUxNzdjZTRkZGY5MzdlNGViZTQ5NjJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzA5OCw4ICs3MDk4LDYg
QEAKIAkJMzE5QkRFNTMxRTdBODZDMTAwQkEyOTZDIC8qIEpTUlRDSWNlVHJhbnNwb3J0U3RhdGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSVENJY2VUcmFuc3BvcnRTdGF0
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTlCREU1MzFFN0E4NkMxMDBCQTI5
NkQgLyogSlNSVENQZWVyQ29ubmVjdGlvblN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTUlRDUGVlckNvbm5lY3Rpb25TdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzMTlGQkQ1RDE1RDJGNDQ0MDA5NjQwQTYgLyogQ2FjaGVkSW1hZ2VDbGllbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkSW1hZ2VDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFBMDg4QzQxRTczN0IyQzAwM0I2NjA5IC8q
IEpTV2ViR1BVUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1dlYkdQVVJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUEwODhDNTFFNzM3QjJDMDAzQjY2MDkgLyogSlNX
ZWJHUFVSZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0b3JDdXN0b20uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHUFVSZW5kZXJQYXNzQXR0YWNobWVudERl
c2NyaXB0b3JDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUEwODkx
QjFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHUFVCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzMUEwODkxRDFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVCdWZmZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHUFVCdWZmZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFBMDg5MUUxRTczOEQ1OTAwM0I2NjA5IC8qIEpT
V2ViR1BVQ29tbWFuZEJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1dlYkdQVUNvbW1hbmRCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTUxMzEsNiArMTUxMjksOCBAQAogCQlGNEQ0M0Q2NDIxODgwMkU2MDBFQ0VDQUMgLyog
U2VyaWFsaXplZEF0dGFjaG1lbnREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcmlhbGl6ZWRBdHRh
Y2htZW50RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ5ODE3RDIxOTVG
QkY2MDA4MjMwRkMgLyogQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENo
YW5nZUxpc3RUeXBlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ5
ODE3RTIxOTVGQkY2MDA4MjMwRkMgLyogQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENoYW5nZUxpc3RUeXBlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY0RTE5NjVBMjFGMjM5NTAwMDI4NTA3OCAvKiBKU1VuZG9JdGVtQ3VzdG9t
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVW5kb0l0ZW1DdXN0
b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNEUxOTY1RjIxRjI2RTRFMDAy
ODUwNzggLyogVW5kb0l0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVW5kb0l0ZW0uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEU1N0VEQTIxM0YzRjVGMDA0RUE5OEUgLyog
Rm9udEF0dHJpYnV0ZUNoYW5nZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udEF0dHJpYnV0ZUNoYW5n
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFNTdFREYyMTNGNDM0QTAwNEVB
OThFIC8qIFdlYkNvcmVOU0ZvbnRNYW5hZ2VyRXh0cmFzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNv
cmVOU0ZvbnRNYW5hZ2VyRXh0cmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0
RTU3RUUwMjEzRjQzNEEwMDRFQTk4RSAvKiBXZWJDb3JlTlNGb250TWFuYWdlckV4dHJhcy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVOU0ZvbnRNYW5hZ2VyRXh0cmFzLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcxNjksMTAgKzE3MTY5LDEwIEBACiAJCQkJMUNF
Q0IzQjYyMUY1MEFDNzAwRjQ0NTQyIC8qIFdITFNMTWV0YWxDb2RlR2VuZXJhdG9yLmggKi8sCiAJ
CQkJMUNFQ0IzQjgyMUY1MEQxMDAwRjQ0NTQyIC8qIFdITFNMTmF0aXZlRnVuY3Rpb25Xcml0ZXIu
Y3BwICovLAogCQkJCTFDRUNCM0I5MjFGNTBEMTAwMEY0NDU0MiAvKiBXSExTTE5hdGl2ZUZ1bmN0
aW9uV3JpdGVyLmggKi8sCi0JCQkJMUNFQ0IzQjEyMUYyQjk4NTAwRjQ0NTQyIC8qIFdITFNMVHlw
ZU5hbWVyLmNwcCAqLywKLQkJCQkxQ0VDQjNCMDIxRjJCOTg1MDBGNDQ1NDIgLyogV0hMU0xUeXBl
TmFtZXIuaCAqLywKIAkJCQkxQ0VDQjNDNjIxRjU5Qzg3MDBGNDQ1NDIgLyogV0hMU0xOYXRpdmVU
eXBlV3JpdGVyLmNwcCAqLywKIAkJCQkxQ0VDQjNDNzIxRjU5Qzg3MDBGNDQ1NDIgLyogV0hMU0xO
YXRpdmVUeXBlV3JpdGVyLmggKi8sCisJCQkJMUNFQ0IzQjEyMUYyQjk4NTAwRjQ0NTQyIC8qIFdI
TFNMVHlwZU5hbWVyLmNwcCAqLywKKwkJCQkxQ0VDQjNCMDIxRjJCOTg1MDBGNDQ1NDIgLyogV0hM
U0xUeXBlTmFtZXIuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gTWV0YWw7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtMjA0MzQsNiArMjA0MzQsNyBAQAogCQkJCTYyQzEyMTdCMTFBQjlF
NzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggKi8sCiAJCQkJMkQ0Rjk2RjExQTFFQ0My
NDAwOThCRjg4IC8qIFRleHRJbmRpY2F0b3IuY3BwICovLAogCQkJCTJENEY5NkYyMUExRUNDMjQw
MDk4QkY4OCAvKiBUZXh0SW5kaWNhdG9yLmggKi8sCisJCQkJRjRFMTk2NUYyMUYyNkU0RTAwMjg1
MDc4IC8qIFVuZG9JdGVtLmNwcCAqLywKIAkJCQkyRUNEQkFENTIxRDg5MDYzMDBGMDBFQ0QgLyog
VW5kb0l0ZW0uaCAqLywKIAkJCQkyRUNEQkFENzIxRDg5MDYzMDBGMDBFQ0QgLyogVW5kb0l0ZW0u
aWRsICovLAogCQkJCTJFQ0RCQUNGMjFEODkwMzQwMEYwMEVDRCAvKiBVbmRvTWFuYWdlci5jcHAg
Ki8sCkBAIC0yMDgwMiwxMyArMjA4MDMsMTIgQEAKIAkJCQkwNzg0NjM4NDE0NUIxQjhFMDBBNThE
RjEgLyogSlNUcmFja0N1c3RvbS5oICovLAogCQkJCTUxNkJCNzkyMENFOTFFNjgwMDUxMkY3OSAv
KiBKU1RyZWVXYWxrZXJDdXN0b20uY3BwICovLAogCQkJCTRCQUZEMEUyMjE5MjYwNEQwMEMwQUI2
NCAvKiBKU1R5cGVkT01DU1NTdHlsZVZhbHVlQ3VzdG9tLmNwcCAqLywKKwkJCQlGNEUxOTY1QTIx
RjIzOTUwMDAyODUwNzggLyogSlNVbmRvSXRlbUN1c3RvbS5jcHAgKi8sCiAJCQkJQkU2REY3MDgx
NzFDQTJDNTAwREQ1MkI4IC8qIEpTVmlkZW9UcmFja0N1c3RvbS5jcHAgKi8sCiAJCQkJQkU2REY3
MEExNzFDQTJDNTAwREQ1MkI4IC8qIEpTVmlkZW9UcmFja0xpc3RDdXN0b20uY3BwICovLAogCQkJ
CTcxNURBNUQzMjAxQkI5MDIwMDJFRjJCMCAvKiBKU1dlYkFuaW1hdGlvbkN1c3RvbS5jcHAgKi8s
CiAJCQkJRDNGM0QzNTkxQTY5QTNCMDAwNTlGQzJCIC8qIEpTV2ViR0wyUmVuZGVyaW5nQ29udGV4
dEN1c3RvbS5jcHAgKi8sCiAJCQkJNDlFRUQxNEMxMDUxOTcxQTAwMDk5RkFCIC8qIEpTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCAqLywKLQkJCQkzMUEwODhDNDFFNzM3QjJDMDAzQjY2
MDkgLyogSlNXZWJHUFVSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCAqLywKLQkJCQkzMUEwODhD
NTFFNzM3QjJDMDAzQjY2MDkgLyogSlNXZWJHUFVSZW5kZXJQYXNzQXR0YWNobWVudERlc2NyaXB0
b3JDdXN0b20uY3BwICovLAogCQkJCUUxODI1OEFCMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dvcmtl
ckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCAqLywKIAkJCQk0NkY5MUJDOTFGQ0REMEZFMDAxNTk5QzMg
LyogSlNXb3JrZXJOYXZpZ2F0b3JDdXN0b20uY3BwICovLAogCQkJCTgzQTRBOUY4MUNFN0ZEN0Uw
MDcwOUIwMCAvKiBKU1hNTERvY3VtZW50Q3VzdG9tLmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVW5kb0l0ZW1DdXN0b20uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNVbmRvSXRlbUN1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ZhYTAyOGJi
ZmY1ZmQ1YjRhM2Y0YTBkNjEwMTBmY2JlNjUzZmM3NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVW5kb0l0ZW1DdXN0b20uY3BwCkBAIC0wLDAgKzEsNDYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNVbmRvSXRl
bS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgSlNVbmRvSXRlbTo6dmlzaXRBZGRp
dGlvbmFsQ2hpbGRyZW4oSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICB3cmFwcGVk
KCkudW5kb0hhbmRsZXIoKS52aXNpdEpTRnVuY3Rpb24odmlzaXRvcik7CisgICAgd3JhcHBlZCgp
LnJlZG9IYW5kbGVyKCkudmlzaXRKU0Z1bmN0aW9uKHZpc2l0b3IpOworfQorCitib29sIEpTVW5k
b0l0ZW1Pd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpV
bmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioq
IHJlYXNvbikKK3sKKyAgICBpZiAoVU5MSUtFTFkocmVhc29uKSkKKyAgICAgICAgKnJlYXNvbiA9
ICJEb2N1bWVudCBpcyBhbiBvcGFxdWUgcm9vdC4iOworCisgICAgYXV0byogZG9jdW1lbnRGb3JV
bmRvSXRlbSA9IGpzQ2FzdDxKU1VuZG9JdGVtKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpLT53
cmFwcGVkKCkuZG9jdW1lbnQoKTsKKyAgICByZXR1cm4gZG9jdW1lbnRGb3JVbmRvSXRlbSAmJiB2
aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdChkb2N1bWVudEZvclVuZG9JdGVtKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYzA2NzE3NDBm
YjYwODE4MWE5OWY2OWJlOGYwODY0MTBmY2U2ZjYwMS4uNWRiNzFmNTE2ZjZmODhkNzQyMTE0OWIx
OTUyN2Y0ZTdhZDhjMTc1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yNTAxLDYgKzI1
MDEsOCBAQCB2b2lkIERvY3VtZW50OjpwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKQogICAgIGNsZWFy
VG91Y2hFdmVudEhhbmRsZXJzQW5kTGlzdGVuZXJzKCk7CiAjZW5kaWYKIAorICAgIG1fdW5kb01h
bmFnZXItPnJlbW92ZUFsbEl0ZW1zKCk7CisKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCiAgICAg
aWYgKHRoaXMgIT0gJnRvcERvY3VtZW50KCkpIHsKICAgICAgICAgLy8gTGV0IHRoZSBheCBjYWNo
ZSBrbm93IHRoYXQgdGhpcyBzdWJmcmFtZSBnb2VzIG91dCBvZiBzY29wZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb0l0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9V
bmRvSXRlbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmIzMjEzN2IwNTRkYmZhMzc5MTBmZTA0MzNiMWUyZGU4
OTU1Yjc4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb0l0ZW0u
Y3BwCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiVW5kb0l0ZW0uaCIKKworI2luY2x1ZGUgIlVuZG9NYW5hZ2VyLmgiCisjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoVW5kb0l0ZW0pOworCit2b2lkIFVuZG9JdGVtOjpzZXRV
bmRvTWFuYWdlcihVbmRvTWFuYWdlciogdW5kb01hbmFnZXIpCit7CisgICAgbV91bmRvTWFuYWdl
ciA9IG1ha2VXZWFrUHRyKHVuZG9NYW5hZ2VyKTsKK30KKwordm9pZCBVbmRvSXRlbTo6aW52YWxp
ZGF0ZSgpCit7CisgICAgaWYgKGF1dG8qIHVuZG9NYW5hZ2VyID0gbV91bmRvTWFuYWdlci5nZXQo
KSkgeworICAgICAgICB1bmRvTWFuYWdlci0+cmVtb3ZlSXRlbSgqdGhpcyk7CisgICAgICAgIG1f
dW5kb01hbmFnZXIgPSBudWxscHRyOworICAgIH0KK30KKworYm9vbCBVbmRvSXRlbTo6aXNWYWxp
ZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuICEhbV91bmRvTWFuYWdlcjsKK30KKworRG9jdW1lbnQq
IFVuZG9JdGVtOjpkb2N1bWVudCgpIGNvbnN0Cit7CisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuICZtX3VuZG9NYW5hZ2VyLT5kb2N1bWVu
dCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1VuZG9JdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9JdGVtLmgKaW5k
ZXggMDE5YmI5YWZjZmZlMWRmNzBkMzMxNjM1MDYxMzM0NzEzODA2YWFmNC4uMjljMTAyZDhlZThl
MmFhMjg2NWY1YThjMjM4Yjg0Nzk5MDk4MTdiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9VbmRvSXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb0l0ZW0uaApAQCAt
MjYsMTUgKzI2LDE4IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlZvaWRDYWxsYmFjay5o
IgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgotI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBEb2N1bWVudDsKK2NsYXNz
IFVuZG9NYW5hZ2VyOworCiBjbGFzcyBVbmRvSXRlbSA6IHB1YmxpYyBSZWZDb3VudGVkPFVuZG9J
dGVtPiB7Ci0gICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTkxJTkUoVW5kb0l0ZW0pOworICAg
IFdURl9NQUtFX0lTT19BTExPQ0FURUQoVW5kb0l0ZW0pOwogcHVibGljOgogICAgIHN0cnVjdCBJ
bml0IHsKICAgICAgICAgU3RyaW5nIGxhYmVsOwpAQCAtNDcsNiArNTAsMTMgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVbmRvSXRlbShXVEZNb3ZlKGluaXQpKSk7CiAg
ICAgfQogCisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisgICAgdm9pZCBpbnZhbGlkYXRlKCk7
CisKKyAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsKKworICAgIHZvaWQgc2V0VW5kb01h
bmFnZXIoVW5kb01hbmFnZXIqKTsKKwogICAgIGNvbnN0IFN0cmluZyYgbGFiZWwoKSBjb25zdCB7
IHJldHVybiBtX2xhYmVsOyB9CiAgICAgVm9pZENhbGxiYWNrJiB1bmRvSGFuZGxlcigpIGNvbnN0
IHsgcmV0dXJuIG1fdW5kb0hhbmRsZXIuZ2V0KCk7IH0KICAgICBWb2lkQ2FsbGJhY2smIHJlZG9I
YW5kbGVyKCkgY29uc3QgeyByZXR1cm4gbV9yZWRvSGFuZGxlci5nZXQoKTsgfQpAQCAtNjIsNiAr
NzIsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX2xhYmVsOwogICAgIFJlZjxWb2lkQ2FsbGJh
Y2s+IG1fdW5kb0hhbmRsZXI7CiAgICAgUmVmPFZvaWRDYWxsYmFjaz4gbV9yZWRvSGFuZGxlcjsK
KyAgICBXZWFrUHRyPFVuZG9NYW5hZ2VyPiBtX3VuZG9NYW5hZ2VyOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvSXRlbS5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9JdGVtLmlkbAppbmRleCAwOWI5N2M4YzE1MGMx
MDdlMDk0MTQxOGVjMTE3NzBkODZkNGE5MWNhLi4xOTBmOWJiYjUyZDBlNWY4MWM2NWNkNGUwZTdk
NDA2ODNlODA4NzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9JdGVtLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9JdGVtLmlkbApAQCAtMzQsNiArMzQsOCBA
QAogWwogICAgIEVuYWJsZWRBdFJ1bnRpbWU9VW5kb01hbmFnZXJBUEksCiAgICAgSW1wbGVtZW50
YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKKyAgICBDdXN0b21J
c1JlYWNoYWJsZSwKICAgICBDb25zdHJ1Y3RvcihVbmRvSXRlbUluaXQgaW5pdERpY3QpLAogXSBp
bnRlcmZhY2UgVW5kb0l0ZW0gewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFi
ZWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9NYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvVW5kb01hbmFnZXIuY3BwCmluZGV4IDIyMWJmMjhjYzk2OWVhODQy
MzA3ZmFiODkxZTVhNWMyMDJhMzUzMDUuLmMxNjhhY2FhYWRmYjk2Yjg0NzE0MDMyOWI2NmU3M2E1
NTEyM2JkNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb01hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb01hbmFnZXIuY3BwCkBAIC0zMywxMCArMzMs
MzIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
VW5kb01hbmFnZXIpOwogCitVbmRvTWFuYWdlcjo6VW5kb01hbmFnZXIoRG9jdW1lbnQmIGRvY3Vt
ZW50KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKK3sKK30KKworVW5kb01hbmFnZXI6On5V
bmRvTWFuYWdlcigpID0gZGVmYXVsdDsKKwogdm9pZCBVbmRvTWFuYWdlcjo6YWRkSXRlbShSZWY8
VW5kb0l0ZW0+JiYgaXRlbSkKIHsKLSAgICBVTlVTRURfUEFSQU0oaXRlbSk7CiAgICAgVU5VU0VE
X1BBUkFNKG1fZG9jdW1lbnQpOworCisgICAgaXRlbS0+c2V0VW5kb01hbmFnZXIodGhpcyk7Cisg
ICAgbV9pdGVtcy5hZGQoV1RGTW92ZShpdGVtKSk7Cit9CisKK3ZvaWQgVW5kb01hbmFnZXI6OnJl
bW92ZUl0ZW0oVW5kb0l0ZW0mIGl0ZW0pCit7CisgICAgaWYgKGF1dG8gZm91bmRJdGVtID0gbV9p
dGVtcy50YWtlKCZpdGVtKSkKKyAgICAgICAgZm91bmRJdGVtLT5zZXRVbmRvTWFuYWdlcihudWxs
cHRyKTsKK30KKwordm9pZCBVbmRvTWFuYWdlcjo6cmVtb3ZlQWxsSXRlbXMoKQoreworICAgIGZv
ciAoYXV0byYgaXRlbSA6IG1faXRlbXMpCisgICAgICAgIGl0ZW0tPnNldFVuZG9NYW5hZ2VyKG51
bGxwdHIpOworICAgIG1faXRlbXMuY2xlYXIoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvTWFuYWdlci5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9VbmRvTWFuYWdlci5oCmluZGV4IDQ5NjA0ZjA5YzVjOGE1MDE2ODliYzVj
ZTFlODZkMDM3ZjQ5OWJiNTQuLjc4ZmE3MjBkYzczMTA4MDA2NGI3MGQ4MzAzYTJmYmJkYjRkM2M1
ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb01hbmFnZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9NYW5hZ2VyLmgKQEAgLTI4LDEzICsyOCwxNSBAQAogI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKIGNs
YXNzIFVuZG9JdGVtOwogCi1jbGFzcyBVbmRvTWFuYWdlciA6IHB1YmxpYyBSZWZDb3VudGVkPFVu
ZG9NYW5hZ2VyPiB7CitjbGFzcyBVbmRvTWFuYWdlciA6IHB1YmxpYyBSZWZDb3VudGVkPFVuZG9N
YW5hZ2VyPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFVuZG9NYW5hZ2VyPiB7CiAgICAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRChVbmRvTWFuYWdlcik7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxV
bmRvTWFuYWdlcj4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKQEAgLTQyLDE2ICs0NCwxOCBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFVuZG9NYW5hZ2VyKGRvY3Vt
ZW50KSk7CiAgICAgfQogCisgICAgflVuZG9NYW5hZ2VyKCk7CisKKyAgICB2b2lkIHJlbW92ZUl0
ZW0oVW5kb0l0ZW0mKTsKKyAgICB2b2lkIHJlbW92ZUFsbEl0ZW1zKCk7CiAgICAgdm9pZCBhZGRJ
dGVtKFJlZjxVbmRvSXRlbT4mJik7CiAgICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgeyByZXR1cm4g
bV9kb2N1bWVudDsgfQogCiBwcml2YXRlOgotICAgIFVuZG9NYW5hZ2VyKERvY3VtZW50JiBkb2N1
bWVudCkKLSAgICAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQotICAgIHsKLSAgICB9CisgICAg
VW5kb01hbmFnZXIoRG9jdW1lbnQmKTsKIAogICAgIERvY3VtZW50JiBtX2RvY3VtZW50OworICAg
IEhhc2hTZXQ8UmVmUHRyPFVuZG9JdGVtPj4gbV9pdGVtczsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359832</attachid>
            <date>2019-01-22 18:38:01 -0800</date>
            <delta_ts>2019-01-22 18:53:27 -0800</delta_ts>
            <desc>Part 2 (rebase on trunk)</desc>
            <filename>bug-193111-20190122183800.patch</filename>
            <type>text/plain</type>
            <size>13747</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWFhYWJiMGIwNDY2M2I2
YmYwYWRmMjJlYmFiM2RmZWYzNmFhYWVjNi4uNzc3NzVkNTNhY2U2MjU0NTdhMzVjODJmN2RiYmE2
YzBhNjg3YTliYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE5LTAxLTE5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBD
dXN0b21VbmRvU3RlcC5oIGFuZCBDdXN0b21VbmRvU3RlcC5jcHAKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzExMQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNDQ4MDcwNDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBpcyBtb3JlIHdvcmsgaW4gcHJvZ3Jlc3MgdG93YXJkcyBzdXBw
b3J0aW5nIGBVbmRvTWFuYWdlci5hZGRJdGVtKClgLiBIZXJlLCB3ZSBpbnRyb2R1Y2UgYSBoZWxw
ZXIKKyAgICAgICAgY2xhc3MsIEN1c3RvbVVuZG9TdGVwLCB0aGF0IGhvbGRzIGEgd2VhayByZWZl
cmVuY2UgdG8gYSBzY3JpcHQtZGVmaW5lZCBVbmRvSXRlbS4gU2VlIGJlbG93IGZvciBtb3JlIGRl
dGFpbHMuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0
aW5nL0N1c3RvbVVuZG9TdGVwLmNwcDoKKworICAgICAgICBTdWJjbGFzcyBVbmRvU3RlcC4KKwor
ICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tVW5kb1N0ZXA6OkN1c3RvbVVuZG9TdGVwKToKKyAgICAg
ICAgKFdlYkNvcmU6OkN1c3RvbVVuZG9TdGVwOjp1bmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6
OkN1c3RvbVVuZG9TdGVwOjpyZWFwcGx5KToKKworICAgICAgICBJZiBwb3NzaWJsZSwgaW52b2tl
IHRoZSBVbmRvSXRlbSdzIHVuZG8gYW5kIHJlZG8gaGFuZGxlcnMuCisKKyAgICAgICAgKFdlYkNv
cmU6OkN1c3RvbVVuZG9TdGVwOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkN1
c3RvbVVuZG9TdGVwOjpjdXN0b21VbmRvTGFiZWwgY29uc3QpOgorCisgICAgICAgIFRoZSB1bmRv
L3JlZG8gYWN0aW9uIGxhYmVsIHVzZWQgdG8gcmVwcmVzZW50IHRoaXMgaW4gcGxhdGZvcm0gVUku
CisKKyAgICAgICAgKiBlZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmg6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0aW5nU3R5bGUuY3BwOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0RWRpdGFibGVJbWFn
ZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0RWRpdGFibGVJbWFnZUNvbW1h
bmQ6OmRvQXBwbHkpOgorCisgICAgICAgIFVuaWZpZWQgYnVpbGQgZml4ZXMuCisKKyAgICAgICAg
KiBlZGl0aW5nL1VuZG9TdGVwLmg6CisgICAgICAgICogcGFnZS9VbmRvSXRlbS5oOgorCiAyMDE5
LTAxLTIyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBzb21lIGJpbmRpbmdzLXJlbGF0ZWQgYm9va2tlZXBpbmcgdG8gVW5kb01hbmFnZXIgYW5k
IFVuZG9JdGVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDdjNDg0NDQ4ZjRkM2E2NTk2MGNjYTk0NmQ3NDY0
OTgwNWNmMDgwNDAuLmQyYWRiMGU1NDA5ZjE4OTk5YzQ4NzZjM2RkOTIwYmY5ZDM4MDVlNWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CkBAIC05NTIsNiArOTUyLDcgQEAgZWRpdGluZy9CcmVha0Jsb2NrcXVvdGVD
b21tYW5kLmNwcAogZWRpdGluZy9DaGFuZ2VMaXN0VHlwZUNvbW1hbmQuY3BwCiBlZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmNwcAogZWRpdGluZy9DcmVhdGVMaW5rQ29tbWFuZC5jcHAKK2Vk
aXRpbmcvQ3VzdG9tVW5kb1N0ZXAuY3BwCiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwCiBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCiBlZGl0aW5nL0RpY3Rh
dGlvbkFsdGVybmF0aXZlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQxODUxZWJkZGYwZmJkODE1MTc3Y2U0ZGRmOTM3ZTRl
YmU0OTYyYzcuLmRhYjRkZjUwNGUyNjQzM2NkZTBkMWMxNDRkNDZiNTNjNWNhOWU5MjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTE1MTMxLDYgKzE1MTMxLDggQEAKIAkJRjREOTgxN0UyMTk1RkJGNjAwODIzMEZDIC8qIENoYW5n
ZUxpc3RUeXBlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDaGFuZ2VMaXN0VHlwZUNv
bW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEUxOTY1QTIxRjIzOTUw
MDAyODUwNzggLyogSlNVbmRvSXRlbUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1VuZG9JdGVtQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjRFMTk2NUYyMUYyNkU0RTAwMjg1MDc4IC8qIFVuZG9JdGVtLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFVuZG9JdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RjRFMTk2NjEyMUYyN0QzQzAwMjg1MDc4IC8qIEN1c3RvbVVuZG9TdGVwLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1c3RvbVVuZG9TdGVwLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY0RTE5NjYyMjFGMjdEM0QwMDI4NTA3OCAvKiBDdXN0b21VbmRvU3RlcC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXN0b21VbmRvU3RlcC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RTU3RURBMjEzRjNGNUYwMDRFQTk4
RSAvKiBGb250QXR0cmlidXRlQ2hhbmdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250QXR0cmlidXRl
Q2hhbmdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEU1N0VERjIxM0Y0MzRB
MDA0RUE5OEUgLyogV2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjRFNTdFRTAyMTNGNDM0QTAwNEVBOThFIC8qIFdlYkNvcmVOU0ZvbnRNYW5hZ2VyRXh0cmFz
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTEwNyw2ICsyMTEwOSw4IEBACiAJCQkJ
MkRENUE3MjYxRUJFRTQ3RDAwOUJBNTk3IC8qIENvbXBvc2l0aW9uVW5kZXJsaW5lLmggKi8sCiAJ
CQkJRDBCMDU1NjcwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmNwcCAqLywK
IAkJCQlEMEIwNTU2NjA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuaCAqLywK
KwkJCQlGNEUxOTY2MjIxRjI3RDNEMDAyODUwNzggLyogQ3VzdG9tVW5kb1N0ZXAuY3BwICovLAor
CQkJCUY0RTE5NjYxMjFGMjdEM0MwMDI4NTA3OCAvKiBDdXN0b21VbmRvU3RlcC5oICovLAogCQkJ
CTkzMzA5RDhGMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cCAqLywKIAkJCQk5MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkxMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q29tcG9zaXRlRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRl
RWRpdENvbW1hbmQuaAppbmRleCAyZGE1MjBmZGM0NjQ5MjkyZGM3YmZjYTIwYjdkMTFiMTE4YzVk
YTFjLi5iMmZhNWQwMTlhNDYzZmM2YjI1MGE0ODRhMmI0Mzk2N2ZlMmQ2MWYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCkBAIC04OCw2ICs4OCw4
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRWRpdENvbW1hbmRDb21wb3NpdGlvbihEb2N1bWVu
dCYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHN0YXJ0aW5nU2VsZWN0aW9uLCBjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBlbmRpbmdTZWxlY3Rpb24sIEVkaXRBY3Rpb24pOwogCisgICAgY29uc3Qg
U3RyaW5nJiBjdXN0b21VbmRvTGFiZWwoKSBjb25zdCBmaW5hbCB7IHJldHVybiBlbXB0eVN0cmlu
ZygpOyB9CisKICAgICBSZWZQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CiAgICAgVmlzaWJsZVNl
bGVjdGlvbiBtX3N0YXJ0aW5nU2VsZWN0aW9uOwogICAgIFZpc2libGVTZWxlY3Rpb24gbV9lbmRp
bmdTZWxlY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1c3RvbVVu
ZG9TdGVwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmVkOGUwMjhiN2NhNzkzZTU3YWJmOTU3ZTkzZjVjOWY2OWE1YjIyYTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmNwcApA
QCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkN1c3RvbVVuZG9TdGVwLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IlVuZG9JdGVtLmgiCisjaW5jbHVkZSAiVW5kb01hbmFnZXIuaCIKKyNpbmNsdWRlICJWb2lkQ2Fs
bGJhY2suaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDdXN0b21VbmRvU3RlcDo6Q3VzdG9t
VW5kb1N0ZXAoVW5kb0l0ZW0mIGl0ZW0pCisgICAgOiBtX3VuZG9JdGVtKG1ha2VXZWFrUHRyKGl0
ZW0pKQoreworfQorCit2b2lkIEN1c3RvbVVuZG9TdGVwOjp1bmFwcGx5KCkKK3sKKyAgICBpZiAo
IWlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IEl0J3MgY3VycmVu
dGx5IHVuY2xlYXIgaG93IGlucHV0IGV2ZW50cyBzaG91bGQgYmUgZGlzcGF0Y2hlZCB3aGVuIHVu
YXBwbHlpbmcgb3IgcmVhcHBseWluZyBjdXN0b20KKyAgICAvLyBlZGl0IGNvbW1hbmRzLiBTaG91
bGQgdGhlIHBhZ2UgYmUgYWxsb3dlZCB0byBzcGVjaWZ5IGEgdGFyZ2V0IGluIHRoZSBET00gZm9y
IHVuZG8gYW5kIHJlZG8/CisgICAgUmVmPFVuZG9JdGVtPiBwcm90ZWN0ZWRVbmRvSXRlbSgqbV91
bmRvSXRlbSk7CisgICAgcHJvdGVjdGVkVW5kb0l0ZW0tPmRvY3VtZW50KCktPnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIHByb3RlY3RlZFVuZG9JdGVtLT51bmRv
SGFuZGxlcigpLmhhbmRsZUV2ZW50KCk7Cit9CisKK3ZvaWQgQ3VzdG9tVW5kb1N0ZXA6OnJlYXBw
bHkoKQoreworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWY8
VW5kb0l0ZW0+IHByb3RlY3RlZFVuZG9JdGVtKCptX3VuZG9JdGVtKTsKKyAgICBwcm90ZWN0ZWRV
bmRvSXRlbS0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KCk7CisgICAgcHJvdGVjdGVkVW5kb0l0ZW0tPnJlZG9IYW5kbGVyKCkuaGFuZGxlRXZlbnQoKTsK
K30KKworYm9vbCBDdXN0b21VbmRvU3RlcDo6aXNWYWxpZCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fdW5kb0l0ZW0gJiYgbV91bmRvSXRlbS0+aXNWYWxpZCgpOworfQorCitjb25zdCBTdHJpbmcm
IEN1c3RvbVVuZG9TdGVwOjpjdXN0b21VbmRvTGFiZWwoKSBjb25zdAoreworICAgIGlmICghaXNW
YWxpZCgpKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4g
ZW1wdHlTdHJpbmcoKTsKKyAgICB9CisgICAgcmV0dXJuIG1fdW5kb0l0ZW0tPmxhYmVsKCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ3VzdG9tVW5kb1N0ZXAuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3VzdG9tVW5k
b1N0ZXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xYjZkOTA2YjliOGY2M2FmOTEyNzJmMDRkZWNmNGIxOWQ5Nzdj
NDE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0b21VbmRv
U3RlcC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIlVuZG9TdGVwLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CitjbGFz
cyBVbmRvSXRlbTsKKworY2xhc3MgQ3VzdG9tVW5kb1N0ZXAgZmluYWwgOiBwdWJsaWMgVW5kb1N0
ZXAgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8Q3VzdG9tVW5kb1N0ZXA+IGNyZWF0ZShVbmRv
SXRlbSYgaXRlbSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEN1c3RvbVVu
ZG9TdGVwKGl0ZW0pKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQ3VzdG9tVW5kb1N0ZXAoVW5k
b0l0ZW0mKTsKKworICAgIHZvaWQgdW5hcHBseSgpIGZpbmFsOworICAgIHZvaWQgcmVhcHBseSgp
IGZpbmFsOworICAgIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIEVkaXRBY3Rpb246OlVuc3BlY2lmaWVkOyB9CisgICAgY29uc3QgU3RyaW5nJiBjdXN0b21V
bmRvTGFiZWwoKSBjb25zdCBmaW5hbDsKKworICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OworCisg
ICAgV2Vha1B0cjxVbmRvSXRlbT4gbV91bmRvSXRlbTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAppbmRleCBiMzhjMTUw
OWVlOTc5YmU5ZTQwZmUzYmFkMjkwZDQ3NDI2NjAwMDZjLi42YmJmMDE0MzA0YjQ4Yzc3NTFlYzk4
Y2NiMjYyYjhhOWEzMDcwYzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRpbmdTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUu
Y3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIk5vZGVU
cmF2ZXJzYWwuaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCisjaW5jbHVkZSAiUmVuZGVy
RWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU3R5bGVGb250
U2l6ZUZ1bmN0aW9ucy5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRFZGl0YWJsZUltYWdlQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEVkaXRhYmxlSW1hZ2VDb21tYW5kLmNwcApp
bmRleCA1NWQxMTg0Yzc4MDdjN2UwOWE0YzVmNjZlNTY3OTJlYzE4YTM2YTI2Li5kOWFmYTU2ZTZj
Y2NhZjA5MmJiM2RhNTIyODZmYWRlMTkyYjY5YmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydEVkaXRhYmxlSW1hZ2VDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydEVkaXRhYmxlSW1hZ2VDb21tYW5kLmNwcApAQCAtNDksMTAgKzQ5
LDEwIEBAIHZvaWQgSW5zZXJ0RWRpdGFibGVJbWFnZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgICAg
ICByZXR1cm47CiAKICAgICBtX2ltYWdlRWxlbWVudCA9IEhUTUxJbWFnZUVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCgpKTsKLSAgICBtX2ltYWdlRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbih4X2FwcGxlX2VkaXRhYmxlX2ltYWdlQXR0ciwgZW1wdHlBdG9tKCkpOwot
ICAgIG1faW1hZ2VFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHdp
ZHRoQXR0ciwgQXRvbWljU3RyaW5nKCIxMDAlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwotICAgIG1faW1hZ2VFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hy
b25pemF0aW9uKGhlaWdodEF0dHIsIEF0b21pY1N0cmluZygiMzAwcHgiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgbV9pbWFnZUVsZW1lbnQtPnNldEF0dHJpYnV0
ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oc3R5bGVBdHRyLCBBdG9taWNTdHJpbmcoImRpc3BsYXk6
IGJsb2NrIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIG1faW1h
Z2VFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6
eF9hcHBsZV9lZGl0YWJsZV9pbWFnZUF0dHIsIGVtcHR5QXRvbSgpKTsKKyAgICBtX2ltYWdlRWxl
bWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OndpZHRo
QXR0ciwgQXRvbWljU3RyaW5nKCIxMDAlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIG1faW1hZ2VFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKEhUTUxOYW1lczo6aGVpZ2h0QXR0ciwgQXRvbWljU3RyaW5nKCIzMDBweCIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBtX2ltYWdlRWxlbWVudC0+c2V0
QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OnN0eWxlQXR0ciwgQXRv
bWljU3RyaW5nKCJkaXNwbGF5OiBibG9jayIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKIAogICAgIGluc2VydE5vZGVBdCgqbV9pbWFnZUVsZW1lbnQsIGVuZGluZ1NlbGVj
dGlvbigpLnN0YXJ0KCkpOwogICAgIHNldEVuZGluZ1NlbGVjdGlvbih2aXNpYmxlUG9zaXRpb25B
ZnRlck5vZGUoKm1faW1hZ2VFbGVtZW50KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1VuZG9TdGVwLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1VuZG9TdGVwLmgKaW5k
ZXggMDBjMTcwMDEwN2IyY2M3OWNjMTMyNjc5ZDg5OGQ3MDViYTc4N2U3OC4uNTcxYmY5OWNhNDMy
YjI4MDM4MDljMGNjY2VjNzlmZmE0YmIwNWMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9VbmRvU3RlcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVW5kb1N0ZXAu
aApAQCAtNDIsNiArNDIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVuYXBwbHkoKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlYXBwbHkoKSA9IDA7CiAgICAgdmlydHVhbCBFZGl0QWN0
aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBjb25zdCBTdHJpbmcm
IGN1c3RvbVVuZG9MYWJlbCgpIGNvbnN0ID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb0l0ZW0uaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvVW5kb0l0ZW0uaAppbmRleCAyOWMxMDJkOGVlOGUyYWEyODY1ZjVhOGMyMzhi
ODQ3OTkwOTgxN2JkLi4zMjYyODRhNTljN2I1ZjIxZjBhMDgwNmVhZWEwMDAwMjYyZTc2YmNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9JdGVtLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9VbmRvSXRlbS5oCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgVW5kb01hbmFnZXI7CiAKLWNsYXNzIFVuZG9JdGVt
IDogcHVibGljIFJlZkNvdW50ZWQ8VW5kb0l0ZW0+IHsKK2NsYXNzIFVuZG9JdGVtIDogcHVibGlj
IFJlZkNvdW50ZWQ8VW5kb0l0ZW0+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8VW5kb0l0ZW0+IHsK
ICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFVuZG9JdGVtKTsKIHB1YmxpYzoKICAgICBzdHJ1
Y3QgSW5pdCB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359834</attachid>
            <date>2019-01-22 18:53:45 -0800</date>
            <delta_ts>2019-01-22 19:44:13 -0800</delta_ts>
            <desc>Part 2 (fix GTK/WPE builds)</desc>
            <filename>bug-193111-20190122185344.patch</filename>
            <type>text/plain</type>
            <size>13879</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWFhYWJiMGIwNDY2M2I2
YmYwYWRmMjJlYmFiM2RmZWYzNmFhYWVjNi4uNzc3NzVkNTNhY2U2MjU0NTdhMzVjODJmN2RiYmE2
YzBhNjg3YTliYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE5LTAxLTE5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBD
dXN0b21VbmRvU3RlcC5oIGFuZCBDdXN0b21VbmRvU3RlcC5jcHAKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzExMQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNDQ4MDcwNDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBpcyBtb3JlIHdvcmsgaW4gcHJvZ3Jlc3MgdG93YXJkcyBzdXBw
b3J0aW5nIGBVbmRvTWFuYWdlci5hZGRJdGVtKClgLiBIZXJlLCB3ZSBpbnRyb2R1Y2UgYSBoZWxw
ZXIKKyAgICAgICAgY2xhc3MsIEN1c3RvbVVuZG9TdGVwLCB0aGF0IGhvbGRzIGEgd2VhayByZWZl
cmVuY2UgdG8gYSBzY3JpcHQtZGVmaW5lZCBVbmRvSXRlbS4gU2VlIGJlbG93IGZvciBtb3JlIGRl
dGFpbHMuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0
aW5nL0N1c3RvbVVuZG9TdGVwLmNwcDoKKworICAgICAgICBTdWJjbGFzcyBVbmRvU3RlcC4KKwor
ICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tVW5kb1N0ZXA6OkN1c3RvbVVuZG9TdGVwKToKKyAgICAg
ICAgKFdlYkNvcmU6OkN1c3RvbVVuZG9TdGVwOjp1bmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6
OkN1c3RvbVVuZG9TdGVwOjpyZWFwcGx5KToKKworICAgICAgICBJZiBwb3NzaWJsZSwgaW52b2tl
IHRoZSBVbmRvSXRlbSdzIHVuZG8gYW5kIHJlZG8gaGFuZGxlcnMuCisKKyAgICAgICAgKFdlYkNv
cmU6OkN1c3RvbVVuZG9TdGVwOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkN1
c3RvbVVuZG9TdGVwOjpjdXN0b21VbmRvTGFiZWwgY29uc3QpOgorCisgICAgICAgIFRoZSB1bmRv
L3JlZG8gYWN0aW9uIGxhYmVsIHVzZWQgdG8gcmVwcmVzZW50IHRoaXMgaW4gcGxhdGZvcm0gVUku
CisKKyAgICAgICAgKiBlZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmg6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0aW5nU3R5bGUuY3BwOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0RWRpdGFibGVJbWFn
ZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0RWRpdGFibGVJbWFnZUNvbW1h
bmQ6OmRvQXBwbHkpOgorCisgICAgICAgIFVuaWZpZWQgYnVpbGQgZml4ZXMuCisKKyAgICAgICAg
KiBlZGl0aW5nL1VuZG9TdGVwLmg6CisgICAgICAgICogcGFnZS9VbmRvSXRlbS5oOgorCiAyMDE5
LTAxLTIyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBzb21lIGJpbmRpbmdzLXJlbGF0ZWQgYm9va2tlZXBpbmcgdG8gVW5kb01hbmFnZXIgYW5k
IFVuZG9JdGVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDdjNDg0NDQ4ZjRkM2E2NTk2MGNjYTk0NmQ3NDY0
OTgwNWNmMDgwNDAuLmQyYWRiMGU1NDA5ZjE4OTk5YzQ4NzZjM2RkOTIwYmY5ZDM4MDVlNWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CkBAIC05NTIsNiArOTUyLDcgQEAgZWRpdGluZy9CcmVha0Jsb2NrcXVvdGVD
b21tYW5kLmNwcAogZWRpdGluZy9DaGFuZ2VMaXN0VHlwZUNvbW1hbmQuY3BwCiBlZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmNwcAogZWRpdGluZy9DcmVhdGVMaW5rQ29tbWFuZC5jcHAKK2Vk
aXRpbmcvQ3VzdG9tVW5kb1N0ZXAuY3BwCiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwCiBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCiBlZGl0aW5nL0RpY3Rh
dGlvbkFsdGVybmF0aXZlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQxODUxZWJkZGYwZmJkODE1MTc3Y2U0ZGRmOTM3ZTRl
YmU0OTYyYzcuLmRhYjRkZjUwNGUyNjQzM2NkZTBkMWMxNDRkNDZiNTNjNWNhOWU5MjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTE1MTMxLDYgKzE1MTMxLDggQEAKIAkJRjREOTgxN0UyMTk1RkJGNjAwODIzMEZDIC8qIENoYW5n
ZUxpc3RUeXBlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDaGFuZ2VMaXN0VHlwZUNv
bW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEUxOTY1QTIxRjIzOTUw
MDAyODUwNzggLyogSlNVbmRvSXRlbUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1VuZG9JdGVtQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjRFMTk2NUYyMUYyNkU0RTAwMjg1MDc4IC8qIFVuZG9JdGVtLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFVuZG9JdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RjRFMTk2NjEyMUYyN0QzQzAwMjg1MDc4IC8qIEN1c3RvbVVuZG9TdGVwLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1c3RvbVVuZG9TdGVwLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY0RTE5NjYyMjFGMjdEM0QwMDI4NTA3OCAvKiBDdXN0b21VbmRvU3RlcC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXN0b21VbmRvU3RlcC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RTU3RURBMjEzRjNGNUYwMDRFQTk4
RSAvKiBGb250QXR0cmlidXRlQ2hhbmdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250QXR0cmlidXRl
Q2hhbmdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEU1N0VERjIxM0Y0MzRB
MDA0RUE5OEUgLyogV2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjRFNTdFRTAyMTNGNDM0QTAwNEVBOThFIC8qIFdlYkNvcmVOU0ZvbnRNYW5hZ2VyRXh0cmFz
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTEwNyw2ICsyMTEwOSw4IEBACiAJCQkJ
MkRENUE3MjYxRUJFRTQ3RDAwOUJBNTk3IC8qIENvbXBvc2l0aW9uVW5kZXJsaW5lLmggKi8sCiAJ
CQkJRDBCMDU1NjcwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmNwcCAqLywK
IAkJCQlEMEIwNTU2NjA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuaCAqLywK
KwkJCQlGNEUxOTY2MjIxRjI3RDNEMDAyODUwNzggLyogQ3VzdG9tVW5kb1N0ZXAuY3BwICovLAor
CQkJCUY0RTE5NjYxMjFGMjdEM0MwMDI4NTA3OCAvKiBDdXN0b21VbmRvU3RlcC5oICovLAogCQkJ
CTkzMzA5RDhGMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cCAqLywKIAkJCQk5MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkxMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q29tcG9zaXRlRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRl
RWRpdENvbW1hbmQuaAppbmRleCAyZGE1MjBmZGM0NjQ5MjkyZGM3YmZjYTIwYjdkMTFiMTE4YzVk
YTFjLi5iMmZhNWQwMTlhNDYzZmM2YjI1MGE0ODRhMmI0Mzk2N2ZlMmQ2MWYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCkBAIC04OCw2ICs4OCw4
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRWRpdENvbW1hbmRDb21wb3NpdGlvbihEb2N1bWVu
dCYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHN0YXJ0aW5nU2VsZWN0aW9uLCBjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBlbmRpbmdTZWxlY3Rpb24sIEVkaXRBY3Rpb24pOwogCisgICAgY29uc3Qg
U3RyaW5nJiBjdXN0b21VbmRvTGFiZWwoKSBjb25zdCBmaW5hbCB7IHJldHVybiBlbXB0eVN0cmlu
ZygpOyB9CisKICAgICBSZWZQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CiAgICAgVmlzaWJsZVNl
bGVjdGlvbiBtX3N0YXJ0aW5nU2VsZWN0aW9uOwogICAgIFZpc2libGVTZWxlY3Rpb24gbV9lbmRp
bmdTZWxlY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1c3RvbVVu
ZG9TdGVwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmVkOGUwMjhiN2NhNzkzZTU3YWJmOTU3ZTkzZjVjOWY2OWE1YjIyYTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmNwcApA
QCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkN1c3RvbVVuZG9TdGVwLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IlVuZG9JdGVtLmgiCisjaW5jbHVkZSAiVW5kb01hbmFnZXIuaCIKKyNpbmNsdWRlICJWb2lkQ2Fs
bGJhY2suaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDdXN0b21VbmRvU3RlcDo6Q3VzdG9t
VW5kb1N0ZXAoVW5kb0l0ZW0mIGl0ZW0pCisgICAgOiBtX3VuZG9JdGVtKG1ha2VXZWFrUHRyKGl0
ZW0pKQoreworfQorCit2b2lkIEN1c3RvbVVuZG9TdGVwOjp1bmFwcGx5KCkKK3sKKyAgICBpZiAo
IWlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IEl0J3MgY3VycmVu
dGx5IHVuY2xlYXIgaG93IGlucHV0IGV2ZW50cyBzaG91bGQgYmUgZGlzcGF0Y2hlZCB3aGVuIHVu
YXBwbHlpbmcgb3IgcmVhcHBseWluZyBjdXN0b20KKyAgICAvLyBlZGl0IGNvbW1hbmRzLiBTaG91
bGQgdGhlIHBhZ2UgYmUgYWxsb3dlZCB0byBzcGVjaWZ5IGEgdGFyZ2V0IGluIHRoZSBET00gZm9y
IHVuZG8gYW5kIHJlZG8/CisgICAgUmVmPFVuZG9JdGVtPiBwcm90ZWN0ZWRVbmRvSXRlbSgqbV91
bmRvSXRlbSk7CisgICAgcHJvdGVjdGVkVW5kb0l0ZW0tPmRvY3VtZW50KCktPnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIHByb3RlY3RlZFVuZG9JdGVtLT51bmRv
SGFuZGxlcigpLmhhbmRsZUV2ZW50KCk7Cit9CisKK3ZvaWQgQ3VzdG9tVW5kb1N0ZXA6OnJlYXBw
bHkoKQoreworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWY8
VW5kb0l0ZW0+IHByb3RlY3RlZFVuZG9JdGVtKCptX3VuZG9JdGVtKTsKKyAgICBwcm90ZWN0ZWRV
bmRvSXRlbS0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KCk7CisgICAgcHJvdGVjdGVkVW5kb0l0ZW0tPnJlZG9IYW5kbGVyKCkuaGFuZGxlRXZlbnQoKTsK
K30KKworYm9vbCBDdXN0b21VbmRvU3RlcDo6aXNWYWxpZCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fdW5kb0l0ZW0gJiYgbV91bmRvSXRlbS0+aXNWYWxpZCgpOworfQorCitjb25zdCBTdHJpbmcm
IEN1c3RvbVVuZG9TdGVwOjpjdXN0b21VbmRvTGFiZWwoKSBjb25zdAoreworICAgIGlmICghaXNW
YWxpZCgpKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4g
ZW1wdHlTdHJpbmcoKTsKKyAgICB9CisgICAgcmV0dXJuIG1fdW5kb0l0ZW0tPmxhYmVsKCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ3VzdG9tVW5kb1N0ZXAuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3VzdG9tVW5k
b1N0ZXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xYjZkOTA2YjliOGY2M2FmOTEyNzJmMDRkZWNmNGIxOWQ5Nzdj
NDE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0b21VbmRv
U3RlcC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIlVuZG9TdGVwLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CitjbGFz
cyBVbmRvSXRlbTsKKworY2xhc3MgQ3VzdG9tVW5kb1N0ZXAgZmluYWwgOiBwdWJsaWMgVW5kb1N0
ZXAgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8Q3VzdG9tVW5kb1N0ZXA+IGNyZWF0ZShVbmRv
SXRlbSYgaXRlbSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEN1c3RvbVVu
ZG9TdGVwKGl0ZW0pKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQ3VzdG9tVW5kb1N0ZXAoVW5k
b0l0ZW0mKTsKKworICAgIHZvaWQgdW5hcHBseSgpIGZpbmFsOworICAgIHZvaWQgcmVhcHBseSgp
IGZpbmFsOworICAgIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIEVkaXRBY3Rpb246OlVuc3BlY2lmaWVkOyB9CisgICAgY29uc3QgU3RyaW5nJiBjdXN0b21V
bmRvTGFiZWwoKSBjb25zdCBmaW5hbDsKKworICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OworCisg
ICAgV2Vha1B0cjxVbmRvSXRlbT4gbV91bmRvSXRlbTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAppbmRleCBiMzhjMTUw
OWVlOTc5YmU5ZTQwZmUzYmFkMjkwZDQ3NDI2NjAwMDZjLi42YmJmMDE0MzA0YjQ4Yzc3NTFlYzk4
Y2NiMjYyYjhhOWEzMDcwYzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRpbmdTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUu
Y3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIk5vZGVU
cmF2ZXJzYWwuaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCisjaW5jbHVkZSAiUmVuZGVy
RWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU3R5bGVGb250
U2l6ZUZ1bmN0aW9ucy5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRFZGl0YWJsZUltYWdlQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEVkaXRhYmxlSW1hZ2VDb21tYW5kLmNwcApp
bmRleCA1NWQxMTg0Yzc4MDdjN2UwOWE0YzVmNjZlNTY3OTJlYzE4YTM2YTI2Li5kOWFmYTU2ZTZj
Y2NhZjA5MmJiM2RhNTIyODZmYWRlMTkyYjY5YmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydEVkaXRhYmxlSW1hZ2VDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydEVkaXRhYmxlSW1hZ2VDb21tYW5kLmNwcApAQCAtNDksMTAgKzQ5
LDEwIEBAIHZvaWQgSW5zZXJ0RWRpdGFibGVJbWFnZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgICAg
ICByZXR1cm47CiAKICAgICBtX2ltYWdlRWxlbWVudCA9IEhUTUxJbWFnZUVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCgpKTsKLSAgICBtX2ltYWdlRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbih4X2FwcGxlX2VkaXRhYmxlX2ltYWdlQXR0ciwgZW1wdHlBdG9tKCkpOwot
ICAgIG1faW1hZ2VFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHdp
ZHRoQXR0ciwgQXRvbWljU3RyaW5nKCIxMDAlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwotICAgIG1faW1hZ2VFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hy
b25pemF0aW9uKGhlaWdodEF0dHIsIEF0b21pY1N0cmluZygiMzAwcHgiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgbV9pbWFnZUVsZW1lbnQtPnNldEF0dHJpYnV0
ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oc3R5bGVBdHRyLCBBdG9taWNTdHJpbmcoImRpc3BsYXk6
IGJsb2NrIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIG1faW1h
Z2VFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6
eF9hcHBsZV9lZGl0YWJsZV9pbWFnZUF0dHIsIGVtcHR5QXRvbSgpKTsKKyAgICBtX2ltYWdlRWxl
bWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OndpZHRo
QXR0ciwgQXRvbWljU3RyaW5nKCIxMDAlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIG1faW1hZ2VFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKEhUTUxOYW1lczo6aGVpZ2h0QXR0ciwgQXRvbWljU3RyaW5nKCIzMDBweCIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBtX2ltYWdlRWxlbWVudC0+c2V0
QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OnN0eWxlQXR0ciwgQXRv
bWljU3RyaW5nKCJkaXNwbGF5OiBibG9jayIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKIAogICAgIGluc2VydE5vZGVBdCgqbV9pbWFnZUVsZW1lbnQsIGVuZGluZ1NlbGVj
dGlvbigpLnN0YXJ0KCkpOwogICAgIHNldEVuZGluZ1NlbGVjdGlvbih2aXNpYmxlUG9zaXRpb25B
ZnRlck5vZGUoKm1faW1hZ2VFbGVtZW50KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1VuZG9TdGVwLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1VuZG9TdGVwLmgKaW5k
ZXggMDBjMTcwMDEwN2IyY2M3OWNjMTMyNjc5ZDg5OGQ3MDViYTc4N2U3OC4uMzQ5MGZmZjg5OGJh
NjM1OGJiMzdhNThhY2MyNmMzNDQ5N2I1MjQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9VbmRvU3RlcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVW5kb1N0ZXAu
aApAQCAtMzIsNiArMzIsNyBAQAogCiAjaW5jbHVkZSAiRWRpdEFjdGlvbi5oIgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDIsNiArNDMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHVuYXBwbHkoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlYXBwbHkoKSA9IDA7CiAg
ICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCA9IDA7CisgICAgdmly
dHVhbCBjb25zdCBTdHJpbmcmIGN1c3RvbVVuZG9MYWJlbCgpIGNvbnN0ID0gMDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5k
b0l0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVW5kb0l0ZW0uaAppbmRleCAyOWMxMDJkOGVl
OGUyYWEyODY1ZjVhOGMyMzhiODQ3OTkwOTgxN2JkLi4zMjYyODRhNTljN2I1ZjIxZjBhMDgwNmVh
ZWEwMDAwMjYyZTc2YmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VuZG9JdGVt
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9VbmRvSXRlbS5oCkBAIC0zNiw3ICszNiw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgVW5kb01hbmFnZXI7
CiAKLWNsYXNzIFVuZG9JdGVtIDogcHVibGljIFJlZkNvdW50ZWQ8VW5kb0l0ZW0+IHsKK2NsYXNz
IFVuZG9JdGVtIDogcHVibGljIFJlZkNvdW50ZWQ8VW5kb0l0ZW0+LCBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8VW5kb0l0ZW0+IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFVuZG9JdGVtKTsK
IHB1YmxpYzoKICAgICBzdHJ1Y3QgSW5pdCB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>