<?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>128150</bug_id>
          
          <creation_ts>2014-02-03 18:28:04 -0800</creation_ts>
          <short_desc>Web Replay: route through UserInputBridge when delivering user inputs to WebCore</short_desc>
          <delta_ts>2014-02-26 13:35:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>andersca</cc>
    
    <cc>berto</cc>
    
    <cc>bunhere</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>joepeck</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>mjs</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>timothy</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>976144</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-03 18:28:04 -0800</bug_when>
    <thetext>This is one of the few parts of web replay that cannot be easily put behind a guard. For now, the methods inside InputProxy don&apos;t have any replay code paths, as that requires machinery that hasn&apos;t landed yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976154</commentid>
    <comment_count>1</comment_count>
      <attachid>223059</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-03 18:57:48 -0800</bug_when>
    <thetext>Created attachment 223059
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976157</commentid>
    <comment_count>2</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-03 19:00:33 -0800</bug_when>
    <thetext>RFC: should this patch forward user inputs for WK2 and PLATFORM(MAC) only, or should I go dig for all uses of the user input entry points? I could see the use of replaying Mac WK1, but for other ports it seems like a waste of time unless web replay is intended to support those platforms (or unless InputProxy becomes useful to non-replay code for refactoring reasons).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976429</commentid>
    <comment_count>3</comment_count>
      <attachid>223137</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-04 10:30:15 -0800</bug_when>
    <thetext>Created attachment 223137
patch2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978939</commentid>
    <comment_count>4</comment_count>
      <attachid>223721</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-10 10:01:53 -0800</bug_when>
    <thetext>Created attachment 223721
rebased patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978943</commentid>
    <comment_count>5</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-10 10:08:22 -0800</bug_when>
    <thetext>I&apos;m very excited about this feature, but we need to talk about the abstraction layer added here (CC&apos;ing people.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978945</commentid>
    <comment_count>6</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-10 10:12:16 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; I&apos;m very excited about this feature, but we need to talk about the abstraction layer added here (CC&apos;ing people.)

Sure thing. (For reference, an older version of InputProxy.cpp with the replay parts added is viewable here: https://github.com/burg/timelapse/blob/timelapse/Source/WebCore/replay/ReplayProxy.cpp)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982630</commentid>
    <comment_count>7</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-19 18:05:06 -0800</bug_when>
    <thetext>Update:

After much bikeshedding over the last few weeks, I think the name UserInputBridge or UserInputSwitch best communicate what this abstraction does: It lets inputs selectively flow from WK/WK2 to WebCore. 

When capturing, the inputs are tee&apos;d into the replay log and EventHandler/FocusController/wherever they used to go. When replaying, the &apos;bridge&apos; is up (or, circuit broken) and user inputs don&apos;t come from WK/WK2, only from the replay log and internally.

These names avoid the following overloaded/vague terms: Shim, Proxy, Mediator, Connection, Channel. I think some others have suggested Switchboard and InputTap, but those are less evocative IMO.


As for the necessity of adding yet another abstraction, the alternatives are less appealing because they distribute &apos;bridge&apos; logic across many callsites in WebKit2 and/or many callees in WebCore.

Alternative 1: inside every relevant input-receiving callee in WebCore, add:

 * an optional argument to distinguish the source of the input (WC or WK2)
 * check whether we are capturing or replaying.
   - If capturing, save the user input if it&apos;s external (from WK2).
   - If replaying, ignore the user input if it&apos;s external (from WK2), and handle normally otherwise (from recording or WebCore).

Alternative 2: at every relevant input-delivering callsite in WebProcess, implement the above, but only for the external case.

Either alternative requires duplicating the delivery code (e.g., corePage()-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;eventHandler()-&gt;handleMouseMove(...)) between the WK2 callsite and the replay input&apos;s dispatch() method, which could lead to subtle bitrot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982638</commentid>
    <comment_count>8</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-02-19 18:17:27 -0800</bug_when>
    <thetext>I like UserInputBridge.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983639</commentid>
    <comment_count>9</comment_count>
      <attachid>224984</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-22 15:41:28 -0800</bug_when>
    <thetext>Created attachment 224984
rebased, renamed to UserInputBridge</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983934</commentid>
    <comment_count>10</comment_count>
      <attachid>224984</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-02-24 09:53:18 -0800</bug_when>
    <thetext>Comment on attachment 224984
rebased, renamed to UserInputBridge

Looks good to me. Please fix the other platform builds before landing though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983937</commentid>
    <comment_count>11</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-24 10:03:11 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 224984 [details])
&gt; Looks good to me. Please fix the other platform builds before landing though.

OK. I haven&apos;t been able to get a useful GTK or EFL build attempt in a few weeks though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983956</commentid>
    <comment_count>12</comment_count>
      <attachid>225075</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-24 11:08:08 -0800</bug_when>
    <thetext>Created attachment 225075
try EWS again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983983</commentid>
    <comment_count>13</comment_count>
      <attachid>225075</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-02-24 11:39:57 -0800</bug_when>
    <thetext>Comment on attachment 225075
try EWS again

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

Also looks good to me.

&gt; Source/WebCore/replay/UserInputBridge.h:54
&gt; +    bool handleContextMenuEvent(const PlatformMouseEvent&amp;, const Frame*, bool fromReplay = false);
&gt; +    bool handleMousePressEvent(const PlatformMouseEvent&amp;, bool fromReplay = false);
&gt; +    bool handleMouseReleaseEvent(const PlatformMouseEvent&amp;, bool fromReplay = false);
&gt; +    bool handleMouseMoveEvent(const PlatformMouseEvent&amp;, bool fromReplay = false);
&gt; +    bool handleMouseMoveOnScrollbarEvent(const PlatformMouseEvent&amp;, bool fromReplay = false);

When the fromReplay parameter is actually used, it would read better if it was an enum instead of a bool. WebKit style is typically to use an enum instead of booleans where possible to avoid confusing parameter values at call sites. For example: foo(true, false, true);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984883</commentid>
    <comment_count>14</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-26 13:35:58 -0800</bug_when>
    <thetext>Committed r164745: &lt;http://trac.webkit.org/changeset/164745&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223059</attachid>
            <date>2014-02-03 18:57:48 -0800</date>
            <delta_ts>2014-02-04 10:30:13 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug-128150-20140203185804.patch</filename>
            <type>text/plain</type>
            <size>28187</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzMzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjQ0MWY0YWEyZmI5YmZj
NWM2MGFmNWRlNjdhYmZjNDI5MWVhZmY4NS4uYjM3MjMxOTY5N2M4NzVhZDAzZDhkMTM0ZTlkYjAx
YmYxN2I0MTZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ2IEBACiAyMDE0LTAyLTAzICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCisgICAgICAgIFdlYiBSZXBsYXk6IHJvdXRlIHRo
cm91Z2ggSW5wdXRQcm94eSB3aGVuIGRlbGl2ZXJpbmcgdXNlciBpbnB1dHMgdG8gV2ViQ29yZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MTUwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGFuIElu
cHV0UHJveHkgaW5zdGFuY2UgdG8gZWFjaCBQYWdlLiBXZWJLaXQgYW5kIFdlYktpdDIgcm91dGUg
YSBwYWdlJ3MgdXNlciBpbnB1dAorICAgICAgICB0aHJvdWdoIGl0cyBJbnB1dFByb3h5IHNvIHRo
YXQgdGhlIGlucHV0cyBjYW4gYmUgY2FwdHVyZWQgYW5kIHJlcGxheWVkIHVzaW5nIHJlcGxheQor
ICAgICAgICBpbnN0cnVtZW50YXRpb24gaW5zaWRlIHRoZSBJbnB1dFByb3h5LgorCisgICAgICAg
IEZvciBub3cgdGhlIHJvdXRpbmcgbWV0aG9kcyBvZiBJbnB1dFByb3h5IGFyZSBzdHViYmVkIG91
dCBhbmQgaGF2ZSBubyByZXBsYXktc3BlY2lmaWMKKyAgICAgICAgY29kZSBwYXRocy4gVGhleSB3
aWxsIGJlIGZpbGxlZCBpbiB3aGVuIHRoZSBtYWNoaW5lcnkgZm9yIGNhcHR1cmluZyBhbmQgcmVw
bGF5aW5nIGhhcyBsYW5kZWQuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjogQWRkIHN5bWJv
bHMgZm9yIGlucHV0IHJvdXRpbmcgbWV0aG9kcy4gCisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlOjpQYWdlKTogSW5pdGlhbGl6ZSB0aGUgb3duZWQgSW5wdXRQcm94eSBpbiB0
aGUgUGFnZSBjb25zdHJ1Y3Rvci4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2U6OmlucHV0UHJveHkpOiBBZGRlZCBhIGJ5LXJlZmVyZW5jZSBnZXR0ZXIuCisg
ICAgICAgICogcmVwbGF5L0lucHV0UHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OklucHV0UHJveHk6OklucHV0UHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRQcm94eTo6
fklucHV0UHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRQcm94eTo6aGFuZGxlQ29udGV4
dE1lbnVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFByb3h5OjpoYW5kbGVNb3VzZVBy
ZXNzRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRQcm94eTo6aGFuZGxlTW91c2VSZWxl
YXNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRQcm94eTo6aGFuZGxlTW91c2VNb3Zl
RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRQcm94eTo6aGFuZGxlTW91c2VNb3ZlT25T
Y3JvbGxiYXJFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFByb3h5OjpoYW5kbGVLZXlF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFByb3h5OjpoYW5kbGVBY2Nlc3NLZXlFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFByb3h5OjpoYW5kbGVXaGVlbEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OklucHV0UHJveHk6OmZvY3VzU2V0QWN0aXZlKToKKyAgICAgICAgKFdl
YkNvcmU6OklucHV0UHJveHk6OmZvY3VzU2V0Rm9jdXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnB1dFByb3h5OjpzY3JvbGxSZWN1cnNpdmVseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFBy
b3h5Ojpsb2dpY2FsU2Nyb2xsUmVjdXJzaXZlbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRQ
cm94eTo6bG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRQcm94eTo6cmVsb2Fk
RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRQcm94eTo6c3RvcExvYWRpbmdGcmFtZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFByb3h5Ojp0cnlDbG9zZVBhZ2UpOgorICAgICAgICAq
IHJlcGxheS9JbnB1dFByb3h5Lmg6IEFkZGVkLgorCisyMDE0LTAyLTAzICBCcmlhbiBCdXJnICA8
YmJ1cmdAYXBwbGUuY29tPgorCiAgICAgICAgIFdlYiBSZXBsYXk6IHVwc3RyZWFtIGJhc2UgaW5w
dXQgY2xhc3NlcyBhbmQgdGhlIGlucHV0IGN1cnNvciBpbnRlcmZhY2UKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODExMAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ZjJiZDY2MzhlYjVhMjgyYTA3ZDE4ZjcwMzUxNDRiMjY1NGM1MzI3My4uNzMyN2RlNzc2ZDA0MWMx
Y2UwY2FhYjg0N2VmYjQxY2QyZjg3YWNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisy
MDE0LTAyLTAzICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBS
ZXBsYXk6IHJvdXRlIHRocm91Z2ggSW5wdXRQcm94eSB3aGVuIGRlbGl2ZXJpbmcgdXNlciBpbnB1
dHMgdG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTI4MTUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2hlbiBkZWxpdmVyaW5nIHVzZXIgaW5wdXRzIHRvIFdlYkNvcmUsIHJvdXRlIGNhbGxz
IHRocm91Z2ggdGhlIHBhZ2UncyBJbnB1dFByb3h5LgorICAgICAgICBUaGlzIGFsbG93cyB1cyB0
byBjYXB0dXJlIGFuZCByZXBsYXkgdXNlciBpbnB1dHMgZnJvbSBXZWJLaXQyIHNvbGVseSB3aXRo
aW4gV2ViQ29yZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dHJ5Q2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpsb2FkUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnN0b3BMb2Fk
aW5nRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzdG9wTG9hZGluZyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlbG9hZCk6CisgICAgICAgIChXZWJLaXQ6OmhhbmRsZUNv
bnRleHRNZW51RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpoYW5kbGVNb3VzZUV2ZW50KToKKyAg
ICAgICAgKFdlYktpdDo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OmhhbmRs
ZUtleUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2Nyb2xsKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6bG9naWNhbFNjcm9sbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnNldEFjdGl2ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldEZvY3VzZWQpOgor
CiAyMDE0LTAyLTAzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFsbG93IFdLMiB0byByZWFkIGZyb20gTlNVc2VyRGVmYXVsdHMgd2hlbiBpdCBoYXMg
bm8gcHJlZnMgaWRlbnRpZmllcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBkZmNhZjU1MDcwZGM2
OWY0OWY0MjE4Y2MyZTQ2Y2ZjYmM4NGFlNjRiLi5hYmNhZmUyYmZjZDAyZWIwN2FmMDcwNjhjYTky
YmYwYTAyNmE0MzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNzYsNiArNzYsMjEgQEAgX19a
TjdXZWJDb3JlMTBDcmVkZW50aWFsQzFFUktOM1dURjZTdHJpbmdFUzRfTlNfMjFDcmVkZW50aWFs
UGVyc2lzdGVuY2VFCiBfX1pON1dlYkNvcmUxMENyZWRlbnRpYWxDMUV2CiBfX1pON1dlYkNvcmUx
MEZsb2F0UG9pbnRDMUVSS05TXzhJbnRQb2ludEUKIF9fWk43V2ViQ29yZTEwRm9udEdseXBoczE1
cmVsZWFzZUZvbnREYXRhRXYKK19fWk43V2ViQ29yZTEwSW5wdXRQcm94eTExbG9hZFJlcXVlc3RF
UktOU18xNkZyYW1lTG9hZFJlcXVlc3RFYgorX19aTjdXZWJDb3JlMTBJbnB1dFByb3h5MTFyZWxv
YWRGcmFtZUVQTlNfNUZyYW1lRWJiCitfX1pON1dlYkNvcmUxMElucHV0UHJveHkxMnRyeUNsb3Nl
UGFnZUViCitfX1pON1dlYkNvcmUxMElucHV0UHJveHkxNGZvY3VzU2V0QWN0aXZlRWJiCitfX1pO
N1dlYkNvcmUxMElucHV0UHJveHkxNGhhbmRsZUtleUV2ZW50RVJLTlNfMjFQbGF0Zm9ybUtleWJv
YXJkRXZlbnRFYgorX19aTjdXZWJDb3JlMTBJbnB1dFByb3h5MTVmb2N1c1NldEZvY3VzZWRFYmIK
K19fWk43V2ViQ29yZTEwSW5wdXRQcm94eTE2aGFuZGxlV2hlZWxFdmVudEVSS05TXzE4UGxhdGZv
cm1XaGVlbEV2ZW50RWIKK19fWk43V2ViQ29yZTEwSW5wdXRQcm94eTE2c3RvcExvYWRpbmdGcmFt
ZUVQTlNfNUZyYW1lRWIKK19fWk43V2ViQ29yZTEwSW5wdXRQcm94eTE3c2Nyb2xsUmVjdXJzaXZl
bHlFTlNfMTVTY3JvbGxEaXJlY3Rpb25FTlNfMTdTY3JvbGxHcmFudWxhcml0eUViCitfX1pON1dl
YkNvcmUxMElucHV0UHJveHkyMGhhbmRsZUFjY2Vzc0tleUV2ZW50RVJLTlNfMjFQbGF0Zm9ybUtl
eWJvYXJkRXZlbnRFYgorX19aTjdXZWJDb3JlMTBJbnB1dFByb3h5MjBoYW5kbGVNb3VzZU1vdmVF
dmVudEVSS05TXzE4UGxhdGZvcm1Nb3VzZUV2ZW50RWIKK19fWk43V2ViQ29yZTEwSW5wdXRQcm94
eTIxaGFuZGxlTW91c2VQcmVzc0V2ZW50RVJLTlNfMThQbGF0Zm9ybU1vdXNlRXZlbnRFYgorX19a
TjdXZWJDb3JlMTBJbnB1dFByb3h5MjJoYW5kbGVDb250ZXh0TWVudUV2ZW50RVJLTlNfMThQbGF0
Zm9ybU1vdXNlRXZlbnRFUEtOU181RnJhbWVFYgorX19aTjdXZWJDb3JlMTBJbnB1dFByb3h5MjNo
YW5kbGVNb3VzZVJlbGVhc2VFdmVudEVSS05TXzE4UGxhdGZvcm1Nb3VzZUV2ZW50RWIKK19fWk43
V2ViQ29yZTEwSW5wdXRQcm94eTMxaGFuZGxlTW91c2VNb3ZlT25TY3JvbGxiYXJFdmVudEVSS05T
XzE4UGxhdGZvcm1Nb3VzZUV2ZW50RWIKIF9fWk43V2ViQ29yZTEwSlNEb2N1bWVudDZzX2luZm9F
CiBfX1pON1dlYkNvcmUxME1vdXNlRXZlbnQ2Y3JlYXRlRVJLTjNXVEYxMkF0b21pY1N0cmluZ0VO
UzFfMTBQYXNzUmVmUHRySU5TXzlET01XaW5kb3dFRUVSS05TXzE4UGxhdGZvcm1Nb3VzZUV2ZW50
RWlOUzVfSU5TXzROb2RlRUVFCiBfX1pON1dlYkNvcmUxME1vdXNlRXZlbnQ2Y3JlYXRlRVJLTjNX
VEYxMkF0b21pY1N0cmluZ0ViYmROUzFfMTBQYXNzUmVmUHRySU5TXzlET01XaW5kb3dFRUVpaWlp
aWJiYmJ0TlM1X0lOU18xMUV2ZW50VGFyZ2V0RUVFTlM1X0lOU185Q2xpcGJvYXJkRUVFYgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGVkNmFjZjc3NGRmZDJkNTdiM2MwODBiM2MyMmIzMWZmMDZiNjFmYmUuLjU2ZGRiMWJjYjc4OTM4
MTI3NjY1NDQ3NGVjYzkwZTJlOTFiMjJmMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM0OTAsNiArMzQ5MCw4IEBACiAJCTk4
Q0U0MzJBMTI5RTAwRTUwMDU4MjFEQyAvKiBMaW5rTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OENFNDMyOTEyOUUwMEU1MDA1ODIxREMgLyog
TGlua0xvYWRlci5oICovOyB9OwogCQk5OEVCMUY5NTEzMTNGRTA1MDBEMEUxRUEgLyogTm90SW1w
bGVtZW50ZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk4RUIxRjk0MTMxM0ZFMDUwMEQwRTFFQSAvKiBOb3RJbXBsZW1lbnRlZC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk5RTQ1QTE3MThBMDYzQkUw
MDI2RDg4RiAvKiBFdmVudExvb3BJbnB1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTlFNDVBMTYxOEEwNjNCRTAwMjZEODhGIC8qIEV2ZW50TG9vcElu
cHV0LmggKi87IH07CisJCTk5RTQ1QTFBMThBMDdCOTMwMDI2RDg4RiAvKiBJbnB1dFByb3h5LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5RTQ1QTE4
MThBMDdCOTMwMDI2RDg4RiAvKiBJbnB1dFByb3h5LmNwcCAqLzsgfTsKKwkJOTlFNDVBMUIxOEEw
N0I5MzAwMjZEODhGIC8qIElucHV0UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk5RTQ1QTE5MThBMDdCOTMwMDI2RDg4RiAvKiBJbnB1dFByb3h5
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUEx
MTQyMDQxODMyRDEzNTAwMEJCOEFEIC8qIFZhbHVlVG9TdHJpbmcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBMTE0MjAzMTgzMkQxMzQwMDBCQjhBRCAv
KiBWYWx1ZVRvU3RyaW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOUExQjZGOTcxNTg4NjlDODAwMTFBOEM0IC8qIEpTRE9NU3RyaW5nTGlzdEN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
QTFCNkY5NjE1ODg2OUM4MDAxMUE4QzQgLyogSlNET01TdHJpbmdMaXN0Q3VzdG9tLmNwcCAqLzsg
fTsKIAkJOUE1MjhFODMxN0Q3RjUyRjAwQUE5NTE4IC8qIEZsb2F0aW5nT2JqZWN0cy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QTUyOEU4MTE3RDdG
NTJGMDBBQTk1MTggLyogRmxvYXRpbmdPYmplY3RzLmNwcCAqLzsgfTsKQEAgLTEwNDQ4LDYgKzEw
NDUwLDggQEAKIAkJOThDRTQzMjkxMjlFMDBFNTAwNTgyMURDIC8qIExpbmtMb2FkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGlua0xvYWRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5OEVCMUY5NDEzMTNGRTA1MDBEMEUxRUEgLyogTm90SW1wbGVtZW50
ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm90SW1wbGVtZW50ZWQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlFNDVBMTYxOEEwNjNCRTAwMjZEODhGIC8q
IEV2ZW50TG9vcElucHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50
TG9vcElucHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5RTQ1QTE4MThBMDdC
OTMwMDI2RDg4RiAvKiBJbnB1dFByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IElucHV0UHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
OUU0NUExOTE4QTA3QjkzMDAyNkQ4OEYgLyogSW5wdXRQcm94eS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbnB1dFByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTlBMTE0MjAzMTgzMkQxMzQwMDBCQjhBRCAvKiBWYWx1ZVRvU3RyaW5nLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbHVlVG9TdHJpbmcuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOUExQjZGOTYxNTg4NjlDODAwMTFBOEM0IC8qIEpTRE9NU3RyaW5nTGlz
dEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVN0
cmluZ0xpc3RDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QTUyOEU4
MTE3RDdGNTJGMDBBQTk1MTggLyogRmxvYXRpbmdPYmplY3RzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZsb2F0aW5nT2JqZWN0cy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xNzg1NSw2ICsxNzg1OSw4IEBACiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAogCQkJCTk5RTQ1QTE2MThBMDYzQkUwMDI2RDg4RiAvKiBFdmVudExv
b3BJbnB1dC5oICovLAorCQkJCTk5RTQ1QTE4MThBMDdCOTMwMDI2RDg4RiAvKiBJbnB1dFByb3h5
LmNwcCAqLywKKwkJCQk5OUU0NUExOTE4QTA3QjkzMDAyNkQ4OEYgLyogSW5wdXRQcm94eS5oICov
LAogCQkJKTsKIAkJCXBhdGggPSByZXBsYXk7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpA
QCAtMjMzMjAsNiArMjMzMjYsNyBAQAogCQkJCTg1NDA3NTZEMEFENkNCRjkwMDYyMEM1NyAvKiBE
T01IVE1MT3B0aW9uRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkx
RjE3RDE0RDFDMDA0MjBBQTEgLyogUlRDRGF0YUNoYW5uZWxFdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODVERjJGOUIwQUEzQ0FFNTAwQUQ2NEM1IC8qIERPTUhUTUxPcHRpb25zQ29sbGVjdGlv
bi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTlFNDVBMUIxOEEwN0I5MzAwMjZEODhGIC8qIElucHV0
UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RTcxMUMwMEFDNUQ1MzUwMDUzMjcwRiAvKiBE
T01IVE1MT3B0aW9uc0NvbGxlY3Rpb25JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUx
ODNCNDYwQUE2OTI2MTAwRjE5RkEzIC8qIERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4NUU3MTFDMTBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFBhcmFncmFw
aEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzE4OSw2ICsyNzE5Niw3IEBA
CiAJCQkJQTg3MURCMkUwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZUNlbGxFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQjI5MEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFi
bGVDb2xFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQjI4MEExNTBCRDYwMEIx
MkE2OCAvKiBIVE1MVGFibGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk5RTQ1QTFB
MThBMDdCOTMwMDI2RDg4RiAvKiBJbnB1dFByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4
NzFEQjJEMEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFibGVQYXJ0RWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBODcxREIzMDBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlUm93RWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzQ0MkNBMDBEMkIzMzYwMDAzMzhGRjkgLyog
SFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cAppbmRleCBhNjlmNTU1MzZkZGU5MzU0YmEwYTRmN2QxMDBkOGQwYTRkYzFjYjE1Li5kYjg0MzY1
MzUxN2EzODdkNjVlY2IwN2MzOTFhYjE3N2FkZTljN2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAg
LTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkhpc3Rv
cnlDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKKyNpbmNsdWRlICJJbnB1
dFByb3h5LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTEzNCw2
ICsxMzUsNyBAQCBQYWdlOjpQYWdlKFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykKICNpZiBFTkFC
TEUoQ09OVEVYVF9NRU5VUykKICAgICAsIG1fY29udGV4dE1lbnVDb250cm9sbGVyKHN0ZDo6bWFr
ZV91bmlxdWU8Q29udGV4dE1lbnVDb250cm9sbGVyPigqdGhpcywgKnBhZ2VDbGllbnRzLmNvbnRl
eHRNZW51Q2xpZW50KSkKICNlbmRpZgorICAgICwgbV9pbnB1dFByb3h5KHN0ZDo6bWFrZV91bmlx
dWU8SW5wdXRQcm94eT4oKnRoaXMpKQogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgLCBtX2lu
c3BlY3RvckNvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JDb250cm9sbGVyPigq
dGhpcywgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50KSkKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApp
bmRleCBmMGIzMzE3Mzc2NzU4MDY3OTVhZGJiZDU3NDdhYTQzMmZlNDNmNjE0Li5jMGZhZTQ3MGI5
ODBiNGIwY2EwZTNkNWY3ZWM1MzFhYzI3NjczYjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNzcsNiAr
NzcsNyBAQCBjbGFzcyBGcmFtZUxvYWRlckNsaWVudDsKIGNsYXNzIEZyYW1lU2VsZWN0aW9uOwog
Y2xhc3MgSGFsdGFibGVQbHVnaW47CiBjbGFzcyBIaXN0b3J5SXRlbTsKK2NsYXNzIElucHV0UHJv
eHk7CiBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBJbnNwZWN0b3JDb250cm9sbGVyOwog
Y2xhc3MgTWFpbkZyYW1lOwpAQCAtMTk0LDYgKzE5NSw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUo
Q09OVEVYVF9NRU5VUykKICAgICBDb250ZXh0TWVudUNvbnRyb2xsZXImIGNvbnRleHRNZW51Q29u
dHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuICptX2NvbnRleHRNZW51Q29udHJvbGxlcjsgfQogI2Vu
ZGlmCisgICAgSW5wdXRQcm94eSYgaW5wdXRQcm94eSgpIGNvbnN0IHsgcmV0dXJuICptX2lucHV0
UHJveHk7IH0KICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIEluc3BlY3RvckNvbnRyb2xsZXIm
IGluc3BlY3RvckNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiAqbV9pbnNwZWN0b3JDb250cm9s
bGVyOyB9CiAjZW5kaWYKQEAgLTQ1MSw2ICs0NTMsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShD
T05URVhUX01FTlVTKQogICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudUNvbnRy
b2xsZXI+IG1fY29udGV4dE1lbnVDb250cm9sbGVyOwogI2VuZGlmCisgICAgY29uc3Qgc3RkOjp1
bmlxdWVfcHRyPElucHV0UHJveHk+IG1faW5wdXRQcm94eTsKICNpZiBFTkFCTEUoSU5TUEVDVE9S
KQogICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3JDb250cm9sbGVyPiBtX2luc3Bl
Y3RvckNvbnRyb2xsZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxh
eS9JbnB1dFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9JbnB1dFByb3h5LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zZTZjYTIxM2ZhNTQ4ZjQ2NTUwM2ZiYjJlOGFhZTVjNDM0YTliYjE2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L0lucHV0UHJveHkuY3BwCkBAIC0w
LDAgKzEsMTQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIFVuaXZlcnNpdHkgb2YgV2Fz
aGluZ3Rvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUyAiQVMKKyAqIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRAorICogVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBCisgKiBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIklucHV0UHJveHkuaCIKKworI2luY2x1
ZGUgIkV2ZW50SGFuZGxlci5oIgorI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgorI2luY2x1
ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgorI2luY2x1ZGUgIk1h
aW5GcmFtZS5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJk
RXZlbnQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybVdoZWVsRXZlbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisKK0lucHV0UHJveHk6
OklucHV0UHJveHkoUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCitJbnB1
dFByb3h5Ojp+SW5wdXRQcm94eSgpCit7Cit9CisKK2Jvb2wgSW5wdXRQcm94eTo6aGFuZGxlQ29u
dGV4dE1lbnVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQsIGNvbnN0
IEZyYW1lKiBmcmFtZSwgYm9vbCBmcm9tUmVwbGF5KQoreworICAgIFVOVVNFRF9QQVJBTShmcm9t
UmVwbGF5KTsKKyAgICByZXR1cm4gZnJhbWUtPmV2ZW50SGFuZGxlcigpLnNlbmRDb250ZXh0TWVu
dUV2ZW50KG1vdXNlRXZlbnQpOworfQorCitib29sIElucHV0UHJveHk6OmhhbmRsZU1vdXNlUHJl
c3NFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQsIGJvb2wgZnJvbVJl
cGxheSkKK3sKKyAgICBVTlVTRURfUEFSQU0oZnJvbVJlcGxheSk7CisgICAgcmV0dXJuIG1fcGFn
ZS5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVByZXNzRXZlbnQobW91c2VF
dmVudCk7Cit9CisKK2Jvb2wgSW5wdXRQcm94eTo6aGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoY29u
c3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBtb3VzZUV2ZW50LCBib29sIGZyb21SZXBsYXkpCit7Cisg
ICAgVU5VU0VEX1BBUkFNKGZyb21SZXBsYXkpOworICAgIHJldHVybiBtX3BhZ2UubWFpbkZyYW1l
KCkuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQobW91c2VFdmVudCk7Cit9
CisKK2Jvb2wgSW5wdXRQcm94eTo6aGFuZGxlTW91c2VNb3ZlRXZlbnQoY29uc3QgUGxhdGZvcm1N
b3VzZUV2ZW50JiBtb3VzZUV2ZW50LCBib29sIGZyb21SZXBsYXkpCit7CisgICAgVU5VU0VEX1BB
UkFNKGZyb21SZXBsYXkpOworICAgIHJldHVybiBtX3BhZ2UubWFpbkZyYW1lKCkuZXZlbnRIYW5k
bGVyKCkubW91c2VNb3ZlZChtb3VzZUV2ZW50KTsKK30KKworYm9vbCBJbnB1dFByb3h5OjpoYW5k
bGVNb3VzZU1vdmVPblNjcm9sbGJhckV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgbW91
c2VFdmVudCwgYm9vbCBmcm9tUmVwbGF5KQoreworICAgIFVOVVNFRF9QQVJBTShmcm9tUmVwbGF5
KTsKKyAgICByZXR1cm4gbV9wYWdlLm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLnBhc3NNb3Vz
ZU1vdmVkRXZlbnRUb1Njcm9sbGJhcnMobW91c2VFdmVudCk7Cit9CisKK2Jvb2wgSW5wdXRQcm94
eTo6aGFuZGxlS2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBrZXlFdmVudCwg
Ym9vbCBmcm9tUmVwbGF5KQoreworICAgIFVOVVNFRF9QQVJBTShmcm9tUmVwbGF5KTsKKyAgICBy
ZXR1cm4gbV9wYWdlLmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpLmV2ZW50
SGFuZGxlcigpLmtleUV2ZW50KGtleUV2ZW50KTsKK30KKworYm9vbCBJbnB1dFByb3h5OjpoYW5k
bGVBY2Nlc3NLZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleUV2ZW50LCBi
b29sIGZyb21SZXBsYXkpCit7CisgICAgVU5VU0VEX1BBUkFNKGZyb21SZXBsYXkpOworICAgIHJl
dHVybiBtX3BhZ2UuZm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCkuZXZlbnRI
YW5kbGVyKCkuaGFuZGxlQWNjZXNzS2V5KGtleUV2ZW50KTsKK30KKworYm9vbCBJbnB1dFByb3h5
OjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwg
Ym9vbCBmcm9tUmVwbGF5KQoreworICAgIFVOVVNFRF9QQVJBTShmcm9tUmVwbGF5KTsKKyAgICBy
ZXR1cm4gbV9wYWdlLm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLmhhbmRsZVdoZWVsRXZlbnQo
d2hlZWxFdmVudCk7Cit9CisKK3ZvaWQgSW5wdXRQcm94eTo6Zm9jdXNTZXRBY3RpdmUoYm9vbCBh
Y3RpdmUsIGJvb2wgZnJvbVJlcGxheSkKK3sKKyAgICBVTlVTRURfUEFSQU0oZnJvbVJlcGxheSk7
CisgICAgbV9wYWdlLmZvY3VzQ29udHJvbGxlcigpLnNldEFjdGl2ZShhY3RpdmUpOworfQorCit2
b2lkIElucHV0UHJveHk6OmZvY3VzU2V0Rm9jdXNlZChib29sIGZvY3VzZWQsIGJvb2wgZnJvbVJl
cGxheSkKK3sKKyAgICBVTlVTRURfUEFSQU0oZnJvbVJlcGxheSk7CisgICAgbV9wYWdlLmZvY3Vz
Q29udHJvbGxlcigpLnNldEZvY3VzZWQoZm9jdXNlZCk7Cit9CisKK2Jvb2wgSW5wdXRQcm94eTo6
c2Nyb2xsUmVjdXJzaXZlbHkoU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVs
YXJpdHkgZ3JhbnVsYXJpdHksIGJvb2wgZnJvbVJlcGxheSkKK3sKKyAgICBVTlVTRURfUEFSQU0o
ZnJvbVJlcGxheSk7CisgICAgcmV0dXJuIG1fcGFnZS5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2Vk
T3JNYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5zY3JvbGxSZWN1cnNpdmVseShkaXJlY3Rpb24s
IGdyYW51bGFyaXR5LCBudWxscHRyKTsKK30KKworYm9vbCBJbnB1dFByb3h5Ojpsb2dpY2FsU2Ny
b2xsUmVjdXJzaXZlbHkoU2Nyb2xsTG9naWNhbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdy
YW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIGZyb21SZXBsYXkpCit7CisgICAgVU5VU0VEX1BB
UkFNKGZyb21SZXBsYXkpOworICAgIHJldHVybiBtX3BhZ2UuZm9jdXNDb250cm9sbGVyKCkuZm9j
dXNlZE9yTWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkubG9naWNhbFNjcm9sbFJlY3Vyc2l2ZWx5
KGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHksIG51bGxwdHIpOworfQorCit2b2lkIElucHV0UHJveHk6
OmxvYWRSZXF1ZXN0KGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgZnJvbVJl
cGxheSkKK3sKKyAgICBVTlVTRURfUEFSQU0oZnJvbVJlcGxheSk7CisgICAgbV9wYWdlLm1haW5G
cmFtZSgpLmxvYWRlcigpLmxvYWQocmVxdWVzdCk7Cit9CisKK3ZvaWQgSW5wdXRQcm94eTo6cmVs
b2FkRnJhbWUoRnJhbWUqIGZyYW1lLCBib29sIGVuZFRvRW5kUmVsb2FkLCBib29sIGZyb21SZXBs
YXkpCit7CisgICAgVU5VU0VEX1BBUkFNKGZyb21SZXBsYXkpOworICAgIGZyYW1lLT5sb2FkZXIo
KS5yZWxvYWQoZW5kVG9FbmRSZWxvYWQpOworfQorCit2b2lkIElucHV0UHJveHk6OnN0b3BMb2Fk
aW5nRnJhbWUoRnJhbWUqIGZyYW1lLCBib29sIGZyb21SZXBsYXkpCit7CisgICAgVU5VU0VEX1BB
UkFNKGZyb21SZXBsYXkpOworICAgIGZyYW1lLT5sb2FkZXIoKS5zdG9wRm9yVXNlckNhbmNlbCgp
OworfQorCitib29sIElucHV0UHJveHk6OnRyeUNsb3NlUGFnZShib29sIGZyb21SZXBsYXkpCit7
CisgICAgVU5VU0VEX1BBUkFNKGZyb21SZXBsYXkpOworICAgIHJldHVybiBtX3BhZ2UubWFpbkZy
YW1lKCkubG9hZGVyKCkuc2hvdWxkQ2xvc2UoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L0lucHV0UHJveHkuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlcGxheS9JbnB1dFByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDNhZjU0YzIxMjg3OWQw
OTE1NTMxYTVkNTRlNjFhMzgwOWFlOWQzYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlcGxheS9JbnB1dFByb3h5LmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiwgMjAxMyBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b24uIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTCisgKiBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQKKyAqIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQQorICogUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBIT0xERVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSW5wdXRQcm94eV9o
CisjZGVmaW5lIElucHV0UHJveHlfaAorCisjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKKyNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3Qg
RnJhbWVMb2FkUmVxdWVzdDsKKworY2xhc3MgRnJhbWU7CitjbGFzcyBQYWdlOworY2xhc3MgUGxh
dGZvcm1LZXlib2FyZEV2ZW50OworY2xhc3MgUGxhdGZvcm1Nb3VzZUV2ZW50OworY2xhc3MgUGxh
dGZvcm1XaGVlbEV2ZW50OworCitjbGFzcyBJbnB1dFByb3h5IHsKKyAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShJbnB1dFByb3h5KTsKK3B1YmxpYzoKKyAgICBJbnB1dFByb3h5KFBhZ2UmKTsKKyAg
ICB2aXJ0dWFsIH5JbnB1dFByb3h5KCk7CisKKyAgICAvLyBVc2VyIGlucHV0IEFQSXMuCisgICAg
Ym9vbCBoYW5kbGVDb250ZXh0TWVudUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIGNv
bnN0IEZyYW1lKiwgYm9vbCBmcm9tUmVwbGF5ID0gZmFsc2UpOworICAgIGJvb2wgaGFuZGxlTW91
c2VQcmVzc0V2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIGJvb2wgZnJvbVJlcGxheSA9
IGZhbHNlKTsKKyAgICBib29sIGhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KGNvbnN0IFBsYXRmb3Jt
TW91c2VFdmVudCYsIGJvb2wgZnJvbVJlcGxheSA9IGZhbHNlKTsKKyAgICBib29sIGhhbmRsZU1v
dXNlTW92ZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIGJvb2wgZnJvbVJlcGxheSA9
IGZhbHNlKTsKKyAgICBib29sIGhhbmRsZU1vdXNlTW92ZU9uU2Nyb2xsYmFyRXZlbnQoY29uc3Qg
UGxhdGZvcm1Nb3VzZUV2ZW50JiwgYm9vbCBmcm9tUmVwbGF5ID0gZmFsc2UpOworICAgIGJvb2wg
aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBib29sIGZyb21SZXBs
YXkgPSBmYWxzZSk7CisgICAgYm9vbCBoYW5kbGVLZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJv
YXJkRXZlbnQmLCBib29sIGZyb21SZXBsYXkgPSBmYWxzZSk7CisgICAgYm9vbCBoYW5kbGVBY2Nl
c3NLZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmLCBib29sIGZyb21SZXBsYXkg
PSBmYWxzZSk7CisgICAgdm9pZCBmb2N1c1NldEFjdGl2ZShib29sIGFjdGl2ZSwgYm9vbCBmcm9t
UmVwbGF5ID0gZmFsc2UpOworICAgIHZvaWQgZm9jdXNTZXRGb2N1c2VkKGJvb2wgZm9jdXNlZCwg
Ym9vbCBmcm9tUmVwbGF5ID0gZmFsc2UpOworICAgIGJvb2wgc2Nyb2xsUmVjdXJzaXZlbHkoU2Ny
b2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgYm9vbCBmcm9tUmVwbGF5ID0gZmFsc2Up
OworICAgIGJvb2wgbG9naWNhbFNjcm9sbFJlY3Vyc2l2ZWx5KFNjcm9sbExvZ2ljYWxEaXJlY3Rp
b24sIFNjcm9sbEdyYW51bGFyaXR5LCBib29sIGZyb21SZXBsYXkgPSBmYWxzZSk7CisKKyAgICAv
LyBOYXZpZ2F0aW9uIEFQSXMuCisgICAgdm9pZCBsb2FkUmVxdWVzdChjb25zdCBGcmFtZUxvYWRS
ZXF1ZXN0JiwgYm9vbCBmcm9tUmVwbGF5ID0gZmFsc2UpOworICAgIHZvaWQgcmVsb2FkRnJhbWUo
RnJhbWUqLCBib29sIGVuZFRvRW5kUmVsb2FkLCBib29sIGZyb21SZXBsYXkgPSBmYWxzZSk7Cisg
ICAgdm9pZCBzdG9wTG9hZGluZ0ZyYW1lKEZyYW1lKiwgYm9vbCBmcm9tUmVwbGF5ID0gZmFsc2Up
OworICAgIGJvb2wgdHJ5Q2xvc2VQYWdlKGJvb2wgZnJvbVJlcGxheSA9IGZhbHNlKTsKKworcHJp
dmF0ZToKKyAgICBQYWdlJiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBJbnB1dFByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAppbmRleCA0ZTcyZjM1ZTc0NTliN2M5MWIwZjliMzU1YzZjYTFjZThh
YzhiOGVhLi41YWJjN2FmNmYyYTg2OTA2ZTE2ZmY0YjQ5NTM3NThhNDUwMDkwYjgxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMTIsNiAr
MTEyLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0hpc3RvcnlDb250cm9sbGVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSGl0VGVzdFJlc3Vs
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW5wdXRQcm94eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
SlNET01XaW5kb3cuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KQEAgLTg3OSw3ICs4ODAsNyBAQCB2b2lk
IFdlYlBhZ2U6OnRyeUNsb3NlKCkKIHsKICAgICBTZW5kU3RvcFJlc3BvbnNpdmVuZXNzVGltZXIg
c3RvcHBlcih0aGlzKTsKIAotICAgIGlmICghbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5sb2Fk
ZXIoKS5zaG91bGRDbG9zZSgpKSB7CisgICAgaWYgKCFjb3JlUGFnZSgpLT5pbnB1dFByb3h5KCku
dHJ5Q2xvc2VQYWdlKCkpIHsKICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpT
dG9wUmVzcG9uc2l2ZW5lc3NUaW1lcigpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTky
MCw3ICs5MjEsNyBAQCB2b2lkIFdlYlBhZ2U6OmxvYWRSZXF1ZXN0KHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LAogICAgIG1fbG9hZGVyQ2xpZW50
LndpbGxMb2FkVVJMUmVxdWVzdCh0aGlzLCByZXF1ZXN0LCB1c2VyRGF0YS5nZXQoKSk7CiAKICAg
ICAvLyBJbml0YXRlIHRoZSBsb2FkIGluIFdlYkNvcmUuCi0gICAgbV9tYWluRnJhbWUtPmNvcmVG
cmFtZSgpLT5sb2FkZXIoKS5sb2FkKEZyYW1lTG9hZFJlcXVlc3QobV9tYWluRnJhbWUtPmNvcmVG
cmFtZSgpLCByZXF1ZXN0KSk7CisgICAgY29yZVBhZ2UoKS0+aW5wdXRQcm94eSgpLmxvYWRSZXF1
ZXN0KEZyYW1lTG9hZFJlcXVlc3QobV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLCByZXF1ZXN0KSk7
CiAKICAgICBBU1NFUlQoIW1fcGVuZGluZ05hdmlnYXRpb25JRCk7CiB9CkBAIC05OTMsMTQgKzk5
NCwxNCBAQCB2b2lkIFdlYlBhZ2U6OnN0b3BMb2FkaW5nRnJhbWUodWludDY0X3QgZnJhbWVJRCkK
ICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBmcmFtZS0+Y29yZUZyYW1l
KCktPmxvYWRlcigpLnN0b3BGb3JVc2VyQ2FuY2VsKCk7CisgICAgY29yZVBhZ2UoKS0+aW5wdXRQ
cm94eSgpLnN0b3BMb2FkaW5nRnJhbWUoZnJhbWUtPmNvcmVGcmFtZSgpKTsKIH0KIAogdm9pZCBX
ZWJQYWdlOjpzdG9wTG9hZGluZygpCiB7CiAgICAgU2VuZFN0b3BSZXNwb25zaXZlbmVzc1RpbWVy
IHN0b3BwZXIodGhpcyk7CiAKLSAgICBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigp
LnN0b3BGb3JVc2VyQ2FuY2VsKCk7CisgICAgY29yZVBhZ2UoKS0+aW5wdXRQcm94eSgpLnN0b3BM
b2FkaW5nRnJhbWUobV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpKTsKIH0KIAogdm9pZCBXZWJQYWdl
OjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzTG9hZGluZykKQEAgLTEwMTYsNyArMTAxNyw3
IEBAIHZvaWQgV2ViUGFnZTo6cmVsb2FkKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgYm9vbCByZWxv
YWRGcm9tT3JpZ2luLCBjb25zdCBTYW5kYm94CiAgICAgbV9wZW5kaW5nTmF2aWdhdGlvbklEID0g
bmF2aWdhdGlvbklEOwogCiAgICAgbV9zYW5kYm94RXh0ZW5zaW9uVHJhY2tlci5iZWdpbkxvYWQo
bV9tYWluRnJhbWUuZ2V0KCksIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpOwotICAgIG1fbWFpbkZy
YW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkucmVsb2FkKHJlbG9hZEZyb21PcmlnaW4pOworICAg
IGNvcmVQYWdlKCktPmlucHV0UHJveHkoKS5yZWxvYWRGcmFtZShtX21haW5GcmFtZS0+Y29yZUZy
YW1lKCksIHJlbG9hZEZyb21PcmlnaW4pOwogfQogCiB2b2lkIFdlYlBhZ2U6OmdvRm9yd2FyZCh1
aW50NjRfdCBiYWNrRm9yd2FyZEl0ZW1JRCkKQEAgLTE1NjQsNyArMTU2NSw3IEBAIFdlYkNvbnRl
eHRNZW51KiBXZWJQYWdlOjpjb250ZXh0TWVudUF0UG9pbnRJbldpbmRvdyhjb25zdCBJbnRQb2lu
dCYgcG9pbnQpCiAgICAgCiAgICAgLy8gU2ltdWxhdGUgYSBtb3VzZSBjbGljayB0byBnZW5lcmF0
ZSB0aGUgY29ycmVjdCBtZW51LgogICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2ZW50KHBv
aW50LCBwb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCkpOwotICAgIGJvb2wgaGFu
ZGxlZCA9IGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLnNlbmRDb250ZXh0
TWVudUV2ZW50KG1vdXNlRXZlbnQpOworICAgIGJvb2wgaGFuZGxlZCA9IGNvcmVQYWdlKCktPmlu
cHV0UHJveHkoKS5oYW5kbGVDb250ZXh0TWVudUV2ZW50KG1vdXNlRXZlbnQpOwogICAgIGlmICgh
aGFuZGxlZCkKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTE2MjQsOCArMTYyNSw4IEBAIHN0YXRp
YyBib29sIGhhbmRsZUNvbnRleHRNZW51RXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBw
bGF0Zm9ybU1vdXNlRXZlbnQsCiAgICAgRnJhbWUqIGZyYW1lID0gJnBhZ2UtPmNvcmVQYWdlKCkt
Pm1haW5GcmFtZSgpOwogICAgIGlmIChyZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCkpCiAgICAg
ICAgIGZyYW1lID0gcmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpLT5kb2N1bWVudCgpLmZyYW1l
KCk7Ci0gICAgCi0gICAgYm9vbCBoYW5kbGVkID0gZnJhbWUtPmV2ZW50SGFuZGxlcigpLnNlbmRD
b250ZXh0TWVudUV2ZW50KHBsYXRmb3JtTW91c2VFdmVudCk7CisKKyAgICBib29sIGhhbmRsZWQg
PSBwYWdlLT5jb3JlUGFnZSgpLT5pbnB1dFByb3h5KCkuaGFuZGxlQ29udGV4dE1lbnVFdmVudChw
bGF0Zm9ybU1vdXNlRXZlbnQsIGZyYW1lKTsKICAgICBpZiAoaGFuZGxlZCkKICAgICAgICAgcGFn
ZS0+Y29udGV4dE1lbnUoKS0+c2hvdygpOwogCkBAIC0xNjQ4LDcgKzE2NDksNyBAQCBzdGF0aWMg
Ym9vbCBoYW5kbGVNb3VzZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmIG1vdXNlRXZlbnQsIFdl
YlBhZ2UqIHBhZ2UsIGJvbwogICAgICAgICAgICAgICAgIHBhZ2UtPmNvcmVQYWdlKCktPmNvbnRl
eHRNZW51Q29udHJvbGxlcigpLmNsZWFyQ29udGV4dE1lbnUoKTsKICNlbmRpZgogCi0gICAgICAg
ICAgICBib29sIGhhbmRsZWQgPSBmcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVByZXNz
RXZlbnQocGxhdGZvcm1Nb3VzZUV2ZW50KTsKKyAgICAgICAgICAgIGJvb2wgaGFuZGxlZCA9IHBh
Z2UtPmNvcmVQYWdlKCktPmlucHV0UHJveHkoKS5oYW5kbGVNb3VzZVByZXNzRXZlbnQocGxhdGZv
cm1Nb3VzZUV2ZW50KTsKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICAgICAgICAgIGlm
IChpc0NvbnRleHRDbGljayhwbGF0Zm9ybU1vdXNlRXZlbnQpKQogICAgICAgICAgICAgICAgIGhh
bmRsZWQgPSBoYW5kbGVDb250ZXh0TWVudUV2ZW50KHBsYXRmb3JtTW91c2VFdmVudCwgcGFnZSk7
CkBAIC0xNjU2LDEyICsxNjU3LDEyIEBAIHN0YXRpYyBib29sIGhhbmRsZU1vdXNlRXZlbnQoY29u
c3QgV2ViTW91c2VFdmVudCYgbW91c2VFdmVudCwgV2ViUGFnZSogcGFnZSwgYm9vCiAgICAgICAg
ICAgICByZXR1cm4gaGFuZGxlZDsKICAgICAgICAgfQogICAgICAgICBjYXNlIFBsYXRmb3JtRXZl
bnQ6Ok1vdXNlUmVsZWFzZWQ6Ci0gICAgICAgICAgICByZXR1cm4gZnJhbWUuZXZlbnRIYW5kbGVy
KCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQocGxhdGZvcm1Nb3VzZUV2ZW50KTsKKyAgICAgICAg
ICAgIHJldHVybiBwYWdlLT5jb3JlUGFnZSgpLT5pbnB1dFByb3h5KCkuaGFuZGxlTW91c2VSZWxl
YXNlRXZlbnQocGxhdGZvcm1Nb3VzZUV2ZW50KTsKIAogICAgICAgICBjYXNlIFBsYXRmb3JtRXZl
bnQ6Ok1vdXNlTW92ZWQ6CiAgICAgICAgICAgICBpZiAob25seVVwZGF0ZVNjcm9sbGJhcnMpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIGZyYW1lLmV2ZW50SGFuZGxlcigpLnBhc3NNb3VzZU1vdmVk
RXZlbnRUb1Njcm9sbGJhcnMocGxhdGZvcm1Nb3VzZUV2ZW50KTsKLSAgICAgICAgICAgIHJldHVy
biBmcmFtZS5ldmVudEhhbmRsZXIoKS5tb3VzZU1vdmVkKHBsYXRmb3JtTW91c2VFdmVudCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHBhZ2UtPmNvcmVQYWdlKCktPmlucHV0UHJveHkoKS5oYW5k
bGVNb3VzZU1vdmVPblNjcm9sbGJhckV2ZW50KHBsYXRmb3JtTW91c2VFdmVudCk7CisgICAgICAg
ICAgICByZXR1cm4gcGFnZS0+Y29yZVBhZ2UoKS0+aW5wdXRQcm94eSgpLmhhbmRsZU1vdXNlTW92
ZUV2ZW50KHBsYXRmb3JtTW91c2VFdmVudCk7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE3
NDUsNyArMTc0Niw3IEBAIHN0YXRpYyBib29sIGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgV2ViV2hl
ZWxFdmVudCYgd2hlZWxFdmVudCwgUGFnZSogcGFnZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgUGxhdGZvcm1XaGVlbEV2ZW50IHBsYXRmb3JtV2hlZWxFdmVudCA9IHBsYXRmb3JtKHdo
ZWVsRXZlbnQpOwotICAgIHJldHVybiBmcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVXaGVlbEV2
ZW50KHBsYXRmb3JtV2hlZWxFdmVudCk7CisgICAgcmV0dXJuIHBhZ2UtPmlucHV0UHJveHkoKS5o
YW5kbGVXaGVlbEV2ZW50KHBsYXRmb3JtV2hlZWxFdmVudCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6
d2hlZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQpAQCAtMTc3Myw4ICsx
Nzc0LDkgQEAgc3RhdGljIGJvb2wgaGFuZGxlS2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVu
dCYga2V5Ym9hcmRFdmVudCwgUGFnZSogcGFnZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgaWYgKGtleWJvYXJkRXZlbnQudHlwZSgpID09IFdlYkV2ZW50OjpDaGFyICYmIGtleWJvYXJk
RXZlbnQuaXNTeXN0ZW1LZXkoKSkKLSAgICAgICAgcmV0dXJuIHBhZ2UtPmZvY3VzQ29udHJvbGxl
cigpLmZvY3VzZWRPck1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLmhhbmRsZUFjY2Vzc0tleShw
bGF0Zm9ybShrZXlib2FyZEV2ZW50KSk7Ci0gICAgcmV0dXJuIHBhZ2UtPmZvY3VzQ29udHJvbGxl
cigpLmZvY3VzZWRPck1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLmtleUV2ZW50KHBsYXRmb3Jt
KGtleWJvYXJkRXZlbnQpKTsKKyAgICAgICAgcmV0dXJuIHBhZ2UtPmlucHV0UHJveHkoKS5oYW5k
bGVBY2Nlc3NLZXlFdmVudChwbGF0Zm9ybShrZXlib2FyZEV2ZW50KSk7CisKKyAgICByZXR1cm4g
cGFnZS0+aW5wdXRQcm94eSgpLmhhbmRsZUtleUV2ZW50KHBsYXRmb3JtKGtleWJvYXJkRXZlbnQp
KTsKIH0KIAogdm9pZCBXZWJQYWdlOjprZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50JiBr
ZXlib2FyZEV2ZW50KQpAQCAtMTkxMSwxMiArMTkxMywxMiBAQCB2b2lkIFdlYlBhZ2U6OnRvdWNo
RXZlbnRTeW5jRm9yVGVzdGluZyhjb25zdCBXZWJUb3VjaEV2ZW50JiB0b3VjaEV2ZW50LCBib29s
JiBoYQogCiBib29sIFdlYlBhZ2U6OnNjcm9sbChQYWdlKiBwYWdlLCBTY3JvbGxEaXJlY3Rpb24g
ZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKLSAgICByZXR1cm4g
cGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVy
KCkuc2Nyb2xsUmVjdXJzaXZlbHkoZGlyZWN0aW9uLCBncmFudWxhcml0eSk7CisgICAgcmV0dXJu
IHBhZ2UtPmlucHV0UHJveHkoKS5zY3JvbGxSZWN1cnNpdmVseShkaXJlY3Rpb24sIGdyYW51bGFy
aXR5KTsKIH0KIAogYm9vbCBXZWJQYWdlOjpsb2dpY2FsU2Nyb2xsKFBhZ2UqIHBhZ2UsIFNjcm9s
bExvZ2ljYWxEaXJlY3Rpb24gZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0
eSkKIHsKLSAgICByZXR1cm4gcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZy
YW1lKCkuZXZlbnRIYW5kbGVyKCkubG9naWNhbFNjcm9sbFJlY3Vyc2l2ZWx5KGRpcmVjdGlvbiwg
Z3JhbnVsYXJpdHkpOworICAgIHJldHVybiBwYWdlLT5pbnB1dFByb3h5KCkubG9naWNhbFNjcm9s
bFJlY3Vyc2l2ZWx5KGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpOwogfQogCiBib29sIFdlYlBhZ2U6
OnNjcm9sbEJ5KHVpbnQzMl90IHNjcm9sbERpcmVjdGlvbiwgdWludDMyX3Qgc2Nyb2xsR3JhbnVs
YXJpdHkpCkBAIC0xOTMzLDcgKzE5MzUsNyBAQCB2b2lkIFdlYlBhZ2U6OmNlbnRlclNlbGVjdGlv
bkluVmlzaWJsZUFyZWEoKQogCiB2b2lkIFdlYlBhZ2U6OnNldEFjdGl2ZShib29sIGlzQWN0aXZl
KQogewotICAgIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0QWN0aXZlKGlzQWN0aXZlKTsK
KyAgICBtX3BhZ2UtPmlucHV0UHJveHkoKS5mb2N1c1NldEFjdGl2ZShpc0FjdGl2ZSk7CiB9CiAK
IHZvaWQgV2ViUGFnZTo6c2V0Vmlld0lzVmlzaWJsZShib29sIGlzVmlzaWJsZSkKQEAgLTIwMDAs
NyArMjAwMiw3IEBAIHZvaWQgV2ViUGFnZTo6dmlld1dpbGxFbmRMaXZlUmVzaXplKCkKIAogdm9p
ZCBXZWJQYWdlOjpzZXRGb2N1c2VkKGJvb2wgaXNGb2N1c2VkKQogewotICAgIG1fcGFnZS0+Zm9j
dXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZChpc0ZvY3VzZWQpOworICAgIG1fcGFnZS0+aW5wdXRQ
cm94eSgpLmZvY3VzU2V0Rm9jdXNlZChpc0ZvY3VzZWQpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnNl
dEluaXRpYWxGb2N1cyhib29sIGZvcndhcmQsIGJvb2wgaXNLZXlib2FyZEV2ZW50VmFsaWQsIGNv
bnN0IFdlYktleWJvYXJkRXZlbnQmIGV2ZW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223137</attachid>
            <date>2014-02-04 10:30:15 -0800</date>
            <delta_ts>2014-02-10 10:01:47 -0800</delta_ts>
            <desc>patch2</desc>
            <filename>bug-128150-20140204103101.patch</filename>
            <type>text/plain</type>
            <size>32431</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzMzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjQ0MWY0YWEyZmI5YmZj
NWM2MGFmNWRlNjdhYmZjNDI5MWVhZmY4NS4uOTdkMDA0OTE2ODVkYThlNzZmZDM1NzVmODk4OTdk
YTBiODBiMDJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUwIEBACiAyMDE0LTAyLTAzICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCisgICAgICAgIFdlYiBSZXBsYXk6IHJvdXRlIHRo
cm91Z2ggSW5wdXRQcm94eSB3aGVuIGRlbGl2ZXJpbmcgdXNlciBpbnB1dHMgdG8gV2ViQ29yZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MTUwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGFuIElu
cHV0UHJveHkgaW5zdGFuY2UgdG8gZWFjaCBQYWdlLiBXZWJLaXQgYW5kIFdlYktpdDIgcm91dGUg
YSBwYWdlJ3MgdXNlciBpbnB1dAorICAgICAgICB0aHJvdWdoIGl0cyBJbnB1dFByb3h5IHNvIHRo
YXQgdGhlIGlucHV0cyBjYW4gYmUgY2FwdHVyZWQgYW5kIHJlcGxheWVkIHVzaW5nIHJlcGxheQor
ICAgICAgICBpbnN0cnVtZW50YXRpb24gaW5zaWRlIHRoZSBJbnB1dFByb3h5LgorCisgICAgICAg
IEZvciBub3cgdGhlIHJvdXRpbmcgbWV0aG9kcyBvZiBJbnB1dFByb3h5IGFyZSBzdHViYmVkIG91
dCBhbmQgaGF2ZSBubyByZXBsYXktc3BlY2lmaWMKKyAgICAgICAgY29kZSBwYXRocy4gVGhleSB3
aWxsIGJlIGZpbGxlZCBpbiB3aGVuIHRoZSBtYWNoaW5lcnkgZm9yIGNhcHR1cmluZyBhbmQgcmVw
bGF5aW5nIGhhcyBsYW5kZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjogQWRkIHN5bWJvbHMg
Zm9yIGlucHV0IHJvdXRpbmcgbWV0aG9kcy4gCisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
LmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKTog
SW5pdGlhbGl6ZSB0aGUgb3duZWQgSW5wdXRQcm94eSBpbiB0aGUgUGFnZSBjb25zdHJ1Y3Rvci4K
KyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmlucHV0UHJv
eHkpOiBBZGRlZCBhIGJ5LXJlZmVyZW5jZSBnZXR0ZXIuCisgICAgICAgICogcmVwbGF5L0lucHV0
UHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0UHJveHk6OklucHV0UHJv
eHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRQcm94eTo6fklucHV0UHJveHkpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5wdXRQcm94eTo6aGFuZGxlQ29udGV4dE1lbnVFdmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnB1dFByb3h5OjpoYW5kbGVNb3VzZVByZXNzRXZlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5wdXRQcm94eTo6aGFuZGxlTW91c2VSZWxlYXNlRXZlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5wdXRQcm94eTo6aGFuZGxlTW91c2VNb3ZlRXZlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5wdXRQcm94eTo6aGFuZGxlTW91c2VNb3ZlT25TY3JvbGxiYXJFdmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnB1dFByb3h5OjpoYW5kbGVLZXlFdmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnB1dFByb3h5OjpoYW5kbGVBY2Nlc3NLZXlFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnB1dFByb3h5OjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0
UHJveHk6OmZvY3VzU2V0QWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0UHJveHk6OmZv
Y3VzU2V0Rm9jdXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFByb3h5OjpzY3JvbGxSZWN1
cnNpdmVseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFByb3h5Ojpsb2dpY2FsU2Nyb2xsUmVj
dXJzaXZlbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRQcm94eTo6bG9hZFJlcXVlc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5wdXRQcm94eTo6cmVsb2FkRnJhbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5wdXRQcm94eTo6c3RvcExvYWRpbmdGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnB1dFByb3h5Ojp0cnlDbG9zZVBhZ2UpOgorICAgICAgICAqIHJlcGxheS9JbnB1dFByb3h5Lmg6
IEFkZGVkLgorCisyMDE0LTAyLTAzICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCiAg
ICAgICAgIFdlYiBSZXBsYXk6IHVwc3RyZWFtIGJhc2UgaW5wdXQgY2xhc3NlcyBhbmQgdGhlIGlu
cHV0IGN1cnNvciBpbnRlcmZhY2UKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyODExMAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjJiZDY2MzhlYjVhMjgyYTA3ZDE4
ZjcwMzUxNDRiMjY1NGM1MzI3My4uNzljNmIzYjdlZDM3MTkzNjdkZGJjYWZjMjdiMTkzZmEzMmM4
MjMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTAyLTAzICBCcmlhbiBCdXJn
ICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBSZXBsYXk6IHJvdXRlIHRocm91Z2gg
SW5wdXRQcm94eSB3aGVuIGRlbGl2ZXJpbmcgdXNlciBpbnB1dHMgdG8gV2ViQ29yZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MTUwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBkZWxpdmVyaW5n
IHVzZXIgaW5wdXRzIHRvIFdlYkNvcmUsIHJvdXRlIGNhbGxzIHRocm91Z2ggdGhlIHBhZ2UncyBJ
bnB1dFByb3h5LgorICAgICAgICBUaGlzIGFsbG93cyB1cyB0byBjYXB0dXJlIGFuZCByZXBsYXkg
dXNlciBpbnB1dHMgZnJvbSBXZWJLaXQyIHNvbGVseSB3aXRoaW4gV2ViQ29yZS4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6dHJ5Q2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb2FkUmVxdWVzdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnN0b3BMb2FkaW5nRnJhbWUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpzdG9wTG9hZGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnJlbG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNvbnRleHRNZW51QXRQb2ludElu
V2luZG93KToKKyAgICAgICAgKFdlYktpdDo6aGFuZGxlQ29udGV4dE1lbnVFdmVudCk6CisgICAg
ICAgIChXZWJLaXQ6OmhhbmRsZU1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpoYW5kbGVX
aGVlbEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6aGFuZGxlS2V5RXZlbnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpzY3JvbGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb2dp
Y2FsU2Nyb2xsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0QWN0aXZlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0Rm9jdXNlZCk6CisKIDIwMTQtMDItMDMgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQWxsb3cgV0syIHRvIHJl
YWQgZnJvbSBOU1VzZXJEZWZhdWx0cyB3aGVuIGl0IGhhcyBubyBwcmVmcyBpZGVudGlmaWVyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CmluZGV4IDQ4NzFkNjZkMzRlMzUwM2QyNWVhMDFlZTAyMGQ2Zjg0YWMy
MmE1MWYuLmY3YzgzNDU0OWVkM2JlYzU0Y2JhODdkNmVhZjY5MGVkY2RkOWYxZTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC04NSw2ICs4NSw3IEBAIHNldChXZWJDb3JlX0lOQ0xVREVfRElSRUNU
T1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vcmVuZGVyaW5nL3NoYXBlcyIKICAgICAiJHtXRUJD
T1JFX0RJUn0vcmVuZGVyaW5nL3N0eWxlIgogICAgICIke1dFQkNPUkVfRElSfS9yZW5kZXJpbmcv
c3ZnIgorICAgICIke1dFQkNPUkVfRElSfS9yZXBsYXkiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3N0
b3JhZ2UiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3N0eWxlIgogICAgICIke1dFQkNPUkVfRElSfS9z
dmciCkBAIC0yMzE1LDYgKzIzMTYsOCBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcmVuZGVy
aW5nL3N2Zy9TVkdUZXh0UXVlcnkuY3BwCiAgICAgcmVuZGVyaW5nL3N2Zy9TVkdUZXh0UnVuUmVu
ZGVyaW5nQ29udGV4dC5jcHAKIAorICAgIHJlcGxheS9JbnB1dFByb3h5LmNwcAorCiAgICAgc3Rv
cmFnZS9TdG9yYWdlLmNwcAogICAgIHN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcAogICAgIHN0
b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCAyM2M4OTRk
MTQ0ZGZiMjNiYzQ0MDlhMmE5YTJiNTkyZjBhYjdmYzc3Li5hOWMzMGQ2ZjM5MWNiNjU5ODNlNzVj
YTM4YWZjYmQ0YzQxNzY5ODNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTAwLDYgKzEwMCw3
IEBAIHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zaGFwZXMgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2ZyBcCisJLUkk
KHNyY2RpcikvU291cmNlL1dlYkNvcmUvcmVwbGF5IFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9zdHlsZSBcCiAJLUkk
KHNyY2RpcikvU291cmNlL1dlYkNvcmUvc3ZnIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggZGZj
YWY1NTA3MGRjNjlmNDlmNDIxOGNjMmU0NmNmY2JjODRhZTY0Yi4uYWJjYWZlMmJmY2QwMmViMDdh
ZjA3MDY4Y2E5MmJmMGEwMjZhNDMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTc2LDYgKzc2
LDIxIEBAIF9fWk43V2ViQ29yZTEwQ3JlZGVudGlhbEMxRVJLTjNXVEY2U3RyaW5nRVM0X05TXzIx
Q3JlZGVudGlhbFBlcnNpc3RlbmNlRQogX19aTjdXZWJDb3JlMTBDcmVkZW50aWFsQzFFdgogX19a
TjdXZWJDb3JlMTBGbG9hdFBvaW50QzFFUktOU184SW50UG9pbnRFCiBfX1pON1dlYkNvcmUxMEZv
bnRHbHlwaHMxNXJlbGVhc2VGb250RGF0YUV2CitfX1pON1dlYkNvcmUxMElucHV0UHJveHkxMWxv
YWRSZXF1ZXN0RVJLTlNfMTZGcmFtZUxvYWRSZXF1ZXN0RWIKK19fWk43V2ViQ29yZTEwSW5wdXRQ
cm94eTExcmVsb2FkRnJhbWVFUE5TXzVGcmFtZUViYgorX19aTjdXZWJDb3JlMTBJbnB1dFByb3h5
MTJ0cnlDbG9zZVBhZ2VFYgorX19aTjdXZWJDb3JlMTBJbnB1dFByb3h5MTRmb2N1c1NldEFjdGl2
ZUViYgorX19aTjdXZWJDb3JlMTBJbnB1dFByb3h5MTRoYW5kbGVLZXlFdmVudEVSS05TXzIxUGxh
dGZvcm1LZXlib2FyZEV2ZW50RWIKK19fWk43V2ViQ29yZTEwSW5wdXRQcm94eTE1Zm9jdXNTZXRG
b2N1c2VkRWJiCitfX1pON1dlYkNvcmUxMElucHV0UHJveHkxNmhhbmRsZVdoZWVsRXZlbnRFUktO
U18xOFBsYXRmb3JtV2hlZWxFdmVudEViCitfX1pON1dlYkNvcmUxMElucHV0UHJveHkxNnN0b3BM
b2FkaW5nRnJhbWVFUE5TXzVGcmFtZUViCitfX1pON1dlYkNvcmUxMElucHV0UHJveHkxN3Njcm9s
bFJlY3Vyc2l2ZWx5RU5TXzE1U2Nyb2xsRGlyZWN0aW9uRU5TXzE3U2Nyb2xsR3JhbnVsYXJpdHlF
YgorX19aTjdXZWJDb3JlMTBJbnB1dFByb3h5MjBoYW5kbGVBY2Nlc3NLZXlFdmVudEVSS05TXzIx
UGxhdGZvcm1LZXlib2FyZEV2ZW50RWIKK19fWk43V2ViQ29yZTEwSW5wdXRQcm94eTIwaGFuZGxl
TW91c2VNb3ZlRXZlbnRFUktOU18xOFBsYXRmb3JtTW91c2VFdmVudEViCitfX1pON1dlYkNvcmUx
MElucHV0UHJveHkyMWhhbmRsZU1vdXNlUHJlc3NFdmVudEVSS05TXzE4UGxhdGZvcm1Nb3VzZUV2
ZW50RWIKK19fWk43V2ViQ29yZTEwSW5wdXRQcm94eTIyaGFuZGxlQ29udGV4dE1lbnVFdmVudEVS
S05TXzE4UGxhdGZvcm1Nb3VzZUV2ZW50RVBLTlNfNUZyYW1lRWIKK19fWk43V2ViQ29yZTEwSW5w
dXRQcm94eTIzaGFuZGxlTW91c2VSZWxlYXNlRXZlbnRFUktOU18xOFBsYXRmb3JtTW91c2VFdmVu
dEViCitfX1pON1dlYkNvcmUxMElucHV0UHJveHkzMWhhbmRsZU1vdXNlTW92ZU9uU2Nyb2xsYmFy
RXZlbnRFUktOU18xOFBsYXRmb3JtTW91c2VFdmVudEViCiBfX1pON1dlYkNvcmUxMEpTRG9jdW1l
bnQ2c19pbmZvRQogX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50NmNyZWF0ZUVSS04zV1RGMTJBdG9t
aWNTdHJpbmdFTlMxXzEwUGFzc1JlZlB0cklOU185RE9NV2luZG93RUVFUktOU18xOFBsYXRmb3Jt
TW91c2VFdmVudEVpTlM1X0lOU180Tm9kZUVFRQogX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50NmNy
ZWF0ZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFYmJkTlMxXzEwUGFzc1JlZlB0cklOU185RE9NV2lu
ZG93RUVFaWlpaWliYmJidE5TNV9JTlNfMTFFdmVudFRhcmdldEVFRU5TNV9JTlNfOUNsaXBib2Fy
ZEVFRWIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
CmluZGV4IDViOWYwYWZjZTE0NDA2Mjk4Zjc4ZWI0MjM3ODE1MWUxYmEzOGQwN2EuLmU2Zjk1ZDlh
NWRlMjk2M2Y4NDNhMDZlNTNlM2MyODM0ODgxM2JiN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTE5NDQsNiArMTE5NDQsNyBAQAog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAg
ICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlcGxheVxJbnB1dFBy
b3h5LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHdvcmtlcnNcU2hhcmVkV29y
a2VyUmVwb3NpdG9yeS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx4bWxcRE9N
UGFyc2VyLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHhtbFxOYXRpdmVYUGF0
aE5TUmVzb2x2ZXIuY3BwIiAvPgpAQCAtMjAwMDUsNiArMjAwMDYsNyBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN2Z1xTVkdUZXh0TWV0cmljc0J1aWxkZXIuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdmdcU1ZHVGV4dFF1ZXJ5Lmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3ZnXFNWR1RleHRSdW5S
ZW5kZXJpbmdDb250ZXh0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZXBsYXlc
SW5wdXRQcm94eS5oIiAvPiAgIAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ceG1sXERPTVBh
cnNlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ceG1sXE5hdGl2ZVhQYXRoTlNS
ZXNvbHZlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ceG1sXFhNTEVycm9ycy5o
IiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzCmluZGV4IGMwOTJhOTQyNGQzNTc3YzY4ZWIwZTM3OGY2YTE4NjgxNjU0
MjUwZTIuLjE2ZDUwY2I5MmUwODQ1Y2EzMTZmNjM4NjM4ZDdmM2E1MTIzOWYxMjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVy
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZp
bHRlcnMKQEAgLTE5Myw2ICsxOTMsOSBAQAogICAgIDxGaWx0ZXIgSW5jbHVkZT0icmVuZGVyaW5n
XHN2ZyI+CiAgICAgICA8VW5pcXVlSWRlbnRpZmllcj57NzZkNDk2MGEtNTljMS00MmRlLWJjMzct
Y2Y0ZGJhMDFiN2EzfTwvVW5pcXVlSWRlbnRpZmllcj4KICAgICA8L0ZpbHRlcj4KKyAgICA8Rmls
dGVyIEluY2x1ZGU9InJlcGxheSI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57MWZhYzI5ODAt
ZWFhNC00MjQ1LTgwNzMtOTBiNTU0NzU0NzlmfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0Zp
bHRlcj4KICAgICA8RmlsdGVyIEluY2x1ZGU9InhtbCI+CiAgICAgICA8VW5pcXVlSWRlbnRpZmll
cj57N2JmOTUyNDMtYmI1MS00OWEwLThlNGYtMTczMjQyZTVmYzRlfTwvVW5pcXVlSWRlbnRpZmll
cj4KICAgICA8L0ZpbHRlcj4KQEAgLTI5MDcsNiArMjkxMCw5IEBACiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxyZW5kZXJpbmdcVGV4dFBhaW50ZXIuY3BwIj4KICAgICAgIDxGaWx0ZXI+cmVu
ZGVyaW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxyZXBsYXlcSW5wdXRQcm94eS5jcHAiPgorICAgICAgPEZpbHRlcj5yZXBsYXk8L0ZpbHRl
cj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHhtbFxET01Q
YXJzZXIuY3BwIj4KICAgICAgIDxGaWx0ZXI+eG1sPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+
CkBAIC05ODEyLDYgKzk4MTgsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVy
aW5nXHN2Z1xTVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5oIj4KICAgICAgIDxGaWx0ZXI+cmVu
ZGVyaW5nXHN2ZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5ccmVwbGF5XElucHV0UHJveHkuaCI+CisgICAgICA8RmlsdGVyPnhtbDwvRmlsdGVy
PgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ceG1sXERPTVBh
cnNlci5oIj4KICAgICAgIDxGaWx0ZXI+eG1sPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggZWQ2YWNmNzc0ZGZkMmQ1N2IzYzA4MGIzYzIyYjMxZmYwNmI2MWZiZS4uNTZkZGIxYmNiNzg5
MzgxMjc2NjU0NDc0ZWNjOTBlMmU5MWIyMmYxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzQ5MCw2ICszNDkwLDggQEAKIAkJ
OThDRTQzMkExMjlFMDBFNTAwNTgyMURDIC8qIExpbmtMb2FkZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk4Q0U0MzI5MTI5RTAwRTUwMDU4MjFEQyAv
KiBMaW5rTG9hZGVyLmggKi87IH07CiAJCTk4RUIxRjk1MTMxM0ZFMDUwMEQwRTFFQSAvKiBOb3RJ
bXBsZW1lbnRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOThFQjFGOTQxMzEzRkUwNTAwRDBFMUVBIC8qIE5vdEltcGxlbWVudGVkLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTlFNDVBMTcxOEEwNjNC
RTAwMjZEODhGIC8qIEV2ZW50TG9vcElucHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5OUU0NUExNjE4QTA2M0JFMDAyNkQ4OEYgLyogRXZlbnRMb29w
SW5wdXQuaCAqLzsgfTsKKwkJOTlFNDVBMUExOEEwN0I5MzAwMjZEODhGIC8qIElucHV0UHJveHku
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlFNDVB
MTgxOEEwN0I5MzAwMjZEODhGIC8qIElucHV0UHJveHkuY3BwICovOyB9OworCQk5OUU0NUExQjE4
QTA3QjkzMDAyNkQ4OEYgLyogSW5wdXRQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTlFNDVBMTkxOEEwN0I5MzAwMjZEODhGIC8qIElucHV0UHJv
eHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5
QTExNDIwNDE4MzJEMTM1MDAwQkI4QUQgLyogVmFsdWVUb1N0cmluZy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUExMTQyMDMxODMyRDEzNDAwMEJCOEFE
IC8qIFZhbHVlVG9TdHJpbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5QTFCNkY5NzE1ODg2OUM4MDAxMUE4QzQgLyogSlNET01TdHJpbmdMaXN0
Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDlBMUI2Rjk2MTU4ODY5QzgwMDExQThDNCAvKiBKU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwICov
OyB9OwogCQk5QTUyOEU4MzE3RDdGNTJGMDBBQTk1MTggLyogRmxvYXRpbmdPYmplY3RzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBNTI4RTgxMTdE
N0Y1MkYwMEFBOTUxOCAvKiBGbG9hdGluZ09iamVjdHMuY3BwICovOyB9OwpAQCAtMTA0NDgsNiAr
MTA0NTAsOCBAQAogCQk5OENFNDMyOTEyOUUwMEU1MDA1ODIxREMgLyogTGlua0xvYWRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaW5rTG9hZGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTk4RUIxRjk0MTMxM0ZFMDUwMEQwRTFFQSAvKiBOb3RJbXBsZW1l
bnRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOb3RJbXBsZW1lbnRlZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUU0NUExNjE4QTA2M0JFMDAyNkQ4OEYg
LyogRXZlbnRMb29wSW5wdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZl
bnRMb29wSW5wdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTlFNDVBMTgxOEEw
N0I5MzAwMjZEODhGIC8qIElucHV0UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSW5wdXRQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTk5RTQ1QTE5MThBMDdCOTMwMDI2RDg4RiAvKiBJbnB1dFByb3h5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IElucHV0UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOUExMTQyMDMxODMyRDEzNDAwMEJCOEFEIC8qIFZhbHVlVG9TdHJpbmcuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsdWVUb1N0cmluZy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5QTFCNkY5NjE1ODg2OUM4MDAxMUE4QzQgLyogSlNET01TdHJpbmdM
aXN0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9N
U3RyaW5nTGlzdEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlBNTI4
RTgxMTdEN0Y1MkYwMEFBOTUxOCAvKiBGbG9hdGluZ09iamVjdHMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmxvYXRpbmdPYmplY3RzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE3ODU1LDYgKzE3ODU5LDggQEAKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJOTlFNDVBMTYxOEEwNjNCRTAwMjZEODhGIC8qIEV2ZW50
TG9vcElucHV0LmggKi8sCisJCQkJOTlFNDVBMTgxOEEwN0I5MzAwMjZEODhGIC8qIElucHV0UHJv
eHkuY3BwICovLAorCQkJCTk5RTQ1QTE5MThBMDdCOTMwMDI2RDg4RiAvKiBJbnB1dFByb3h5Lmgg
Ki8sCiAJCQkpOwogCQkJcGF0aCA9IHJlcGxheTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CkBAIC0yMzMyMCw2ICsyMzMyNiw3IEBACiAJCQkJODU0MDc1NkQwQUQ2Q0JGOTAwNjIwQzU3IC8q
IERPTUhUTUxPcHRpb25FbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUw
OTFGMTdEMTREMUMwMDQyMEFBMSAvKiBSVENEYXRhQ2hhbm5lbEV2ZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk4NURGMkY5QjBBQTNDQUU1MDBBRDY0QzUgLyogRE9NSFRNTE9wdGlvbnNDb2xsZWN0
aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5OUU0NUExQjE4QTA3QjkzMDAyNkQ4OEYgLyogSW5w
dXRQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVFNzExQzAwQUM1RDUzNTAwNTMyNzBGIC8q
IERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
NTE4M0I0NjBBQTY5MjYxMDBGMTlGQTMgLyogRE9NSFRNTFBhcmFncmFwaEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg1RTcxMUMxMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MUGFyYWdy
YXBoRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTI3MTg5LDYgKzI3MTk2LDcg
QEAKIAkJCQlBODcxREIyRTBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlQ2VsbEVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg3MURCMjkwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxU
YWJsZUNvbEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg3MURCMjgwQTE1MEJENjAw
QjEyQTY4IC8qIEhUTUxUYWJsZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTlFNDVB
MUExOEEwN0I5MzAwMjZEODhGIC8qIElucHV0UHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTg3MURCMkQwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZVBhcnRFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4NzFEQjMwMEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFibGVSb3dF
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNDQyQ0EwMEQyQjMzNjAwMDMzOEZGOSAv
KiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCmluZGV4IGE2OWY1NTUzNmRkZTkzNTRiYTBhNGY3ZDEwMGQ4ZDBhNGRjMWNiMTUuLmRiODQz
NjUzNTE3YTM4N2Q2NWVjYjA3YzM5MWFiMTc3YWRlOWM3YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApA
QCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSGlz
dG9yeUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgorI2luY2x1ZGUgIklu
cHV0UHJveHkuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtMTM0
LDYgKzEzNSw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQogI2lmIEVO
QUJMRShDT05URVhUX01FTlVTKQogICAgICwgbV9jb250ZXh0TWVudUNvbnRyb2xsZXIoc3RkOjpt
YWtlX3VuaXF1ZTxDb250ZXh0TWVudUNvbnRyb2xsZXI+KCp0aGlzLCAqcGFnZUNsaWVudHMuY29u
dGV4dE1lbnVDbGllbnQpKQogI2VuZGlmCisgICAgLCBtX2lucHV0UHJveHkoc3RkOjptYWtlX3Vu
aXF1ZTxJbnB1dFByb3h5PigqdGhpcykpCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAsIG1f
aW5zcGVjdG9yQ29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvckNvbnRyb2xsZXI+
KCp0aGlzLCBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQpKQogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
CmluZGV4IGYwYjMzMTczNzY3NTgwNjc5NWFkYmJkNTc0N2FhNDMyZmU0M2Y2MTQuLmMwZmFlNDcw
Yjk4MGI0YjBjYTBlM2Q1ZjdlYzUzMWFjMjc2NzNiMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC03Nyw2
ICs3Nyw3IEBAIGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50OwogY2xhc3MgRnJhbWVTZWxlY3Rpb247
CiBjbGFzcyBIYWx0YWJsZVBsdWdpbjsKIGNsYXNzIEhpc3RvcnlJdGVtOworY2xhc3MgSW5wdXRQ
cm94eTsKIGNsYXNzIEluc3BlY3RvckNsaWVudDsKIGNsYXNzIEluc3BlY3RvckNvbnRyb2xsZXI7
CiBjbGFzcyBNYWluRnJhbWU7CkBAIC0xOTQsNiArMTk1LDcgQEAgcHVibGljOgogI2lmIEVOQUJM
RShDT05URVhUX01FTlVTKQogICAgIENvbnRleHRNZW51Q29udHJvbGxlciYgY29udGV4dE1lbnVD
b250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gKm1fY29udGV4dE1lbnVDb250cm9sbGVyOyB9CiAj
ZW5kaWYKKyAgICBJbnB1dFByb3h5JiBpbnB1dFByb3h5KCkgY29uc3QgeyByZXR1cm4gKm1faW5w
dXRQcm94eTsgfQogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgSW5zcGVjdG9yQ29udHJvbGxl
ciYgaW5zcGVjdG9yQ29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuICptX2luc3BlY3RvckNvbnRy
b2xsZXI7IH0KICNlbmRpZgpAQCAtNDUxLDYgKzQ1Myw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxF
KENPTlRFWFRfTUVOVVMpCiAgICAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51Q29u
dHJvbGxlcj4gbV9jb250ZXh0TWVudUNvbnRyb2xsZXI7CiAjZW5kaWYKKyAgICBjb25zdCBzdGQ6
OnVuaXF1ZV9wdHI8SW5wdXRQcm94eT4gbV9pbnB1dFByb3h5OwogI2lmIEVOQUJMRShJTlNQRUNU
T1IpCiAgICAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPEluc3BlY3RvckNvbnRyb2xsZXI+IG1faW5z
cGVjdG9yQ29udHJvbGxlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVw
bGF5L0lucHV0UHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L0lucHV0UHJveHkuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNlNmNhMjEzZmE1NDhmNDY1NTAzZmJiMmU4YWFlNWM0MzRhOWJiMTYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvSW5wdXRQcm94eS5jcHAKQEAg
LTAsMCArMSwxNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVW5pdmVyc2l0eSBvZiBX
YXNoaW5ndG9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTICJBUworICogSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVECisgKiBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEKKyAqIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5wdXRQcm94eS5oIgorCisjaW5j
bHVkZSAiRXZlbnRIYW5kbGVyLmgiCisjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCisjaW5j
bHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCisjaW5jbHVkZSAi
TWFpbkZyYW1lLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9h
cmRFdmVudC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIlBs
YXRmb3JtV2hlZWxFdmVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKworSW5wdXRQcm94
eTo6SW5wdXRQcm94eShQYWdlJiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK0lu
cHV0UHJveHk6On5JbnB1dFByb3h5KCkKK3sKK30KKworYm9vbCBJbnB1dFByb3h5OjpoYW5kbGVD
b250ZXh0TWVudUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgbW91c2VFdmVudCwgY29u
c3QgRnJhbWUqIGZyYW1lLCBib29sIGZyb21SZXBsYXkpCit7CisgICAgVU5VU0VEX1BBUkFNKGZy
b21SZXBsYXkpOworICAgIHJldHVybiBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuc2VuZENvbnRleHRN
ZW51RXZlbnQobW91c2VFdmVudCk7Cit9CisKK2Jvb2wgSW5wdXRQcm94eTo6aGFuZGxlTW91c2VQ
cmVzc0V2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgbW91c2VFdmVudCwgYm9vbCBmcm9t
UmVwbGF5KQoreworICAgIFVOVVNFRF9QQVJBTShmcm9tUmVwbGF5KTsKKyAgICByZXR1cm4gbV9w
YWdlLm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChtb3Vz
ZUV2ZW50KTsKK30KKworYm9vbCBJbnB1dFByb3h5OjpoYW5kbGVNb3VzZVJlbGVhc2VFdmVudChj
b25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQsIGJvb2wgZnJvbVJlcGxheSkKK3sK
KyAgICBVTlVTRURfUEFSQU0oZnJvbVJlcGxheSk7CisgICAgcmV0dXJuIG1fcGFnZS5tYWluRnJh
bWUoKS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChtb3VzZUV2ZW50KTsK
K30KKworYm9vbCBJbnB1dFByb3h5OjpoYW5kbGVNb3VzZU1vdmVFdmVudChjb25zdCBQbGF0Zm9y
bU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQsIGJvb2wgZnJvbVJlcGxheSkKK3sKKyAgICBVTlVTRURf
UEFSQU0oZnJvbVJlcGxheSk7CisgICAgcmV0dXJuIG1fcGFnZS5tYWluRnJhbWUoKS5ldmVudEhh
bmRsZXIoKS5tb3VzZU1vdmVkKG1vdXNlRXZlbnQpOworfQorCitib29sIElucHV0UHJveHk6Omhh
bmRsZU1vdXNlTW92ZU9uU2Nyb2xsYmFyRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBt
b3VzZUV2ZW50LCBib29sIGZyb21SZXBsYXkpCit7CisgICAgVU5VU0VEX1BBUkFNKGZyb21SZXBs
YXkpOworICAgIHJldHVybiBtX3BhZ2UubWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkucGFzc01v
dXNlTW92ZWRFdmVudFRvU2Nyb2xsYmFycyhtb3VzZUV2ZW50KTsKK30KKworYm9vbCBJbnB1dFBy
b3h5OjpoYW5kbGVLZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleUV2ZW50
LCBib29sIGZyb21SZXBsYXkpCit7CisgICAgVU5VU0VEX1BBUkFNKGZyb21SZXBsYXkpOworICAg
IHJldHVybiBtX3BhZ2UuZm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCkuZXZl
bnRIYW5kbGVyKCkua2V5RXZlbnQoa2V5RXZlbnQpOworfQorCitib29sIElucHV0UHJveHk6Omhh
bmRsZUFjY2Vzc0tleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYga2V5RXZlbnQs
IGJvb2wgZnJvbVJlcGxheSkKK3sKKyAgICBVTlVTRURfUEFSQU0oZnJvbVJlcGxheSk7CisgICAg
cmV0dXJuIG1fcGFnZS5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKS5ldmVu
dEhhbmRsZXIoKS5oYW5kbGVBY2Nlc3NLZXkoa2V5RXZlbnQpOworfQorCitib29sIElucHV0UHJv
eHk6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50
LCBib29sIGZyb21SZXBsYXkpCit7CisgICAgVU5VU0VEX1BBUkFNKGZyb21SZXBsYXkpOworICAg
IHJldHVybiBtX3BhZ2UubWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVu
dCh3aGVlbEV2ZW50KTsKK30KKwordm9pZCBJbnB1dFByb3h5Ojpmb2N1c1NldEFjdGl2ZShib29s
IGFjdGl2ZSwgYm9vbCBmcm9tUmVwbGF5KQoreworICAgIFVOVVNFRF9QQVJBTShmcm9tUmVwbGF5
KTsKKyAgICBtX3BhZ2UuZm9jdXNDb250cm9sbGVyKCkuc2V0QWN0aXZlKGFjdGl2ZSk7Cit9CisK
K3ZvaWQgSW5wdXRQcm94eTo6Zm9jdXNTZXRGb2N1c2VkKGJvb2wgZm9jdXNlZCwgYm9vbCBmcm9t
UmVwbGF5KQoreworICAgIFVOVVNFRF9QQVJBTShmcm9tUmVwbGF5KTsKKyAgICBtX3BhZ2UuZm9j
dXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZChmb2N1c2VkKTsKK30KKworYm9vbCBJbnB1dFByb3h5
OjpzY3JvbGxSZWN1cnNpdmVseShTY3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uLCBTY3JvbGxHcmFu
dWxhcml0eSBncmFudWxhcml0eSwgYm9vbCBmcm9tUmVwbGF5KQoreworICAgIFVOVVNFRF9QQVJB
TShmcm9tUmVwbGF5KTsKKyAgICByZXR1cm4gbV9wYWdlLmZvY3VzQ29udHJvbGxlcigpLmZvY3Vz
ZWRPck1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLnNjcm9sbFJlY3Vyc2l2ZWx5KGRpcmVjdGlv
biwgZ3JhbnVsYXJpdHksIG51bGxwdHIpOworfQorCitib29sIElucHV0UHJveHk6OmxvZ2ljYWxT
Y3JvbGxSZWN1cnNpdmVseShTY3JvbGxMb2dpY2FsRGlyZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xs
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJvb2wgZnJvbVJlcGxheSkKK3sKKyAgICBVTlVTRURf
UEFSQU0oZnJvbVJlcGxheSk7CisgICAgcmV0dXJuIG1fcGFnZS5mb2N1c0NvbnRyb2xsZXIoKS5m
b2N1c2VkT3JNYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5sb2dpY2FsU2Nyb2xsUmVjdXJzaXZl
bHkoZGlyZWN0aW9uLCBncmFudWxhcml0eSwgbnVsbHB0cik7Cit9CisKK3ZvaWQgSW5wdXRQcm94
eTo6bG9hZFJlcXVlc3QoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBmcm9t
UmVwbGF5KQoreworICAgIFVOVVNFRF9QQVJBTShmcm9tUmVwbGF5KTsKKyAgICBtX3BhZ2UubWFp
bkZyYW1lKCkubG9hZGVyKCkubG9hZChyZXF1ZXN0KTsKK30KKwordm9pZCBJbnB1dFByb3h5Ojpy
ZWxvYWRGcmFtZShGcmFtZSogZnJhbWUsIGJvb2wgZW5kVG9FbmRSZWxvYWQsIGJvb2wgZnJvbVJl
cGxheSkKK3sKKyAgICBVTlVTRURfUEFSQU0oZnJvbVJlcGxheSk7CisgICAgZnJhbWUtPmxvYWRl
cigpLnJlbG9hZChlbmRUb0VuZFJlbG9hZCk7Cit9CisKK3ZvaWQgSW5wdXRQcm94eTo6c3RvcExv
YWRpbmdGcmFtZShGcmFtZSogZnJhbWUsIGJvb2wgZnJvbVJlcGxheSkKK3sKKyAgICBVTlVTRURf
UEFSQU0oZnJvbVJlcGxheSk7CisgICAgZnJhbWUtPmxvYWRlcigpLnN0b3BGb3JVc2VyQ2FuY2Vs
KCk7Cit9CisKK2Jvb2wgSW5wdXRQcm94eTo6dHJ5Q2xvc2VQYWdlKGJvb2wgZnJvbVJlcGxheSkK
K3sKKyAgICBVTlVTRURfUEFSQU0oZnJvbVJlcGxheSk7CisgICAgcmV0dXJuIG1fcGFnZS5tYWlu
RnJhbWUoKS5sb2FkZXIoKS5zaG91bGRDbG9zZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvSW5wdXRQcm94eS5oIGIvU291
cmNlL1dlYkNvcmUvcmVwbGF5L0lucHV0UHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40M2FmNTRjMjEyODc5
ZDA5MTU1MzFhNWQ1NGU2MWEzODA5YWU5ZDNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVwbGF5L0lucHV0UHJveHkuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyLCAyMDEzIFVuaXZlcnNpdHkgb2YgV2FzaGluZ3Rvbi4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMKKyAqIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRAorICogVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBCisgKiBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIEhPTERFUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJbnB1dFByb3h5
X2gKKyNkZWZpbmUgSW5wdXRQcm94eV9oCisKKyNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgorI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVj
dCBGcmFtZUxvYWRSZXF1ZXN0OworCitjbGFzcyBGcmFtZTsKK2NsYXNzIFBhZ2U7CitjbGFzcyBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQ7CitjbGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CitjbGFzcyBQ
bGF0Zm9ybVdoZWVsRXZlbnQ7CisKK2NsYXNzIElucHV0UHJveHkgeworICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKElucHV0UHJveHkpOworcHVibGljOgorICAgIElucHV0UHJveHkoUGFnZSYpOwor
ICAgIHZpcnR1YWwgfklucHV0UHJveHkoKTsKKworICAgIC8vIFVzZXIgaW5wdXQgQVBJcy4KKyAg
ICBib29sIGhhbmRsZUNvbnRleHRNZW51RXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50Jiwg
Y29uc3QgRnJhbWUqLCBib29sIGZyb21SZXBsYXkgPSBmYWxzZSk7CisgICAgYm9vbCBoYW5kbGVN
b3VzZVByZXNzRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgYm9vbCBmcm9tUmVwbGF5
ID0gZmFsc2UpOworICAgIGJvb2wgaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoY29uc3QgUGxhdGZv
cm1Nb3VzZUV2ZW50JiwgYm9vbCBmcm9tUmVwbGF5ID0gZmFsc2UpOworICAgIGJvb2wgaGFuZGxl
TW91c2VNb3ZlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgYm9vbCBmcm9tUmVwbGF5
ID0gZmFsc2UpOworICAgIGJvb2wgaGFuZGxlTW91c2VNb3ZlT25TY3JvbGxiYXJFdmVudChjb25z
dCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBib29sIGZyb21SZXBsYXkgPSBmYWxzZSk7CisgICAgYm9v
bCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIGJvb2wgZnJvbVJl
cGxheSA9IGZhbHNlKTsKKyAgICBib29sIGhhbmRsZUtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5
Ym9hcmRFdmVudCYsIGJvb2wgZnJvbVJlcGxheSA9IGZhbHNlKTsKKyAgICBib29sIGhhbmRsZUFj
Y2Vzc0tleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYsIGJvb2wgZnJvbVJlcGxh
eSA9IGZhbHNlKTsKKyAgICB2b2lkIGZvY3VzU2V0QWN0aXZlKGJvb2wgYWN0aXZlLCBib29sIGZy
b21SZXBsYXkgPSBmYWxzZSk7CisgICAgdm9pZCBmb2N1c1NldEZvY3VzZWQoYm9vbCBmb2N1c2Vk
LCBib29sIGZyb21SZXBsYXkgPSBmYWxzZSk7CisgICAgYm9vbCBzY3JvbGxSZWN1cnNpdmVseShT
Y3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBib29sIGZyb21SZXBsYXkgPSBmYWxz
ZSk7CisgICAgYm9vbCBsb2dpY2FsU2Nyb2xsUmVjdXJzaXZlbHkoU2Nyb2xsTG9naWNhbERpcmVj
dGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGJvb2wgZnJvbVJlcGxheSA9IGZhbHNlKTsKKworICAg
IC8vIE5hdmlnYXRpb24gQVBJcy4KKyAgICB2b2lkIGxvYWRSZXF1ZXN0KGNvbnN0IEZyYW1lTG9h
ZFJlcXVlc3QmLCBib29sIGZyb21SZXBsYXkgPSBmYWxzZSk7CisgICAgdm9pZCByZWxvYWRGcmFt
ZShGcmFtZSosIGJvb2wgZW5kVG9FbmRSZWxvYWQsIGJvb2wgZnJvbVJlcGxheSA9IGZhbHNlKTsK
KyAgICB2b2lkIHN0b3BMb2FkaW5nRnJhbWUoRnJhbWUqLCBib29sIGZyb21SZXBsYXkgPSBmYWxz
ZSk7CisgICAgYm9vbCB0cnlDbG9zZVBhZ2UoYm9vbCBmcm9tUmVwbGF5ID0gZmFsc2UpOworCitw
cml2YXRlOgorICAgIFBhZ2UmIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIElucHV0UHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDRlNzJmMzVlNzQ1OWI3YzkxYjBmOWIzNTVjNmNhMWNl
OGFjOGI4ZWEuLmJmNTQwYWYzNjc2NzAxODdjZjM3NjNmZTE4ZTZmNWNiZDJkZmM2OTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTExMiw2
ICsxMTIsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSGlzdG9yeUNvbnRyb2xsZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0hpc3RvcnlJdGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IaXRUZXN0UmVz
dWx0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnB1dFByb3h5Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9KU0RPTVdpbmRvdy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgpAQCAtODc5LDcgKzg4MCw3IEBAIHZv
aWQgV2ViUGFnZTo6dHJ5Q2xvc2UoKQogewogICAgIFNlbmRTdG9wUmVzcG9uc2l2ZW5lc3NUaW1l
ciBzdG9wcGVyKHRoaXMpOwogCi0gICAgaWYgKCFtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxv
YWRlcigpLnNob3VsZENsb3NlKCkpIHsKKyAgICBpZiAoIWNvcmVQYWdlKCktPmlucHV0UHJveHko
KS50cnlDbG9zZVBhZ2UoKSkgewogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAt
OTIwLDcgKzkyMSw3IEBAIHZvaWQgV2ViUGFnZTo6bG9hZFJlcXVlc3QodWludDY0X3QgbmF2aWdh
dGlvbklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsCiAgICAgbV9sb2FkZXJDbGll
bnQud2lsbExvYWRVUkxSZXF1ZXN0KHRoaXMsIHJlcXVlc3QsIHVzZXJEYXRhLmdldCgpKTsKIAog
ICAgIC8vIEluaXRhdGUgdGhlIGxvYWQgaW4gV2ViQ29yZS4KLSAgICBtX21haW5GcmFtZS0+Y29y
ZUZyYW1lKCktPmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdChtX21haW5GcmFtZS0+Y29y
ZUZyYW1lKCksIHJlcXVlc3QpKTsKKyAgICBjb3JlUGFnZSgpLT5pbnB1dFByb3h5KCkubG9hZFJl
cXVlc3QoRnJhbWVMb2FkUmVxdWVzdChtX21haW5GcmFtZS0+Y29yZUZyYW1lKCksIHJlcXVlc3Qp
KTsKIAogICAgIEFTU0VSVCghbV9wZW5kaW5nTmF2aWdhdGlvbklEKTsKIH0KQEAgLTk5MywxNCAr
OTk0LDE0IEBAIHZvaWQgV2ViUGFnZTo6c3RvcExvYWRpbmdGcmFtZSh1aW50NjRfdCBmcmFtZUlE
KQogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGZyYW1lLT5jb3JlRnJh
bWUoKS0+bG9hZGVyKCkuc3RvcEZvclVzZXJDYW5jZWwoKTsKKyAgICBjb3JlUGFnZSgpLT5pbnB1
dFByb3h5KCkuc3RvcExvYWRpbmdGcmFtZShmcmFtZS0+Y29yZUZyYW1lKCkpOwogfQogCiB2b2lk
IFdlYlBhZ2U6OnN0b3BMb2FkaW5nKCkKIHsKICAgICBTZW5kU3RvcFJlc3BvbnNpdmVuZXNzVGlt
ZXIgc3RvcHBlcih0aGlzKTsKIAotICAgIG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVy
KCkuc3RvcEZvclVzZXJDYW5jZWwoKTsKKyAgICBjb3JlUGFnZSgpLT5pbnB1dFByb3h5KCkuc3Rv
cExvYWRpbmdGcmFtZShtX21haW5GcmFtZS0+Y29yZUZyYW1lKCkpOwogfQogCiB2b2lkIFdlYlBh
Z2U6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnNMb2FkaW5nKQpAQCAtMTAxNiw3ICsxMDE3
LDcgQEAgdm9pZCBXZWJQYWdlOjpyZWxvYWQodWludDY0X3QgbmF2aWdhdGlvbklELCBib29sIHJl
bG9hZEZyb21PcmlnaW4sIGNvbnN0IFNhbmRib3gKICAgICBtX3BlbmRpbmdOYXZpZ2F0aW9uSUQg
PSBuYXZpZ2F0aW9uSUQ7CiAKICAgICBtX3NhbmRib3hFeHRlbnNpb25UcmFja2VyLmJlZ2luTG9h
ZChtX21haW5GcmFtZS5nZXQoKSwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgbV9tYWlu
RnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5yZWxvYWQocmVsb2FkRnJvbU9yaWdpbik7Cisg
ICAgY29yZVBhZ2UoKS0+aW5wdXRQcm94eSgpLnJlbG9hZEZyYW1lKG1fbWFpbkZyYW1lLT5jb3Jl
RnJhbWUoKSwgcmVsb2FkRnJvbU9yaWdpbik7CiB9CiAKIHZvaWQgV2ViUGFnZTo6Z29Gb3J3YXJk
KHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRlbUlEKQpAQCAtMTU2NCw3ICsxNTY1LDcgQEAgV2ViQ29u
dGV4dE1lbnUqIFdlYlBhZ2U6OmNvbnRleHRNZW51QXRQb2ludEluV2luZG93KGNvbnN0IEludFBv
aW50JiBwb2ludCkKICAgICAKICAgICAvLyBTaW11bGF0ZSBhIG1vdXNlIGNsaWNrIHRvIGdlbmVy
YXRlIHRoZSBjb3JyZWN0IG1lbnUuCiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQo
cG9pbnQsIHBvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAx
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSk7Ci0gICAgYm9vbCBo
YW5kbGVkID0gY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuc2VuZENvbnRl
eHRNZW51RXZlbnQobW91c2VFdmVudCk7CisgICAgYm9vbCBoYW5kbGVkID0gY29yZVBhZ2UoKS0+
aW5wdXRQcm94eSgpLmhhbmRsZUNvbnRleHRNZW51RXZlbnQobW91c2VFdmVudCwgJmNvcmVQYWdl
KCktPm1haW5GcmFtZSgpKTsKICAgICBpZiAoIWhhbmRsZWQpCiAgICAgICAgIHJldHVybiAwOwog
CkBAIC0xNjI0LDggKzE2MjUsOCBAQCBzdGF0aWMgYm9vbCBoYW5kbGVDb250ZXh0TWVudUV2ZW50
KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgcGxhdGZvcm1Nb3VzZUV2ZW50LAogICAgIEZyYW1l
KiBmcmFtZSA9ICZwYWdlLT5jb3JlUGFnZSgpLT5tYWluRnJhbWUoKTsKICAgICBpZiAocmVzdWx0
LmlubmVyTm9uU2hhcmVkTm9kZSgpKQogICAgICAgICBmcmFtZSA9IHJlc3VsdC5pbm5lck5vblNo
YXJlZE5vZGUoKS0+ZG9jdW1lbnQoKS5mcmFtZSgpOwotICAgIAotICAgIGJvb2wgaGFuZGxlZCA9
IGZyYW1lLT5ldmVudEhhbmRsZXIoKS5zZW5kQ29udGV4dE1lbnVFdmVudChwbGF0Zm9ybU1vdXNl
RXZlbnQpOworCisgICAgYm9vbCBoYW5kbGVkID0gcGFnZS0+Y29yZVBhZ2UoKS0+aW5wdXRQcm94
eSgpLmhhbmRsZUNvbnRleHRNZW51RXZlbnQocGxhdGZvcm1Nb3VzZUV2ZW50LCBmcmFtZSk7CiAg
ICAgaWYgKGhhbmRsZWQpCiAgICAgICAgIHBhZ2UtPmNvbnRleHRNZW51KCktPnNob3coKTsKIApA
QCAtMTY0OCw3ICsxNjQ5LDcgQEAgc3RhdGljIGJvb2wgaGFuZGxlTW91c2VFdmVudChjb25zdCBX
ZWJNb3VzZUV2ZW50JiBtb3VzZUV2ZW50LCBXZWJQYWdlKiBwYWdlLCBib28KICAgICAgICAgICAg
ICAgICBwYWdlLT5jb3JlUGFnZSgpLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5jbGVhckNvbnRl
eHRNZW51KCk7CiAjZW5kaWYKIAotICAgICAgICAgICAgYm9vbCBoYW5kbGVkID0gZnJhbWUuZXZl
bnRIYW5kbGVyKCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50KHBsYXRmb3JtTW91c2VFdmVudCk7Cisg
ICAgICAgICAgICBib29sIGhhbmRsZWQgPSBwYWdlLT5jb3JlUGFnZSgpLT5pbnB1dFByb3h5KCku
aGFuZGxlTW91c2VQcmVzc0V2ZW50KHBsYXRmb3JtTW91c2VFdmVudCk7CiAjaWYgRU5BQkxFKENP
TlRFWFRfTUVOVVMpCiAgICAgICAgICAgICBpZiAoaXNDb250ZXh0Q2xpY2socGxhdGZvcm1Nb3Vz
ZUV2ZW50KSkKICAgICAgICAgICAgICAgICBoYW5kbGVkID0gaGFuZGxlQ29udGV4dE1lbnVFdmVu
dChwbGF0Zm9ybU1vdXNlRXZlbnQsIHBhZ2UpOwpAQCAtMTY1NiwxMiArMTY1NywxMiBAQCBzdGF0
aWMgYm9vbCBoYW5kbGVNb3VzZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmIG1vdXNlRXZlbnQs
IFdlYlBhZ2UqIHBhZ2UsIGJvbwogICAgICAgICAgICAgcmV0dXJuIGhhbmRsZWQ7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkOgotICAgICAgICAg
ICAgcmV0dXJuIGZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KHBs
YXRmb3JtTW91c2VFdmVudCk7CisgICAgICAgICAgICByZXR1cm4gcGFnZS0+Y29yZVBhZ2UoKS0+
aW5wdXRQcm94eSgpLmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KHBsYXRmb3JtTW91c2VFdmVudCk7
CiAKICAgICAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkOgogICAgICAgICAgICAg
aWYgKG9ubHlVcGRhdGVTY3JvbGxiYXJzKQotICAgICAgICAgICAgICAgIHJldHVybiBmcmFtZS5l
dmVudEhhbmRsZXIoKS5wYXNzTW91c2VNb3ZlZEV2ZW50VG9TY3JvbGxiYXJzKHBsYXRmb3JtTW91
c2VFdmVudCk7Ci0gICAgICAgICAgICByZXR1cm4gZnJhbWUuZXZlbnRIYW5kbGVyKCkubW91c2VN
b3ZlZChwbGF0Zm9ybU1vdXNlRXZlbnQpOworICAgICAgICAgICAgICAgIHJldHVybiBwYWdlLT5j
b3JlUGFnZSgpLT5pbnB1dFByb3h5KCkuaGFuZGxlTW91c2VNb3ZlT25TY3JvbGxiYXJFdmVudChw
bGF0Zm9ybU1vdXNlRXZlbnQpOworICAgICAgICAgICAgcmV0dXJuIHBhZ2UtPmNvcmVQYWdlKCkt
PmlucHV0UHJveHkoKS5oYW5kbGVNb3VzZU1vdmVFdmVudChwbGF0Zm9ybU1vdXNlRXZlbnQpOwog
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNzQ1LDcgKzE3NDYsNyBAQCBzdGF0aWMgYm9vbCBo
YW5kbGVXaGVlbEV2ZW50KGNvbnN0IFdlYldoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFBhZ2UqIHBh
Z2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFBsYXRmb3JtV2hlZWxFdmVudCBwbGF0
Zm9ybVdoZWVsRXZlbnQgPSBwbGF0Zm9ybSh3aGVlbEV2ZW50KTsKLSAgICByZXR1cm4gZnJhbWUu
ZXZlbnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVudChwbGF0Zm9ybVdoZWVsRXZlbnQpOworICAg
IHJldHVybiBwYWdlLT5pbnB1dFByb3h5KCkuaGFuZGxlV2hlZWxFdmVudChwbGF0Zm9ybVdoZWVs
RXZlbnQpOwogfQogCiB2b2lkIFdlYlBhZ2U6OndoZWVsRXZlbnQoY29uc3QgV2ViV2hlZWxFdmVu
dCYgd2hlZWxFdmVudCkKQEAgLTE3NzMsOCArMTc3NCw4IEBAIHN0YXRpYyBib29sIGhhbmRsZUtl
eUV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQmIGtleWJvYXJkRXZlbnQsIFBhZ2UqIHBhZ2Up
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChrZXlib2FyZEV2ZW50LnR5cGUoKSA9
PSBXZWJFdmVudDo6Q2hhciAmJiBrZXlib2FyZEV2ZW50LmlzU3lzdGVtS2V5KCkpCi0gICAgICAg
IHJldHVybiBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKS5ldmVu
dEhhbmRsZXIoKS5oYW5kbGVBY2Nlc3NLZXkocGxhdGZvcm0oa2V5Ym9hcmRFdmVudCkpOwotICAg
IHJldHVybiBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKS5ldmVu
dEhhbmRsZXIoKS5rZXlFdmVudChwbGF0Zm9ybShrZXlib2FyZEV2ZW50KSk7CisgICAgICAgIHJl
dHVybiBwYWdlLT5pbnB1dFByb3h5KCkuaGFuZGxlQWNjZXNzS2V5RXZlbnQocGxhdGZvcm0oa2V5
Ym9hcmRFdmVudCkpOworICAgIHJldHVybiBwYWdlLT5pbnB1dFByb3h5KCkuaGFuZGxlS2V5RXZl
bnQocGxhdGZvcm0oa2V5Ym9hcmRFdmVudCkpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmtleUV2ZW50
KGNvbnN0IFdlYktleWJvYXJkRXZlbnQmIGtleWJvYXJkRXZlbnQpCkBAIC0xOTExLDEyICsxOTEy
LDEyIEBAIHZvaWQgV2ViUGFnZTo6dG91Y2hFdmVudFN5bmNGb3JUZXN0aW5nKGNvbnN0IFdlYlRv
dWNoRXZlbnQmIHRvdWNoRXZlbnQsIGJvb2wmIGhhCiAKIGJvb2wgV2ViUGFnZTo6c2Nyb2xsKFBh
Z2UqIHBhZ2UsIFNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5KQogewotICAgIHJldHVybiBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2Vk
T3JNYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5zY3JvbGxSZWN1cnNpdmVseShkaXJlY3Rpb24s
IGdyYW51bGFyaXR5KTsKKyAgICByZXR1cm4gcGFnZS0+aW5wdXRQcm94eSgpLnNjcm9sbFJlY3Vy
c2l2ZWx5KGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpOwogfQogCiBib29sIFdlYlBhZ2U6OmxvZ2lj
YWxTY3JvbGwoUGFnZSogcGFnZSwgU2Nyb2xsTG9naWNhbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNj
cm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewotICAgIHJldHVybiBwYWdlLT5mb2N1c0Nv
bnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5sb2dpY2FsU2Ny
b2xsUmVjdXJzaXZlbHkoZGlyZWN0aW9uLCBncmFudWxhcml0eSk7CisgICAgcmV0dXJuIHBhZ2Ut
PmlucHV0UHJveHkoKS5sb2dpY2FsU2Nyb2xsUmVjdXJzaXZlbHkoZGlyZWN0aW9uLCBncmFudWxh
cml0eSk7CiB9CiAKIGJvb2wgV2ViUGFnZTo6c2Nyb2xsQnkodWludDMyX3Qgc2Nyb2xsRGlyZWN0
aW9uLCB1aW50MzJfdCBzY3JvbGxHcmFudWxhcml0eSkKQEAgLTE5MzMsNyArMTkzNCw3IEBAIHZv
aWQgV2ViUGFnZTo6Y2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYSgpCiAKIHZvaWQgV2ViUGFn
ZTo6c2V0QWN0aXZlKGJvb2wgaXNBY3RpdmUpCiB7Ci0gICAgbV9wYWdlLT5mb2N1c0NvbnRyb2xs
ZXIoKS5zZXRBY3RpdmUoaXNBY3RpdmUpOworICAgIG1fcGFnZS0+aW5wdXRQcm94eSgpLmZvY3Vz
U2V0QWN0aXZlKGlzQWN0aXZlKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzZXRWaWV3SXNWaXNpYmxl
KGJvb2wgaXNWaXNpYmxlKQpAQCAtMjAwMCw3ICsyMDAxLDcgQEAgdm9pZCBXZWJQYWdlOjp2aWV3
V2lsbEVuZExpdmVSZXNpemUoKQogCiB2b2lkIFdlYlBhZ2U6OnNldEZvY3VzZWQoYm9vbCBpc0Zv
Y3VzZWQpCiB7Ci0gICAgbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkKGlzRm9j
dXNlZCk7CisgICAgbV9wYWdlLT5pbnB1dFByb3h5KCkuZm9jdXNTZXRGb2N1c2VkKGlzRm9jdXNl
ZCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6c2V0SW5pdGlhbEZvY3VzKGJvb2wgZm9yd2FyZCwgYm9v
bCBpc0tleWJvYXJkRXZlbnRWYWxpZCwgY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYgZXZlbnQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223721</attachid>
            <date>2014-02-10 10:01:53 -0800</date>
            <delta_ts>2014-02-22 15:41:25 -0800</delta_ts>
            <desc>rebased patch</desc>
            <filename>bug-128150-20140210100232.patch</filename>
            <type>text/plain</type>
            <size>31746</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzNzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGVmN2MyMmQ2M2FiNDNk
MThmODQ2MjI4YmExOTE5YTRlMDJiODZjOS4uOGEwOGQyZDIwOTZhMGY4Yjc3OTYwOGYyMThjMDkw
ODY3NzhlODAxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE0LTAyLTA0ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBSZXBsYXk6IHJvdXRlIHRo
cm91Z2ggSW5wdXRQcm94eSB3aGVuIGRlbGl2ZXJpbmcgdXNlciBpbnB1dHMgdG8gV2ViQ29yZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MTUwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGFuIElu
cHV0UHJveHkgaW5zdGFuY2UgdG8gZWFjaCBQYWdlLiBXZWJLaXQgYW5kIFdlYktpdDIgcm91dGUg
YSBwYWdlJ3MgdXNlciBpbnB1dAorICAgICAgICB0aHJvdWdoIGl0cyBJbnB1dFByb3h5IHNvIHRo
YXQgdGhlIGlucHV0cyBjYW4gYmUgY2FwdHVyZWQgYW5kIHJlcGxheWVkIHVzaW5nIHJlcGxheQor
ICAgICAgICBpbnN0cnVtZW50YXRpb24gaW5zaWRlIHRoZSBJbnB1dFByb3h5LgorCisgICAgICAg
IEZvciBub3cgdGhlIHJvdXRpbmcgbWV0aG9kcyBvZiBJbnB1dFByb3h5IGFyZSBzdHViYmVkIG91
dCBhbmQgaGF2ZSBubyByZXBsYXktc3BlY2lmaWMKKyAgICAgICAgY29kZSBwYXRocy4gVGhleSB3
aWxsIGJlIGZpbGxlZCBpbiB3aGVuIHRoZSBtYWNoaW5lcnkgZm9yIGNhcHR1cmluZyBhbmQgcmVw
bGF5aW5nIGhhcyBsYW5kZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjogQWRkIHN5bWJvbHMg
Zm9yIGlucHV0IHJvdXRpbmcgbWV0aG9kcy4KKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOiBJ
bml0aWFsaXplIHRoZSBvd25lZCBJbnB1dFByb3h5IGluIHRoZSBQYWdlIGNvbnN0cnVjdG9yLgor
ICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6aW5wdXRQcm94
eSk6IEFkZGVkIGEgYnktcmVmZXJlbmNlIGdldHRlci4KKyAgICAgICAgKiByZXBsYXkvSW5wdXRQ
cm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRQcm94eTo6SW5wdXRQcm94
eSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFByb3h5Ojp+SW5wdXRQcm94eSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnB1dFByb3h5OjpoYW5kbGVDb250ZXh0TWVudUV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OklucHV0UHJveHk6OmhhbmRsZU1vdXNlUHJlc3NFdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnB1dFByb3h5OjpoYW5kbGVNb3VzZVJlbGVhc2VFdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnB1dFByb3h5OjpoYW5kbGVNb3VzZU1vdmVFdmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnB1dFByb3h5OjpoYW5kbGVNb3VzZU1vdmVPblNjcm9sbGJhckV2ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OklucHV0UHJveHk6OmhhbmRsZUtleUV2ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OklucHV0UHJveHk6OmhhbmRsZUFjY2Vzc0tleUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OklucHV0UHJveHk6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRQ
cm94eTo6Zm9jdXNTZXRBY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRQcm94eTo6Zm9j
dXNTZXRGb2N1c2VkKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0UHJveHk6OnNjcm9sbFJlY3Vy
c2l2ZWx5KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0UHJveHk6OmxvZ2ljYWxTY3JvbGxSZWN1
cnNpdmVseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFByb3h5Ojpsb2FkUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnB1dFByb3h5OjpyZWxvYWRGcmFtZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnB1dFByb3h5OjpzdG9wTG9hZGluZ0ZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
cHV0UHJveHk6OnRyeUNsb3NlUGFnZSk6CisgICAgICAgICogcmVwbGF5L0lucHV0UHJveHkuaDog
QWRkZWQuCisKIDIwMTQtMDItMTAgIENoYW5naHVuIEthbmcgIDx0ZW1vb2NoaW5AY29tcGFueTEw
MC5uZXQ+CiAKICAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGNvbW1lbnQgbGluZXMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggMjVhOGRmZDUxZTFmODVjMWQ4OTUxZDEyYzU5OWZmMTA4YzgyYzk0Zi4uY2U2Yzkw
NjQ3ZDAyYjRjMWJlMTNlMTVhYjVkOTExN2RjOGYxODIyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI5IEBACisyMDE0LTAyLTA0ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAg
ICAgIFdlYiBSZXBsYXk6IHJvdXRlIHRocm91Z2ggSW5wdXRQcm94eSB3aGVuIGRlbGl2ZXJpbmcg
dXNlciBpbnB1dHMgdG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTI4MTUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2hlbiBkZWxpdmVyaW5nIHVzZXIgaW5wdXRzIHRvIFdlYkNvcmUsIHJv
dXRlIGNhbGxzIHRocm91Z2ggdGhlIHBhZ2UncyBJbnB1dFByb3h5LgorICAgICAgICBUaGlzIGFs
bG93cyB1cyB0byBjYXB0dXJlIGFuZCByZXBsYXkgdXNlciBpbnB1dHMgZnJvbSBXZWJLaXQyIHNv
bGVseSB3aXRoaW4gV2ViQ29yZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dHJ5Q2xvc2UpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpsb2FkUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnN0b3BMb2FkaW5nRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzdG9wTG9hZGlu
Zyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlbG9hZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmNvbnRleHRNZW51QXRQb2ludEluV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6
aGFuZGxlQ29udGV4dE1lbnVFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OmhhbmRsZU1vdXNlRXZl
bnQpOgorICAgICAgICAoV2ViS2l0OjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYktp
dDo6aGFuZGxlS2V5RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzY3JvbGwpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb2dpY2FsU2Nyb2xsKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6c2V0QWN0aXZlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0Rm9j
dXNlZCk6CisKIDIwMTQtMDItMTAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHVEtdIEFkZCBBUEkgdG8gY3JlYXRlIGEgd2VidmlldyByZWxh
dGVkIHRvIGFub3RoZXIgb25lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDRmMDMxNGY1NTdlZjg5
OGVjMzAyODAxZmIzM2I5MGFiZDI5ZDIxM2UuLjBmYjRkODQ5MDc5N2EwOTY4ZjM2OGQ1OGU3MmZm
MWM0NmVjYzVlZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC04NSw2ICs4NSw3IEBAIHNldChX
ZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vcmVuZGVyaW5n
L3NoYXBlcyIKICAgICAiJHtXRUJDT1JFX0RJUn0vcmVuZGVyaW5nL3N0eWxlIgogICAgICIke1dF
QkNPUkVfRElSfS9yZW5kZXJpbmcvc3ZnIgorICAgICIke1dFQkNPUkVfRElSfS9yZXBsYXkiCiAg
ICAgIiR7V0VCQ09SRV9ESVJ9L3N0b3JhZ2UiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3N0eWxlIgog
ICAgICIke1dFQkNPUkVfRElSfS9zdmciCkBAIC0yMzA4LDYgKzIzMDksOCBAQCBzZXQoV2ViQ29y
ZV9TT1VSQ0VTCiAgICAgcmVuZGVyaW5nL3N2Zy9TVkdUZXh0UXVlcnkuY3BwCiAgICAgcmVuZGVy
aW5nL3N2Zy9TVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5jcHAKIAorICAgIHJlcGxheS9JbnB1
dFByb3h5LmNwcAorCiAgICAgc3RvcmFnZS9TdG9yYWdlLmNwcAogICAgIHN0b3JhZ2UvU3RvcmFn
ZUFyZWFJbXBsLmNwcAogICAgIHN0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQppbmRleCAyZTJhY2NiZWRlMmRhNmY0MzQ1MmJhMzJiYzM1MmM0NTZiMTViOTQ3Li40
OWVlYjk3YjlhNDY4MWE1NGY4MzE4ZWY2ODc5ZTA4Nzk5NWUyNzAxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQpAQCAtMTAxLDYgKzEwMSw3IEBAIHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAogCS1JJChzcmNk
aXIpL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMgXAogCS1JJChzcmNkaXIpL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2ZyBcCisJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcmVwbGF5IFwKIAkt
SSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvc3ZnIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KaW5kZXggZTkxMzNlZjAxMDQzNzhlODRmMGZiYjVmZGI3MzI1NzVjYjdlMWRj
Mi4uZTg5ZGFiYTZlYTZiNWMwMzdjN2JiYzBhYjg2MGE5YTBlYzQ2MTdmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KQEAgLTc2LDYgKzc2LDIxIEBAIF9fWk43V2ViQ29yZTEwQ3JlZGVudGlhbEMxRVJL
TjNXVEY2U3RyaW5nRVM0X05TXzIxQ3JlZGVudGlhbFBlcnNpc3RlbmNlRQogX19aTjdXZWJDb3Jl
MTBDcmVkZW50aWFsQzFFdgogX19aTjdXZWJDb3JlMTBGbG9hdFBvaW50QzFFUktOU184SW50UG9p
bnRFCiBfX1pON1dlYkNvcmUxMEZvbnRHbHlwaHMxNXJlbGVhc2VGb250RGF0YUV2CitfX1pON1dl
YkNvcmUxMElucHV0UHJveHkxMWxvYWRSZXF1ZXN0RVJLTlNfMTZGcmFtZUxvYWRSZXF1ZXN0RWIK
K19fWk43V2ViQ29yZTEwSW5wdXRQcm94eTExcmVsb2FkRnJhbWVFUE5TXzVGcmFtZUViYgorX19a
TjdXZWJDb3JlMTBJbnB1dFByb3h5MTJ0cnlDbG9zZVBhZ2VFYgorX19aTjdXZWJDb3JlMTBJbnB1
dFByb3h5MTRmb2N1c1NldEFjdGl2ZUViYgorX19aTjdXZWJDb3JlMTBJbnB1dFByb3h5MTRoYW5k
bGVLZXlFdmVudEVSS05TXzIxUGxhdGZvcm1LZXlib2FyZEV2ZW50RWIKK19fWk43V2ViQ29yZTEw
SW5wdXRQcm94eTE1Zm9jdXNTZXRGb2N1c2VkRWJiCitfX1pON1dlYkNvcmUxMElucHV0UHJveHkx
NmhhbmRsZVdoZWVsRXZlbnRFUktOU18xOFBsYXRmb3JtV2hlZWxFdmVudEViCitfX1pON1dlYkNv
cmUxMElucHV0UHJveHkxNnN0b3BMb2FkaW5nRnJhbWVFUE5TXzVGcmFtZUViCitfX1pON1dlYkNv
cmUxMElucHV0UHJveHkxN3Njcm9sbFJlY3Vyc2l2ZWx5RU5TXzE1U2Nyb2xsRGlyZWN0aW9uRU5T
XzE3U2Nyb2xsR3JhbnVsYXJpdHlFYgorX19aTjdXZWJDb3JlMTBJbnB1dFByb3h5MjBoYW5kbGVB
Y2Nlc3NLZXlFdmVudEVSS05TXzIxUGxhdGZvcm1LZXlib2FyZEV2ZW50RWIKK19fWk43V2ViQ29y
ZTEwSW5wdXRQcm94eTIwaGFuZGxlTW91c2VNb3ZlRXZlbnRFUktOU18xOFBsYXRmb3JtTW91c2VF
dmVudEViCitfX1pON1dlYkNvcmUxMElucHV0UHJveHkyMWhhbmRsZU1vdXNlUHJlc3NFdmVudEVS
S05TXzE4UGxhdGZvcm1Nb3VzZUV2ZW50RWIKK19fWk43V2ViQ29yZTEwSW5wdXRQcm94eTIyaGFu
ZGxlQ29udGV4dE1lbnVFdmVudEVSS05TXzE4UGxhdGZvcm1Nb3VzZUV2ZW50RVBLTlNfNUZyYW1l
RWIKK19fWk43V2ViQ29yZTEwSW5wdXRQcm94eTIzaGFuZGxlTW91c2VSZWxlYXNlRXZlbnRFUktO
U18xOFBsYXRmb3JtTW91c2VFdmVudEViCitfX1pON1dlYkNvcmUxMElucHV0UHJveHkzMWhhbmRs
ZU1vdXNlTW92ZU9uU2Nyb2xsYmFyRXZlbnRFUktOU18xOFBsYXRmb3JtTW91c2VFdmVudEViCiBf
X1pON1dlYkNvcmUxMEpTRG9jdW1lbnQ2c19pbmZvRQogX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50
NmNyZWF0ZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFTlMxXzEwUGFzc1JlZlB0cklOU185RE9NV2lu
ZG93RUVFUktOU18xOFBsYXRmb3JtTW91c2VFdmVudEVpTlM1X0lOU180Tm9kZUVFRQogX19aTjdX
ZWJDb3JlMTBNb3VzZUV2ZW50NmNyZWF0ZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFYmJkTlMxXzEw
UGFzc1JlZlB0cklOU185RE9NV2luZG93RUVFaWlpaWliYmJidE5TNV9JTlNfMTFFdmVudFRhcmdl
dEVFRU5TNV9JTlNfOUNsaXBib2FyZEVFRWIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDNkOWNhZmFhNDRmZWI4ZmYxMGI0OGJkNjE1NWQz
YmUyYzI0YTA0MDMuLjQyOWY1ZGIyZDk0NDA0Y2YwZjdlZjBiYzRiMjc3ODk2YzIzNmFkMjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAt
MTE5MTcsNiArMTE5MTcsNyBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHJlcGxheVxJbnB1dFByb3h5LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHdvcmtlcnNcU2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAiIC8+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlx4bWxcRE9NUGFyc2VyLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHhtbFxOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuY3BwIiAvPgpAQCAtMTk5MzMsNiArMTk5
MzQsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN2Z1xTVkdUZXh0
TWV0cmljc0J1aWxkZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmlu
Z1xzdmdcU1ZHVGV4dFF1ZXJ5LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5k
ZXJpbmdcc3ZnXFNWR1RleHRSdW5SZW5kZXJpbmdDb250ZXh0LmgiIC8+CisgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxyZXBsYXlcSW5wdXRQcm94eS5oIiAvPiAgIAogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5ceG1sXERPTVBhcnNlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5ceG1sXE5hdGl2ZVhQYXRoTlNSZXNvbHZlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ceG1sXFhNTEVycm9ycy5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IGYxNjExZmY3YWY5NGZl
MmNlMGQ4Y2Y5ZmZmYmM0ZGExZmUwMDljZTkuLmQ2NTczM2I4NWMxYTA1NDdlMzAwMzgyNzVhZjhi
OWNhNTkxZTljNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTE5Myw2ICsxOTMsOSBAQAogICAgIDxGaWx0
ZXIgSW5jbHVkZT0icmVuZGVyaW5nXHN2ZyI+CiAgICAgICA8VW5pcXVlSWRlbnRpZmllcj57NzZk
NDk2MGEtNTljMS00MmRlLWJjMzctY2Y0ZGJhMDFiN2EzfTwvVW5pcXVlSWRlbnRpZmllcj4KICAg
ICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9InJlcGxheSI+CisgICAgICA8VW5pcXVl
SWRlbnRpZmllcj57MWZhYzI5ODAtZWFhNC00MjQ1LTgwNzMtOTBiNTU0NzU0NzlmfTwvVW5pcXVl
SWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KICAgICA8RmlsdGVyIEluY2x1ZGU9InhtbCI+CiAg
ICAgICA8VW5pcXVlSWRlbnRpZmllcj57N2JmOTUyNDMtYmI1MS00OWEwLThlNGYtMTczMjQyZTVm
YzRlfTwvVW5pcXVlSWRlbnRpZmllcj4KICAgICA8L0ZpbHRlcj4KQEAgLTI5MDcsNiArMjkxMCw5
IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcVGV4dFBhaW50ZXIuY3Bw
Ij4KICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Cisg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZXBsYXlcSW5wdXRQcm94eS5jcHAiPgorICAgICAg
PEZpbHRlcj5yZXBsYXk8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHhtbFxET01QYXJzZXIuY3BwIj4KICAgICAgIDxGaWx0ZXI+eG1sPC9GaWx0
ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC05NzkxLDYgKzk3OTcsOSBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN2Z1xTVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5o
Ij4KICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nXHN2ZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVwbGF5XElucHV0UHJveHkuaCI+CisgICAg
ICA8RmlsdGVyPnhtbDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5ceG1sXERPTVBhcnNlci5oIj4KICAgICAgIDxGaWx0ZXI+eG1sPC9GaWx0ZXI+
CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDY0ZTliODk3NmI5YjJkOTAwNTRjN2UwYWI3M2U1ZmYy
MGUzMmFiNS4uYjVmYmEzOTkyNDEyNzk1M2NjMTcyMDY0NjEzY2FiMWZlZWZhM2UwNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MzQ4Myw2ICszNDgzLDggQEAKIAkJOThDRTQzMkExMjlFMDBFNTAwNTgyMURDIC8qIExpbmtMb2Fk
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk4Q0U0
MzI5MTI5RTAwRTUwMDU4MjFEQyAvKiBMaW5rTG9hZGVyLmggKi87IH07CiAJCTk4RUIxRjk1MTMx
M0ZFMDUwMEQwRTFFQSAvKiBOb3RJbXBsZW1lbnRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOThFQjFGOTQxMzEzRkUwNTAwRDBFMUVBIC8qIE5vdElt
cGxlbWVudGVkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJOTlFNDVBMTcxOEEwNjNCRTAwMjZEODhGIC8qIEV2ZW50TG9vcElucHV0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUU0NUExNjE4QTA2M0JF
MDAyNkQ4OEYgLyogRXZlbnRMb29wSW5wdXQuaCAqLzsgfTsKKwkJOTlFNDVBMUExOEEwN0I5MzAw
MjZEODhGIC8qIElucHV0UHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTlFNDVBMTgxOEEwN0I5MzAwMjZEODhGIC8qIElucHV0UHJveHkuY3Bw
ICovOyB9OworCQk5OUU0NUExQjE4QTA3QjkzMDAyNkQ4OEYgLyogSW5wdXRQcm94eS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlFNDVBMTkxOEEwN0I5
MzAwMjZEODhGIC8qIElucHV0UHJveHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5QTExNDIwNDE4MzJEMTM1MDAwQkI4QUQgLyogVmFsdWVUb1N0
cmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUEx
MTQyMDMxODMyRDEzNDAwMEJCOEFEIC8qIFZhbHVlVG9TdHJpbmcuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QTFCNkY5NzE1ODg2OUM4MDAxMUE4
QzQgLyogSlNET01TdHJpbmdMaXN0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBMUI2Rjk2MTU4ODY5QzgwMDExQThDNCAvKiBKU0RPTVN0
cmluZ0xpc3RDdXN0b20uY3BwICovOyB9OwogCQk5QTUyOEU4MzE3RDdGNTJGMDBBQTk1MTggLyog
RmxvYXRpbmdPYmplY3RzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlBNTI4RTgxMTdEN0Y1MkYwMEFBOTUxOCAvKiBGbG9hdGluZ09iamVjdHMuY3Bw
ICovOyB9OwpAQCAtMTA0MzQsNiArMTA0MzYsOCBAQAogCQk5OENFNDMyOTEyOUUwMEU1MDA1ODIx
REMgLyogTGlua0xvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaW5r
TG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk4RUIxRjk0MTMxM0ZFMDUw
MEQwRTFFQSAvKiBOb3RJbXBsZW1lbnRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOb3RJbXBsZW1lbnRlZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUU0
NUExNjE4QTA2M0JFMDAyNkQ4OEYgLyogRXZlbnRMb29wSW5wdXQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRMb29wSW5wdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTlFNDVBMTgxOEEwN0I5MzAwMjZEODhGIC8qIElucHV0UHJveHkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5wdXRQcm94eS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5RTQ1QTE5MThBMDdCOTMwMDI2RDg4RiAvKiBJbnB1dFBy
b3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElucHV0UHJveHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUExMTQyMDMxODMyRDEzNDAwMEJCOEFEIC8qIFZh
bHVlVG9TdHJpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsdWVUb1N0
cmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QTFCNkY5NjE1ODg2OUM4MDAx
MUE4QzQgLyogSlNET01TdHJpbmdMaXN0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTRE9NU3RyaW5nTGlzdEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTlBNTI4RTgxMTdEN0Y1MkYwMEFBOTUxOCAvKiBGbG9hdGluZ09iamVj
dHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmxvYXRpbmdPYmpl
Y3RzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3ODMzLDYgKzE3ODM3LDgg
QEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJOTlFNDVBMTYxOEEw
NjNCRTAwMjZEODhGIC8qIEV2ZW50TG9vcElucHV0LmggKi8sCisJCQkJOTlFNDVBMTgxOEEwN0I5
MzAwMjZEODhGIC8qIElucHV0UHJveHkuY3BwICovLAorCQkJCTk5RTQ1QTE5MThBMDdCOTMwMDI2
RDg4RiAvKiBJbnB1dFByb3h5LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHJlcGxheTsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMzI5Niw2ICsyMzMwMiw3IEBACiAJCQkJODU0MDc1
NkQwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxPcHRpb25FbGVtZW50SW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA3OEUwOTFGMTdEMTREMUMwMDQyMEFBMSAvKiBSVENEYXRhQ2hhbm5l
bEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NURGMkY5QjBBQTNDQUU1MDBBRDY0QzUgLyog
RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5OUU0NUExQjE4
QTA3QjkzMDAyNkQ4OEYgLyogSW5wdXRQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVFNzEx
QzAwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbkludGVybmFsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4NTE4M0I0NjBBQTY5MjYxMDBGMTlGQTMgLyogRE9NSFRNTFBh
cmFncmFwaEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RTcxMUMxMEFDNUQ1MzUwMDUz
MjcwRiAvKiBET01IVE1MUGFyYWdyYXBoRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywK
QEAgLTI3MTY0LDYgKzI3MTcxLDcgQEAKIAkJCQlBODcxREIyRTBBMTUwQkQ2MDBCMTJBNjggLyog
SFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg3MURCMjkwQTE1
MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZUNvbEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTg3MURCMjgwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZUVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJOTlFNDVBMUExOEEwN0I5MzAwMjZEODhGIC8qIElucHV0UHJveHkuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTg3MURCMkQwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJs
ZVBhcnRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQjMwMEExNTBCRDYwMEIx
MkE2OCAvKiBIVE1MVGFibGVSb3dFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNDQy
Q0EwMEQyQjMzNjAwMDMzOEZGOSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGRlOWM2OGU1MDIzNmU5OTExNWE0NDhkODg0
ZWUzZmFlZTBmZTkzNTAuLjZmN2JmMGEwMTUzNjViOGEzODBjMmIyNDQ2MDU4Nzc5NWRjN2M4Y2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgIkhUTUxFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSGlzdG9yeUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJIaXN0b3J5
SXRlbS5oIgorI2luY2x1ZGUgIklucHV0UHJveHkuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgpAQCAtMTM2LDYgKzEzNyw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMm
IHBhZ2VDbGllbnRzKQogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgICwgbV9jb250ZXh0
TWVudUNvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxDb250ZXh0TWVudUNvbnRyb2xsZXI+KCp0
aGlzLCAqcGFnZUNsaWVudHMuY29udGV4dE1lbnVDbGllbnQpKQogI2VuZGlmCisgICAgLCBtX2lu
cHV0UHJveHkoc3RkOjptYWtlX3VuaXF1ZTxJbnB1dFByb3h5PigqdGhpcykpCiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikKICAgICAsIG1faW5zcGVjdG9yQ29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVl
PEluc3BlY3RvckNvbnRyb2xsZXI+KCp0aGlzLCBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQp
KQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDczYWU5YzkyMWIxZTcyN2JhMjQ4Zjk5OTQ1ZjUw
ZjUzOTRmNWJjMTIuLjE4MmI2ZGY3Y2U4MTU3MjJkYjQzOGM1NDVjMGJhMjliMGFlZGZkNWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCkBAIC03OCw2ICs3OCw3IEBAIGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50Owog
Y2xhc3MgRnJhbWVTZWxlY3Rpb247CiBjbGFzcyBIYWx0YWJsZVBsdWdpbjsKIGNsYXNzIEhpc3Rv
cnlJdGVtOworY2xhc3MgSW5wdXRQcm94eTsKIGNsYXNzIEluc3BlY3RvckNsaWVudDsKIGNsYXNz
IEluc3BlY3RvckNvbnRyb2xsZXI7CiBjbGFzcyBNYWluRnJhbWU7CkBAIC0xOTUsNiArMTk2LDcg
QEAgcHVibGljOgogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIENvbnRleHRNZW51Q29u
dHJvbGxlciYgY29udGV4dE1lbnVDb250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gKm1fY29udGV4
dE1lbnVDb250cm9sbGVyOyB9CiAjZW5kaWYKKyAgICBJbnB1dFByb3h5JiBpbnB1dFByb3h5KCkg
Y29uc3QgeyByZXR1cm4gKm1faW5wdXRQcm94eTsgfQogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAg
ICAgSW5zcGVjdG9yQ29udHJvbGxlciYgaW5zcGVjdG9yQ29udHJvbGxlcigpIGNvbnN0IHsgcmV0
dXJuICptX2luc3BlY3RvckNvbnRyb2xsZXI7IH0KICNlbmRpZgpAQCAtNDU2LDYgKzQ1OCw3IEBA
IHByaXZhdGU6CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgY29uc3Qgc3RkOjp1bmlx
dWVfcHRyPENvbnRleHRNZW51Q29udHJvbGxlcj4gbV9jb250ZXh0TWVudUNvbnRyb2xsZXI7CiAj
ZW5kaWYKKyAgICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRQcm94eT4gbV9pbnB1dFByb3h5
OwogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPEluc3Bl
Y3RvckNvbnRyb2xsZXI+IG1faW5zcGVjdG9yQ29udHJvbGxlcjsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L0lucHV0UHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVwbGF5L0lucHV0UHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlNmNhMjEzZmE1NDhmNDY1NTAzZmJi
MmU4YWFlNWM0MzRhOWJiMTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBs
YXkvSW5wdXRQcm94eS5jcHAKQEAgLTAsMCArMSwxNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgVW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUworICogSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVECisgKiBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEKKyAqIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
SW5wdXRQcm94eS5oIgorCisjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCisjaW5jbHVkZSAiRm9j
dXNDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRS
ZXF1ZXN0LmgiCisjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2lu
Y2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VF
dmVudC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKKworSW5wdXRQcm94eTo6SW5wdXRQcm94eShQYWdlJiBwYWdlKQorICAgIDogbV9w
YWdlKHBhZ2UpCit7Cit9CisKK0lucHV0UHJveHk6On5JbnB1dFByb3h5KCkKK3sKK30KKworYm9v
bCBJbnB1dFByb3h5OjpoYW5kbGVDb250ZXh0TWVudUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VF
dmVudCYgbW91c2VFdmVudCwgY29uc3QgRnJhbWUqIGZyYW1lLCBib29sIGZyb21SZXBsYXkpCit7
CisgICAgVU5VU0VEX1BBUkFNKGZyb21SZXBsYXkpOworICAgIHJldHVybiBmcmFtZS0+ZXZlbnRI
YW5kbGVyKCkuc2VuZENvbnRleHRNZW51RXZlbnQobW91c2VFdmVudCk7Cit9CisKK2Jvb2wgSW5w
dXRQcm94eTo6aGFuZGxlTW91c2VQcmVzc0V2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYg
bW91c2VFdmVudCwgYm9vbCBmcm9tUmVwbGF5KQoreworICAgIFVOVVNFRF9QQVJBTShmcm9tUmVw
bGF5KTsKKyAgICByZXR1cm4gbV9wYWdlLm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLmhhbmRs
ZU1vdXNlUHJlc3NFdmVudChtb3VzZUV2ZW50KTsKK30KKworYm9vbCBJbnB1dFByb3h5OjpoYW5k
bGVNb3VzZVJlbGVhc2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQs
IGJvb2wgZnJvbVJlcGxheSkKK3sKKyAgICBVTlVTRURfUEFSQU0oZnJvbVJlcGxheSk7CisgICAg
cmV0dXJuIG1fcGFnZS5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVJlbGVh
c2VFdmVudChtb3VzZUV2ZW50KTsKK30KKworYm9vbCBJbnB1dFByb3h5OjpoYW5kbGVNb3VzZU1v
dmVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQsIGJvb2wgZnJvbVJl
cGxheSkKK3sKKyAgICBVTlVTRURfUEFSQU0oZnJvbVJlcGxheSk7CisgICAgcmV0dXJuIG1fcGFn
ZS5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5tb3VzZU1vdmVkKG1vdXNlRXZlbnQpOworfQor
Citib29sIElucHV0UHJveHk6OmhhbmRsZU1vdXNlTW92ZU9uU2Nyb2xsYmFyRXZlbnQoY29uc3Qg
UGxhdGZvcm1Nb3VzZUV2ZW50JiBtb3VzZUV2ZW50LCBib29sIGZyb21SZXBsYXkpCit7CisgICAg
VU5VU0VEX1BBUkFNKGZyb21SZXBsYXkpOworICAgIHJldHVybiBtX3BhZ2UubWFpbkZyYW1lKCku
ZXZlbnRIYW5kbGVyKCkucGFzc01vdXNlTW92ZWRFdmVudFRvU2Nyb2xsYmFycyhtb3VzZUV2ZW50
KTsKK30KKworYm9vbCBJbnB1dFByb3h5OjpoYW5kbGVLZXlFdmVudChjb25zdCBQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQmIGtleUV2ZW50LCBib29sIGZyb21SZXBsYXkpCit7CisgICAgVU5VU0VEX1BB
UkFNKGZyb21SZXBsYXkpOworICAgIHJldHVybiBtX3BhZ2UuZm9jdXNDb250cm9sbGVyKCkuZm9j
dXNlZE9yTWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkua2V5RXZlbnQoa2V5RXZlbnQpOworfQor
Citib29sIElucHV0UHJveHk6OmhhbmRsZUFjY2Vzc0tleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5
Ym9hcmRFdmVudCYga2V5RXZlbnQsIGJvb2wgZnJvbVJlcGxheSkKK3sKKyAgICBVTlVTRURfUEFS
QU0oZnJvbVJlcGxheSk7CisgICAgcmV0dXJuIG1fcGFnZS5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1
c2VkT3JNYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5oYW5kbGVBY2Nlc3NLZXkoa2V5RXZlbnQp
OworfQorCitib29sIElucHV0UHJveHk6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBib29sIGZyb21SZXBsYXkpCit7CisgICAgVU5VU0VEX1BB
UkFNKGZyb21SZXBsYXkpOworICAgIHJldHVybiBtX3BhZ2UubWFpbkZyYW1lKCkuZXZlbnRIYW5k
bGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKK30KKwordm9pZCBJbnB1dFByb3h5
Ojpmb2N1c1NldEFjdGl2ZShib29sIGFjdGl2ZSwgYm9vbCBmcm9tUmVwbGF5KQoreworICAgIFVO
VVNFRF9QQVJBTShmcm9tUmVwbGF5KTsKKyAgICBtX3BhZ2UuZm9jdXNDb250cm9sbGVyKCkuc2V0
QWN0aXZlKGFjdGl2ZSk7Cit9CisKK3ZvaWQgSW5wdXRQcm94eTo6Zm9jdXNTZXRGb2N1c2VkKGJv
b2wgZm9jdXNlZCwgYm9vbCBmcm9tUmVwbGF5KQoreworICAgIFVOVVNFRF9QQVJBTShmcm9tUmVw
bGF5KTsKKyAgICBtX3BhZ2UuZm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZChmb2N1c2VkKTsK
K30KKworYm9vbCBJbnB1dFByb3h5OjpzY3JvbGxSZWN1cnNpdmVseShTY3JvbGxEaXJlY3Rpb24g
ZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSwgYm9vbCBmcm9tUmVwbGF5
KQoreworICAgIFVOVVNFRF9QQVJBTShmcm9tUmVwbGF5KTsKKyAgICByZXR1cm4gbV9wYWdlLmZv
Y3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLnNjcm9s
bFJlY3Vyc2l2ZWx5KGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHksIG51bGxwdHIpOworfQorCitib29s
IElucHV0UHJveHk6OmxvZ2ljYWxTY3JvbGxSZWN1cnNpdmVseShTY3JvbGxMb2dpY2FsRGlyZWN0
aW9uIGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJvb2wgZnJvbVJl
cGxheSkKK3sKKyAgICBVTlVTRURfUEFSQU0oZnJvbVJlcGxheSk7CisgICAgcmV0dXJuIG1fcGFn
ZS5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5s
b2dpY2FsU2Nyb2xsUmVjdXJzaXZlbHkoZGlyZWN0aW9uLCBncmFudWxhcml0eSwgbnVsbHB0cik7
Cit9CisKK3ZvaWQgSW5wdXRQcm94eTo6bG9hZFJlcXVlc3QoY29uc3QgRnJhbWVMb2FkUmVxdWVz
dCYgcmVxdWVzdCwgYm9vbCBmcm9tUmVwbGF5KQoreworICAgIFVOVVNFRF9QQVJBTShmcm9tUmVw
bGF5KTsKKyAgICBtX3BhZ2UubWFpbkZyYW1lKCkubG9hZGVyKCkubG9hZChyZXF1ZXN0KTsKK30K
Kwordm9pZCBJbnB1dFByb3h5OjpyZWxvYWRGcmFtZShGcmFtZSogZnJhbWUsIGJvb2wgZW5kVG9F
bmRSZWxvYWQsIGJvb2wgZnJvbVJlcGxheSkKK3sKKyAgICBVTlVTRURfUEFSQU0oZnJvbVJlcGxh
eSk7CisgICAgZnJhbWUtPmxvYWRlcigpLnJlbG9hZChlbmRUb0VuZFJlbG9hZCk7Cit9CisKK3Zv
aWQgSW5wdXRQcm94eTo6c3RvcExvYWRpbmdGcmFtZShGcmFtZSogZnJhbWUsIGJvb2wgZnJvbVJl
cGxheSkKK3sKKyAgICBVTlVTRURfUEFSQU0oZnJvbVJlcGxheSk7CisgICAgZnJhbWUtPmxvYWRl
cigpLnN0b3BGb3JVc2VyQ2FuY2VsKCk7Cit9CisKK2Jvb2wgSW5wdXRQcm94eTo6dHJ5Q2xvc2VQ
YWdlKGJvb2wgZnJvbVJlcGxheSkKK3sKKyAgICBVTlVTRURfUEFSQU0oZnJvbVJlcGxheSk7Cisg
ICAgcmV0dXJuIG1fcGFnZS5tYWluRnJhbWUoKS5sb2FkZXIoKS5zaG91bGRDbG9zZSgpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZXBs
YXkvSW5wdXRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L0lucHV0UHJveHkuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40M2FmNTRjMjEyODc5ZDA5MTU1MzFhNWQ1NGU2MWEzODA5YWU5ZDNjCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L0lucHV0UHJveHkuaApAQCAtMCwwICsx
LDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIFVuaXZlcnNpdHkgb2YgV2Fz
aGluZ3Rvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUyAiQVMKKyAqIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRAorICogVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBCisgKiBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBJbnB1dFByb3h5X2gKKyNkZWZpbmUgSW5wdXRQcm94eV9oCisKKyNpbmNsdWRl
ICJTY3JvbGxUeXBlcy5oIgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3N0cnVjdCBGcmFtZUxvYWRSZXF1ZXN0OworCitjbGFzcyBGcmFtZTsK
K2NsYXNzIFBhZ2U7CitjbGFzcyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ7CitjbGFzcyBQbGF0Zm9y
bU1vdXNlRXZlbnQ7CitjbGFzcyBQbGF0Zm9ybVdoZWVsRXZlbnQ7CisKK2NsYXNzIElucHV0UHJv
eHkgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKElucHV0UHJveHkpOworcHVibGljOgorICAg
IElucHV0UHJveHkoUGFnZSYpOworICAgIHZpcnR1YWwgfklucHV0UHJveHkoKTsKKworICAgIC8v
IFVzZXIgaW5wdXQgQVBJcy4KKyAgICBib29sIGhhbmRsZUNvbnRleHRNZW51RXZlbnQoY29uc3Qg
UGxhdGZvcm1Nb3VzZUV2ZW50JiwgY29uc3QgRnJhbWUqLCBib29sIGZyb21SZXBsYXkgPSBmYWxz
ZSk7CisgICAgYm9vbCBoYW5kbGVNb3VzZVByZXNzRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50JiwgYm9vbCBmcm9tUmVwbGF5ID0gZmFsc2UpOworICAgIGJvb2wgaGFuZGxlTW91c2VSZWxl
YXNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgYm9vbCBmcm9tUmVwbGF5ID0gZmFs
c2UpOworICAgIGJvb2wgaGFuZGxlTW91c2VNb3ZlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50JiwgYm9vbCBmcm9tUmVwbGF5ID0gZmFsc2UpOworICAgIGJvb2wgaGFuZGxlTW91c2VNb3Zl
T25TY3JvbGxiYXJFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBib29sIGZyb21SZXBs
YXkgPSBmYWxzZSk7CisgICAgYm9vbCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYsIGJvb2wgZnJvbVJlcGxheSA9IGZhbHNlKTsKKyAgICBib29sIGhhbmRsZUtleUV2
ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYsIGJvb2wgZnJvbVJlcGxheSA9IGZhbHNl
KTsKKyAgICBib29sIGhhbmRsZUFjY2Vzc0tleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRF
dmVudCYsIGJvb2wgZnJvbVJlcGxheSA9IGZhbHNlKTsKKyAgICB2b2lkIGZvY3VzU2V0QWN0aXZl
KGJvb2wgYWN0aXZlLCBib29sIGZyb21SZXBsYXkgPSBmYWxzZSk7CisgICAgdm9pZCBmb2N1c1Nl
dEZvY3VzZWQoYm9vbCBmb2N1c2VkLCBib29sIGZyb21SZXBsYXkgPSBmYWxzZSk7CisgICAgYm9v
bCBzY3JvbGxSZWN1cnNpdmVseShTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBi
b29sIGZyb21SZXBsYXkgPSBmYWxzZSk7CisgICAgYm9vbCBsb2dpY2FsU2Nyb2xsUmVjdXJzaXZl
bHkoU2Nyb2xsTG9naWNhbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGJvb2wgZnJvbVJl
cGxheSA9IGZhbHNlKTsKKworICAgIC8vIE5hdmlnYXRpb24gQVBJcy4KKyAgICB2b2lkIGxvYWRS
ZXF1ZXN0KGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBib29sIGZyb21SZXBsYXkgPSBmYWxzZSk7
CisgICAgdm9pZCByZWxvYWRGcmFtZShGcmFtZSosIGJvb2wgZW5kVG9FbmRSZWxvYWQsIGJvb2wg
ZnJvbVJlcGxheSA9IGZhbHNlKTsKKyAgICB2b2lkIHN0b3BMb2FkaW5nRnJhbWUoRnJhbWUqLCBi
b29sIGZyb21SZXBsYXkgPSBmYWxzZSk7CisgICAgYm9vbCB0cnlDbG9zZVBhZ2UoYm9vbCBmcm9t
UmVwbGF5ID0gZmFsc2UpOworCitwcml2YXRlOgorICAgIFBhZ2UmIG1fcGFnZTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIElucHV0UHJveHlfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGM2ODIxMzQ5MGQ2
NWE4ZTRmN2MxYmQ0MmRiN2U4N2ZmNWFjOTY2ZDguLmUzYjliMmVlZmYzN2NkMDRmZDA2NDY4MWFl
YzcwNGRiMDM0NGMzMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTExMiw2ICsxMTIsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSGlzdG9y
eUNvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hpc3RvcnlJdGVtLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9IaXRUZXN0UmVzdWx0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnB1dFByb3h5
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9KU0RPTVdpbmRvdy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
S2V5Ym9hcmRFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgpA
QCAtODc1LDcgKzg3Niw3IEBAIHZvaWQgV2ViUGFnZTo6dHJ5Q2xvc2UoKQogewogICAgIFNlbmRT
dG9wUmVzcG9uc2l2ZW5lc3NUaW1lciBzdG9wcGVyKHRoaXMpOwogCi0gICAgaWYgKCFtX21haW5G
cmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLnNob3VsZENsb3NlKCkpIHsKKyAgICBpZiAoIWNv
cmVQYWdlKCktPmlucHV0UHJveHkoKS50cnlDbG9zZVBhZ2UoKSkgewogICAgICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKCkpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtOTE2LDcgKzkxNyw3IEBAIHZvaWQgV2ViUGFnZTo6bG9hZFJl
cXVlc3QodWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsCiAgICAgbV9sb2FkZXJDbGllbnQud2lsbExvYWRVUkxSZXF1ZXN0KHRoaXMsIHJlcXVlc3Qs
IHVzZXJEYXRhLmdldCgpKTsKIAogICAgIC8vIEluaXRhdGUgdGhlIGxvYWQgaW4gV2ViQ29yZS4K
LSAgICBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVx
dWVzdChtX21haW5GcmFtZS0+Y29yZUZyYW1lKCksIHJlcXVlc3QpKTsKKyAgICBjb3JlUGFnZSgp
LT5pbnB1dFByb3h5KCkubG9hZFJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdChtX21haW5GcmFtZS0+
Y29yZUZyYW1lKCksIHJlcXVlc3QpKTsKIAogICAgIEFTU0VSVCghbV9wZW5kaW5nTmF2aWdhdGlv
bklEKTsKIH0KQEAgLTk4OSwxNCArOTkwLDE0IEBAIHZvaWQgV2ViUGFnZTo6c3RvcExvYWRpbmdG
cmFtZSh1aW50NjRfdCBmcmFtZUlEKQogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkuc3RvcEZvclVzZXJDYW5jZWwoKTsK
KyAgICBjb3JlUGFnZSgpLT5pbnB1dFByb3h5KCkuc3RvcExvYWRpbmdGcmFtZShmcmFtZS0+Y29y
ZUZyYW1lKCkpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnN0b3BMb2FkaW5nKCkKIHsKICAgICBTZW5k
U3RvcFJlc3BvbnNpdmVuZXNzVGltZXIgc3RvcHBlcih0aGlzKTsKIAotICAgIG1fbWFpbkZyYW1l
LT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkuc3RvcEZvclVzZXJDYW5jZWwoKTsKKyAgICBjb3JlUGFn
ZSgpLT5pbnB1dFByb3h5KCkuc3RvcExvYWRpbmdGcmFtZShtX21haW5GcmFtZS0+Y29yZUZyYW1l
KCkpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnNMb2Fk
aW5nKQpAQCAtMTAxMiw3ICsxMDEzLDcgQEAgdm9pZCBXZWJQYWdlOjpyZWxvYWQodWludDY0X3Qg
bmF2aWdhdGlvbklELCBib29sIHJlbG9hZEZyb21PcmlnaW4sIGNvbnN0IFNhbmRib3gKICAgICBt
X3BlbmRpbmdOYXZpZ2F0aW9uSUQgPSBuYXZpZ2F0aW9uSUQ7CiAKICAgICBtX3NhbmRib3hFeHRl
bnNpb25UcmFja2VyLmJlZ2luTG9hZChtX21haW5GcmFtZS5nZXQoKSwgc2FuZGJveEV4dGVuc2lv
bkhhbmRsZSk7Ci0gICAgbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5yZWxvYWQo
cmVsb2FkRnJvbU9yaWdpbik7CisgICAgY29yZVBhZ2UoKS0+aW5wdXRQcm94eSgpLnJlbG9hZEZy
YW1lKG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKSwgcmVsb2FkRnJvbU9yaWdpbik7CiB9CiAKIHZv
aWQgV2ViUGFnZTo6Z29Gb3J3YXJkKHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRlbUlEKQpAQCAtMTU2
MCw3ICsxNTYxLDcgQEAgV2ViQ29udGV4dE1lbnUqIFdlYlBhZ2U6OmNvbnRleHRNZW51QXRQb2lu
dEluV2luZG93KGNvbnN0IEludFBvaW50JiBwb2ludCkKICAgICAKICAgICAvLyBTaW11bGF0ZSBh
IG1vdXNlIGNsaWNrIHRvIGdlbmVyYXRlIHRoZSBjb3JyZWN0IG1lbnUuCiAgICAgUGxhdGZvcm1N
b3VzZUV2ZW50IG1vdXNlRXZlbnQocG9pbnQsIHBvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1F
dmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVu
dFRpbWUoKSk7Ci0gICAgYm9vbCBoYW5kbGVkID0gY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkuZXZl
bnRIYW5kbGVyKCkuc2VuZENvbnRleHRNZW51RXZlbnQobW91c2VFdmVudCk7CisgICAgYm9vbCBo
YW5kbGVkID0gY29yZVBhZ2UoKS0+aW5wdXRQcm94eSgpLmhhbmRsZUNvbnRleHRNZW51RXZlbnQo
bW91c2VFdmVudCwgJmNvcmVQYWdlKCktPm1haW5GcmFtZSgpKTsKICAgICBpZiAoIWhhbmRsZWQp
CiAgICAgICAgIHJldHVybiAwOwogCkBAIC0xNjIwLDggKzE2MjEsOCBAQCBzdGF0aWMgYm9vbCBo
YW5kbGVDb250ZXh0TWVudUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgcGxhdGZvcm1N
b3VzZUV2ZW50LAogICAgIEZyYW1lKiBmcmFtZSA9ICZwYWdlLT5jb3JlUGFnZSgpLT5tYWluRnJh
bWUoKTsKICAgICBpZiAocmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKQogICAgICAgICBmcmFt
ZSA9IHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKS0+ZG9jdW1lbnQoKS5mcmFtZSgpOwotICAg
IAotICAgIGJvb2wgaGFuZGxlZCA9IGZyYW1lLT5ldmVudEhhbmRsZXIoKS5zZW5kQ29udGV4dE1l
bnVFdmVudChwbGF0Zm9ybU1vdXNlRXZlbnQpOworCisgICAgYm9vbCBoYW5kbGVkID0gcGFnZS0+
Y29yZVBhZ2UoKS0+aW5wdXRQcm94eSgpLmhhbmRsZUNvbnRleHRNZW51RXZlbnQocGxhdGZvcm1N
b3VzZUV2ZW50LCBmcmFtZSk7CiAgICAgaWYgKGhhbmRsZWQpCiAgICAgICAgIHBhZ2UtPmNvbnRl
eHRNZW51KCktPnNob3coKTsKIApAQCAtMTY0NCw3ICsxNjQ1LDcgQEAgc3RhdGljIGJvb2wgaGFu
ZGxlTW91c2VFdmVudChjb25zdCBXZWJNb3VzZUV2ZW50JiBtb3VzZUV2ZW50LCBXZWJQYWdlKiBw
YWdlLCBib28KICAgICAgICAgICAgICAgICBwYWdlLT5jb3JlUGFnZSgpLT5jb250ZXh0TWVudUNv
bnRyb2xsZXIoKS5jbGVhckNvbnRleHRNZW51KCk7CiAjZW5kaWYKIAotICAgICAgICAgICAgYm9v
bCBoYW5kbGVkID0gZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50KHBs
YXRmb3JtTW91c2VFdmVudCk7CisgICAgICAgICAgICBib29sIGhhbmRsZWQgPSBwYWdlLT5jb3Jl
UGFnZSgpLT5pbnB1dFByb3h5KCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50KHBsYXRmb3JtTW91c2VF
dmVudCk7CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgICAgICAgICBpZiAoaXNDb250
ZXh0Q2xpY2socGxhdGZvcm1Nb3VzZUV2ZW50KSkKICAgICAgICAgICAgICAgICBoYW5kbGVkID0g
aGFuZGxlQ29udGV4dE1lbnVFdmVudChwbGF0Zm9ybU1vdXNlRXZlbnQsIHBhZ2UpOwpAQCAtMTY1
MiwxMiArMTY1MywxMiBAQCBzdGF0aWMgYm9vbCBoYW5kbGVNb3VzZUV2ZW50KGNvbnN0IFdlYk1v
dXNlRXZlbnQmIG1vdXNlRXZlbnQsIFdlYlBhZ2UqIHBhZ2UsIGJvbwogICAgICAgICAgICAgcmV0
dXJuIGhhbmRsZWQ7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpNb3Vz
ZVJlbGVhc2VkOgotICAgICAgICAgICAgcmV0dXJuIGZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRs
ZU1vdXNlUmVsZWFzZUV2ZW50KHBsYXRmb3JtTW91c2VFdmVudCk7CisgICAgICAgICAgICByZXR1
cm4gcGFnZS0+Y29yZVBhZ2UoKS0+aW5wdXRQcm94eSgpLmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50
KHBsYXRmb3JtTW91c2VFdmVudCk7CiAKICAgICAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpNb3Vz
ZU1vdmVkOgogICAgICAgICAgICAgaWYgKG9ubHlVcGRhdGVTY3JvbGxiYXJzKQotICAgICAgICAg
ICAgICAgIHJldHVybiBmcmFtZS5ldmVudEhhbmRsZXIoKS5wYXNzTW91c2VNb3ZlZEV2ZW50VG9T
Y3JvbGxiYXJzKHBsYXRmb3JtTW91c2VFdmVudCk7Ci0gICAgICAgICAgICByZXR1cm4gZnJhbWUu
ZXZlbnRIYW5kbGVyKCkubW91c2VNb3ZlZChwbGF0Zm9ybU1vdXNlRXZlbnQpOworICAgICAgICAg
ICAgICAgIHJldHVybiBwYWdlLT5jb3JlUGFnZSgpLT5pbnB1dFByb3h5KCkuaGFuZGxlTW91c2VN
b3ZlT25TY3JvbGxiYXJFdmVudChwbGF0Zm9ybU1vdXNlRXZlbnQpOworICAgICAgICAgICAgcmV0
dXJuIHBhZ2UtPmNvcmVQYWdlKCktPmlucHV0UHJveHkoKS5oYW5kbGVNb3VzZU1vdmVFdmVudChw
bGF0Zm9ybU1vdXNlRXZlbnQpOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNzQzLDcgKzE3
NDQsNyBAQCBzdGF0aWMgYm9vbCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFdlYldoZWVsRXZlbnQm
IHdoZWVsRXZlbnQsIFBhZ2UqIHBhZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFBs
YXRmb3JtV2hlZWxFdmVudCBwbGF0Zm9ybVdoZWVsRXZlbnQgPSBwbGF0Zm9ybSh3aGVlbEV2ZW50
KTsKLSAgICByZXR1cm4gZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVudChwbGF0
Zm9ybVdoZWVsRXZlbnQpOworICAgIHJldHVybiBwYWdlLT5pbnB1dFByb3h5KCkuaGFuZGxlV2hl
ZWxFdmVudChwbGF0Zm9ybVdoZWVsRXZlbnQpOwogfQogCiB2b2lkIFdlYlBhZ2U6OndoZWVsRXZl
bnQoY29uc3QgV2ViV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKQEAgLTE3NzMsOCArMTc3NCw4IEBA
IHN0YXRpYyBib29sIGhhbmRsZUtleUV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQmIGtleWJv
YXJkRXZlbnQsIFBhZ2UqIHBhZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChr
ZXlib2FyZEV2ZW50LnR5cGUoKSA9PSBXZWJFdmVudDo6Q2hhciAmJiBrZXlib2FyZEV2ZW50Lmlz
U3lzdGVtS2V5KCkpCi0gICAgICAgIHJldHVybiBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1
c2VkT3JNYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5oYW5kbGVBY2Nlc3NLZXkocGxhdGZvcm0o
a2V5Ym9hcmRFdmVudCkpOwotICAgIHJldHVybiBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1
c2VkT3JNYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5rZXlFdmVudChwbGF0Zm9ybShrZXlib2Fy
ZEV2ZW50KSk7CisgICAgICAgIHJldHVybiBwYWdlLT5pbnB1dFByb3h5KCkuaGFuZGxlQWNjZXNz
S2V5RXZlbnQocGxhdGZvcm0oa2V5Ym9hcmRFdmVudCkpOworICAgIHJldHVybiBwYWdlLT5pbnB1
dFByb3h5KCkuaGFuZGxlS2V5RXZlbnQocGxhdGZvcm0oa2V5Ym9hcmRFdmVudCkpOwogfQogCiB2
b2lkIFdlYlBhZ2U6OmtleUV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQmIGtleWJvYXJkRXZl
bnQpCkBAIC0xOTEzLDEyICsxOTE0LDEyIEBAIHZvaWQgV2ViUGFnZTo6dG91Y2hFdmVudFN5bmNG
b3JUZXN0aW5nKGNvbnN0IFdlYlRvdWNoRXZlbnQmIHRvdWNoRXZlbnQsIGJvb2wmIGhhCiAKIGJv
b2wgV2ViUGFnZTo6c2Nyb2xsKFBhZ2UqIHBhZ2UsIFNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24s
IFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewotICAgIHJldHVybiBwYWdlLT5mb2N1
c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5zY3JvbGxS
ZWN1cnNpdmVseShkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKKyAgICByZXR1cm4gcGFnZS0+aW5w
dXRQcm94eSgpLnNjcm9sbFJlY3Vyc2l2ZWx5KGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpOwogfQog
CiBib29sIFdlYlBhZ2U6OmxvZ2ljYWxTY3JvbGwoUGFnZSogcGFnZSwgU2Nyb2xsTG9naWNhbERp
cmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewotICAg
IHJldHVybiBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKS5ldmVu
dEhhbmRsZXIoKS5sb2dpY2FsU2Nyb2xsUmVjdXJzaXZlbHkoZGlyZWN0aW9uLCBncmFudWxhcml0
eSk7CisgICAgcmV0dXJuIHBhZ2UtPmlucHV0UHJveHkoKS5sb2dpY2FsU2Nyb2xsUmVjdXJzaXZl
bHkoZGlyZWN0aW9uLCBncmFudWxhcml0eSk7CiB9CiAKIGJvb2wgV2ViUGFnZTo6c2Nyb2xsQnko
dWludDMyX3Qgc2Nyb2xsRGlyZWN0aW9uLCB1aW50MzJfdCBzY3JvbGxHcmFudWxhcml0eSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224984</attachid>
            <date>2014-02-22 15:41:28 -0800</date>
            <delta_ts>2014-02-24 11:08:03 -0800</delta_ts>
            <desc>rebased, renamed to UserInputBridge</desc>
            <filename>bug-128150-20140222154127.patch</filename>
            <type>text/plain</type>
            <size>33991</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0NTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2U5YjI2NDQxM2M3YzRm
Y2VhYzNmMmU5MTJjMGRlZjdmMWRhOGExNi4uZmJkMmY3ZmIwYTRhYjVhZGZmNzM5Yjg5NmVlZDFh
OTMwZTgxNWI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE0LTAyLTIxICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBSZXBsYXk6IHJvdXRlIHRo
cm91Z2ggVXNlcklucHV0QnJpZGdlIHdoZW4gZGVsaXZlcmluZyB1c2VyIGlucHV0cyB0byBXZWJD
b3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgx
NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
YW4gVXNlcklucHV0QnJpZGdlIGluc3RhbmNlIHRvIGVhY2ggUGFnZS4gV2ViS2l0MiByb3V0ZXMg
YSBwYWdlJ3MgdXNlciBpbnB1dHMgdGhyb3VnaAorICAgICAgICB0aGUgV2ViQ29yZSBwYWdlJ3Mg
dXNlciBpbnB1dCBicmlkZ2Ugc28gdGhhdCB0aGUgaW5wdXRzIGNhbiBiZSBzZWxlY3RpdmVseSBj
YXB0dXJlZCwgZmlsdGVyZWQsCisgICAgICAgIGFuZCByZXBsYXllZCB1c2luZyBpbnN0cnVtZW50
YXRpb24gaW5zaWRlIHRoZSBVc2VySW5wdXRCcmlkZ2UuCisKKyAgICAgICAgRm9yIG5vdywgdGhl
IHJvdXRpbmcgbWV0aG9kcyBvZiBVc2VySW5wdXRCcmlkZ2UgaGF2ZSBubyByZXBsYXktc3BlY2lm
aWMgY29kZSBwYXRocywgYW5kIGp1c3QKKyAgICAgICAgcHV0IHRoZSBpbnB1dCBkZWxpdmVyeSBj
b2RlIGluc2lkZSBXZWJDb3JlIHJhdGhlciB0aGFuIGl0cyBleHRlcm5hbCBjbGllbnRzLiBSZXBs
YXktc3BlY2lmaWMKKyAgICAgICAgY29kZSBwYXRocyB3aWxsIGJlIGFkZGVkIG9uY2UgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODc4MiBpcyBmaXhlZC4gSG93ZXZl
ciwKKyAgICAgICAgb25jZSBjb21wbGV0ZSB0aGUgY29kZSB3aWxsIHdvcmsgYXMgZm9sbG93czoK
KworICAgICAgICAtIFdoZW4gbmVpdGhlciBjYXB0dXJpbmcgb3IgcmVwbGF5aW5nLCBiZWhhdmlv
ciBpcyB1bmNoYW5nZWQuCisKKyAgICAgICAgLSBXaGVuIGNhcHR1cmluZyB1c2VyIGlucHV0cywg
ZWFjaCBleHRlcm5hbCBpbnB1dCBpcyBzYXZlZCBpbnRvIGEgcmVwbGF5IGxvZyBhcyBpdCBjcm9z
c2VzCisgICAgICAgIHRoZSBicmlkZ2UgZnJvbSBvdXRzaWRlIFdlYkNvcmUuCisKKyAgICAgICAg
LSBXaGVuIHJlcGxheWluZywgdGhlIGJyaWRnZSBjbG9zZXMgYW5kIHVzZXIgaW5wdXRzIGZyb20g
V2ViS2l0MiBhcmUgbm90IGFjY2VwdGVkLiBJbnN0ZWFkLAorICAgICAgICB0aGUgc2F2ZWQgaW5w
dXRzIGZyb20gdGhlIHJlcGxheSBsb2cgYXJlIHJlLWRpc3BhdGNoZWQgYXMgaWYgdGhleSBoYWQg
Y3Jvc3NlZCB0aGUgYnJpZGdlLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5leHAuaW46IEFkZCBzeW1ib2xz
IGZvciBpbnB1dCByb3V0aW5nIG1ldGhvZHMuCisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
LmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKTog
SW5pdGlhbGl6ZSB0aGUgb3duZWQgVXNlcklucHV0QnJpZGdlIGluIHRoZSBQYWdlIGNvbnN0cnVj
dG9yLgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6aW5w
dXRCcmlkZ2UpOiBBZGRlZCBhIGJ5LXJlZmVyZW5jZSBnZXR0ZXIuCisgICAgICAgICogcmVwbGF5
L1VzZXJJbnB1dEJyaWRnZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VXNlcklucHV0
QnJpZGdlOjpVc2VySW5wdXRCcmlkZ2UpOgorICAgICAgICAoV2ViQ29yZTo6VXNlcklucHV0QnJp
ZGdlOjp+VXNlcklucHV0QnJpZGdlKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJJbnB1dEJyaWRn
ZTo6aGFuZGxlQ29udGV4dE1lbnVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VySW5wdXRC
cmlkZ2U6OmhhbmRsZU1vdXNlUHJlc3NFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VySW5w
dXRCcmlkZ2U6OmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlVz
ZXJJbnB1dEJyaWRnZTo6aGFuZGxlTW91c2VNb3ZlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
VXNlcklucHV0QnJpZGdlOjpoYW5kbGVNb3VzZU1vdmVPblNjcm9sbGJhckV2ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlVzZXJJbnB1dEJyaWRnZTo6aGFuZGxlS2V5RXZlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6VXNlcklucHV0QnJpZGdlOjpoYW5kbGVBY2Nlc3NLZXlFdmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpVc2VySW5wdXRCcmlkZ2U6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6VXNlcklucHV0QnJpZGdlOjpmb2N1c1NldEFjdGl2ZSk6CisgICAgICAgIChXZWJD
b3JlOjpVc2VySW5wdXRCcmlkZ2U6OmZvY3VzU2V0Rm9jdXNlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpVc2VySW5wdXRCcmlkZ2U6OnNjcm9sbFJlY3Vyc2l2ZWx5KToKKyAgICAgICAgKFdlYkNvcmU6
OlVzZXJJbnB1dEJyaWRnZTo6bG9naWNhbFNjcm9sbFJlY3Vyc2l2ZWx5KToKKyAgICAgICAgKFdl
YkNvcmU6OlVzZXJJbnB1dEJyaWRnZTo6bG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6
VXNlcklucHV0QnJpZGdlOjpyZWxvYWRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpVc2VySW5w
dXRCcmlkZ2U6OnN0b3BMb2FkaW5nRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6VXNlcklucHV0
QnJpZGdlOjp0cnlDbG9zZVBhZ2UpOgorICAgICAgICAqIHJlcGxheS9Vc2VySW5wdXRCcmlkZ2Uu
aDogQWRkZWQuCisKIDIwMTQtMDItMjIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5j
b20+CiAKICAgICAgICAgUmVuYW1lIEpXSyBrZXlfb3BzIHZhbHVlcyBmcm9tIHdyYXAvdW53cmFw
IHRvIHdyYXBLZXkvdW53cmFwS2V5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMGY0MzE3ZGI1NzZmYjM3MmMwNzYz
MzdiMzE1NmFhMTlmNzgzOTU1Yy4uYTk4MDY3ZjE2ZTgxZjBiM2NlZjU4OTM5YzZkNTJiZDBiZjgx
NWMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTAyLTIxICBCcmlhbiBCdXJn
ICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBSZXBsYXk6IHJvdXRlIHRocm91Z2gg
VXNlcklucHV0QnJpZGdlIHdoZW4gZGVsaXZlcmluZyB1c2VyIGlucHV0cyB0byBXZWJDb3JlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgxNTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGRlbGl2
ZXJpbmcgdXNlciBpbnB1dHMgdG8gV2ViQ29yZSwgcm91dGUgY2FsbHMgdGhyb3VnaCB0aGUgcGFn
ZSdzIFVzZXJJbnB1dEJyaWRnZS4KKyAgICAgICAgVGhpcyBhbGxvd3MgdXMgdG8gY2FwdHVyZSBh
bmQgcmVwbGF5IHVzZXIgaW5wdXRzIGZyb20gV2ViS2l0MiBzb2xlbHkgd2l0aGluIFdlYkNvcmUu
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnRyeUNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9h
ZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzdG9wTG9hZGluZ0ZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c3RvcExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpyZWxvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb250ZXh0TWVu
dUF0UG9pbnRJbldpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OmhhbmRsZUNvbnRleHRNZW51RXZl
bnQpOgorICAgICAgICAoV2ViS2l0OjpoYW5kbGVNb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYktp
dDo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OmhhbmRsZUtleUV2ZW50KToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2Nyb2xsKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6bG9naWNhbFNjcm9sbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldEFjdGl2
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldEZvY3VzZWQpOgorCiAyMDE0LTAyLTIy
ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBXS1VJ
RGVsZWdhdGUuaCBpcyBhIHByb2plY3QgaGVhZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDE3
ZjEzNDExZDcyNjQxOGFiZDRkNzg3MmRiOGZlMjA3Yzc3MDdlMmQuLjYzMzE1MGFlZjg4OWVhNzVh
MDQ4NzFjMDBkOWQ3NzE3NDBhYWVhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC04Niw2ICs4
Niw3IEBAIHNldChXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJ
Un0vcmVuZGVyaW5nL3NoYXBlcyIKICAgICAiJHtXRUJDT1JFX0RJUn0vcmVuZGVyaW5nL3N0eWxl
IgogICAgICIke1dFQkNPUkVfRElSfS9yZW5kZXJpbmcvc3ZnIgorICAgICIke1dFQkNPUkVfRElS
fS9yZXBsYXkiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3N0b3JhZ2UiCiAgICAgIiR7V0VCQ09SRV9E
SVJ9L3N0eWxlIgogICAgICIke1dFQkNPUkVfRElSfS9zdmciCkBAIC0yMzA5LDYgKzIzMTAsOCBA
QCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcmVuZGVyaW5nL3N2Zy9TVkdUZXh0UXVlcnkuY3Bw
CiAgICAgcmVuZGVyaW5nL3N2Zy9TVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5jcHAKIAorICAg
IHJlcGxheS9Vc2VySW5wdXRCcmlkZ2UuY3BwCisKICAgICBzdG9yYWdlL1N0b3JhZ2UuY3BwCiAg
ICAgc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuY3BwCiAgICAgc3RvcmFnZS9TdG9yYWdlQXJlYVN5
bmMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDA0Y2FhZWYwNWI0MmVkNTg4ZTg3N2YyNzE4
ZjAxMjViYTFmM2Y0YjMuLmViYjk3OTNlY2I0OWFlNzAxNmYyNDc0OWE1YTM0OWRiNzExNGMwYzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xMDIsNiArMTAyLDcgQEAgd2ViY29yZV9jcHBmbGFn
cyArPSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcyBcCiAJ
LUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlIFwKIAktSSQoc3JjZGly
KS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnIFwKKwktSSQoc3JjZGlyKS9Tb3VyY2UvV2Vi
Q29yZS9yZXBsYXkgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UgXAogCS1J
JChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3N0eWxlIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2Vi
Q29yZS9zdmcgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBmOTA3Yzc0MTFjZDBiNWVmY2I3NmRi
MzdiMzI4MWUyYWI1OWExM2U3Li5iNzVmOTNjMTRjN2U3NTg0OTBiYTJlZDFlMzAzMGE0MDEzYjAw
ZDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNjE4LDYgKzYxOCwyMSBAQCBfX1pON1dlYkNv
cmUxNVN0b3JhZ2VTdHJhdGVneTMwdHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlRVBOU185
UGFnZUdyb3VwRVBOUwogX19aTjdXZWJDb3JlMTVTdHJpbmdUcnVuY2F0b3IxM3JpZ2h0VHJ1bmNh
dGVFUktOM1dURjZTdHJpbmdFZlJLTlNfNEZvbnRFTlMwXzI0RW5hYmxlUm91bmRpbmdIYWNrc09y
Tm90RQogX19aTjdXZWJDb3JlMTVTdHJpbmdUcnVuY2F0b3IxNGNlbnRlclRydW5jYXRlRVJLTjNX
VEY2U3RyaW5nRWZSS05TXzRGb250RU5TMF8yNEVuYWJsZVJvdW5kaW5nSGFja3NPck5vdEUKIF9f
Wk43V2ViQ29yZTE1U3RyaW5nVHJ1bmNhdG9yNXdpZHRoRVJLTjNXVEY2U3RyaW5nRVJLTlNfNEZv
bnRFTlMwXzI0RW5hYmxlUm91bmRpbmdIYWNrc09yTm90RQorX19aTjdXZWJDb3JlMTVVc2VySW5w
dXRCcmlkZ2UxMWxvYWRSZXF1ZXN0RVJLTlNfMTZGcmFtZUxvYWRSZXF1ZXN0RWIKK19fWk43V2Vi
Q29yZTE1VXNlcklucHV0QnJpZGdlMTFyZWxvYWRGcmFtZUVQTlNfNUZyYW1lRWJiCitfX1pON1dl
YkNvcmUxNVVzZXJJbnB1dEJyaWRnZTEydHJ5Q2xvc2VQYWdlRWIKK19fWk43V2ViQ29yZTE1VXNl
cklucHV0QnJpZGdlMTRmb2N1c1NldEFjdGl2ZUViYgorX19aTjdXZWJDb3JlMTVVc2VySW5wdXRC
cmlkZ2UxNGhhbmRsZUtleUV2ZW50RVJLTlNfMjFQbGF0Zm9ybUtleWJvYXJkRXZlbnRFYgorX19a
TjdXZWJDb3JlMTVVc2VySW5wdXRCcmlkZ2UxNWZvY3VzU2V0Rm9jdXNlZEViYgorX19aTjdXZWJD
b3JlMTVVc2VySW5wdXRCcmlkZ2UxNmhhbmRsZVdoZWVsRXZlbnRFUktOU18xOFBsYXRmb3JtV2hl
ZWxFdmVudEViCitfX1pON1dlYkNvcmUxNVVzZXJJbnB1dEJyaWRnZTE2c3RvcExvYWRpbmdGcmFt
ZUVQTlNfNUZyYW1lRWIKK19fWk43V2ViQ29yZTE1VXNlcklucHV0QnJpZGdlMTdzY3JvbGxSZWN1
cnNpdmVseUVOU18xNVNjcm9sbERpcmVjdGlvbkVOU18xN1Njcm9sbEdyYW51bGFyaXR5RWIKK19f
Wk43V2ViQ29yZTE1VXNlcklucHV0QnJpZGdlMjBoYW5kbGVBY2Nlc3NLZXlFdmVudEVSS05TXzIx
UGxhdGZvcm1LZXlib2FyZEV2ZW50RWIKK19fWk43V2ViQ29yZTE1VXNlcklucHV0QnJpZGdlMjBo
YW5kbGVNb3VzZU1vdmVFdmVudEVSS05TXzE4UGxhdGZvcm1Nb3VzZUV2ZW50RWIKK19fWk43V2Vi
Q29yZTE1VXNlcklucHV0QnJpZGdlMjFoYW5kbGVNb3VzZVByZXNzRXZlbnRFUktOU18xOFBsYXRm
b3JtTW91c2VFdmVudEViCitfX1pON1dlYkNvcmUxNVVzZXJJbnB1dEJyaWRnZTIyaGFuZGxlQ29u
dGV4dE1lbnVFdmVudEVSS05TXzE4UGxhdGZvcm1Nb3VzZUV2ZW50RVBLTlNfNUZyYW1lRWIKK19f
Wk43V2ViQ29yZTE1VXNlcklucHV0QnJpZGdlMjNoYW5kbGVNb3VzZVJlbGVhc2VFdmVudEVSS05T
XzE4UGxhdGZvcm1Nb3VzZUV2ZW50RWIKK19fWk43V2ViQ29yZTE1VXNlcklucHV0QnJpZGdlMzFo
YW5kbGVNb3VzZU1vdmVPblNjcm9sbGJhckV2ZW50RVJLTlNfMThQbGF0Zm9ybU1vdXNlRXZlbnRF
YgogX19aTjdXZWJDb3JlMTVWaXNpYmxlUG9zaXRpb25DMUVSS05TXzhQb3NpdGlvbkVOU185RUFm
ZmluaXR5RQogX19aTjdXZWJDb3JlMTVkZWZhdWx0TGFuZ3VhZ2VFdgogX19aTjdXZWJDb3JlMTVs
b2NhbGl6ZWRTdHJpbmdFUEtjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9y
ZGVyIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgppbmRleCAzODkzZGY5Mzk2MDI5YTdl
NDRlMjQzN2Y4NmJkNzRkOWZmZTQzOWY4Li42YmFkMjI3ODg4OTllMjI2YjkyZDhhMWE4YzBiYWEz
NzQxNDJjMzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKQEAgLTE0OTkzLDYgKzE0OTkzLDcgQEAgX19a
TjdXZWJDb3JlOERvY3VtZW50MTZjcmVhdGVUcmVlV2Fsa2VyRVBOU180Tm9kZUVqTjNXVEYxMFBh
c3NSZWZQdHJJTlNfMTBOb2RlRmkKIF9fWk43V2ViQ29yZTEwVHJlZVdhbGtlcjZjcmVhdGVFTjNX
VEYxMFBhc3NSZWZQdHJJTlNfNE5vZGVFRUVqTlMyX0lOU18xME5vZGVGaWx0ZXJFRUViCiBfX1pO
N1dlYkNvcmUxMFRyZWVXYWxrZXJDMUVOM1dURjEwUGFzc1JlZlB0cklOU180Tm9kZUVFRWpOUzJf
SU5TXzEwTm9kZUZpbHRlckVFRWIKIF9fWk43V2ViQ29yZTEwVHJlZVdhbGtlckMyRU4zV1RGMTBQ
YXNzUmVmUHRySU5TXzROb2RlRUVFak5TMl9JTlNfMTBOb2RlRmlsdGVyRUVFYgorX19aTjdXZWJD
b3JlMTBJbnB1dFByb3h5QzFFUk5TXzRQYWdlRQogX19aTjdXZWJDb3JlOVRyYXZlcnNhbEMyRU4z
V1RGMTBQYXNzUmVmUHRySU5TXzROb2RlRUVFak5TMl9JTlNfMTBOb2RlRmlsdGVyRUVFYgogX19a
TjdXZWJDb3JlNHRvSlNFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQ
TlNfMTBUcmVlV2Fsa2VyRQogX19aTjdXZWJDb3JlMTVnZXRET01TdHJ1Y3R1cmVJTlNfMTJKU1Ry
ZWVXYWxrZXJFRUVQTjNKU0M5U3RydWN0dXJlRVBOUzJfOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUds
b2JhbE9iamVjdEUKQEAgLTMwODc4LDQgKzMwODc5LDMgQEAgX19aTjdXZWJDb3JlTDE5Z1Byb3Bl
cnR5V3JhcHBlck1hcEUKIF9fWk43V2ViQ29yZUwxMmdGdW5jdGlvbk1hcEUKIF9fWk43V2ViQ29y
ZUwxMmdGdW5jdGlvbk1hcEUKIF9fWk43V2ViQ29yZTZFZGl0b3IyNnRvZ2dsZU92ZXJ3cml0ZU1v
ZGVFbmFibGVkRXYKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2oKaW5kZXggYWQ1ZjE0NThmODU0NzJhZWYwOTFmZWNkZTEwYTRmYzBhYzQzMTQ2ZC4u
MzFmYzE1NTJiOGZmZDUxYTFkMDFkMjkxMTNiODQxMWIzZmYzM2NkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0xMTkwNCw2ICsxMTkw
NCw3IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVwbGF5
XFVzZXJJbnB1dEJyaWRnZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3b3Jr
ZXJzXFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ceG1sXERPTVBhcnNlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx4
bWxcTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmNwcCIgLz4KQEAgLTE5OTE5LDYgKzE5OTIwLDcgQEAK
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdmdcU1ZHVGV4dE1ldHJpY3NC
dWlsZGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3ZnXFNW
R1RleHRRdWVyeS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN2
Z1xTVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccmVwbGF5XFVzZXJJbnB1dEJyaWRnZS5oIiAvPiAgIAogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5ceG1sXERPTVBhcnNlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
eG1sXE5hdGl2ZVhQYXRoTlNSZXNvbHZlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5ceG1sXFhNTEVycm9ycy5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IGM1NWYwMjcyOTBhMGQ1Yjcz
YTY1Yzg5NjNhMjg2OTYwNzI3MWRhOWUuLmJiMjI1NWRmNmZjZDgxNDk2NTc1NzMxZWZiOTY5NTdl
ODNhMjc5OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTE5Myw2ICsxOTMsOSBAQAogICAgIDxGaWx0ZXIg
SW5jbHVkZT0icmVuZGVyaW5nXHN2ZyI+CiAgICAgICA8VW5pcXVlSWRlbnRpZmllcj57NzZkNDk2
MGEtNTljMS00MmRlLWJjMzctY2Y0ZGJhMDFiN2EzfTwvVW5pcXVlSWRlbnRpZmllcj4KICAgICA8
L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9InJlcGxheSI+CisgICAgICA8VW5pcXVlSWRl
bnRpZmllcj57MWZhYzI5ODAtZWFhNC00MjQ1LTgwNzMtOTBiNTU0NzU0NzlmfTwvVW5pcXVlSWRl
bnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KICAgICA8RmlsdGVyIEluY2x1ZGU9InhtbCI+CiAgICAg
ICA8VW5pcXVlSWRlbnRpZmllcj57N2JmOTUyNDMtYmI1MS00OWEwLThlNGYtMTczMjQyZTVmYzRl
fTwvVW5pcXVlSWRlbnRpZmllcj4KICAgICA8L0ZpbHRlcj4KQEAgLTI5MTAsNiArMjkxMyw5IEBA
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcVGV4dFBhaW50ZXIuY3BwIj4K
ICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZXBsYXlcVXNlcklucHV0QnJpZGdlLmNwcCI+CisgICAg
ICA8RmlsdGVyPnJlcGxheTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5ceG1sXERPTVBhcnNlci5jcHAiPgogICAgICAgPEZpbHRlcj54bWw8L0Zp
bHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTk3OTEsNiArOTc5Nyw5IEBACiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3ZnXFNWR1RleHRSdW5SZW5kZXJpbmdDb250ZXh0
LmgiPgogICAgICAgPEZpbHRlcj5yZW5kZXJpbmdcc3ZnPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1
ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZXBsYXlcVXNlcklucHV0QnJpZGdlLmgi
PgorICAgICAgPEZpbHRlcj54bWw8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHhtbFxET01QYXJzZXIuaCI+CiAgICAgICA8RmlsdGVyPnhtbDwv
RmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJmOGE2ZWRhZjk4OWZjZjRjMDYwMjUyMWIw
NzhkMzI3Zjk4YzcwYjQuLjY2NzhhNWU1YWRjYmRjNTA2Y2M4NmFiMjEwOTBkOTA4MTY4MzM0ZGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTM0ODgsNiArMzQ4OCw4IEBACiAJCTk4RUIxRjk1MTMxM0ZFMDUwMEQwRTFFQSAvKiBO
b3RJbXBsZW1lbnRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOThFQjFGOTQxMzEzRkUwNTAwRDBFMUVBIC8qIE5vdEltcGxlbWVudGVkLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTkwQTFBMDQxOEFE
QTQ4NDAwMTgzRkQxIC8qIFJlcGxheUlucHV0VHlwZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkwQTE5RjQxOEFEQTQ4NDAwMTgzRkQxIC8qIFJl
cGxheUlucHV0VHlwZXMuY3BwICovOyB9OwogCQk5OTBBMUEwNTE4QURBNDg0MDAxODNGRDEgLyog
UmVwbGF5SW5wdXRUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTkwQTE5RjUxOEFEQTQ4NDAwMTgzRkQxIC8qIFJlcGxheUlucHV0VHlwZXMuaCAq
LzsgfTsKKwkJOTkyMDM5ODIxOEI5NUJDNjAwQjM5QUY5IC8qIFVzZXJJbnB1dEJyaWRnZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTIwMzk4MDE4
Qjk1QkM2MDBCMzlBRjkgLyogVXNlcklucHV0QnJpZGdlLmNwcCAqLzsgfTsKKwkJOTkyMDM5ODMx
OEI5NUJDNjAwQjM5QUY5IC8qIFVzZXJJbnB1dEJyaWRnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkyMDM5ODExOEI5NUJDNjAwQjM5QUY5IC8qIFVz
ZXJJbnB1dEJyaWRnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTk5RTQ1QTE3MThBMDYzQkUwMDI2RDg4RiAvKiBFdmVudExvb3BJbnB1dC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlFNDVBMTYxOEEw
NjNCRTAwMjZEODhGIC8qIEV2ZW50TG9vcElucHV0LmggKi87IH07CiAJCTlBMTE0MjA0MTgzMkQx
MzUwMDBCQjhBRCAvKiBWYWx1ZVRvU3RyaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5QTExNDIwMzE4MzJEMTM0MDAwQkI4QUQgLyogVmFsdWVUb1N0
cmluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTlBMUI2Rjk3MTU4ODY5QzgwMDExQThDNCAvKiBKU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUExQjZGOTYxNTg4
NjlDODAwMTFBOEM0IC8qIEpTRE9NU3RyaW5nTGlzdEN1c3RvbS5jcHAgKi87IH07CkBAIC0xMDQ0
Nyw2ICsxMDQ0OSw4IEBACiAJCTk4RUIxRjk0MTMxM0ZFMDUwMEQwRTFFQSAvKiBOb3RJbXBsZW1l
bnRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOb3RJbXBsZW1lbnRlZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTBBMTlGNDE4QURBNDg0MDAxODNGRDEg
LyogUmVwbGF5SW5wdXRUeXBlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZXBsYXlJbnB1dFR5cGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTkwQTE5RjUxOEFEQTQ4NDAwMTgzRkQxIC8qIFJlcGxheUlucHV0VHlwZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGF5SW5wdXRUeXBlcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5OTIwMzk4MDE4Qjk1QkM2MDBCMzlBRjkgLyogVXNlcklucHV0QnJp
ZGdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJJbnB1dEJy
aWRnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5MjAzOTgxMThCOTVCQzYw
MEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVXNlcklucHV0QnJpZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5
RTQ1QTE2MThBMDYzQkUwMDI2RDg4RiAvKiBFdmVudExvb3BJbnB1dC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudExvb3BJbnB1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5QTExNDIwMzE4MzJEMTM0MDAwQkI4QUQgLyogVmFsdWVUb1N0cmluZy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWYWx1ZVRvU3RyaW5nLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlBMUI2Rjk2MTU4ODY5QzgwMDExQThDNCAvKiBKU0RPTVN0
cmluZ0xpc3RDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNET01TdHJpbmdMaXN0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE3ODUzLDYgKzE3ODU3LDggQEAKIAkJCQk5OUU0NUExNjE4QTA2M0JFMDAyNkQ4OEYgLyogRXZl
bnRMb29wSW5wdXQuaCAqLywKIAkJCQk5OTBBMTlGNDE4QURBNDg0MDAxODNGRDEgLyogUmVwbGF5
SW5wdXRUeXBlcy5jcHAgKi8sCiAJCQkJOTkwQTE5RjUxOEFEQTQ4NDAwMTgzRkQxIC8qIFJlcGxh
eUlucHV0VHlwZXMuaCAqLywKKwkJCQk5OTIwMzk4MDE4Qjk1QkM2MDBCMzlBRjkgLyogVXNlcklu
cHV0QnJpZGdlLmNwcCAqLywKKwkJCQk5OTIwMzk4MTE4Qjk1QkM2MDBCMzlBRjkgLyogVXNlcklu
cHV0QnJpZGdlLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHJlcGxheTsKIAkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CkBAIC0yMzc3NSw2ICsyMzc4MSw3IEBACiAJCQkJOTc3QjM4NjcxMjI4ODNF
OTAwQjgxRkY4IC8qIEhUTUxEb2N1bWVudFBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMz
MDlERTgwOTlFNjQ5MjAwNTZFNTgxIC8qIGh0bWxlZGl0aW5nLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5M0YxOThFNjA4MjQ1RTU5MDAxRTlBQkMgLyogSFRNTEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCTk5MjAzOTgzMThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUExN0M4MTIzMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZh
Y3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0IzNzI0MTIyODcyMTcwMEI4MUZGOCAvKiBI
VE1MRWxlbWVudFN0YWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODcxRDQ1QzBBMTI3Q0JDMDBC
MTJBNjggLyogSFRNTEVtYmVkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODI0Nyw2ICsy
ODI1NCw3IEBACiAJCQkJMDcwMzYzRTMxODFBMUNEQzAwQzA3NEE1IC8qIEFWQ2FwdHVyZURldmlj
ZU1hbmFnZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk3MUUyMTgzQjE3MzU5RkI4MDA2RTZFNEQg
LyogUGx1Z0luc1Jlc291cmNlc0RhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzZGRjE3RTMx
MTIzNTY3MzAwMUQ2MUI1IC8qIFBsdWdpblZpZXdOb25lLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTk5MjAzOTgyMThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQjJCMUY3MTYwRDAwQ0FBODAwNEFFQTY0IC8qIFBvaW50ZXJFdmVudHNIaXRS
dWxlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUUxMTU0NjEzMDE1QzRFMDA1NEFDOEMgLyog
UG9pbnRMaWdodFNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzA1OTk3NzEwN0Q5NzUy
MDBBNTBBN0MgLyogUG9saWN5Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAppbmRleCAyMTc5NWFiYjc5MDUxYmRkZDAxODJhNjUwMzY4NzdhNzA4OTQ4MzllLi4yNmNj
N2Q4ODdjYWEwMzIzMzJmM2NlMjc3YTUwYWY4MDE0ZGQ0YjFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
QEAgLTgzLDYgKzgzLDcgQEAKICNpbmNsdWRlICJTdWJmcmFtZUxvYWRlci5oIgogI2luY2x1ZGUg
IlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJVc2VyQ29udGVudENvbnRyb2xsZXIu
aCIKKyNpbmNsdWRlICJVc2VySW5wdXRCcmlkZ2UuaCIKICNpbmNsdWRlICJWaXNpdGVkTGlua1N0
YXRlLmgiCiAjaW5jbHVkZSAiVm9pZENhbGxiYWNrLmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCkBA
IC0xMjYsNiArMTI3LDcgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAj
aWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgLCBtX2NvbnRleHRNZW51Q29udHJvbGxlcihz
dGQ6Om1ha2VfdW5pcXVlPENvbnRleHRNZW51Q29udHJvbGxlcj4oKnRoaXMsICpwYWdlQ2xpZW50
cy5jb250ZXh0TWVudUNsaWVudCkpCiAjZW5kaWYKKyAgICAsIG1fdXNlcklucHV0QnJpZGdlKHN0
ZDo6bWFrZV91bmlxdWU8VXNlcklucHV0QnJpZGdlPigqdGhpcykpCiAjaWYgRU5BQkxFKElOU1BF
Q1RPUikKICAgICAsIG1faW5zcGVjdG9yQ29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPEluc3Bl
Y3RvckNvbnRyb2xsZXI+KCp0aGlzLCBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQpKQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCmluZGV4IGE3MTVmZWZkNmRjZDJhZjNjZTg0YjU1ZGY3M2ZmYTM0OTM3
YzczZjAuLjg0ODkyMDk5MzY4YzRjNWQ0MTRjZjhiOGMxN2U4ZGE4NTNmZDdmMmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCkBAIC03OSw2ICs3OSw3IEBAIGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50OwogY2xhc3Mg
RnJhbWVTZWxlY3Rpb247CiBjbGFzcyBIYWx0YWJsZVBsdWdpbjsKIGNsYXNzIEhpc3RvcnlJdGVt
OworY2xhc3MgVXNlcklucHV0QnJpZGdlOwogY2xhc3MgSW5zcGVjdG9yQ2xpZW50OwogY2xhc3Mg
SW5zcGVjdG9yQ29udHJvbGxlcjsKIGNsYXNzIE1haW5GcmFtZTsKQEAgLTE5NCw2ICsxOTUsNyBA
QCBwdWJsaWM6CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgQ29udGV4dE1lbnVDb250
cm9sbGVyJiBjb250ZXh0TWVudUNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiAqbV9jb250ZXh0
TWVudUNvbnRyb2xsZXI7IH0KICNlbmRpZgorICAgIFVzZXJJbnB1dEJyaWRnZSYgdXNlcklucHV0
QnJpZGdlKCkgY29uc3QgeyByZXR1cm4gKm1fdXNlcklucHV0QnJpZGdlOyB9CiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikKICAgICBJbnNwZWN0b3JDb250cm9sbGVyJiBpbnNwZWN0b3JDb250cm9sbGVy
KCkgY29uc3QgeyByZXR1cm4gKm1faW5zcGVjdG9yQ29udHJvbGxlcjsgfQogI2VuZGlmCkBAIC00
MzcsNiArNDM5LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICBj
b25zdCBzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnVDb250cm9sbGVyPiBtX2NvbnRleHRNZW51
Q29udHJvbGxlcjsKICNlbmRpZgorICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxVc2VySW5wdXRC
cmlkZ2U+IG1fdXNlcklucHV0QnJpZGdlOwogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgY29u
c3Qgc3RkOjp1bmlxdWVfcHRyPEluc3BlY3RvckNvbnRyb2xsZXI+IG1faW5zcGVjdG9yQ29udHJv
bGxlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1VzZXJJbnB1
dEJyaWRnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvVXNlcklucHV0QnJpZGdlLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mZGIzM2U0ZWIzNDUyNjdkOTIwYTBkMTQzMWZmMDhiMzNlNjcxNjY1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1VzZXJJbnB1dEJyaWRnZS5jcHAK
QEAgLTAsMCArMSwxNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVW5pdmVyc2l0eSBv
ZiBXYXNoaW5ndG9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTICJBUworICogSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVECisgKiBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEKKyAqIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlcklucHV0QnJpZGdlLmgi
CisKKyNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKKyNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIu
aCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKKyNp
bmNsdWRlICJNYWluRnJhbWUuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCisjaW5j
bHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVXNl
cklucHV0QnJpZGdlOjpVc2VySW5wdXRCcmlkZ2UoUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShw
YWdlKQoreworfQorCitib29sIFVzZXJJbnB1dEJyaWRnZTo6aGFuZGxlQ29udGV4dE1lbnVFdmVu
dChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQsIGNvbnN0IEZyYW1lKiBmcmFt
ZSwgYm9vbCBmcm9tUmVwbGF5KQoreworICAgIFVOVVNFRF9QQVJBTShmcm9tUmVwbGF5KTsKKyAg
ICByZXR1cm4gZnJhbWUtPmV2ZW50SGFuZGxlcigpLnNlbmRDb250ZXh0TWVudUV2ZW50KG1vdXNl
RXZlbnQpOworfQorCitib29sIFVzZXJJbnB1dEJyaWRnZTo6aGFuZGxlTW91c2VQcmVzc0V2ZW50
KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgbW91c2VFdmVudCwgYm9vbCBmcm9tUmVwbGF5KQor
eworICAgIFVOVVNFRF9QQVJBTShmcm9tUmVwbGF5KTsKKyAgICByZXR1cm4gbV9wYWdlLm1haW5G
cmFtZSgpLmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChtb3VzZUV2ZW50KTsK
K30KKworYm9vbCBVc2VySW5wdXRCcmlkZ2U6OmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYgbW91c2VFdmVudCwgYm9vbCBmcm9tUmVwbGF5KQoreworICAg
IFVOVVNFRF9QQVJBTShmcm9tUmVwbGF5KTsKKyAgICByZXR1cm4gbV9wYWdlLm1haW5GcmFtZSgp
LmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KG1vdXNlRXZlbnQpOworfQor
Citib29sIFVzZXJJbnB1dEJyaWRnZTo6aGFuZGxlTW91c2VNb3ZlRXZlbnQoY29uc3QgUGxhdGZv
cm1Nb3VzZUV2ZW50JiBtb3VzZUV2ZW50LCBib29sIGZyb21SZXBsYXkpCit7CisgICAgVU5VU0VE
X1BBUkFNKGZyb21SZXBsYXkpOworICAgIHJldHVybiBtX3BhZ2UubWFpbkZyYW1lKCkuZXZlbnRI
YW5kbGVyKCkubW91c2VNb3ZlZChtb3VzZUV2ZW50KTsKK30KKworYm9vbCBVc2VySW5wdXRCcmlk
Z2U6OmhhbmRsZU1vdXNlTW92ZU9uU2Nyb2xsYmFyRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50JiBtb3VzZUV2ZW50LCBib29sIGZyb21SZXBsYXkpCit7CisgICAgVU5VU0VEX1BBUkFNKGZy
b21SZXBsYXkpOworICAgIHJldHVybiBtX3BhZ2UubWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCku
cGFzc01vdXNlTW92ZWRFdmVudFRvU2Nyb2xsYmFycyhtb3VzZUV2ZW50KTsKK30KKworYm9vbCBV
c2VySW5wdXRCcmlkZ2U6OmhhbmRsZUtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVu
dCYga2V5RXZlbnQsIGJvb2wgZnJvbVJlcGxheSkKK3sKKyAgICBVTlVTRURfUEFSQU0oZnJvbVJl
cGxheSk7CisgICAgcmV0dXJuIG1fcGFnZS5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWlu
RnJhbWUoKS5ldmVudEhhbmRsZXIoKS5rZXlFdmVudChrZXlFdmVudCk7Cit9CisKK2Jvb2wgVXNl
cklucHV0QnJpZGdlOjpoYW5kbGVBY2Nlc3NLZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJk
RXZlbnQmIGtleUV2ZW50LCBib29sIGZyb21SZXBsYXkpCit7CisgICAgVU5VU0VEX1BBUkFNKGZy
b21SZXBsYXkpOworICAgIHJldHVybiBtX3BhZ2UuZm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9y
TWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuaGFuZGxlQWNjZXNzS2V5KGtleUV2ZW50KTsKK30K
KworYm9vbCBVc2VySW5wdXRCcmlkZ2U6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBib29sIGZyb21SZXBsYXkpCit7CisgICAgVU5VU0VEX1BB
UkFNKGZyb21SZXBsYXkpOworICAgIHJldHVybiBtX3BhZ2UubWFpbkZyYW1lKCkuZXZlbnRIYW5k
bGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKK30KKwordm9pZCBVc2VySW5wdXRC
cmlkZ2U6OmZvY3VzU2V0QWN0aXZlKGJvb2wgYWN0aXZlLCBib29sIGZyb21SZXBsYXkpCit7Cisg
ICAgVU5VU0VEX1BBUkFNKGZyb21SZXBsYXkpOworICAgIG1fcGFnZS5mb2N1c0NvbnRyb2xsZXIo
KS5zZXRBY3RpdmUoYWN0aXZlKTsKK30KKwordm9pZCBVc2VySW5wdXRCcmlkZ2U6OmZvY3VzU2V0
Rm9jdXNlZChib29sIGZvY3VzZWQsIGJvb2wgZnJvbVJlcGxheSkKK3sKKyAgICBVTlVTRURfUEFS
QU0oZnJvbVJlcGxheSk7CisgICAgbV9wYWdlLmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWQo
Zm9jdXNlZCk7Cit9CisKK2Jvb2wgVXNlcklucHV0QnJpZGdlOjpzY3JvbGxSZWN1cnNpdmVseShT
Y3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSwg
Ym9vbCBmcm9tUmVwbGF5KQoreworICAgIFVOVVNFRF9QQVJBTShmcm9tUmVwbGF5KTsKKyAgICBy
ZXR1cm4gbV9wYWdlLmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpLmV2ZW50
SGFuZGxlcigpLnNjcm9sbFJlY3Vyc2l2ZWx5KGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHksIG51bGxw
dHIpOworfQorCitib29sIFVzZXJJbnB1dEJyaWRnZTo6bG9naWNhbFNjcm9sbFJlY3Vyc2l2ZWx5
KFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24gZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFu
dWxhcml0eSwgYm9vbCBmcm9tUmVwbGF5KQoreworICAgIFVOVVNFRF9QQVJBTShmcm9tUmVwbGF5
KTsKKyAgICByZXR1cm4gbV9wYWdlLmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFt
ZSgpLmV2ZW50SGFuZGxlcigpLmxvZ2ljYWxTY3JvbGxSZWN1cnNpdmVseShkaXJlY3Rpb24sIGdy
YW51bGFyaXR5LCBudWxscHRyKTsKK30KKwordm9pZCBVc2VySW5wdXRCcmlkZ2U6OmxvYWRSZXF1
ZXN0KGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgZnJvbVJlcGxheSkKK3sK
KyAgICBVTlVTRURfUEFSQU0oZnJvbVJlcGxheSk7CisgICAgbV9wYWdlLm1haW5GcmFtZSgpLmxv
YWRlcigpLmxvYWQocmVxdWVzdCk7Cit9CisKK3ZvaWQgVXNlcklucHV0QnJpZGdlOjpyZWxvYWRG
cmFtZShGcmFtZSogZnJhbWUsIGJvb2wgZW5kVG9FbmRSZWxvYWQsIGJvb2wgZnJvbVJlcGxheSkK
K3sKKyAgICBVTlVTRURfUEFSQU0oZnJvbVJlcGxheSk7CisgICAgZnJhbWUtPmxvYWRlcigpLnJl
bG9hZChlbmRUb0VuZFJlbG9hZCk7Cit9CisKK3ZvaWQgVXNlcklucHV0QnJpZGdlOjpzdG9wTG9h
ZGluZ0ZyYW1lKEZyYW1lKiBmcmFtZSwgYm9vbCBmcm9tUmVwbGF5KQoreworICAgIFVOVVNFRF9Q
QVJBTShmcm9tUmVwbGF5KTsKKyAgICBmcmFtZS0+bG9hZGVyKCkuc3RvcEZvclVzZXJDYW5jZWwo
KTsKK30KKworYm9vbCBVc2VySW5wdXRCcmlkZ2U6OnRyeUNsb3NlUGFnZShib29sIGZyb21SZXBs
YXkpCit7CisgICAgVU5VU0VEX1BBUkFNKGZyb21SZXBsYXkpOworICAgIHJldHVybiBtX3BhZ2Uu
bWFpbkZyYW1lKCkubG9hZGVyKCkuc2hvdWxkQ2xvc2UoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1VzZXJJbnB1dEJyaWRn
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1VzZXJJbnB1dEJyaWRnZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY4NTgzNGI5MDhhY2ZkZTMxYWExZmY0YWYyNTU4MDRhMmNkNmFjNWUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvVXNlcklucHV0QnJpZGdlLmgKQEAgLTAsMCArMSw3
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBVbml2ZXJzaXR5IG9mIFdhc2hp
bmd0b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMgIkFTCisgKiBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQKKyAqIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQQorICogUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBI
T0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgVXNlcklucHV0QnJpZGdlX2gKKyNkZWZpbmUgVXNlcklucHV0QnJpZGdlX2gKKwor
I2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEZyYW1lTG9hZFJlcXVlc3Q7CisKK2NsYXNz
IEZyYW1lOworY2xhc3MgUGFnZTsKK2NsYXNzIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDsKK2NsYXNz
IFBsYXRmb3JtTW91c2VFdmVudDsKK2NsYXNzIFBsYXRmb3JtV2hlZWxFdmVudDsKKworY2xhc3Mg
VXNlcklucHV0QnJpZGdlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShVc2VySW5wdXRCcmlk
Z2UpOworcHVibGljOgorICAgIFVzZXJJbnB1dEJyaWRnZShQYWdlJik7CisKKyAgICAvLyBVc2Vy
IGlucHV0IEFQSXMuCisgICAgYm9vbCBoYW5kbGVDb250ZXh0TWVudUV2ZW50KGNvbnN0IFBsYXRm
b3JtTW91c2VFdmVudCYsIGNvbnN0IEZyYW1lKiwgYm9vbCBmcm9tUmVwbGF5ID0gZmFsc2UpOwor
ICAgIGJvb2wgaGFuZGxlTW91c2VQcmVzc0V2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYs
IGJvb2wgZnJvbVJlcGxheSA9IGZhbHNlKTsKKyAgICBib29sIGhhbmRsZU1vdXNlUmVsZWFzZUV2
ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIGJvb2wgZnJvbVJlcGxheSA9IGZhbHNlKTsK
KyAgICBib29sIGhhbmRsZU1vdXNlTW92ZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYs
IGJvb2wgZnJvbVJlcGxheSA9IGZhbHNlKTsKKyAgICBib29sIGhhbmRsZU1vdXNlTW92ZU9uU2Ny
b2xsYmFyRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgYm9vbCBmcm9tUmVwbGF5ID0g
ZmFsc2UpOworICAgIGJvb2wgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmLCBib29sIGZyb21SZXBsYXkgPSBmYWxzZSk7CisgICAgYm9vbCBoYW5kbGVLZXlFdmVudChj
b25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmLCBib29sIGZyb21SZXBsYXkgPSBmYWxzZSk7Cisg
ICAgYm9vbCBoYW5kbGVBY2Nlc3NLZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQm
LCBib29sIGZyb21SZXBsYXkgPSBmYWxzZSk7CisgICAgdm9pZCBmb2N1c1NldEFjdGl2ZShib29s
IGFjdGl2ZSwgYm9vbCBmcm9tUmVwbGF5ID0gZmFsc2UpOworICAgIHZvaWQgZm9jdXNTZXRGb2N1
c2VkKGJvb2wgZm9jdXNlZCwgYm9vbCBmcm9tUmVwbGF5ID0gZmFsc2UpOworICAgIGJvb2wgc2Ny
b2xsUmVjdXJzaXZlbHkoU2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgYm9vbCBm
cm9tUmVwbGF5ID0gZmFsc2UpOworICAgIGJvb2wgbG9naWNhbFNjcm9sbFJlY3Vyc2l2ZWx5KFNj
cm9sbExvZ2ljYWxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBib29sIGZyb21SZXBsYXkg
PSBmYWxzZSk7CisKKyAgICAvLyBOYXZpZ2F0aW9uIEFQSXMuCisgICAgdm9pZCBsb2FkUmVxdWVz
dChjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgYm9vbCBmcm9tUmVwbGF5ID0gZmFsc2UpOworICAg
IHZvaWQgcmVsb2FkRnJhbWUoRnJhbWUqLCBib29sIGVuZFRvRW5kUmVsb2FkLCBib29sIGZyb21S
ZXBsYXkgPSBmYWxzZSk7CisgICAgdm9pZCBzdG9wTG9hZGluZ0ZyYW1lKEZyYW1lKiwgYm9vbCBm
cm9tUmVwbGF5ID0gZmFsc2UpOworICAgIGJvb2wgdHJ5Q2xvc2VQYWdlKGJvb2wgZnJvbVJlcGxh
eSA9IGZhbHNlKTsKKworcHJpdmF0ZToKKyAgICBQYWdlJiBtX3BhZ2U7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBVc2VySW5wdXRCcmlkZ2VfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDVmZTMwMzkwZWUw
YTBiZTIzNmNkNmIzNmE5NzkzOTQ2Njk2NjkyMGQuLmVkOGI3N2NkN2Q3NjNkMWQyZTljNGU3MWIz
MzQxYWY0YTk5ODIxZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTEzOSw2ICsxMzksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU3ViZnJh
bWVMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YnN0aXR1dGVEYXRhLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9UZXh0SXRlcmF0b3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJJbnB1dEJy
aWRnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlzaWJsZVBvc2l0aW9uLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9WaXNpYmxlVW5pdHMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL21hcmt1cC5oPgpAQCAt
ODg3LDcgKzg4OCw3IEBAIHZvaWQgV2ViUGFnZTo6dHJ5Q2xvc2UoKQogewogICAgIFNlbmRTdG9w
UmVzcG9uc2l2ZW5lc3NUaW1lciBzdG9wcGVyKHRoaXMpOwogCi0gICAgaWYgKCFtX21haW5GcmFt
ZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLnNob3VsZENsb3NlKCkpIHsKKyAgICBpZiAoIWNvcmVQ
YWdlKCktPnVzZXJJbnB1dEJyaWRnZSgpLnRyeUNsb3NlUGFnZSgpKSB7CiAgICAgICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RvcFJlc3BvbnNpdmVuZXNzVGltZXIoKSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CkBAIC05MjgsNyArOTI5LDcgQEAgdm9pZCBXZWJQYWdlOjpsb2Fk
UmVxdWVzdCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwKICAgICBtX2xvYWRlckNsaWVudC53aWxsTG9hZFVSTFJlcXVlc3QodGhpcywgcmVxdWVz
dCwgdXNlckRhdGEuZ2V0KCkpOwogCiAgICAgLy8gSW5pdGF0ZSB0aGUgbG9hZCBpbiBXZWJDb3Jl
LgotICAgIG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkubG9hZChGcmFtZUxvYWRS
ZXF1ZXN0KG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKSwgcmVxdWVzdCkpOworICAgIGNvcmVQYWdl
KCktPnVzZXJJbnB1dEJyaWRnZSgpLmxvYWRSZXF1ZXN0KEZyYW1lTG9hZFJlcXVlc3QobV9tYWlu
RnJhbWUtPmNvcmVGcmFtZSgpLCByZXF1ZXN0KSk7CiAKICAgICBBU1NFUlQoIW1fcGVuZGluZ05h
dmlnYXRpb25JRCk7CiB9CkBAIC0xMDAxLDE0ICsxMDAyLDE0IEBAIHZvaWQgV2ViUGFnZTo6c3Rv
cExvYWRpbmdGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQogICAgIGlmICghZnJhbWUpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkuc3RvcEZvclVzZXJD
YW5jZWwoKTsKKyAgICBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5zdG9wTG9hZGluZ0Zy
YW1lKGZyYW1lLT5jb3JlRnJhbWUoKSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6c3RvcExvYWRpbmco
KQogewogICAgIFNlbmRTdG9wUmVzcG9uc2l2ZW5lc3NUaW1lciBzdG9wcGVyKHRoaXMpOwogCi0g
ICAgbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5zdG9wRm9yVXNlckNhbmNlbCgp
OworICAgIGNvcmVQYWdlKCktPnVzZXJJbnB1dEJyaWRnZSgpLnN0b3BMb2FkaW5nRnJhbWUobV9t
YWluRnJhbWUtPmNvcmVGcmFtZSgpKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzZXREZWZlcnNMb2Fk
aW5nKGJvb2wgZGVmZXJzTG9hZGluZykKQEAgLTEwMjQsNyArMTAyNSw3IEBAIHZvaWQgV2ViUGFn
ZTo6cmVsb2FkKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgYm9vbCByZWxvYWRGcm9tT3JpZ2luLCBj
b25zdCBTYW5kYm94CiAgICAgbV9wZW5kaW5nTmF2aWdhdGlvbklEID0gbmF2aWdhdGlvbklEOwog
CiAgICAgbV9zYW5kYm94RXh0ZW5zaW9uVHJhY2tlci5iZWdpbkxvYWQobV9tYWluRnJhbWUuZ2V0
KCksIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpOwotICAgIG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUo
KS0+bG9hZGVyKCkucmVsb2FkKHJlbG9hZEZyb21PcmlnaW4pOworICAgIGNvcmVQYWdlKCktPnVz
ZXJJbnB1dEJyaWRnZSgpLnJlbG9hZEZyYW1lKG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKSwgcmVs
b2FkRnJvbU9yaWdpbik7CiB9CiAKIHZvaWQgV2ViUGFnZTo6Z29Gb3J3YXJkKHVpbnQ2NF90IGJh
Y2tGb3J3YXJkSXRlbUlEKQpAQCAtMTU3Miw3ICsxNTczLDcgQEAgV2ViQ29udGV4dE1lbnUqIFdl
YlBhZ2U6OmNvbnRleHRNZW51QXRQb2ludEluV2luZG93KGNvbnN0IEludFBvaW50JiBwb2ludCkK
ICAgICAKICAgICAvLyBTaW11bGF0ZSBhIG1vdXNlIGNsaWNrIHRvIGdlbmVyYXRlIHRoZSBjb3Jy
ZWN0IG1lbnUuCiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQocG9pbnQsIHBvaW50
LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSk7Ci0gICAgYm9vbCBoYW5kbGVkID0gY29y
ZVBhZ2UoKS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuc2VuZENvbnRleHRNZW51RXZlbnQo
bW91c2VFdmVudCk7CisgICAgYm9vbCBoYW5kbGVkID0gY29yZVBhZ2UoKS0+dXNlcklucHV0QnJp
ZGdlKCkuaGFuZGxlQ29udGV4dE1lbnVFdmVudChtb3VzZUV2ZW50LCAmY29yZVBhZ2UoKS0+bWFp
bkZyYW1lKCkpOwogICAgIGlmICghaGFuZGxlZCkKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTE2
MzIsOCArMTYzMyw4IEBAIHN0YXRpYyBib29sIGhhbmRsZUNvbnRleHRNZW51RXZlbnQoY29uc3Qg
UGxhdGZvcm1Nb3VzZUV2ZW50JiBwbGF0Zm9ybU1vdXNlRXZlbnQsCiAgICAgRnJhbWUqIGZyYW1l
ID0gJnBhZ2UtPmNvcmVQYWdlKCktPm1haW5GcmFtZSgpOwogICAgIGlmIChyZXN1bHQuaW5uZXJO
b25TaGFyZWROb2RlKCkpCiAgICAgICAgIGZyYW1lID0gcmVzdWx0LmlubmVyTm9uU2hhcmVkTm9k
ZSgpLT5kb2N1bWVudCgpLmZyYW1lKCk7Ci0gICAgCi0gICAgYm9vbCBoYW5kbGVkID0gZnJhbWUt
PmV2ZW50SGFuZGxlcigpLnNlbmRDb250ZXh0TWVudUV2ZW50KHBsYXRmb3JtTW91c2VFdmVudCk7
CisKKyAgICBib29sIGhhbmRsZWQgPSBwYWdlLT5jb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2Uo
KS5oYW5kbGVDb250ZXh0TWVudUV2ZW50KHBsYXRmb3JtTW91c2VFdmVudCwgZnJhbWUpOwogICAg
IGlmIChoYW5kbGVkKQogICAgICAgICBwYWdlLT5jb250ZXh0TWVudSgpLT5zaG93KCk7CiAKQEAg
LTE2NTYsNyArMTY1Nyw3IEBAIHN0YXRpYyBib29sIGhhbmRsZU1vdXNlRXZlbnQoY29uc3QgV2Vi
TW91c2VFdmVudCYgbW91c2VFdmVudCwgV2ViUGFnZSogcGFnZSwgYm9vCiAgICAgICAgICAgICAg
ICAgcGFnZS0+Y29yZVBhZ2UoKS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuY2xlYXJDb250ZXh0
TWVudSgpOwogI2VuZGlmCiAKLSAgICAgICAgICAgIGJvb2wgaGFuZGxlZCA9IGZyYW1lLmV2ZW50
SGFuZGxlcigpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChwbGF0Zm9ybU1vdXNlRXZlbnQpOworICAg
ICAgICAgICAgYm9vbCBoYW5kbGVkID0gcGFnZS0+Y29yZVBhZ2UoKS0+dXNlcklucHV0QnJpZGdl
KCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50KHBsYXRmb3JtTW91c2VFdmVudCk7CiAjaWYgRU5BQkxF
KENPTlRFWFRfTUVOVVMpCiAgICAgICAgICAgICBpZiAoaXNDb250ZXh0Q2xpY2socGxhdGZvcm1N
b3VzZUV2ZW50KSkKICAgICAgICAgICAgICAgICBoYW5kbGVkID0gaGFuZGxlQ29udGV4dE1lbnVF
dmVudChwbGF0Zm9ybU1vdXNlRXZlbnQsIHBhZ2UpOwpAQCAtMTY2NCwxMiArMTY2NSwxMiBAQCBz
dGF0aWMgYm9vbCBoYW5kbGVNb3VzZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmIG1vdXNlRXZl
bnQsIFdlYlBhZ2UqIHBhZ2UsIGJvbwogICAgICAgICAgICAgcmV0dXJuIGhhbmRsZWQ7CiAgICAg
ICAgIH0KICAgICAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkOgotICAgICAg
ICAgICAgcmV0dXJuIGZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50
KHBsYXRmb3JtTW91c2VFdmVudCk7CisgICAgICAgICAgICByZXR1cm4gcGFnZS0+Y29yZVBhZ2Uo
KS0+dXNlcklucHV0QnJpZGdlKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQocGxhdGZvcm1Nb3Vz
ZUV2ZW50KTsKIAogICAgICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ6CiAgICAg
ICAgICAgICBpZiAob25seVVwZGF0ZVNjcm9sbGJhcnMpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IGZyYW1lLmV2ZW50SGFuZGxlcigpLnBhc3NNb3VzZU1vdmVkRXZlbnRUb1Njcm9sbGJhcnMocGxh
dGZvcm1Nb3VzZUV2ZW50KTsKLSAgICAgICAgICAgIHJldHVybiBmcmFtZS5ldmVudEhhbmRsZXIo
KS5tb3VzZU1vdmVkKHBsYXRmb3JtTW91c2VFdmVudCk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IHBhZ2UtPmNvcmVQYWdlKCktPnVzZXJJbnB1dEJyaWRnZSgpLmhhbmRsZU1vdXNlTW92ZU9uU2Ny
b2xsYmFyRXZlbnQocGxhdGZvcm1Nb3VzZUV2ZW50KTsKKyAgICAgICAgICAgIHJldHVybiBwYWdl
LT5jb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVNb3VzZU1vdmVFdmVudChwbGF0
Zm9ybU1vdXNlRXZlbnQpOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNzU1LDcgKzE3NTYs
NyBAQCBzdGF0aWMgYm9vbCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFdlYldoZWVsRXZlbnQmIHdo
ZWVsRXZlbnQsIFBhZ2UqIHBhZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFBsYXRm
b3JtV2hlZWxFdmVudCBwbGF0Zm9ybVdoZWVsRXZlbnQgPSBwbGF0Zm9ybSh3aGVlbEV2ZW50KTsK
LSAgICByZXR1cm4gZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVudChwbGF0Zm9y
bVdoZWVsRXZlbnQpOworICAgIHJldHVybiBwYWdlLT51c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVX
aGVlbEV2ZW50KHBsYXRmb3JtV2hlZWxFdmVudCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6d2hlZWxF
dmVudChjb25zdCBXZWJXaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQpAQCAtMTc4NSw4ICsxNzg2LDgg
QEAgc3RhdGljIGJvb2wgaGFuZGxlS2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYga2V5
Ym9hcmRFdmVudCwgUGFnZSogcGFnZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYg
KGtleWJvYXJkRXZlbnQudHlwZSgpID09IFdlYkV2ZW50OjpDaGFyICYmIGtleWJvYXJkRXZlbnQu
aXNTeXN0ZW1LZXkoKSkKLSAgICAgICAgcmV0dXJuIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZv
Y3VzZWRPck1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLmhhbmRsZUFjY2Vzc0tleShwbGF0Zm9y
bShrZXlib2FyZEV2ZW50KSk7Ci0gICAgcmV0dXJuIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZv
Y3VzZWRPck1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLmtleUV2ZW50KHBsYXRmb3JtKGtleWJv
YXJkRXZlbnQpKTsKKyAgICAgICAgcmV0dXJuIHBhZ2UtPnVzZXJJbnB1dEJyaWRnZSgpLmhhbmRs
ZUFjY2Vzc0tleUV2ZW50KHBsYXRmb3JtKGtleWJvYXJkRXZlbnQpKTsKKyAgICByZXR1cm4gcGFn
ZS0+dXNlcklucHV0QnJpZGdlKCkuaGFuZGxlS2V5RXZlbnQocGxhdGZvcm0oa2V5Ym9hcmRFdmVu
dCkpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmtleUV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQm
IGtleWJvYXJkRXZlbnQpCkBAIC0xOTI1LDEyICsxOTI2LDEyIEBAIHZvaWQgV2ViUGFnZTo6dG91
Y2hFdmVudFN5bmNGb3JUZXN0aW5nKGNvbnN0IFdlYlRvdWNoRXZlbnQmIHRvdWNoRXZlbnQsIGJv
b2wmIGhhCiAKIGJvb2wgV2ViUGFnZTo6c2Nyb2xsKFBhZ2UqIHBhZ2UsIFNjcm9sbERpcmVjdGlv
biBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewotICAgIHJldHVy
biBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKS5ldmVudEhhbmRs
ZXIoKS5zY3JvbGxSZWN1cnNpdmVseShkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKKyAgICByZXR1
cm4gcGFnZS0+dXNlcklucHV0QnJpZGdlKCkuc2Nyb2xsUmVjdXJzaXZlbHkoZGlyZWN0aW9uLCBn
cmFudWxhcml0eSk7CiB9CiAKIGJvb2wgV2ViUGFnZTo6bG9naWNhbFNjcm9sbChQYWdlKiBwYWdl
LCBTY3JvbGxMb2dpY2FsRGlyZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHkpCiB7Ci0gICAgcmV0dXJuIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRP
ck1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLmxvZ2ljYWxTY3JvbGxSZWN1cnNpdmVseShkaXJl
Y3Rpb24sIGdyYW51bGFyaXR5KTsKKyAgICByZXR1cm4gcGFnZS0+dXNlcklucHV0QnJpZGdlKCku
bG9naWNhbFNjcm9sbFJlY3Vyc2l2ZWx5KGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpOwogfQogCiBi
b29sIFdlYlBhZ2U6OnNjcm9sbEJ5KHVpbnQzMl90IHNjcm9sbERpcmVjdGlvbiwgdWludDMyX3Qg
c2Nyb2xsR3JhbnVsYXJpdHkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225075</attachid>
            <date>2014-02-24 11:08:08 -0800</date>
            <delta_ts>2014-02-24 11:39:57 -0800</delta_ts>
            <desc>try EWS again</desc>
            <filename>bug-128150-20140224110935.patch</filename>
            <type>text/plain</type>
            <size>34706</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0NTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmY0MTRjOWRlYzA4YThh
YThmZjM1MWYxMDA3YmNlZmFmM2U3ZWZjYy4uYzNmMDZlZjA5YTQ1MjU4MTQyODAwMGM3MzE3ZWU5
NmJhYjk3N2IyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE0LTAyLTI0ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBSZXBsYXk6IHJvdXRlIHRo
cm91Z2ggVXNlcklucHV0QnJpZGdlIHdoZW4gZGVsaXZlcmluZyB1c2VyIGlucHV0cyB0byBXZWJD
b3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgx
NTAKKworICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCisKKyAgICAgICAgQWRk
IGFuIFVzZXJJbnB1dEJyaWRnZSBpbnN0YW5jZSB0byBlYWNoIFBhZ2UuIFdlYktpdDIgcm91dGVz
IGEgcGFnZSdzIHVzZXIgaW5wdXRzIHRocm91Z2gKKyAgICAgICAgdGhlIFdlYkNvcmUgcGFnZSdz
IHVzZXIgaW5wdXQgYnJpZGdlIHNvIHRoYXQgdGhlIGlucHV0cyBjYW4gYmUgc2VsZWN0aXZlbHkg
Y2FwdHVyZWQsIGZpbHRlcmVkLAorICAgICAgICBhbmQgcmVwbGF5ZWQgdXNpbmcgaW5zdHJ1bWVu
dGF0aW9uIGluc2lkZSB0aGUgVXNlcklucHV0QnJpZGdlLgorCisgICAgICAgIEZvciBub3csIHRo
ZSByb3V0aW5nIG1ldGhvZHMgb2YgVXNlcklucHV0QnJpZGdlIGhhdmUgbm8gcmVwbGF5LXNwZWNp
ZmljIGNvZGUgcGF0aHMsIGFuZCBqdXN0CisgICAgICAgIHB1dCB0aGUgaW5wdXQgZGVsaXZlcnkg
Y29kZSBpbnNpZGUgV2ViQ29yZSByYXRoZXIgdGhhbiBpdHMgZXh0ZXJuYWwgY2xpZW50cy4gUmVw
bGF5LXNwZWNpZmljCisgICAgICAgIGNvZGUgcGF0aHMgd2lsbCBiZSBhZGRlZCBvbmNlIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg3ODIgaXMgZml4ZWQuIEhvd2V2
ZXIsCisgICAgICAgIG9uY2UgY29tcGxldGUgdGhlIGNvZGUgd2lsbCB3b3JrIGFzIGZvbGxvd3M6
CisKKyAgICAgICAgLSBXaGVuIG5laXRoZXIgY2FwdHVyaW5nIG9yIHJlcGxheWluZywgYmVoYXZp
b3IgaXMgdW5jaGFuZ2VkLgorCisgICAgICAgIC0gV2hlbiBjYXB0dXJpbmcgdXNlciBpbnB1dHMs
IGVhY2ggZXh0ZXJuYWwgaW5wdXQgaXMgc2F2ZWQgaW50byBhIHJlcGxheSBsb2cgYXMgaXQgY3Jv
c3NlcworICAgICAgICB0aGUgYnJpZGdlIGZyb20gb3V0c2lkZSBXZWJDb3JlLgorCisgICAgICAg
IC0gV2hlbiByZXBsYXlpbmcsIHRoZSBicmlkZ2UgY2xvc2VzIGFuZCB1c2VyIGlucHV0cyBmcm9t
IFdlYktpdDIgYXJlIG5vdCBhY2NlcHRlZC4gSW5zdGVhZCwKKyAgICAgICAgdGhlIHNhdmVkIGlu
cHV0cyBmcm9tIHRoZSByZXBsYXkgbG9nIGFyZSByZS1kaXNwYXRjaGVkIGFzIGlmIHRoZXkgaGFk
IGNyb3NzZWQgdGhlIGJyaWRnZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAg
ICAgICogV2ViQ29yZS5leHAuaW46IEFkZCBzeW1ib2xzIGZvciBpbnB1dCByb3V0aW5nIG1ldGhv
ZHMuCisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKTogSW5pdGlhbGl6ZSB0aGUgb3duZWQgVXNl
cklucHV0QnJpZGdlIGluIHRoZSBQYWdlIGNvbnN0cnVjdG9yLgorICAgICAgICAqIHBhZ2UvUGFn
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6aW5wdXRCcmlkZ2UpOiBBZGRlZCBhIGJ5LXJl
ZmVyZW5jZSBnZXR0ZXIuCisgICAgICAgICogcmVwbGF5L1VzZXJJbnB1dEJyaWRnZS5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6VXNlcklucHV0QnJpZGdlOjpVc2VySW5wdXRCcmlkZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6VXNlcklucHV0QnJpZGdlOjp+VXNlcklucHV0QnJpZGdlKToK
KyAgICAgICAgKFdlYkNvcmU6OlVzZXJJbnB1dEJyaWRnZTo6aGFuZGxlQ29udGV4dE1lbnVFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VySW5wdXRCcmlkZ2U6OmhhbmRsZU1vdXNlUHJlc3NF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VySW5wdXRCcmlkZ2U6OmhhbmRsZU1vdXNlUmVs
ZWFzZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJJbnB1dEJyaWRnZTo6aGFuZGxlTW91
c2VNb3ZlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6VXNlcklucHV0QnJpZGdlOjpoYW5kbGVN
b3VzZU1vdmVPblNjcm9sbGJhckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJJbnB1dEJy
aWRnZTo6aGFuZGxlS2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6VXNlcklucHV0QnJpZGdl
OjpoYW5kbGVBY2Nlc3NLZXlFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VySW5wdXRCcmlk
Z2U6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6VXNlcklucHV0QnJpZGdl
Ojpmb2N1c1NldEFjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpVc2VySW5wdXRCcmlkZ2U6OmZv
Y3VzU2V0Rm9jdXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VySW5wdXRCcmlkZ2U6OnNjcm9s
bFJlY3Vyc2l2ZWx5KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJJbnB1dEJyaWRnZTo6bG9naWNh
bFNjcm9sbFJlY3Vyc2l2ZWx5KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJJbnB1dEJyaWRnZTo6
bG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6VXNlcklucHV0QnJpZGdlOjpyZWxvYWRG
cmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpVc2VySW5wdXRCcmlkZ2U6OnN0b3BMb2FkaW5nRnJh
bWUpOgorICAgICAgICAoV2ViQ29yZTo6VXNlcklucHV0QnJpZGdlOjp0cnlDbG9zZVBhZ2UpOgor
ICAgICAgICAqIHJlcGxheS9Vc2VySW5wdXRCcmlkZ2UuaDogQWRkZWQuCisKIDIwMTQtMDItMjQg
IFRhbWFzIEdlcmdlbHkgIDx0Z2VyZ2VseS51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgog
CiAgICAgICAgIENvZGUgY2xlYW51cDogcmVtb3ZlIGxlZnRvdmVyIEVOQUJMRShXT1JLRVJTKSBt
YWNyb3MgYW5kIHN1cHBvcnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMGM4YzU3M2UzZDllMjJkNWQ5YzdiMjE0
MDQ2YTJiZTNmNjY4NzM4ZC4uMmEzNzc3YjZhYTc2MTFmODU4Y2RiNjUxOGYwYmVhOWI4MzczOGMy
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTAyLTI0ICBCcmlhbiBCdXJnICA8
YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBSZXBsYXk6IHJvdXRlIHRocm91Z2ggVXNl
cklucHV0QnJpZGdlIHdoZW4gZGVsaXZlcmluZyB1c2VyIGlucHV0cyB0byBXZWJDb3JlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgxNTAKKworICAg
ICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCisKKyAgICAgICAgV2hlbiBkZWxpdmVy
aW5nIHVzZXIgaW5wdXRzIHRvIFdlYkNvcmUsIHJvdXRlIGNhbGxzIHRocm91Z2ggdGhlIHBhZ2Un
cyBVc2VySW5wdXRCcmlkZ2UuCisgICAgICAgIFRoaXMgYWxsb3dzIHVzIHRvIGNhcHR1cmUgYW5k
IHJlcGxheSB1c2VyIGlucHV0cyBmcm9tIFdlYktpdDIgc29sZWx5IHdpdGhpbiBXZWJDb3JlLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjp0cnlDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRS
ZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c3RvcExvYWRpbmdGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnN0b3BMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6cmVsb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y29udGV4dE1lbnVB
dFBvaW50SW5XaW5kb3cpOgorICAgICAgICAoV2ViS2l0OjpoYW5kbGVDb250ZXh0TWVudUV2ZW50
KToKKyAgICAgICAgKFdlYktpdDo6aGFuZGxlTW91c2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpoYW5kbGVLZXlFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNjcm9sbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmxvZ2ljYWxTY3JvbGwpOgorCiAyMDE0LTAyLTI0ICBUYW1hcyBHZXJnZWx5ICA8dGdlcmdl
bHkudS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNvbT4KIAogICAgICAgICBDb2RlIGNsZWFudXA6
IHJlbW92ZSBsZWZ0b3ZlciBFTkFCTEUoV09SS0VSUykgbWFjcm9zIGFuZCBzdXBwb3J0LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAppbmRleCBmN2E1YThlOTJkZTliNTkwNjQzYTg4YmZiN2VmZDI0NzI4MTgz
YzQyLi5kOGI5YTE0YjdhYmM3MDliNTRiNjBmZTU2YTlhNzNmZDk4ZTZlNzE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtODYsNiArODYsNyBAQCBzZXQoV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9S
SUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3JlbmRlcmluZy9zaGFwZXMiCiAgICAgIiR7V0VCQ09S
RV9ESVJ9L3JlbmRlcmluZy9zdHlsZSIKICAgICAiJHtXRUJDT1JFX0RJUn0vcmVuZGVyaW5nL3N2
ZyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcmVwbGF5IgogICAgICIke1dFQkNPUkVfRElSfS9zdG9y
YWdlIgogICAgICIke1dFQkNPUkVfRElSfS9zdHlsZSIKICAgICAiJHtXRUJDT1JFX0RJUn0vc3Zn
IgpAQCAtMjMwMCw2ICsyMzAxLDggQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHJlbmRlcmlu
Zy9zdmcvU1ZHVGV4dFF1ZXJ5LmNwcAogICAgIHJlbmRlcmluZy9zdmcvU1ZHVGV4dFJ1blJlbmRl
cmluZ0NvbnRleHQuY3BwCiAKKyAgICByZXBsYXkvVXNlcklucHV0QnJpZGdlLmNwcAorCiAgICAg
c3RvcmFnZS9TdG9yYWdlLmNwcAogICAgIHN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcAogICAg
IHN0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA4ZWQx
Y2MzODlhNzQ5ZDc5NTRkODk0MmY5MTE2YzFlMDBiYjk4MDA5Li5kY2NjZmY3ZmY4Zjc2ZTc1NTQ3
MTlkMzA3MzU1Zjg1NjEwMWI2MjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTAyLDYgKzEw
Miw3IEBAIHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2ZyBcCisJ
LUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcmVwbGF5IFwKIAktSSQoc3JjZGlyKS9Tb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9zdHlsZSBcCiAJ
LUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvc3ZnIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCmluZGV4IDE3YTYwY2FkM2QwZWUzMDNiMDkzOTc3YzgyNjM2NWExODNhZWRiYjIuLjE3MTRi
MTEyMjEzNzA4Y2Q2MTgwNzFmYjFjM2UwNWZjMGE2NWIxYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtNDYyMyw2ICs0NjIzLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVWaXN1YWxEYXRhLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9UYWJsZUxheW91dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvVHJhaWxpbmdGbG9hdHNSb290SW5saW5lQm94LmggXAorCVNvdXJjZS9XZWJDb3JlL3Jl
cGxheS9Vc2VySW5wdXRCcmlkZ2UuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9yZXBsYXkvVXNlcklu
cHV0QnJpZGdlLmggXAogCVNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRocmVhZC5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRocmVhZC5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBmOTZi
MzNjZTFhMjgyYzg5MTI4MzVhMDJiOWQwMmJmNzQzOTE5YzI0Li42NzdmMTYxNWZkMDkwYWY5ZmY4
MjI0NjQzNjMzZTU5YTU1ZDYyZjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNjE5LDYgKzYx
OSwyMSBAQCBfX1pON1dlYkNvcmUxNVN0b3JhZ2VTdHJhdGVneTMwdHJhbnNpZW50TG9jYWxTdG9y
YWdlTmFtZXNwYWNlRVBOU185UGFnZUdyb3VwRVBOUwogX19aTjdXZWJDb3JlMTVTdHJpbmdUcnVu
Y2F0b3IxM3JpZ2h0VHJ1bmNhdGVFUktOM1dURjZTdHJpbmdFZlJLTlNfNEZvbnRFTlMwXzI0RW5h
YmxlUm91bmRpbmdIYWNrc09yTm90RQogX19aTjdXZWJDb3JlMTVTdHJpbmdUcnVuY2F0b3IxNGNl
bnRlclRydW5jYXRlRVJLTjNXVEY2U3RyaW5nRWZSS05TXzRGb250RU5TMF8yNEVuYWJsZVJvdW5k
aW5nSGFja3NPck5vdEUKIF9fWk43V2ViQ29yZTE1U3RyaW5nVHJ1bmNhdG9yNXdpZHRoRVJLTjNX
VEY2U3RyaW5nRVJLTlNfNEZvbnRFTlMwXzI0RW5hYmxlUm91bmRpbmdIYWNrc09yTm90RQorX19a
TjdXZWJDb3JlMTVVc2VySW5wdXRCcmlkZ2UxMWxvYWRSZXF1ZXN0RVJLTlNfMTZGcmFtZUxvYWRS
ZXF1ZXN0RWIKK19fWk43V2ViQ29yZTE1VXNlcklucHV0QnJpZGdlMTFyZWxvYWRGcmFtZUVQTlNf
NUZyYW1lRWJiCitfX1pON1dlYkNvcmUxNVVzZXJJbnB1dEJyaWRnZTEydHJ5Q2xvc2VQYWdlRWIK
K19fWk43V2ViQ29yZTE1VXNlcklucHV0QnJpZGdlMTRmb2N1c1NldEFjdGl2ZUViYgorX19aTjdX
ZWJDb3JlMTVVc2VySW5wdXRCcmlkZ2UxNGhhbmRsZUtleUV2ZW50RVJLTlNfMjFQbGF0Zm9ybUtl
eWJvYXJkRXZlbnRFYgorX19aTjdXZWJDb3JlMTVVc2VySW5wdXRCcmlkZ2UxNWZvY3VzU2V0Rm9j
dXNlZEViYgorX19aTjdXZWJDb3JlMTVVc2VySW5wdXRCcmlkZ2UxNmhhbmRsZVdoZWVsRXZlbnRF
UktOU18xOFBsYXRmb3JtV2hlZWxFdmVudEViCitfX1pON1dlYkNvcmUxNVVzZXJJbnB1dEJyaWRn
ZTE2c3RvcExvYWRpbmdGcmFtZUVQTlNfNUZyYW1lRWIKK19fWk43V2ViQ29yZTE1VXNlcklucHV0
QnJpZGdlMTdzY3JvbGxSZWN1cnNpdmVseUVOU18xNVNjcm9sbERpcmVjdGlvbkVOU18xN1Njcm9s
bEdyYW51bGFyaXR5RWIKK19fWk43V2ViQ29yZTE1VXNlcklucHV0QnJpZGdlMjBoYW5kbGVBY2Nl
c3NLZXlFdmVudEVSS05TXzIxUGxhdGZvcm1LZXlib2FyZEV2ZW50RWIKK19fWk43V2ViQ29yZTE1
VXNlcklucHV0QnJpZGdlMjBoYW5kbGVNb3VzZU1vdmVFdmVudEVSS05TXzE4UGxhdGZvcm1Nb3Vz
ZUV2ZW50RWIKK19fWk43V2ViQ29yZTE1VXNlcklucHV0QnJpZGdlMjFoYW5kbGVNb3VzZVByZXNz
RXZlbnRFUktOU18xOFBsYXRmb3JtTW91c2VFdmVudEViCitfX1pON1dlYkNvcmUxNVVzZXJJbnB1
dEJyaWRnZTIyaGFuZGxlQ29udGV4dE1lbnVFdmVudEVSS05TXzE4UGxhdGZvcm1Nb3VzZUV2ZW50
RVBLTlNfNUZyYW1lRWIKK19fWk43V2ViQ29yZTE1VXNlcklucHV0QnJpZGdlMjNoYW5kbGVNb3Vz
ZVJlbGVhc2VFdmVudEVSS05TXzE4UGxhdGZvcm1Nb3VzZUV2ZW50RWIKK19fWk43V2ViQ29yZTE1
VXNlcklucHV0QnJpZGdlMzFoYW5kbGVNb3VzZU1vdmVPblNjcm9sbGJhckV2ZW50RVJLTlNfMThQ
bGF0Zm9ybU1vdXNlRXZlbnRFYgogX19aTjdXZWJDb3JlMTVWaXNpYmxlUG9zaXRpb25DMUVSS05T
XzhQb3NpdGlvbkVOU185RUFmZmluaXR5RQogX19aTjdXZWJDb3JlMTVkZWZhdWx0TGFuZ3VhZ2VF
dgogX19aTjdXZWJDb3JlMTVsb2NhbGl6ZWRTdHJpbmdFUEtjCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLm9yZGVyIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgppbmRl
eCAzODkzZGY5Mzk2MDI5YTdlNDRlMjQzN2Y4NmJkNzRkOWZmZTQzOWY4Li42YmFkMjI3ODg4OTll
MjI2YjkyZDhhMWE4YzBiYWEzNzQxNDJjMzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLm9yZGVyCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKQEAgLTE0OTkz
LDYgKzE0OTkzLDcgQEAgX19aTjdXZWJDb3JlOERvY3VtZW50MTZjcmVhdGVUcmVlV2Fsa2VyRVBO
U180Tm9kZUVqTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTBOb2RlRmkKIF9fWk43V2ViQ29yZTEwVHJl
ZVdhbGtlcjZjcmVhdGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfNE5vZGVFRUVqTlMyX0lOU18xME5v
ZGVGaWx0ZXJFRUViCiBfX1pON1dlYkNvcmUxMFRyZWVXYWxrZXJDMUVOM1dURjEwUGFzc1JlZlB0
cklOU180Tm9kZUVFRWpOUzJfSU5TXzEwTm9kZUZpbHRlckVFRWIKIF9fWk43V2ViQ29yZTEwVHJl
ZVdhbGtlckMyRU4zV1RGMTBQYXNzUmVmUHRySU5TXzROb2RlRUVFak5TMl9JTlNfMTBOb2RlRmls
dGVyRUVFYgorX19aTjdXZWJDb3JlMTBJbnB1dFByb3h5QzFFUk5TXzRQYWdlRQogX19aTjdXZWJD
b3JlOVRyYXZlcnNhbEMyRU4zV1RGMTBQYXNzUmVmUHRySU5TXzROb2RlRUVFak5TMl9JTlNfMTBO
b2RlRmlsdGVyRUVFYgogX19aTjdXZWJDb3JlNHRvSlNFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTdK
U0RPTUdsb2JhbE9iamVjdEVQTlNfMTBUcmVlV2Fsa2VyRQogX19aTjdXZWJDb3JlMTVnZXRET01T
dHJ1Y3R1cmVJTlNfMTJKU1RyZWVXYWxrZXJFRUVQTjNKU0M5U3RydWN0dXJlRVBOUzJfOUV4ZWNT
dGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEUKQEAgLTMwODc4LDQgKzMwODc5LDMgQEAgX19a
TjdXZWJDb3JlTDE5Z1Byb3BlcnR5V3JhcHBlck1hcEUKIF9fWk43V2ViQ29yZUwxMmdGdW5jdGlv
bk1hcEUKIF9fWk43V2ViQ29yZUwxMmdGdW5jdGlvbk1hcEUKIF9fWk43V2ViQ29yZTZFZGl0b3Iy
NnRvZ2dsZU92ZXJ3cml0ZU1vZGVFbmFibGVkRXYKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggYWQ1ZjE0NThmODU0NzJhZWYwOTFmZWNk
ZTEwYTRmYzBhYzQzMTQ2ZC4uMzFmYzE1NTJiOGZmZDUxYTFkMDFkMjkxMTNiODQxMWIzZmYzM2Nk
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
CkBAIC0xMTkwNCw2ICsxMTkwNCw3IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5ccmVwbGF5XFVzZXJJbnB1dEJyaWRnZS5jcHAiIC8+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlx3b3JrZXJzXFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ceG1sXERPTVBhcnNlci5jcHAiIC8+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlx4bWxcTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmNwcCIgLz4KQEAgLTE5
OTE5LDYgKzE5OTIwLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xz
dmdcU1ZHVGV4dE1ldHJpY3NCdWlsZGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxyZW5kZXJpbmdcc3ZnXFNWR1RleHRRdWVyeS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccmVuZGVyaW5nXHN2Z1xTVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5oIiAvPgorICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVwbGF5XFVzZXJJbnB1dEJyaWRnZS5oIiAvPiAgIAog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ceG1sXERPTVBhcnNlci5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5ceG1sXE5hdGl2ZVhQYXRoTlNSZXNvbHZlci5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ceG1sXFhNTEVycm9ycy5oIiAvPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4
IGM1NWYwMjcyOTBhMGQ1YjczYTY1Yzg5NjNhMjg2OTYwNzI3MWRhOWUuLmVkZDZkMmY3ZGNiYWQx
NmE5ZDFiZDg5Mzk4YmNmNWM0ZTk3MTVhYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTE5Myw2ICsxOTMs
OSBAQAogICAgIDxGaWx0ZXIgSW5jbHVkZT0icmVuZGVyaW5nXHN2ZyI+CiAgICAgICA8VW5pcXVl
SWRlbnRpZmllcj57NzZkNDk2MGEtNTljMS00MmRlLWJjMzctY2Y0ZGJhMDFiN2EzfTwvVW5pcXVl
SWRlbnRpZmllcj4KICAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9InJlcGxheSI+
CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57MWZhYzI5ODAtZWFhNC00MjQ1LTgwNzMtOTBiNTU0
NzU0NzlmfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KICAgICA8RmlsdGVyIElu
Y2x1ZGU9InhtbCI+CiAgICAgICA8VW5pcXVlSWRlbnRpZmllcj57N2JmOTUyNDMtYmI1MS00OWEw
LThlNGYtMTczMjQyZTVmYzRlfTwvVW5pcXVlSWRlbnRpZmllcj4KICAgICA8L0ZpbHRlcj4KQEAg
LTI5MTAsNiArMjkxMyw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdc
VGV4dFBhaW50ZXIuY3BwIj4KICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nPC9GaWx0ZXI+CiAgICAg
PC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZXBsYXlcVXNlcklucHV0
QnJpZGdlLmNwcCI+CisgICAgICA8RmlsdGVyPnJlcGxheTwvRmlsdGVyPgorICAgIDwvQ2xDb21w
aWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ceG1sXERPTVBhcnNlci5jcHAiPgogICAg
ICAgPEZpbHRlcj54bWw8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTk3OTEsNiArOTc5
Nyw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3ZnXFNWR1RleHRS
dW5SZW5kZXJpbmdDb250ZXh0LmgiPgogICAgICAgPEZpbHRlcj5yZW5kZXJpbmdcc3ZnPC9GaWx0
ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZXBsYXlc
VXNlcklucHV0QnJpZGdlLmgiPgorICAgICAgPEZpbHRlcj5yZXBsYXk8L0ZpbHRlcj4KKyAgICA8
L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHhtbFxET01QYXJzZXIuaCI+
CiAgICAgICA8RmlsdGVyPnhtbDwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDgyZmMx
N2ZlZmI1NWI2MTRhMDhhYWM1ZmU4MmJiNWNjNTkzMjdkYzIuLjJmNWRjZDk1ZTY2ZWNiMzEyYmRh
NTY0NjI4NDU2ODE0ZWUzYzJhOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM0OTEsNiArMzQ5MSw4IEBACiAJCTk4RUIxRjk1
MTMxM0ZFMDUwMEQwRTFFQSAvKiBOb3RJbXBsZW1lbnRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOThFQjFGOTQxMzEzRkUwNTAwRDBFMUVBIC8qIE5v
dEltcGxlbWVudGVkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOTkwQTFBMDQxOEFEQTQ4NDAwMTgzRkQxIC8qIFJlcGxheUlucHV0VHlwZXMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkwQTE5RjQx
OEFEQTQ4NDAwMTgzRkQxIC8qIFJlcGxheUlucHV0VHlwZXMuY3BwICovOyB9OwogCQk5OTBBMUEw
NTE4QURBNDg0MDAxODNGRDEgLyogUmVwbGF5SW5wdXRUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkwQTE5RjUxOEFEQTQ4NDAwMTgzRkQxIC8q
IFJlcGxheUlucHV0VHlwZXMuaCAqLzsgfTsKKwkJOTkyMDM5ODIxOEI5NUJDNjAwQjM5QUY5IC8q
IFVzZXJJbnB1dEJyaWRnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5OTIwMzk4MDE4Qjk1QkM2MDBCMzlBRjkgLyogVXNlcklucHV0QnJpZGdlLmNw
cCAqLzsgfTsKKwkJOTkyMDM5ODMxOEI5NUJDNjAwQjM5QUY5IC8qIFVzZXJJbnB1dEJyaWRnZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkyMDM5ODEx
OEI5NUJDNjAwQjM5QUY5IC8qIFVzZXJJbnB1dEJyaWRnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk5RTQ1QTE3MThBMDYzQkUwMDI2RDg4RiAv
KiBFdmVudExvb3BJbnB1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTlFNDVBMTYxOEEwNjNCRTAwMjZEODhGIC8qIEV2ZW50TG9vcElucHV0LmggKi87
IH07CiAJCTlBMTE0MjA0MTgzMkQxMzUwMDBCQjhBRCAvKiBWYWx1ZVRvU3RyaW5nLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QTExNDIwMzE4MzJEMTM0
MDAwQkI4QUQgLyogVmFsdWVUb1N0cmluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTlBMUI2Rjk3MTU4ODY5QzgwMDExQThDNCAvKiBKU0RPTVN0
cmluZ0xpc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOUExQjZGOTYxNTg4NjlDODAwMTFBOEM0IC8qIEpTRE9NU3RyaW5nTGlzdEN1c3Rv
bS5jcHAgKi87IH07CkBAIC0xMDQ1Myw2ICsxMDQ1NSw4IEBACiAJCTk4RUIxRjk0MTMxM0ZFMDUw
MEQwRTFFQSAvKiBOb3RJbXBsZW1lbnRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOb3RJbXBsZW1lbnRlZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTBB
MTlGNDE4QURBNDg0MDAxODNGRDEgLyogUmVwbGF5SW5wdXRUeXBlcy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYXlJbnB1dFR5cGVzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwQTE5RjUxOEFEQTQ4NDAwMTgzRkQxIC8qIFJlcGxheUlu
cHV0VHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGF5SW5wdXRU
eXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTIwMzk4MDE4Qjk1QkM2MDBC
MzlBRjkgLyogVXNlcklucHV0QnJpZGdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFVzZXJJbnB1dEJyaWRnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTk5MjAzOTgxMThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlcklucHV0QnJpZGdlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTk5RTQ1QTE2MThBMDYzQkUwMDI2RDg4RiAvKiBFdmVudExvb3BJ
bnB1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudExvb3BJbnB1dC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QTExNDIwMzE4MzJEMTM0MDAwQkI4QUQg
LyogVmFsdWVUb1N0cmluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWYWx1
ZVRvU3RyaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlBMUI2Rjk2MTU4ODY5
QzgwMDExQThDNCAvKiBKU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01TdHJpbmdMaXN0Q3VzdG9tLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3ODU5LDYgKzE3ODYzLDggQEAKIAkJCQk5OUU0NUExNjE4
QTA2M0JFMDAyNkQ4OEYgLyogRXZlbnRMb29wSW5wdXQuaCAqLywKIAkJCQk5OTBBMTlGNDE4QURB
NDg0MDAxODNGRDEgLyogUmVwbGF5SW5wdXRUeXBlcy5jcHAgKi8sCiAJCQkJOTkwQTE5RjUxOEFE
QTQ4NDAwMTgzRkQxIC8qIFJlcGxheUlucHV0VHlwZXMuaCAqLywKKwkJCQk5OTIwMzk4MDE4Qjk1
QkM2MDBCMzlBRjkgLyogVXNlcklucHV0QnJpZGdlLmNwcCAqLywKKwkJCQk5OTIwMzk4MTE4Qjk1
QkM2MDBCMzlBRjkgLyogVXNlcklucHV0QnJpZGdlLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHJl
cGxheTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMzcyMCw2ICsyMzcyNiw3IEBA
CiAJCQkJOTc3QjM4NjcxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxEb2N1bWVudFBhcnNlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERTgwOTlFNjQ5MjAwNTZFNTgxIC8qIGh0bWxlZGl0aW5n
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOThFNjA4MjQ1RTU5MDAxRTlBQkMgLyogSFRNTEVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTk5MjAzOTgzMThCOTVCQzYwMEIzOUFGOSAvKiBV
c2VySW5wdXRCcmlkZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUExN0M4MTIzMEYyQTVDRjcwMDVE
QUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0IzNzI0
MTIyODcyMTcwMEI4MUZGOCAvKiBIVE1MRWxlbWVudFN0YWNrLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCNTYyREI2MDE3RDNDRDYzMDAxMEFGOTYgLyogSFRNTEVsZW1lbnRUeXBlSGVscGVycy5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yODI3MCw2ICsyODI3Nyw3IEBACiAJCQkJMUFEQTE0MTAwRTFBRTVE
OTAwMDIzRUU1IC8qIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNzFFMjE4M0IxNzM1OUZCODAwNkU2RTREIC8qIFBsdWdJbnNSZXNvdXJjZXNEYXRhLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTc2RkYxN0UzMTEyMzU2NzMwMDFENjFCNSAvKiBQbHVnaW5W
aWV3Tm9uZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5OTIwMzk4MjE4Qjk1QkM2MDBCMzlBRjkg
LyogVXNlcklucHV0QnJpZGdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQjFGNzE2MEQwMENB
QTgwMDRBRUE2NCAvKiBQb2ludGVyRXZlbnRzSGl0UnVsZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTFFMTE1NDYxMzAxNUM0RTAwNTRBQzhDIC8qIFBvaW50TGlnaHRTb3VyY2UuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTcwNTk5NzcxMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNhbGxiYWNr
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMjE3OTVhYmI3OTA1MWJk
ZGQwMTgyYTY1MDM2ODc3YTcwODk0ODM5ZS4uMjZjYzdkODg3Y2FhMDMyMzMyZjNjZTI3N2E1MGFm
ODAxNGRkNGIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC04Myw2ICs4Myw3IEBACiAjaW5jbHVk
ZSAiU3ViZnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAj
aW5jbHVkZSAiVXNlckNvbnRlbnRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiVXNlcklucHV0QnJp
ZGdlLmgiCiAjaW5jbHVkZSAiVmlzaXRlZExpbmtTdGF0ZS5oIgogI2luY2x1ZGUgIlZvaWRDYWxs
YmFjay5oIgogI2luY2x1ZGUgIldpZGdldC5oIgpAQCAtMTI2LDYgKzEyNyw3IEBAIFBhZ2U6OlBh
Z2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQog
ICAgICwgbV9jb250ZXh0TWVudUNvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxDb250ZXh0TWVu
dUNvbnRyb2xsZXI+KCp0aGlzLCAqcGFnZUNsaWVudHMuY29udGV4dE1lbnVDbGllbnQpKQogI2Vu
ZGlmCisgICAgLCBtX3VzZXJJbnB1dEJyaWRnZShzdGQ6Om1ha2VfdW5pcXVlPFVzZXJJbnB1dEJy
aWRnZT4oKnRoaXMpKQogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgLCBtX2luc3BlY3RvckNv
bnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JDb250cm9sbGVyPigqdGhpcywgcGFn
ZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50KSkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBhNzE1
ZmVmZDZkY2QyYWYzY2U4NGI1NWRmNzNmZmEzNDkzN2M3M2YwLi44NDg5MjA5OTM2OGM0YzVkNDE0
Y2Y4YjhjMTdlOGRhODUzZmQ3ZjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNzksNiArNzksNyBAQCBj
bGFzcyBGcmFtZUxvYWRlckNsaWVudDsKIGNsYXNzIEZyYW1lU2VsZWN0aW9uOwogY2xhc3MgSGFs
dGFibGVQbHVnaW47CiBjbGFzcyBIaXN0b3J5SXRlbTsKK2NsYXNzIFVzZXJJbnB1dEJyaWRnZTsK
IGNsYXNzIEluc3BlY3RvckNsaWVudDsKIGNsYXNzIEluc3BlY3RvckNvbnRyb2xsZXI7CiBjbGFz
cyBNYWluRnJhbWU7CkBAIC0xOTQsNiArMTk1LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShDT05U
RVhUX01FTlVTKQogICAgIENvbnRleHRNZW51Q29udHJvbGxlciYgY29udGV4dE1lbnVDb250cm9s
bGVyKCkgY29uc3QgeyByZXR1cm4gKm1fY29udGV4dE1lbnVDb250cm9sbGVyOyB9CiAjZW5kaWYK
KyAgICBVc2VySW5wdXRCcmlkZ2UmIHVzZXJJbnB1dEJyaWRnZSgpIGNvbnN0IHsgcmV0dXJuICpt
X3VzZXJJbnB1dEJyaWRnZTsgfQogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgSW5zcGVjdG9y
Q29udHJvbGxlciYgaW5zcGVjdG9yQ29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuICptX2luc3Bl
Y3RvckNvbnRyb2xsZXI7IH0KICNlbmRpZgpAQCAtNDM3LDYgKzQzOSw3IEBAIHByaXZhdGU6CiAj
aWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPENvbnRl
eHRNZW51Q29udHJvbGxlcj4gbV9jb250ZXh0TWVudUNvbnRyb2xsZXI7CiAjZW5kaWYKKyAgICBj
b25zdCBzdGQ6OnVuaXF1ZV9wdHI8VXNlcklucHV0QnJpZGdlPiBtX3VzZXJJbnB1dEJyaWRnZTsK
ICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0
b3JDb250cm9sbGVyPiBtX2luc3BlY3RvckNvbnRyb2xsZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlcGxheS9Vc2VySW5wdXRCcmlkZ2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVwbGF5L1VzZXJJbnB1dEJyaWRnZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmRiMzNlNGViMzQ1MjY3
ZDkyMGEwZDE0MzFmZjA4YjMzZTY3MTY2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlcGxheS9Vc2VySW5wdXRCcmlkZ2UuY3BwCkBAIC0wLDAgKzEsMTQ0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIFVuaXZlcnNpdHkgb2YgV2FzaGluZ3Rvbi4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMKKyAqIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRAorICogVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBCisgKiBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIEhPTERFUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlVzZXJJbnB1dEJyaWRnZS5oIgorCisjaW5jbHVkZSAiRXZlbnRIYW5kbGVy
LmgiCisjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNp
bmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCisjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCisjaW5j
bHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1
ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1VzZXJJbnB1dEJyaWRnZTo6VXNlcklucHV0QnJp
ZGdlKFBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKworYm9vbCBVc2VySW5w
dXRCcmlkZ2U6OmhhbmRsZUNvbnRleHRNZW51RXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50
JiBtb3VzZUV2ZW50LCBjb25zdCBGcmFtZSogZnJhbWUsIGJvb2wgZnJvbVJlcGxheSkKK3sKKyAg
ICBVTlVTRURfUEFSQU0oZnJvbVJlcGxheSk7CisgICAgcmV0dXJuIGZyYW1lLT5ldmVudEhhbmRs
ZXIoKS5zZW5kQ29udGV4dE1lbnVFdmVudChtb3VzZUV2ZW50KTsKK30KKworYm9vbCBVc2VySW5w
dXRCcmlkZ2U6OmhhbmRsZU1vdXNlUHJlc3NFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQm
IG1vdXNlRXZlbnQsIGJvb2wgZnJvbVJlcGxheSkKK3sKKyAgICBVTlVTRURfUEFSQU0oZnJvbVJl
cGxheSk7CisgICAgcmV0dXJuIG1fcGFnZS5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5oYW5k
bGVNb3VzZVByZXNzRXZlbnQobW91c2VFdmVudCk7Cit9CisKK2Jvb2wgVXNlcklucHV0QnJpZGdl
OjpoYW5kbGVNb3VzZVJlbGVhc2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNl
RXZlbnQsIGJvb2wgZnJvbVJlcGxheSkKK3sKKyAgICBVTlVTRURfUEFSQU0oZnJvbVJlcGxheSk7
CisgICAgcmV0dXJuIG1fcGFnZS5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3Vz
ZVJlbGVhc2VFdmVudChtb3VzZUV2ZW50KTsKK30KKworYm9vbCBVc2VySW5wdXRCcmlkZ2U6Omhh
bmRsZU1vdXNlTW92ZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgbW91c2VFdmVudCwg
Ym9vbCBmcm9tUmVwbGF5KQoreworICAgIFVOVVNFRF9QQVJBTShmcm9tUmVwbGF5KTsKKyAgICBy
ZXR1cm4gbV9wYWdlLm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQobW91c2VF
dmVudCk7Cit9CisKK2Jvb2wgVXNlcklucHV0QnJpZGdlOjpoYW5kbGVNb3VzZU1vdmVPblNjcm9s
bGJhckV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgbW91c2VFdmVudCwgYm9vbCBmcm9t
UmVwbGF5KQoreworICAgIFVOVVNFRF9QQVJBTShmcm9tUmVwbGF5KTsKKyAgICByZXR1cm4gbV9w
YWdlLm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLnBhc3NNb3VzZU1vdmVkRXZlbnRUb1Njcm9s
bGJhcnMobW91c2VFdmVudCk7Cit9CisKK2Jvb2wgVXNlcklucHV0QnJpZGdlOjpoYW5kbGVLZXlF
dmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleUV2ZW50LCBib29sIGZyb21SZXBs
YXkpCit7CisgICAgVU5VU0VEX1BBUkFNKGZyb21SZXBsYXkpOworICAgIHJldHVybiBtX3BhZ2Uu
Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkua2V5
RXZlbnQoa2V5RXZlbnQpOworfQorCitib29sIFVzZXJJbnB1dEJyaWRnZTo6aGFuZGxlQWNjZXNz
S2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBrZXlFdmVudCwgYm9vbCBmcm9t
UmVwbGF5KQoreworICAgIFVOVVNFRF9QQVJBTShmcm9tUmVwbGF5KTsKKyAgICByZXR1cm4gbV9w
YWdlLmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigp
LmhhbmRsZUFjY2Vzc0tleShrZXlFdmVudCk7Cit9CisKK2Jvb2wgVXNlcklucHV0QnJpZGdlOjpo
YW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgYm9v
bCBmcm9tUmVwbGF5KQoreworICAgIFVOVVNFRF9QQVJBTShmcm9tUmVwbGF5KTsKKyAgICByZXR1
cm4gbV9wYWdlLm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLmhhbmRsZVdoZWVsRXZlbnQod2hl
ZWxFdmVudCk7Cit9CisKK3ZvaWQgVXNlcklucHV0QnJpZGdlOjpmb2N1c1NldEFjdGl2ZShib29s
IGFjdGl2ZSwgYm9vbCBmcm9tUmVwbGF5KQoreworICAgIFVOVVNFRF9QQVJBTShmcm9tUmVwbGF5
KTsKKyAgICBtX3BhZ2UuZm9jdXNDb250cm9sbGVyKCkuc2V0QWN0aXZlKGFjdGl2ZSk7Cit9CisK
K3ZvaWQgVXNlcklucHV0QnJpZGdlOjpmb2N1c1NldEZvY3VzZWQoYm9vbCBmb2N1c2VkLCBib29s
IGZyb21SZXBsYXkpCit7CisgICAgVU5VU0VEX1BBUkFNKGZyb21SZXBsYXkpOworICAgIG1fcGFn
ZS5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkKGZvY3VzZWQpOworfQorCitib29sIFVzZXJJ
bnB1dEJyaWRnZTo6c2Nyb2xsUmVjdXJzaXZlbHkoU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbiwg
U2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJvb2wgZnJvbVJlcGxheSkKK3sKKyAgICBV
TlVTRURfUEFSQU0oZnJvbVJlcGxheSk7CisgICAgcmV0dXJuIG1fcGFnZS5mb2N1c0NvbnRyb2xs
ZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5zY3JvbGxSZWN1cnNpdmVs
eShkaXJlY3Rpb24sIGdyYW51bGFyaXR5LCBudWxscHRyKTsKK30KKworYm9vbCBVc2VySW5wdXRC
cmlkZ2U6OmxvZ2ljYWxTY3JvbGxSZWN1cnNpdmVseShTY3JvbGxMb2dpY2FsRGlyZWN0aW9uIGRp
cmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJvb2wgZnJvbVJlcGxheSkK
K3sKKyAgICBVTlVTRURfUEFSQU0oZnJvbVJlcGxheSk7CisgICAgcmV0dXJuIG1fcGFnZS5mb2N1
c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5sb2dpY2Fs
U2Nyb2xsUmVjdXJzaXZlbHkoZGlyZWN0aW9uLCBncmFudWxhcml0eSwgbnVsbHB0cik7Cit9CisK
K3ZvaWQgVXNlcklucHV0QnJpZGdlOjpsb2FkUmVxdWVzdChjb25zdCBGcmFtZUxvYWRSZXF1ZXN0
JiByZXF1ZXN0LCBib29sIGZyb21SZXBsYXkpCit7CisgICAgVU5VU0VEX1BBUkFNKGZyb21SZXBs
YXkpOworICAgIG1fcGFnZS5tYWluRnJhbWUoKS5sb2FkZXIoKS5sb2FkKHJlcXVlc3QpOworfQor
Cit2b2lkIFVzZXJJbnB1dEJyaWRnZTo6cmVsb2FkRnJhbWUoRnJhbWUqIGZyYW1lLCBib29sIGVu
ZFRvRW5kUmVsb2FkLCBib29sIGZyb21SZXBsYXkpCit7CisgICAgVU5VU0VEX1BBUkFNKGZyb21S
ZXBsYXkpOworICAgIGZyYW1lLT5sb2FkZXIoKS5yZWxvYWQoZW5kVG9FbmRSZWxvYWQpOworfQor
Cit2b2lkIFVzZXJJbnB1dEJyaWRnZTo6c3RvcExvYWRpbmdGcmFtZShGcmFtZSogZnJhbWUsIGJv
b2wgZnJvbVJlcGxheSkKK3sKKyAgICBVTlVTRURfUEFSQU0oZnJvbVJlcGxheSk7CisgICAgZnJh
bWUtPmxvYWRlcigpLnN0b3BGb3JVc2VyQ2FuY2VsKCk7Cit9CisKK2Jvb2wgVXNlcklucHV0QnJp
ZGdlOjp0cnlDbG9zZVBhZ2UoYm9vbCBmcm9tUmVwbGF5KQoreworICAgIFVOVVNFRF9QQVJBTShm
cm9tUmVwbGF5KTsKKyAgICByZXR1cm4gbV9wYWdlLm1haW5GcmFtZSgpLmxvYWRlcigpLnNob3Vs
ZENsb3NlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlcGxheS9Vc2VySW5wdXRCcmlkZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlcGxh
eS9Vc2VySW5wdXRCcmlkZ2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ODU4MzRiOTA4YWNmZGUzMWFhMWZmNGFm
MjU1ODA0YTJjZDZhYzVlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5
L1VzZXJJbnB1dEJyaWRnZS5oCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIsIDIwMTMgVW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9uLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUworICogSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
CisgKiBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEKKyAqIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFVzZXJJbnB1dEJyaWRnZV9o
CisjZGVmaW5lIFVzZXJJbnB1dEJyaWRnZV9oCisKKyNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgor
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0
cnVjdCBGcmFtZUxvYWRSZXF1ZXN0OworCitjbGFzcyBGcmFtZTsKK2NsYXNzIFBhZ2U7CitjbGFz
cyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ7CitjbGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CitjbGFz
cyBQbGF0Zm9ybVdoZWVsRXZlbnQ7CisKK2NsYXNzIFVzZXJJbnB1dEJyaWRnZSB7CisgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoVXNlcklucHV0QnJpZGdlKTsKK3B1YmxpYzoKKyAgICBVc2VySW5w
dXRCcmlkZ2UoUGFnZSYpOworCisgICAgLy8gVXNlciBpbnB1dCBBUElzLgorICAgIGJvb2wgaGFu
ZGxlQ29udGV4dE1lbnVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBjb25zdCBGcmFt
ZSosIGJvb2wgZnJvbVJlcGxheSA9IGZhbHNlKTsKKyAgICBib29sIGhhbmRsZU1vdXNlUHJlc3NF
dmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBib29sIGZyb21SZXBsYXkgPSBmYWxzZSk7
CisgICAgYm9vbCBoYW5kbGVNb3VzZVJlbGVhc2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZl
bnQmLCBib29sIGZyb21SZXBsYXkgPSBmYWxzZSk7CisgICAgYm9vbCBoYW5kbGVNb3VzZU1vdmVF
dmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBib29sIGZyb21SZXBsYXkgPSBmYWxzZSk7
CisgICAgYm9vbCBoYW5kbGVNb3VzZU1vdmVPblNjcm9sbGJhckV2ZW50KGNvbnN0IFBsYXRmb3Jt
TW91c2VFdmVudCYsIGJvb2wgZnJvbVJlcGxheSA9IGZhbHNlKTsKKyAgICBib29sIGhhbmRsZVdo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgYm9vbCBmcm9tUmVwbGF5ID0gZmFs
c2UpOworICAgIGJvb2wgaGFuZGxlS2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50
JiwgYm9vbCBmcm9tUmVwbGF5ID0gZmFsc2UpOworICAgIGJvb2wgaGFuZGxlQWNjZXNzS2V5RXZl
bnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiwgYm9vbCBmcm9tUmVwbGF5ID0gZmFsc2Up
OworICAgIHZvaWQgZm9jdXNTZXRBY3RpdmUoYm9vbCBhY3RpdmUsIGJvb2wgZnJvbVJlcGxheSA9
IGZhbHNlKTsKKyAgICB2b2lkIGZvY3VzU2V0Rm9jdXNlZChib29sIGZvY3VzZWQsIGJvb2wgZnJv
bVJlcGxheSA9IGZhbHNlKTsKKyAgICBib29sIHNjcm9sbFJlY3Vyc2l2ZWx5KFNjcm9sbERpcmVj
dGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGJvb2wgZnJvbVJlcGxheSA9IGZhbHNlKTsKKyAgICBi
b29sIGxvZ2ljYWxTY3JvbGxSZWN1cnNpdmVseShTY3JvbGxMb2dpY2FsRGlyZWN0aW9uLCBTY3Jv
bGxHcmFudWxhcml0eSwgYm9vbCBmcm9tUmVwbGF5ID0gZmFsc2UpOworCisgICAgLy8gTmF2aWdh
dGlvbiBBUElzLgorICAgIHZvaWQgbG9hZFJlcXVlc3QoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYs
IGJvb2wgZnJvbVJlcGxheSA9IGZhbHNlKTsKKyAgICB2b2lkIHJlbG9hZEZyYW1lKEZyYW1lKiwg
Ym9vbCBlbmRUb0VuZFJlbG9hZCwgYm9vbCBmcm9tUmVwbGF5ID0gZmFsc2UpOworICAgIHZvaWQg
c3RvcExvYWRpbmdGcmFtZShGcmFtZSosIGJvb2wgZnJvbVJlcGxheSA9IGZhbHNlKTsKKyAgICBi
b29sIHRyeUNsb3NlUGFnZShib29sIGZyb21SZXBsYXkgPSBmYWxzZSk7CisKK3ByaXZhdGU6Cisg
ICAgUGFnZSYgbV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gVXNlcklucHV0QnJpZGdlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAppbmRleCA1ZmUzMDM5MGVlMGEwYmUyMzZjZDZiMzZhOTc5Mzk0NjY5NjY5
MjBkLi5lZDhiNzdjZDdkNzYzZDFkMmU5YzRlNzFiMzM0MWFmNGE5OTgyMWY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMzksNiArMTM5
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1N1YmZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TdWJzdGl0dXRlRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEl0ZXJhdG9yLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9Vc2VySW5wdXRCcmlkZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Zpc2libGVQb3NpdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlzaWJsZVVuaXRzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9tYXJrdXAuaD4KQEAgLTg4Nyw3ICs4ODgsNyBAQCB2b2lkIFdlYlBh
Z2U6OnRyeUNsb3NlKCkKIHsKICAgICBTZW5kU3RvcFJlc3BvbnNpdmVuZXNzVGltZXIgc3RvcHBl
cih0aGlzKTsKIAotICAgIGlmICghbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5z
aG91bGRDbG9zZSgpKSB7CisgICAgaWYgKCFjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS50
cnlDbG9zZVBhZ2UoKSkgewogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0
b3BSZXNwb25zaXZlbmVzc1RpbWVyKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtOTI4
LDcgKzkyOSw3IEBAIHZvaWQgV2ViUGFnZTo6bG9hZFJlcXVlc3QodWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsCiAgICAgbV9sb2FkZXJDbGllbnQu
d2lsbExvYWRVUkxSZXF1ZXN0KHRoaXMsIHJlcXVlc3QsIHVzZXJEYXRhLmdldCgpKTsKIAogICAg
IC8vIEluaXRhdGUgdGhlIGxvYWQgaW4gV2ViQ29yZS4KLSAgICBtX21haW5GcmFtZS0+Y29yZUZy
YW1lKCktPmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdChtX21haW5GcmFtZS0+Y29yZUZy
YW1lKCksIHJlcXVlc3QpKTsKKyAgICBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5sb2Fk
UmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0KG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKSwgcmVxdWVz
dCkpOwogCiAgICAgQVNTRVJUKCFtX3BlbmRpbmdOYXZpZ2F0aW9uSUQpOwogfQpAQCAtMTAwMSwx
NCArMTAwMiwxNCBAQCB2b2lkIFdlYlBhZ2U6OnN0b3BMb2FkaW5nRnJhbWUodWludDY0X3QgZnJh
bWVJRCkKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBmcmFtZS0+Y29y
ZUZyYW1lKCktPmxvYWRlcigpLnN0b3BGb3JVc2VyQ2FuY2VsKCk7CisgICAgY29yZVBhZ2UoKS0+
dXNlcklucHV0QnJpZGdlKCkuc3RvcExvYWRpbmdGcmFtZShmcmFtZS0+Y29yZUZyYW1lKCkpOwog
fQogCiB2b2lkIFdlYlBhZ2U6OnN0b3BMb2FkaW5nKCkKIHsKICAgICBTZW5kU3RvcFJlc3BvbnNp
dmVuZXNzVGltZXIgc3RvcHBlcih0aGlzKTsKIAotICAgIG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUo
KS0+bG9hZGVyKCkuc3RvcEZvclVzZXJDYW5jZWwoKTsKKyAgICBjb3JlUGFnZSgpLT51c2VySW5w
dXRCcmlkZ2UoKS5zdG9wTG9hZGluZ0ZyYW1lKG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKSk7CiB9
CiAKIHZvaWQgV2ViUGFnZTo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVyc0xvYWRpbmcpCkBA
IC0xMDI0LDcgKzEwMjUsNyBAQCB2b2lkIFdlYlBhZ2U6OnJlbG9hZCh1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIGJvb2wgcmVsb2FkRnJvbU9yaWdpbiwgY29uc3QgU2FuZGJveAogICAgIG1fcGVuZGlu
Z05hdmlnYXRpb25JRCA9IG5hdmlnYXRpb25JRDsKIAogICAgIG1fc2FuZGJveEV4dGVuc2lvblRy
YWNrZXIuYmVnaW5Mb2FkKG1fbWFpbkZyYW1lLmdldCgpLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxl
KTsKLSAgICBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLnJlbG9hZChyZWxvYWRG
cm9tT3JpZ2luKTsKKyAgICBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5yZWxvYWRGcmFt
ZShtX21haW5GcmFtZS0+Y29yZUZyYW1lKCksIHJlbG9hZEZyb21PcmlnaW4pOwogfQogCiB2b2lk
IFdlYlBhZ2U6OmdvRm9yd2FyZCh1aW50NjRfdCBiYWNrRm9yd2FyZEl0ZW1JRCkKQEAgLTE1NzIs
NyArMTU3Myw3IEBAIFdlYkNvbnRleHRNZW51KiBXZWJQYWdlOjpjb250ZXh0TWVudUF0UG9pbnRJ
bldpbmRvdyhjb25zdCBJbnRQb2ludCYgcG9pbnQpCiAgICAgCiAgICAgLy8gU2ltdWxhdGUgYSBt
b3VzZSBjbGljayB0byBnZW5lcmF0ZSB0aGUgY29ycmVjdCBtZW51LgogICAgIFBsYXRmb3JtTW91
c2VFdmVudCBtb3VzZUV2ZW50KHBvaW50LCBwb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZl
bnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRU
aW1lKCkpOwotICAgIGJvb2wgaGFuZGxlZCA9IGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLmV2ZW50
SGFuZGxlcigpLnNlbmRDb250ZXh0TWVudUV2ZW50KG1vdXNlRXZlbnQpOworICAgIGJvb2wgaGFu
ZGxlZCA9IGNvcmVQYWdlKCktPnVzZXJJbnB1dEJyaWRnZSgpLmhhbmRsZUNvbnRleHRNZW51RXZl
bnQobW91c2VFdmVudCwgJmNvcmVQYWdlKCktPm1haW5GcmFtZSgpKTsKICAgICBpZiAoIWhhbmRs
ZWQpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC0xNjMyLDggKzE2MzMsOCBAQCBzdGF0aWMgYm9v
bCBoYW5kbGVDb250ZXh0TWVudUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgcGxhdGZv
cm1Nb3VzZUV2ZW50LAogICAgIEZyYW1lKiBmcmFtZSA9ICZwYWdlLT5jb3JlUGFnZSgpLT5tYWlu
RnJhbWUoKTsKICAgICBpZiAocmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKQogICAgICAgICBm
cmFtZSA9IHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKS0+ZG9jdW1lbnQoKS5mcmFtZSgpOwot
ICAgIAotICAgIGJvb2wgaGFuZGxlZCA9IGZyYW1lLT5ldmVudEhhbmRsZXIoKS5zZW5kQ29udGV4
dE1lbnVFdmVudChwbGF0Zm9ybU1vdXNlRXZlbnQpOworCisgICAgYm9vbCBoYW5kbGVkID0gcGFn
ZS0+Y29yZVBhZ2UoKS0+dXNlcklucHV0QnJpZGdlKCkuaGFuZGxlQ29udGV4dE1lbnVFdmVudChw
bGF0Zm9ybU1vdXNlRXZlbnQsIGZyYW1lKTsKICAgICBpZiAoaGFuZGxlZCkKICAgICAgICAgcGFn
ZS0+Y29udGV4dE1lbnUoKS0+c2hvdygpOwogCkBAIC0xNjU2LDcgKzE2NTcsNyBAQCBzdGF0aWMg
Ym9vbCBoYW5kbGVNb3VzZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmIG1vdXNlRXZlbnQsIFdl
YlBhZ2UqIHBhZ2UsIGJvbwogICAgICAgICAgICAgICAgIHBhZ2UtPmNvcmVQYWdlKCktPmNvbnRl
eHRNZW51Q29udHJvbGxlcigpLmNsZWFyQ29udGV4dE1lbnUoKTsKICNlbmRpZgogCi0gICAgICAg
ICAgICBib29sIGhhbmRsZWQgPSBmcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVByZXNz
RXZlbnQocGxhdGZvcm1Nb3VzZUV2ZW50KTsKKyAgICAgICAgICAgIGJvb2wgaGFuZGxlZCA9IHBh
Z2UtPmNvcmVQYWdlKCktPnVzZXJJbnB1dEJyaWRnZSgpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChw
bGF0Zm9ybU1vdXNlRXZlbnQpOwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgICAgICAg
ICAgaWYgKGlzQ29udGV4dENsaWNrKHBsYXRmb3JtTW91c2VFdmVudCkpCiAgICAgICAgICAgICAg
ICAgaGFuZGxlZCA9IGhhbmRsZUNvbnRleHRNZW51RXZlbnQocGxhdGZvcm1Nb3VzZUV2ZW50LCBw
YWdlKTsKQEAgLTE2NjQsMTIgKzE2NjUsMTIgQEAgc3RhdGljIGJvb2wgaGFuZGxlTW91c2VFdmVu
dChjb25zdCBXZWJNb3VzZUV2ZW50JiBtb3VzZUV2ZW50LCBXZWJQYWdlKiBwYWdlLCBib28KICAg
ICAgICAgICAgIHJldHVybiBoYW5kbGVkOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgUGxhdGZv
cm1FdmVudDo6TW91c2VSZWxlYXNlZDoKLSAgICAgICAgICAgIHJldHVybiBmcmFtZS5ldmVudEhh
bmRsZXIoKS5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChwbGF0Zm9ybU1vdXNlRXZlbnQpOworICAg
ICAgICAgICAgcmV0dXJuIHBhZ2UtPmNvcmVQYWdlKCktPnVzZXJJbnB1dEJyaWRnZSgpLmhhbmRs
ZU1vdXNlUmVsZWFzZUV2ZW50KHBsYXRmb3JtTW91c2VFdmVudCk7CiAKICAgICAgICAgY2FzZSBQ
bGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkOgogICAgICAgICAgICAgaWYgKG9ubHlVcGRhdGVTY3Jv
bGxiYXJzKQotICAgICAgICAgICAgICAgIHJldHVybiBmcmFtZS5ldmVudEhhbmRsZXIoKS5wYXNz
TW91c2VNb3ZlZEV2ZW50VG9TY3JvbGxiYXJzKHBsYXRmb3JtTW91c2VFdmVudCk7Ci0gICAgICAg
ICAgICByZXR1cm4gZnJhbWUuZXZlbnRIYW5kbGVyKCkubW91c2VNb3ZlZChwbGF0Zm9ybU1vdXNl
RXZlbnQpOworICAgICAgICAgICAgICAgIHJldHVybiBwYWdlLT5jb3JlUGFnZSgpLT51c2VySW5w
dXRCcmlkZ2UoKS5oYW5kbGVNb3VzZU1vdmVPblNjcm9sbGJhckV2ZW50KHBsYXRmb3JtTW91c2VF
dmVudCk7CisgICAgICAgICAgICByZXR1cm4gcGFnZS0+Y29yZVBhZ2UoKS0+dXNlcklucHV0QnJp
ZGdlKCkuaGFuZGxlTW91c2VNb3ZlRXZlbnQocGxhdGZvcm1Nb3VzZUV2ZW50KTsKICAgICAgICAg
ZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtMTc1NSw3ICsxNzU2LDcgQEAgc3RhdGljIGJvb2wgaGFuZGxlV2hl
ZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBQYWdlKiBwYWdlKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBQbGF0Zm9ybVdoZWVsRXZlbnQgcGxhdGZvcm1XaGVl
bEV2ZW50ID0gcGxhdGZvcm0od2hlZWxFdmVudCk7Ci0gICAgcmV0dXJuIGZyYW1lLmV2ZW50SGFu
ZGxlcigpLmhhbmRsZVdoZWVsRXZlbnQocGxhdGZvcm1XaGVlbEV2ZW50KTsKKyAgICByZXR1cm4g
cGFnZS0+dXNlcklucHV0QnJpZGdlKCkuaGFuZGxlV2hlZWxFdmVudChwbGF0Zm9ybVdoZWVsRXZl
bnQpOwogfQogCiB2b2lkIFdlYlBhZ2U6OndoZWVsRXZlbnQoY29uc3QgV2ViV2hlZWxFdmVudCYg
d2hlZWxFdmVudCkKQEAgLTE3ODUsOCArMTc4Niw4IEBAIHN0YXRpYyBib29sIGhhbmRsZUtleUV2
ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQmIGtleWJvYXJkRXZlbnQsIFBhZ2UqIHBhZ2UpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChrZXlib2FyZEV2ZW50LnR5cGUoKSA9PSBX
ZWJFdmVudDo6Q2hhciAmJiBrZXlib2FyZEV2ZW50LmlzU3lzdGVtS2V5KCkpCi0gICAgICAgIHJl
dHVybiBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKS5ldmVudEhh
bmRsZXIoKS5oYW5kbGVBY2Nlc3NLZXkocGxhdGZvcm0oa2V5Ym9hcmRFdmVudCkpOwotICAgIHJl
dHVybiBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKS5ldmVudEhh
bmRsZXIoKS5rZXlFdmVudChwbGF0Zm9ybShrZXlib2FyZEV2ZW50KSk7CisgICAgICAgIHJldHVy
biBwYWdlLT51c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVBY2Nlc3NLZXlFdmVudChwbGF0Zm9ybShr
ZXlib2FyZEV2ZW50KSk7CisgICAgcmV0dXJuIHBhZ2UtPnVzZXJJbnB1dEJyaWRnZSgpLmhhbmRs
ZUtleUV2ZW50KHBsYXRmb3JtKGtleWJvYXJkRXZlbnQpKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpr
ZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50JiBrZXlib2FyZEV2ZW50KQpAQCAtMTkyNSwx
MiArMTkyNiwxMiBAQCB2b2lkIFdlYlBhZ2U6OnRvdWNoRXZlbnRTeW5jRm9yVGVzdGluZyhjb25z
dCBXZWJUb3VjaEV2ZW50JiB0b3VjaEV2ZW50LCBib29sJiBoYQogCiBib29sIFdlYlBhZ2U6OnNj
cm9sbChQYWdlKiBwYWdlLCBTY3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxh
cml0eSBncmFudWxhcml0eSkKIHsKLSAgICByZXR1cm4gcGFnZS0+Zm9jdXNDb250cm9sbGVyKCku
Zm9jdXNlZE9yTWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuc2Nyb2xsUmVjdXJzaXZlbHkoZGly
ZWN0aW9uLCBncmFudWxhcml0eSk7CisgICAgcmV0dXJuIHBhZ2UtPnVzZXJJbnB1dEJyaWRnZSgp
LnNjcm9sbFJlY3Vyc2l2ZWx5KGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpOwogfQogCiBib29sIFdl
YlBhZ2U6OmxvZ2ljYWxTY3JvbGwoUGFnZSogcGFnZSwgU2Nyb2xsTG9naWNhbERpcmVjdGlvbiBk
aXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewotICAgIHJldHVybiBw
YWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKS5ldmVudEhhbmRsZXIo
KS5sb2dpY2FsU2Nyb2xsUmVjdXJzaXZlbHkoZGlyZWN0aW9uLCBncmFudWxhcml0eSk7CisgICAg
cmV0dXJuIHBhZ2UtPnVzZXJJbnB1dEJyaWRnZSgpLmxvZ2ljYWxTY3JvbGxSZWN1cnNpdmVseShk
aXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKIH0KIAogYm9vbCBXZWJQYWdlOjpzY3JvbGxCeSh1aW50
MzJfdCBzY3JvbGxEaXJlY3Rpb24sIHVpbnQzMl90IHNjcm9sbEdyYW51bGFyaXR5KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>