<?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>202559</bug_id>
          
          <creation_ts>2019-10-03 21:45:21 -0700</creation_ts>
          <short_desc>[WebAuthn] Implement _WKWebAuthenticationPanel SPI</short_desc>
          <delta_ts>2019-10-04 15:36:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>181943</blocked>
    
    <blocked>191523</blocked>
    
    <blocked>200932</blocked>
    
    <blocked>202563</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1576707</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-03 21:45:21 -0700</bug_when>
    <thetext>Implement _WKWebAuthenticationPanel SPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576708</commentid>
    <comment_count>1</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-03 21:45:48 -0700</bug_when>
    <thetext>&lt;rdar://problem/55932094&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576741</commentid>
    <comment_count>2</comment_count>
      <attachid>380191</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-03 23:42:41 -0700</bug_when>
    <thetext>Created attachment 380191
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576768</commentid>
    <comment_count>3</comment_count>
      <attachid>380196</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-04 01:31:46 -0700</bug_when>
    <thetext>Created attachment 380196
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576780</commentid>
    <comment_count>4</comment_count>
      <attachid>380201</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-04 02:08:26 -0700</bug_when>
    <thetext>Created attachment 380201
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576877</commentid>
    <comment_count>5</comment_count>
      <attachid>380201</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-10-04 09:01:59 -0700</bug_when>
    <thetext>Comment on attachment 380201
Patch

Looks good. Thank you for writing tests!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576879</commentid>
    <comment_count>6</comment_count>
      <attachid>380201</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-04 09:19:31 -0700</bug_when>
    <thetext>Comment on attachment 380201
Patch

Thanks, Brent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576892</commentid>
    <comment_count>7</comment_count>
      <attachid>380201</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-04 09:50:08 -0700</bug_when>
    <thetext>Comment on attachment 380201
Patch

Clearing flags on attachment: 380201

Committed r250729: &lt;https://trac.webkit.org/changeset/250729&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576893</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-04 09:50:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577044</commentid>
    <comment_count>9</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-04 15:22:57 -0700</bug_when>
    <thetext>A build fix is landed:
Committed r250751: &lt;https://trac.webkit.org/changeset/250751&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577051</commentid>
    <comment_count>10</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-10-04 15:31:58 -0700</bug_when>
    <thetext>Another build fix is needed for the use of API::WebAuthenticationPanel in _WKWebAuthenticationPanelInternal.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577053</commentid>
    <comment_count>11</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-10-04 15:36:47 -0700</bug_when>
    <thetext>Never mind.  I think Jiewen&apos;s build fix was sufficient.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380191</attachid>
            <date>2019-10-03 23:42:41 -0700</date>
            <delta_ts>2019-10-04 01:31:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202559-20191003234240.patch</filename>
            <type>text/plain</type>
            <size>85023</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY3MjY5NDUwMDVhZWY5Yjhl
NmQyMjI1YTkwMDdhNjJkN2Q5ZGQ4YWQuLmQzYjdkZmMzMTNjZGNlMjJkYWQxOGE4MmExYmUxYjRh
OGNhNTkxNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAxIEBACisyMDE5LTEwLTAzICBKaWV3ZW4g
VGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBJbXBsZW1l
bnQgX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBTUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjU1OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTU5MzIwOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgU1BJLiBI
ZXJlIGlzIHRoZSBzdHJ1Y3R1cmU6CisgICAgICAgIDEpIEFQSTo6V2ViQXV0aGVudGljYXRpb25Q
YW5lbCBpcyB0aGUgQVBJT2JqZWN0IG9mIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwuIEl0IGlz
IG93bmVkIGJ5IEF1dGhlbnRpY2F0b3JNYW5hZ2VyLgorICAgICAgICBUaGUgbGlmZXRpbWUgb2Yg
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBvbiB0aGUgb3RoZXIgaGFuZCBpcyBtYW5hZ2VkIGJ5
IGNsaWVudHMuIFRoaXMgYmluZGluZyBpcyB0aGUgc3VyZmFjZQorICAgICAgICB3aGVyZSBjbGll
bnRzIGNvdWxkIGludGVyYWN0IHdpdGggV2ViS2l0J3MgV2ViQXV0aGVudGljYXRpb24gaW1wbGVt
ZW50YXRpb24uCisgICAgICAgIDIpIEFQSTo6V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudCBp
cyBhIGJhc2UgY2xhc3MgcmVwcmVzZW50aW5nIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxl
Z2F0ZS4gSXRzIHN1YmNsYXNzCisgICAgICAgIFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25QYW5l
bENsaWVudCBpbXBsZW1lbnRzIGJyaWRnZXMgdG8gX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbERl
bGVnYXRlIG1ldGhvZHMuIEl0IGlzIG93bmVkIGJ5CisgICAgICAgIEFQSTo6V2ViQXV0aGVudGlj
YXRpb25QYW5lbC4gQSB3ZWFrIHBvaW50ZXIgb2YgV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlvblBh
bmVsQ2xpZW50IGlzIGtlcHQgaW4gX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbAorICAgICAgICB0
byBnZXQgdGhlIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZSBzZXQgYnkgY2xpZW50
cyBvciBuaWwgb3RoZXJ3aXNlLiBUaGlzIGJpbmRpbmcgaXMgdGhlIHN1cmZhY2Ugd2hlcmUgV2Vi
S2l0CisgICAgICAgIGludGVyYWN0cyB3aXRoIGNsaWVudHMuCisgICAgICAgIDMpIFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWxGbGFncyBpcyB0aGUgbWlycm9yIG9mIGVudW1zIHdpdGhpbiBfV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsLgorCisgICAgICAgIEltcGxlbWVudGF0aW9uIHdpc2UsIHRoaXMg
cGF0Y2ggaW1wbGVtZW50czoKKyAgICAgICAgMSkgLVtXS1VJRGVsZWdhdGVQcml2YXRlIHdlYlZp
ZXc6cnVuV2ViQXV0aGVudGljYXRpb25QYW5lbDppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25I
YW5kbGVyOl0sIHRoaXMgaXMgYnJpZGdlZCBmcm9tCisgICAgICAgIHRoZSByZWd1bGFyIFVJRGVs
ZWdhdGUgcm91dGUuIE5vdGVkLCBXS0ZyYW1lSW5mbyBpcyBuaWwgZm9yIG5vdywgYSBmb2xsb3cg
dXAgb24gQnVnIDIwMjU2MyB3aWxsIHRha2UgY2FyZSBvZiBpdC4gVGhpcworICAgICAgICB3aWxs
IGJlIGNhbGxlZCBmcm9tIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpydW5QYW5lbCgpIHdoaWNoIGdh
dGVzIHRoZSBzdGFydCBvZiBkaXNjb3Zlcnkgb24gdGhlIGNhbGxiYWNrLiBGb3IgY2xpZW50cwor
ICAgICAgICB0aGF0IGRvbid0IGltcGxlbWVudCB0aGUgZGVsZWdhdGUsIHRoZSBjYWxsYmFjayB3
aWxsIGFsd2F5cyBiZSBjYWxsZWQgd2l0aCBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0
VW5hdmFpbGFibGUKKyAgICAgICAgdG8gYWxsb3cgV2ViS2l0IHJ1biBvbiBub24tVUkgbW9kZS4g
QSBzcGVjaWZpYyBDIEFQSSBoYWNrIGlzIGFkZGVkIHRvIGFsd2F5cyByZXR1cm4gX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbFJlc3VsdFByZXNlbnRlZAorICAgICAgICBpbiBXZWJLaXRUZXN0UnVu
bmVyIGZvciBsYXlvdXQgdGVzdHMuCisgICAgICAgIDIpIC1bX1dLV2ViQXV0aGVudGljYXRpb25Q
YW5lbERlbGVnYXRlIHBhbmVsOnVwZGF0ZVdlYkF1dGhlbnRpY2F0aW9uUGFuZWw6XSB3aWxsIGJl
IGltcGxlbWVudGVkIGluIEJ1ZyAyMDA5MzIuCisgICAgICAgIDMpIC1bX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbERlbGVnYXRlIHBhbmVsOmRpc21pc3NXZWJBdXRoZW50aWNhdGlvblBhbmVsV2l0
aFJlc3VsdDpdLCB0aGlzIGlzIGJyaWRnZWQgZnJvbQorICAgICAgICBBUEk6OldlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwvQVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LiBUaGlzIHdpbGwg
YmUgY2FsbGVkIHdoZW5ldmVyIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjptX3BlbmRpbmdDb21wbGV0
aW9uSGFuZGxlcgorICAgICAgICBpcyBpbnZva2VkLiBEZXBlbmRpbmcgb24gdGhlIHJlc3BvbmQs
IF9XS1dlYkF1dGhlbnRpY2F0aW9uUmVzdWx0IHdpbGwgYmUgcmV0dXJuZWQgYWNjb3JkaW5nbHku
IFRvIGZhY2lsaXRhdGUgdGhhdCwKKyAgICAgICAgaW52b2tlUGVuZGluZ0NvbXBsZXRpb25IYW5k
bGVyIGlzIGNyYWZ0ZWQgdG8gYnVuZGxlIHRob3NlIHR3byBvcGVyYXRpb25zLgorICAgICAgICA0
KSAtW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgY2FuY2VsXSB3aWxsIGJlIGltcGxlbWVudGVk
IGluIEJ1ZyAxOTE1MjMuCisKKyAgICAgICAgQmVzaWRlcyB0aGUgYWJvdmUsIHRoaXMgcGF0Y2gg
YWxzbyBzaWxlbnRzIHRoZSBORkMgYWN0aW9uIHNoZWV0LgorCisgICAgICAgICogU2hhcmVkL0FQ
SS9BUElPYmplY3QuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1tOgorICAg
ICAgICAoQVBJOjpPYmplY3Q6Om5ld09iamVjdCk6CisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJ
Q2xpZW50Lmg6CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpydW5XZWJBdXRoZW50aWNhdGlvblBh
bmVsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vi
QXV0aGVudGljYXRpb25QYW5lbC5tbS4KKyAgICAgICAgKEFQSTo6V2ViQXV0aGVudGljYXRpb25Q
YW5lbDo6Y3JlYXRlKToKKyAgICAgICAgKEFQSTo6V2ViQXV0aGVudGljYXRpb25QYW5lbDo6V2Vi
QXV0aGVudGljYXRpb25QYW5lbCk6CisgICAgICAgIChBUEk6OldlYkF1dGhlbnRpY2F0aW9uUGFu
ZWw6OnNldENsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElXZWJBdXRoZW50aWNh
dGlvblBhbmVsLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0FQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxJbnRlcm5hbC5oLgorICAgICAgICAoQVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50
OjpkaXNtaXNzUGFuZWwgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwOgorICAgICAgICAoV0tQYWdlU2V0UGFnZVVJQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAgICgtW19XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwgZGVhbGxvY10pOgorICAgICAgICAoLVtfV0tXZWJBdXRoZW50aWNhdGlvblBh
bmVsIHJlbHlpbmdQYXJ0eUlEXSk6CisgICAgICAgICgtW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwgZGVsZWdhdGVdKToKKyAgICAgICAgKC1bX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBzZXRE
ZWxlZ2F0ZTpdKToKKyAgICAgICAgKC1bX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBfYXBpT2Jq
ZWN0XSk6CisgICAgICAgICgtW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgX2luaXRXaXRoUmVs
YXlpbmdQYXJ0eUlEOl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbEludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1VJRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5tbToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUpOgorICAgICAg
ICAoV2ViS2l0Ojp3ZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0KToKKyAgICAgICAgKFdlYktp
dDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnJ1bldlYkF1dGhlbnRpY2F0aW9uUGFuZWwpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvcmU6OmlzRmVhdHVyZUVuYWJsZWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb3JlOjpnZXRScElkKToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGlj
YXRvck1hbmFnZXI6OmhhbmRsZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNh
dG9yTWFuYWdlcjo6cmVzcG9uZFJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGlj
YXRvck1hbmFnZXI6OnN0YXJ0RGlzY292ZXJ5KToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGlj
YXRvck1hbmFnZXI6OmluaXRUaW1lT3V0VGltZXIpOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50
aWNhdG9yTWFuYWdlcjo6dGltZU91dFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViS2l0OjpBdXRo
ZW50aWNhdG9yTWFuYWdlcjo6cnVuUGFuZWwpOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNh
dG9yTWFuYWdlcjo6c3RhcnRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRv
ck1hbmFnZXI6Omludm9rZVBlbmRpbmdDb21wbGV0aW9uSGFuZGxlcik6CisgICAgICAgIChXZWJL
aXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VySW50ZXJuYWw6OmNvbGxlY3RUcmFuc3BvcnRzKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvck1hbmFnZXJJbnRlcm5hbDo6cHJv
Y2Vzc0dvb2dsZUxlZ2FjeUFwcElkU3VwcG9ydEV4dGVuc2lvbik6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmg6Cisg
ICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpwZW5kaW5nQ29tcGxldGlvbkhh
bmRsZXIpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9D
b2NvYS9OZmNDb25uZWN0aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpOZmNDb25uZWN0aW9uOjpO
ZmNDb25uZWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29j
b2EvTmZjU2VydmljZS5tbToKKyAgICAgICAgKFdlYktpdDo6TmZjU2VydmljZTo6cGxhdGZvcm1T
dGFydERpc2NvdmVyeSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0Nv
Y29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0
RGF0YS5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJB
dXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lm1tOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tBdXRoZW50aWNhdG9yTWFuYWdlci5j
cHAuCisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ6OldlYkF1
dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQpOgorICAgICAgICAoV2ViS2l0Ojp3a1dlYkF1dGhlbnRp
Y2F0aW9uUmVzdWx0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25QYW5lbENs
aWVudDo6ZGlzbWlzc1BhbmVsIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vTW9jay9Nb2NrQXV0aGVudGljYXRvck1hbmFnZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpNb2NrQXV0aGVudGljYXRvck1hbmFnZXI6OnJlc3BvbmRSZWNlaXZlZEludGVybmFsKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25Q
YW5lbEZsYWdzLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsSW50ZXJuYWwuaC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvclByb3h5OjptYWtlQ3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvclByb3h5OjpnZXRBc3NlcnRpb24pOgorICAgICAgICAqIFdlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE5LTEwLTAzICBDaHJpc3RvcGhlciBSZWlk
ICA8Y2hyaXMucmVpZEBzb255LmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dIFJlbW90ZSBpbnNw
ZWN0b3IgY2xpZW50IHRhcmdldCBsaXN0IGlzIHJhY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElP
YmplY3QuaAppbmRleCA0MDI5ZGY5MGU3Y2UyMjhkYzEzOTU3MjEyNGE1OTZjMjg0ZTgwYWNmLi5i
N2NhOTdhZmEwMGQ5M2MzYjQ5NmI0MWQ1YzA4NmFmMWU5ODIzYWYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQVBJL0FQSU9iamVjdC5oCkBAIC0xNzgsNiArMTc4LDEwIEBAIHB1YmxpYzoKICAgICAgICAg
TWVkaWFTZXNzaW9uTWV0YWRhdGEsCiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJfQVVUSE4pCisg
ICAgICAgIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsCisjZW5kaWYKKwogICAgICAgICAvLyBCdW5k
bGUgdHlwZXMKICAgICAgICAgQnVuZGxlLAogICAgICAgICBCdW5kbGVCYWNrRm9yd2FyZExpc3Qs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BUElPYmplY3QubW0gYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BUElPYmplY3QubW0KaW5kZXggNTdjMzJiMmY5YWIy
MWE4YmVhMWFmOGEwY2VlOWI3NmJhM2U4ODBlZS4uMTQzZWIwODkxYjlmMmJhYzRiMDAxYjExNDZl
YmQzODY3NzY1NGZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQVBJ
T2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbQpA
QCAtODQsNiArODQsNyBAQAogI2ltcG9ydCAiX1dLVXNlckluaXRpYXRlZEFjdGlvbkludGVybmFs
LmgiCiAjaW1wb3J0ICJfV0tVc2VyU3R5bGVTaGVldEludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tW
aXNpdGVkTGlua1N0b3JlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIl9XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWxJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b25JbnRlcm5hbC5oIgogCiAjaWYgRU5BQkxFKEFQUExJQ0FUSU9OX01BTklGRVNUKQpAQCAtMzY0
LDYgKzM2NSwxMiBAQCB2b2lkKiBPYmplY3Q6Om5ld09iamVjdChzaXplX3Qgc2l6ZSwgVHlwZSB0
eXBlKQogICAgICAgICB3cmFwcGVyID0gW1dLV2luZG93RmVhdHVyZXMgYWxsb2NdOwogICAgICAg
ICBicmVhazsKIAorI2lmIEVOQUJMRShXRUJfQVVUSE4pCisgICAgY2FzZSBUeXBlOjpXZWJBdXRo
ZW50aWNhdGlvblBhbmVsOgorICAgICAgICB3cmFwcGVyID0gW19XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWwgYWxsb2NdOworICAgICAgICBicmVhazsKKyNlbmRpZgorCiAgICAgY2FzZSBUeXBlOjpC
dW5kbGVGcmFtZToKICAgICAgICAgd3JhcHBlciA9IFtXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSBh
bGxvY107CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggZmE1MjYxZjU0YzU1MTA2NGE0
YjcyMGRjYjM5OGYyYjUxNzIyOWI5ZC4uMzczZDY1NWYxMGFmOGIzODAzNWI5NmJhYzdkOGYyOTUy
YjBhNjhiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0zMTgsNiArMzE4LDcgQEAgVUlQcm9jZXNzL0FQSS9B
UElVUkxTY2hlbWVUYXNrLmNwcAogVUlQcm9jZXNzL0FQSS9BUElVc2VyQ29udGVudFdvcmxkLmNw
cAogVUlQcm9jZXNzL0FQSS9BUElVc2VyU2NyaXB0LmNwcAogVUlQcm9jZXNzL0FQSS9BUElVc2Vy
U3R5bGVTaGVldC5jcHAKK1VJUHJvY2Vzcy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5j
cHAKIFVJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmNwcAogVUlQcm9jZXNzL0FQSS9B
UElXaW5kb3dGZWF0dXJlcy5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGI3ZjBhYjZl
MDc4MTkyZDVhNGQ5NTM2YWU1YzA0YTBlYjNhOTUxM2QuLmIzZjEyMjI0YTg1ZDQ4MDIyYjgyNzcx
OTY4Mzg5ZmY1ZTA5NjA4OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTUwMyw2ICs1MDMs
NyBAQCBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmVhckZpZWxkU29mdExpbmsu
bW0gQG5vLXVuaWZ5CiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZjQ29ubmVj
dGlvbi5tbQogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY1NlcnZpY2UubW0K
IFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XS05GUmVhZGVyU2Vzc2lvbkRlbGVn
YXRlLm1tCitVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRp
b25QYW5lbENsaWVudC5tbQogCiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2Nr
TG9jYWxDb25uZWN0aW9uLm1tCiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2Nr
TG9jYWxTZXJ2aWNlLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5o
CmluZGV4IDc3MmRhNmU1YTg2OTc3ZWM4YWUyZGMwNzU0MmQ4ZmNmMWUxNDk2MWIuLmRkZDZlNjIz
NTQ5MTBiNmIyNjhiNGY5YjM1NjY0ZWVhMjFlOGJjZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC0zOCw2ICszOCwxMCBAQCBPQkpDX0NMQVNTIF9XS0Fj
dGl2YXRlZEVsZW1lbnRJbmZvOwogT0JKQ19DTEFTUyBVSVZpZXdDb250cm9sbGVyOwogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorI2luY2x1ZGUgIldlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxGbGFncy5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlZ2lzdHJh
YmxlRG9tYWluOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwpAQCAtNjksNiArNzMsOSBAQCBjbGFz
cyBEaWN0aW9uYXJ5OwogY2xhc3MgT2JqZWN0OwogY2xhc3MgT3BlblBhbmVsUGFyYW1ldGVyczsK
IGNsYXNzIFNlY3VyaXR5T3JpZ2luOworI2lmIEVOQUJMRShXRUJfQVVUSE4pCitjbGFzcyBXZWJB
dXRoZW50aWNhdGlvblBhbmVsOworI2VuZGlmCiAKIGNsYXNzIFVJQ2xpZW50IHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTE4OCw2ICsxOTUsMTAgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBkaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3Jv
dW5kKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV0tSZXNvdXJjZUxpbWl0KSB7IH0KICAgICAKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkU2hvd1NhZmVCcm93c2luZ1dhcm5pbmcoKSB7IH0KKworI2lmIEVO
QUJMRShXRUJfQVVUSE4pCisgICAgdmlydHVhbCB2b2lkIHJ1bldlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJBdXRoZW50aWNhdGlvblBhbmVsJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKFdlYktpdDo6V2ViQXV0aGVu
dGljYXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUpOyB9CisjZW5kaWYKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwZDJkMWEyNGMyMWMy
OWUyOTc1OGZiMmZmYmI1YWFjZjU3ZjNiYmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5jcHAKQEAgLTAsMCAr
MSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBUElX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCisjaW5j
bHVkZSAiQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oIgorCituYW1lc3BhY2UgQVBJ
IHsKKworUmVmPFdlYkF1dGhlbnRpY2F0aW9uUGFuZWw+IFdlYkF1dGhlbnRpY2F0aW9uUGFuZWw6
OmNyZWF0ZShjb25zdCBTdHJpbmcmIHJwSWQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
V2ViQXV0aGVudGljYXRpb25QYW5lbChycElkKSk7Cit9CisKK1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWw6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWwoY29uc3QgU3RyaW5nJiBycElkKQorICAgIDogbV9y
cElkKHJwSWQpCisgICAgLCBtX2NsaWVudChXVEY6Om1ha2VVbmlxdWVSZWY8V2ViQXV0aGVudGlj
YXRpb25QYW5lbENsaWVudD4oKSkKK3sKK30KKworV2ViQXV0aGVudGljYXRpb25QYW5lbDo6fldl
YkF1dGhlbnRpY2F0aW9uUGFuZWwoKSA9IGRlZmF1bHQ7CisKK3ZvaWQgV2ViQXV0aGVudGljYXRp
b25QYW5lbDo6c2V0Q2xpZW50KFVuaXF1ZVJlZjxXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50
PiYmIGNsaWVudCkKK3sKKyAgICBtX2NsaWVudCA9IFdURk1vdmUoY2xpZW50KTsKK30KKworfSAv
LyBuYW1lc3BhY2UgQVBJCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVs
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzUwNDg4NmMwNGMwMzNhYTI2ZDI1ZDhmMTM1MDNkNWY5Zjk3NTgyZgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgor
I2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgQVBJIHsKKworY2xhc3Mg
V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudDsKKworY2xhc3MgV2ViQXV0aGVudGljYXRpb25Q
YW5lbCBmaW5hbCA6IHB1YmxpYyBPYmplY3RJbXBsPE9iamVjdDo6VHlwZTo6V2ViQXV0aGVudGlj
YXRpb25QYW5lbD4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXZWJBdXRoZW50aWNhdGlvblBhbmVs
PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJBdXRoZW50aWNhdGlvblBhbmVsPiBjcmVh
dGUoY29uc3QgU3RyaW5nJiBycElkKTsKKyAgICB+V2ViQXV0aGVudGljYXRpb25QYW5lbCgpOwor
CisgICAgV1RGOjpTdHJpbmcgcnBJZCgpIGNvbnN0IHsgcmV0dXJuIG1fcnBJZDsgfQorCisgICAg
Y29uc3QgV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudCYgY2xpZW50KCkgY29uc3QgeyByZXR1
cm4gbV9jbGllbnQuZ2V0KCk7IH0KKyAgICB2b2lkIHNldENsaWVudChVbmlxdWVSZWY8V2ViQXV0
aGVudGljYXRpb25QYW5lbENsaWVudD4mJik7CisKK3ByaXZhdGU6CisgICAgV2ViQXV0aGVudGlj
YXRpb25QYW5lbChjb25zdCBTdHJpbmcmIHJwSWQpOworCisgICAgV1RGOjpTdHJpbmcgbV9ycElk
OworICAgIFVuaXF1ZVJlZjxXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50PiBtX2NsaWVudDsK
K307CisKK30gLy8gbmFtZXNwYWNlIEFQSQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJBdXRoZW50aWNh
dGlvblBhbmVsQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2ViQXV0
aGVudGljYXRpb25QYW5lbENsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViNmE5YzdhNjM5NmE3Zjg4NjI0
YWQ5NGJhYWExOWZhODRkOTFkOGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oCkBAIC0wLDAgKzEs
NDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVUSE4p
CisKK25hbWVzcGFjZSBXZWJLaXQgeworZW51bSBjbGFzcyBXZWJBdXRoZW50aWNhdGlvblJlc3Vs
dCA6IGJvb2w7Cit9CisKK25hbWVzcGFjZSBBUEkgeworCitjbGFzcyBXZWJBdXRoZW50aWNhdGlv
blBhbmVsQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAg
ICB2aXJ0dWFsIH5XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50KCkgPSBkZWZhdWx0OworCisg
ICAgdmlydHVhbCB2b2lkIGRpc21pc3NQYW5lbChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0aW9uUmVz
dWx0KSBjb25zdCB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIEFQSQorCisjZW5kaWYgLy8gRU5B
QkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmlu
ZGV4IDJmNWY4MGMwNzk1NTMzZGNkZDQyYzdhZjkzZmM2MGM3ZWQ3MjNkOTQuLjEwNDU1MmJmYjE2
NzQyN2JkOWFiNzlmMzY5OGM3MzdlYjJiNmE3MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmNwcApAQCAtMTE2LDcgKzExNiw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IENs
aWVudFRyYWl0czxXS1BhZ2VQb2xpY3lDbGllbnRCYXNlPiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0
cnVjdCBDbGllbnRUcmFpdHM8V0tQYWdlVUlDbGllbnRCYXNlPiB7Ci0gICAgdHlwZWRlZiBzdGQ6
OnR1cGxlPFdLUGFnZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50
VjIsIFdLUGFnZVVJQ2xpZW50VjMsIFdLUGFnZVVJQ2xpZW50VjQsIFdLUGFnZVVJQ2xpZW50VjUs
IFdLUGFnZVVJQ2xpZW50VjYsIFdLUGFnZVVJQ2xpZW50VjcsIFdLUGFnZVVJQ2xpZW50VjgsIFdL
UGFnZVVJQ2xpZW50VjksIFdLUGFnZVVJQ2xpZW50VjEwLCBXS1BhZ2VVSUNsaWVudFYxMSwgV0tQ
YWdlVUlDbGllbnRWMTIsIFdLUGFnZVVJQ2xpZW50VjEzPiBWZXJzaW9uczsKKyAgICB0eXBlZGVm
IHN0ZDo6dHVwbGU8V0tQYWdlVUlDbGllbnRWMCwgV0tQYWdlVUlDbGllbnRWMSwgV0tQYWdlVUlD
bGllbnRWMiwgV0tQYWdlVUlDbGllbnRWMywgV0tQYWdlVUlDbGllbnRWNCwgV0tQYWdlVUlDbGll
bnRWNSwgV0tQYWdlVUlDbGllbnRWNiwgV0tQYWdlVUlDbGllbnRWNywgV0tQYWdlVUlDbGllbnRW
OCwgV0tQYWdlVUlDbGllbnRWOSwgV0tQYWdlVUlDbGllbnRWMTAsIFdLUGFnZVVJQ2xpZW50VjEx
LCBXS1BhZ2VVSUNsaWVudFYxMiwgV0tQYWdlVUlDbGllbnRWMTMsIFdLUGFnZVVJQ2xpZW50VjE0
PiBWZXJzaW9uczsKIH07CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKQEAgLTIwNzMsNiAr
MjA3MywxOCBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwg
Y29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAogCiAgICAgICAgICAgICBtX2NsaWVu
dC5oYW5kbGVBdXRvcGxheUV2ZW50KHRvQVBJKCZwYWdlKSwgdG9XS0F1dG9wbGF5RXZlbnQoZXZl
bnQpLCB0b1dLQXV0b3BsYXlFdmVudEZsYWdzKGZsYWdzKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJ
bmZvKTsKICAgICAgICAgfQorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKyAgICAgICAgLy8gVGhl
IGN1cnJlbnQgbWV0aG9kIGlzIHNwZWNpYWxpemVkIGZvciBXZWJLaXRUZXN0UnVubmVyLgorICAg
ICAgICB2b2lkIHJ1bldlYkF1dGhlbnRpY2F0aW9uUGFuZWwoV2ViUGFnZVByb3h5JiwgQVBJOjpX
ZWJBdXRoZW50aWNhdGlvblBhbmVsJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJLaXQ6Oldl
YkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LnJ1bldlYkF1dGhlbnRpY2F0aW9u
UGFuZWwpIHsKKyAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXZWJLaXQ6OldlYkF1
dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXZWJL
aXQ6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OlByZXNlbnRlZCk7CisgICAgICAgIH0K
KyNlbmRpZgogICAgIH07CiAKICAgICB0b0ltcGwocGFnZVJlZiktPnNldFVJQ2xpZW50KG1ha2VV
bmlxdWU8VUlDbGllbnQ+KHdrQ2xpZW50KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlVUlDbGllbnQuaAppbmRleCBkMjZlZTkyMzdjOTNkZDBkMDY0NjJhNjIxOWFj
ZDM1Mzc2ZmNhZWU3Li4xZDJmZWJmYmE4ODMzOTEyZjcyMjE2YWE1M2M4YzIwMDkwZWUyZDhiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKQEAg
LTEzNiw2ICsxMzYsOCBAQCB0eXBlZGVmIHZvaWQgKCpXS0RpZEV4Y2VlZEJhY2tncm91bmRSZXNv
dXJjZUxpbWl0V2hpbGVJbkZvcmVncm91bmRDYWxsYmFjaykoV0tQYQogdHlwZWRlZiB2b2lkICgq
V0tQYWdlRGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlQ2FsbGJh
Y2spKFdLUGFnZVJlZiBwYWdlLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVu
dEluZm8pOwogdHlwZWRlZiBib29sICgqV0tQYWdlU2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2Vzc0NhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTZWN1cml0eU9yaWdp
blJlZiBzZWN1cml0eU9yaWdpbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiAKK3R5cGVkZWYg
dm9pZCAoKldLUGFnZVJ1bldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDYWxsYmFjaykoKTsKKwogLy8g
RGVwcmVjYXRlZAogdHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJh
Y2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2UsIFdLRGljdGlvbmFyeVJl
ZiBmZWF0dXJlcywgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRv
biBtb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgICAg
ICAoKldLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2UsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS1R5
cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwpAQCAtMTI0NSw2ICsxMjQ3
LDExMyBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudFYxMyB7CiAgICAgV0tQYWdlU2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NhbGxiYWNrICAgICAgICAg
ICBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzOwogfSBXS1BhZ2VV
SUNsaWVudFYxMzsKIAordHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnRWMTQgeworICAgIFdL
UGFnZVVJQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQ
YWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgICAgICAgIGNyZWF0
ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dQYWdl
OworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2xvc2U7CisgICAgV0tQYWdlVGFrZUZvY3VzQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlRm9jdXM7CisgICAg
V0tQYWdlRm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmb2N1czsKKyAgICBXS1BhZ2VVbmZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZm9jdXM7CisgICAgV0tQYWdlUnVu
SmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAg
ICBydW5KYXZhU2NyaXB0QWxlcnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VS
dW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAg
ICAgIHJ1bkphdmFTY3JpcHRDb25maXJtX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQ
YWdlUnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAg
ICAgICAgICBydW5KYXZhU2NyaXB0UHJvbXB0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAg
V0tQYWdlU2V0U3RhdHVzVGV4dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZXRTdGF0dXNUZXh0OworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVt
ZW50Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgbW91c2VEaWRNb3ZlT3Zl
ckVsZW1lbnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VNaXNzaW5nUGx1Z2lu
QnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgIG1pc3NpbmdQ
bHVnaW5CdXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlRGlk
Tm90SGFuZGxlS2V5RXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkaWROb3RIYW5kbGVLZXlFdmVudDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVXaGVlbEV2ZW50
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRsZVdoZWVs
RXZlbnQ7CisgICAgV0tQYWdlR2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0b29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdlU2V0
VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZXRUb29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdlR2V0TWVudUJhcklzVmlzaWJsZUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51QmFySXNWaXNpYmxl
OworICAgIFdLUGFnZVNldE1lbnVCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2V0TWVudUJhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRTdGF0
dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXR1c0JhcklzVmlzaWJsZTsK
KyAgICBXS1BhZ2VHZXRJc1Jlc2l6YWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlzUmVzaXphYmxlOworICAgIFdLUGFnZVNldElzUmVzaXphYmxlQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNSZXNpemFi
bGU7CisgICAgV0tQYWdlR2V0V2luZG93RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnZXRXaW5kb3dGcmFtZTsKKyAgICBXS1BhZ2VTZXRXaW5kb3dG
cmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFdp
bmRvd0ZyYW1lOworICAgIFdLUGFnZVJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbENhbGxiYWNr
X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjYgICAgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsX2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjY7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWREcmF3OworICAgIFdLUGFn
ZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFnZURpZFNjcm9sbDsKKyAgICBXS1BhZ2VFeGNlZWRlZERhdGFiYXNlUXVvdGFDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VlZGVkRGF0YWJhc2VRdW90
YTsKKyAgICBXS1BhZ2VSdW5PcGVuUGFuZWxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJ1bk9wZW5QYW5lbDsKKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lG
b3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgIGRlY2lkZVBv
bGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CisgICAgV0tQYWdlSGVhZGVySGVp
Z2h0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFk
ZXJIZWlnaHQ7CisgICAgV0tQYWdlRm9vdGVySGVpZ2h0Q2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmb290ZXJIZWlnaHQ7CisgICAgV0tQYWdlRHJhd0hl
YWRlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
cmF3SGVhZGVyOworICAgIFdLUGFnZURyYXdGb290ZXJDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0Zvb3RlcjsKKyAgICBXS1BhZ2VQcmludEZy
YW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBy
aW50RnJhbWU7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBydW5Nb2RhbDsKKyAgICB2b2lkKiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNl
ZDE7IC8vIFVzZWQgdG8gYmUgZGlkQ29tcGxldGVSdWJiZXJCYW5kRm9yTWFpbkZyYW1lCisgICAg
V0tQYWdlU2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlckNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICBzYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyOworICAgIHZvaWQqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdF91bmF2YWlsYWJsZTsKKworICAgIC8vIFZlcnNp
b24gMS4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdp
dGhWMSAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhW
MTsKKyAgICBXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50OworICAgIFdLUGFnZURl
Y2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAg
ICAgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CisgICAgV0tQ
YWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWMSB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVzZVdp
dGhWMTsKKworICAgIC8vIFZlcnNpb24gMi4KKyAgICBXS1BhZ2VTaG93Q29sb3JQaWNrZXJDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dDb2xvclBpY2tl
cjsKKyAgICBXS1BhZ2VIaWRlQ29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhpZGVDb2xvclBpY2tlcjsKKyAgICBXS1BhZ2VVbmF2YWlsYWJs
ZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgIHVuYXZh
aWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZDsKKworICAgIC8vIFZlcnNpb24gMy4KKyAgICBXS1Bh
Z2VQaW5uZWRTdGF0ZURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBpbm5lZFN0YXRlRGlkQ2hhbmdlOworCisgICAgLy8gVmVyc2lvbiA0LgorICAgIHZv
aWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW51c2VkMjsgLy8gVXNlZCB0byBiZSBkaWRCZWdpblRyYWNraW5nUG90ZW50aWFs
TG9uZ01vdXNlUHJlc3MuCisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQzOyAvLyBVc2VkIHRvIGJlIGRp
ZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzLgorICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkNDsgLy8gVXNl
ZCB0byBiZSBkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzLgorICAgIFdL
UGFnZUlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2U7CisKKyAgICAvLyBWZXJzaW9uIDUuCisg
ICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsYmFj
ayAgICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdDsK
KyAgICBXS1BhZ2VEaWRDbGlja0F1dG9GaWxsQnV0dG9uQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRpZENsaWNrQXV0b0ZpbGxCdXR0b247CisgICAgV0tQYWdlUnVuSmF2
YVNjcmlwdEFsZXJ0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgICBy
dW5KYXZhU2NyaXB0QWxlcnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICBXS1BhZ2VSdW5K
YXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjUgICAgICAgICAg
IHJ1bkphdmFTY3JpcHRDb25maXJtX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjU7CisgICAgV0tQYWdl
UnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjUgICAgICAg
ICAgICBydW5KYXZhU2NyaXB0UHJvbXB0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjU7CisgICAgV0tQ
YWdlTWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICBtZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZTsKKworICAgIC8vIFZlcnNpb24g
Ni4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2U7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlw
dEFsZXJ0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZh
U2NyaXB0QWxlcnQ7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdENvbmZpcm1DYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0Q29uZmlybTsKKyAgICBX
S1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHQ7CisgICAgV0tDaGVja1VzZXJNZWRpYVBlcm1p
c3Npb25DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1VzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW47CisKKyAgICAvLyBWZXJzaW9uIDcuCisgICAgV0tQYWdl
UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw7CisgICAgV0tGdWxsc2NyZWVuTWF5UmV0
dXJuVG9JbmxpbmVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsc2Ny
ZWVuTWF5UmV0dXJuVG9JbmxpbmU7CisKKyAgICAvLyBWZXJzaW9uIDguCisgICAgV0tSZXF1ZXN0
UG9pbnRlckxvY2tDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXF1ZXN0UG9pbnRlckxvY2s7CisgICAgV0tEaWRMb3NlUG9pbnRlckxvY2tDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRMb3NlUG9pbnRlckxvY2s7
CisKKyAgICAvLyBWZXJzaW9uIDkuCisgICAgV0tIYW5kbGVBdXRvcGxheUV2ZW50Q2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVBdXRvcGxheUV2ZW50
OworCisgICAgLy8gVmVyc2lvbiAxMC4KKyAgICBXS0hhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJl
RGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIGhhc1ZpZGVvSW5QaWN0dXJl
SW5QaWN0dXJlRGlkQ2hhbmdlOworICAgIFdLRGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGlt
aXRXaGlsZUluRm9yZWdyb3VuZENhbGxiYWNrICAgICAgICAgZGlkRXhjZWVkQmFja2dyb3VuZFJl
c291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZDsKKworICAgIC8vIFZlcnNpb24gMTEuCisgICAg
V0tQYWdlRGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlQ2FsbGJh
Y2sgICAgICAgICBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2U7
CisKKyAgICAvLyBWZXJzaW9uIDEyLgorICAgIFdLUGFnZVJlcXVlc3RTdG9yYWdlQWNjZXNzQ29u
ZmlybUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0b3JhZ2VBY2Nl
c3NDb25maXJtOworCisgICAgLy8gVmVyc2lvbiAxMy4KKyAgICBXS1BhZ2VTaG91bGRBbGxvd0Rl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ2FsbGJhY2sgICAgICAgICAgIHNob3VsZEFs
bG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3M7CisKKyAgICAvLyBWZXJzaW9uIDE0
LgorICAgIFdLUGFnZVJ1bldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcnVuV2ViQXV0aGVudGljYXRpb25QYW5lbDsKK30gV0tQYWdlVUlD
bGllbnRWMTQ7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5l
bC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNh
dGlvblBhbmVsLm1tCmluZGV4IDQxYjJjMDc2YzE4NTJlZWI0NTAyNWJiOGI3MWEzMTA1OTI5OTc3
MTIuLmY1MzVjNjAxNzAxODhlNDNmODBlNGVjNmJmZjM3OTc2ZGFjMjg0N2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBh
bmVsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLm1tCkBAIC0yNCwyOSArMjQsNTAgQEAKICAqLwogCiAjaW1wb3J0ICJj
b25maWcuaCIKKyNpbXBvcnQgIldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaCIKICNpbXBv
cnQgIl9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxJbnRlcm5hbC5oIgogCiAjaW1wb3J0IDx3dGYv
UmV0YWluUHRyLmg+CiAKLUBpbXBsZW1lbnRhdGlvbiBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
ICB7Ci0gICAgUmV0YWluUHRyPE5TU3RyaW5nPiBfcmVseWluZ1BhcnR5SUQ7CitAaW1wbGVtZW50
YXRpb24gX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCB7CisgICAgV2Vha1B0cjxXZWJLaXQ6Oldl
YkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ+IF9jbGllbnQ7CiB9CiAKLS0gKGluc3RhbmNldHlw
ZSlfaW5pdFdpdGhSZWxheWluZ1BhcnR5SUQ6KE5TU3RyaW5nICopcmVsYXlpbmdQYXJ0eUlECist
ICh2b2lkKWRlYWxsb2MKIHsKLSAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKLSAgICAg
ICAgcmV0dXJuIG5pbDsKLSAgICBfcmVseWluZ1BhcnR5SUQgPSByZWxheWluZ1BhcnR5SUQ7Ci0g
ICAgcmV0dXJuIHNlbGY7CisgICAgX3BhbmVsLT5+V2ViQXV0aGVudGljYXRpb25QYW5lbCgpOwor
CisgICAgW3N1cGVyIGRlYWxsb2NdOwogfQogCiAtIChOU1N0cmluZyAqKXJlbHlpbmdQYXJ0eUlE
CiB7Ci0gICAgcmV0dXJuIF9yZWx5aW5nUGFydHlJRC5nZXQoKTsKKyAgICByZXR1cm4gX3BhbmVs
LT5ycElkKCk7Cit9CisKKy0gKGlkIDxfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGU+
KWRlbGVnYXRlCit7CisgICAgaWYgKCFfY2xpZW50KQorICAgICAgICByZXR1cm4gbmlsOworICAg
IHJldHVybiBfY2xpZW50LT5kZWxlZ2F0ZSgpLmF1dG9yZWxlYXNlKCk7Cit9CisKKy0gKHZvaWQp
c2V0RGVsZWdhdGU6KGlkPF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZT4pZGVsZWdh
dGUKK3sKKyAgICBhdXRvIGNsaWVudCA9IFdURjo6bWFrZVVuaXF1ZVJlZjxXZWJLaXQ6OldlYkF1
dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ+KHNlbGYsIGRlbGVnYXRlKTsKKyAgICBfY2xpZW50ID0g
bWFrZVdlYWtQdHIoY2xpZW50LmdldCgpKTsKKyAgICBfcGFuZWwtPnNldENsaWVudChXVEZNb3Zl
KGNsaWVudCkpOwogfQogCiAtICh2b2lkKWNhbmNlbAogewogfQogCisjcHJhZ21hIG1hcmsgV0tP
YmplY3QgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24KKworLSAoQVBJOjpPYmplY3QmKV9hcGlPYmpl
Y3QKK3sKKyAgICByZXR1cm4gKl9wYW5lbDsKK30KKwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxJbnRl
cm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxJbnRlcm5hbC5oCmluZGV4IDQzNWE0YWNmMzlmYjQ0YzQxYjIxZjg0MmFjNDYz
OGJhNDA0ZjZiMDAuLmNhMDI2NjdlYmVlZmM0MmRlZThlMGQzNDgyNjM5ZTAyOTMyODc4NjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50
aWNhdGlvblBhbmVsSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbEludGVybmFsLmgKQEAgLTI3LDggKzI3LDE5
IEBACiAKICNpbXBvcnQgIl9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaCIKIAotQGludGVyZmFj
ZSBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsICgpCisjaW1wb3J0ICJBUElXZWJBdXRoZW50aWNh
dGlvblBhbmVsLmgiCisjaW1wb3J0ICJXS09iamVjdC5oIgogCi0tIChpbnN0YW5jZXR5cGUpX2lu
aXRXaXRoUmVsYXlpbmdQYXJ0eUlEOihOU1N0cmluZyAqKXJlbGF5aW5nUGFydHlJRDsKK25hbWVz
cGFjZSBXZWJLaXQgewogCit0ZW1wbGF0ZTw+IHN0cnVjdCBXcmFwcGVyVHJhaXRzPEFQSTo6V2Vi
QXV0aGVudGljYXRpb25QYW5lbD4geworICAgIHVzaW5nIFdyYXBwZXJDbGFzcyA9IF9XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWw7Cit9OworCit9CisKK0BpbnRlcmZhY2UgX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbCAoKSA8V0tPYmplY3Q+IHsKK0BwYWNrYWdlCisgICAgQVBJOjpPYmplY3RTdG9y
YWdlPEFQSTo6V2ViQXV0aGVudGljYXRpb25QYW5lbD4gX3BhbmVsOworfQogQGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCmluZGV4IGJkMjBhODE5N2U5NGRl
YTRjYzRjODAzMDljNTc2N2MyMTZhZTBhNWYuLjgxZjc4YWEwZmY4MWQ2NTZkODQxZTI3Y2VmYTcz
NmZhMzI0ZTdjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRl
LmgKQEAgLTE1NCw2ICsxNTQsOSBAQCBwcml2YXRlOgogCiAgICAgICAgIHZvaWQgaW1hZ2VPck1l
ZGlhRG9jdW1lbnRTaXplQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgZmluYWw7CiAg
ICAgICAgIHZvaWQgZGlkU2hvd1NhZmVCcm93c2luZ1dhcm5pbmcoKSBmaW5hbDsKKyNpZiBFTkFC
TEUoV0VCX0FVVEhOKQorICAgICAgICB2b2lkIHJ1bldlYkF1dGhlbnRpY2F0aW9uUGFuZWwoV2Vi
UGFnZVByb3h5JiwgQVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0KT4mJikgZmluYWw7CisjZW5kaWYK
IAogICAgICAgICBVSURlbGVnYXRlJiBtX3VpRGVsZWdhdGU7CiAgICAgfTsKQEAgLTIzNCw2ICsy
MzcsOSBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgICAgIGJvb2wgd2ViVmlld0hhc1ZpZGVvSW5Q
aWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkU2hv
d1NhZmVCcm93c2luZ1dhcm5pbmcgOiAxOworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisgICAgICAg
IGJvb2wgd2ViVmlld1J1bldlYkF1dGhlbnRpY2F0aW9uUGFuZWxJbml0aWF0ZWRCeUZyYW1lQ29t
cGxldGlvbkhhbmRsZXIgOiAxOworI2VuZGlmCiAgICAgfSBtX2RlbGVnYXRlTWV0aG9kczsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCmluZGV4IDdi
NjI0YWJmYTJmNDExMDQwYTA2YjJiMjY3ZGJiYjMyY2Q4MWNkMTYuLjNlYzQyY2VmMmU2NGE3ZDZh
MzMzYzY3YjhmNzZkYTZiMzM2OTY1MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5tbQpAQCAtNTIsNiArNTIsNyBAQAogI2ltcG9ydCAiX1dLQ29udGV4dE1l
bnVFbGVtZW50SW5mby5oIgogI2ltcG9ydCAiX1dLRnJhbWVIYW5kbGVJbnRlcm5hbC5oIgogI2lt
cG9ydCAiX1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmgiCisjaW1wb3J0ICJfV0tXZWJBdXRoZW50
aWNhdGlvblBhbmVsSW50ZXJuYWwuaCIKICNpbXBvcnQgPFdlYkNvcmUvRm9udEF0dHJpYnV0ZXMu
aD4KICNpbXBvcnQgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW1wb3J0IDx3dGYv
QmxvY2tQdHIuaD4KQEAgLTE3Miw2ICsxNzMsOSBAQCB2b2lkIFVJRGVsZWdhdGU6OnNldERlbGVn
YXRlKGlkIDxXS1VJRGVsZWdhdGU+IGRlbGVnYXRlKQogICAgIAogICAgIG1fZGVsZWdhdGVNZXRo
b2RzLndlYlZpZXdIYXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZSA9IFtkZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3Omhhc1ZpZGVvSW5QaWN0dXJl
SW5QaWN0dXJlRGlkQ2hhbmdlOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRT
aG93U2FmZUJyb3dzaW5nV2FybmluZyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3RGlkU2hvd1NhZmVCcm93c2luZ1dhcm5pbmc6KV07CisjaWYgRU5BQkxF
KFdFQl9BVVRITikKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UnVuV2ViQXV0aGVudGlj
YXRpb25QYW5lbEluaXRpYXRlZEJ5RnJhbWVDb21wbGV0aW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6cnVuV2ViQXV0aGVudGljYXRpb25Q
YW5lbDppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25IYW5kbGVyOildOworI2VuZGlmCiB9CiAK
ICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKQEAgLTEyNjEsNiArMTI2NSw0NiBAQCB2b2lkIFVJ
RGVsZWdhdGU6OlVJQ2xpZW50OjpkaWRTaG93U2FmZUJyb3dzaW5nV2FybmluZygpCiAgICAgW3N0
YXRpY19jYXN0PGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPj4oZGVsZWdhdGUpIF93ZWJWaWV3RGlk
U2hvd1NhZmVCcm93c2luZ1dhcm5pbmc6bV91aURlbGVnYXRlLm1fd2ViVmlld107CiB9CiAKKyNp
ZiBFTkFCTEUoV0VCX0FVVEhOKQorCitzdGF0aWMgV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3Vs
dCB3ZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxS
ZXN1bHQgcmVzdWx0KQoreworICAgIHN3aXRjaCAocmVzdWx0KSB7CisgICAgY2FzZSBfV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsUmVzdWx0VW5hdmFpbGFibGU6CisgICAgICAgIHJldHVybiBXZWJB
dXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZTsKKyAgICBjYXNlIF9XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHRQcmVzZW50ZWQ6CisgICAgICAgIHJldHVybiBXZWJBdXRo
ZW50aWNhdGlvblBhbmVsUmVzdWx0OjpQcmVzZW50ZWQ7CisgICAgY2FzZSBfV0tXZWJBdXRoZW50
aWNhdGlvblBhbmVsUmVzdWx0RGlkTm90UHJlc2VudDoKKyAgICAgICAgcmV0dXJuIFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWxSZXN1bHQ6OkRpZE5vdFByZXNlbnQ7CisgICAgfQorICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpV
bmF2YWlsYWJsZTsKK30KKwordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cnVuV2ViQXV0aGVu
dGljYXRpb25QYW5lbChXZWJQYWdlUHJveHkmLCBBUEk6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWwm
IHBhbmVsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1
bHQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV91aURlbGVnYXRlLm1fZGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdSdW5XZWJBdXRoZW50aWNhdGlvblBhbmVsSW5pdGlhdGVkQnlG
cmFtZUNvbXBsZXRpb25IYW5kbGVyKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQo
KTsKKyAgICBpZiAoIWRlbGVnYXRlKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGF1dG8gY2hlY2tlciA9IENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6
OmNyZWF0ZShkZWxlZ2F0ZS5nZXQoKSwgQHNlbGVjdG9yKHdlYlZpZXc6cnVuV2ViQXV0aGVudGlj
YXRpb25QYW5lbDppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25IYW5kbGVyOikpOworICAgIFso
aWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIHdlYlZpZXc6bV91aURlbGVnYXRlLm1f
d2ViVmlldyBydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsOndyYXBwZXIocGFuZWwpIGluaXRpYXRl
ZEJ5RnJhbWU6bmlsIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgY2hlY2tlciA9IFdURk1vdmUoY2hl
Y2tlcildIChfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0IHJlc3VsdCkgbXV0YWJsZSB7
CisgICAgICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25I
YW5kbGVyKCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxSZXN1bHQocmVzdWx0KSk7CisgICAgfSkuZ2V0KCldOworfQorCisjZW5kaWYgLy8gRU5BQkxF
KFdFQl9BVVRITikKKwogdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6aGFzVmlkZW9JblBpY3R1
cmVJblBpY3R1cmVEaWRDaGFuZ2UoV2ViUGFnZVByb3h5KiwgYm9vbCBoYXNWaWRlb0luUGljdHVy
ZUluUGljdHVyZSkKIHsKICAgICBpZiAoIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53
ZWJWaWV3SGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVEaWRDaGFuZ2UpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRo
ZW50aWNhdG9yTWFuYWdlci5jcHAKaW5kZXggOWEyYjM0ODM2N2NiZGQ1NTgwYTk4NGRiYjdjMzc0
NDEzNGMzNjIyZS4uMWM0MWEzYzI4NWVmMDcyNDVlZTFjZTUyOWE1NjU2ODFmMjQ4MzU1MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVu
dGljYXRvck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcApAQCAtMjgsNiArMjgsMTAgQEAKIAog
I2lmIEVOQUJMRShXRUJfQVVUSE4pCiAKKyNpbmNsdWRlICJBUElVSUNsaWVudC5oIgorI2luY2x1
ZGUgIkFQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaCIKKyNpbmNsdWRlICJBUElXZWJBdXRoZW50
aWNhdGlvblBhbmVsQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVk
ZSAiV2ViUHJlZmVyZW5jZXNLZXlzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRoZW50aWNhdG9y
VHJhbnNwb3J0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRp
b25PcHRpb25zLmg+CkBAIC0zNiw3ICs0MCw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCi1uYW1lc3BhY2UgQXV0aGVudGljYXRvck1hbmFnZXJJbnRl
cm5hbCB7CituYW1lc3BhY2UgewogCiBjb25zdCBzaXplX3QgbWF4VHJhbnNwb3J0TnVtYmVyID0g
MzsKIApAQCAtMTIzLDcgKzEyNywyMSBAQCBzdGF0aWMgdm9pZCBwcm9jZXNzR29vZ2xlTGVnYWN5
QXBwSWRTdXBwb3J0RXh0ZW5zaW9uKGNvbnN0IE9wdGlvbmFsPEF1dGhlbnRpY2F0aQogICAgIHRy
YW5zcG9ydHMucmVtb3ZlKEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6OkludGVybmFsKTsKIH0KIAot
fSAvLyBuYW1lc3BhY2UgQXV0aGVudGljYXRvck1hbmFnZXJJbnRlcm5hbAorc3RhdGljIGJvb2wg
aXNGZWF0dXJlRW5hYmxlZChXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFN0cmluZyYgZmVhdHVy
ZUtleSkKK3sKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1
cm4gcGFnZS0+cHJlZmVyZW5jZXMoKS5zdG9yZSgpLmdldEJvb2xWYWx1ZUZvcktleShmZWF0dXJl
S2V5KTsKK30KKworc3RhdGljIFN0cmluZyBnZXRScElkKGNvbnN0IFZhcmlhbnQ8UHVibGljS2V5
Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucywgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zPiYgb3B0aW9ucykKK3sKKyAgICBpZiAoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxQdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zPihvcHRpb25zKSkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6Z2V0PFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM+KG9wdGlvbnMpLnJwLmlk
OworICAgIHJldHVybiBXVEY6OmdldDxQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+
KG9wdGlvbnMpLnJwSWQ7Cit9CisKK30gLy8gbmFtZXNwYWNlCiAKIEF1dGhlbnRpY2F0b3JNYW5h
Z2VyOjpBdXRoZW50aWNhdG9yTWFuYWdlcigpCiAgICAgOiBtX3JlcXVlc3RUaW1lT3V0VGltZXIo
UnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmQXV0aGVudGljYXRvck1hbmFnZXI6OnRpbWVPdXRUaW1l
ckZpcmVkKQpAQCAtMTMyLDEwICsxNTAsOCBAQCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6QXV0aGVu
dGljYXRvck1hbmFnZXIoKQogCiB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpoYW5kbGVSZXF1
ZXN0KFdlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEmJiBkYXRhLCBDYWxsYmFjayYmIGNhbGxi
YWNrKQogewotICAgIHVzaW5nIG5hbWVzcGFjZSBBdXRoZW50aWNhdG9yTWFuYWdlckludGVybmFs
OwotCiAgICAgaWYgKG1fcGVuZGluZ0NvbXBsZXRpb25IYW5kbGVyKSB7Ci0gICAgICAgIG1fcGVu
ZGluZ0NvbXBsZXRpb25IYW5kbGVyKEV4Y2VwdGlvbkRhdGEgeyBOb3RBbGxvd2VkRXJyb3IsICJU
aGlzIHJlcXVlc3QgaGFzIGJlZW4gY2FuY2VsbGVkIGJ5IGEgbmV3IHJlcXVlc3QuIl9zIH0pOwor
ICAgICAgICBpbnZva2VQZW5kaW5nQ29tcGxldGlvbkhhbmRsZXIoRXhjZXB0aW9uRGF0YSB7IE5v
dEFsbG93ZWRFcnJvciwgIlRoaXMgcmVxdWVzdCBoYXMgYmVlbiBjYW5jZWxsZWQgYnkgYSBuZXcg
cmVxdWVzdC4iX3MgfSk7CiAgICAgICAgIG1fcmVxdWVzdFRpbWVPdXRUaW1lci5zdG9wKCk7CiAg
ICAgfQogICAgIGNsZWFyU3RhdGUoKTsKQEAgLTE0NCwxNyArMTYwLDggQEAgdm9pZCBBdXRoZW50
aWNhdG9yTWFuYWdlcjo6aGFuZGxlUmVxdWVzdChXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRh
JiYgZGF0YSwgQ2EKICAgICBtX3BlbmRpbmdSZXF1ZXN0RGF0YSA9IFdURk1vdmUoZGF0YSk7CiAg
ICAgbV9wZW5kaW5nQ29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKIAotICAg
IC8vIDIuIEdldCBhdmFpbGFibGUgdHJhbnNwb3J0cyBhbmQgc3RhcnQgZGlzY292ZXJpbmcgYXV0
aGVudGljYXRvcnMgb24gdGhlbS4KLSAgICBXVEY6OnN3aXRjaE9uKG1fcGVuZGluZ1JlcXVlc3RE
YXRhLm9wdGlvbnMsIFsmXShjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
JiBvcHRpb25zKSB7Ci0gICAgICAgIGluaXRUaW1lT3V0VGltZXIob3B0aW9ucy50aW1lb3V0KTsK
LQotICAgICAgICBhdXRvIHRyYW5zcG9ydHMgPSBjb2xsZWN0VHJhbnNwb3J0cyhvcHRpb25zLmF1
dGhlbnRpY2F0b3JTZWxlY3Rpb24pOwotICAgICAgICBwcm9jZXNzR29vZ2xlTGVnYWN5QXBwSWRT
dXBwb3J0RXh0ZW5zaW9uKG9wdGlvbnMuZXh0ZW5zaW9ucywgdHJhbnNwb3J0cyk7Ci0gICAgICAg
IHN0YXJ0RGlzY292ZXJ5KFdURk1vdmUodHJhbnNwb3J0cykpOwotICAgIH0sIFsmXShjb25zdCAg
UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiBvcHRpb25zKSB7Ci0gICAgICAgIGlu
aXRUaW1lT3V0VGltZXIob3B0aW9ucy50aW1lb3V0KTsKLSAgICAgICAgc3RhcnREaXNjb3Zlcnko
Y29sbGVjdFRyYW5zcG9ydHMob3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzKSk7Ci0gICAgfSk7Cisg
ICAgLy8gMi4gQXNrIGNsaWVudHMgdG8gc2hvdyBhcHByb3ByaWF0ZSBVSSBpZiBhbnkgYW5kIHRo
ZW4gc3RhcnQgdGhlIHJlcXVlc3QuCisgICAgcnVuUGFuZWwoKTsKIH0KIAogdm9pZCBBdXRoZW50
aWNhdG9yTWFuYWdlcjo6Y2xlYXJTdGF0ZUFzeW5jKCkKQEAgLTE5NSw3ICsyMDIsNyBAQCB2b2lk
IEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpyZXNwb25kUmVjZWl2ZWQoUmVzcG9uZCYmIHJlc3BvbmQp
CiAgICAgaWYgKCFzaG91bGRDb21wbGV0ZSkKICAgICAgICAgc2hvdWxkQ29tcGxldGUgPSBXVEY6
OmdldDxFeGNlcHRpb25EYXRhPihyZXNwb25kKS5jb2RlID09IEludmFsaWRTdGF0ZUVycm9yOwog
ICAgIGlmIChzaG91bGRDb21wbGV0ZSkgewotICAgICAgICBtX3BlbmRpbmdDb21wbGV0aW9uSGFu
ZGxlcihXVEZNb3ZlKHJlc3BvbmQpKTsKKyAgICAgICAgaW52b2tlUGVuZGluZ0NvbXBsZXRpb25I
YW5kbGVyKFdURk1vdmUocmVzcG9uZCkpOwogICAgICAgICBjbGVhclN0YXRlQXN5bmMoKTsKICAg
ICAgICAgbV9yZXF1ZXN0VGltZU91dFRpbWVyLnN0b3AoKTsKICAgICAgICAgcmV0dXJuOwpAQCAt
MjI1LDExICsyMzIsMTIgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6cmVzcG9uZFJlY2Vp
dmVkSW50ZXJuYWwoUmVzcG9uZCYmKQogCiB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpzdGFy
dERpc2NvdmVyeShjb25zdCBUcmFuc3BvcnRTZXQmIHRyYW5zcG9ydHMpCiB7Ci0gICAgdXNpbmcg
bmFtZXNwYWNlIEF1dGhlbnRpY2F0b3JNYW5hZ2VySW50ZXJuYWw7Ci0KLSAgICBBU1NFUlQobV9z
ZXJ2aWNlcy5pc0VtcHR5KCkgJiYgdHJhbnNwb3J0cy5zaXplKCkgPD0gbWF4VHJhbnNwb3J0TnVt
YmVyICYmIG1fcGVuZGluZ1JlcXVlc3REYXRhLnByZWZlcmVuY2VzKTsKKyAgICBBU1NFUlQobV9z
ZXJ2aWNlcy5pc0VtcHR5KCkgJiYgdHJhbnNwb3J0cy5zaXplKCkgPD0gbWF4VHJhbnNwb3J0TnVt
YmVyKTsKICAgICBmb3IgKGF1dG8mIHRyYW5zcG9ydCA6IHRyYW5zcG9ydHMpIHsKLSAgICAgICAg
aWYgKHRyYW5zcG9ydCA9PSBBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpJbnRlcm5hbCAmJiAhbV9w
ZW5kaW5nUmVxdWVzdERhdGEucHJlZmVyZW5jZXMtPnN0b3JlKCkuZ2V0Qm9vbFZhbHVlRm9yS2V5
KFdlYlByZWZlcmVuY2VzS2V5Ojp3ZWJBdXRoZW50aWNhdGlvbkxvY2FsQXV0aGVudGljYXRvckVu
YWJsZWRLZXkoKSkpCisgICAgICAgIGlmICh0cmFuc3BvcnQgPT0gQXV0aGVudGljYXRvclRyYW5z
cG9ydDo6SW50ZXJuYWwgJiYgIWlzRmVhdHVyZUVuYWJsZWQobV9wZW5kaW5nUmVxdWVzdERhdGEu
cGFnZS5nZXQoKSwgV2ViUHJlZmVyZW5jZXNLZXk6OndlYkF1dGhlbnRpY2F0aW9uTG9jYWxBdXRo
ZW50aWNhdG9yRW5hYmxlZEtleSgpKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAv
LyBPbmx5IGFsbG93IFVTQiBhdXRoZW50aWNhdG9ycyB3aGVuIGNsaWVudHMgZG9uJ3QgaGF2ZSBk
ZWRpY2F0ZWQgVUkuCisgICAgICAgIGlmICh0cmFuc3BvcnQgIT0gQXV0aGVudGljYXRvclRyYW5z
cG9ydDo6VXNiICYmIChtX3BlbmRpbmdSZXF1ZXN0RGF0YS5wYW5lbFJlc3VsdCA9PSBXZWJBdXRo
ZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSkpCiAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgYXV0byBzZXJ2aWNlID0gY3JlYXRlU2VydmljZSh0cmFuc3BvcnQsICp0aGlz
KTsKICAgICAgICAgc2VydmljZS0+c3RhcnREaXNjb3ZlcnkoKTsKQEAgLTIzOSw4ICsyNDcsNiBA
QCB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpzdGFydERpc2NvdmVyeShjb25zdCBUcmFuc3Bv
cnRTZXQmIHRyYW5zcG9ydHMpCiAKIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmluaXRUaW1l
T3V0VGltZXIoY29uc3QgT3B0aW9uYWw8dW5zaWduZWQ+JiB0aW1lT3V0SW5NcykKIHsKLSAgICB1
c2luZyBuYW1lc3BhY2UgQXV0aGVudGljYXRvck1hbmFnZXJJbnRlcm5hbDsKLQogICAgIHVuc2ln
bmVkIHRpbWVPdXRJbk1zVmFsdWUgPSBzdGQ6Om1pbihtYXhUaW1lT3V0VmFsdWUsIHRpbWVPdXRJ
bk1zLnZhbHVlT3IobWF4VGltZU91dFZhbHVlKSk7CiAgICAgbV9yZXF1ZXN0VGltZU91dFRpbWVy
LnN0YXJ0T25lU2hvdChTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKHRpbWVPdXRJbk1zVmFsdWUp
KTsKIH0KQEAgLTI0OCwxMCArMjU0LDU3IEBAIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6Omlu
aXRUaW1lT3V0VGltZXIoY29uc3QgT3B0aW9uYWw8dW5zaWduZWQ+JiB0aW1lT3V0SW5NCiB2b2lk
IEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjp0aW1lT3V0VGltZXJGaXJlZCgpCiB7CiAgICAgQVNTRVJU
KG1fcmVxdWVzdFRpbWVPdXRUaW1lci5pc0FjdGl2ZSgpKTsKLSAgICBtX3BlbmRpbmdDb21wbGV0
aW9uSGFuZGxlcigoRXhjZXB0aW9uRGF0YSB7IE5vdEFsbG93ZWRFcnJvciwgIk9wZXJhdGlvbiB0
aW1lZCBvdXQuIl9zIH0pKTsKKyAgICBpbnZva2VQZW5kaW5nQ29tcGxldGlvbkhhbmRsZXIoKEV4
Y2VwdGlvbkRhdGEgeyBOb3RBbGxvd2VkRXJyb3IsICJPcGVyYXRpb24gdGltZWQgb3V0LiJfcyB9
KSk7CiAgICAgY2xlYXJTdGF0ZSgpOwogfQogCit2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpy
dW5QYW5lbCgpCit7CisgICAgYXV0byogcGFnZSA9IG1fcGVuZGluZ1JlcXVlc3REYXRhLnBhZ2Uu
Z2V0KCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BlbmRpbmdS
ZXF1ZXN0RGF0YS5wYW5lbCA9IEFQSTo6V2ViQXV0aGVudGljYXRpb25QYW5lbDo6Y3JlYXRlKGdl
dFJwSWQobV9wZW5kaW5nUmVxdWVzdERhdGEub3B0aW9ucykpOworICAgIGF1dG8mIHBhbmVsID0g
Km1fcGVuZGluZ1JlcXVlc3REYXRhLnBhbmVsOworICAgIHBhZ2UtPnVpQ2xpZW50KCkucnVuV2Vi
QXV0aGVudGljYXRpb25QYW5lbCgqcGFnZSwgcGFuZWwsIFt3ZWFrUGFuZWwgPSBtYWtlV2Vha1B0
cihwYW5lbCksIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXSAoV2ViQXV0aGVu
dGljYXRpb25QYW5lbFJlc3VsdCByZXN1bHQpIHsKKyAgICAgICAgLy8gVGhlIHBhbmVsIGFkZHJl
c3MgaXMgdXNlZCB0byBkZXRlcm1pbmUgaWYgdGhlIGN1cnJlbnQgcGVuZGluZyByZXF1ZXN0IGlz
IHN0aWxsIHRoZSBzYW1lLgorICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrUGFuZWwKKyAg
ICAgICAgICAgIHx8IChyZXN1bHQgPT0gV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6RGlk
Tm90UHJlc2VudCkKKyAgICAgICAgICAgIHx8ICh3ZWFrUGFuZWwuZ2V0KCkgIT0gbV9wZW5kaW5n
UmVxdWVzdERhdGEucGFuZWwuZ2V0KCkpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBt
X3BlbmRpbmdSZXF1ZXN0RGF0YS5wYW5lbFJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgc3RhcnRS
ZXF1ZXN0KCk7CisgICAgfSk7Cit9CisKK3ZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OnN0YXJ0
UmVxdWVzdCgpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICAvLyBHZXQg
YXZhaWxhYmxlIHRyYW5zcG9ydHMgYW5kIHN0YXJ0IGRpc2NvdmVyaW5nIGF1dGhlbnRpY2F0b3Jz
IG9uIHRoZW0uCisgICAgV1RGOjpzd2l0Y2hPbihtX3BlbmRpbmdSZXF1ZXN0RGF0YS5vcHRpb25z
LCBbJl0oY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYgb3B0aW9ucykg
eworICAgICAgICBpbml0VGltZU91dFRpbWVyKG9wdGlvbnMudGltZW91dCk7CisKKyAgICAgICAg
YXV0byB0cmFuc3BvcnRzID0gY29sbGVjdFRyYW5zcG9ydHMob3B0aW9ucy5hdXRoZW50aWNhdG9y
U2VsZWN0aW9uKTsKKyAgICAgICAgcHJvY2Vzc0dvb2dsZUxlZ2FjeUFwcElkU3VwcG9ydEV4dGVu
c2lvbihvcHRpb25zLmV4dGVuc2lvbnMsIHRyYW5zcG9ydHMpOworICAgICAgICBzdGFydERpc2Nv
dmVyeShjb2xsZWN0VHJhbnNwb3J0cyhvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24pKTsK
KyAgICB9LCBbJl0oY29uc3QgIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYgb3B0
aW9ucykgeworICAgICAgICBpbml0VGltZU91dFRpbWVyKG9wdGlvbnMudGltZW91dCk7CisgICAg
ICAgIHN0YXJ0RGlzY292ZXJ5KGNvbGxlY3RUcmFuc3BvcnRzKG9wdGlvbnMuYWxsb3dDcmVkZW50
aWFscykpOworICAgIH0pOworfQorCit2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjppbnZva2VQ
ZW5kaW5nQ29tcGxldGlvbkhhbmRsZXIoUmVzcG9uZCYmIHJlc3BvbmQpCit7CisgICAgaWYgKGF1
dG8gKnBhbmVsID0gbV9wZW5kaW5nUmVxdWVzdERhdGEucGFuZWwuZ2V0KCkpIHsKKyAgICAgICAg
V1RGOjpzd2l0Y2hPbihyZXNwb25kLCBbJl0oY29uc3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVu
dGlhbERhdGEmKSB7CisgICAgICAgICAgICBwYW5lbC0+Y2xpZW50KCkuZGlzbWlzc1BhbmVsKFdl
YkF1dGhlbnRpY2F0aW9uUmVzdWx0OjpTdWNjZWVkZWQpOworICAgICAgICB9LCBbJl0oY29uc3Qg
IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKSB7CisgICAgICAgICAgICBwYW5lbC0+Y2xpZW50KCku
ZGlzbWlzc1BhbmVsKFdlYkF1dGhlbnRpY2F0aW9uUmVzdWx0OjpGYWlsZWQpOworICAgICAgICB9
KTsKKyAgICB9CisgICAgbV9wZW5kaW5nQ29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXNwb25k
KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9B
VVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oCmluZGV4IDA3MjA3ZDc3MDViMjcw
ODdjNTFhMGRhODRmNDVmZjkwYWY4ZWQ3MjMuLmQzNzY2YWQxNDc5NzMxNDE1ZWRlNDgyZjllOWMy
ZmUwMDhkM2EyNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaApAQCAtNTksMTAg
KzU5LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNNb2NrKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KIAogcHJvdGVjdGVkOgotICAgIENhbGxiYWNrJiBwZW5kaW5nQ29tcGxldGlv
bkhhbmRsZXIoKSB7IHJldHVybiBtX3BlbmRpbmdDb21wbGV0aW9uSGFuZGxlcjsgfQogICAgIFJ1
bkxvb3A6OlRpbWVyPEF1dGhlbnRpY2F0b3JNYW5hZ2VyPiYgcmVxdWVzdFRpbWVPdXRUaW1lcigp
IHsgcmV0dXJuIG1fcmVxdWVzdFRpbWVPdXRUaW1lcjsgfQogICAgIHZvaWQgY2xlYXJTdGF0ZUFz
eW5jKCk7IC8vIFRvIHZvaWQgY3ljbGljIGRlcGVuZGVuY2UuCiAgICAgdm9pZCBjbGVhclN0YXRl
KCk7CisgICAgdm9pZCBpbnZva2VQZW5kaW5nQ29tcGxldGlvbkhhbmRsZXIoUmVzcG9uZCYmKTsK
IAogcHJpdmF0ZToKICAgICAvLyBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6T2JzZXJ2
ZXIKQEAgLTgwLDEwICs4MCwxMiBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnREaXNjb3Zlcnko
Y29uc3QgVHJhbnNwb3J0U2V0Jik7CiAgICAgdm9pZCBpbml0VGltZU91dFRpbWVyKGNvbnN0IE9w
dGlvbmFsPHVuc2lnbmVkPiYgdGltZU91dEluTXMpOwogICAgIHZvaWQgdGltZU91dFRpbWVyRmly
ZWQoKTsKKyAgICB2b2lkIHJ1blBhbmVsKCk7CisgICAgdm9pZCBzdGFydFJlcXVlc3QoKTsKIAog
ICAgIC8vIFJlcXVlc3Q6IFdlIG9ubHkgYWxsb3cgb25lIHJlcXVlc3QgcGVyIHRpbWUuIEEgbmV3
IHJlcXVlc3Qgd2lsbCBjYW5jZWwgYW55IHBlbmRpbmcgb25lcy4KICAgICBXZWJBdXRoZW50aWNh
dGlvblJlcXVlc3REYXRhIG1fcGVuZGluZ1JlcXVlc3REYXRhOwotICAgIENhbGxiYWNrIG1fcGVu
ZGluZ0NvbXBsZXRpb25IYW5kbGVyOworICAgIENhbGxiYWNrIG1fcGVuZGluZ0NvbXBsZXRpb25I
YW5kbGVyOyAvLyBTaG91bGQgYmUgaW52b2tlZCBkaXJlY3RseSwgdXNlIGludm9rZVBlbmRpbmdD
b21wbGV0aW9uSGFuZGxlci4KICAgICBSdW5Mb29wOjpUaW1lcjxBdXRoZW50aWNhdG9yTWFuYWdl
cj4gbV9yZXF1ZXN0VGltZU91dFRpbWVyOwogCiAgICAgVmVjdG9yPFVuaXF1ZVJlZjxBdXRoZW50
aWNhdG9yVHJhbnNwb3J0U2VydmljZT4+IG1fc2VydmljZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNDb25uZWN0aW9uLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZjQ29u
bmVjdGlvbi5tbQppbmRleCA5NzIzN2Y3OGJmNTRlMTIxZTk1NTM3YjVlYWY3NWFhNjdlMjdlYzEy
Li4zMjQ2ZWU3NDk3NmU5YTgwZmU2YTNkNDQ2N2U1YzdmNTAxMDFmYTQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNDb25uZWN0
aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0Nv
Y29hL05mY0Nvbm5lY3Rpb24ubW0KQEAgLTUxLDggKzUxLDYgQEAgTmZjQ29ubmVjdGlvbjo6TmZj
Q29ubmVjdGlvbihSZXRhaW5QdHI8TkZSZWFkZXJTZXNzaW9uPiYmIHNlc3Npb24sIE5mY1NlcnZp
Y2UmIHMKICAgICAsIG1fc2VydmljZShtYWtlV2Vha1B0cihzZXJ2aWNlKSkKIHsKICAgICBbbV9z
ZXNzaW9uIHNldERlbGVnYXRlOm1fZGVsZWdhdGUuZ2V0KCldOwotICAgIC8vIEZJWE1FKDIwMDkz
MykKLSAgICBbbV9zZXNzaW9uIHVwZGF0ZVVJQWxlcnRNZXNzYWdlOkAiSW5zZXJ0IHlvdXIgc2Vj
dXJpdHkga2V5IG9yIGhvbGQgdGhlIGtleSBhZ2FpbnN0IHRoZSB0b3Agb2YgeW91ciBkZXZpY2Uu
Il07CiAgICAgW21fc2Vzc2lvbiBzdGFydFBvbGxpbmddOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNTZXJ2aWNlLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZjU2Vy
dmljZS5tbQppbmRleCAzM2I2MDhlNzBmZDIzZjYxZWQ1MTc1NzRlMTkxYmE3MDA2ZjU2MzgzLi43
NTJkNzg4ZDNiNTIzNjlkMDQ5MDhiMDY4NjMxNDQyNWFlZjI0ZTY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNTZXJ2aWNlLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05m
Y1NlcnZpY2UubW0KQEAgLTkxLDcgKzkxLDcgQEAgdm9pZCBOZmNTZXJ2aWNlOjpwbGF0Zm9ybVN0
YXJ0RGlzY292ZXJ5KCkKICAgICAgICAgICAgIG1fZHJpdmVyID0gV1RGOjptYWtlVW5pcXVlPEN0
YXBOZmNEcml2ZXI+KG1ha2VVbmlxdWVSZWY8TmZjQ29ubmVjdGlvbj4oV1RGTW92ZShzZXNzaW9u
KSwgKnRoaXMpKTsKICAgICAgICAgfSk7CiAgICAgfSk7Ci0gICAgW1tnZXRORkhhcmR3YXJlTWFu
YWdlckNsYXNzKCkgc2hhcmVkSGFyZHdhcmVNYW5hZ2VyXSBzdGFydFJlYWRlclNlc3Npb25XaXRo
QWN0aW9uU2hlZXRVSTpjYWxsYmFjay5nZXQoKV07CisgICAgW1tnZXRORkhhcmR3YXJlTWFuYWdl
ckNsYXNzKCkgc2hhcmVkSGFyZHdhcmVNYW5hZ2VyXSBzdGFydFJlYWRlclNlc3Npb246Y2FsbGJh
Y2suZ2V0KCldOwogI2VuZGlmIC8vIEhBVkUoTkVBUl9GSUVMRCkKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVu
dGljYXRpb25QYW5lbENsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM5Yzg1NTg1ZTNjOTEyZWQ0Mjk0MzljNDQzNTMyODg4MmM3YzIzN2IKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJB
dXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2ltcG9ydCAiV0tGb3Vu
ZGF0aW9uLmgiCisKKyNpbXBvcnQgIkFQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaCIK
KyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9XZWFrT2JqQ1B0ci5oPgor
I2ltcG9ydCA8d3RmL1dlYWtQdHIuaD4KKworQGNsYXNzIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWw7CitAcHJvdG9jb2wgX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlOworCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudCA6IHB1
YmxpYyBBUEk6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQsIHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50PiB7CitwdWJsaWM6CisgICAgV2ViQXV0
aGVudGljYXRpb25QYW5lbENsaWVudChfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsICosIGlkIDxf
V0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGU+KTsKKworICAgIFJldGFpblB0cjxpZCA8
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlPiA+IGRlbGVnYXRlKCk7CisKK3ByaXZh
dGU6CisgICAgLy8gQVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50CisgICAgdm9pZCBk
aXNtaXNzUGFuZWwoV2ViQXV0aGVudGljYXRpb25SZXN1bHQpIGNvbnN0IGZpbmFsOworCisgICAg
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqbV9wYW5lbDsKKyAgICBXZWFrT2JqQ1B0cjxpZCA8
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlPiA+IG1fZGVsZWdhdGU7CisKKyAgICBz
dHJ1Y3QgeworICAgICAgICBib29sIHBhbmVsRGlzbWlzc1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxX
aXRoUmVzdWx0IDogMTsKKyAgICB9IG1fZGVsZWdhdGVNZXRob2RzOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVu
dGljYXRpb25QYW5lbENsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQubW0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzE4NGU1ODEwZGJlMGY5ZTc3ZWEwM2VjNzIzY2U3NWI5NTY3OGMwNAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQubW0KQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV2ViQXV0aGVudGljYXRpb25QYW5lbENs
aWVudC5oIgorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2ltcG9ydCAiV2ViQXV0aGVudGlj
YXRpb25QYW5lbEZsYWdzLmgiCisjaW1wb3J0ICJfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50OjpX
ZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgKnBh
bmVsLCBpZCA8X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlPiBkZWxlZ2F0ZSkKKyAg
ICA6IG1fcGFuZWwocGFuZWwpCisgICAgLCBtX2RlbGVnYXRlKGRlbGVnYXRlKQoreworICAgIG1f
ZGVsZWdhdGVNZXRob2RzLnBhbmVsRGlzbWlzc1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxXaXRoUmVz
dWx0ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocGFuZWw6ZGlzbWlz
c1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxXaXRoUmVzdWx0OildOworfQorCitSZXRhaW5QdHI8aWQg
PF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZT4gPiBXZWJBdXRoZW50aWNhdGlvblBh
bmVsQ2xpZW50OjpkZWxlZ2F0ZSgpCit7CisgICAgcmV0dXJuIG1fZGVsZWdhdGUuZ2V0KCk7Cit9
CisKK3N0YXRpYyBfV0tXZWJBdXRoZW50aWNhdGlvblJlc3VsdCB3a1dlYkF1dGhlbnRpY2F0aW9u
UmVzdWx0KFdlYkF1dGhlbnRpY2F0aW9uUmVzdWx0IHJlc3VsdCkKK3sKKyAgICBzd2l0Y2ggKHJl
c3VsdCkgeworICAgIGNhc2UgV2ViQXV0aGVudGljYXRpb25SZXN1bHQ6OlN1Y2NlZWRlZDoKKyAg
ICAgICAgcmV0dXJuIF9XS1dlYkF1dGhlbnRpY2F0aW9uUmVzdWx0U3VjY2VlZGVkOworICAgIGNh
c2UgV2ViQXV0aGVudGljYXRpb25SZXN1bHQ6OkZhaWxlZDoKKyAgICAgICAgcmV0dXJuIF9XS1dl
YkF1dGhlbnRpY2F0aW9uUmVzdWx0RmFpbGVkOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4gX1dLV2ViQXV0aGVudGljYXRpb25SZXN1bHRGYWlsZWQ7Cit9CisK
K3ZvaWQgV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudDo6ZGlzbWlzc1BhbmVsKFdlYkF1dGhl
bnRpY2F0aW9uUmVzdWx0IHJlc3VsdCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZGVsZWdhdGVNZXRo
b2RzLnBhbmVsRGlzbWlzc1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxXaXRoUmVzdWx0KQorICAgICAg
ICByZXR1cm47CisKKyAgICBhdXRvIGRlbGVnYXRlID0gbV9kZWxlZ2F0ZS5nZXQoKTsKKyAgICBp
ZiAoIWRlbGVnYXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBbZGVsZWdhdGUgcGFuZWw6bV9w
YW5lbCBkaXNtaXNzV2ViQXV0aGVudGljYXRpb25QYW5lbFdpdGhSZXN1bHQ6d2tXZWJBdXRoZW50
aWNhdGlvblJlc3VsdChyZXN1bHQpXTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrQXV0aGVudGljYXRvck1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrQXV0
aGVudGljYXRvck1hbmFnZXIuY3BwCmluZGV4IDRkYjI3NjA5NzU0NjA3YmU5ZDc3ZmU1ZGExMzA3
OTJhN2JhMDc0NmMuLjA4NGM5YmUyM2ZiMGFiZDk1NjNkZjkxZmM2NjZlMTFmMTM1MTA2YzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2sv
TW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tBdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKQEAg
LTQ1LDcgKzQ1LDcgQEAgdm9pZCBNb2NrQXV0aGVudGljYXRvck1hbmFnZXI6OnJlc3BvbmRSZWNl
aXZlZEludGVybmFsKFJlc3BvbmQmJiByZXNwb25kKQogICAgIGlmIChtX3Rlc3RDb25maWd1cmF0
aW9uLnNpbGVudEZhaWx1cmUpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBlbmRpbmdDb21wbGV0
aW9uSGFuZGxlcigpKFdURk1vdmUocmVzcG9uZCkpOworICAgIGludm9rZVBlbmRpbmdDb21wbGV0
aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3BvbmQpKTsKICAgICBjbGVhclN0YXRlQXN5bmMoKTsKICAg
ICByZXF1ZXN0VGltZU91dFRpbWVyKCkuc3RvcCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25QYW5lbEZs
YWdzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRo
ZW50aWNhdGlvblBhbmVsRmxhZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZDE0NmIyMGYxNmFjZjRlYTFlMWJk
ODVmNmI0NTU0NzE5MTJkYWZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25QYW5lbEZsYWdzLmgKQEAg
LTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdF
Ql9BVVRITikKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0gY2xhc3MgV2ViQXV0aGVudGlj
YXRpb25QYW5lbFJlc3VsdCA6IHVpbnQ4X3QgeworICAgIFVuYXZhaWxhYmxlLAorICAgIFByZXNl
bnRlZCwKKyAgICBEaWROb3RQcmVzZW50Cit9OworCitlbnVtIGNsYXNzIFdlYkF1dGhlbnRpY2F0
aW9uUmVzdWx0IDogYm9vbCB7CisgICAgU3VjY2VlZGVkLAorICAgIEZhaWxlZAorfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVu
dGljYXRpb25SZXF1ZXN0RGF0YS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oCmluZGV4IDY2ZWJiN2MyNWJj
YjJiNzAxMGVlOWQyOGRhZWJhNGFmZjczZjliYTcuLjRiYjU0ODVlNWVhYThjMDA1ZjlmYzBkMzM5
NmI3NTcxNGE0MGM0MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblJlcXVl
c3REYXRhLmgKQEAgLTI3LDE4ICsyNywyNCBAQAogCiAjaWYgRU5BQkxFKFdFQl9BVVRITikKIAot
I2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCisjaW5jbHVkZSAiQVBJV2ViQXV0aGVudGljYXRp
b25QYW5lbC5oIgorI2luY2x1ZGUgIldlYkF1dGhlbnRpY2F0aW9uUGFuZWxGbGFncy5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmg+CiAjaW5j
bHVkZSA8d3RmL1ZhcmlhbnQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFdlYlBhZ2VQcm94
eTsKKwogc3RydWN0IFdlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEgewogICAgIFZlY3Rvcjx1
aW50OF90PiBoYXNoOwogICAgIFZhcmlhbnQ8V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucywgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25z
PiBvcHRpb25zOwotICAgIFJlZlB0cjxXZWJQcmVmZXJlbmNlcz4gcHJlZmVyZW5jZXM7CisgICAg
V2Vha1B0cjxXZWJQYWdlUHJveHk+IHBhZ2U7CisgICAgV2ViQXV0aGVudGljYXRpb25QYW5lbFJl
c3VsdCBwYW5lbFJlc3VsdCB7IFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxh
YmxlIH07CisgICAgUmVmUHRyPEFQSTo6V2ViQXV0aGVudGljYXRpb25QYW5lbD4gcGFuZWw7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhl
bnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcAppbmRleCA4N2UyOGExNmUyZjBiN2Q4ZTg5YTBm
MmNhMjhhNzA1NTQyNzVmZjI3Li4wZDBiM2JhNWM3MTMwN2E5OTg4YTRkNDI3N2QyMmY5MzBjOWFm
MjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9y
UHJveHkuY3BwCkBAIC01NSwxMiArNTUsMTIgQEAgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9y
UHJveHk6On5XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eSgpCiAKIHZvaWQgV2ViQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6Om1ha2VDcmVkZW50aWFsKHVpbnQ2NF90IG1lc3Nh
Z2VJZCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBXZWJDb3JlOjpQdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiBvcHRpb25zKQogewotICAgIGhhbmRsZVJlcXVl
c3QobWVzc2FnZUlkLCB7IGhhc2gsIG9wdGlvbnMsIG1fd2ViUGFnZVByb3h5LnByZWZlcmVuY2Vz
KCkuY29weSgpIH0pOworICAgIGhhbmRsZVJlcXVlc3QobWVzc2FnZUlkLCB7IGhhc2gsIG9wdGlv
bnMsIG1ha2VXZWFrUHRyKG1fd2ViUGFnZVByb3h5KSB9KTsKIH0KIAogdm9pZCBXZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6Z2V0QXNzZXJ0aW9uKHVpbnQ2NF90IG1lc3NhZ2VJZCwg
Y29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVk
ZW50aWFsUmVxdWVzdE9wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAgaGFuZGxlUmVxdWVzdChtZXNz
YWdlSWQsIHsgaGFzaCwgb3B0aW9ucywgbV93ZWJQYWdlUHJveHkucHJlZmVyZW5jZXMoKS5jb3B5
KCkgfSk7CisgICAgaGFuZGxlUmVxdWVzdChtZXNzYWdlSWQsIHsgaGFzaCwgb3B0aW9ucywgbWFr
ZVdlYWtQdHIobV93ZWJQYWdlUHJveHkpIH0pOwogfQogCiB2b2lkIFdlYkF1dGhlbnRpY2F0b3JD
b29yZGluYXRvclByb3h5OjpoYW5kbGVSZXF1ZXN0KHVpbnQ2NF90IG1lc3NhZ2VJZCwgV2ViQXV0
aGVudGljYXRpb25SZXF1ZXN0RGF0YSYmIGRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlYmY2ZjA3YjA2NTJmZjI4MzJjZmEzNDlh
YzZkM2NiZjg5MWMzODFlLi5kYWFhMTdlYjZiY2IyNjY0ODY0NDg0NTVjYTYxZWJiNGUyZGM4ZDdl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTEwNDgsNiArMTA0OCw4IEBACiAJCTU3NTk3RUJEMjE4MTg0OTAwMDM3RjkyNCAvKiBDdGFw
QXV0aGVudGljYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTc1OTdFQkIyMTgxODQ4RjAwMzdGOTI0IC8qIEN0YXBBdXRoZW50aWNhdG9yLmggKi87
IH07CiAJCTU3NkNBOUQ3MjJCODYyMTgwMDMwMTQzQyAvKiBTT0F1dGhvcml6YXRpb25OU1VSTEV4
dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdG
RDMxNzMyMkIzNTE0ODAwOEQwRThCIC8qIFNPQXV0aG9yaXphdGlvbk5TVVJMRXh0cmFzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTc3MkYyMDYy
MTdEQkQ2QTAwNTZCRjJDIC8qIEhpZFNlcnZpY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NzJGMjA0MjE3REJENkEwMDU2QkYyQyAvKiBIaWRTZXJ2
aWNlLmggKi87IH07CisJCTU3N0ZGNzgyMjM0NkU4MUMwMDRFREZCOSAvKiBBUElXZWJBdXRoZW50
aWNhdGlvblBhbmVsQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzdGRjc4MTIzNDZFODFDMDA0RURGQjkgLyogQVBJV2ViQXV0aGVudGljYXRp
b25QYW5lbENsaWVudC5oICovOyB9OworCQk1NzdGRjc4NTIzNDZFQ0FBMDA0RURGQjkgLyogV2Vi
QXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTc3RkY3ODMyMzQ2RUNBQTAwNEVERkI5IC8qIFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxDbGllbnQuaCAqLzsgfTsKIAkJNTc4REMyOTgyMTU1QTAwMjAwNzRFODE1IC8q
IExvY2FsQXV0aGVudGljYXRpb25Tb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTc4REMyOTcyMTU1QTAwMTAwNzRFODE1IC8qIExvY2FsQXV0
aGVudGljYXRpb25Tb2Z0TGluay5oICovOyB9OwogCQk1N0FDOEY1MDIxN0ZFRUQ5MDA1NTQzOEMg
LyogSGlkQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTdBQzhGNEUyMTdGRUVEOTAwNTU0MzhDIC8qIEhpZENvbm5lY3Rpb24uaCAqLzsg
fTsKIAkJNTdCNEI0NjAyMEI1MDRBQzAwRDRBRDc5IC8qIENsaWVudENlcnRpZmljYXRlQXV0aGVu
dGljYXRpb25YUENDb25zdGFudHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU3QjRCNDVFMjBCNTA0QUIwMEQ0QUQ3OSAvKiBDbGllbnRDZXJ0aWZpY2F0
ZUF1dGhlbnRpY2F0aW9uWFBDQ29uc3RhbnRzLmggKi87IH07CkBAIC0xMDU3LDYgKzEwNTksNyBA
QAogCQk1N0I4MjY0ODIzMDUwQzUxMDBCNzJFQjAgLyogRmlkb1NlcnZpY2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3QjgyNjQ2MjMwNTBDNTEwMEI3
MkVCMCAvKiBGaWRvU2VydmljZS5oICovOyB9OwogCQk1N0I4MjY0QzIzMDYwM0MxMDBCNzJFQjAg
LyogTW9ja05mY1NlcnZpY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDU3QjgyNjRBMjMwNjAzQzEwMEI3MkVCMCAvKiBNb2NrTmZjU2VydmljZS5oICov
OyB9OwogCQk1N0JCRUE2RDIyQkMwQkZFMDAyNzM5OTUgLyogU09BdXRob3JpemF0aW9uTG9hZFBv
bGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdC
QkVBNkMyMkJDMEJGRTAwMjczOTk1IC8qIFNPQXV0aG9yaXphdGlvbkxvYWRQb2xpY3kuaCAqLzsg
fTsKKwkJNTdDNjI0NEIyMzQ2NzlBNDAwMzgzRkU3IC8qIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxG
bGFncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdD
NjI0NEEyMzQ2NzlBNDAwMzgzRkU3IC8qIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxGbGFncy5oICov
OyB9OwogCQk1N0RDRUQ2RTIxNDJFRTVFMDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRvckNvb3Jk
aW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3RENFRDZCMjE0MkVBRTIwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1N0RDRUQ2RjIxNDJF
RTYzMDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yTWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RENFRDZBMjE0MkVB
RTIwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JNZXNzYWdlcy5oICovOyB9
OwogCQk1N0RDRUQ3MDIxNDJFRTY4MDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTdEQ0VENkMyMTQyRUFGOTAwMTZCODQ3IC8qIFdlYkF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKQEAgLTEwNzUs
NiArMTA3OCw3IEBACiAJCTU3RENFREM3MjE0RjE4MzAwMDE2Qjg0NyAvKiBNb2NrTG9jYWxDb25u
ZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
N0RDRURDNTIxNEYxODMwMDAxNkI4NDcgLyogTW9ja0xvY2FsQ29ubmVjdGlvbi5oICovOyB9Owog
CQk1N0RDRURDQjIxNEY0RTQyMDAxNkI4NDcgLyogTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0RDRURDOTIx
NEY0RTQyMDAxNkI4NDcgLyogTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmggKi87IH07CiAJCTU3
RUIyRTNBMjFFMTk4M0UwMEI4OUNERiAvKiBVMmZBdXRoZW50aWNhdG9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0VCMkUzODIxRTE5ODNFMDBCODlD
REYgLyogVTJmQXV0aGVudGljYXRvci5oICovOyB9OworCQk1N0VCRTI2QTIzNDY3NkM1MDA4RDhB
RjkgLyogQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdFQkUyNjgyMzQ2NzZDNTAwOEQ4QUY5IC8qIEFQSVdl
YkF1dGhlbnRpY2F0aW9uUGFuZWwuaCAqLzsgfTsKIAkJNTdGRDMxODAyMkIzNTE1ODAwOEQwRThC
IC8qIE5hdmlnYXRpb25TT0F1dGhvcml6YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0ZEMzE3ODIyQjM1MTQ5MDA4RDBFOEIgLyog
TmF2aWdhdGlvblNPQXV0aG9yaXphdGlvblNlc3Npb24uaCAqLzsgfTsKIAkJNTdGRDMxODEyMkIz
NTE1QjAwOEQwRThCIC8qIFBvcFVwU09BdXRob3JpemF0aW9uU2Vzc2lvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGRDMxNzAyMkIzNTE0ODAwOEQw
RThCIC8qIFBvcFVwU09BdXRob3JpemF0aW9uU2Vzc2lvbi5oICovOyB9OwogCQk1N0ZEMzE4MjIy
QjM1MTVFMDA4RDBFOEIgLyogUmVkaXJlY3RTT0F1dGhvcml6YXRpb25TZXNzaW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0ZEMzE3NDIyQjM1MTQ5
MDA4RDBFOEIgLyogUmVkaXJlY3RTT0F1dGhvcml6YXRpb25TZXNzaW9uLmggKi87IH07CkBAIC0z
NTI1LDYgKzM1MjksOSBAQAogCQk1NzYwODI5OTIwMkJEQUUyMDAxMTY2NzggLyogV2ViQXV0aGVu
dGljYXRvckNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViQXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU3NzJGMjA0MjE3REJENkEwMDU2QkYyQyAvKiBIaWRTZXJ2aWNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEhpZFNlcnZpY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc3MkYyMDUy
MTdEQkQ2QTAwNTZCRjJDIC8qIEhpZFNlcnZpY2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBI
aWRTZXJ2aWNlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzdGRjc4MTIzNDZF
ODFDMDA0RURGQjkgLyogQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBUElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTU3N0ZGNzgzMjM0NkVDQUEwMDRFREZCOSAvKiBXZWJBdXRoZW50aWNh
dGlvblBhbmVsQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc3RkY3ODQyMzQ2RUNBQTAw
NEVERkI5IC8qIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1NzhEQzI5NzIxNTVBMDAxMDA3NEU4MTUgLyogTG9jYWxBdXRoZW50aWNh
dGlvblNvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsQXV0aGVudGljYXRpb25Tb2Z0TGlu
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0FDOEY0RTIxN0ZFRUQ5MDA1NTQz
OEMgLyogSGlkQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIaWRDb25uZWN0aW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3QUM4RjRGMjE3RkVFRDkwMDU1NDM4QyAvKiBI
aWRDb25uZWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSGlkQ29ubmVjdGlvbi5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM1MzgsNiArMzU0NSw3IEBACiAJCTU3Qjgy
NjRBMjMwNjAzQzEwMEI3MkVCMCAvKiBNb2NrTmZjU2VydmljZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
b2NrTmZjU2VydmljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0I4MjY0QjIz
MDYwM0MxMDBCNzJFQjAgLyogTW9ja05mY1NlcnZpY2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBNb2NrTmZjU2VydmljZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdCQkVB
NkMyMkJDMEJGRTAwMjczOTk1IC8qIFNPQXV0aG9yaXphdGlvbkxvYWRQb2xpY3kuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU09BdXRob3JpemF0aW9uTG9hZFBvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1N0M2MjQ0QTIzNDY3OUE0MDAzODNGRTcgLyogV2ViQXV0aGVudGljYXRpb25Q
YW5lbEZsYWdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxGbGFncy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0RDRUQ2QTIxNDJFQUUyMDAxNkI4NDcg
LyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yTWVzc2FnZXMuaDsg
cGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9y
TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTdEQ0VE
NkIyMTQyRUFFMjAwMTZCODQ3IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvck1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJBdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1N0RDRUQ2QzIxNDJF
QUY5MDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViQXV0aGVu
dGljYXRvckNvb3JkaW5hdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBAIC0zNTY1
LDYgKzM1NzMsOCBAQAogCQk1N0RDRURDRDIxNEY1MTY4MDAxNkI4NDcgLyogTW9ja0F1dGhlbnRp
Y2F0b3JNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1v
Y2tBdXRoZW50aWNhdG9yTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU3RUIyRTM4MjFFMTk4M0UwMEI4OUNERiAvKiBVMmZBdXRoZW50aWNhdG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFUyZkF1dGhlbnRpY2F0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTdFQjJFMzkyMUUxOTgzRTAwQjg5Q0RGIC8qIFUyZkF1dGhlbnRpY2F0b3IuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVTJmQXV0aGVudGljYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTU3RUJFMjY4MjM0Njc2QzUwMDhEOEFGOSAvKiBBUElXZWJBdXRoZW50aWNhdGlvblBh
bmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTdFQkUyNjkyMzQ2NzZDNTAwOEQ4QUY5IC8qIEFQSVdl
YkF1dGhlbnRpY2F0aW9uUGFuZWwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVBJV2ViQXV0aGVu
dGljYXRpb25QYW5lbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RkQzMTcw
MjJCMzUxNDgwMDhEMEU4QiAvKiBQb3BVcFNPQXV0aG9yaXphdGlvblNlc3Npb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9wVXBTT0F1dGhvcml6YXRpb25TZXNzaW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RkQzMTcxMjJCMzUxNDgwMDhEMEU4QiAv
KiBXS1NPQXV0aG9yaXphdGlvbkRlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLU09BdXRob3JpemF0aW9uRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTdGRDMxNzIyMkIzNTE0ODAwOEQwRThCIC8qIFNPQXV0aG9yaXphdGlvbkNvb3Jk
aW5hdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNPQXV0aG9yaXphdGlv
bkNvb3JkaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MDY4LDYgKzcw
NzgsNyBAQAogCQkJCTU3RENFRDg0MjE0NzM2M0EwMDE2Qjg0NyAvKiBBdXRoZW50aWNhdG9yTWFu
YWdlci5oICovLAogCQkJCTU3RENFRDk5MjE0ODlGNEQwMDE2Qjg0NyAvKiBBdXRoZW50aWNhdG9y
VHJhbnNwb3J0U2VydmljZS5jcHAgKi8sCiAJCQkJNTdEQ0VEOEEyMTQ4NTMxMzAwMTZCODQ3IC8q
IEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlLmggKi8sCisJCQkJNTdDNjI0NEEyMzQ2NzlB
NDAwMzgzRkU3IC8qIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxGbGFncy5oICovLAogCQkJCTU3RENF
REE2MjE0OUY5REEwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmggKi8s
CiAJCQkJNTc2MDgyOTYyMDJCRDhCQTAwMTE2Njc4IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvclByb3h5LmNwcCAqLywKIAkJCQk1NzYwODI5NTIwMkJEOEJBMDAxMTY2NzggLyogV2ViQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuaCAqLywKQEAgLTcxMDksNiArNzEyMCw4IEBACiAJ
CQkJNTcwREFBQzEyMzAzNzMwMzAwRThGQzA0IC8qIE5mY0Nvbm5lY3Rpb24ubW0gKi8sCiAJCQkJ
NTcwREFBQUMyMzAyNkY1QzAwRThGQzA0IC8qIE5mY1NlcnZpY2UuaCAqLywKIAkJCQk1NzBEQUFB
RDIzMDI2RjVDMDBFOEZDMDQgLyogTmZjU2VydmljZS5tbSAqLywKKwkJCQk1NzdGRjc4MzIzNDZF
Q0FBMDA0RURGQjkgLyogV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oICovLAorCQkJCTU3
N0ZGNzg0MjM0NkVDQUEwMDRFREZCOSAvKiBXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lm1t
ICovLAogCQkJCTU3MERBQUM0MjMwMzdGN0UwMEU4RkMwNCAvKiBXS05GUmVhZGVyU2Vzc2lvbkRl
bGVnYXRlLmggKi8sCiAJCQkJNTcwREFBQzUyMzAzN0Y3RTAwRThGQzA0IC8qIFdLTkZSZWFkZXJT
ZXNzaW9uRGVsZWdhdGUubW0gKi8sCiAJCQkpOwpAQCAtNzk4NSw2ICs3OTk4LDkgQEAKIAkJCQk3
Qzg5RDI5MjFBNjcxMjJGMDAzQTVGREUgLyogQVBJVXNlclNjcmlwdC5oICovLAogCQkJCTJEODc4
NjIxMUJEQjU4RkYwMEQwMkFCQiAvKiBBUElVc2VyU3R5bGVTaGVldC5jcHAgKi8sCiAJCQkJMkQ4
Nzg2MjIxQkRCNThGRjAwRDAyQUJCIC8qIEFQSVVzZXJTdHlsZVNoZWV0LmggKi8sCisJCQkJNTdF
QkUyNjkyMzQ2NzZDNTAwOEQ4QUY5IC8qIEFQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwuY3BwICov
LAorCQkJCTU3RUJFMjY4MjM0Njc2QzUwMDhEOEFGOSAvKiBBUElXZWJBdXRoZW50aWNhdGlvblBh
bmVsLmggKi8sCisJCQkJNTc3RkY3ODEyMzQ2RTgxQzAwNEVERkI5IC8qIEFQSVdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxDbGllbnQuaCAqLywKIAkJCQkxQUUyODY4MTFDN0Y5Mzg2MDA2OUFDNEYgLyog
QVBJV2Vic2l0ZURhdGFSZWNvcmQuY3BwICovLAogCQkJCTFBRTI4NjgyMUM3RjkzODYwMDY5QUM0
RiAvKiBBUElXZWJzaXRlRGF0YVJlY29yZC5oICovLAogCQkJCTVDOEREMzdEMUZFNDUwMTEwMEYy
QTU1NiAvKiBBUElXZWJzaXRlUG9saWNpZXMuY3BwICovLApAQCAtOTM5MSw2ICs5NDA3LDggQEAK
IAkJCQkyRDg3ODYyNDFCREI1OEZGMDBEMDJBQkIgLyogQVBJVXNlclN0eWxlU2hlZXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUM1RTFBRkVEMTZCMjEwMTcwMDZDQzFGMiAvKiBBUElXZWJBcmNoaXZl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUUxQUZFRjE2QjIxMDI5MDA2Q0MxRjIgLyogQVBJV2Vi
QXJjaGl2ZVJlc291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk1N0VCRTI2QTIzNDY3NkM1MDA4
RDhBRjkgLyogQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NTc3RkY3ODIyMzQ2RTgxQzAwNEVERkI5IC8qIEFQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTI4Njg0MUM3RjkzODYwMDY5QUM0RiAvKiBBUElX
ZWJzaXRlRGF0YVJlY29yZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2NTYzRTUxQjdBOEM1MDAw
OUNGNzg3IC8qIEFQSVdpbmRvd0ZlYXR1cmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDhEMkE4
NTIxNTgzQTdFMDBDNjc1MkIgLyogQXBwS2l0U1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTk4Mjks
NiArOTg0Nyw4IEBACiAJCQkJMUFGNENFRjAxOEJDNDgxODAwQkMyRDM0IC8qIFZpc2l0ZWRMaW5r
VGFibGVDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThFN0QzRDE4QzE1MTQ5MDA1
QTcwMkEgLyogVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQ0VEQTEyRTMxNTJDRDFCMzAwRDlFMDhEIC8qIFdlYkFsdGVybmF0aXZlVGV4dENs
aWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTc3RkY3ODUyMzQ2RUNBQTAwNEVERkI5IC8qIFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3QzYyNDRC
MjM0Njc5QTQwMDM4M0ZFNyAvKiBXZWJBdXRoZW50aWNhdGlvblBhbmVsRmxhZ3MuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTU3RENFREIyMjE0QzYwNEMwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdGlv
blJlcXVlc3REYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0RDRUQ2RjIxNDJFRTYzMDAxNkI4
NDcgLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTU3RENFREIzMjE0QzYwNTMwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JQcm94eS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDBlOGNmMzZjNWFjMDg0OThlYzZlOGMwZGM0NjU4MGMw
MzdmYWM5Zi4uMjMxMWExZjE4ZTBmYmQ0NzQwYTJlY2UyZTE0N2JiZTM1NDk1ZjA3MiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDE5LTEwLTAzICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgW1dlYkF1dGhuXSBJbXBsZW1lbnQgX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBTUEkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjU1OQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU5MzIwOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGEgdmVyeSBsaW1pdGVk
IHRlc3QgY2FzZSB0byBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLgorICAgICAgICBCdWcgMjAy
NTYwIGFuZCBCdWcgMjAyNTY1IHdpbGwgZm9sbG93IHVwIHRvIHdyaXRlIG1vcmUgdGVzdHMuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwubW06IEFkZGVkLgorICAgICAgICAoLVtUZXN0V2ViQXV0aGVu
dGljYXRpb25QYW5lbERlbGVnYXRlIHBhbmVsOmRpc21pc3NXZWJBdXRoZW50aWNhdGlvblBhbmVs
V2l0aFJlc3VsdDpdKToKKyAgICAgICAgKC1bVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURl
bGVnYXRlIHdlYlZpZXc6cnVuV2ViQXV0aGVudGljYXRpb25QYW5lbDppbml0aWF0ZWRCeUZyYW1l
OmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRp
b24tZ2V0LWFzc2VydGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6cnVuV2ViQXV0aGVudGljYXRpb25Q
YW5lbCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9w
dGlvbnMpOgorCiAyMDE5LTEwLTAzICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OKDI0OTY0OSk6IFVuYWJsZSB0byBvcGVuIGxvY2FsIGZp
bGVzIGluIE1pbmlCcm93c2VyIG9uIG1hY09TCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY2
NDFmNWY3YjBjZDRhZWE5ODQxNTJkZDMwNzM2NzhmMTUyOWJlMmQuLjg4ZjZkMDgyMGM1MTgxMGJi
YzljOTg0ZDM2NDE0NTAzZDJkYmZlNGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNDQs
NiArMzQ0LDggQEAKIAkJNTc5N0ZFMzMxRUIxNUFCMTAwQjJGNEEwIC8qIG5hdmlnYXRpb24tY2xp
ZW50LWRlZmF1bHQtY3J5cHRvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTc5N0ZFMzIxRUIxNUE4OTAwQjJGNEEwIC8qIG5hdmlnYXRp
b24tY2xpZW50LWRlZmF1bHQtY3J5cHRvLmh0bWwgKi87IH07CiAJCTU3QTc5ODU3MjI0QUIzNEUw
MEE3RjZGMSAvKiBXZWJDcnlwdG9NYXN0ZXJLZXkubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0E3OTg1NjIyNEFCMzRFMDBBN0Y2RjEgLyogV2ViQ3J5
cHRvTWFzdGVyS2V5Lm1tICovOyB9OwogCQk1N0MzRkE2NjFGN0MyNDhGMDA5RDRCODAgLyogV2Vh
a1B0ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
Q0I5QkMzNzFBNjc0ODIzMDBGRTU2NzggLyogV2Vha1B0ci5jcHAgKi87IH07CisJCTU3QzYyNDRF
MjM0NkJDRkEwMDM4M0ZFNyAvKiBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdDNjI0NEQyMzQ2QkNGQTAw
MzgzRkU3IC8qIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gKi87IH07CisJCTU3QzYyNDUw
MjM0NkMyMUUwMDM4M0ZFNyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
QzYyNDRGMjM0NkMxRUMwMDM4M0ZFNyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlv
bi5odG1sICovOyB9OwogCQk1N0Y0QUFBMDIwOEZBRUYwMDBBNjhFOUUgLyogU1NMS2V5R2VuZXJh
dG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdG
NEFBOUYyMDhGQTgzRDAwQTY4RTlFIC8qIFNTTEtleUdlbmVyYXRvci5tbSAqLzsgfTsKIAkJNTdG
NTZBNUMxQzdGOENDMTAwRjMxRDdFIC8qIElzTmF2aWdhdGlvbkFjdGlvblRydXN0ZWQuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0Y1
NkE1QjFDN0Y4QTQwMDBGMzFEN0UgLyogSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5odG1sICov
OyB9OwogCQk1QzAxNjBDMTIxQTEzMjQ2MDA3N0ZBMzIgLyogSklURW5hYmxlZC5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMDE2MEMwMjFBMTMyMzIw
MDc3RkEzMiAvKiBKSVRFbmFibGVkLm1tICovOyB9OwpAQCAtMTQzNCw2ICsxNDM2LDcgQEAKIAkJ
CQlDREM4RTQ5NzFCQzZGMTA4MDA1OTRGRUMgLyogdmlkZW8td2l0aG91dC1hdWRpby5tcDQgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMkVCRDlEMEEyMTM0NzMwRDAwMkRBNzU4IC8qIHZpZGVv
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQ0Q1Nzc3OTkyMTFDRTBFNDAwMUIzNzFF
IC8qIHdlYi1hdWRpby1vbmx5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJNTdDNjI0
NTAyMzQ2QzIxRTAwMzgzRkU3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMUMyQjgxODYxQzg5MjU5RDAwQTU1MjlGIC8q
IHdlYmZvbnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1MTcxNEVCNDFDRjhDNzhD
MDA0NzIzQzQgLyogV2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVwLTEuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKIAkJCQk1MTcxNEVCNTFDRjhDNzhDMDA0NzIzQzQgLyogV2ViUHJvY2Vzc0tpbGxJ
REJDbGVhbnVwLTIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTE4NjAsNiArMTg2Myw4
IEBACiAJCTU3OTdGRTMyMUVCMTVBODkwMEIyRjRBMCAvKiBuYXZpZ2F0aW9uLWNsaWVudC1kZWZh
dWx0LWNyeXB0by5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIm5hdmlnYXRpb24t
Y2xpZW50LWRlZmF1bHQtY3J5cHRvLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1Nzk4RTJBRjFDQUY1QzI4MDBDNUNCQTAgLyogUHJvdmlzaW9uYWxVUkxOb3RDaGFuZ2UubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcm92aXNpb25hbFVSTE5v
dENoYW5nZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdBNzk4NTYyMjRBQjM0
RTAwQTdGNkYxIC8qIFdlYkNyeXB0b01hc3RlcktleS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFdlYkNyeXB0b01hc3RlcktleS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTdD
NjI0NEQyMzQ2QkNGQTAwMzgzRkU3IC8qIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1N0M2MjQ0RjIzNDZDMUVDMDAzODNGRTcgLyogd2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0
aCA9ICJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi5odG1sIjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTdEMUQ3NUUyMURDQjdBODAwOTNFODZBIC8qIFUyZkNvbW1hbmRD
b25zdHJ1Y3RvclRlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VTJmQ29tbWFuZENvbnN0cnVjdG9yVGVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU3RjEwRDkyMUM3RTdCMzgwMEVDREYzMCAvKiBJc05hdmlnYXRpb25BY3Rpb25UcnVzdGVk
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSXNOYXZpZ2F0aW9u
QWN0aW9uVHJ1c3RlZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGNEFBOUYy
MDhGQTgzRDAwQTY4RTlFIC8qIFNTTEtleUdlbmVyYXRvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFNTTEtleUdlbmVyYXRvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3
MjUsNiArMjczMCw3IEBACiAJCQkJQTE2RjY2QjgxQzQwRTlFMTAwQkQ0RDI0IC8qIFJlc291cmNl
cyAqLywKIAkJCQk1Q0VBQjVERjFGQTkzN0NCMDBBNzdGQUEgLyogX1dLSW5wdXREZWxlZ2F0ZS5t
bSAqLywKIAkJCQk3Q0VGQTk2NDFBQzBCOUUyMDBCOTEwRkQgLyogX1dLVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZS5tbSAqLywKKwkJCQk1N0M2MjQ0RDIzNDZCQ0ZBMDAzODNGRTcgLyogX1dLV2Vi
QXV0aGVudGljYXRpb25QYW5lbC5tbSAqLywKIAkJCQkwNzQ2NjQ1ODIyRkY2MzA1MDBFMzQ1MUEg
LyogQWNjZXNzaWJpbGl0eVRlc3RQbHVnaW4ubW0gKi8sCiAJCQkJMDc0NjY0NTcyMkZGNjJEMDAw
RTM0NTFBIC8qIEFjY2Vzc2liaWxpdHlUZXN0U3VwcG9ydFByb3RvY29sLmggKi8sCiAJCQkJMzdF
N0RENjMxRUEwNkZGMjAwOUIzOTZEIC8qIEFkZGl0aW9uYWxSZWFkQWNjZXNzQWxsb3dlZFVSTHMu
bW0gKi8sCkBAIC0zMzY0LDYgKzMzNzAsNyBAQAogCQkJCUY0NDUxQzc1MUVCOEZEN0MwMDIwQzVE
QSAvKiB0d28tcGFyYWdyYXBoLWNvbnRlbnRlZGl0YWJsZS5odG1sICovLAogCQkJCUNENTc3NzlC
MjExQ0U2Q0UwMDFCMzcxRSAvKiB2aWRlby13aXRoLWF1ZGlvLWFuZC13ZWItYXVkaW8uaHRtbCAq
LywKIAkJCQlDRDU3Nzc5ODIxMUNERThGMDAxQjM3MUUgLyogd2ViLWF1ZGlvLW9ubHkuaHRtbCAq
LywKKwkJCQk1N0M2MjQ0RjIzNDZDMUVDMDAzODNGRTcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdl
dC1hc3NlcnRpb24uaHRtbCAqLywKIAkJCQk1MTcxNEVCMjFDRjhDNzYxMDA0NzIzQzQgLyogV2Vi
UHJvY2Vzc0tpbGxJREJDbGVhbnVwLTEuaHRtbCAqLywKIAkJCQk1MTcxNEVCMzFDRjhDNzYxMDA0
NzIzQzQgLyogV2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVwLTIuaHRtbCAqLywKIAkJCQk1MTIwQzgz
QjFFNjc0RTM1MDAyNUIyNTAgLyogV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLmh0bWwgKi8s
CkBAIC00Mzg4LDYgKzQzOTUsNyBAQAogCQkJZmlsZXMgPSAoCiAJCQkJNUNFQUI1RTExRkE5MzlG
NDAwQTc3RkFBIC8qIF9XS0lucHV0RGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0VG
QTk2NjFBQzBCOUUyMDBCOTEwRkQgLyogX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5tbSBp
biBTb3VyY2VzICovLAorCQkJCTU3QzYyNDRFMjM0NkJDRkEwMDM4M0ZFNyAvKiBfV0tXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRTQxQTQxMUFFNjAw
NDQ3QzRDIC8qIEFib3V0QmxhbmtMb2FkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUIz
MUE0MTFBN0UwMDQ0N0M0QyAvKiBBY2NlcHRzRmlyc3RNb3VzZS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTJFMjA1QkE0MUY1Mjc3NDYwMDU5NTJERCAvKiBBY2Nlc3NpYmlsaXR5VGVzdHNJT1MubW0g
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jZTQxMWJlZTMwZDE4MDIyOWIyOTc5NTA1ZjMyM2E4ZTgxYWFkMDI3Ci0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLm1tCkBAIC0wLDAgKzEsMTI0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9y
dCAiY29uZmlnLmgiCisjaW1wb3J0ICJUZXN0LmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQor
CisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5o
IgorI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJL
aXQvV0tVSURlbGVnYXRlUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L19XS0V4cGVyaW1lbnRh
bEZlYXR1cmUuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLmg+
CisKK3N0YXRpYyBib29sIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSYW4gPSBmYWxzZTsKK3N0YXRp
YyBib29sIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxEaW1pc3NlZCA9IGZhbHNlOworCitAaW50ZXJm
YWNlIFRlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGUgOiBOU09iamVjdCA8X1dLV2Vi
QXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gVGVz
dFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZQorCistICh2b2lkKXBhbmVsOihfV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsICopcGFuZWwgZGlzbWlzc1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxX
aXRoUmVzdWx0OihfV0tXZWJBdXRoZW50aWNhdGlvblJlc3VsdClyZXN1bHQKK3sKKyAgICBBU1NF
UlRfTkUocGFuZWwsIG5pbCk7CisgICAgRVhQRUNUX0VRKHJlc3VsdCwgX1dLV2ViQXV0aGVudGlj
YXRpb25SZXN1bHRGYWlsZWQpOworICAgIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxEaW1pc3NlZCA9
IHRydWU7Cit9CisKK0BlbmQKKworQGludGVyZmFjZSBUZXN0V2ViQXV0aGVudGljYXRpb25QYW5l
bFVJRGVsZWdhdGUgOiBOU09iamVjdCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4KK0BlbmQKKworQGlt
cGxlbWVudGF0aW9uIFRlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSB7CisgICAg
UmV0YWluUHRyPF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWw+IF9wYW5lbDsKKyAgICBSZXRhaW5Q
dHI8VGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZT4gX2RlbGVnYXRlOworfQorCist
ICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuV2ViQXV0aGVudGljYXRpb25Q
YW5lbDooX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqKXBhbmVsIGluaXRpYXRlZEJ5RnJhbWU6
KFdLRnJhbWVJbmZvICopZnJhbWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQpKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgd2ViQXV0
aGVudGljYXRpb25QYW5lbFJhbiA9IHRydWU7CisKKyAgICBfZGVsZWdhdGUgPSBhZG9wdE5TKFtb
VGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIEFT
U0VSVF9ORShwYW5lbCwgbmlsKTsKKyAgICBfcGFuZWwgPSBwYW5lbDsKKyAgICBbX3BhbmVsIHNl
dERlbGVnYXRlOl9kZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBFWFBFQ1RfV0tfU1RSRVEoW19wYW5l
bCByZWx5aW5nUGFydHlJRF0sICIiKTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKF9XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHRQcmVzZW50ZWQpOworfQorCitAZW5kCisKK25hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJIHsKKworbmFtZXNwYWNlIHsKK19XS0V4cGVyaW1lbnRhbEZlYXR1cmUg
KndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpCit7CisgICAgc3RhdGljIFJl
dGFpblB0cjxfV0tFeHBlcmltZW50YWxGZWF0dXJlPiB0aGVGZWF0dXJlOworICAgIGlmICh0aGVG
ZWF0dXJlKQorICAgICAgICByZXR1cm4gdGhlRmVhdHVyZS5nZXQoKTsKKworICAgIE5TQXJyYXkg
KmZlYXR1cmVzID0gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVzXTsKKyAgICBm
b3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gZmVhdHVyZXMpIHsKKyAgICAg
ICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsOkAiV2ViQXV0aGVudGljYXRpb25FbmFibGVkIl0p
IHsKKyAgICAgICAgICAgIHRoZUZlYXR1cmUgPSBmZWF0dXJlOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHRoZUZlYXR1cmUuZ2V0KCk7Cit9Cit9CisK
K1RFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgQmFzaWNUaW1lb3V0KQoreworICAgIFJldGFp
blB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3Vy
Y2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbiIgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRv
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVT
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0
dXJlKCldOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24u
Z2V0KCldKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNh
dGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVs
ZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAgLy8gT25seSBmb2N1c2VkIGRvY3VtZW50cyBj
YW4gdHJpZ2dlciBXZWJBdXRobi4KKyNpZiBQTEFURk9STShNQUMpCisgICAgW1t3ZWJWaWV3IGhv
c3RXaW5kb3ddIG1ha2VGaXJzdFJlc3BvbmRlcjp3ZWJWaWV3LmdldCgpXTsKKyNlbGlmIFBMQVRG
T1JNKElPUykKKyAgICBbd2ViVmlldyBiZWNvbWVGaXJzdFJlc3BvbmRlcl07CisjZW5kaWYKKwor
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVz
dFVSTC5nZXQoKV1dOworICAgIFV0aWw6OnJ1bigmd2ViQXV0aGVudGljYXRpb25QYW5lbFJhbik7
CisgICAgVXRpbDo6cnVuKCZ3ZWJBdXRoZW50aWNhdGlvblBhbmVsRGltaXNzZWQpOworfQorCit9
IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhO
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmJmNDlhNWZkY2YxOGQ0NzBkNWIzMmI3ODZjMWQwZGM1ZTA2Y2I5MmUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1h
dXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPHNjcmlw
dD4KKyAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAg
ICAgIGNoYWxsZW5nZTogbmV3IFVpbnQ4QXJyYXkoMTYpLAorICAgICAgICAgICAgdGltZW91dDog
MQorICAgICAgICB9CisgICAgfTsKKworICAgIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0
aW9ucyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAKaW5kZXggMGJkNzc2MWJiZmM1NTA0ZWYyMDU5ZDlhMWYzYjQ0NzU3NjA3NGUwYi4uOWI4MDcx
ZGE3ZmYzZjk4MDg4MTJmNzU2MTdmMjAwYmE1YjJmYTUxMSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTI5NSw2ICsyOTUsMTEgQEAgc3RhdGljIGJvb2wg
c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXS1BhZ2VSZWYsIFdL
U2VjdXJpdHlPcmkKICAgICByZXR1cm4gVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmhhbmRs
ZURldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzUmVxdWVzdChvcmlnaW4pOwogfQogCisv
LyBBIHBsYWNlaG9sZGVyIHRvIHRlbGwgV2ViS2l0IHRoZSBjbGllbnQgaXMgV2ViS2l0VGVzdFJ1
bm5lci4KK3N0YXRpYyB2b2lkIHJ1bldlYkF1dGhlbnRpY2F0aW9uUGFuZWwoKQoreworfQorCiBX
S1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYsIFdLUGFn
ZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVmIG5h
dmlnYXRpb25BY3Rpb24sIFdLV2luZG93RmVhdHVyZXNSZWYgd2luZG93RmVhdHVyZXMsIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pCiB7CiAgICAgUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3ID0g
c3RhdGljX2Nhc3Q8UGxhdGZvcm1XZWJWaWV3Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5m
bykpOwpAQCAtNjE3LDggKzYyMiw4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZp
ZXdXaXRoT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICByZXNldFByZWZl
cmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKG9wdGlvbnMpOwogCiAgICAgcGxhdGZvcm1DcmVhdGVX
ZWJWaWV3KGNvbmZpZ3VyYXRpb24uZ2V0KCksIG9wdGlvbnMpOwotICAgIFdLUGFnZVVJQ2xpZW50
VjEzIHBhZ2VVSUNsaWVudCA9IHsKLSAgICAgICAgeyAxMywgbV9tYWluV2ViVmlldy5nZXQoKSB9
LAorICAgIFdLUGFnZVVJQ2xpZW50VjE0IHBhZ2VVSUNsaWVudCA9IHsKKyAgICAgICAgeyAxNCwg
bV9tYWluV2ViVmlldy5nZXQoKSB9LAogICAgICAgICAwLCAvLyBjcmVhdGVOZXdQYWdlX2RlcHJl
Y2F0ZWRGb3JVc2VXaXRoVjAKICAgICAgICAgMCwgLy8gc2hvd1BhZ2UKICAgICAgICAgMCwgLy8g
Y2xvc2UKQEAgLTY5MCw3ICs2OTUsOCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJW
aWV3V2l0aE9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgICAgIDAsIC8v
IGRpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVncm91bmQKICAgICAg
ICAgMCwgLy8gZGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlCiAg
ICAgICAgIDAsIC8vIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybQotICAgICAgICBzaG91bGRB
bGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzCisgICAgICAgIHNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MsCisgICAgICAgIHJ1bldlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChtX21haW5XZWJW
aWV3LT5wYWdlKCksICZwYWdlVUlDbGllbnQuYmFzZSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380196</attachid>
            <date>2019-10-04 01:31:46 -0700</date>
            <delta_ts>2019-10-04 02:08:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202559-20191004013145.patch</filename>
            <type>text/plain</type>
            <size>85871</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY3MjY5NDUwMDVhZWY5Yjhl
NmQyMjI1YTkwMDdhNjJkN2Q5ZGQ4YWQuLjg4ODI0NTZhYjA4ZTA1Njg1NGIwZGZhMTZiNDZmYTM4
MDgzYjM5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAyIEBACisyMDE5LTEwLTAzICBKaWV3ZW4g
VGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBJbXBsZW1l
bnQgX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBTUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjU1OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTU5MzIwOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgU1BJLiBI
ZXJlIGlzIHRoZSBzdHJ1Y3R1cmU6CisgICAgICAgIDEpIEFQSTo6V2ViQXV0aGVudGljYXRpb25Q
YW5lbCBpcyB0aGUgQVBJT2JqZWN0IG9mIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwuIEl0IGlz
IG93bmVkIGJ5IEF1dGhlbnRpY2F0b3JNYW5hZ2VyLgorICAgICAgICBUaGUgbGlmZXRpbWUgb2Yg
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBvbiB0aGUgb3RoZXIgaGFuZCBpcyBtYW5hZ2VkIGJ5
IGNsaWVudHMuIFRoaXMgYmluZGluZyBpcyB0aGUgc3VyZmFjZQorICAgICAgICB3aGVyZSBjbGll
bnRzIGNvdWxkIGludGVyYWN0IHdpdGggV2ViS2l0J3MgV2ViQXV0aGVudGljYXRpb24gaW1wbGVt
ZW50YXRpb24uCisgICAgICAgIDIpIEFQSTo6V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudCBp
cyBhIGJhc2UgY2xhc3MgcmVwcmVzZW50aW5nIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxl
Z2F0ZS4gSXRzIHN1YmNsYXNzCisgICAgICAgIFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25QYW5l
bENsaWVudCBpbXBsZW1lbnRzIGJyaWRnZXMgdG8gX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbERl
bGVnYXRlIG1ldGhvZHMuIEl0IGlzIG93bmVkIGJ5CisgICAgICAgIEFQSTo6V2ViQXV0aGVudGlj
YXRpb25QYW5lbC4gQSB3ZWFrIHBvaW50ZXIgb2YgV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlvblBh
bmVsQ2xpZW50IGlzIGtlcHQgaW4gX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbAorICAgICAgICB0
byBnZXQgdGhlIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZSBzZXQgYnkgY2xpZW50
cyBvciBuaWwgb3RoZXJ3aXNlLiBUaGlzIGJpbmRpbmcgaXMgdGhlIHN1cmZhY2Ugd2hlcmUgV2Vi
S2l0CisgICAgICAgIGludGVyYWN0cyB3aXRoIGNsaWVudHMuCisgICAgICAgIDMpIFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWxGbGFncyBpcyB0aGUgbWlycm9yIG9mIGVudW1zIHdpdGhpbiBfV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsLgorCisgICAgICAgIEltcGxlbWVudGF0aW9uIHdpc2UsIHRoaXMg
cGF0Y2ggaW1wbGVtZW50czoKKyAgICAgICAgMSkgLVtXS1VJRGVsZWdhdGVQcml2YXRlIHdlYlZp
ZXc6cnVuV2ViQXV0aGVudGljYXRpb25QYW5lbDppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25I
YW5kbGVyOl0sIHRoaXMgaXMgYnJpZGdlZCBmcm9tCisgICAgICAgIHRoZSByZWd1bGFyIFVJRGVs
ZWdhdGUgcm91dGUuIE5vdGVkLCBXS0ZyYW1lSW5mbyBpcyBuaWwgZm9yIG5vdywgYSBmb2xsb3cg
dXAgb24gQnVnIDIwMjU2MyB3aWxsIHRha2UgY2FyZSBvZiBpdC4gVGhpcworICAgICAgICB3aWxs
IGJlIGNhbGxlZCBmcm9tIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpydW5QYW5lbCgpIHdoaWNoIGdh
dGVzIHRoZSBzdGFydCBvZiBkaXNjb3Zlcnkgb24gdGhlIGNhbGxiYWNrLiBGb3IgY2xpZW50cwor
ICAgICAgICB0aGF0IGRvbid0IGltcGxlbWVudCB0aGUgZGVsZWdhdGUsIHRoZSBjYWxsYmFjayB3
aWxsIGFsd2F5cyBiZSBjYWxsZWQgd2l0aCBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0
VW5hdmFpbGFibGUKKyAgICAgICAgdG8gYWxsb3cgV2ViS2l0IHJ1biBvbiBub24tVUkgbW9kZS4g
QSBzcGVjaWZpYyBDIEFQSSBoYWNrIGlzIGFkZGVkIHRvIGFsd2F5cyByZXR1cm4gX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbFJlc3VsdFByZXNlbnRlZAorICAgICAgICBpbiBXZWJLaXRUZXN0UnVu
bmVyIGZvciBsYXlvdXQgdGVzdHMuCisgICAgICAgIDIpIC1bX1dLV2ViQXV0aGVudGljYXRpb25Q
YW5lbERlbGVnYXRlIHBhbmVsOnVwZGF0ZVdlYkF1dGhlbnRpY2F0aW9uUGFuZWw6XSB3aWxsIGJl
IGltcGxlbWVudGVkIGluIEJ1ZyAyMDA5MzIuCisgICAgICAgIDMpIC1bX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbERlbGVnYXRlIHBhbmVsOmRpc21pc3NXZWJBdXRoZW50aWNhdGlvblBhbmVsV2l0
aFJlc3VsdDpdLCB0aGlzIGlzIGJyaWRnZWQgZnJvbQorICAgICAgICBBUEk6OldlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwvQVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LiBUaGlzIHdpbGwg
YmUgY2FsbGVkIHdoZW5ldmVyIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjptX3BlbmRpbmdDb21wbGV0
aW9uSGFuZGxlcgorICAgICAgICBpcyBpbnZva2VkLiBEZXBlbmRpbmcgb24gdGhlIHJlc3BvbmQs
IF9XS1dlYkF1dGhlbnRpY2F0aW9uUmVzdWx0IHdpbGwgYmUgcmV0dXJuZWQgYWNjb3JkaW5nbHku
IFRvIGZhY2lsaXRhdGUgdGhhdCwKKyAgICAgICAgaW52b2tlUGVuZGluZ0NvbXBsZXRpb25IYW5k
bGVyIGlzIGNyYWZ0ZWQgdG8gYnVuZGxlIHRob3NlIHR3byBvcGVyYXRpb25zLgorICAgICAgICA0
KSAtW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgY2FuY2VsXSB3aWxsIGJlIGltcGxlbWVudGVk
IGluIEJ1ZyAxOTE1MjMuCisKKyAgICAgICAgQmVzaWRlcyB0aGUgYWJvdmUsIHRoaXMgcGF0Y2gg
YWxzbyBzaWxlbnRzIHRoZSBORkMgYWN0aW9uIHNoZWV0LgorCisgICAgICAgICogUGxhdGZvcm0v
c3BpL0NvY29hL05lYXJGaWVsZFNQSS5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJT2JqZWN0
Lmg6CisgICAgICAgICogU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbToKKyAgICAgICAgKEFQSTo6
T2JqZWN0OjpuZXdPYmplY3QpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNv
dXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgor
ICAgICAgICAoQVBJOjpVSUNsaWVudDo6cnVuV2ViQXV0aGVudGljYXRpb25QYW5lbCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWwubW0uCisgICAgICAgIChBUEk6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWw6OmNyZWF0
ZSk6CisgICAgICAgIChBUEk6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWw6OldlYkF1dGhlbnRpY2F0
aW9uUGFuZWwpOgorICAgICAgICAoQVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsOjpzZXRDbGll
bnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9X
ZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsSW50ZXJuYWwu
aC4KKyAgICAgICAgKEFQSTo6V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudDo6ZGlzbWlzc1Bh
bmVsIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAg
ICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAoLVtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
IGRlYWxsb2NdKToKKyAgICAgICAgKC1bX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCByZWx5aW5n
UGFydHlJRF0pOgorICAgICAgICAoLVtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIGRlbGVnYXRl
XSk6CisgICAgICAgICgtW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgc2V0RGVsZWdhdGU6XSk6
CisgICAgICAgICgtW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgX2FwaU9iamVjdF0pOgorICAg
ICAgICAoLVtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIF9pbml0V2l0aFJlbGF5aW5nUGFydHlJ
RDpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWxJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAg
ICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OnNldERlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6
d2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdCk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdh
dGU6OlVJQ2xpZW50OjpydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb3JlOjppc0ZlYXR1cmVFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29yZTo6Z2V0UnBJZCk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2Vy
OjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvck1hbmFnZXI6
OnJlc3BvbmRSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2Vy
OjpzdGFydERpc2NvdmVyeSk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2Vy
Ojppbml0VGltZU91dFRpbWVyKToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvck1hbmFn
ZXI6OnRpbWVPdXRUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvck1h
bmFnZXI6OnJ1blBhbmVsKToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvck1hbmFnZXI6
OnN0YXJ0UmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpp
bnZva2VQZW5kaW5nQ29tcGxldGlvbkhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50
aWNhdG9yTWFuYWdlckludGVybmFsOjpjb2xsZWN0VHJhbnNwb3J0cyk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VySW50ZXJuYWw6OnByb2Nlc3NHb29nbGVM
ZWdhY3lBcHBJZFN1cHBvcnRFeHRlbnNpb24pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oOgorICAgICAgICAoV2Vi
S2l0OjpBdXRoZW50aWNhdG9yTWFuYWdlcjo6cGVuZGluZ0NvbXBsZXRpb25IYW5kbGVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZjQ29u
bmVjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6TmZjQ29ubmVjdGlvbjo6TmZjQ29ubmVjdGlv
bik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY1NlcnZp
Y2UubW06CisgICAgICAgIChXZWJLaXQ6Ok5mY1NlcnZpY2U6OnBsYXRmb3JtU3RhcnREaXNjb3Zl
cnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRo
ZW50aWNhdGlvblBhbmVsQ2xpZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRp
b25QYW5lbENsaWVudC5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vTW9jay9Nb2NrQXV0aGVudGljYXRvck1hbmFnZXIuY3BwLgorICAgICAg
ICAoV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50OjpXZWJBdXRoZW50aWNhdGlv
blBhbmVsQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6d2tXZWJBdXRoZW50aWNhdGlvblJlc3Vs
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ6OmRpc21p
c3NQYW5lbCBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01v
Y2svTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TW9ja0F1
dGhlbnRpY2F0b3JNYW5hZ2VyOjpyZXNwb25kUmVjZWl2ZWRJbnRlcm5hbCk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxGbGFncy5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbEludGVybmFsLmguCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6
bWFrZUNyZWRlbnRpYWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JQcm94eTo6Z2V0QXNzZXJ0aW9uKToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKwogMjAxOS0xMC0wMyAgQ2hyaXN0b3BoZXIgUmVpZCAgPGNocmlzLnJl
aWRAc29ueS5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBSZW1vdGUgaW5zcGVjdG9yIGNsaWVu
dCB0YXJnZXQgbGlzdCBpcyByYWN5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L3NwaS9Db2NvYS9OZWFyRmllbGRTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0Nv
Y29hL05lYXJGaWVsZFNQSS5oCmluZGV4IGVkY2I1NjJlMWUwYWRiMzMzMjEzYTkxYWI5OTFjYWNj
M2MzMmM2MDYuLjZiY2JhYTU0OWU3ODFlOWFjOWZjMWJiZDBlZGIxM2RjZGIzZjI0OWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL05lYXJGaWVsZFNQSS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL05lYXJGaWVsZFNQSS5oCkBAIC0x
MDgsNyArMTA4LDcgQEAgdHlwZWRlZiBOU19FTlVNKHVpbnQzMl90LCBORk5kZWZBdmFpbGFiaWxp
dHkpIHsKIAogQGludGVyZmFjZSBORkhhcmR3YXJlTWFuYWdlciA6IE5TT2JqZWN0CiArIChpbnN0
YW5jZXR5cGUpc2hhcmVkSGFyZHdhcmVNYW5hZ2VyOwotLSAoTlNPYmplY3Q8TkZTZXNzaW9uPiAq
KXN0YXJ0UmVhZGVyU2Vzc2lvbldpdGhBY3Rpb25TaGVldFVJOih2b2lkKF4pKE5GUmVhZGVyU2Vz
c2lvbiAqc2Vzc2lvbiwgTlNFcnJvciAqZXJyb3IpKXRoZVN0YXJ0Q2FsbGJhY2s7CistIChOU09i
amVjdDxORlNlc3Npb24+ICopc3RhcnRSZWFkZXJTZXNzaW9uOih2b2lkKF4pKE5GUmVhZGVyU2Vz
c2lvbiAqc2Vzc2lvbiwgTlNFcnJvciAqZXJyb3IpKXRoZVN0YXJ0Q2FsbGJhY2s7CiAtIChCT09M
KWFyZUZlYXR1cmVzU3VwcG9ydGVkOihORkZlYXR1cmUpZmVhdHVyZU1hc2sgb3V0RXJyb3I6KE5T
RXJyb3IqKilvdXRFcnJvcjsKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQVBJL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5o
CmluZGV4IDQwMjlkZjkwZTdjZTIyOGRjMTM5NTcyMTI0YTU5NmMyODRlODBhY2YuLmI3Y2E5N2Fm
YTAwZDkzYzNiNDk2YjQxZDVjMDg2YWYxZTk4MjNhZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
QVBJT2JqZWN0LmgKQEAgLTE3OCw2ICsxNzgsMTAgQEAgcHVibGljOgogICAgICAgICBNZWRpYVNl
c3Npb25NZXRhZGF0YSwKICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKyAgICAgICAg
V2ViQXV0aGVudGljYXRpb25QYW5lbCwKKyNlbmRpZgorCiAgICAgICAgIC8vIEJ1bmRsZSB0eXBl
cwogICAgICAgICBCdW5kbGUsCiAgICAgICAgIEJ1bmRsZUJhY2tGb3J3YXJkTGlzdCwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbSBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbQppbmRleCA1N2MzMmIyZjlhYjIxYThiZWEx
YWY4YTBjZWU5Yjc2YmEzZTg4MGVlLi4xNDNlYjA4OTFiOWYyYmFjNGIwMDFiMTE0NmViZDM4Njc3
NjU0ZmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BUElPYmplY3Qu
bW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1tCkBAIC04NCw2
ICs4NCw3IEBACiAjaW1wb3J0ICJfV0tVc2VySW5pdGlhdGVkQWN0aW9uSW50ZXJuYWwuaCIKICNp
bXBvcnQgIl9XS1VzZXJTdHlsZVNoZWV0SW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS1Zpc2l0ZWRM
aW5rU3RvcmVJbnRlcm5hbC5oIgorI2ltcG9ydCAiX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbElu
dGVybmFsLmgiCiAjaW1wb3J0ICJfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbkludGVy
bmFsLmgiCiAKICNpZiBFTkFCTEUoQVBQTElDQVRJT05fTUFOSUZFU1QpCkBAIC0zNjQsNiArMzY1
LDEyIEBAIHZvaWQqIE9iamVjdDo6bmV3T2JqZWN0KHNpemVfdCBzaXplLCBUeXBlIHR5cGUpCiAg
ICAgICAgIHdyYXBwZXIgPSBbV0tXaW5kb3dGZWF0dXJlcyBhbGxvY107CiAgICAgICAgIGJyZWFr
OwogCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKyAgICBjYXNlIFR5cGU6OldlYkF1dGhlbnRpY2F0
aW9uUGFuZWw6CisgICAgICAgIHdyYXBwZXIgPSBbX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBh
bGxvY107CisgICAgICAgIGJyZWFrOworI2VuZGlmCisKICAgICBjYXNlIFR5cGU6OkJ1bmRsZUZy
YW1lOgogICAgICAgICB3cmFwcGVyID0gW1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lIGFsbG9jXTsK
ICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBmYTUyNjFmNTRjNTUxMDY0YTRiNzIwZGNi
Mzk4ZjJiNTE3MjI5YjlkLi4zNzNkNjU1ZjEwYWY4YjM4MDM1Yjk2YmFjN2Q4ZjI5NTJiMGE2OGJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQKQEAgLTMxOCw2ICszMTgsNyBAQCBVSVByb2Nlc3MvQVBJL0FQSVVSTFNj
aGVtZVRhc2suY3BwCiBVSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50V29ybGQuY3BwCiBVSVBy
b2Nlc3MvQVBJL0FQSVVzZXJTY3JpcHQuY3BwCiBVSVByb2Nlc3MvQVBJL0FQSVVzZXJTdHlsZVNo
ZWV0LmNwcAorVUlQcm9jZXNzL0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmNwcAogVUlQ
cm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuY3BwCiBVSVByb2Nlc3MvQVBJL0FQSVdpbmRv
d0ZlYXR1cmVzLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggYjdmMGFiNmUwNzgxOTJk
NWE0ZDk1MzZhZTVjMDRhMGViM2E5NTEzZC4uYjNmMTIyMjRhODVkNDgwMjJiODI3NzE5NjgzODlm
ZjVlMDk2MDg4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNTAzLDYgKzUwMyw3IEBAIFVJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZWFyRmllbGRTb2Z0TGluay5tbSBAbm8t
dW5pZnkKIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNDb25uZWN0aW9uLm1t
CiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZjU2VydmljZS5tbQogVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dLTkZSZWFkZXJTZXNzaW9uRGVsZWdhdGUubW0K
K1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdGlvblBhbmVs
Q2xpZW50Lm1tCiAKIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENv
bm5lY3Rpb24ubW0KIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbFNl
cnZpY2UubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNs
aWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXgg
NzcyZGE2ZTVhODY5NzdlYzhhZTJkYzA3NTQyZDhmY2YxZTE0OTYxYi4uZGRkNmU2MjM1NDkxMGI2
YjI2OGI0ZjliMzU2NjRlZWEyMWU4YmNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVVJQ2xpZW50LmgKQEAgLTM4LDYgKzM4LDEwIEBAIE9CSkNfQ0xBU1MgX1dLQWN0aXZhdGVk
RWxlbWVudEluZm87CiBPQkpDX0NMQVNTIFVJVmlld0NvbnRyb2xsZXI7CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShXRUJfQVVUSE4pCisjaW5jbHVkZSAiV2ViQXV0aGVudGljYXRpb25QYW5lbEZsYWdz
LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVnaXN0cmFibGVEb21h
aW47CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CkBAIC02OSw2ICs3Myw5IEBAIGNsYXNzIERpY3Rp
b25hcnk7CiBjbGFzcyBPYmplY3Q7CiBjbGFzcyBPcGVuUGFuZWxQYXJhbWV0ZXJzOwogY2xhc3Mg
U2VjdXJpdHlPcmlnaW47CisjaWYgRU5BQkxFKFdFQl9BVVRITikKK2NsYXNzIFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWw7CisjZW5kaWYKIAogY2xhc3MgVUlDbGllbnQgewogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwpAQCAtMTg4LDYgKzE5NSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGRpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVncm91bmQoV2Vi
S2l0OjpXZWJQYWdlUHJveHkmLCBXS1Jlc291cmNlTGltaXQpIHsgfQogICAgIAogICAgIHZpcnR1
YWwgdm9pZCBkaWRTaG93U2FmZUJyb3dzaW5nV2FybmluZygpIHsgfQorCisjaWYgRU5BQkxFKFdF
Ql9BVVRITikKKyAgICB2aXJ0dWFsIHZvaWQgcnVuV2ViQXV0aGVudGljYXRpb25QYW5lbChXZWJL
aXQ6OldlYlBhZ2VQcm94eSYsIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlv
blBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSk7IH0KKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2ViQXV0
aGVudGljYXRpb25QYW5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vi
QXV0aGVudGljYXRpb25QYW5lbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDBkMmQxYTI0YzIxYzI5ZTI5NzU4
ZmIyZmZiYjVhYWNmNTdmM2JiZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmNwcApAQCAtMCwwICsxLDU1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFQSVdlYkF1dGhl
bnRpY2F0aW9uUGFuZWwuaCIKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJB
UElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmgiCisKK25hbWVzcGFjZSBBUEkgeworCitS
ZWY8V2ViQXV0aGVudGljYXRpb25QYW5lbD4gV2ViQXV0aGVudGljYXRpb25QYW5lbDo6Y3JlYXRl
KGNvbnN0IFN0cmluZyYgcnBJZCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBdXRo
ZW50aWNhdGlvblBhbmVsKHJwSWQpKTsKK30KKworV2ViQXV0aGVudGljYXRpb25QYW5lbDo6V2Vi
QXV0aGVudGljYXRpb25QYW5lbChjb25zdCBTdHJpbmcmIHJwSWQpCisgICAgOiBtX3JwSWQocnBJ
ZCkKKyAgICAsIG1fY2xpZW50KFdURjo6bWFrZVVuaXF1ZVJlZjxXZWJBdXRoZW50aWNhdGlvblBh
bmVsQ2xpZW50PigpKQoreworfQorCitXZWJBdXRoZW50aWNhdGlvblBhbmVsOjp+V2ViQXV0aGVu
dGljYXRpb25QYW5lbCgpID0gZGVmYXVsdDsKKwordm9pZCBXZWJBdXRoZW50aWNhdGlvblBhbmVs
OjpzZXRDbGllbnQoVW5pcXVlUmVmPFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ+JiYgY2xp
ZW50KQoreworICAgIG1fY2xpZW50ID0gV1RGTW92ZShjbGllbnQpOworfQorCit9IC8vIG5hbWVz
cGFjZSBBUEkKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43NTA0ODg2YzA0YzAzM2FhMjZkMjVkOGYxMzUwM2Q1ZjlmOTc1ODJmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYkF1dGhlbnRpY2F0
aW9uUGFuZWwuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVk
ZSA8d3RmL1VuaXF1ZVJlZi5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBBUEkgeworCitjbGFzcyBXZWJBdXRo
ZW50aWNhdGlvblBhbmVsQ2xpZW50OworCitjbGFzcyBXZWJBdXRoZW50aWNhdGlvblBhbmVsIGZp
bmFsIDogcHVibGljIE9iamVjdEltcGw8T2JqZWN0OjpUeXBlOjpXZWJBdXRoZW50aWNhdGlvblBh
bmVsPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYkF1dGhlbnRpY2F0aW9uUGFuZWw+IHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkF1dGhlbnRpY2F0aW9uUGFuZWw+IGNyZWF0ZShjb25z
dCBTdHJpbmcmIHJwSWQpOworICAgIH5XZWJBdXRoZW50aWNhdGlvblBhbmVsKCk7CisKKyAgICBX
VEY6OlN0cmluZyBycElkKCkgY29uc3QgeyByZXR1cm4gbV9ycElkOyB9CisKKyAgICBjb25zdCBX
ZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50JiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2Ns
aWVudC5nZXQoKTsgfQorICAgIHZvaWQgc2V0Q2xpZW50KFVuaXF1ZVJlZjxXZWJBdXRoZW50aWNh
dGlvblBhbmVsQ2xpZW50PiYmKTsKKworcHJpdmF0ZToKKyAgICBXZWJBdXRoZW50aWNhdGlvblBh
bmVsKGNvbnN0IFN0cmluZyYgcnBJZCk7CisKKyAgICBXVEY6OlN0cmluZyBtX3JwSWQ7CisgICAg
VW5pcXVlUmVmPFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ+IG1fY2xpZW50OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgQVBJCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJBdXRoZW50aWNh
dGlvblBhbmVsQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWI2YTljN2E2Mzk2YTdmODg2MjRhZDk0YmFh
YTE5ZmE4NGQ5MWQ4YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmgKQEAgLTAsMCArMSw0NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworbmFt
ZXNwYWNlIFdlYktpdCB7CitlbnVtIGNsYXNzIFdlYkF1dGhlbnRpY2F0aW9uUmVzdWx0IDogYm9v
bDsKK30KKworbmFtZXNwYWNlIEFQSSB7CisKK2NsYXNzIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxD
bGllbnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHZpcnR1
YWwgfldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0
dWFsIHZvaWQgZGlzbWlzc1BhbmVsKFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25SZXN1bHQpIGNv
bnN0IHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgQVBJCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
X0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggMmY1
ZjgwYzA3OTU1MzNkY2RkNDJjN2FmOTNmYzYwYzdlZDcyM2Q5NC4uMTA0NTUyYmZiMTY3NDI3YmQ5
YWI3OWYzNjk4YzczN2ViMmI2YTcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwCkBAIC0xMTYsNyArMTE2LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJh
aXRzPFdLUGFnZVBvbGljeUNsaWVudEJhc2U+IHsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IENs
aWVudFRyYWl0czxXS1BhZ2VVSUNsaWVudEJhc2U+IHsKLSAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8
V0tQYWdlVUlDbGllbnRWMCwgV0tQYWdlVUlDbGllbnRWMSwgV0tQYWdlVUlDbGllbnRWMiwgV0tQ
YWdlVUlDbGllbnRWMywgV0tQYWdlVUlDbGllbnRWNCwgV0tQYWdlVUlDbGllbnRWNSwgV0tQYWdl
VUlDbGllbnRWNiwgV0tQYWdlVUlDbGllbnRWNywgV0tQYWdlVUlDbGllbnRWOCwgV0tQYWdlVUlD
bGllbnRWOSwgV0tQYWdlVUlDbGllbnRWMTAsIFdLUGFnZVVJQ2xpZW50VjExLCBXS1BhZ2VVSUNs
aWVudFYxMiwgV0tQYWdlVUlDbGllbnRWMTM+IFZlcnNpb25zOworICAgIHR5cGVkZWYgc3RkOjp0
dXBsZTxXS1BhZ2VVSUNsaWVudFYwLCBXS1BhZ2VVSUNsaWVudFYxLCBXS1BhZ2VVSUNsaWVudFYy
LCBXS1BhZ2VVSUNsaWVudFYzLCBXS1BhZ2VVSUNsaWVudFY0LCBXS1BhZ2VVSUNsaWVudFY1LCBX
S1BhZ2VVSUNsaWVudFY2LCBXS1BhZ2VVSUNsaWVudFY3LCBXS1BhZ2VVSUNsaWVudFY4LCBXS1Bh
Z2VVSUNsaWVudFY5LCBXS1BhZ2VVSUNsaWVudFYxMCwgV0tQYWdlVUlDbGllbnRWMTEsIFdLUGFn
ZVVJQ2xpZW50VjEyLCBXS1BhZ2VVSUNsaWVudFYxMywgV0tQYWdlVUlDbGllbnRWMTQ+IFZlcnNp
b25zOwogfTsKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpAQCAtMjA3Myw2ICsyMDczLDE4
IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBX
S1BhZ2VVSUNsaWVudEJhc2UqIHdrQ2xpZW50CiAKICAgICAgICAgICAgIG1fY2xpZW50LmhhbmRs
ZUF1dG9wbGF5RXZlbnQodG9BUEkoJnBhZ2UpLCB0b1dLQXV0b3BsYXlFdmVudChldmVudCksIHRv
V0tBdXRvcGxheUV2ZW50RmxhZ3MoZmxhZ3MpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwog
ICAgICAgICB9CisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorICAgICAgICAvLyBUaGUgY3VycmVu
dCBtZXRob2QgaXMgc3BlY2lhbGl6ZWQgZm9yIFdlYktpdFRlc3RSdW5uZXIuCisgICAgICAgIHZv
aWQgcnVuV2ViQXV0aGVudGljYXRpb25QYW5lbChXZWJQYWdlUHJveHkmLCBBUEk6OldlYkF1dGhl
bnRpY2F0aW9uUGFuZWwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYktpdDo6V2ViQXV0aGVu
dGljYXRpb25QYW5lbFJlc3VsdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCisgICAgICAg
IHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQucnVuV2ViQXV0aGVudGljYXRpb25QYW5lbCkg
eworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdlYktpdDo6V2ViQXV0aGVudGlj
YXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUpOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdlYktpdDo6V2Vi
QXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6UHJlc2VudGVkKTsKKyAgICAgICAgfQorI2VuZGlm
CiAgICAgfTsKIAogICAgIHRvSW1wbChwYWdlUmVmKS0+c2V0VUlDbGllbnQobWFrZVVuaXF1ZTxV
SUNsaWVudD4od2tDbGllbnQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VVSUNsaWVudC5oCmluZGV4IGQyNmVlOTIzN2M5M2RkMGQwNjQ2MmE2MjE5YWNkMzUzNzZm
Y2FlZTcuLjFkMmZlYmZiYTg4MzM5MTJmNzIyMTZhYTUzYzhjMjAwOTBlZTJkOGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaApAQCAtMTM2LDYg
KzEzNiw4IEBAIHR5cGVkZWYgdm9pZCAoKldLRGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGlt
aXRXaGlsZUluRm9yZWdyb3VuZENhbGxiYWNrKShXS1BhCiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VE
aWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2VDYWxsYmFjaykoV0tQ
YWdlUmVmIHBhZ2UsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7
CiB0eXBlZGVmIGJvb2wgKCpXS1BhZ2VTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1NlY3VyaXR5T3JpZ2luUmVmIHNl
Y3VyaXR5T3JpZ2luLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIAordHlwZWRlZiB2b2lkICgq
V0tQYWdlUnVuV2ViQXV0aGVudGljYXRpb25QYW5lbENhbGxiYWNrKSgpOworCiAvLyBEZXByZWNh
dGVkCiB0eXBlZGVmIFdLUGFnZVJlZiAoKldLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXBy
ZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1
cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNl
QnV0dG9uLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAgICAgICgqV0tQ
YWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYw
KShXS1BhZ2VSZWYgcGFnZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLVHlwZVJlZiB1
c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CkBAIC0xMjQ1LDYgKzEyNDcsMTEzIEBA
IHR5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjEzIHsKICAgICBXS1BhZ2VTaG91bGRBbGxv
d0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ2FsbGJhY2sgICAgICAgICAgIHNob3Vs
ZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3M7CiB9IFdLUGFnZVVJQ2xpZW50
VjEzOwogCit0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudFYxNCB7CisgICAgV0tQYWdlVUlD
bGllbnRCYXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBiYXNlOworCisgICAgLy8gVmVyc2lvbiAwLgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxs
YmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFn
ZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1BhZ2U7CisgICAg
V0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjbG9zZTsKKyAgICBXS1BhZ2VUYWtlRm9jdXNDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2VGb2N1czsKKyAgICBXS1BhZ2VG
b2N1c0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZvY3VzOworICAgIFdLUGFnZVVuZm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5mb2N1czsKKyAgICBXS1BhZ2VSdW5KYXZhU2Ny
aXB0QWxlcnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgIHJ1bkph
dmFTY3JpcHRBbGVydF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVJ1bkphdmFT
Y3JpcHRDb25maXJtQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgcnVu
SmF2YVNjcmlwdENvbmZpcm1fZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VSdW5K
YXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAg
IHJ1bkphdmFTY3JpcHRQcm9tcHRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VT
ZXRTdGF0dXNUZXh0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNldFN0YXR1c1RleHQ7CisgICAgV0tQYWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxs
YmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVu
dF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZU1pc3NpbmdQbHVnaW5CdXR0b25D
bGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgbWlzc2luZ1BsdWdpbkJ1
dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VEaWROb3RIYW5k
bGVLZXlFdmVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5v
dEhhbmRsZUtleUV2ZW50OworICAgIFdLUGFnZURpZE5vdEhhbmRsZVdoZWVsRXZlbnRDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTm90SGFuZGxlV2hlZWxFdmVudDsK
KyAgICBXS1BhZ2VHZXRUb29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRvb2xiYXJzQXJlVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRUb29sYmFy
c0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRv
b2xiYXJzQXJlVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRNZW51QmFySXNWaXNpYmxlQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVCYXJJc1Zpc2libGU7CisgICAg
V0tQYWdlU2V0TWVudUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZXRNZW51QmFySXNWaXNpYmxlOworICAgIFdLUGFnZUdldFN0YXR1c0Jhcklz
VmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQmFy
SXNWaXNpYmxlOworICAgIFdLUGFnZVNldFN0YXR1c0JhcklzVmlzaWJsZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdHVzQmFySXNWaXNpYmxlOworICAgIFdL
UGFnZUdldElzUmVzaXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaXNSZXNpemFibGU7CisgICAgV0tQYWdlU2V0SXNSZXNpemFibGVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc1Jlc2l6YWJsZTsKKyAg
ICBXS1BhZ2VHZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdldFdpbmRvd0ZyYW1lOworICAgIFdLUGFnZVNldFdpbmRvd0ZyYW1lQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0V2luZG93RnJh
bWU7CisgICAgV0tQYWdlUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2tfZGVwcmVj
YXRlZEZvclVzZVdpdGhWNiAgICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWNjsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZERyYXc7CisgICAgV0tQYWdlVUlDbGll
bnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YWdlRGlkU2Nyb2xsOworICAgIFdLUGFnZUV4Y2VlZGVkRGF0YWJhc2VRdW90YUNhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZWVkZWREYXRhYmFzZVF1b3RhOworICAg
IFdLUGFnZVJ1bk9wZW5QYW5lbENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcnVuT3BlblBhbmVsOworICAgIFdLUGFnZURlY2lkZVBvbGljeUZvckdlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9y
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VIZWFkZXJIZWlnaHRDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlckhlaWdo
dDsKKyAgICBXS1BhZ2VGb290ZXJIZWlnaHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZvb3RlckhlaWdodDsKKyAgICBXS1BhZ2VEcmF3SGVhZGVyQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdIZWFk
ZXI7CisgICAgV0tQYWdlRHJhd0Zvb3RlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkcmF3Rm9vdGVyOworICAgIFdLUGFnZVByaW50RnJhbWVDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRGcmFt
ZTsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJ1bk1vZGFsOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMTsgLy8g
VXNlZCB0byBiZSBkaWRDb21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUKKyAgICBXS1BhZ2VT
YXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgIHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXI7CisgICAgdm9pZCogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91
bGRJbnRlcnJ1cHRKYXZhU2NyaXB0X3VuYXZhaWxhYmxlOworCisgICAgLy8gVmVyc2lvbiAxLgor
ICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxICAg
ICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYxOworICAg
IFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQ7CisgICAgV0tQYWdlRGVjaWRlUG9s
aWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICBkZWNp
ZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VVbmF2
YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYx
IHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYxOwor
CisgICAgLy8gVmVyc2lvbiAyLgorICAgIFdLUGFnZVNob3dDb2xvclBpY2tlckNhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0NvbG9yUGlja2VyOworICAg
IFdLUGFnZUhpZGVDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaGlkZUNvbG9yUGlja2VyOworICAgIFdLUGFnZVVuYXZhaWxhYmxlUGx1Z2lu
QnV0dG9uQ2xpY2tlZENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgdW5hdmFpbGFibGVQ
bHVnaW5CdXR0b25DbGlja2VkOworCisgICAgLy8gVmVyc2lvbiAzLgorICAgIFdLUGFnZVBpbm5l
ZFN0YXRlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGlubmVkU3RhdGVEaWRDaGFuZ2U7CisKKyAgICAvLyBWZXJzaW9uIDQuCisgICAgdm9pZCogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bnVzZWQyOyAvLyBVc2VkIHRvIGJlIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91
c2VQcmVzcy4KKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDM7IC8vIFVzZWQgdG8gYmUgZGlkUmVjb2du
aXplTG9uZ01vdXNlUHJlc3MuCisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQ0OyAvLyBVc2VkIHRvIGJl
IGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MuCisgICAgV0tQYWdlSXNQ
bGF5aW5nQXVkaW9EaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpc1BsYXlpbmdBdWRpb0RpZENoYW5nZTsKKworICAgIC8vIFZlcnNpb24gNS4KKyAgICBXS1Bh
Z2VEZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAg
ICAgICAgIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdL
UGFnZURpZENsaWNrQXV0b0ZpbGxCdXR0b25DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbjsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0
QWxlcnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFY1ICAgICAgICAgICAgIHJ1bkphdmFT
Y3JpcHRBbGVydF9kZXByZWNhdGVkRm9yVXNlV2l0aFY1OworICAgIFdLUGFnZVJ1bkphdmFTY3Jp
cHRDb25maXJtQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgcnVuSmF2
YVNjcmlwdENvbmZpcm1fZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICBXS1BhZ2VSdW5KYXZh
U2NyaXB0UHJvbXB0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgIHJ1
bkphdmFTY3JpcHRQcm9tcHRfZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICBXS1BhZ2VNZWRp
YVNlc3Npb25NZXRhZGF0YURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
IG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlOworCisgICAgLy8gVmVyc2lvbiA2LgorICAg
IFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY3JlYXRlTmV3UGFnZTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRB
bGVydDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJtOworICAgIFdLUGFnZVJ1
bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcnVuSmF2YVNjcmlwdFByb21wdDsKKyAgICBXS0NoZWNrVXNlck1lZGlhUGVybWlzc2lvbkNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVXNlck1lZGlhUGVy
bWlzc2lvbkZvck9yaWdpbjsKKworICAgIC8vIFZlcnNpb24gNy4KKyAgICBXS1BhZ2VSdW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1
bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDsKKyAgICBXS0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lu
bGluZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxzY3JlZW5NYXlS
ZXR1cm5Ub0lubGluZTsKKworICAgIC8vIFZlcnNpb24gOC4KKyAgICBXS1JlcXVlc3RQb2ludGVy
TG9ja0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVl
c3RQb2ludGVyTG9jazsKKyAgICBXS0RpZExvc2VQb2ludGVyTG9ja0NhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZExvc2VQb2ludGVyTG9jazsKKworICAg
IC8vIFZlcnNpb24gOS4KKyAgICBXS0hhbmRsZUF1dG9wbGF5RXZlbnRDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUF1dG9wbGF5RXZlbnQ7CisKKyAg
ICAvLyBWZXJzaW9uIDEwLgorICAgIFdLSGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVEaWRDaGFu
Z2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1
cmVEaWRDaGFuZ2U7CisgICAgV0tEaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxl
SW5Gb3JlZ3JvdW5kQ2FsbGJhY2sgICAgICAgICBkaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VM
aW1pdFdoaWxlSW5Gb3JlZ3JvdW5kOworCisgICAgLy8gVmVyc2lvbiAxMS4KKyAgICBXS1BhZ2VE
aWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2VDYWxsYmFjayAgICAg
ICAgIGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZTsKKworICAg
IC8vIFZlcnNpb24gMTIuCisgICAgV0tQYWdlUmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZp
cm07CisKKyAgICAvLyBWZXJzaW9uIDEzLgorICAgIFdLUGFnZVNob3VsZEFsbG93RGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDYWxsYmFjayAgICAgICAgICAgc2hvdWxkQWxsb3dEZXZp
Y2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzczsKKworICAgIC8vIFZlcnNpb24gMTQuCisgICAg
V0tQYWdlUnVuV2ViQXV0aGVudGljYXRpb25QYW5lbENhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsOworfSBXS1BhZ2VVSUNsaWVudFYx
NDsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwubW0KaW5kZXggNDFiMmMwNzZjMTg1MmVlYjQ1MDI1YmI4YjcxYTMxMDU5Mjk5NzcxMi4uZjUz
NWM2MDE3MDE4OGU0M2Y4MGU0ZWM2YmZmMzc5NzZkYWMyODQ3YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWwubW0KQEAgLTI0LDI5ICsyNCw1MCBAQAogICovCiAKICNpbXBvcnQgImNvbmZpZy5o
IgorI2ltcG9ydCAiV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oIgogI2ltcG9ydCAiX1dL
V2ViQXV0aGVudGljYXRpb25QYW5lbEludGVybmFsLmgiCiAKICNpbXBvcnQgPHd0Zi9SZXRhaW5Q
dHIuaD4KIAotQGltcGxlbWVudGF0aW9uIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgIHsKLSAg
ICBSZXRhaW5QdHI8TlNTdHJpbmc+IF9yZWx5aW5nUGFydHlJRDsKK0BpbXBsZW1lbnRhdGlvbiBf
V0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIHsKKyAgICBXZWFrUHRyPFdlYktpdDo6V2ViQXV0aGVu
dGljYXRpb25QYW5lbENsaWVudD4gX2NsaWVudDsKIH0KIAotLSAoaW5zdGFuY2V0eXBlKV9pbml0
V2l0aFJlbGF5aW5nUGFydHlJRDooTlNTdHJpbmcgKilyZWxheWluZ1BhcnR5SUQKKy0gKHZvaWQp
ZGVhbGxvYwogewotICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQotICAgICAgICByZXR1
cm4gbmlsOwotICAgIF9yZWx5aW5nUGFydHlJRCA9IHJlbGF5aW5nUGFydHlJRDsKLSAgICByZXR1
cm4gc2VsZjsKKyAgICBfcGFuZWwtPn5XZWJBdXRoZW50aWNhdGlvblBhbmVsKCk7CisKKyAgICBb
c3VwZXIgZGVhbGxvY107CiB9CiAKIC0gKE5TU3RyaW5nICopcmVseWluZ1BhcnR5SUQKIHsKLSAg
ICByZXR1cm4gX3JlbHlpbmdQYXJ0eUlELmdldCgpOworICAgIHJldHVybiBfcGFuZWwtPnJwSWQo
KTsKK30KKworLSAoaWQgPF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZT4pZGVsZWdh
dGUKK3sKKyAgICBpZiAoIV9jbGllbnQpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgcmV0dXJu
IF9jbGllbnQtPmRlbGVnYXRlKCkuYXV0b3JlbGVhc2UoKTsKK30KKworLSAodm9pZClzZXREZWxl
Z2F0ZTooaWQ8X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlPilkZWxlZ2F0ZQorewor
ICAgIGF1dG8gY2xpZW50ID0gV1RGOjptYWtlVW5pcXVlUmVmPFdlYktpdDo6V2ViQXV0aGVudGlj
YXRpb25QYW5lbENsaWVudD4oc2VsZiwgZGVsZWdhdGUpOworICAgIF9jbGllbnQgPSBtYWtlV2Vh
a1B0cihjbGllbnQuZ2V0KCkpOworICAgIF9wYW5lbC0+c2V0Q2xpZW50KFdURk1vdmUoY2xpZW50
KSk7CiB9CiAKIC0gKHZvaWQpY2FuY2VsCiB7CiB9CiAKKyNwcmFnbWEgbWFyayBXS09iamVjdCBw
cm90b2NvbCBpbXBsZW1lbnRhdGlvbgorCistIChBUEk6Ok9iamVjdCYpX2FwaU9iamVjdAorewor
ICAgIHJldHVybiAqX3BhbmVsOworfQorCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbEludGVybmFsLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25Q
YW5lbEludGVybmFsLmgKaW5kZXggNDM1YTRhY2YzOWZiNDRjNDFiMjFmODQyYWM0NjM4YmE0MDRm
NmIwMC4uY2EwMjY2N2ViZWVmYzQyZGVlOGUwZDM0ODI2MzllMDI5MzI4Nzg2MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWxJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJBdXRoZW50aWNhdGlvblBhbmVsSW50ZXJuYWwuaApAQCAtMjcsOCArMjcsMTkgQEAKIAog
I2ltcG9ydCAiX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5oIgogCi1AaW50ZXJmYWNlIF9XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwgKCkKKyNpbXBvcnQgIkFQSVdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwuaCIKKyNpbXBvcnQgIldLT2JqZWN0LmgiCiAKLS0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhS
ZWxheWluZ1BhcnR5SUQ6KE5TU3RyaW5nICopcmVsYXlpbmdQYXJ0eUlEOworbmFtZXNwYWNlIFdl
YktpdCB7CiAKK3RlbXBsYXRlPD4gc3RydWN0IFdyYXBwZXJUcmFpdHM8QVBJOjpXZWJBdXRoZW50
aWNhdGlvblBhbmVsPiB7CisgICAgdXNpbmcgV3JhcHBlckNsYXNzID0gX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbDsKK307CisKK30KKworQGludGVyZmFjZSBfV0tXZWJBdXRoZW50aWNhdGlvblBh
bmVsICgpIDxXS09iamVjdD4geworQHBhY2thZ2UKKyAgICBBUEk6Ok9iamVjdFN0b3JhZ2U8QVBJ
OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsPiBfcGFuZWw7Cit9CiBAZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKaW5kZXggYmQyMGE4MTk3ZTk0ZGVhNGNjNGM4
MDMwOWM1NzY3YzIxNmFlMGE1Zi4uODFmNzhhYTBmZjgxZDY1NmQ4NDFlMjdjZWZhNzM2ZmEzMjRl
N2MxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaApAQCAt
MTU0LDYgKzE1NCw5IEBAIHByaXZhdGU6CiAKICAgICAgICAgdm9pZCBpbWFnZU9yTWVkaWFEb2N1
bWVudFNpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBmaW5hbDsKICAgICAgICAg
dm9pZCBkaWRTaG93U2FmZUJyb3dzaW5nV2FybmluZygpIGZpbmFsOworI2lmIEVOQUJMRShXRUJf
QVVUSE4pCisgICAgICAgIHZvaWQgcnVuV2ViQXV0aGVudGljYXRpb25QYW5lbChXZWJQYWdlUHJv
eHkmLCBBUEk6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQpPiYmKSBmaW5hbDsKKyNlbmRpZgogCiAgICAg
ICAgIFVJRGVsZWdhdGUmIG1fdWlEZWxlZ2F0ZTsKICAgICB9OwpAQCAtMjM0LDYgKzIzNyw5IEBA
IHByaXZhdGU6CiAjZW5kaWYKICAgICAgICAgYm9vbCB3ZWJWaWV3SGFzVmlkZW9JblBpY3R1cmVJ
blBpY3R1cmVEaWRDaGFuZ2UgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRTaG93U2FmZUJy
b3dzaW5nV2FybmluZyA6IDE7CisjaWYgRU5BQkxFKFdFQl9BVVRITikKKyAgICAgICAgYm9vbCB3
ZWJWaWV3UnVuV2ViQXV0aGVudGljYXRpb25QYW5lbEluaXRpYXRlZEJ5RnJhbWVDb21wbGV0aW9u
SGFuZGxlciA6IDE7CisjZW5kaWYKICAgICB9IG1fZGVsZWdhdGVNZXRob2RzOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggN2I2MjRhYmZh
MmY0MTEwNDBhMDZiMmIyNjdkYmJiMzJjZDgxY2QxNi4uM2VjNDJjZWYyZTY0YTdkNmEzMzNjNjdi
OGY3NmRhNmIzMzY5NjUyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLm1tCkBAIC01Miw2ICs1Miw3IEBACiAjaW1wb3J0ICJfV0tDb250ZXh0TWVudUVsZW1l
bnRJbmZvLmgiCiAjaW1wb3J0ICJfV0tGcmFtZUhhbmRsZUludGVybmFsLmgiCiAjaW1wb3J0ICJf
V0tIaXRUZXN0UmVzdWx0SW50ZXJuYWwuaCIKKyNpbXBvcnQgIl9XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWxJbnRlcm5hbC5oIgogI2ltcG9ydCA8V2ViQ29yZS9Gb250QXR0cmlidXRlcy5oPgogI2lt
cG9ydCA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0
ci5oPgpAQCAtMTcyLDYgKzE3Myw5IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQg
PFdLVUlEZWxlZ2F0ZT4gZGVsZWdhdGUpCiAgICAgCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld0hhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlID0gW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6aGFzVmlkZW9JblBpY3R1cmVJblBpY3R1
cmVEaWRDaGFuZ2U6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZFNob3dTYWZl
QnJvd3NpbmdXYXJuaW5nID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
X3dlYlZpZXdEaWRTaG93U2FmZUJyb3dzaW5nV2FybmluZzopXTsKKyNpZiBFTkFCTEUoV0VCX0FV
VEhOKQorICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSdW5XZWJBdXRoZW50aWNhdGlvblBh
bmVsSW5pdGlhdGVkQnlGcmFtZUNvbXBsZXRpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsOmlu
aXRpYXRlZEJ5RnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6KV07CisjZW5kaWYKIH0KIAogI2lmIEVO
QUJMRShDT05URVhUX01FTlVTKQpAQCAtMTI2MSw2ICsxMjY1LDQ2IEBAIHZvaWQgVUlEZWxlZ2F0
ZTo6VUlDbGllbnQ6OmRpZFNob3dTYWZlQnJvd3NpbmdXYXJuaW5nKCkKICAgICBbc3RhdGljX2Nh
c3Q8aWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+PihkZWxlZ2F0ZSkgX3dlYlZpZXdEaWRTaG93U2Fm
ZUJyb3dzaW5nV2FybmluZzptX3VpRGVsZWdhdGUubV93ZWJWaWV3XTsKIH0KIAorI2lmIEVOQUJM
RShXRUJfQVVUSE4pCisKK3N0YXRpYyBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0IHdlYkF1
dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQoX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdCBy
ZXN1bHQpCit7CisgICAgc3dpdGNoIChyZXN1bHQpIHsKKyAgICBjYXNlIF9XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxSZXN1bHRVbmF2YWlsYWJsZToKKyAgICAgICAgcmV0dXJuIFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlOworICAgIGNhc2UgX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbFJlc3VsdFByZXNlbnRlZDoKKyAgICAgICAgcmV0dXJuIFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxSZXN1bHQ6OlByZXNlbnRlZDsKKyAgICBjYXNlIF9XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWxSZXN1bHREaWROb3RQcmVzZW50OgorICAgICAgICByZXR1cm4gV2ViQXV0aGVudGljYXRp
b25QYW5lbFJlc3VsdDo6RGlkTm90UHJlc2VudDsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxh
YmxlOworfQorCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpydW5XZWJBdXRoZW50aWNhdGlv
blBhbmVsKFdlYlBhZ2VQcm94eSYsIEFQSTo6V2ViQXV0aGVudGljYXRpb25QYW5lbCYgcGFuZWws
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld1J1bldlYkF1dGhlbnRpY2F0aW9uUGFuZWxJbml0aWF0ZWRCeUZyYW1lQ29t
cGxldGlvbkhhbmRsZXIpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQXV0aGVudGlj
YXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOworICAg
IGlmICghZGVsZWdhdGUpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQXV0aGVudGlj
YXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgYXV0byBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRl
KGRlbGVnYXRlLmdldCgpLCBAc2VsZWN0b3Iod2ViVmlldzpydW5XZWJBdXRoZW50aWNhdGlvblBh
bmVsOmluaXRpYXRlZEJ5RnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6KSk7CisgICAgWyhpZCA8V0tV
SURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3
IHJ1bldlYkF1dGhlbnRpY2F0aW9uUGFuZWw6d3JhcHBlcihwYW5lbCkgaW5pdGlhdGVkQnlGcmFt
ZTpuaWwgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0g
KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAg
ICAgaWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIo
KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3Vs
dChyZXN1bHQpKTsKKyAgICB9KS5nZXQoKV07Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FV
VEhOKQorCiB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpoYXNWaWRlb0luUGljdHVyZUluUGlj
dHVyZURpZENoYW5nZShXZWJQYWdlUHJveHkqLCBib29sIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0
dXJlKQogewogICAgIGlmICghbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdI
YXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
b3JNYW5hZ2VyLmNwcAppbmRleCA5YTJiMzQ4MzY3Y2JkZDU1ODBhOTg0ZGJiN2MzNzQ0MTM0YzM2
MjJlLi4xYzQxYTNjMjg1ZWYwNzI0NWVlMWNlNTI5YTU2NTY4MWYyNDgzNTUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9y
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCkBAIC0yOCw2ICsyOCwxMCBAQAogCiAjaWYgRU5B
QkxFKFdFQl9BVVRITikKIAorI2luY2x1ZGUgIkFQSVVJQ2xpZW50LmgiCisjaW5jbHVkZSAiQVBJ
V2ViQXV0aGVudGljYXRpb25QYW5lbC5oIgorI2luY2x1ZGUgIkFQSVdlYkF1dGhlbnRpY2F0aW9u
UGFuZWxDbGllbnQuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQ
cmVmZXJlbmNlc0tleXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JUcmFuc3Bv
cnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnMuaD4KQEAgLTM2LDcgKzQwLDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKLW5hbWVzcGFjZSBBdXRoZW50aWNhdG9yTWFuYWdlckludGVybmFsIHsK
K25hbWVzcGFjZSB7CiAKIGNvbnN0IHNpemVfdCBtYXhUcmFuc3BvcnROdW1iZXIgPSAzOwogCkBA
IC0xMjMsNyArMTI3LDIxIEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NHb29nbGVMZWdhY3lBcHBJZFN1
cHBvcnRFeHRlbnNpb24oY29uc3QgT3B0aW9uYWw8QXV0aGVudGljYXRpCiAgICAgdHJhbnNwb3J0
cy5yZW1vdmUoQXV0aGVudGljYXRvclRyYW5zcG9ydDo6SW50ZXJuYWwpOwogfQogCi19IC8vIG5h
bWVzcGFjZSBBdXRoZW50aWNhdG9yTWFuYWdlckludGVybmFsCitzdGF0aWMgYm9vbCBpc0ZlYXR1
cmVFbmFibGVkKFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgU3RyaW5nJiBmZWF0dXJlS2V5KQor
eworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBwYWdl
LT5wcmVmZXJlbmNlcygpLnN0b3JlKCkuZ2V0Qm9vbFZhbHVlRm9yS2V5KGZlYXR1cmVLZXkpOwor
fQorCitzdGF0aWMgU3RyaW5nIGdldFJwSWQoY29uc3QgVmFyaWFudDxQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zLCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+JiBv
cHRpb25zKQoreworICAgIGlmIChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFB1YmxpY0tleUNyZWRl
bnRpYWxDcmVhdGlvbk9wdGlvbnM+KG9wdGlvbnMpKQorICAgICAgICByZXR1cm4gV1RGOjpnZXQ8
UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucz4ob3B0aW9ucykucnAuaWQ7CisgICAg
cmV0dXJuIFdURjo6Z2V0PFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4ob3B0aW9u
cykucnBJZDsKK30KKworfSAvLyBuYW1lc3BhY2UKIAogQXV0aGVudGljYXRvck1hbmFnZXI6OkF1
dGhlbnRpY2F0b3JNYW5hZ2VyKCkKICAgICA6IG1fcmVxdWVzdFRpbWVPdXRUaW1lcihSdW5Mb29w
OjptYWluKCksIHRoaXMsICZBdXRoZW50aWNhdG9yTWFuYWdlcjo6dGltZU91dFRpbWVyRmlyZWQp
CkBAIC0xMzIsMTAgKzE1MCw4IEBAIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpBdXRoZW50aWNhdG9y
TWFuYWdlcigpCiAKIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmhhbmRsZVJlcXVlc3QoV2Vi
QXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSYmIGRhdGEsIENhbGxiYWNrJiYgY2FsbGJhY2spCiB7
Ci0gICAgdXNpbmcgbmFtZXNwYWNlIEF1dGhlbnRpY2F0b3JNYW5hZ2VySW50ZXJuYWw7Ci0KICAg
ICBpZiAobV9wZW5kaW5nQ29tcGxldGlvbkhhbmRsZXIpIHsKLSAgICAgICAgbV9wZW5kaW5nQ29t
cGxldGlvbkhhbmRsZXIoRXhjZXB0aW9uRGF0YSB7IE5vdEFsbG93ZWRFcnJvciwgIlRoaXMgcmVx
dWVzdCBoYXMgYmVlbiBjYW5jZWxsZWQgYnkgYSBuZXcgcmVxdWVzdC4iX3MgfSk7CisgICAgICAg
IGludm9rZVBlbmRpbmdDb21wbGV0aW9uSGFuZGxlcihFeGNlcHRpb25EYXRhIHsgTm90QWxsb3dl
ZEVycm9yLCAiVGhpcyByZXF1ZXN0IGhhcyBiZWVuIGNhbmNlbGxlZCBieSBhIG5ldyByZXF1ZXN0
LiJfcyB9KTsKICAgICAgICAgbV9yZXF1ZXN0VGltZU91dFRpbWVyLnN0b3AoKTsKICAgICB9CiAg
ICAgY2xlYXJTdGF0ZSgpOwpAQCAtMTQ0LDE3ICsxNjAsOCBAQCB2b2lkIEF1dGhlbnRpY2F0b3JN
YW5hZ2VyOjpoYW5kbGVSZXF1ZXN0KFdlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEmJiBkYXRh
LCBDYQogICAgIG1fcGVuZGluZ1JlcXVlc3REYXRhID0gV1RGTW92ZShkYXRhKTsKICAgICBtX3Bl
bmRpbmdDb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY2FsbGJhY2spOwogCi0gICAgLy8gMi4g
R2V0IGF2YWlsYWJsZSB0cmFuc3BvcnRzIGFuZCBzdGFydCBkaXNjb3ZlcmluZyBhdXRoZW50aWNh
dG9ycyBvbiB0aGVtLgotICAgIFdURjo6c3dpdGNoT24obV9wZW5kaW5nUmVxdWVzdERhdGEub3B0
aW9ucywgWyZdKGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmIG9wdGlv
bnMpIHsKLSAgICAgICAgaW5pdFRpbWVPdXRUaW1lcihvcHRpb25zLnRpbWVvdXQpOwotCi0gICAg
ICAgIGF1dG8gdHJhbnNwb3J0cyA9IGNvbGxlY3RUcmFuc3BvcnRzKG9wdGlvbnMuYXV0aGVudGlj
YXRvclNlbGVjdGlvbik7Ci0gICAgICAgIHByb2Nlc3NHb29nbGVMZWdhY3lBcHBJZFN1cHBvcnRF
eHRlbnNpb24ob3B0aW9ucy5leHRlbnNpb25zLCB0cmFuc3BvcnRzKTsKLSAgICAgICAgc3RhcnRE
aXNjb3ZlcnkoV1RGTW92ZSh0cmFuc3BvcnRzKSk7Ci0gICAgfSwgWyZdKGNvbnN0ICBQdWJsaWNL
ZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmIG9wdGlvbnMpIHsKLSAgICAgICAgaW5pdFRpbWVP
dXRUaW1lcihvcHRpb25zLnRpbWVvdXQpOwotICAgICAgICBzdGFydERpc2NvdmVyeShjb2xsZWN0
VHJhbnNwb3J0cyhvcHRpb25zLmFsbG93Q3JlZGVudGlhbHMpKTsKLSAgICB9KTsKKyAgICAvLyAy
LiBBc2sgY2xpZW50cyB0byBzaG93IGFwcHJvcHJpYXRlIFVJIGlmIGFueSBhbmQgdGhlbiBzdGFy
dCB0aGUgcmVxdWVzdC4KKyAgICBydW5QYW5lbCgpOwogfQogCiB2b2lkIEF1dGhlbnRpY2F0b3JN
YW5hZ2VyOjpjbGVhclN0YXRlQXN5bmMoKQpAQCAtMTk1LDcgKzIwMiw3IEBAIHZvaWQgQXV0aGVu
dGljYXRvck1hbmFnZXI6OnJlc3BvbmRSZWNlaXZlZChSZXNwb25kJiYgcmVzcG9uZCkKICAgICBp
ZiAoIXNob3VsZENvbXBsZXRlKQogICAgICAgICBzaG91bGRDb21wbGV0ZSA9IFdURjo6Z2V0PEV4
Y2VwdGlvbkRhdGE+KHJlc3BvbmQpLmNvZGUgPT0gSW52YWxpZFN0YXRlRXJyb3I7CiAgICAgaWYg
KHNob3VsZENvbXBsZXRlKSB7Ci0gICAgICAgIG1fcGVuZGluZ0NvbXBsZXRpb25IYW5kbGVyKFdU
Rk1vdmUocmVzcG9uZCkpOworICAgICAgICBpbnZva2VQZW5kaW5nQ29tcGxldGlvbkhhbmRsZXIo
V1RGTW92ZShyZXNwb25kKSk7CiAgICAgICAgIGNsZWFyU3RhdGVBc3luYygpOwogICAgICAgICBt
X3JlcXVlc3RUaW1lT3V0VGltZXIuc3RvcCgpOwogICAgICAgICByZXR1cm47CkBAIC0yMjUsMTEg
KzIzMiwxMiBAQCB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpyZXNwb25kUmVjZWl2ZWRJbnRl
cm5hbChSZXNwb25kJiYpCiAKIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OnN0YXJ0RGlzY292
ZXJ5KGNvbnN0IFRyYW5zcG9ydFNldCYgdHJhbnNwb3J0cykKIHsKLSAgICB1c2luZyBuYW1lc3Bh
Y2UgQXV0aGVudGljYXRvck1hbmFnZXJJbnRlcm5hbDsKLQotICAgIEFTU0VSVChtX3NlcnZpY2Vz
LmlzRW1wdHkoKSAmJiB0cmFuc3BvcnRzLnNpemUoKSA8PSBtYXhUcmFuc3BvcnROdW1iZXIgJiYg
bV9wZW5kaW5nUmVxdWVzdERhdGEucHJlZmVyZW5jZXMpOworICAgIEFTU0VSVChtX3NlcnZpY2Vz
LmlzRW1wdHkoKSAmJiB0cmFuc3BvcnRzLnNpemUoKSA8PSBtYXhUcmFuc3BvcnROdW1iZXIpOwog
ICAgIGZvciAoYXV0byYgdHJhbnNwb3J0IDogdHJhbnNwb3J0cykgewotICAgICAgICBpZiAodHJh
bnNwb3J0ID09IEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6OkludGVybmFsICYmICFtX3BlbmRpbmdS
ZXF1ZXN0RGF0YS5wcmVmZXJlbmNlcy0+c3RvcmUoKS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJl
ZmVyZW5jZXNLZXk6OndlYkF1dGhlbnRpY2F0aW9uTG9jYWxBdXRoZW50aWNhdG9yRW5hYmxlZEtl
eSgpKSkKKyAgICAgICAgaWYgKHRyYW5zcG9ydCA9PSBBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpJ
bnRlcm5hbCAmJiAhaXNGZWF0dXJlRW5hYmxlZChtX3BlbmRpbmdSZXF1ZXN0RGF0YS5wYWdlLmdl
dCgpLCBXZWJQcmVmZXJlbmNlc0tleTo6d2ViQXV0aGVudGljYXRpb25Mb2NhbEF1dGhlbnRpY2F0
b3JFbmFibGVkS2V5KCkpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIC8vIE9ubHkg
YWxsb3cgVVNCIGF1dGhlbnRpY2F0b3JzIHdoZW4gY2xpZW50cyBkb24ndCBoYXZlIGRlZGljYXRl
ZCBVSS4KKyAgICAgICAgaWYgKHRyYW5zcG9ydCAhPSBBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpV
c2IgJiYgKG1fcGVuZGluZ1JlcXVlc3REYXRhLnBhbmVsUmVzdWx0ID09IFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICBhdXRvIHNlcnZpY2UgPSBjcmVhdGVTZXJ2aWNlKHRyYW5zcG9ydCwgKnRoaXMpOwogICAg
ICAgICBzZXJ2aWNlLT5zdGFydERpc2NvdmVyeSgpOwpAQCAtMjM5LDggKzI0Nyw2IEBAIHZvaWQg
QXV0aGVudGljYXRvck1hbmFnZXI6OnN0YXJ0RGlzY292ZXJ5KGNvbnN0IFRyYW5zcG9ydFNldCYg
dHJhbnNwb3J0cykKIAogdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6aW5pdFRpbWVPdXRUaW1l
cihjb25zdCBPcHRpb25hbDx1bnNpZ25lZD4mIHRpbWVPdXRJbk1zKQogewotICAgIHVzaW5nIG5h
bWVzcGFjZSBBdXRoZW50aWNhdG9yTWFuYWdlckludGVybmFsOwotCiAgICAgdW5zaWduZWQgdGlt
ZU91dEluTXNWYWx1ZSA9IHN0ZDo6bWluKG1heFRpbWVPdXRWYWx1ZSwgdGltZU91dEluTXMudmFs
dWVPcihtYXhUaW1lT3V0VmFsdWUpKTsKICAgICBtX3JlcXVlc3RUaW1lT3V0VGltZXIuc3RhcnRP
bmVTaG90KFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHModGltZU91dEluTXNWYWx1ZSkpOwogfQpA
QCAtMjQ4LDEwICsyNTQsNTcgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6aW5pdFRpbWVP
dXRUaW1lcihjb25zdCBPcHRpb25hbDx1bnNpZ25lZD4mIHRpbWVPdXRJbk0KIHZvaWQgQXV0aGVu
dGljYXRvck1hbmFnZXI6OnRpbWVPdXRUaW1lckZpcmVkKCkKIHsKICAgICBBU1NFUlQobV9yZXF1
ZXN0VGltZU91dFRpbWVyLmlzQWN0aXZlKCkpOwotICAgIG1fcGVuZGluZ0NvbXBsZXRpb25IYW5k
bGVyKChFeGNlcHRpb25EYXRhIHsgTm90QWxsb3dlZEVycm9yLCAiT3BlcmF0aW9uIHRpbWVkIG91
dC4iX3MgfSkpOworICAgIGludm9rZVBlbmRpbmdDb21wbGV0aW9uSGFuZGxlcigoRXhjZXB0aW9u
RGF0YSB7IE5vdEFsbG93ZWRFcnJvciwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIl9zIH0pKTsKICAg
ICBjbGVhclN0YXRlKCk7CiB9CiAKK3ZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OnJ1blBhbmVs
KCkKK3sKKyAgICBhdXRvKiBwYWdlID0gbV9wZW5kaW5nUmVxdWVzdERhdGEucGFnZS5nZXQoKTsK
KyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGVuZGluZ1JlcXVlc3RE
YXRhLnBhbmVsID0gQVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsOjpjcmVhdGUoZ2V0UnBJZCht
X3BlbmRpbmdSZXF1ZXN0RGF0YS5vcHRpb25zKSk7CisgICAgYXV0byYgcGFuZWwgPSAqbV9wZW5k
aW5nUmVxdWVzdERhdGEucGFuZWw7CisgICAgcGFnZS0+dWlDbGllbnQoKS5ydW5XZWJBdXRoZW50
aWNhdGlvblBhbmVsKCpwYWdlLCBwYW5lbCwgW3dlYWtQYW5lbCA9IG1ha2VXZWFrUHRyKHBhbmVs
KSwgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdIChXZWJBdXRoZW50aWNhdGlv
blBhbmVsUmVzdWx0IHJlc3VsdCkgeworICAgICAgICAvLyBUaGUgcGFuZWwgYWRkcmVzcyBpcyB1
c2VkIHRvIGRldGVybWluZSBpZiB0aGUgY3VycmVudCBwZW5kaW5nIHJlcXVlc3QgaXMgc3RpbGwg
dGhlIHNhbWUuCisgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtQYW5lbAorICAgICAgICAg
ICAgfHwgKHJlc3VsdCA9PSBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpEaWROb3RQcmVz
ZW50KQorICAgICAgICAgICAgfHwgKHdlYWtQYW5lbC5nZXQoKSAhPSBtX3BlbmRpbmdSZXF1ZXN0
RGF0YS5wYW5lbC5nZXQoKSkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fcGVuZGlu
Z1JlcXVlc3REYXRhLnBhbmVsUmVzdWx0ID0gcmVzdWx0OworICAgICAgICBzdGFydFJlcXVlc3Qo
KTsKKyAgICB9KTsKK30KKwordm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6c3RhcnRSZXF1ZXN0
KCkKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgIC8vIEdldCBhdmFpbGFi
bGUgdHJhbnNwb3J0cyBhbmQgc3RhcnQgZGlzY292ZXJpbmcgYXV0aGVudGljYXRvcnMgb24gdGhl
bS4KKyAgICBXVEY6OnN3aXRjaE9uKG1fcGVuZGluZ1JlcXVlc3REYXRhLm9wdGlvbnMsIFsmXShj
b25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiBvcHRpb25zKSB7CisgICAg
ICAgIGluaXRUaW1lT3V0VGltZXIob3B0aW9ucy50aW1lb3V0KTsKKworICAgICAgICBhdXRvIHRy
YW5zcG9ydHMgPSBjb2xsZWN0VHJhbnNwb3J0cyhvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rp
b24pOworICAgICAgICBwcm9jZXNzR29vZ2xlTGVnYWN5QXBwSWRTdXBwb3J0RXh0ZW5zaW9uKG9w
dGlvbnMuZXh0ZW5zaW9ucywgdHJhbnNwb3J0cyk7CisgICAgICAgIHN0YXJ0RGlzY292ZXJ5KGNv
bGxlY3RUcmFuc3BvcnRzKG9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlvbikpOworICAgIH0s
IFsmXShjb25zdCAgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiBvcHRpb25zKSB7
CisgICAgICAgIGluaXRUaW1lT3V0VGltZXIob3B0aW9ucy50aW1lb3V0KTsKKyAgICAgICAgc3Rh
cnREaXNjb3ZlcnkoY29sbGVjdFRyYW5zcG9ydHMob3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzKSk7
CisgICAgfSk7Cit9CisKK3ZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6Omludm9rZVBlbmRpbmdD
b21wbGV0aW9uSGFuZGxlcihSZXNwb25kJiYgcmVzcG9uZCkKK3sKKyAgICBpZiAoYXV0byAqcGFu
ZWwgPSBtX3BlbmRpbmdSZXF1ZXN0RGF0YS5wYW5lbC5nZXQoKSkgeworICAgICAgICBXVEY6OnN3
aXRjaE9uKHJlc3BvbmQsIFsmXShjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsRGF0
YSYpIHsKKyAgICAgICAgICAgIHBhbmVsLT5jbGllbnQoKS5kaXNtaXNzUGFuZWwoV2ViQXV0aGVu
dGljYXRpb25SZXN1bHQ6OlN1Y2NlZWRlZCk7CisgICAgICAgIH0sIFsmXShjb25zdCAgV2ViQ29y
ZTo6RXhjZXB0aW9uRGF0YSYpIHsKKyAgICAgICAgICAgIHBhbmVsLT5jbGllbnQoKS5kaXNtaXNz
UGFuZWwoV2ViQXV0aGVudGljYXRpb25SZXN1bHQ6OkZhaWxlZCk7CisgICAgICAgIH0pOworICAg
IH0KKyAgICBtX3BlbmRpbmdDb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3BvbmQpKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRvck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgKaW5kZXggMDcyMDdkNzcwNWIyNzA4N2M1MWEw
ZGE4NGY0NWZmOTBhZjhlZDcyMy4uZDM3NjZhZDE0Nzk3MzE0MTVlZGU0ODJmOWU5YzJmZTAwOGQz
YTI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRvck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oCkBAIC01OSwxMCArNTksMTAg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc01vY2soKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgQ2FsbGJhY2smIHBlbmRpbmdDb21wbGV0aW9uSGFuZGxl
cigpIHsgcmV0dXJuIG1fcGVuZGluZ0NvbXBsZXRpb25IYW5kbGVyOyB9CiAgICAgUnVuTG9vcDo6
VGltZXI8QXV0aGVudGljYXRvck1hbmFnZXI+JiByZXF1ZXN0VGltZU91dFRpbWVyKCkgeyByZXR1
cm4gbV9yZXF1ZXN0VGltZU91dFRpbWVyOyB9CiAgICAgdm9pZCBjbGVhclN0YXRlQXN5bmMoKTsg
Ly8gVG8gdm9pZCBjeWNsaWMgZGVwZW5kZW5jZS4KICAgICB2b2lkIGNsZWFyU3RhdGUoKTsKKyAg
ICB2b2lkIGludm9rZVBlbmRpbmdDb21wbGV0aW9uSGFuZGxlcihSZXNwb25kJiYpOwogCiBwcml2
YXRlOgogICAgIC8vIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlOjpPYnNlcnZlcgpAQCAt
ODAsMTAgKzgwLDEyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydERpc2NvdmVyeShjb25zdCBU
cmFuc3BvcnRTZXQmKTsKICAgICB2b2lkIGluaXRUaW1lT3V0VGltZXIoY29uc3QgT3B0aW9uYWw8
dW5zaWduZWQ+JiB0aW1lT3V0SW5Ncyk7CiAgICAgdm9pZCB0aW1lT3V0VGltZXJGaXJlZCgpOwor
ICAgIHZvaWQgcnVuUGFuZWwoKTsKKyAgICB2b2lkIHN0YXJ0UmVxdWVzdCgpOwogCiAgICAgLy8g
UmVxdWVzdDogV2Ugb25seSBhbGxvdyBvbmUgcmVxdWVzdCBwZXIgdGltZS4gQSBuZXcgcmVxdWVz
dCB3aWxsIGNhbmNlbCBhbnkgcGVuZGluZyBvbmVzLgogICAgIFdlYkF1dGhlbnRpY2F0aW9uUmVx
dWVzdERhdGEgbV9wZW5kaW5nUmVxdWVzdERhdGE7Ci0gICAgQ2FsbGJhY2sgbV9wZW5kaW5nQ29t
cGxldGlvbkhhbmRsZXI7CisgICAgQ2FsbGJhY2sgbV9wZW5kaW5nQ29tcGxldGlvbkhhbmRsZXI7
IC8vIFNob3VsZCBiZSBpbnZva2VkIGRpcmVjdGx5LCB1c2UgaW52b2tlUGVuZGluZ0NvbXBsZXRp
b25IYW5kbGVyLgogICAgIFJ1bkxvb3A6OlRpbWVyPEF1dGhlbnRpY2F0b3JNYW5hZ2VyPiBtX3Jl
cXVlc3RUaW1lT3V0VGltZXI7CiAKICAgICBWZWN0b3I8VW5pcXVlUmVmPEF1dGhlbnRpY2F0b3JU
cmFuc3BvcnRTZXJ2aWNlPj4gbV9zZXJ2aWNlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY0Nvbm5lY3Rpb24ubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNDb25uZWN0aW9u
Lm1tCmluZGV4IDk3MjM3Zjc4YmY1NGUxMjFlOTU1MzdiNWVhZjc1YWE2N2UyN2VjMTIuLjMyNDZl
ZTc0OTc2ZTlhODBmZTZhM2Q0NDY3ZTVjN2Y1MDEwMWZhNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY0Nvbm5lY3Rpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZj
Q29ubmVjdGlvbi5tbQpAQCAtNTEsOCArNTEsNiBAQCBOZmNDb25uZWN0aW9uOjpOZmNDb25uZWN0
aW9uKFJldGFpblB0cjxORlJlYWRlclNlc3Npb24+JiYgc2Vzc2lvbiwgTmZjU2VydmljZSYgcwog
ICAgICwgbV9zZXJ2aWNlKG1ha2VXZWFrUHRyKHNlcnZpY2UpKQogewogICAgIFttX3Nlc3Npb24g
c2V0RGVsZWdhdGU6bV9kZWxlZ2F0ZS5nZXQoKV07Ci0gICAgLy8gRklYTUUoMjAwOTMzKQotICAg
IFttX3Nlc3Npb24gdXBkYXRlVUlBbGVydE1lc3NhZ2U6QCJJbnNlcnQgeW91ciBzZWN1cml0eSBr
ZXkgb3IgaG9sZCB0aGUga2V5IGFnYWluc3QgdGhlIHRvcCBvZiB5b3VyIGRldmljZS4iXTsKICAg
ICBbbV9zZXNzaW9uIHN0YXJ0UG9sbGluZ107CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY1NlcnZpY2UubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNTZXJ2aWNlLm1t
CmluZGV4IDMzYjYwOGU3MGZkMjNmNjFlZDUxNzU3NGUxOTFiYTcwMDZmNTYzODMuLjc1MmQ3ODhk
M2I1MjM2OWQwNDkwOGIwNjg2MzE0NDI1YWVmMjRlNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY1NlcnZpY2UubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZjU2Vydmlj
ZS5tbQpAQCAtOTEsNyArOTEsNyBAQCB2b2lkIE5mY1NlcnZpY2U6OnBsYXRmb3JtU3RhcnREaXNj
b3ZlcnkoKQogICAgICAgICAgICAgbV9kcml2ZXIgPSBXVEY6Om1ha2VVbmlxdWU8Q3RhcE5mY0Ry
aXZlcj4obWFrZVVuaXF1ZVJlZjxOZmNDb25uZWN0aW9uPihXVEZNb3ZlKHNlc3Npb24pLCAqdGhp
cykpOwogICAgICAgICB9KTsKICAgICB9KTsKLSAgICBbW2dldE5GSGFyZHdhcmVNYW5hZ2VyQ2xh
c3MoKSBzaGFyZWRIYXJkd2FyZU1hbmFnZXJdIHN0YXJ0UmVhZGVyU2Vzc2lvbldpdGhBY3Rpb25T
aGVldFVJOmNhbGxiYWNrLmdldCgpXTsKKyAgICBbW2dldE5GSGFyZHdhcmVNYW5hZ2VyQ2xhc3Mo
KSBzaGFyZWRIYXJkd2FyZU1hbmFnZXJdIHN0YXJ0UmVhZGVyU2Vzc2lvbjpjYWxsYmFjay5nZXQo
KV07CiAjZW5kaWYgLy8gSEFWRShORUFSX0ZJRUxEKQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdGlv
blBhbmVsQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9Db2NvYS9XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzljODU1
ODVlM2M5MTJlZDQyOTQzOWM0NDM1MzI4ODgyYzdjMjM3YgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxDbGllbnQuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCisjaW1wb3J0ICJXS0ZvdW5kYXRpb24u
aCIKKworI2ltcG9ydCAiQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oIgorI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CisjaW1wb3J0
IDx3dGYvV2Vha1B0ci5oPgorCitAY2xhc3MgX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbDsKK0Bw
cm90b2NvbCBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGU7CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50IDogcHVibGljIEFQ
STo6V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudCwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ+IHsKK3B1YmxpYzoKKyAgICBXZWJBdXRoZW50aWNh
dGlvblBhbmVsQ2xpZW50KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgKiwgaWQgPF9XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZT4pOworCisgICAgUmV0YWluUHRyPGlkIDxfV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGU+ID4gZGVsZWdhdGUoKTsKKworcHJpdmF0ZToKKyAg
ICAvLyBBUEk6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQKKyAgICB2b2lkIGRpc21pc3NQ
YW5lbChXZWJBdXRoZW50aWNhdGlvblJlc3VsdCkgY29uc3QgZmluYWw7CisKKyAgICBfV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsICptX3BhbmVsOworICAgIFdlYWtPYmpDUHRyPGlkIDxfV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGU+ID4gbV9kZWxlZ2F0ZTsKKworICAgIHN0cnVjdCB7
CisgICAgICAgIGJvb2wgcGFuZWxEaXNtaXNzV2ViQXV0aGVudGljYXRpb25QYW5lbFdpdGhSZXN1
bHQgOiAxOworICAgIH0gbV9kZWxlZ2F0ZU1ldGhvZHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdGlv
blBhbmVsQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQ29jb2EvV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMTg0
ZTU4MTBkYmUwZjllNzdlYTAzZWM3MjNjZTc1Yjk1Njc4YzA0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVu
dGljYXRpb25QYW5lbENsaWVudC5tbQpAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lmgi
CisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCisjaW1wb3J0ICJXZWJBdXRoZW50aWNhdGlvblBh
bmVsRmxhZ3MuaCIKKyNpbXBvcnQgIl9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaCIKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ6OldlYkF1dGhl
bnRpY2F0aW9uUGFuZWxDbGllbnQoX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqcGFuZWwsIGlk
IDxfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGU+IGRlbGVnYXRlKQorICAgIDogbV9w
YW5lbChwYW5lbCkKKyAgICAsIG1fZGVsZWdhdGUoZGVsZWdhdGUpCit7CisgICAgbV9kZWxlZ2F0
ZU1ldGhvZHMucGFuZWxEaXNtaXNzV2ViQXV0aGVudGljYXRpb25QYW5lbFdpdGhSZXN1bHQgPSBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihwYW5lbDpkaXNtaXNzV2ViQXV0
aGVudGljYXRpb25QYW5lbFdpdGhSZXN1bHQ6KV07Cit9CisKK1JldGFpblB0cjxpZCA8X1dLV2Vi
QXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlPiA+IFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGll
bnQ6OmRlbGVnYXRlKCkKK3sKKyAgICByZXR1cm4gbV9kZWxlZ2F0ZS5nZXQoKTsKK30KKworc3Rh
dGljIF9XS1dlYkF1dGhlbnRpY2F0aW9uUmVzdWx0IHdrV2ViQXV0aGVudGljYXRpb25SZXN1bHQo
V2ViQXV0aGVudGljYXRpb25SZXN1bHQgcmVzdWx0KQoreworICAgIHN3aXRjaCAocmVzdWx0KSB7
CisgICAgY2FzZSBXZWJBdXRoZW50aWNhdGlvblJlc3VsdDo6U3VjY2VlZGVkOgorICAgICAgICBy
ZXR1cm4gX1dLV2ViQXV0aGVudGljYXRpb25SZXN1bHRTdWNjZWVkZWQ7CisgICAgY2FzZSBXZWJB
dXRoZW50aWNhdGlvblJlc3VsdDo6RmFpbGVkOgorICAgICAgICByZXR1cm4gX1dLV2ViQXV0aGVu
dGljYXRpb25SZXN1bHRGYWlsZWQ7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIHJldHVybiBfV0tXZWJBdXRoZW50aWNhdGlvblJlc3VsdEZhaWxlZDsKK30KKwordm9pZCBX
ZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50OjpkaXNtaXNzUGFuZWwoV2ViQXV0aGVudGljYXRp
b25SZXN1bHQgcmVzdWx0KSBjb25zdAoreworICAgIGlmICghbV9kZWxlZ2F0ZU1ldGhvZHMucGFu
ZWxEaXNtaXNzV2ViQXV0aGVudGljYXRpb25QYW5lbFdpdGhSZXN1bHQpCisgICAgICAgIHJldHVy
bjsKKworICAgIGF1dG8gZGVsZWdhdGUgPSBtX2RlbGVnYXRlLmdldCgpOworICAgIGlmICghZGVs
ZWdhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIFtkZWxlZ2F0ZSBwYW5lbDptX3BhbmVsIGRp
c21pc3NXZWJBdXRoZW50aWNhdGlvblBhbmVsV2l0aFJlc3VsdDp3a1dlYkF1dGhlbnRpY2F0aW9u
UmVzdWx0KHJlc3VsdCldOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tBdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tBdXRoZW50aWNh
dG9yTWFuYWdlci5jcHAKaW5kZXggNGRiMjc2MDk3NTQ2MDdiZTlkNzdmZTVkYTEzMDc5MmE3YmEw
NzQ2Yy4uMDg0YzliZTIzZmIwYWJkOTU2M2RmOTFmYzY2NmUxMWYxMzUxMDZjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrQXV0
aGVudGljYXRvck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL01vY2svTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcApAQCAtNDUsNyAr
NDUsNyBAQCB2b2lkIE1vY2tBdXRoZW50aWNhdG9yTWFuYWdlcjo6cmVzcG9uZFJlY2VpdmVkSW50
ZXJuYWwoUmVzcG9uZCYmIHJlc3BvbmQpCiAgICAgaWYgKG1fdGVzdENvbmZpZ3VyYXRpb24uc2ls
ZW50RmFpbHVyZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGVuZGluZ0NvbXBsZXRpb25IYW5k
bGVyKCkoV1RGTW92ZShyZXNwb25kKSk7CisgICAgaW52b2tlUGVuZGluZ0NvbXBsZXRpb25IYW5k
bGVyKFdURk1vdmUocmVzcG9uZCkpOwogICAgIGNsZWFyU3RhdGVBc3luYygpOwogICAgIHJlcXVl
c3RUaW1lT3V0VGltZXIoKS5zdG9wKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblBhbmVsRmxhZ3MuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWxGbGFncy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkMTQ2YjIwZjE2YWNmNGVhMWUxYmQ4NWY2YjQ1
NTQ3MTkxMmRhZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblBhbmVsRmxhZ3MuaApAQCAtMCwwICsx
LDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhO
KQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBjbGFzcyBXZWJBdXRoZW50aWNhdGlvblBh
bmVsUmVzdWx0IDogdWludDhfdCB7CisgICAgVW5hdmFpbGFibGUsCisgICAgUHJlc2VudGVkLAor
ICAgIERpZE5vdFByZXNlbnQKK307CisKK2VudW0gY2xhc3MgV2ViQXV0aGVudGljYXRpb25SZXN1
bHQgOiBib29sIHsKKyAgICBTdWNjZWVkZWQsCisgICAgRmFpbGVkCit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlv
blJlcXVlc3REYXRhLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9XZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmgKaW5kZXggNjZlYmI3YzI1YmNiMmI3MDEw
ZWU5ZDI4ZGFlYmE0YWZmNzNmOWJhNy4uNGJiNTQ4NWU1ZWFhOGMwMDVmOWZjMGQzMzk2Yjc1NzE0
YTQwYzQyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEu
aApAQCAtMjcsMTggKzI3LDI0IEBACiAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogCi0jaW5jbHVk
ZSAiV2ViUHJlZmVyZW5jZXMuaCIKKyNpbmNsdWRlICJBUElXZWJBdXRoZW50aWNhdGlvblBhbmVs
LmgiCisjaW5jbHVkZSAiV2ViQXV0aGVudGljYXRpb25QYW5lbEZsYWdzLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaD4KICNpbmNsdWRlIDx3
dGYvVmFyaWFudC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViUGFnZVByb3h5OworCiBz
dHJ1Y3QgV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSB7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+
IGhhc2g7CiAgICAgVmFyaWFudDxXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25P
cHRpb25zLCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+IG9wdGlv
bnM7Ci0gICAgUmVmUHRyPFdlYlByZWZlcmVuY2VzPiBwcmVmZXJlbmNlczsKKyAgICBXZWFrUHRy
PFdlYlBhZ2VQcm94eT4gcGFnZTsKKyAgICBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0IHBh
bmVsUmVzdWx0IHsgV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUgfTsK
KyAgICBSZWZQdHI8QVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsPiBwYW5lbDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDg3ZTI4YTE2ZTJmMGI3ZDhlODlhMGYyY2EyOGE3
MDU1NDI3NWZmMjcuLjBkMGIzYmE1YzcxMzA3YTk5ODhhNGQ0Mjc3ZDIyZjkzMGM5YWYyMjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1
dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5j
cHAKQEAgLTU1LDEyICs1NSwxMiBAQCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6
fldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5KCkKIAogdm9pZCBXZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3JQcm94eTo6bWFrZUNyZWRlbnRpYWwodWludDY0X3QgbWVzc2FnZUlkLCBj
b25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRl
bnRpYWxDcmVhdGlvbk9wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAgaGFuZGxlUmVxdWVzdChtZXNz
YWdlSWQsIHsgaGFzaCwgb3B0aW9ucywgbV93ZWJQYWdlUHJveHkucHJlZmVyZW5jZXMoKS5jb3B5
KCkgfSk7CisgICAgaGFuZGxlUmVxdWVzdChtZXNzYWdlSWQsIHsgaGFzaCwgb3B0aW9ucywgbWFr
ZVdlYWtQdHIobV93ZWJQYWdlUHJveHkpIH0pOwogfQogCiB2b2lkIFdlYkF1dGhlbnRpY2F0b3JD
b29yZGluYXRvclByb3h5OjpnZXRBc3NlcnRpb24odWludDY0X3QgbWVzc2FnZUlkLCBjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICBoYW5kbGVSZXF1ZXN0KG1lc3NhZ2VJZCwg
eyBoYXNoLCBvcHRpb25zLCBtX3dlYlBhZ2VQcm94eS5wcmVmZXJlbmNlcygpLmNvcHkoKSB9KTsK
KyAgICBoYW5kbGVSZXF1ZXN0KG1lc3NhZ2VJZCwgeyBoYXNoLCBvcHRpb25zLCBtYWtlV2Vha1B0
cihtX3dlYlBhZ2VQcm94eSkgfSk7CiB9CiAKIHZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHk6OmhhbmRsZVJlcXVlc3QodWludDY0X3QgbWVzc2FnZUlkLCBXZWJBdXRoZW50aWNh
dGlvblJlcXVlc3REYXRhJiYgZGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGViZjZmMDdiMDY1MmZmMjgzMmNmYTM0OWFjNmQzY2Jm
ODkxYzM4MWUuLmRhYWExN2ViNmJjYjI2NjQ4NjQ0ODQ1NWNhNjFlYmI0ZTJkYzhkN2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTA0
OCw2ICsxMDQ4LDggQEAKIAkJNTc1OTdFQkQyMTgxODQ5MDAwMzdGOTI0IC8qIEN0YXBBdXRoZW50
aWNhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
NzU5N0VCQjIxODE4NDhGMDAzN0Y5MjQgLyogQ3RhcEF1dGhlbnRpY2F0b3IuaCAqLzsgfTsKIAkJ
NTc2Q0E5RDcyMkI4NjIxODAwMzAxNDNDIC8qIFNPQXV0aG9yaXphdGlvbk5TVVJMRXh0cmFzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0ZEMzE3MzIy
QjM1MTQ4MDA4RDBFOEIgLyogU09BdXRob3JpemF0aW9uTlNVUkxFeHRyYXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NzcyRjIwNjIxN0RCRDZB
MDA1NkJGMkMgLyogSGlkU2VydmljZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTc3MkYyMDQyMTdEQkQ2QTAwNTZCRjJDIC8qIEhpZFNlcnZpY2UuaCAq
LzsgfTsKKwkJNTc3RkY3ODIyMzQ2RTgxQzAwNEVERkI5IC8qIEFQSVdlYkF1dGhlbnRpY2F0aW9u
UGFuZWxDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU3N0ZGNzgxMjM0NkU4MUMwMDRFREZCOSAvKiBBUElXZWJBdXRoZW50aWNhdGlvblBhbmVs
Q2xpZW50LmggKi87IH07CisJCTU3N0ZGNzg1MjM0NkVDQUEwMDRFREZCOSAvKiBXZWJBdXRoZW50
aWNhdGlvblBhbmVsQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzdGRjc4MzIzNDZFQ0FBMDA0RURGQjkgLyogV2ViQXV0aGVudGljYXRpb25Q
YW5lbENsaWVudC5oICovOyB9OwogCQk1NzhEQzI5ODIxNTVBMDAyMDA3NEU4MTUgLyogTG9jYWxB
dXRoZW50aWNhdGlvblNvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1NzhEQzI5NzIxNTVBMDAxMDA3NEU4MTUgLyogTG9jYWxBdXRoZW50aWNh
dGlvblNvZnRMaW5rLmggKi87IH07CiAJCTU3QUM4RjUwMjE3RkVFRDkwMDU1NDM4QyAvKiBIaWRD
b25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1N0FDOEY0RTIxN0ZFRUQ5MDA1NTQzOEMgLyogSGlkQ29ubmVjdGlvbi5oICovOyB9OwogCQk1
N0I0QjQ2MDIwQjUwNEFDMDBENEFENzkgLyogQ2xpZW50Q2VydGlmaWNhdGVBdXRoZW50aWNhdGlv
blhQQ0NvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTdCNEI0NUUyMEI1MDRBQjAwRDRBRDc5IC8qIENsaWVudENlcnRpZmljYXRlQXV0aGVu
dGljYXRpb25YUENDb25zdGFudHMuaCAqLzsgfTsKQEAgLTEwNTcsNiArMTA1OSw3IEBACiAJCTU3
QjgyNjQ4MjMwNTBDNTEwMEI3MkVCMCAvKiBGaWRvU2VydmljZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdCODI2NDYyMzA1MEM1MTAwQjcyRUIwIC8q
IEZpZG9TZXJ2aWNlLmggKi87IH07CiAJCTU3QjgyNjRDMjMwNjAzQzEwMEI3MkVCMCAvKiBNb2Nr
TmZjU2VydmljZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTdCODI2NEEyMzA2MDNDMTAwQjcyRUIwIC8qIE1vY2tOZmNTZXJ2aWNlLmggKi87IH07CiAJ
CTU3QkJFQTZEMjJCQzBCRkUwMDI3Mzk5NSAvKiBTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0JCRUE2QzIy
QkMwQkZFMDAyNzM5OTUgLyogU09BdXRob3JpemF0aW9uTG9hZFBvbGljeS5oICovOyB9OworCQk1
N0M2MjQ0QjIzNDY3OUE0MDAzODNGRTcgLyogV2ViQXV0aGVudGljYXRpb25QYW5lbEZsYWdzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0M2MjQ0QTIz
NDY3OUE0MDAzODNGRTcgLyogV2ViQXV0aGVudGljYXRpb25QYW5lbEZsYWdzLmggKi87IH07CiAJ
CTU3RENFRDZFMjE0MkVFNUUwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTdEQ0VENkIyMTQyRUFFMjAwMTZCODQ3IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTU3RENFRDZGMjE0MkVFNjMwMDE2
Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JNZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdEQ0VENkEyMTQyRUFFMjAwMTZC
ODQ3IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvck1lc3NhZ2VzLmggKi87IH07CiAJCTU3
RENFRDcwMjE0MkVFNjgwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1N0RDRUQ2QzIxNDJFQUY5MDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRvckNv
b3JkaW5hdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwpAQCAtMTA3NSw2ICsxMDc4
LDcgQEAKIAkJNTdEQ0VEQzcyMTRGMTgzMDAwMTZCODQ3IC8qIE1vY2tMb2NhbENvbm5lY3Rpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RENFREM1
MjE0RjE4MzAwMDE2Qjg0NyAvKiBNb2NrTG9jYWxDb25uZWN0aW9uLmggKi87IH07CiAJCTU3RENF
RENCMjE0RjRFNDIwMDE2Qjg0NyAvKiBNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RENFREM5MjE0RjRFNDIw
MDE2Qjg0NyAvKiBNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuaCAqLzsgfTsKIAkJNTdFQjJFM0Ey
MUUxOTgzRTAwQjg5Q0RGIC8qIFUyZkF1dGhlbnRpY2F0b3IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RUIyRTM4MjFFMTk4M0UwMEI4OUNERiAvKiBV
MmZBdXRoZW50aWNhdG9yLmggKi87IH07CisJCTU3RUJFMjZBMjM0Njc2QzUwMDhEOEFGOSAvKiBB
UElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1N0VCRTI2ODIzNDY3NkM1MDA4RDhBRjkgLyogQVBJV2ViQXV0aGVu
dGljYXRpb25QYW5lbC5oICovOyB9OwogCQk1N0ZEMzE4MDIyQjM1MTU4MDA4RDBFOEIgLyogTmF2
aWdhdGlvblNPQXV0aG9yaXphdGlvblNlc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RkQzMTc4MjJCMzUxNDkwMDhEMEU4QiAvKiBOYXZpZ2F0
aW9uU09BdXRob3JpemF0aW9uU2Vzc2lvbi5oICovOyB9OwogCQk1N0ZEMzE4MTIyQjM1MTVCMDA4
RDBFOEIgLyogUG9wVXBTT0F1dGhvcml6YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0ZEMzE3MDIyQjM1MTQ4MDA4RDBFOEIgLyog
UG9wVXBTT0F1dGhvcml6YXRpb25TZXNzaW9uLmggKi87IH07CiAJCTU3RkQzMTgyMjJCMzUxNUUw
MDhEMEU4QiAvKiBSZWRpcmVjdFNPQXV0aG9yaXphdGlvblNlc3Npb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RkQzMTc0MjJCMzUxNDkwMDhEMEU4
QiAvKiBSZWRpcmVjdFNPQXV0aG9yaXphdGlvblNlc3Npb24uaCAqLzsgfTsKQEAgLTM1MjUsNiAr
MzUyOSw5IEBACiAJCTU3NjA4Mjk5MjAyQkRBRTIwMDExNjY3OCAvKiBXZWJBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc3
MkYyMDQyMTdEQkQ2QTAwNTZCRjJDIC8qIEhpZFNlcnZpY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGlk
U2VydmljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzcyRjIwNTIxN0RCRDZB
MDA1NkJGMkMgLyogSGlkU2VydmljZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEhpZFNlcnZp
Y2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3N0ZGNzgxMjM0NkU4MUMwMDRF
REZCOSAvKiBBUElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTc3RkY3ODMyMzQ2RUNBQTAwNEVERkI5IC8qIFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzdGRjc4NDIzNDZFQ0FBMDA0RURGQjkg
LyogV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU3OERDMjk3MjE1NUEwMDEwMDc0RTgxNSAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uU29m
dExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxBdXRoZW50aWNhdGlvblNvZnRMaW5rLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3QUM4RjRFMjE3RkVFRDkwMDU1NDM4QyAvKiBI
aWRDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhpZENvbm5lY3Rpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdBQzhGNEYyMTdGRUVEOTAwNTU0MzhDIC8qIEhpZENvbm5l
Y3Rpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBIaWRDb25uZWN0aW9uLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzUzOCw2ICszNTQ1LDcgQEAKIAkJNTdCODI2NEEyMzA2
MDNDMTAwQjcyRUIwIC8qIE1vY2tOZmNTZXJ2aWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vY2tOZmNT
ZXJ2aWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3QjgyNjRCMjMwNjAzQzEw
MEI3MkVCMCAvKiBNb2NrTmZjU2VydmljZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1vY2tO
ZmNTZXJ2aWNlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0JCRUE2QzIyQkMw
QkZFMDAyNzM5OTUgLyogU09BdXRob3JpemF0aW9uTG9hZFBvbGljeS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTU3QzYyNDRBMjM0Njc5QTQwMDM4M0ZFNyAvKiBXZWJBdXRoZW50aWNhdGlvblBhbmVsRmxh
Z3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aGVudGljYXRpb25QYW5lbEZsYWdzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RENFRDZBMjE0MkVBRTIwMDE2Qjg0NyAvKiBXZWJB
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3JNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JNZXNzYWdlcy5oOyBwYXRoID0g
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JNZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1N0RDRUQ2QjIxNDJF
QUUyMDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkF1dGhlbnRpY2F0
b3JDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTU3RENFRDZDMjE0MkVBRjkwMDE2
Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNl
cy9XZWJLaXQyL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTM1NjUsNiArMzU3
Myw4IEBACiAJCTU3RENFRENEMjE0RjUxNjgwMDE2Qjg0NyAvKiBNb2NrQXV0aGVudGljYXRvck1h
bmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja0F1dGhl
bnRpY2F0b3JNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdFQjJF
MzgyMUUxOTgzRTAwQjg5Q0RGIC8qIFUyZkF1dGhlbnRpY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VTJmQXV0aGVudGljYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0VCMkUz
OTIxRTE5ODNFMDBCODlDREYgLyogVTJmQXV0aGVudGljYXRvci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBVMmZBdXRoZW50aWNhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTdFQkUyNjgyMzQ2NzZDNTAwOEQ4QUY5IC8qIEFQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1N0VCRTI2OTIzNDY3NkM1MDA4RDhBRjkgLyogQVBJV2ViQXV0aGVu
dGljYXRpb25QYW5lbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBUElXZWJBdXRoZW50aWNhdGlv
blBhbmVsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGRDMxNzAyMkIzNTE0
ODAwOEQwRThCIC8qIFBvcFVwU09BdXRob3JpemF0aW9uU2Vzc2lvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQb3BVcFNPQXV0aG9yaXphdGlvblNlc3Npb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGRDMxNzEyMkIzNTE0ODAwOEQwRThCIC8qIFdLU09B
dXRob3JpemF0aW9uRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tTT0F1dGhvcml6YXRpb25EZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1N0ZEMzE3MjIyQjM1MTQ4MDA4RDBFOEIgLyogU09BdXRob3JpemF0aW9uQ29vcmRpbmF0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU09BdXRob3JpemF0aW9uQ29vcmRp
bmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcwNjgsNiArNzA3OCw3IEBA
CiAJCQkJNTdEQ0VEODQyMTQ3MzYzQTAwMTZCODQ3IC8qIEF1dGhlbnRpY2F0b3JNYW5hZ2VyLmgg
Ki8sCiAJCQkJNTdEQ0VEOTkyMTQ4OUY0RDAwMTZCODQ3IC8qIEF1dGhlbnRpY2F0b3JUcmFuc3Bv
cnRTZXJ2aWNlLmNwcCAqLywKIAkJCQk1N0RDRUQ4QTIxNDg1MzEzMDAxNkI4NDcgLyogQXV0aGVu
dGljYXRvclRyYW5zcG9ydFNlcnZpY2UuaCAqLywKKwkJCQk1N0M2MjQ0QTIzNDY3OUE0MDAzODNG
RTcgLyogV2ViQXV0aGVudGljYXRpb25QYW5lbEZsYWdzLmggKi8sCiAJCQkJNTdEQ0VEQTYyMTQ5
RjlEQTAwMTZCODQ3IC8qIFdlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaCAqLywKIAkJCQk1
NzYwODI5NjIwMkJEOEJBMDAxMTY2NzggLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJv
eHkuY3BwICovLAogCQkJCTU3NjA4Mjk1MjAyQkQ4QkEwMDExNjY3OCAvKiBXZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3JQcm94eS5oICovLApAQCAtNzEwOSw2ICs3MTIwLDggQEAKIAkJCQk1NzBE
QUFDMTIzMDM3MzAzMDBFOEZDMDQgLyogTmZjQ29ubmVjdGlvbi5tbSAqLywKIAkJCQk1NzBEQUFB
QzIzMDI2RjVDMDBFOEZDMDQgLyogTmZjU2VydmljZS5oICovLAogCQkJCTU3MERBQUFEMjMwMjZG
NUMwMEU4RkMwNCAvKiBOZmNTZXJ2aWNlLm1tICovLAorCQkJCTU3N0ZGNzgzMjM0NkVDQUEwMDRF
REZCOSAvKiBXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmggKi8sCisJCQkJNTc3RkY3ODQy
MzQ2RUNBQTAwNEVERkI5IC8qIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQubW0gKi8sCiAJ
CQkJNTcwREFBQzQyMzAzN0Y3RTAwRThGQzA0IC8qIFdLTkZSZWFkZXJTZXNzaW9uRGVsZWdhdGUu
aCAqLywKIAkJCQk1NzBEQUFDNTIzMDM3RjdFMDBFOEZDMDQgLyogV0tORlJlYWRlclNlc3Npb25E
ZWxlZ2F0ZS5tbSAqLywKIAkJCSk7CkBAIC03OTg1LDYgKzc5OTgsOSBAQAogCQkJCTdDODlEMjky
MUE2NzEyMkYwMDNBNUZERSAvKiBBUElVc2VyU2NyaXB0LmggKi8sCiAJCQkJMkQ4Nzg2MjExQkRC
NThGRjAwRDAyQUJCIC8qIEFQSVVzZXJTdHlsZVNoZWV0LmNwcCAqLywKIAkJCQkyRDg3ODYyMjFC
REI1OEZGMDBEMDJBQkIgLyogQVBJVXNlclN0eWxlU2hlZXQuaCAqLywKKwkJCQk1N0VCRTI2OTIz
NDY3NkM1MDA4RDhBRjkgLyogQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5jcHAgKi8sCisJCQkJ
NTdFQkUyNjgyMzQ2NzZDNTAwOEQ4QUY5IC8qIEFQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaCAq
LywKKwkJCQk1NzdGRjc4MTIzNDZFODFDMDA0RURGQjkgLyogQVBJV2ViQXV0aGVudGljYXRpb25Q
YW5lbENsaWVudC5oICovLAogCQkJCTFBRTI4NjgxMUM3RjkzODYwMDY5QUM0RiAvKiBBUElXZWJz
aXRlRGF0YVJlY29yZC5jcHAgKi8sCiAJCQkJMUFFMjg2ODIxQzdGOTM4NjAwNjlBQzRGIC8qIEFQ
SVdlYnNpdGVEYXRhUmVjb3JkLmggKi8sCiAJCQkJNUM4REQzN0QxRkU0NTAxMTAwRjJBNTU2IC8q
IEFQSVdlYnNpdGVQb2xpY2llcy5jcHAgKi8sCkBAIC05MzkxLDYgKzk0MDcsOCBAQAogCQkJCTJE
ODc4NjI0MUJEQjU4RkYwMEQwMkFCQiAvKiBBUElVc2VyU3R5bGVTaGVldC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQzVFMUFGRUQxNkIyMTAxNzAwNkNDMUYyIC8qIEFQSVdlYkFyY2hpdmUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUM1RTFBRkVGMTZCMjEwMjkwMDZDQzFGMiAvKiBBUElXZWJBcmNoaXZl
UmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3RUJFMjZBMjM0Njc2QzUwMDhEOEFGOSAv
KiBBUElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmggaW4gSGVhZGVycyAqLywKKwkJCQk1NzdGRjc4
MjIzNDZFODFDMDA0RURGQjkgLyogQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUFFMjg2ODQxQzdGOTM4NjAwNjlBQzRGIC8qIEFQSVdlYnNpdGVE
YXRhUmVjb3JkLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTY1NjNFNTFCN0E4QzUwMDA5Q0Y3ODcg
LyogQVBJV2luZG93RmVhdHVyZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0OEQyQTg1MjE1ODNB
N0UwMEM2NzUyQiAvKiBBcHBLaXRTUEkuaCBpbiBIZWFkZXJzICovLApAQCAtOTgyOSw2ICs5ODQ3
LDggQEAKIAkJCQkxQUY0Q0VGMDE4QkM0ODE4MDBCQzJEMzQgLyogVmlzaXRlZExpbmtUYWJsZUNv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEU3RDNEMThDMTUxNDkwMDVBNzAyQSAv
KiBWaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRURBMTJFMzE1MkNEMUIzMDBEOUUwOEQgLyogV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQk1NzdGRjc4NTIzNDZFQ0FBMDA0RURGQjkgLyogV2ViQXV0aGVu
dGljYXRpb25QYW5lbENsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTdDNjI0NEIyMzQ2NzlB
NDAwMzgzRkU3IC8qIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxGbGFncy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTdEQ0VEQjIyMTRDNjA0QzAwMTZCODQ3IC8qIFdlYkF1dGhlbnRpY2F0aW9uUmVxdWVz
dERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RENFRDZGMjE0MkVFNjMwMDE2Qjg0NyAvKiBX
ZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTdEQ0VEQjMyMTRDNjA1MzAwMTZCODQ3IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclBy
b3h5LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCAwMGU4Y2YzNmM1YWMwODQ5OGVjNmU4YzBkYzQ2NTgwYzAzN2ZhYzlm
Li4yMzExYTFmMThlMGZiZDQ3NDBhMmVjZTJlMTQ3YmJlMzU0OTVmMDcyIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIw
MTktMTAtMDMgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBb
V2ViQXV0aG5dIEltcGxlbWVudCBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIFNQSQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNTU5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS81NTkzMjA5ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSB2ZXJ5IGxpbWl0ZWQgdGVzdCBj
YXNlIHRvIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwuCisgICAgICAgIEJ1ZyAyMDI1NjAgYW5k
IEJ1ZyAyMDI1NjUgd2lsbCBmb2xsb3cgdXAgdG8gd3JpdGUgbW9yZSB0ZXN0cy4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVu
dGljYXRpb25QYW5lbC5tbTogQWRkZWQuCisgICAgICAgICgtW1Rlc3RXZWJBdXRoZW50aWNhdGlv
blBhbmVsRGVsZWdhdGUgcGFuZWw6ZGlzbWlzc1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxXaXRoUmVz
dWx0Ol0pOgorICAgICAgICAoLVtUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUg
d2ViVmlldzpydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsOmluaXRpYXRlZEJ5RnJhbWU6Y29tcGxl
dGlvbkhhbmRsZXI6XSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQt
YXNzZXJ0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsKToK
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6
CisKIDIwMTktMTAtMDMgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT04oMjQ5NjQ5KTogVW5hYmxlIHRvIG9wZW4gbG9jYWwgZmlsZXMgaW4g
TWluaUJyb3dzZXIgb24gbWFjT1MKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjY0MWY1Zjdi
MGNkNGFlYTk4NDE1MmRkMzA3MzY3OGYxNTI5YmUyZC4uODhmNmQwODIwYzUxODEwYmJjOWM5ODRk
MzY0MTQ1MDNkMmRiZmU0YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM0NCw2ICszNDQs
OCBAQAogCQk1Nzk3RkUzMzFFQjE1QUIxMDBCMkY0QTAgLyogbmF2aWdhdGlvbi1jbGllbnQtZGVm
YXVsdC1jcnlwdG8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1Nzk3RkUzMjFFQjE1QTg5MDBCMkY0QTAgLyogbmF2aWdhdGlvbi1jbGll
bnQtZGVmYXVsdC1jcnlwdG8uaHRtbCAqLzsgfTsKIAkJNTdBNzk4NTcyMjRBQjM0RTAwQTdGNkYx
IC8qIFdlYkNyeXB0b01hc3RlcktleS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3QTc5ODU2MjI0QUIzNEUwMEE3RjZGMSAvKiBXZWJDcnlwdG9NYXN0
ZXJLZXkubW0gKi87IH07CiAJCTU3QzNGQTY2MUY3QzI0OEYwMDlENEI4MCAvKiBXZWFrUHRyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQjlCQzM3
MUE2NzQ4MjMwMEZFNTY3OCAvKiBXZWFrUHRyLmNwcCAqLzsgfTsKKwkJNTdDNjI0NEUyMzQ2QkNG
QTAwMzgzRkU3IC8qIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0M2MjQ0RDIzNDZCQ0ZBMDAzODNGRTcg
LyogX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSAqLzsgfTsKKwkJNTdDNjI0NTAyMzQ2QzIx
RTAwMzgzRkU3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdDNjI0NEYy
MzQ2QzFFQzAwMzgzRkU3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLmh0bWwg
Ki87IH07CiAJCTU3RjRBQUEwMjA4RkFFRjAwMEE2OEU5RSAvKiBTU0xLZXlHZW5lcmF0b3IubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0Y0QUE5RjIw
OEZBODNEMDBBNjhFOUUgLyogU1NMS2V5R2VuZXJhdG9yLm1tICovOyB9OwogCQk1N0Y1NkE1QzFD
N0Y4Q0MxMDBGMzFEN0UgLyogSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RjU2QTVCMUM3
RjhBNDAwMEYzMUQ3RSAvKiBJc05hdmlnYXRpb25BY3Rpb25UcnVzdGVkLmh0bWwgKi87IH07CiAJ
CTVDMDE2MEMxMjFBMTMyNDYwMDc3RkEzMiAvKiBKSVRFbmFibGVkLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMwMTYwQzAyMUExMzIzMjAwNzdGQTMy
IC8qIEpJVEVuYWJsZWQubW0gKi87IH07CkBAIC0xNDM0LDYgKzE0MzYsNyBAQAogCQkJCUNEQzhF
NDk3MUJDNkYxMDgwMDU5NEZFQyAvKiB2aWRlby13aXRob3V0LWF1ZGlvLm1wNCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQkyRUJEOUQwQTIxMzQ3MzBEMDAyREE3NTggLyogdmlkZW8uaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDRDU3Nzc5OTIxMUNFMEU0MDAxQjM3MUUgLyogd2Vi
LWF1ZGlvLW9ubHkuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk1N0M2MjQ1MDIzNDZD
MjFFMDAzODNGRTcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24uaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQkxQzJCODE4NjFDODkyNTlEMDBBNTUyOUYgLyogd2ViZm9u
dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUxNzE0RUI0MUNGOEM3OEMwMDQ3MjND
NCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAtMS5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
LAogCQkJCTUxNzE0RUI1MUNGOEM3OEMwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFu
dXAtMi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMTg2MCw2ICsxODYzLDggQEAKIAkJ
NTc5N0ZFMzIxRUIxNUE4OTAwQjJGNEEwIC8qIG5hdmlnYXRpb24tY2xpZW50LWRlZmF1bHQtY3J5
cHRvLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibmF2aWdhdGlvbi1jbGllbnQt
ZGVmYXVsdC1jcnlwdG8uaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3OThF
MkFGMUNBRjVDMjgwMEM1Q0JBMCAvKiBQcm92aXNpb25hbFVSTE5vdENoYW5nZS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFByb3Zpc2lvbmFsVVJMTm90Q2hhbmdl
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0E3OTg1NjIyNEFCMzRFMDBBN0Y2
RjEgLyogV2ViQ3J5cHRvTWFzdGVyS2V5Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ3J5
cHRvTWFzdGVyS2V5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0M2MjQ0RDIz
NDZCQ0ZBMDAzODNGRTcgLyogX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTU3QzYyNDRGMjM0NkMxRUMwMDM4M0ZFNyAvKiB3ZWItYXV0aGVudGlj
YXRpb24tZ2V0LWFzc2VydGlvbi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIndl
Yi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1N0QxRDc1RTIxRENCN0E4MDA5M0U4NkEgLyogVTJmQ29tbWFuZENvbnN0cnVj
dG9yVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVMmZDb21t
YW5kQ29uc3RydWN0b3JUZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdG
MTBEOTIxQzdFN0IzODAwRUNERjMwIC8qIElzTmF2aWdhdGlvbkFjdGlvblRydXN0ZWQubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJc05hdmlnYXRpb25BY3Rpb25U
cnVzdGVkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0Y0QUE5RjIwOEZBODNE
MDBBNjhFOUUgLyogU1NMS2V5R2VuZXJhdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU1NM
S2V5R2VuZXJhdG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjcyNSw2ICsy
NzMwLDcgQEAKIAkJCQlBMTZGNjZCODFDNDBFOUUxMDBCRDREMjQgLyogUmVzb3VyY2VzICovLAog
CQkJCTVDRUFCNURGMUZBOTM3Q0IwMEE3N0ZBQSAvKiBfV0tJbnB1dERlbGVnYXRlLm1tICovLAog
CQkJCTdDRUZBOTY0MUFDMEI5RTIwMEI5MTBGRCAvKiBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0
b3JlLm1tICovLAorCQkJCTU3QzYyNDREMjM0NkJDRkEwMDM4M0ZFNyAvKiBfV0tXZWJBdXRoZW50
aWNhdGlvblBhbmVsLm1tICovLAogCQkJCTA3NDY2NDU4MjJGRjYzMDUwMEUzNDUxQSAvKiBBY2Nl
c3NpYmlsaXR5VGVzdFBsdWdpbi5tbSAqLywKIAkJCQkwNzQ2NjQ1NzIyRkY2MkQwMDBFMzQ1MUEg
LyogQWNjZXNzaWJpbGl0eVRlc3RTdXBwb3J0UHJvdG9jb2wuaCAqLywKIAkJCQkzN0U3REQ2MzFF
QTA2RkYyMDA5QjM5NkQgLyogQWRkaXRpb25hbFJlYWRBY2Nlc3NBbGxvd2VkVVJMcy5tbSAqLywK
QEAgLTMzNjQsNiArMzM3MCw3IEBACiAJCQkJRjQ0NTFDNzUxRUI4RkQ3QzAwMjBDNURBIC8qIHR3
by1wYXJhZ3JhcGgtY29udGVudGVkaXRhYmxlLmh0bWwgKi8sCiAJCQkJQ0Q1Nzc3OUIyMTFDRTZD
RTAwMUIzNzFFIC8qIHZpZGVvLXdpdGgtYXVkaW8tYW5kLXdlYi1hdWRpby5odG1sICovLAogCQkJ
CUNENTc3Nzk4MjExQ0RFOEYwMDFCMzcxRSAvKiB3ZWItYXVkaW8tb25seS5odG1sICovLAorCQkJ
CTU3QzYyNDRGMjM0NkMxRUMwMDM4M0ZFNyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2Vy
dGlvbi5odG1sICovLAogCQkJCTUxNzE0RUIyMUNGOEM3NjEwMDQ3MjNDNCAvKiBXZWJQcm9jZXNz
S2lsbElEQkNsZWFudXAtMS5odG1sICovLAogCQkJCTUxNzE0RUIzMUNGOEM3NjEwMDQ3MjNDNCAv
KiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAtMi5odG1sICovLAogCQkJCTUxMjBDODNCMUU2NzRF
MzUwMDI1QjI1MCAvKiBXZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMuaHRtbCAqLywKQEAgLTQz
ODgsNiArNDM5NSw3IEBACiAJCQlmaWxlcyA9ICgKIAkJCQk1Q0VBQjVFMTFGQTkzOUY0MDBBNzdG
QUEgLyogX1dLSW5wdXREZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDRUZBOTY2MUFD
MEI5RTIwMEI5MTBGRCAvKiBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLm1tIGluIFNvdXJj
ZXMgKi8sCisJCQkJNTdDNjI0NEUyMzQ2QkNGQTAwMzgzRkU3IC8qIF9XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWwubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VFNDFBNDExQUU2MDA0NDdDNEMg
LyogQWJvdXRCbGFua0xvYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQjMxQTQxMUE3
RTAwNDQ3QzRDIC8qIEFjY2VwdHNGaXJzdE1vdXNlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkUy
MDVCQTQxRjUyNzc0NjAwNTk1MkREIC8qIEFjY2Vzc2liaWxpdHlUZXN0c0lPUy5tbSBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNl
NDExYmVlMzBkMTgwMjI5YjI5Nzk1MDVmMzIzYThlODFhYWQwMjcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWwubW0KQEAgLTAsMCArMSwxMjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbXBv
cnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1w
b3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1VJ
RGVsZWdhdGVQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLRXhwZXJpbWVudGFsRmVhdHVy
ZS5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaD4KKworc3Rh
dGljIGJvb2wgd2ViQXV0aGVudGljYXRpb25QYW5lbFJhbiA9IGZhbHNlOworc3RhdGljIGJvb2wg
d2ViQXV0aGVudGljYXRpb25QYW5lbERpbWlzc2VkID0gZmFsc2U7CisKK0BpbnRlcmZhY2UgVGVz
dFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxfV0tXZWJBdXRoZW50
aWNhdGlvblBhbmVsRGVsZWdhdGU+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBUZXN0V2ViQXV0
aGVudGljYXRpb25QYW5lbERlbGVnYXRlCisKKy0gKHZvaWQpcGFuZWw6KF9XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwgKilwYW5lbCBkaXNtaXNzV2ViQXV0aGVudGljYXRpb25QYW5lbFdpdGhSZXN1
bHQ6KF9XS1dlYkF1dGhlbnRpY2F0aW9uUmVzdWx0KXJlc3VsdAoreworICAgIEFTU0VSVF9ORShw
YW5lbCwgbmlsKTsKKyAgICBFWFBFQ1RfRVEocmVzdWx0LCBfV0tXZWJBdXRoZW50aWNhdGlvblJl
c3VsdEZhaWxlZCk7CisgICAgd2ViQXV0aGVudGljYXRpb25QYW5lbERpbWlzc2VkID0gdHJ1ZTsK
K30KKworQGVuZAorCitAaW50ZXJmYWNlIFRlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxl
Z2F0ZSA6IE5TT2JqZWN0IDxXS1VJRGVsZWdhdGVQcml2YXRlPgorQGVuZAorCitAaW1wbGVtZW50
YXRpb24gVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIHsKKyAgICBSZXRhaW5Q
dHI8X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbD4gX3BhbmVsOworICAgIFJldGFpblB0cjxUZXN0
V2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlPiBfZGVsZWdhdGU7Cit9CisKKy0gKHZvaWQp
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsOihf
V0tXZWJBdXRoZW50aWNhdGlvblBhbmVsICopcGFuZWwgaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFt
ZUluZm8gKilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbFJlc3VsdCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICB3ZWJBdXRoZW50aWNh
dGlvblBhbmVsUmFuID0gdHJ1ZTsKKworICAgIF9kZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2Vi
QXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgQVNTRVJUX05F
KHBhbmVsLCBuaWwpOworICAgIF9wYW5lbCA9IHBhbmVsOworICAgIFtfcGFuZWwgc2V0RGVsZWdh
dGU6X2RlbGVnYXRlLmdldCgpXTsKKworICAgIEVYUEVDVF9XS19TVFJFUShbX3BhbmVsIHJlbHlp
bmdQYXJ0eUlEXSwgIiIpOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbFJlc3VsdFByZXNlbnRlZCk7Cit9CisKK0BlbmQKKworbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkgeworCituYW1lc3BhY2UgeworX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqd2ViQXV0
aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCkKK3sKKyAgICBzdGF0aWMgUmV0YWluUHRy
PF9XS0V4cGVyaW1lbnRhbEZlYXR1cmU+IHRoZUZlYXR1cmU7CisgICAgaWYgKHRoZUZlYXR1cmUp
CisgICAgICAgIHJldHVybiB0aGVGZWF0dXJlLmdldCgpOworCisgICAgTlNBcnJheSAqZmVhdHVy
ZXMgPSBbV0tQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdOworICAgIGZvciAoX1dL
RXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBmZWF0dXJlcykgeworICAgICAgICBpZiAo
W2ZlYXR1cmUua2V5IGlzRXF1YWw6QCJXZWJBdXRoZW50aWNhdGlvbkVuYWJsZWQiXSkgeworICAg
ICAgICAgICAgdGhlRmVhdHVyZSA9IGZlYXR1cmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgIH0KKyAgICByZXR1cm4gdGhlRmVhdHVyZS5nZXQoKTsKK30KK30KKworVEVTVChX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLCBCYXNpY1RpbWVvdXQpCit7CisgICAgUmV0YWluUHRyPE5T
VVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndl
Yi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3Vi
ZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKworICAgIGF1dG8gY29uZmln
dXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7
CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07
CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0p
OworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpk
ZWxlZ2F0ZS5nZXQoKV07CisKKyAgICAvLyBPbmx5IGZvY3VzZWQgZG9jdW1lbnRzIGNhbiB0cmln
Z2VyIFdlYkF1dGhuLgorI2lmIFBMQVRGT1JNKE1BQykKKyAgICBbW3dlYlZpZXcgaG9zdFdpbmRv
d10gbWFrZUZpcnN0UmVzcG9uZGVyOndlYlZpZXcuZ2V0KCldOworI2VsaWYgUExBVEZPUk0oSU9T
KQorICAgIFt3ZWJWaWV3IGJlY29tZUZpcnN0UmVzcG9uZGVyXTsKKyNlbmRpZgorCisgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdl
dCgpXV07CisgICAgVXRpbDo6cnVuKCZ3ZWJBdXRoZW50aWNhdGlvblBhbmVsUmFuKTsKKyAgICBV
dGlsOjpydW4oJndlYkF1dGhlbnRpY2F0aW9uUGFuZWxEaW1pc3NlZCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50
aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYmY0OWE1ZmRjZjE4ZDQ3MGQ1YjMyYjc4NmMxZDBkYzVlMDZjYjkyZQotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRp
Y2F0aW9uLWdldC1hc3NlcnRpb24uaHRtbApAQCAtMCwwICsxLDEwIEBACis8c2NyaXB0PgorICAg
IGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgY2hh
bGxlbmdlOiBuZXcgVWludDhBcnJheSgxNiksCisgICAgICAgICAgICB0aW1lb3V0OiAxCisgICAg
ICAgIH0KKyAgICB9OworCisgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKTsK
Kzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRl
eCAwYmQ3NzYxYmJmYzU1MDRlZjIwNTlkOWExZjNiNDQ3NTc2MDc0ZTBiLi45YjgwNzFkYTdmZjNm
OTgwODgxMmY3NTYxN2YyMDBiYTViMmZhNTExIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcApAQCAtMjk1LDYgKzI5NSwxMSBAQCBzdGF0aWMgYm9vbCBzaG91bGRB
bGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKFdLUGFnZVJlZiwgV0tTZWN1cml0
eU9yaQogICAgIHJldHVybiBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuaGFuZGxlRGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NSZXF1ZXN0KG9yaWdpbik7CiB9CiAKKy8vIEEgcGxh
Y2Vob2xkZXIgdG8gdGVsbCBXZWJLaXQgdGhlIGNsaWVudCBpcyBXZWJLaXRUZXN0UnVubmVyLgor
c3RhdGljIHZvaWQgcnVuV2ViQXV0aGVudGljYXRpb25QYW5lbCgpCit7Cit9CisKIFdLUGFnZVJl
ZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiwgV0tQYWdlQ29uZmln
dXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS05hdmlnYXRpb25BY3Rpb25SZWYgbmF2aWdhdGlv
bkFjdGlvbiwgV0tXaW5kb3dGZWF0dXJlc1JlZiB3aW5kb3dGZWF0dXJlcywgY29uc3Qgdm9pZCAq
Y2xpZW50SW5mbykKIHsKICAgICBQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcgPSBzdGF0aWNf
Y2FzdDxQbGF0Zm9ybVdlYlZpZXcqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CkBA
IC02MTcsOCArNjIyLDggQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhP
cHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAgIHJlc2V0UHJlZmVyZW5jZXNU
b0NvbnNpc3RlbnRWYWx1ZXMob3B0aW9ucyk7CiAKICAgICBwbGF0Zm9ybUNyZWF0ZVdlYlZpZXco
Y29uZmlndXJhdGlvbi5nZXQoKSwgb3B0aW9ucyk7Ci0gICAgV0tQYWdlVUlDbGllbnRWMTMgcGFn
ZVVJQ2xpZW50ID0gewotICAgICAgICB7IDEzLCBtX21haW5XZWJWaWV3LmdldCgpIH0sCisgICAg
V0tQYWdlVUlDbGllbnRWMTQgcGFnZVVJQ2xpZW50ID0geworICAgICAgICB7IDE0LCBtX21haW5X
ZWJWaWV3LmdldCgpIH0sCiAgICAgICAgIDAsIC8vIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZv
clVzZVdpdGhWMAogICAgICAgICAwLCAvLyBzaG93UGFnZQogICAgICAgICAwLCAvLyBjbG9zZQpA
QCAtNjkwLDcgKzY5NSw4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRo
T3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICAgICAgMCwgLy8gZGlkRXhj
ZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZAogICAgICAgICAwLCAv
LyBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2UKICAgICAgICAg
MCwgLy8gcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtCi0gICAgICAgIHNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MKKyAgICAgICAgc2hvdWxkQWxsb3dEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcywKKyAgICAgICAgcnVuV2ViQXV0aGVudGljYXRpb25Q
YW5lbAogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG1fbWFpbldlYlZpZXctPnBh
Z2UoKSwgJnBhZ2VVSUNsaWVudC5iYXNlKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380201</attachid>
            <date>2019-10-04 02:08:26 -0700</date>
            <delta_ts>2019-10-04 09:50:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202559-20191004020825.patch</filename>
            <type>text/plain</type>
            <size>86231</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY3MjY5NDUwMDVhZWY5Yjhl
NmQyMjI1YTkwMDdhNjJkN2Q5ZGQ4YWQuLjg4ODI0NTZhYjA4ZTA1Njg1NGIwZGZhMTZiNDZmYTM4
MDgzYjM5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAyIEBACisyMDE5LTEwLTAzICBKaWV3ZW4g
VGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBJbXBsZW1l
bnQgX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBTUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjU1OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTU5MzIwOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgU1BJLiBI
ZXJlIGlzIHRoZSBzdHJ1Y3R1cmU6CisgICAgICAgIDEpIEFQSTo6V2ViQXV0aGVudGljYXRpb25Q
YW5lbCBpcyB0aGUgQVBJT2JqZWN0IG9mIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwuIEl0IGlz
IG93bmVkIGJ5IEF1dGhlbnRpY2F0b3JNYW5hZ2VyLgorICAgICAgICBUaGUgbGlmZXRpbWUgb2Yg
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBvbiB0aGUgb3RoZXIgaGFuZCBpcyBtYW5hZ2VkIGJ5
IGNsaWVudHMuIFRoaXMgYmluZGluZyBpcyB0aGUgc3VyZmFjZQorICAgICAgICB3aGVyZSBjbGll
bnRzIGNvdWxkIGludGVyYWN0IHdpdGggV2ViS2l0J3MgV2ViQXV0aGVudGljYXRpb24gaW1wbGVt
ZW50YXRpb24uCisgICAgICAgIDIpIEFQSTo6V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudCBp
cyBhIGJhc2UgY2xhc3MgcmVwcmVzZW50aW5nIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxl
Z2F0ZS4gSXRzIHN1YmNsYXNzCisgICAgICAgIFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25QYW5l
bENsaWVudCBpbXBsZW1lbnRzIGJyaWRnZXMgdG8gX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbERl
bGVnYXRlIG1ldGhvZHMuIEl0IGlzIG93bmVkIGJ5CisgICAgICAgIEFQSTo6V2ViQXV0aGVudGlj
YXRpb25QYW5lbC4gQSB3ZWFrIHBvaW50ZXIgb2YgV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlvblBh
bmVsQ2xpZW50IGlzIGtlcHQgaW4gX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbAorICAgICAgICB0
byBnZXQgdGhlIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZSBzZXQgYnkgY2xpZW50
cyBvciBuaWwgb3RoZXJ3aXNlLiBUaGlzIGJpbmRpbmcgaXMgdGhlIHN1cmZhY2Ugd2hlcmUgV2Vi
S2l0CisgICAgICAgIGludGVyYWN0cyB3aXRoIGNsaWVudHMuCisgICAgICAgIDMpIFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWxGbGFncyBpcyB0aGUgbWlycm9yIG9mIGVudW1zIHdpdGhpbiBfV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsLgorCisgICAgICAgIEltcGxlbWVudGF0aW9uIHdpc2UsIHRoaXMg
cGF0Y2ggaW1wbGVtZW50czoKKyAgICAgICAgMSkgLVtXS1VJRGVsZWdhdGVQcml2YXRlIHdlYlZp
ZXc6cnVuV2ViQXV0aGVudGljYXRpb25QYW5lbDppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25I
YW5kbGVyOl0sIHRoaXMgaXMgYnJpZGdlZCBmcm9tCisgICAgICAgIHRoZSByZWd1bGFyIFVJRGVs
ZWdhdGUgcm91dGUuIE5vdGVkLCBXS0ZyYW1lSW5mbyBpcyBuaWwgZm9yIG5vdywgYSBmb2xsb3cg
dXAgb24gQnVnIDIwMjU2MyB3aWxsIHRha2UgY2FyZSBvZiBpdC4gVGhpcworICAgICAgICB3aWxs
IGJlIGNhbGxlZCBmcm9tIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpydW5QYW5lbCgpIHdoaWNoIGdh
dGVzIHRoZSBzdGFydCBvZiBkaXNjb3Zlcnkgb24gdGhlIGNhbGxiYWNrLiBGb3IgY2xpZW50cwor
ICAgICAgICB0aGF0IGRvbid0IGltcGxlbWVudCB0aGUgZGVsZWdhdGUsIHRoZSBjYWxsYmFjayB3
aWxsIGFsd2F5cyBiZSBjYWxsZWQgd2l0aCBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0
VW5hdmFpbGFibGUKKyAgICAgICAgdG8gYWxsb3cgV2ViS2l0IHJ1biBvbiBub24tVUkgbW9kZS4g
QSBzcGVjaWZpYyBDIEFQSSBoYWNrIGlzIGFkZGVkIHRvIGFsd2F5cyByZXR1cm4gX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbFJlc3VsdFByZXNlbnRlZAorICAgICAgICBpbiBXZWJLaXRUZXN0UnVu
bmVyIGZvciBsYXlvdXQgdGVzdHMuCisgICAgICAgIDIpIC1bX1dLV2ViQXV0aGVudGljYXRpb25Q
YW5lbERlbGVnYXRlIHBhbmVsOnVwZGF0ZVdlYkF1dGhlbnRpY2F0aW9uUGFuZWw6XSB3aWxsIGJl
IGltcGxlbWVudGVkIGluIEJ1ZyAyMDA5MzIuCisgICAgICAgIDMpIC1bX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbERlbGVnYXRlIHBhbmVsOmRpc21pc3NXZWJBdXRoZW50aWNhdGlvblBhbmVsV2l0
aFJlc3VsdDpdLCB0aGlzIGlzIGJyaWRnZWQgZnJvbQorICAgICAgICBBUEk6OldlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwvQVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LiBUaGlzIHdpbGwg
YmUgY2FsbGVkIHdoZW5ldmVyIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjptX3BlbmRpbmdDb21wbGV0
aW9uSGFuZGxlcgorICAgICAgICBpcyBpbnZva2VkLiBEZXBlbmRpbmcgb24gdGhlIHJlc3BvbmQs
IF9XS1dlYkF1dGhlbnRpY2F0aW9uUmVzdWx0IHdpbGwgYmUgcmV0dXJuZWQgYWNjb3JkaW5nbHku
IFRvIGZhY2lsaXRhdGUgdGhhdCwKKyAgICAgICAgaW52b2tlUGVuZGluZ0NvbXBsZXRpb25IYW5k
bGVyIGlzIGNyYWZ0ZWQgdG8gYnVuZGxlIHRob3NlIHR3byBvcGVyYXRpb25zLgorICAgICAgICA0
KSAtW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgY2FuY2VsXSB3aWxsIGJlIGltcGxlbWVudGVk
IGluIEJ1ZyAxOTE1MjMuCisKKyAgICAgICAgQmVzaWRlcyB0aGUgYWJvdmUsIHRoaXMgcGF0Y2gg
YWxzbyBzaWxlbnRzIHRoZSBORkMgYWN0aW9uIHNoZWV0LgorCisgICAgICAgICogUGxhdGZvcm0v
c3BpL0NvY29hL05lYXJGaWVsZFNQSS5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJT2JqZWN0
Lmg6CisgICAgICAgICogU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbToKKyAgICAgICAgKEFQSTo6
T2JqZWN0OjpuZXdPYmplY3QpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNv
dXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgor
ICAgICAgICAoQVBJOjpVSUNsaWVudDo6cnVuV2ViQXV0aGVudGljYXRpb25QYW5lbCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWwubW0uCisgICAgICAgIChBUEk6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWw6OmNyZWF0
ZSk6CisgICAgICAgIChBUEk6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWw6OldlYkF1dGhlbnRpY2F0
aW9uUGFuZWwpOgorICAgICAgICAoQVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsOjpzZXRDbGll
bnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9X
ZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsSW50ZXJuYWwu
aC4KKyAgICAgICAgKEFQSTo6V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudDo6ZGlzbWlzc1Bh
bmVsIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAg
ICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAoLVtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
IGRlYWxsb2NdKToKKyAgICAgICAgKC1bX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCByZWx5aW5n
UGFydHlJRF0pOgorICAgICAgICAoLVtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIGRlbGVnYXRl
XSk6CisgICAgICAgICgtW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgc2V0RGVsZWdhdGU6XSk6
CisgICAgICAgICgtW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgX2FwaU9iamVjdF0pOgorICAg
ICAgICAoLVtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIF9pbml0V2l0aFJlbGF5aW5nUGFydHlJ
RDpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWxJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAg
ICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OnNldERlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6
d2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdCk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdh
dGU6OlVJQ2xpZW50OjpydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb3JlOjppc0ZlYXR1cmVFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29yZTo6Z2V0UnBJZCk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2Vy
OjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvck1hbmFnZXI6
OnJlc3BvbmRSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2Vy
OjpzdGFydERpc2NvdmVyeSk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2Vy
Ojppbml0VGltZU91dFRpbWVyKToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvck1hbmFn
ZXI6OnRpbWVPdXRUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvck1h
bmFnZXI6OnJ1blBhbmVsKToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvck1hbmFnZXI6
OnN0YXJ0UmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpp
bnZva2VQZW5kaW5nQ29tcGxldGlvbkhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50
aWNhdG9yTWFuYWdlckludGVybmFsOjpjb2xsZWN0VHJhbnNwb3J0cyk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VySW50ZXJuYWw6OnByb2Nlc3NHb29nbGVM
ZWdhY3lBcHBJZFN1cHBvcnRFeHRlbnNpb24pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oOgorICAgICAgICAoV2Vi
S2l0OjpBdXRoZW50aWNhdG9yTWFuYWdlcjo6cGVuZGluZ0NvbXBsZXRpb25IYW5kbGVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZjQ29u
bmVjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6TmZjQ29ubmVjdGlvbjo6TmZjQ29ubmVjdGlv
bik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY1NlcnZp
Y2UubW06CisgICAgICAgIChXZWJLaXQ6Ok5mY1NlcnZpY2U6OnBsYXRmb3JtU3RhcnREaXNjb3Zl
cnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRo
ZW50aWNhdGlvblBhbmVsQ2xpZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRp
b25QYW5lbENsaWVudC5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vTW9jay9Nb2NrQXV0aGVudGljYXRvck1hbmFnZXIuY3BwLgorICAgICAg
ICAoV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50OjpXZWJBdXRoZW50aWNhdGlv
blBhbmVsQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6d2tXZWJBdXRoZW50aWNhdGlvblJlc3Vs
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ6OmRpc21p
c3NQYW5lbCBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01v
Y2svTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TW9ja0F1
dGhlbnRpY2F0b3JNYW5hZ2VyOjpyZXNwb25kUmVjZWl2ZWRJbnRlcm5hbCk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxGbGFncy5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbEludGVybmFsLmguCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6
bWFrZUNyZWRlbnRpYWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JQcm94eTo6Z2V0QXNzZXJ0aW9uKToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKwogMjAxOS0xMC0wMyAgQ2hyaXN0b3BoZXIgUmVpZCAgPGNocmlzLnJl
aWRAc29ueS5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBSZW1vdGUgaW5zcGVjdG9yIGNsaWVu
dCB0YXJnZXQgbGlzdCBpcyByYWN5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L3NwaS9Db2NvYS9OZWFyRmllbGRTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0Nv
Y29hL05lYXJGaWVsZFNQSS5oCmluZGV4IGVkY2I1NjJlMWUwYWRiMzMzMjEzYTkxYWI5OTFjYWNj
M2MzMmM2MDYuLjZiY2JhYTU0OWU3ODFlOWFjOWZjMWJiZDBlZGIxM2RjZGIzZjI0OWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL05lYXJGaWVsZFNQSS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL05lYXJGaWVsZFNQSS5oCkBAIC0x
MDgsNyArMTA4LDcgQEAgdHlwZWRlZiBOU19FTlVNKHVpbnQzMl90LCBORk5kZWZBdmFpbGFiaWxp
dHkpIHsKIAogQGludGVyZmFjZSBORkhhcmR3YXJlTWFuYWdlciA6IE5TT2JqZWN0CiArIChpbnN0
YW5jZXR5cGUpc2hhcmVkSGFyZHdhcmVNYW5hZ2VyOwotLSAoTlNPYmplY3Q8TkZTZXNzaW9uPiAq
KXN0YXJ0UmVhZGVyU2Vzc2lvbldpdGhBY3Rpb25TaGVldFVJOih2b2lkKF4pKE5GUmVhZGVyU2Vz
c2lvbiAqc2Vzc2lvbiwgTlNFcnJvciAqZXJyb3IpKXRoZVN0YXJ0Q2FsbGJhY2s7CistIChOU09i
amVjdDxORlNlc3Npb24+ICopc3RhcnRSZWFkZXJTZXNzaW9uOih2b2lkKF4pKE5GUmVhZGVyU2Vz
c2lvbiAqc2Vzc2lvbiwgTlNFcnJvciAqZXJyb3IpKXRoZVN0YXJ0Q2FsbGJhY2s7CiAtIChCT09M
KWFyZUZlYXR1cmVzU3VwcG9ydGVkOihORkZlYXR1cmUpZmVhdHVyZU1hc2sgb3V0RXJyb3I6KE5T
RXJyb3IqKilvdXRFcnJvcjsKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQVBJL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5o
CmluZGV4IDQwMjlkZjkwZTdjZTIyOGRjMTM5NTcyMTI0YTU5NmMyODRlODBhY2YuLmI3Y2E5N2Fm
YTAwZDkzYzNiNDk2YjQxZDVjMDg2YWYxZTk4MjNhZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
QVBJT2JqZWN0LmgKQEAgLTE3OCw2ICsxNzgsMTAgQEAgcHVibGljOgogICAgICAgICBNZWRpYVNl
c3Npb25NZXRhZGF0YSwKICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKyAgICAgICAg
V2ViQXV0aGVudGljYXRpb25QYW5lbCwKKyNlbmRpZgorCiAgICAgICAgIC8vIEJ1bmRsZSB0eXBl
cwogICAgICAgICBCdW5kbGUsCiAgICAgICAgIEJ1bmRsZUJhY2tGb3J3YXJkTGlzdCwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbSBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbQppbmRleCA1N2MzMmIyZjlhYjIxYThiZWEx
YWY4YTBjZWU5Yjc2YmEzZTg4MGVlLi4xNDNlYjA4OTFiOWYyYmFjNGIwMDFiMTE0NmViZDM4Njc3
NjU0ZmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BUElPYmplY3Qu
bW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1tCkBAIC04NCw2
ICs4NCw3IEBACiAjaW1wb3J0ICJfV0tVc2VySW5pdGlhdGVkQWN0aW9uSW50ZXJuYWwuaCIKICNp
bXBvcnQgIl9XS1VzZXJTdHlsZVNoZWV0SW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS1Zpc2l0ZWRM
aW5rU3RvcmVJbnRlcm5hbC5oIgorI2ltcG9ydCAiX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbElu
dGVybmFsLmgiCiAjaW1wb3J0ICJfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbkludGVy
bmFsLmgiCiAKICNpZiBFTkFCTEUoQVBQTElDQVRJT05fTUFOSUZFU1QpCkBAIC0zNjQsNiArMzY1
LDEyIEBAIHZvaWQqIE9iamVjdDo6bmV3T2JqZWN0KHNpemVfdCBzaXplLCBUeXBlIHR5cGUpCiAg
ICAgICAgIHdyYXBwZXIgPSBbV0tXaW5kb3dGZWF0dXJlcyBhbGxvY107CiAgICAgICAgIGJyZWFr
OwogCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKyAgICBjYXNlIFR5cGU6OldlYkF1dGhlbnRpY2F0
aW9uUGFuZWw6CisgICAgICAgIHdyYXBwZXIgPSBbX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBh
bGxvY107CisgICAgICAgIGJyZWFrOworI2VuZGlmCisKICAgICBjYXNlIFR5cGU6OkJ1bmRsZUZy
YW1lOgogICAgICAgICB3cmFwcGVyID0gW1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lIGFsbG9jXTsK
ICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBmYTUyNjFmNTRjNTUxMDY0YTRiNzIwZGNi
Mzk4ZjJiNTE3MjI5YjlkLi4zNzNkNjU1ZjEwYWY4YjM4MDM1Yjk2YmFjN2Q4ZjI5NTJiMGE2OGJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQKQEAgLTMxOCw2ICszMTgsNyBAQCBVSVByb2Nlc3MvQVBJL0FQSVVSTFNj
aGVtZVRhc2suY3BwCiBVSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50V29ybGQuY3BwCiBVSVBy
b2Nlc3MvQVBJL0FQSVVzZXJTY3JpcHQuY3BwCiBVSVByb2Nlc3MvQVBJL0FQSVVzZXJTdHlsZVNo
ZWV0LmNwcAorVUlQcm9jZXNzL0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmNwcAogVUlQ
cm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuY3BwCiBVSVByb2Nlc3MvQVBJL0FQSVdpbmRv
d0ZlYXR1cmVzLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggYjdmMGFiNmUwNzgxOTJk
NWE0ZDk1MzZhZTVjMDRhMGViM2E5NTEzZC4uYjNmMTIyMjRhODVkNDgwMjJiODI3NzE5NjgzODlm
ZjVlMDk2MDg4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNTAzLDYgKzUwMyw3IEBAIFVJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZWFyRmllbGRTb2Z0TGluay5tbSBAbm8t
dW5pZnkKIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNDb25uZWN0aW9uLm1t
CiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZjU2VydmljZS5tbQogVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dLTkZSZWFkZXJTZXNzaW9uRGVsZWdhdGUubW0K
K1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdGlvblBhbmVs
Q2xpZW50Lm1tCiAKIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENv
bm5lY3Rpb24ubW0KIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbFNl
cnZpY2UubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNs
aWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXgg
NzcyZGE2ZTVhODY5NzdlYzhhZTJkYzA3NTQyZDhmY2YxZTE0OTYxYi4uZGRkNmU2MjM1NDkxMGI2
YjI2OGI0ZjliMzU2NjRlZWEyMWU4YmNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVVJQ2xpZW50LmgKQEAgLTM4LDYgKzM4LDEwIEBAIE9CSkNfQ0xBU1MgX1dLQWN0aXZhdGVk
RWxlbWVudEluZm87CiBPQkpDX0NMQVNTIFVJVmlld0NvbnRyb2xsZXI7CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShXRUJfQVVUSE4pCisjaW5jbHVkZSAiV2ViQXV0aGVudGljYXRpb25QYW5lbEZsYWdz
LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVnaXN0cmFibGVEb21h
aW47CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CkBAIC02OSw2ICs3Myw5IEBAIGNsYXNzIERpY3Rp
b25hcnk7CiBjbGFzcyBPYmplY3Q7CiBjbGFzcyBPcGVuUGFuZWxQYXJhbWV0ZXJzOwogY2xhc3Mg
U2VjdXJpdHlPcmlnaW47CisjaWYgRU5BQkxFKFdFQl9BVVRITikKK2NsYXNzIFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWw7CisjZW5kaWYKIAogY2xhc3MgVUlDbGllbnQgewogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwpAQCAtMTg4LDYgKzE5NSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGRpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVncm91bmQoV2Vi
S2l0OjpXZWJQYWdlUHJveHkmLCBXS1Jlc291cmNlTGltaXQpIHsgfQogICAgIAogICAgIHZpcnR1
YWwgdm9pZCBkaWRTaG93U2FmZUJyb3dzaW5nV2FybmluZygpIHsgfQorCisjaWYgRU5BQkxFKFdF
Ql9BVVRITikKKyAgICB2aXJ0dWFsIHZvaWQgcnVuV2ViQXV0aGVudGljYXRpb25QYW5lbChXZWJL
aXQ6OldlYlBhZ2VQcm94eSYsIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlv
blBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSk7IH0KKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2ViQXV0
aGVudGljYXRpb25QYW5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vi
QXV0aGVudGljYXRpb25QYW5lbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDBkMmQxYTI0YzIxYzI5ZTI5NzU4
ZmIyZmZiYjVhYWNmNTdmM2JiZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmNwcApAQCAtMCwwICsxLDU1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFQSVdlYkF1dGhl
bnRpY2F0aW9uUGFuZWwuaCIKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJB
UElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmgiCisKK25hbWVzcGFjZSBBUEkgeworCitS
ZWY8V2ViQXV0aGVudGljYXRpb25QYW5lbD4gV2ViQXV0aGVudGljYXRpb25QYW5lbDo6Y3JlYXRl
KGNvbnN0IFN0cmluZyYgcnBJZCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBdXRo
ZW50aWNhdGlvblBhbmVsKHJwSWQpKTsKK30KKworV2ViQXV0aGVudGljYXRpb25QYW5lbDo6V2Vi
QXV0aGVudGljYXRpb25QYW5lbChjb25zdCBTdHJpbmcmIHJwSWQpCisgICAgOiBtX3JwSWQocnBJ
ZCkKKyAgICAsIG1fY2xpZW50KFdURjo6bWFrZVVuaXF1ZVJlZjxXZWJBdXRoZW50aWNhdGlvblBh
bmVsQ2xpZW50PigpKQoreworfQorCitXZWJBdXRoZW50aWNhdGlvblBhbmVsOjp+V2ViQXV0aGVu
dGljYXRpb25QYW5lbCgpID0gZGVmYXVsdDsKKwordm9pZCBXZWJBdXRoZW50aWNhdGlvblBhbmVs
OjpzZXRDbGllbnQoVW5pcXVlUmVmPFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ+JiYgY2xp
ZW50KQoreworICAgIG1fY2xpZW50ID0gV1RGTW92ZShjbGllbnQpOworfQorCit9IC8vIG5hbWVz
cGFjZSBBUEkKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43NTA0ODg2YzA0YzAzM2FhMjZkMjVkOGYxMzUwM2Q1ZjlmOTc1ODJmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYkF1dGhlbnRpY2F0
aW9uUGFuZWwuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVk
ZSA8d3RmL1VuaXF1ZVJlZi5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBBUEkgeworCitjbGFzcyBXZWJBdXRo
ZW50aWNhdGlvblBhbmVsQ2xpZW50OworCitjbGFzcyBXZWJBdXRoZW50aWNhdGlvblBhbmVsIGZp
bmFsIDogcHVibGljIE9iamVjdEltcGw8T2JqZWN0OjpUeXBlOjpXZWJBdXRoZW50aWNhdGlvblBh
bmVsPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYkF1dGhlbnRpY2F0aW9uUGFuZWw+IHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkF1dGhlbnRpY2F0aW9uUGFuZWw+IGNyZWF0ZShjb25z
dCBTdHJpbmcmIHJwSWQpOworICAgIH5XZWJBdXRoZW50aWNhdGlvblBhbmVsKCk7CisKKyAgICBX
VEY6OlN0cmluZyBycElkKCkgY29uc3QgeyByZXR1cm4gbV9ycElkOyB9CisKKyAgICBjb25zdCBX
ZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50JiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2Ns
aWVudC5nZXQoKTsgfQorICAgIHZvaWQgc2V0Q2xpZW50KFVuaXF1ZVJlZjxXZWJBdXRoZW50aWNh
dGlvblBhbmVsQ2xpZW50PiYmKTsKKworcHJpdmF0ZToKKyAgICBXZWJBdXRoZW50aWNhdGlvblBh
bmVsKGNvbnN0IFN0cmluZyYgcnBJZCk7CisKKyAgICBXVEY6OlN0cmluZyBtX3JwSWQ7CisgICAg
VW5pcXVlUmVmPFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ+IG1fY2xpZW50OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgQVBJCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJBdXRoZW50aWNh
dGlvblBhbmVsQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWI2YTljN2E2Mzk2YTdmODg2MjRhZDk0YmFh
YTE5ZmE4NGQ5MWQ4YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmgKQEAgLTAsMCArMSw0NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworbmFt
ZXNwYWNlIFdlYktpdCB7CitlbnVtIGNsYXNzIFdlYkF1dGhlbnRpY2F0aW9uUmVzdWx0IDogYm9v
bDsKK30KKworbmFtZXNwYWNlIEFQSSB7CisKK2NsYXNzIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxD
bGllbnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHZpcnR1
YWwgfldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0
dWFsIHZvaWQgZGlzbWlzc1BhbmVsKFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25SZXN1bHQpIGNv
bnN0IHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgQVBJCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
X0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggMmY1
ZjgwYzA3OTU1MzNkY2RkNDJjN2FmOTNmYzYwYzdlZDcyM2Q5NC4uMTA0NTUyYmZiMTY3NDI3YmQ5
YWI3OWYzNjk4YzczN2ViMmI2YTcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwCkBAIC0xMTYsNyArMTE2LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJh
aXRzPFdLUGFnZVBvbGljeUNsaWVudEJhc2U+IHsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IENs
aWVudFRyYWl0czxXS1BhZ2VVSUNsaWVudEJhc2U+IHsKLSAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8
V0tQYWdlVUlDbGllbnRWMCwgV0tQYWdlVUlDbGllbnRWMSwgV0tQYWdlVUlDbGllbnRWMiwgV0tQ
YWdlVUlDbGllbnRWMywgV0tQYWdlVUlDbGllbnRWNCwgV0tQYWdlVUlDbGllbnRWNSwgV0tQYWdl
VUlDbGllbnRWNiwgV0tQYWdlVUlDbGllbnRWNywgV0tQYWdlVUlDbGllbnRWOCwgV0tQYWdlVUlD
bGllbnRWOSwgV0tQYWdlVUlDbGllbnRWMTAsIFdLUGFnZVVJQ2xpZW50VjExLCBXS1BhZ2VVSUNs
aWVudFYxMiwgV0tQYWdlVUlDbGllbnRWMTM+IFZlcnNpb25zOworICAgIHR5cGVkZWYgc3RkOjp0
dXBsZTxXS1BhZ2VVSUNsaWVudFYwLCBXS1BhZ2VVSUNsaWVudFYxLCBXS1BhZ2VVSUNsaWVudFYy
LCBXS1BhZ2VVSUNsaWVudFYzLCBXS1BhZ2VVSUNsaWVudFY0LCBXS1BhZ2VVSUNsaWVudFY1LCBX
S1BhZ2VVSUNsaWVudFY2LCBXS1BhZ2VVSUNsaWVudFY3LCBXS1BhZ2VVSUNsaWVudFY4LCBXS1Bh
Z2VVSUNsaWVudFY5LCBXS1BhZ2VVSUNsaWVudFYxMCwgV0tQYWdlVUlDbGllbnRWMTEsIFdLUGFn
ZVVJQ2xpZW50VjEyLCBXS1BhZ2VVSUNsaWVudFYxMywgV0tQYWdlVUlDbGllbnRWMTQ+IFZlcnNp
b25zOwogfTsKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpAQCAtMjA3Myw2ICsyMDczLDE4
IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBX
S1BhZ2VVSUNsaWVudEJhc2UqIHdrQ2xpZW50CiAKICAgICAgICAgICAgIG1fY2xpZW50LmhhbmRs
ZUF1dG9wbGF5RXZlbnQodG9BUEkoJnBhZ2UpLCB0b1dLQXV0b3BsYXlFdmVudChldmVudCksIHRv
V0tBdXRvcGxheUV2ZW50RmxhZ3MoZmxhZ3MpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwog
ICAgICAgICB9CisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorICAgICAgICAvLyBUaGUgY3VycmVu
dCBtZXRob2QgaXMgc3BlY2lhbGl6ZWQgZm9yIFdlYktpdFRlc3RSdW5uZXIuCisgICAgICAgIHZv
aWQgcnVuV2ViQXV0aGVudGljYXRpb25QYW5lbChXZWJQYWdlUHJveHkmLCBBUEk6OldlYkF1dGhl
bnRpY2F0aW9uUGFuZWwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYktpdDo6V2ViQXV0aGVu
dGljYXRpb25QYW5lbFJlc3VsdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCisgICAgICAg
IHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQucnVuV2ViQXV0aGVudGljYXRpb25QYW5lbCkg
eworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdlYktpdDo6V2ViQXV0aGVudGlj
YXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUpOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdlYktpdDo6V2Vi
QXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6UHJlc2VudGVkKTsKKyAgICAgICAgfQorI2VuZGlm
CiAgICAgfTsKIAogICAgIHRvSW1wbChwYWdlUmVmKS0+c2V0VUlDbGllbnQobWFrZVVuaXF1ZTxV
SUNsaWVudD4od2tDbGllbnQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VVSUNsaWVudC5oCmluZGV4IGQyNmVlOTIzN2M5M2RkMGQwNjQ2MmE2MjE5YWNkMzUzNzZm
Y2FlZTcuLjFkMmZlYmZiYTg4MzM5MTJmNzIyMTZhYTUzYzhjMjAwOTBlZTJkOGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaApAQCAtMTM2LDYg
KzEzNiw4IEBAIHR5cGVkZWYgdm9pZCAoKldLRGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGlt
aXRXaGlsZUluRm9yZWdyb3VuZENhbGxiYWNrKShXS1BhCiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VE
aWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2VDYWxsYmFjaykoV0tQ
YWdlUmVmIHBhZ2UsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7
CiB0eXBlZGVmIGJvb2wgKCpXS1BhZ2VTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1NlY3VyaXR5T3JpZ2luUmVmIHNl
Y3VyaXR5T3JpZ2luLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIAordHlwZWRlZiB2b2lkICgq
V0tQYWdlUnVuV2ViQXV0aGVudGljYXRpb25QYW5lbENhbGxiYWNrKSgpOworCiAvLyBEZXByZWNh
dGVkCiB0eXBlZGVmIFdLUGFnZVJlZiAoKldLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXBy
ZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1
cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNl
QnV0dG9uLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAgICAgICgqV0tQ
YWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYw
KShXS1BhZ2VSZWYgcGFnZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLVHlwZVJlZiB1
c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CkBAIC0xMjQ1LDYgKzEyNDcsMTEzIEBA
IHR5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjEzIHsKICAgICBXS1BhZ2VTaG91bGRBbGxv
d0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ2FsbGJhY2sgICAgICAgICAgIHNob3Vs
ZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3M7CiB9IFdLUGFnZVVJQ2xpZW50
VjEzOwogCit0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudFYxNCB7CisgICAgV0tQYWdlVUlD
bGllbnRCYXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBiYXNlOworCisgICAgLy8gVmVyc2lvbiAwLgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxs
YmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFn
ZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1BhZ2U7CisgICAg
V0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjbG9zZTsKKyAgICBXS1BhZ2VUYWtlRm9jdXNDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2VGb2N1czsKKyAgICBXS1BhZ2VG
b2N1c0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZvY3VzOworICAgIFdLUGFnZVVuZm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5mb2N1czsKKyAgICBXS1BhZ2VSdW5KYXZhU2Ny
aXB0QWxlcnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgIHJ1bkph
dmFTY3JpcHRBbGVydF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVJ1bkphdmFT
Y3JpcHRDb25maXJtQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgcnVu
SmF2YVNjcmlwdENvbmZpcm1fZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VSdW5K
YXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAg
IHJ1bkphdmFTY3JpcHRQcm9tcHRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VT
ZXRTdGF0dXNUZXh0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNldFN0YXR1c1RleHQ7CisgICAgV0tQYWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxs
YmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVu
dF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZU1pc3NpbmdQbHVnaW5CdXR0b25D
bGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgbWlzc2luZ1BsdWdpbkJ1
dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VEaWROb3RIYW5k
bGVLZXlFdmVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5v
dEhhbmRsZUtleUV2ZW50OworICAgIFdLUGFnZURpZE5vdEhhbmRsZVdoZWVsRXZlbnRDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTm90SGFuZGxlV2hlZWxFdmVudDsK
KyAgICBXS1BhZ2VHZXRUb29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRvb2xiYXJzQXJlVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRUb29sYmFy
c0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRv
b2xiYXJzQXJlVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRNZW51QmFySXNWaXNpYmxlQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVCYXJJc1Zpc2libGU7CisgICAg
V0tQYWdlU2V0TWVudUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZXRNZW51QmFySXNWaXNpYmxlOworICAgIFdLUGFnZUdldFN0YXR1c0Jhcklz
VmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQmFy
SXNWaXNpYmxlOworICAgIFdLUGFnZVNldFN0YXR1c0JhcklzVmlzaWJsZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdHVzQmFySXNWaXNpYmxlOworICAgIFdL
UGFnZUdldElzUmVzaXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaXNSZXNpemFibGU7CisgICAgV0tQYWdlU2V0SXNSZXNpemFibGVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc1Jlc2l6YWJsZTsKKyAg
ICBXS1BhZ2VHZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdldFdpbmRvd0ZyYW1lOworICAgIFdLUGFnZVNldFdpbmRvd0ZyYW1lQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0V2luZG93RnJh
bWU7CisgICAgV0tQYWdlUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2tfZGVwcmVj
YXRlZEZvclVzZVdpdGhWNiAgICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWNjsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZERyYXc7CisgICAgV0tQYWdlVUlDbGll
bnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YWdlRGlkU2Nyb2xsOworICAgIFdLUGFnZUV4Y2VlZGVkRGF0YWJhc2VRdW90YUNhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZWVkZWREYXRhYmFzZVF1b3RhOworICAg
IFdLUGFnZVJ1bk9wZW5QYW5lbENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcnVuT3BlblBhbmVsOworICAgIFdLUGFnZURlY2lkZVBvbGljeUZvckdlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9y
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VIZWFkZXJIZWlnaHRDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlckhlaWdo
dDsKKyAgICBXS1BhZ2VGb290ZXJIZWlnaHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZvb3RlckhlaWdodDsKKyAgICBXS1BhZ2VEcmF3SGVhZGVyQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdIZWFk
ZXI7CisgICAgV0tQYWdlRHJhd0Zvb3RlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkcmF3Rm9vdGVyOworICAgIFdLUGFnZVByaW50RnJhbWVDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRGcmFt
ZTsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJ1bk1vZGFsOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMTsgLy8g
VXNlZCB0byBiZSBkaWRDb21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUKKyAgICBXS1BhZ2VT
YXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgIHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXI7CisgICAgdm9pZCogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91
bGRJbnRlcnJ1cHRKYXZhU2NyaXB0X3VuYXZhaWxhYmxlOworCisgICAgLy8gVmVyc2lvbiAxLgor
ICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxICAg
ICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYxOworICAg
IFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQ7CisgICAgV0tQYWdlRGVjaWRlUG9s
aWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICBkZWNp
ZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VVbmF2
YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYx
IHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYxOwor
CisgICAgLy8gVmVyc2lvbiAyLgorICAgIFdLUGFnZVNob3dDb2xvclBpY2tlckNhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0NvbG9yUGlja2VyOworICAg
IFdLUGFnZUhpZGVDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaGlkZUNvbG9yUGlja2VyOworICAgIFdLUGFnZVVuYXZhaWxhYmxlUGx1Z2lu
QnV0dG9uQ2xpY2tlZENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgdW5hdmFpbGFibGVQ
bHVnaW5CdXR0b25DbGlja2VkOworCisgICAgLy8gVmVyc2lvbiAzLgorICAgIFdLUGFnZVBpbm5l
ZFN0YXRlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGlubmVkU3RhdGVEaWRDaGFuZ2U7CisKKyAgICAvLyBWZXJzaW9uIDQuCisgICAgdm9pZCogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bnVzZWQyOyAvLyBVc2VkIHRvIGJlIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91
c2VQcmVzcy4KKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDM7IC8vIFVzZWQgdG8gYmUgZGlkUmVjb2du
aXplTG9uZ01vdXNlUHJlc3MuCisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQ0OyAvLyBVc2VkIHRvIGJl
IGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MuCisgICAgV0tQYWdlSXNQ
bGF5aW5nQXVkaW9EaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpc1BsYXlpbmdBdWRpb0RpZENoYW5nZTsKKworICAgIC8vIFZlcnNpb24gNS4KKyAgICBXS1Bh
Z2VEZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAg
ICAgICAgIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdL
UGFnZURpZENsaWNrQXV0b0ZpbGxCdXR0b25DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbjsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0
QWxlcnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFY1ICAgICAgICAgICAgIHJ1bkphdmFT
Y3JpcHRBbGVydF9kZXByZWNhdGVkRm9yVXNlV2l0aFY1OworICAgIFdLUGFnZVJ1bkphdmFTY3Jp
cHRDb25maXJtQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgcnVuSmF2
YVNjcmlwdENvbmZpcm1fZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICBXS1BhZ2VSdW5KYXZh
U2NyaXB0UHJvbXB0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgIHJ1
bkphdmFTY3JpcHRQcm9tcHRfZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICBXS1BhZ2VNZWRp
YVNlc3Npb25NZXRhZGF0YURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
IG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlOworCisgICAgLy8gVmVyc2lvbiA2LgorICAg
IFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY3JlYXRlTmV3UGFnZTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRB
bGVydDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJtOworICAgIFdLUGFnZVJ1
bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcnVuSmF2YVNjcmlwdFByb21wdDsKKyAgICBXS0NoZWNrVXNlck1lZGlhUGVybWlzc2lvbkNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVXNlck1lZGlhUGVy
bWlzc2lvbkZvck9yaWdpbjsKKworICAgIC8vIFZlcnNpb24gNy4KKyAgICBXS1BhZ2VSdW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1
bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDsKKyAgICBXS0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lu
bGluZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxzY3JlZW5NYXlS
ZXR1cm5Ub0lubGluZTsKKworICAgIC8vIFZlcnNpb24gOC4KKyAgICBXS1JlcXVlc3RQb2ludGVy
TG9ja0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVl
c3RQb2ludGVyTG9jazsKKyAgICBXS0RpZExvc2VQb2ludGVyTG9ja0NhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZExvc2VQb2ludGVyTG9jazsKKworICAg
IC8vIFZlcnNpb24gOS4KKyAgICBXS0hhbmRsZUF1dG9wbGF5RXZlbnRDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUF1dG9wbGF5RXZlbnQ7CisKKyAg
ICAvLyBWZXJzaW9uIDEwLgorICAgIFdLSGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVEaWRDaGFu
Z2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1
cmVEaWRDaGFuZ2U7CisgICAgV0tEaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxl
SW5Gb3JlZ3JvdW5kQ2FsbGJhY2sgICAgICAgICBkaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VM
aW1pdFdoaWxlSW5Gb3JlZ3JvdW5kOworCisgICAgLy8gVmVyc2lvbiAxMS4KKyAgICBXS1BhZ2VE
aWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2VDYWxsYmFjayAgICAg
ICAgIGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZTsKKworICAg
IC8vIFZlcnNpb24gMTIuCisgICAgV0tQYWdlUmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZp
cm07CisKKyAgICAvLyBWZXJzaW9uIDEzLgorICAgIFdLUGFnZVNob3VsZEFsbG93RGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDYWxsYmFjayAgICAgICAgICAgc2hvdWxkQWxsb3dEZXZp
Y2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzczsKKworICAgIC8vIFZlcnNpb24gMTQuCisgICAg
V0tQYWdlUnVuV2ViQXV0aGVudGljYXRpb25QYW5lbENhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsOworfSBXS1BhZ2VVSUNsaWVudFYx
NDsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwubW0KaW5kZXggNDFiMmMwNzZjMTg1MmVlYjQ1MDI1YmI4YjcxYTMxMDU5Mjk5NzcxMi4uZjUz
NWM2MDE3MDE4OGU0M2Y4MGU0ZWM2YmZmMzc5NzZkYWMyODQ3YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWwubW0KQEAgLTI0LDI5ICsyNCw1MCBAQAogICovCiAKICNpbXBvcnQgImNvbmZpZy5o
IgorI2ltcG9ydCAiV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oIgogI2ltcG9ydCAiX1dL
V2ViQXV0aGVudGljYXRpb25QYW5lbEludGVybmFsLmgiCiAKICNpbXBvcnQgPHd0Zi9SZXRhaW5Q
dHIuaD4KIAotQGltcGxlbWVudGF0aW9uIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgIHsKLSAg
ICBSZXRhaW5QdHI8TlNTdHJpbmc+IF9yZWx5aW5nUGFydHlJRDsKK0BpbXBsZW1lbnRhdGlvbiBf
V0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIHsKKyAgICBXZWFrUHRyPFdlYktpdDo6V2ViQXV0aGVu
dGljYXRpb25QYW5lbENsaWVudD4gX2NsaWVudDsKIH0KIAotLSAoaW5zdGFuY2V0eXBlKV9pbml0
V2l0aFJlbGF5aW5nUGFydHlJRDooTlNTdHJpbmcgKilyZWxheWluZ1BhcnR5SUQKKy0gKHZvaWQp
ZGVhbGxvYwogewotICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQotICAgICAgICByZXR1
cm4gbmlsOwotICAgIF9yZWx5aW5nUGFydHlJRCA9IHJlbGF5aW5nUGFydHlJRDsKLSAgICByZXR1
cm4gc2VsZjsKKyAgICBfcGFuZWwtPn5XZWJBdXRoZW50aWNhdGlvblBhbmVsKCk7CisKKyAgICBb
c3VwZXIgZGVhbGxvY107CiB9CiAKIC0gKE5TU3RyaW5nICopcmVseWluZ1BhcnR5SUQKIHsKLSAg
ICByZXR1cm4gX3JlbHlpbmdQYXJ0eUlELmdldCgpOworICAgIHJldHVybiBfcGFuZWwtPnJwSWQo
KTsKK30KKworLSAoaWQgPF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZT4pZGVsZWdh
dGUKK3sKKyAgICBpZiAoIV9jbGllbnQpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgcmV0dXJu
IF9jbGllbnQtPmRlbGVnYXRlKCkuYXV0b3JlbGVhc2UoKTsKK30KKworLSAodm9pZClzZXREZWxl
Z2F0ZTooaWQ8X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlPilkZWxlZ2F0ZQorewor
ICAgIGF1dG8gY2xpZW50ID0gV1RGOjptYWtlVW5pcXVlUmVmPFdlYktpdDo6V2ViQXV0aGVudGlj
YXRpb25QYW5lbENsaWVudD4oc2VsZiwgZGVsZWdhdGUpOworICAgIF9jbGllbnQgPSBtYWtlV2Vh
a1B0cihjbGllbnQuZ2V0KCkpOworICAgIF9wYW5lbC0+c2V0Q2xpZW50KFdURk1vdmUoY2xpZW50
KSk7CiB9CiAKIC0gKHZvaWQpY2FuY2VsCiB7CiB9CiAKKyNwcmFnbWEgbWFyayBXS09iamVjdCBw
cm90b2NvbCBpbXBsZW1lbnRhdGlvbgorCistIChBUEk6Ok9iamVjdCYpX2FwaU9iamVjdAorewor
ICAgIHJldHVybiAqX3BhbmVsOworfQorCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbEludGVybmFsLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25Q
YW5lbEludGVybmFsLmgKaW5kZXggNDM1YTRhY2YzOWZiNDRjNDFiMjFmODQyYWM0NjM4YmE0MDRm
NmIwMC4uY2EwMjY2N2ViZWVmYzQyZGVlOGUwZDM0ODI2MzllMDI5MzI4Nzg2MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWxJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJBdXRoZW50aWNhdGlvblBhbmVsSW50ZXJuYWwuaApAQCAtMjcsOCArMjcsMTkgQEAKIAog
I2ltcG9ydCAiX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5oIgogCi1AaW50ZXJmYWNlIF9XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwgKCkKKyNpbXBvcnQgIkFQSVdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwuaCIKKyNpbXBvcnQgIldLT2JqZWN0LmgiCiAKLS0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhS
ZWxheWluZ1BhcnR5SUQ6KE5TU3RyaW5nICopcmVsYXlpbmdQYXJ0eUlEOworbmFtZXNwYWNlIFdl
YktpdCB7CiAKK3RlbXBsYXRlPD4gc3RydWN0IFdyYXBwZXJUcmFpdHM8QVBJOjpXZWJBdXRoZW50
aWNhdGlvblBhbmVsPiB7CisgICAgdXNpbmcgV3JhcHBlckNsYXNzID0gX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbDsKK307CisKK30KKworQGludGVyZmFjZSBfV0tXZWJBdXRoZW50aWNhdGlvblBh
bmVsICgpIDxXS09iamVjdD4geworQHBhY2thZ2UKKyAgICBBUEk6Ok9iamVjdFN0b3JhZ2U8QVBJ
OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsPiBfcGFuZWw7Cit9CiBAZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKaW5kZXggYmQyMGE4MTk3ZTk0ZGVhNGNjNGM4
MDMwOWM1NzY3YzIxNmFlMGE1Zi4uODFmNzhhYTBmZjgxZDY1NmQ4NDFlMjdjZWZhNzM2ZmEzMjRl
N2MxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaApAQCAt
MTU0LDYgKzE1NCw5IEBAIHByaXZhdGU6CiAKICAgICAgICAgdm9pZCBpbWFnZU9yTWVkaWFEb2N1
bWVudFNpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBmaW5hbDsKICAgICAgICAg
dm9pZCBkaWRTaG93U2FmZUJyb3dzaW5nV2FybmluZygpIGZpbmFsOworI2lmIEVOQUJMRShXRUJf
QVVUSE4pCisgICAgICAgIHZvaWQgcnVuV2ViQXV0aGVudGljYXRpb25QYW5lbChXZWJQYWdlUHJv
eHkmLCBBUEk6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQpPiYmKSBmaW5hbDsKKyNlbmRpZgogCiAgICAg
ICAgIFVJRGVsZWdhdGUmIG1fdWlEZWxlZ2F0ZTsKICAgICB9OwpAQCAtMjM0LDYgKzIzNyw5IEBA
IHByaXZhdGU6CiAjZW5kaWYKICAgICAgICAgYm9vbCB3ZWJWaWV3SGFzVmlkZW9JblBpY3R1cmVJ
blBpY3R1cmVEaWRDaGFuZ2UgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRTaG93U2FmZUJy
b3dzaW5nV2FybmluZyA6IDE7CisjaWYgRU5BQkxFKFdFQl9BVVRITikKKyAgICAgICAgYm9vbCB3
ZWJWaWV3UnVuV2ViQXV0aGVudGljYXRpb25QYW5lbEluaXRpYXRlZEJ5RnJhbWVDb21wbGV0aW9u
SGFuZGxlciA6IDE7CisjZW5kaWYKICAgICB9IG1fZGVsZWdhdGVNZXRob2RzOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggN2I2MjRhYmZh
MmY0MTEwNDBhMDZiMmIyNjdkYmJiMzJjZDgxY2QxNi4uM2VjNDJjZWYyZTY0YTdkNmEzMzNjNjdi
OGY3NmRhNmIzMzY5NjUyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLm1tCkBAIC01Miw2ICs1Miw3IEBACiAjaW1wb3J0ICJfV0tDb250ZXh0TWVudUVsZW1l
bnRJbmZvLmgiCiAjaW1wb3J0ICJfV0tGcmFtZUhhbmRsZUludGVybmFsLmgiCiAjaW1wb3J0ICJf
V0tIaXRUZXN0UmVzdWx0SW50ZXJuYWwuaCIKKyNpbXBvcnQgIl9XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWxJbnRlcm5hbC5oIgogI2ltcG9ydCA8V2ViQ29yZS9Gb250QXR0cmlidXRlcy5oPgogI2lt
cG9ydCA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0
ci5oPgpAQCAtMTcyLDYgKzE3Myw5IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQg
PFdLVUlEZWxlZ2F0ZT4gZGVsZWdhdGUpCiAgICAgCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld0hhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlID0gW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6aGFzVmlkZW9JblBpY3R1cmVJblBpY3R1
cmVEaWRDaGFuZ2U6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZFNob3dTYWZl
QnJvd3NpbmdXYXJuaW5nID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
X3dlYlZpZXdEaWRTaG93U2FmZUJyb3dzaW5nV2FybmluZzopXTsKKyNpZiBFTkFCTEUoV0VCX0FV
VEhOKQorICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSdW5XZWJBdXRoZW50aWNhdGlvblBh
bmVsSW5pdGlhdGVkQnlGcmFtZUNvbXBsZXRpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsOmlu
aXRpYXRlZEJ5RnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6KV07CisjZW5kaWYKIH0KIAogI2lmIEVO
QUJMRShDT05URVhUX01FTlVTKQpAQCAtMTI2MSw2ICsxMjY1LDQ2IEBAIHZvaWQgVUlEZWxlZ2F0
ZTo6VUlDbGllbnQ6OmRpZFNob3dTYWZlQnJvd3NpbmdXYXJuaW5nKCkKICAgICBbc3RhdGljX2Nh
c3Q8aWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+PihkZWxlZ2F0ZSkgX3dlYlZpZXdEaWRTaG93U2Fm
ZUJyb3dzaW5nV2FybmluZzptX3VpRGVsZWdhdGUubV93ZWJWaWV3XTsKIH0KIAorI2lmIEVOQUJM
RShXRUJfQVVUSE4pCisKK3N0YXRpYyBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0IHdlYkF1
dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQoX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdCBy
ZXN1bHQpCit7CisgICAgc3dpdGNoIChyZXN1bHQpIHsKKyAgICBjYXNlIF9XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxSZXN1bHRVbmF2YWlsYWJsZToKKyAgICAgICAgcmV0dXJuIFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlOworICAgIGNhc2UgX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbFJlc3VsdFByZXNlbnRlZDoKKyAgICAgICAgcmV0dXJuIFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxSZXN1bHQ6OlByZXNlbnRlZDsKKyAgICBjYXNlIF9XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWxSZXN1bHREaWROb3RQcmVzZW50OgorICAgICAgICByZXR1cm4gV2ViQXV0aGVudGljYXRp
b25QYW5lbFJlc3VsdDo6RGlkTm90UHJlc2VudDsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxh
YmxlOworfQorCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpydW5XZWJBdXRoZW50aWNhdGlv
blBhbmVsKFdlYlBhZ2VQcm94eSYsIEFQSTo6V2ViQXV0aGVudGljYXRpb25QYW5lbCYgcGFuZWws
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld1J1bldlYkF1dGhlbnRpY2F0aW9uUGFuZWxJbml0aWF0ZWRCeUZyYW1lQ29t
cGxldGlvbkhhbmRsZXIpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQXV0aGVudGlj
YXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOworICAg
IGlmICghZGVsZWdhdGUpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQXV0aGVudGlj
YXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgYXV0byBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRl
KGRlbGVnYXRlLmdldCgpLCBAc2VsZWN0b3Iod2ViVmlldzpydW5XZWJBdXRoZW50aWNhdGlvblBh
bmVsOmluaXRpYXRlZEJ5RnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6KSk7CisgICAgWyhpZCA8V0tV
SURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3
IHJ1bldlYkF1dGhlbnRpY2F0aW9uUGFuZWw6d3JhcHBlcihwYW5lbCkgaW5pdGlhdGVkQnlGcmFt
ZTpuaWwgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0g
KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAg
ICAgaWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIo
KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3Vs
dChyZXN1bHQpKTsKKyAgICB9KS5nZXQoKV07Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FV
VEhOKQorCiB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpoYXNWaWRlb0luUGljdHVyZUluUGlj
dHVyZURpZENoYW5nZShXZWJQYWdlUHJveHkqLCBib29sIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0
dXJlKQogewogICAgIGlmICghbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdI
YXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
b3JNYW5hZ2VyLmNwcAppbmRleCA5YTJiMzQ4MzY3Y2JkZDU1ODBhOTg0ZGJiN2MzNzQ0MTM0YzM2
MjJlLi4xYzQxYTNjMjg1ZWYwNzI0NWVlMWNlNTI5YTU2NTY4MWYyNDgzNTUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9y
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCkBAIC0yOCw2ICsyOCwxMCBAQAogCiAjaWYgRU5B
QkxFKFdFQl9BVVRITikKIAorI2luY2x1ZGUgIkFQSVVJQ2xpZW50LmgiCisjaW5jbHVkZSAiQVBJ
V2ViQXV0aGVudGljYXRpb25QYW5lbC5oIgorI2luY2x1ZGUgIkFQSVdlYkF1dGhlbnRpY2F0aW9u
UGFuZWxDbGllbnQuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQ
cmVmZXJlbmNlc0tleXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JUcmFuc3Bv
cnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnMuaD4KQEAgLTM2LDcgKzQwLDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKLW5hbWVzcGFjZSBBdXRoZW50aWNhdG9yTWFuYWdlckludGVybmFsIHsK
K25hbWVzcGFjZSB7CiAKIGNvbnN0IHNpemVfdCBtYXhUcmFuc3BvcnROdW1iZXIgPSAzOwogCkBA
IC0xMjMsNyArMTI3LDIxIEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NHb29nbGVMZWdhY3lBcHBJZFN1
cHBvcnRFeHRlbnNpb24oY29uc3QgT3B0aW9uYWw8QXV0aGVudGljYXRpCiAgICAgdHJhbnNwb3J0
cy5yZW1vdmUoQXV0aGVudGljYXRvclRyYW5zcG9ydDo6SW50ZXJuYWwpOwogfQogCi19IC8vIG5h
bWVzcGFjZSBBdXRoZW50aWNhdG9yTWFuYWdlckludGVybmFsCitzdGF0aWMgYm9vbCBpc0ZlYXR1
cmVFbmFibGVkKFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgU3RyaW5nJiBmZWF0dXJlS2V5KQor
eworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBwYWdl
LT5wcmVmZXJlbmNlcygpLnN0b3JlKCkuZ2V0Qm9vbFZhbHVlRm9yS2V5KGZlYXR1cmVLZXkpOwor
fQorCitzdGF0aWMgU3RyaW5nIGdldFJwSWQoY29uc3QgVmFyaWFudDxQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zLCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+JiBv
cHRpb25zKQoreworICAgIGlmIChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFB1YmxpY0tleUNyZWRl
bnRpYWxDcmVhdGlvbk9wdGlvbnM+KG9wdGlvbnMpKQorICAgICAgICByZXR1cm4gV1RGOjpnZXQ8
UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucz4ob3B0aW9ucykucnAuaWQ7CisgICAg
cmV0dXJuIFdURjo6Z2V0PFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4ob3B0aW9u
cykucnBJZDsKK30KKworfSAvLyBuYW1lc3BhY2UKIAogQXV0aGVudGljYXRvck1hbmFnZXI6OkF1
dGhlbnRpY2F0b3JNYW5hZ2VyKCkKICAgICA6IG1fcmVxdWVzdFRpbWVPdXRUaW1lcihSdW5Mb29w
OjptYWluKCksIHRoaXMsICZBdXRoZW50aWNhdG9yTWFuYWdlcjo6dGltZU91dFRpbWVyRmlyZWQp
CkBAIC0xMzIsMTAgKzE1MCw4IEBAIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpBdXRoZW50aWNhdG9y
TWFuYWdlcigpCiAKIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmhhbmRsZVJlcXVlc3QoV2Vi
QXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSYmIGRhdGEsIENhbGxiYWNrJiYgY2FsbGJhY2spCiB7
Ci0gICAgdXNpbmcgbmFtZXNwYWNlIEF1dGhlbnRpY2F0b3JNYW5hZ2VySW50ZXJuYWw7Ci0KICAg
ICBpZiAobV9wZW5kaW5nQ29tcGxldGlvbkhhbmRsZXIpIHsKLSAgICAgICAgbV9wZW5kaW5nQ29t
cGxldGlvbkhhbmRsZXIoRXhjZXB0aW9uRGF0YSB7IE5vdEFsbG93ZWRFcnJvciwgIlRoaXMgcmVx
dWVzdCBoYXMgYmVlbiBjYW5jZWxsZWQgYnkgYSBuZXcgcmVxdWVzdC4iX3MgfSk7CisgICAgICAg
IGludm9rZVBlbmRpbmdDb21wbGV0aW9uSGFuZGxlcihFeGNlcHRpb25EYXRhIHsgTm90QWxsb3dl
ZEVycm9yLCAiVGhpcyByZXF1ZXN0IGhhcyBiZWVuIGNhbmNlbGxlZCBieSBhIG5ldyByZXF1ZXN0
LiJfcyB9KTsKICAgICAgICAgbV9yZXF1ZXN0VGltZU91dFRpbWVyLnN0b3AoKTsKICAgICB9CiAg
ICAgY2xlYXJTdGF0ZSgpOwpAQCAtMTQ0LDE3ICsxNjAsOCBAQCB2b2lkIEF1dGhlbnRpY2F0b3JN
YW5hZ2VyOjpoYW5kbGVSZXF1ZXN0KFdlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEmJiBkYXRh
LCBDYQogICAgIG1fcGVuZGluZ1JlcXVlc3REYXRhID0gV1RGTW92ZShkYXRhKTsKICAgICBtX3Bl
bmRpbmdDb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY2FsbGJhY2spOwogCi0gICAgLy8gMi4g
R2V0IGF2YWlsYWJsZSB0cmFuc3BvcnRzIGFuZCBzdGFydCBkaXNjb3ZlcmluZyBhdXRoZW50aWNh
dG9ycyBvbiB0aGVtLgotICAgIFdURjo6c3dpdGNoT24obV9wZW5kaW5nUmVxdWVzdERhdGEub3B0
aW9ucywgWyZdKGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmIG9wdGlv
bnMpIHsKLSAgICAgICAgaW5pdFRpbWVPdXRUaW1lcihvcHRpb25zLnRpbWVvdXQpOwotCi0gICAg
ICAgIGF1dG8gdHJhbnNwb3J0cyA9IGNvbGxlY3RUcmFuc3BvcnRzKG9wdGlvbnMuYXV0aGVudGlj
YXRvclNlbGVjdGlvbik7Ci0gICAgICAgIHByb2Nlc3NHb29nbGVMZWdhY3lBcHBJZFN1cHBvcnRF
eHRlbnNpb24ob3B0aW9ucy5leHRlbnNpb25zLCB0cmFuc3BvcnRzKTsKLSAgICAgICAgc3RhcnRE
aXNjb3ZlcnkoV1RGTW92ZSh0cmFuc3BvcnRzKSk7Ci0gICAgfSwgWyZdKGNvbnN0ICBQdWJsaWNL
ZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmIG9wdGlvbnMpIHsKLSAgICAgICAgaW5pdFRpbWVP
dXRUaW1lcihvcHRpb25zLnRpbWVvdXQpOwotICAgICAgICBzdGFydERpc2NvdmVyeShjb2xsZWN0
VHJhbnNwb3J0cyhvcHRpb25zLmFsbG93Q3JlZGVudGlhbHMpKTsKLSAgICB9KTsKKyAgICAvLyAy
LiBBc2sgY2xpZW50cyB0byBzaG93IGFwcHJvcHJpYXRlIFVJIGlmIGFueSBhbmQgdGhlbiBzdGFy
dCB0aGUgcmVxdWVzdC4KKyAgICBydW5QYW5lbCgpOwogfQogCiB2b2lkIEF1dGhlbnRpY2F0b3JN
YW5hZ2VyOjpjbGVhclN0YXRlQXN5bmMoKQpAQCAtMTk1LDcgKzIwMiw3IEBAIHZvaWQgQXV0aGVu
dGljYXRvck1hbmFnZXI6OnJlc3BvbmRSZWNlaXZlZChSZXNwb25kJiYgcmVzcG9uZCkKICAgICBp
ZiAoIXNob3VsZENvbXBsZXRlKQogICAgICAgICBzaG91bGRDb21wbGV0ZSA9IFdURjo6Z2V0PEV4
Y2VwdGlvbkRhdGE+KHJlc3BvbmQpLmNvZGUgPT0gSW52YWxpZFN0YXRlRXJyb3I7CiAgICAgaWYg
KHNob3VsZENvbXBsZXRlKSB7Ci0gICAgICAgIG1fcGVuZGluZ0NvbXBsZXRpb25IYW5kbGVyKFdU
Rk1vdmUocmVzcG9uZCkpOworICAgICAgICBpbnZva2VQZW5kaW5nQ29tcGxldGlvbkhhbmRsZXIo
V1RGTW92ZShyZXNwb25kKSk7CiAgICAgICAgIGNsZWFyU3RhdGVBc3luYygpOwogICAgICAgICBt
X3JlcXVlc3RUaW1lT3V0VGltZXIuc3RvcCgpOwogICAgICAgICByZXR1cm47CkBAIC0yMjUsMTEg
KzIzMiwxMiBAQCB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpyZXNwb25kUmVjZWl2ZWRJbnRl
cm5hbChSZXNwb25kJiYpCiAKIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OnN0YXJ0RGlzY292
ZXJ5KGNvbnN0IFRyYW5zcG9ydFNldCYgdHJhbnNwb3J0cykKIHsKLSAgICB1c2luZyBuYW1lc3Bh
Y2UgQXV0aGVudGljYXRvck1hbmFnZXJJbnRlcm5hbDsKLQotICAgIEFTU0VSVChtX3NlcnZpY2Vz
LmlzRW1wdHkoKSAmJiB0cmFuc3BvcnRzLnNpemUoKSA8PSBtYXhUcmFuc3BvcnROdW1iZXIgJiYg
bV9wZW5kaW5nUmVxdWVzdERhdGEucHJlZmVyZW5jZXMpOworICAgIEFTU0VSVChtX3NlcnZpY2Vz
LmlzRW1wdHkoKSAmJiB0cmFuc3BvcnRzLnNpemUoKSA8PSBtYXhUcmFuc3BvcnROdW1iZXIpOwog
ICAgIGZvciAoYXV0byYgdHJhbnNwb3J0IDogdHJhbnNwb3J0cykgewotICAgICAgICBpZiAodHJh
bnNwb3J0ID09IEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6OkludGVybmFsICYmICFtX3BlbmRpbmdS
ZXF1ZXN0RGF0YS5wcmVmZXJlbmNlcy0+c3RvcmUoKS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJl
ZmVyZW5jZXNLZXk6OndlYkF1dGhlbnRpY2F0aW9uTG9jYWxBdXRoZW50aWNhdG9yRW5hYmxlZEtl
eSgpKSkKKyAgICAgICAgaWYgKHRyYW5zcG9ydCA9PSBBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpJ
bnRlcm5hbCAmJiAhaXNGZWF0dXJlRW5hYmxlZChtX3BlbmRpbmdSZXF1ZXN0RGF0YS5wYWdlLmdl
dCgpLCBXZWJQcmVmZXJlbmNlc0tleTo6d2ViQXV0aGVudGljYXRpb25Mb2NhbEF1dGhlbnRpY2F0
b3JFbmFibGVkS2V5KCkpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIC8vIE9ubHkg
YWxsb3cgVVNCIGF1dGhlbnRpY2F0b3JzIHdoZW4gY2xpZW50cyBkb24ndCBoYXZlIGRlZGljYXRl
ZCBVSS4KKyAgICAgICAgaWYgKHRyYW5zcG9ydCAhPSBBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpV
c2IgJiYgKG1fcGVuZGluZ1JlcXVlc3REYXRhLnBhbmVsUmVzdWx0ID09IFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICBhdXRvIHNlcnZpY2UgPSBjcmVhdGVTZXJ2aWNlKHRyYW5zcG9ydCwgKnRoaXMpOwogICAg
ICAgICBzZXJ2aWNlLT5zdGFydERpc2NvdmVyeSgpOwpAQCAtMjM5LDggKzI0Nyw2IEBAIHZvaWQg
QXV0aGVudGljYXRvck1hbmFnZXI6OnN0YXJ0RGlzY292ZXJ5KGNvbnN0IFRyYW5zcG9ydFNldCYg
dHJhbnNwb3J0cykKIAogdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6aW5pdFRpbWVPdXRUaW1l
cihjb25zdCBPcHRpb25hbDx1bnNpZ25lZD4mIHRpbWVPdXRJbk1zKQogewotICAgIHVzaW5nIG5h
bWVzcGFjZSBBdXRoZW50aWNhdG9yTWFuYWdlckludGVybmFsOwotCiAgICAgdW5zaWduZWQgdGlt
ZU91dEluTXNWYWx1ZSA9IHN0ZDo6bWluKG1heFRpbWVPdXRWYWx1ZSwgdGltZU91dEluTXMudmFs
dWVPcihtYXhUaW1lT3V0VmFsdWUpKTsKICAgICBtX3JlcXVlc3RUaW1lT3V0VGltZXIuc3RhcnRP
bmVTaG90KFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHModGltZU91dEluTXNWYWx1ZSkpOwogfQpA
QCAtMjQ4LDEwICsyNTQsNTcgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6aW5pdFRpbWVP
dXRUaW1lcihjb25zdCBPcHRpb25hbDx1bnNpZ25lZD4mIHRpbWVPdXRJbk0KIHZvaWQgQXV0aGVu
dGljYXRvck1hbmFnZXI6OnRpbWVPdXRUaW1lckZpcmVkKCkKIHsKICAgICBBU1NFUlQobV9yZXF1
ZXN0VGltZU91dFRpbWVyLmlzQWN0aXZlKCkpOwotICAgIG1fcGVuZGluZ0NvbXBsZXRpb25IYW5k
bGVyKChFeGNlcHRpb25EYXRhIHsgTm90QWxsb3dlZEVycm9yLCAiT3BlcmF0aW9uIHRpbWVkIG91
dC4iX3MgfSkpOworICAgIGludm9rZVBlbmRpbmdDb21wbGV0aW9uSGFuZGxlcigoRXhjZXB0aW9u
RGF0YSB7IE5vdEFsbG93ZWRFcnJvciwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIl9zIH0pKTsKICAg
ICBjbGVhclN0YXRlKCk7CiB9CiAKK3ZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OnJ1blBhbmVs
KCkKK3sKKyAgICBhdXRvKiBwYWdlID0gbV9wZW5kaW5nUmVxdWVzdERhdGEucGFnZS5nZXQoKTsK
KyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGVuZGluZ1JlcXVlc3RE
YXRhLnBhbmVsID0gQVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsOjpjcmVhdGUoZ2V0UnBJZCht
X3BlbmRpbmdSZXF1ZXN0RGF0YS5vcHRpb25zKSk7CisgICAgYXV0byYgcGFuZWwgPSAqbV9wZW5k
aW5nUmVxdWVzdERhdGEucGFuZWw7CisgICAgcGFnZS0+dWlDbGllbnQoKS5ydW5XZWJBdXRoZW50
aWNhdGlvblBhbmVsKCpwYWdlLCBwYW5lbCwgW3dlYWtQYW5lbCA9IG1ha2VXZWFrUHRyKHBhbmVs
KSwgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdIChXZWJBdXRoZW50aWNhdGlv
blBhbmVsUmVzdWx0IHJlc3VsdCkgeworICAgICAgICAvLyBUaGUgcGFuZWwgYWRkcmVzcyBpcyB1
c2VkIHRvIGRldGVybWluZSBpZiB0aGUgY3VycmVudCBwZW5kaW5nIHJlcXVlc3QgaXMgc3RpbGwg
dGhlIHNhbWUuCisgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtQYW5lbAorICAgICAgICAg
ICAgfHwgKHJlc3VsdCA9PSBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpEaWROb3RQcmVz
ZW50KQorICAgICAgICAgICAgfHwgKHdlYWtQYW5lbC5nZXQoKSAhPSBtX3BlbmRpbmdSZXF1ZXN0
RGF0YS5wYW5lbC5nZXQoKSkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fcGVuZGlu
Z1JlcXVlc3REYXRhLnBhbmVsUmVzdWx0ID0gcmVzdWx0OworICAgICAgICBzdGFydFJlcXVlc3Qo
KTsKKyAgICB9KTsKK30KKwordm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6c3RhcnRSZXF1ZXN0
KCkKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgIC8vIEdldCBhdmFpbGFi
bGUgdHJhbnNwb3J0cyBhbmQgc3RhcnQgZGlzY292ZXJpbmcgYXV0aGVudGljYXRvcnMgb24gdGhl
bS4KKyAgICBXVEY6OnN3aXRjaE9uKG1fcGVuZGluZ1JlcXVlc3REYXRhLm9wdGlvbnMsIFsmXShj
b25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiBvcHRpb25zKSB7CisgICAg
ICAgIGluaXRUaW1lT3V0VGltZXIob3B0aW9ucy50aW1lb3V0KTsKKworICAgICAgICBhdXRvIHRy
YW5zcG9ydHMgPSBjb2xsZWN0VHJhbnNwb3J0cyhvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rp
b24pOworICAgICAgICBwcm9jZXNzR29vZ2xlTGVnYWN5QXBwSWRTdXBwb3J0RXh0ZW5zaW9uKG9w
dGlvbnMuZXh0ZW5zaW9ucywgdHJhbnNwb3J0cyk7CisgICAgICAgIHN0YXJ0RGlzY292ZXJ5KGNv
bGxlY3RUcmFuc3BvcnRzKG9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlvbikpOworICAgIH0s
IFsmXShjb25zdCAgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiBvcHRpb25zKSB7
CisgICAgICAgIGluaXRUaW1lT3V0VGltZXIob3B0aW9ucy50aW1lb3V0KTsKKyAgICAgICAgc3Rh
cnREaXNjb3ZlcnkoY29sbGVjdFRyYW5zcG9ydHMob3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzKSk7
CisgICAgfSk7Cit9CisKK3ZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6Omludm9rZVBlbmRpbmdD
b21wbGV0aW9uSGFuZGxlcihSZXNwb25kJiYgcmVzcG9uZCkKK3sKKyAgICBpZiAoYXV0byAqcGFu
ZWwgPSBtX3BlbmRpbmdSZXF1ZXN0RGF0YS5wYW5lbC5nZXQoKSkgeworICAgICAgICBXVEY6OnN3
aXRjaE9uKHJlc3BvbmQsIFsmXShjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsRGF0
YSYpIHsKKyAgICAgICAgICAgIHBhbmVsLT5jbGllbnQoKS5kaXNtaXNzUGFuZWwoV2ViQXV0aGVu
dGljYXRpb25SZXN1bHQ6OlN1Y2NlZWRlZCk7CisgICAgICAgIH0sIFsmXShjb25zdCAgV2ViQ29y
ZTo6RXhjZXB0aW9uRGF0YSYpIHsKKyAgICAgICAgICAgIHBhbmVsLT5jbGllbnQoKS5kaXNtaXNz
UGFuZWwoV2ViQXV0aGVudGljYXRpb25SZXN1bHQ6OkZhaWxlZCk7CisgICAgICAgIH0pOworICAg
IH0KKyAgICBtX3BlbmRpbmdDb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3BvbmQpKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRvck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgKaW5kZXggMDcyMDdkNzcwNWIyNzA4N2M1MWEw
ZGE4NGY0NWZmOTBhZjhlZDcyMy4uZDM3NjZhZDE0Nzk3MzE0MTVlZGU0ODJmOWU5YzJmZTAwOGQz
YTI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRvck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oCkBAIC01OSwxMCArNTksMTAg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc01vY2soKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgQ2FsbGJhY2smIHBlbmRpbmdDb21wbGV0aW9uSGFuZGxl
cigpIHsgcmV0dXJuIG1fcGVuZGluZ0NvbXBsZXRpb25IYW5kbGVyOyB9CiAgICAgUnVuTG9vcDo6
VGltZXI8QXV0aGVudGljYXRvck1hbmFnZXI+JiByZXF1ZXN0VGltZU91dFRpbWVyKCkgeyByZXR1
cm4gbV9yZXF1ZXN0VGltZU91dFRpbWVyOyB9CiAgICAgdm9pZCBjbGVhclN0YXRlQXN5bmMoKTsg
Ly8gVG8gdm9pZCBjeWNsaWMgZGVwZW5kZW5jZS4KICAgICB2b2lkIGNsZWFyU3RhdGUoKTsKKyAg
ICB2b2lkIGludm9rZVBlbmRpbmdDb21wbGV0aW9uSGFuZGxlcihSZXNwb25kJiYpOwogCiBwcml2
YXRlOgogICAgIC8vIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlOjpPYnNlcnZlcgpAQCAt
ODAsMTAgKzgwLDEyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydERpc2NvdmVyeShjb25zdCBU
cmFuc3BvcnRTZXQmKTsKICAgICB2b2lkIGluaXRUaW1lT3V0VGltZXIoY29uc3QgT3B0aW9uYWw8
dW5zaWduZWQ+JiB0aW1lT3V0SW5Ncyk7CiAgICAgdm9pZCB0aW1lT3V0VGltZXJGaXJlZCgpOwor
ICAgIHZvaWQgcnVuUGFuZWwoKTsKKyAgICB2b2lkIHN0YXJ0UmVxdWVzdCgpOwogCiAgICAgLy8g
UmVxdWVzdDogV2Ugb25seSBhbGxvdyBvbmUgcmVxdWVzdCBwZXIgdGltZS4gQSBuZXcgcmVxdWVz
dCB3aWxsIGNhbmNlbCBhbnkgcGVuZGluZyBvbmVzLgogICAgIFdlYkF1dGhlbnRpY2F0aW9uUmVx
dWVzdERhdGEgbV9wZW5kaW5nUmVxdWVzdERhdGE7Ci0gICAgQ2FsbGJhY2sgbV9wZW5kaW5nQ29t
cGxldGlvbkhhbmRsZXI7CisgICAgQ2FsbGJhY2sgbV9wZW5kaW5nQ29tcGxldGlvbkhhbmRsZXI7
IC8vIFNob3VsZCBiZSBpbnZva2VkIGRpcmVjdGx5LCB1c2UgaW52b2tlUGVuZGluZ0NvbXBsZXRp
b25IYW5kbGVyLgogICAgIFJ1bkxvb3A6OlRpbWVyPEF1dGhlbnRpY2F0b3JNYW5hZ2VyPiBtX3Jl
cXVlc3RUaW1lT3V0VGltZXI7CiAKICAgICBWZWN0b3I8VW5pcXVlUmVmPEF1dGhlbnRpY2F0b3JU
cmFuc3BvcnRTZXJ2aWNlPj4gbV9zZXJ2aWNlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY0Nvbm5lY3Rpb24ubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNDb25uZWN0aW9u
Lm1tCmluZGV4IDk3MjM3Zjc4YmY1NGUxMjFlOTU1MzdiNWVhZjc1YWE2N2UyN2VjMTIuLjMyNDZl
ZTc0OTc2ZTlhODBmZTZhM2Q0NDY3ZTVjN2Y1MDEwMWZhNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY0Nvbm5lY3Rpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZj
Q29ubmVjdGlvbi5tbQpAQCAtNTEsOCArNTEsNiBAQCBOZmNDb25uZWN0aW9uOjpOZmNDb25uZWN0
aW9uKFJldGFpblB0cjxORlJlYWRlclNlc3Npb24+JiYgc2Vzc2lvbiwgTmZjU2VydmljZSYgcwog
ICAgICwgbV9zZXJ2aWNlKG1ha2VXZWFrUHRyKHNlcnZpY2UpKQogewogICAgIFttX3Nlc3Npb24g
c2V0RGVsZWdhdGU6bV9kZWxlZ2F0ZS5nZXQoKV07Ci0gICAgLy8gRklYTUUoMjAwOTMzKQotICAg
IFttX3Nlc3Npb24gdXBkYXRlVUlBbGVydE1lc3NhZ2U6QCJJbnNlcnQgeW91ciBzZWN1cml0eSBr
ZXkgb3IgaG9sZCB0aGUga2V5IGFnYWluc3QgdGhlIHRvcCBvZiB5b3VyIGRldmljZS4iXTsKICAg
ICBbbV9zZXNzaW9uIHN0YXJ0UG9sbGluZ107CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY1NlcnZpY2UubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNTZXJ2aWNlLm1t
CmluZGV4IDMzYjYwOGU3MGZkMjNmNjFlZDUxNzU3NGUxOTFiYTcwMDZmNTYzODMuLjc1MmQ3ODhk
M2I1MjM2OWQwNDkwOGIwNjg2MzE0NDI1YWVmMjRlNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY1NlcnZpY2UubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZjU2Vydmlj
ZS5tbQpAQCAtOTEsNyArOTEsNyBAQCB2b2lkIE5mY1NlcnZpY2U6OnBsYXRmb3JtU3RhcnREaXNj
b3ZlcnkoKQogICAgICAgICAgICAgbV9kcml2ZXIgPSBXVEY6Om1ha2VVbmlxdWU8Q3RhcE5mY0Ry
aXZlcj4obWFrZVVuaXF1ZVJlZjxOZmNDb25uZWN0aW9uPihXVEZNb3ZlKHNlc3Npb24pLCAqdGhp
cykpOwogICAgICAgICB9KTsKICAgICB9KTsKLSAgICBbW2dldE5GSGFyZHdhcmVNYW5hZ2VyQ2xh
c3MoKSBzaGFyZWRIYXJkd2FyZU1hbmFnZXJdIHN0YXJ0UmVhZGVyU2Vzc2lvbldpdGhBY3Rpb25T
aGVldFVJOmNhbGxiYWNrLmdldCgpXTsKKyAgICBbW2dldE5GSGFyZHdhcmVNYW5hZ2VyQ2xhc3Mo
KSBzaGFyZWRIYXJkd2FyZU1hbmFnZXJdIHN0YXJ0UmVhZGVyU2Vzc2lvbjpjYWxsYmFjay5nZXQo
KV07CiAjZW5kaWYgLy8gSEFWRShORUFSX0ZJRUxEKQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdGlv
blBhbmVsQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9Db2NvYS9XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzljODU1
ODVlM2M5MTJlZDQyOTQzOWM0NDM1MzI4ODgyYzdjMjM3YgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxDbGllbnQuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCisjaW1wb3J0ICJXS0ZvdW5kYXRpb24u
aCIKKworI2ltcG9ydCAiQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oIgorI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CisjaW1wb3J0
IDx3dGYvV2Vha1B0ci5oPgorCitAY2xhc3MgX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbDsKK0Bw
cm90b2NvbCBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGU7CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50IDogcHVibGljIEFQ
STo6V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudCwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ+IHsKK3B1YmxpYzoKKyAgICBXZWJBdXRoZW50aWNh
dGlvblBhbmVsQ2xpZW50KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgKiwgaWQgPF9XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZT4pOworCisgICAgUmV0YWluUHRyPGlkIDxfV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGU+ID4gZGVsZWdhdGUoKTsKKworcHJpdmF0ZToKKyAg
ICAvLyBBUEk6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQKKyAgICB2b2lkIGRpc21pc3NQ
YW5lbChXZWJBdXRoZW50aWNhdGlvblJlc3VsdCkgY29uc3QgZmluYWw7CisKKyAgICBfV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsICptX3BhbmVsOworICAgIFdlYWtPYmpDUHRyPGlkIDxfV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGU+ID4gbV9kZWxlZ2F0ZTsKKworICAgIHN0cnVjdCB7
CisgICAgICAgIGJvb2wgcGFuZWxEaXNtaXNzV2ViQXV0aGVudGljYXRpb25QYW5lbFdpdGhSZXN1
bHQgOiAxOworICAgIH0gbV9kZWxlZ2F0ZU1ldGhvZHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdGlv
blBhbmVsQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQ29jb2EvV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMTg0
ZTU4MTBkYmUwZjllNzdlYTAzZWM3MjNjZTc1Yjk1Njc4YzA0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVu
dGljYXRpb25QYW5lbENsaWVudC5tbQpAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lmgi
CisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCisjaW1wb3J0ICJXZWJBdXRoZW50aWNhdGlvblBh
bmVsRmxhZ3MuaCIKKyNpbXBvcnQgIl9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaCIKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ6OldlYkF1dGhl
bnRpY2F0aW9uUGFuZWxDbGllbnQoX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqcGFuZWwsIGlk
IDxfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGU+IGRlbGVnYXRlKQorICAgIDogbV9w
YW5lbChwYW5lbCkKKyAgICAsIG1fZGVsZWdhdGUoZGVsZWdhdGUpCit7CisgICAgbV9kZWxlZ2F0
ZU1ldGhvZHMucGFuZWxEaXNtaXNzV2ViQXV0aGVudGljYXRpb25QYW5lbFdpdGhSZXN1bHQgPSBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihwYW5lbDpkaXNtaXNzV2ViQXV0
aGVudGljYXRpb25QYW5lbFdpdGhSZXN1bHQ6KV07Cit9CisKK1JldGFpblB0cjxpZCA8X1dLV2Vi
QXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlPiA+IFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGll
bnQ6OmRlbGVnYXRlKCkKK3sKKyAgICByZXR1cm4gbV9kZWxlZ2F0ZS5nZXQoKTsKK30KKworc3Rh
dGljIF9XS1dlYkF1dGhlbnRpY2F0aW9uUmVzdWx0IHdrV2ViQXV0aGVudGljYXRpb25SZXN1bHQo
V2ViQXV0aGVudGljYXRpb25SZXN1bHQgcmVzdWx0KQoreworICAgIHN3aXRjaCAocmVzdWx0KSB7
CisgICAgY2FzZSBXZWJBdXRoZW50aWNhdGlvblJlc3VsdDo6U3VjY2VlZGVkOgorICAgICAgICBy
ZXR1cm4gX1dLV2ViQXV0aGVudGljYXRpb25SZXN1bHRTdWNjZWVkZWQ7CisgICAgY2FzZSBXZWJB
dXRoZW50aWNhdGlvblJlc3VsdDo6RmFpbGVkOgorICAgICAgICByZXR1cm4gX1dLV2ViQXV0aGVu
dGljYXRpb25SZXN1bHRGYWlsZWQ7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIHJldHVybiBfV0tXZWJBdXRoZW50aWNhdGlvblJlc3VsdEZhaWxlZDsKK30KKwordm9pZCBX
ZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50OjpkaXNtaXNzUGFuZWwoV2ViQXV0aGVudGljYXRp
b25SZXN1bHQgcmVzdWx0KSBjb25zdAoreworICAgIGlmICghbV9kZWxlZ2F0ZU1ldGhvZHMucGFu
ZWxEaXNtaXNzV2ViQXV0aGVudGljYXRpb25QYW5lbFdpdGhSZXN1bHQpCisgICAgICAgIHJldHVy
bjsKKworICAgIGF1dG8gZGVsZWdhdGUgPSBtX2RlbGVnYXRlLmdldCgpOworICAgIGlmICghZGVs
ZWdhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIFtkZWxlZ2F0ZSBwYW5lbDptX3BhbmVsIGRp
c21pc3NXZWJBdXRoZW50aWNhdGlvblBhbmVsV2l0aFJlc3VsdDp3a1dlYkF1dGhlbnRpY2F0aW9u
UmVzdWx0KHJlc3VsdCldOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tBdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tBdXRoZW50aWNh
dG9yTWFuYWdlci5jcHAKaW5kZXggNGRiMjc2MDk3NTQ2MDdiZTlkNzdmZTVkYTEzMDc5MmE3YmEw
NzQ2Yy4uMDg0YzliZTIzZmIwYWJkOTU2M2RmOTFmYzY2NmUxMWYxMzUxMDZjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrQXV0
aGVudGljYXRvck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL01vY2svTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcApAQCAtNDUsNyAr
NDUsNyBAQCB2b2lkIE1vY2tBdXRoZW50aWNhdG9yTWFuYWdlcjo6cmVzcG9uZFJlY2VpdmVkSW50
ZXJuYWwoUmVzcG9uZCYmIHJlc3BvbmQpCiAgICAgaWYgKG1fdGVzdENvbmZpZ3VyYXRpb24uc2ls
ZW50RmFpbHVyZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGVuZGluZ0NvbXBsZXRpb25IYW5k
bGVyKCkoV1RGTW92ZShyZXNwb25kKSk7CisgICAgaW52b2tlUGVuZGluZ0NvbXBsZXRpb25IYW5k
bGVyKFdURk1vdmUocmVzcG9uZCkpOwogICAgIGNsZWFyU3RhdGVBc3luYygpOwogICAgIHJlcXVl
c3RUaW1lT3V0VGltZXIoKS5zdG9wKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblBhbmVsRmxhZ3MuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWxGbGFncy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkMTQ2YjIwZjE2YWNmNGVhMWUxYmQ4NWY2YjQ1
NTQ3MTkxMmRhZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblBhbmVsRmxhZ3MuaApAQCAtMCwwICsx
LDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhO
KQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBjbGFzcyBXZWJBdXRoZW50aWNhdGlvblBh
bmVsUmVzdWx0IDogdWludDhfdCB7CisgICAgVW5hdmFpbGFibGUsCisgICAgUHJlc2VudGVkLAor
ICAgIERpZE5vdFByZXNlbnQKK307CisKK2VudW0gY2xhc3MgV2ViQXV0aGVudGljYXRpb25SZXN1
bHQgOiBib29sIHsKKyAgICBTdWNjZWVkZWQsCisgICAgRmFpbGVkCit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlv
blJlcXVlc3REYXRhLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9XZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmgKaW5kZXggNjZlYmI3YzI1YmNiMmI3MDEw
ZWU5ZDI4ZGFlYmE0YWZmNzNmOWJhNy4uNGJiNTQ4NWU1ZWFhOGMwMDVmOWZjMGQzMzk2Yjc1NzE0
YTQwYzQyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEu
aApAQCAtMjcsMTggKzI3LDI0IEBACiAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogCi0jaW5jbHVk
ZSAiV2ViUHJlZmVyZW5jZXMuaCIKKyNpbmNsdWRlICJBUElXZWJBdXRoZW50aWNhdGlvblBhbmVs
LmgiCisjaW5jbHVkZSAiV2ViQXV0aGVudGljYXRpb25QYW5lbEZsYWdzLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaD4KICNpbmNsdWRlIDx3
dGYvVmFyaWFudC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViUGFnZVByb3h5OworCiBz
dHJ1Y3QgV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSB7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+
IGhhc2g7CiAgICAgVmFyaWFudDxXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25P
cHRpb25zLCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+IG9wdGlv
bnM7Ci0gICAgUmVmUHRyPFdlYlByZWZlcmVuY2VzPiBwcmVmZXJlbmNlczsKKyAgICBXZWFrUHRy
PFdlYlBhZ2VQcm94eT4gcGFnZTsKKyAgICBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0IHBh
bmVsUmVzdWx0IHsgV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUgfTsK
KyAgICBSZWZQdHI8QVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsPiBwYW5lbDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDg3ZTI4YTE2ZTJmMGI3ZDhlODlhMGYyY2EyOGE3
MDU1NDI3NWZmMjcuLjRmY2Q4Y2Q4ZGJjNDg4NjI1MmY1OTViZGZmZDUxY2RlM2RiNzU3NzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1
dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5j
cHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0b3JNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiTG9jYWxTZXJ2aWNlLmgiCisjaW5jbHVkZSAiV2ViQXV0aGVudGljYXRpb25Q
YW5lbEZsYWdzLmgiCiAjaW5jbHVkZSAiV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCkBAIC01NSwxMiArNTYsMTIgQEAgV2ViQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6On5XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQ
cm94eSgpCiAKIHZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6Om1ha2VDcmVk
ZW50aWFsKHVpbnQ2NF90IG1lc3NhZ2VJZCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBj
b25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiBvcHRpb25z
KQogewotICAgIGhhbmRsZVJlcXVlc3QobWVzc2FnZUlkLCB7IGhhc2gsIG9wdGlvbnMsIG1fd2Vi
UGFnZVByb3h5LnByZWZlcmVuY2VzKCkuY29weSgpIH0pOworICAgIGhhbmRsZVJlcXVlc3QobWVz
c2FnZUlkLCB7IGhhc2gsIG9wdGlvbnMsIG1ha2VXZWFrUHRyKG1fd2ViUGFnZVByb3h5KSwgV2Vi
QXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIgfSk7CiB9CiAK
IHZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6OmdldEFzc2VydGlvbih1aW50
NjRfdCBtZXNzYWdlSWQsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgV2ViQ29y
ZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiBvcHRpb25zKQogewotICAgIGhh
bmRsZVJlcXVlc3QobWVzc2FnZUlkLCB7IGhhc2gsIG9wdGlvbnMsIG1fd2ViUGFnZVByb3h5LnBy
ZWZlcmVuY2VzKCkuY29weSgpIH0pOworICAgIGhhbmRsZVJlcXVlc3QobWVzc2FnZUlkLCB7IGhh
c2gsIG9wdGlvbnMsIG1ha2VXZWFrUHRyKG1fd2ViUGFnZVByb3h5KSwgV2ViQXV0aGVudGljYXRp
b25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIgfSk7CiB9CiAKIHZvaWQgV2ViQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6OmhhbmRsZVJlcXVlc3QodWludDY0X3QgbWVzc2Fn
ZUlkLCBXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhJiYgZGF0YSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGViZjZmMDdiMDY1MmZm
MjgzMmNmYTM0OWFjNmQzY2JmODkxYzM4MWUuLmRhYWExN2ViNmJjYjI2NjQ4NjQ0ODQ1NWNhNjFl
YmI0ZTJkYzhkN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTA0OCw2ICsxMDQ4LDggQEAKIAkJNTc1OTdFQkQyMTgxODQ5MDAwMzdG
OTI0IC8qIEN0YXBBdXRoZW50aWNhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1NzU5N0VCQjIxODE4NDhGMDAzN0Y5MjQgLyogQ3RhcEF1dGhlbnRp
Y2F0b3IuaCAqLzsgfTsKIAkJNTc2Q0E5RDcyMkI4NjIxODAwMzAxNDNDIC8qIFNPQXV0aG9yaXph
dGlvbk5TVVJMRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1N0ZEMzE3MzIyQjM1MTQ4MDA4RDBFOEIgLyogU09BdXRob3JpemF0aW9uTlNVUkxF
eHRyYXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk1NzcyRjIwNjIxN0RCRDZBMDA1NkJGMkMgLyogSGlkU2VydmljZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc3MkYyMDQyMTdEQkQ2QTAwNTZCRjJD
IC8qIEhpZFNlcnZpY2UuaCAqLzsgfTsKKwkJNTc3RkY3ODIyMzQ2RTgxQzAwNEVERkI5IC8qIEFQ
SVdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3N0ZGNzgxMjM0NkU4MUMwMDRFREZCOSAvKiBBUElXZWJB
dXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmggKi87IH07CisJCTU3N0ZGNzg1MjM0NkVDQUEwMDRF
REZCOSAvKiBXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzdGRjc4MzIzNDZFQ0FBMDA0RURGQjkgLyog
V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oICovOyB9OwogCQk1NzhEQzI5ODIxNTVBMDAy
MDA3NEU4MTUgLyogTG9jYWxBdXRoZW50aWNhdGlvblNvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzhEQzI5NzIxNTVBMDAxMDA3NEU4MTUg
LyogTG9jYWxBdXRoZW50aWNhdGlvblNvZnRMaW5rLmggKi87IH07CiAJCTU3QUM4RjUwMjE3RkVF
RDkwMDU1NDM4QyAvKiBIaWRDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1N0FDOEY0RTIxN0ZFRUQ5MDA1NTQzOEMgLyogSGlkQ29ubmVj
dGlvbi5oICovOyB9OwogCQk1N0I0QjQ2MDIwQjUwNEFDMDBENEFENzkgLyogQ2xpZW50Q2VydGlm
aWNhdGVBdXRoZW50aWNhdGlvblhQQ0NvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdCNEI0NUUyMEI1MDRBQjAwRDRBRDc5IC8qIENsaWVu
dENlcnRpZmljYXRlQXV0aGVudGljYXRpb25YUENDb25zdGFudHMuaCAqLzsgfTsKQEAgLTEwNTcs
NiArMTA1OSw3IEBACiAJCTU3QjgyNjQ4MjMwNTBDNTEwMEI3MkVCMCAvKiBGaWRvU2VydmljZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdCODI2NDYy
MzA1MEM1MTAwQjcyRUIwIC8qIEZpZG9TZXJ2aWNlLmggKi87IH07CiAJCTU3QjgyNjRDMjMwNjAz
QzEwMEI3MkVCMCAvKiBNb2NrTmZjU2VydmljZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTdCODI2NEEyMzA2MDNDMTAwQjcyRUIwIC8qIE1vY2tOZmNT
ZXJ2aWNlLmggKi87IH07CiAJCTU3QkJFQTZEMjJCQzBCRkUwMDI3Mzk5NSAvKiBTT0F1dGhvcml6
YXRpb25Mb2FkUG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1N0JCRUE2QzIyQkMwQkZFMDAyNzM5OTUgLyogU09BdXRob3JpemF0aW9uTG9hZFBv
bGljeS5oICovOyB9OworCQk1N0M2MjQ0QjIzNDY3OUE0MDAzODNGRTcgLyogV2ViQXV0aGVudGlj
YXRpb25QYW5lbEZsYWdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1N0M2MjQ0QTIzNDY3OUE0MDAzODNGRTcgLyogV2ViQXV0aGVudGljYXRpb25QYW5l
bEZsYWdzLmggKi87IH07CiAJCTU3RENFRDZFMjE0MkVFNUUwMDE2Qjg0NyAvKiBXZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdEQ0VENkIyMTQyRUFFMjAwMTZCODQ3IC8qIFdl
YkF1dGhlbnRpY2F0b3JDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTU3
RENFRDZGMjE0MkVFNjMwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JNZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdE
Q0VENkEyMTQyRUFFMjAwMTZCODQ3IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvck1lc3Nh
Z2VzLmggKi87IH07CiAJCTU3RENFRDcwMjE0MkVFNjgwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0RDRUQ2QzIxNDJFQUY5MDAxNkI4NDcgLyog
V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9
OwpAQCAtMTA3NSw2ICsxMDc4LDcgQEAKIAkJNTdEQ0VEQzcyMTRGMTgzMDAwMTZCODQ3IC8qIE1v
Y2tMb2NhbENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDU3RENFREM1MjE0RjE4MzAwMDE2Qjg0NyAvKiBNb2NrTG9jYWxDb25uZWN0aW9u
LmggKi87IH07CiAJCTU3RENFRENCMjE0RjRFNDIwMDE2Qjg0NyAvKiBNb2NrQXV0aGVudGljYXRv
ck1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU3RENFREM5MjE0RjRFNDIwMDE2Qjg0NyAvKiBNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuaCAq
LzsgfTsKIAkJNTdFQjJFM0EyMUUxOTgzRTAwQjg5Q0RGIC8qIFUyZkF1dGhlbnRpY2F0b3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RUIyRTM4MjFF
MTk4M0UwMEI4OUNERiAvKiBVMmZBdXRoZW50aWNhdG9yLmggKi87IH07CisJCTU3RUJFMjZBMjM0
Njc2QzUwMDhEOEFGOSAvKiBBUElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0VCRTI2ODIzNDY3NkM1MDA4RDhB
RjkgLyogQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5oICovOyB9OwogCQk1N0ZEMzE4MDIyQjM1
MTU4MDA4RDBFOEIgLyogTmF2aWdhdGlvblNPQXV0aG9yaXphdGlvblNlc3Npb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RkQzMTc4MjJCMzUxNDkw
MDhEMEU4QiAvKiBOYXZpZ2F0aW9uU09BdXRob3JpemF0aW9uU2Vzc2lvbi5oICovOyB9OwogCQk1
N0ZEMzE4MTIyQjM1MTVCMDA4RDBFOEIgLyogUG9wVXBTT0F1dGhvcml6YXRpb25TZXNzaW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0ZEMzE3MDIy
QjM1MTQ4MDA4RDBFOEIgLyogUG9wVXBTT0F1dGhvcml6YXRpb25TZXNzaW9uLmggKi87IH07CiAJ
CTU3RkQzMTgyMjJCMzUxNUUwMDhEMEU4QiAvKiBSZWRpcmVjdFNPQXV0aG9yaXphdGlvblNlc3Np
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RkQz
MTc0MjJCMzUxNDkwMDhEMEU4QiAvKiBSZWRpcmVjdFNPQXV0aG9yaXphdGlvblNlc3Npb24uaCAq
LzsgfTsKQEAgLTM1MjUsNiArMzUyOSw5IEBACiAJCTU3NjA4Mjk5MjAyQkRBRTIwMDExNjY3OCAv
KiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJB
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTc3MkYyMDQyMTdEQkQ2QTAwNTZCRjJDIC8qIEhpZFNlcnZpY2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSGlkU2VydmljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1NzcyRjIwNTIxN0RCRDZBMDA1NkJGMkMgLyogSGlkU2VydmljZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IEhpZFNlcnZpY2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3
N0ZGNzgxMjM0NkU4MUMwMDRFREZCOSAvKiBBUElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc3RkY3ODMyMzQ2RUNBQTAwNEVERkI5IC8qIFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aGVudGlj
YXRpb25QYW5lbENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzdGRjc4
NDIzNDZFQ0FBMDA0RURGQjkgLyogV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3OERDMjk3MjE1NUEwMDEwMDc0RTgxNSAvKiBMb2Nh
bEF1dGhlbnRpY2F0aW9uU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxBdXRoZW50aWNh
dGlvblNvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3QUM4RjRFMjE3
RkVFRDkwMDU1NDM4QyAvKiBIaWRDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhpZENvbm5l
Y3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdBQzhGNEYyMTdGRUVEOTAw
NTU0MzhDIC8qIEhpZENvbm5lY3Rpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBIaWRDb25u
ZWN0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzUzOCw2ICszNTQ1LDcg
QEAKIAkJNTdCODI2NEEyMzA2MDNDMTAwQjcyRUIwIC8qIE1vY2tOZmNTZXJ2aWNlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1vY2tOZmNTZXJ2aWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU3QjgyNjRCMjMwNjAzQzEwMEI3MkVCMCAvKiBNb2NrTmZjU2VydmljZS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IE1vY2tOZmNTZXJ2aWNlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1N0JCRUE2QzIyQkMwQkZFMDAyNzM5OTUgLyogU09BdXRob3JpemF0aW9uTG9hZFBvbGlj
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3QzYyNDRBMjM0Njc5QTQwMDM4M0ZFNyAvKiBXZWJBdXRo
ZW50aWNhdGlvblBhbmVsRmxhZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aGVudGljYXRpb25Q
YW5lbEZsYWdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RENFRDZBMjE0MkVB
RTIwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JNZXNzYWdlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JN
ZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3JNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwogCQk1N0RDRUQ2QjIxNDJFQUUyMDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGgg
PSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvck1lc3Nh
Z2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTU3
RENFRDZDMjE0MkVBRjkwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBh
dGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKQEAgLTM1NjUsNiArMzU3Myw4IEBACiAJCTU3RENFRENEMjE0RjUxNjgwMDE2Qjg0NyAvKiBN
b2NrQXV0aGVudGljYXRvck1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTdFQjJFMzgyMUUxOTgzRTAwQjg5Q0RGIC8qIFUyZkF1dGhlbnRpY2F0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVTJmQXV0aGVudGljYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1N0VCMkUzOTIxRTE5ODNFMDBCODlDREYgLyogVTJmQXV0aGVudGljYXRvci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVMmZBdXRoZW50aWNhdG9yLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTdFQkUyNjgyMzQ2NzZDNTAwOEQ4QUY5IC8qIEFQSVdlYkF1dGhl
bnRpY2F0aW9uUGFuZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJV2ViQXV0aGVudGljYXRpb25QYW5l
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0VCRTI2OTIzNDY3NkM1MDA4RDhB
RjkgLyogQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBB
UElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTdGRDMxNzAyMkIzNTE0ODAwOEQwRThCIC8qIFBvcFVwU09BdXRob3JpemF0aW9uU2Vzc2lv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3BVcFNPQXV0aG9yaXphdGlv
blNlc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGRDMxNzEyMkIzNTE0
ODAwOEQwRThCIC8qIFdLU09BdXRob3JpemF0aW9uRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tTT0F1dGhvcml6YXRpb25EZWxlZ2F0ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1N0ZEMzE3MjIyQjM1MTQ4MDA4RDBFOEIgLyogU09BdXRob3Jp
emF0aW9uQ29vcmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU09B
dXRob3JpemF0aW9uQ29vcmRpbmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTcwNjgsNiArNzA3OCw3IEBACiAJCQkJNTdEQ0VEODQyMTQ3MzYzQTAwMTZCODQ3IC8qIEF1dGhl
bnRpY2F0b3JNYW5hZ2VyLmggKi8sCiAJCQkJNTdEQ0VEOTkyMTQ4OUY0RDAwMTZCODQ3IC8qIEF1
dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlLmNwcCAqLywKIAkJCQk1N0RDRUQ4QTIxNDg1MzEz
MDAxNkI4NDcgLyogQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2UuaCAqLywKKwkJCQk1N0M2
MjQ0QTIzNDY3OUE0MDAzODNGRTcgLyogV2ViQXV0aGVudGljYXRpb25QYW5lbEZsYWdzLmggKi8s
CiAJCQkJNTdEQ0VEQTYyMTQ5RjlEQTAwMTZCODQ3IC8qIFdlYkF1dGhlbnRpY2F0aW9uUmVxdWVz
dERhdGEuaCAqLywKIAkJCQk1NzYwODI5NjIwMkJEOEJBMDAxMTY2NzggLyogV2ViQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yUHJveHkuY3BwICovLAogCQkJCTU3NjA4Mjk1MjAyQkQ4QkEwMDExNjY3
OCAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5oICovLApAQCAtNzEwOSw2ICs3
MTIwLDggQEAKIAkJCQk1NzBEQUFDMTIzMDM3MzAzMDBFOEZDMDQgLyogTmZjQ29ubmVjdGlvbi5t
bSAqLywKIAkJCQk1NzBEQUFBQzIzMDI2RjVDMDBFOEZDMDQgLyogTmZjU2VydmljZS5oICovLAog
CQkJCTU3MERBQUFEMjMwMjZGNUMwMEU4RkMwNCAvKiBOZmNTZXJ2aWNlLm1tICovLAorCQkJCTU3
N0ZGNzgzMjM0NkVDQUEwMDRFREZCOSAvKiBXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lmgg
Ki8sCisJCQkJNTc3RkY3ODQyMzQ2RUNBQTAwNEVERkI5IC8qIFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxDbGllbnQubW0gKi8sCiAJCQkJNTcwREFBQzQyMzAzN0Y3RTAwRThGQzA0IC8qIFdLTkZSZWFk
ZXJTZXNzaW9uRGVsZWdhdGUuaCAqLywKIAkJCQk1NzBEQUFDNTIzMDM3RjdFMDBFOEZDMDQgLyog
V0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZS5tbSAqLywKIAkJCSk7CkBAIC03OTg1LDYgKzc5OTgs
OSBAQAogCQkJCTdDODlEMjkyMUE2NzEyMkYwMDNBNUZERSAvKiBBUElVc2VyU2NyaXB0LmggKi8s
CiAJCQkJMkQ4Nzg2MjExQkRCNThGRjAwRDAyQUJCIC8qIEFQSVVzZXJTdHlsZVNoZWV0LmNwcCAq
LywKIAkJCQkyRDg3ODYyMjFCREI1OEZGMDBEMDJBQkIgLyogQVBJVXNlclN0eWxlU2hlZXQuaCAq
LywKKwkJCQk1N0VCRTI2OTIzNDY3NkM1MDA4RDhBRjkgLyogQVBJV2ViQXV0aGVudGljYXRpb25Q
YW5lbC5jcHAgKi8sCisJCQkJNTdFQkUyNjgyMzQ2NzZDNTAwOEQ4QUY5IC8qIEFQSVdlYkF1dGhl
bnRpY2F0aW9uUGFuZWwuaCAqLywKKwkJCQk1NzdGRjc4MTIzNDZFODFDMDA0RURGQjkgLyogQVBJ
V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oICovLAogCQkJCTFBRTI4NjgxMUM3RjkzODYw
MDY5QUM0RiAvKiBBUElXZWJzaXRlRGF0YVJlY29yZC5jcHAgKi8sCiAJCQkJMUFFMjg2ODIxQzdG
OTM4NjAwNjlBQzRGIC8qIEFQSVdlYnNpdGVEYXRhUmVjb3JkLmggKi8sCiAJCQkJNUM4REQzN0Qx
RkU0NTAxMTAwRjJBNTU2IC8qIEFQSVdlYnNpdGVQb2xpY2llcy5jcHAgKi8sCkBAIC05MzkxLDYg
Kzk0MDcsOCBAQAogCQkJCTJEODc4NjI0MUJEQjU4RkYwMEQwMkFCQiAvKiBBUElVc2VyU3R5bGVT
aGVldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVFMUFGRUQxNkIyMTAxNzAwNkNDMUYyIC8qIEFQ
SVdlYkFyY2hpdmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1RTFBRkVGMTZCMjEwMjkwMDZDQzFG
MiAvKiBBUElXZWJBcmNoaXZlUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3RUJFMjZB
MjM0Njc2QzUwMDhEOEFGOSAvKiBBUElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk1NzdGRjc4MjIzNDZFODFDMDA0RURGQjkgLyogQVBJV2ViQXV0aGVudGljYXRp
b25QYW5lbENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFMjg2ODQxQzdGOTM4NjAwNjlB
QzRGIC8qIEFQSVdlYnNpdGVEYXRhUmVjb3JkLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTY1NjNF
NTFCN0E4QzUwMDA5Q0Y3ODcgLyogQVBJV2luZG93RmVhdHVyZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUY0OEQyQTg1MjE1ODNBN0UwMEM2NzUyQiAvKiBBcHBLaXRTUEkuaCBpbiBIZWFkZXJzICov
LApAQCAtOTgyOSw2ICs5ODQ3LDggQEAKIAkJCQkxQUY0Q0VGMDE4QkM0ODE4MDBCQzJEMzQgLyog
VmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEU3RDNE
MThDMTUxNDkwMDVBNzAyQSAvKiBWaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlck1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDRURBMTJFMzE1MkNEMUIzMDBEOUUwOEQgLyogV2ViQWx0ZXJu
YXRpdmVUZXh0Q2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk1NzdGRjc4NTIzNDZFQ0FBMDA0
RURGQjkgLyogV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNTdDNjI0NEIyMzQ2NzlBNDAwMzgzRkU3IC8qIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxGbGFn
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdEQ0VEQjIyMTRDNjA0QzAwMTZCODQ3IC8qIFdlYkF1
dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RENFRDZGMjE0
MkVFNjMwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTdEQ0VEQjMyMTRDNjA1MzAwMTZCODQ3IC8qIFdlYkF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvclByb3h5LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwMGU4Y2YzNmM1YWMwODQ5OGVjNmU4
YzBkYzQ2NTgwYzAzN2ZhYzlmLi4yMzExYTFmMThlMGZiZDQ3NDBhMmVjZTJlMTQ3YmJlMzU0OTVm
MDcyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTktMTAtMDMgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxl
LmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIEltcGxlbWVudCBfV0tXZWJBdXRoZW50aWNhdGlv
blBhbmVsIFNQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAyNTU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NTkzMjA5ND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSB2
ZXJ5IGxpbWl0ZWQgdGVzdCBjYXNlIHRvIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwuCisgICAg
ICAgIEJ1ZyAyMDI1NjAgYW5kIEJ1ZyAyMDI1NjUgd2lsbCBmb2xsb3cgdXAgdG8gd3JpdGUgbW9y
ZSB0ZXN0cy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbTogQWRkZWQuCisgICAgICAgICgtW1Rl
c3RXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGUgcGFuZWw6ZGlzbWlzc1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxXaXRoUmVzdWx0Ol0pOgorICAgICAgICAoLVtUZXN0V2ViQXV0aGVudGljYXRp
b25QYW5lbFVJRGVsZWdhdGUgd2ViVmlldzpydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsOmluaXRp
YXRlZEJ5RnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1h
dXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpydW5XZWJBdXRo
ZW50aWNhdGlvblBhbmVsKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdl
YlZpZXdXaXRoT3B0aW9ucyk6CisKIDIwMTktMTAtMDMgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xs
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04oMjQ5NjQ5KTogVW5hYmxlIHRvIG9w
ZW4gbG9jYWwgZmlsZXMgaW4gTWluaUJyb3dzZXIgb24gbWFjT1MKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggNjY0MWY1ZjdiMGNkNGFlYTk4NDE1MmRkMzA3MzY3OGYxNTI5YmUyZC4uODhmNmQw
ODIwYzUxODEwYmJjOWM5ODRkMzY0MTQ1MDNkMmRiZmU0YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTM0NCw2ICszNDQsOCBAQAogCQk1Nzk3RkUzMzFFQjE1QUIxMDBCMkY0QTAgLyogbmF2
aWdhdGlvbi1jbGllbnQtZGVmYXVsdC1jcnlwdG8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Nzk3RkUzMjFFQjE1QTg5MDBCMkY0QTAg
LyogbmF2aWdhdGlvbi1jbGllbnQtZGVmYXVsdC1jcnlwdG8uaHRtbCAqLzsgfTsKIAkJNTdBNzk4
NTcyMjRBQjM0RTAwQTdGNkYxIC8qIFdlYkNyeXB0b01hc3RlcktleS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3QTc5ODU2MjI0QUIzNEUwMEE3RjZG
MSAvKiBXZWJDcnlwdG9NYXN0ZXJLZXkubW0gKi87IH07CiAJCTU3QzNGQTY2MUY3QzI0OEYwMDlE
NEI4MCAvKiBXZWFrUHRyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFDQjlCQzM3MUE2NzQ4MjMwMEZFNTY3OCAvKiBXZWFrUHRyLmNwcCAqLzsgfTsK
KwkJNTdDNjI0NEUyMzQ2QkNGQTAwMzgzRkU3IC8qIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0M2MjQ0
RDIzNDZCQ0ZBMDAzODNGRTcgLyogX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSAqLzsgfTsK
KwkJNTdDNjI0NTAyMzQ2QzIxRTAwMzgzRkU3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNz
ZXJ0aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTdDNjI0NEYyMzQ2QzFFQzAwMzgzRkU3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1n
ZXQtYXNzZXJ0aW9uLmh0bWwgKi87IH07CiAJCTU3RjRBQUEwMjA4RkFFRjAwMEE2OEU5RSAvKiBT
U0xLZXlHZW5lcmF0b3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1N0Y0QUE5RjIwOEZBODNEMDBBNjhFOUUgLyogU1NMS2V5R2VuZXJhdG9yLm1tICov
OyB9OwogCQk1N0Y1NkE1QzFDN0Y4Q0MxMDBGMzFEN0UgLyogSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1
c3RlZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU3RjU2QTVCMUM3RjhBNDAwMEYzMUQ3RSAvKiBJc05hdmlnYXRpb25BY3Rpb25UcnVz
dGVkLmh0bWwgKi87IH07CiAJCTVDMDE2MEMxMjFBMTMyNDYwMDc3RkEzMiAvKiBKSVRFbmFibGVk
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMwMTYw
QzAyMUExMzIzMjAwNzdGQTMyIC8qIEpJVEVuYWJsZWQubW0gKi87IH07CkBAIC0xNDM0LDYgKzE0
MzYsNyBAQAogCQkJCUNEQzhFNDk3MUJDNkYxMDgwMDU5NEZFQyAvKiB2aWRlby13aXRob3V0LWF1
ZGlvLm1wNCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkyRUJEOUQwQTIxMzQ3MzBEMDAyREE3
NTggLyogdmlkZW8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDRDU3Nzc5OTIxMUNF
MEU0MDAxQjM3MUUgLyogd2ViLWF1ZGlvLW9ubHkuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
KwkJCQk1N0M2MjQ1MDIzNDZDMjFFMDAzODNGRTcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1h
c3NlcnRpb24uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkxQzJCODE4NjFDODkyNTlE
MDBBNTUyOUYgLyogd2ViZm9udC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUxNzE0
RUI0MUNGOEM3OEMwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAtMS5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUxNzE0RUI1MUNGOEM3OEMwMDQ3MjNDNCAvKiBXZWJQ
cm9jZXNzS2lsbElEQkNsZWFudXAtMi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMTg2
MCw2ICsxODYzLDggQEAKIAkJNTc5N0ZFMzIxRUIxNUE4OTAwQjJGNEEwIC8qIG5hdmlnYXRpb24t
Y2xpZW50LWRlZmF1bHQtY3J5cHRvLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAi
bmF2aWdhdGlvbi1jbGllbnQtZGVmYXVsdC1jcnlwdG8uaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU3OThFMkFGMUNBRjVDMjgwMEM1Q0JBMCAvKiBQcm92aXNpb25hbFVSTE5v
dENoYW5nZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFByb3Zp
c2lvbmFsVVJMTm90Q2hhbmdlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0E3
OTg1NjIyNEFCMzRFMDBBN0Y2RjEgLyogV2ViQ3J5cHRvTWFzdGVyS2V5Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV2ViQ3J5cHRvTWFzdGVyS2V5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1N0M2MjQ0RDIzNDZCQ0ZBMDAzODNGRTcgLyogX1dLV2ViQXV0aGVudGljYXRpb25Q
YW5lbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3QzYyNDRGMjM0NkMxRUMwMDM4M0ZF
NyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLmh0bWwiOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0QxRDc1RTIxRENCN0E4MDA5M0U4NkEgLyog
VTJmQ29tbWFuZENvbnN0cnVjdG9yVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBVMmZDb21tYW5kQ29uc3RydWN0b3JUZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTdGMTBEOTIxQzdFN0IzODAwRUNERjMwIC8qIElzTmF2aWdhdGlvbkFj
dGlvblRydXN0ZWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJ
c05hdmlnYXRpb25BY3Rpb25UcnVzdGVkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1N0Y0QUE5RjIwOEZBODNEMDBBNjhFOUUgLyogU1NMS2V5R2VuZXJhdG9yLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gU1NMS2V5R2VuZXJhdG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjcyNSw2ICsyNzMwLDcgQEAKIAkJCQlBMTZGNjZCODFDNDBFOUUxMDBCRDREMjQg
LyogUmVzb3VyY2VzICovLAogCQkJCTVDRUFCNURGMUZBOTM3Q0IwMEE3N0ZBQSAvKiBfV0tJbnB1
dERlbGVnYXRlLm1tICovLAogCQkJCTdDRUZBOTY0MUFDMEI5RTIwMEI5MTBGRCAvKiBfV0tVc2Vy
Q29udGVudEV4dGVuc2lvblN0b3JlLm1tICovLAorCQkJCTU3QzYyNDREMjM0NkJDRkEwMDM4M0ZF
NyAvKiBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tICovLAogCQkJCTA3NDY2NDU4MjJGRjYz
MDUwMEUzNDUxQSAvKiBBY2Nlc3NpYmlsaXR5VGVzdFBsdWdpbi5tbSAqLywKIAkJCQkwNzQ2NjQ1
NzIyRkY2MkQwMDBFMzQ1MUEgLyogQWNjZXNzaWJpbGl0eVRlc3RTdXBwb3J0UHJvdG9jb2wuaCAq
LywKIAkJCQkzN0U3REQ2MzFFQTA2RkYyMDA5QjM5NkQgLyogQWRkaXRpb25hbFJlYWRBY2Nlc3NB
bGxvd2VkVVJMcy5tbSAqLywKQEAgLTMzNjQsNiArMzM3MCw3IEBACiAJCQkJRjQ0NTFDNzUxRUI4
RkQ3QzAwMjBDNURBIC8qIHR3by1wYXJhZ3JhcGgtY29udGVudGVkaXRhYmxlLmh0bWwgKi8sCiAJ
CQkJQ0Q1Nzc3OUIyMTFDRTZDRTAwMUIzNzFFIC8qIHZpZGVvLXdpdGgtYXVkaW8tYW5kLXdlYi1h
dWRpby5odG1sICovLAogCQkJCUNENTc3Nzk4MjExQ0RFOEYwMDFCMzcxRSAvKiB3ZWItYXVkaW8t
b25seS5odG1sICovLAorCQkJCTU3QzYyNDRGMjM0NkMxRUMwMDM4M0ZFNyAvKiB3ZWItYXV0aGVu
dGljYXRpb24tZ2V0LWFzc2VydGlvbi5odG1sICovLAogCQkJCTUxNzE0RUIyMUNGOEM3NjEwMDQ3
MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAtMS5odG1sICovLAogCQkJCTUxNzE0RUIz
MUNGOEM3NjEwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAtMi5odG1sICovLAog
CQkJCTUxMjBDODNCMUU2NzRFMzUwMDI1QjI1MCAvKiBXZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0
aHMuaHRtbCAqLywKQEAgLTQzODgsNiArNDM5NSw3IEBACiAJCQlmaWxlcyA9ICgKIAkJCQk1Q0VB
QjVFMTFGQTkzOUY0MDBBNzdGQUEgLyogX1dLSW5wdXREZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTdDRUZBOTY2MUFDMEI5RTIwMEI5MTBGRCAvKiBfV0tVc2VyQ29udGVudEV4dGVuc2lv
blN0b3JlLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTdDNjI0NEUyMzQ2QkNGQTAwMzgzRkU3IC8q
IF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VF
NDFBNDExQUU2MDA0NDdDNEMgLyogQWJvdXRCbGFua0xvYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0NDRTdFQjMxQTQxMUE3RTAwNDQ3QzRDIC8qIEFjY2VwdHNGaXJzdE1vdXNlLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMkUyMDVCQTQxRjUyNzc0NjAwNTk1MkREIC8qIEFjY2Vzc2liaWxpdHlU
ZXN0c0lPUy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmNlNDExYmVlMzBkMTgwMjI5YjI5Nzk1MDVmMzIzYThlODFhYWQwMjcK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KQEAgLTAsMCArMSwxMjQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKworI2lmIEVOQUJMRShX
RUJfQVVUSE4pCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0
V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaD4KKyNp
bXBvcnQgPFdlYktpdC9XS1VJRGVsZWdhdGVQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dL
RXhwZXJpbWVudGFsRmVhdHVyZS5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWwuaD4KKworc3RhdGljIGJvb2wgd2ViQXV0aGVudGljYXRpb25QYW5lbFJhbiA9IGZh
bHNlOworc3RhdGljIGJvb2wgd2ViQXV0aGVudGljYXRpb25QYW5lbERpbWlzc2VkID0gZmFsc2U7
CisKK0BpbnRlcmZhY2UgVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZSA6IE5TT2Jq
ZWN0IDxfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGU+CitAZW5kCisKK0BpbXBsZW1l
bnRhdGlvbiBUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlCisKKy0gKHZvaWQpcGFu
ZWw6KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgKilwYW5lbCBkaXNtaXNzV2ViQXV0aGVudGlj
YXRpb25QYW5lbFdpdGhSZXN1bHQ6KF9XS1dlYkF1dGhlbnRpY2F0aW9uUmVzdWx0KXJlc3VsdAor
eworICAgIEFTU0VSVF9ORShwYW5lbCwgbmlsKTsKKyAgICBFWFBFQ1RfRVEocmVzdWx0LCBfV0tX
ZWJBdXRoZW50aWNhdGlvblJlc3VsdEZhaWxlZCk7CisgICAgd2ViQXV0aGVudGljYXRpb25QYW5l
bERpbWlzc2VkID0gdHJ1ZTsKK30KKworQGVuZAorCitAaW50ZXJmYWNlIFRlc3RXZWJBdXRoZW50
aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS1VJRGVsZWdhdGVQcml2YXRlPgor
QGVuZAorCitAaW1wbGVtZW50YXRpb24gVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVn
YXRlIHsKKyAgICBSZXRhaW5QdHI8X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbD4gX3BhbmVsOwor
ICAgIFJldGFpblB0cjxUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlPiBfZGVsZWdh
dGU7Cit9CisKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBydW5XZWJBdXRo
ZW50aWNhdGlvblBhbmVsOihfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsICopcGFuZWwgaW5pdGlh
dGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAo
XikoX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdCkpY29tcGxldGlvbkhhbmRsZXIKK3sK
KyAgICB3ZWJBdXRoZW50aWNhdGlvblBhbmVsUmFuID0gdHJ1ZTsKKworICAgIF9kZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CisgICAgQVNTRVJUX05FKHBhbmVsLCBuaWwpOworICAgIF9wYW5lbCA9IHBhbmVsOworICAg
IFtfcGFuZWwgc2V0RGVsZWdhdGU6X2RlbGVnYXRlLmdldCgpXTsKKworICAgIEVYUEVDVF9XS19T
VFJFUShbX3BhbmVsIHJlbHlpbmdQYXJ0eUlEXSwgIiIpOworCisgICAgY29tcGxldGlvbkhhbmRs
ZXIoX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdFByZXNlbnRlZCk7Cit9CisKK0BlbmQK
KworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCituYW1lc3BhY2UgeworX1dLRXhwZXJpbWVu
dGFsRmVhdHVyZSAqd2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCkKK3sKKyAg
ICBzdGF0aWMgUmV0YWluUHRyPF9XS0V4cGVyaW1lbnRhbEZlYXR1cmU+IHRoZUZlYXR1cmU7Cisg
ICAgaWYgKHRoZUZlYXR1cmUpCisgICAgICAgIHJldHVybiB0aGVGZWF0dXJlLmdldCgpOworCisg
ICAgTlNBcnJheSAqZmVhdHVyZXMgPSBbV0tQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVy
ZXNdOworICAgIGZvciAoX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBmZWF0dXJl
cykgeworICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWw6QCJXZWJBdXRoZW50aWNhdGlv
bkVuYWJsZWQiXSkgeworICAgICAgICAgICAgdGhlRmVhdHVyZSA9IGZlYXR1cmU7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gdGhlRmVhdHVyZS5nZXQo
KTsKK30KK30KKworVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBCYXNpY1RpbWVvdXQpCit7
CisgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBV
UkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uIiB3aXRoRXh0
ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsK
KworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0
aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0
RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVy
aW1lbnRhbEZlYXR1cmUoKV07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZp
ZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICAvLyBPbmx5IGZvY3VzZWQg
ZG9jdW1lbnRzIGNhbiB0cmlnZ2VyIFdlYkF1dGhuLgorI2lmIFBMQVRGT1JNKE1BQykKKyAgICBb
W3dlYlZpZXcgaG9zdFdpbmRvd10gbWFrZUZpcnN0UmVzcG9uZGVyOndlYlZpZXcuZ2V0KCldOwor
I2VsaWYgUExBVEZPUk0oSU9TKQorICAgIFt3ZWJWaWV3IGJlY29tZUZpcnN0UmVzcG9uZGVyXTsK
KyNlbmRpZgorCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0
V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CisgICAgVXRpbDo6cnVuKCZ3ZWJBdXRoZW50aWNhdGlv
blBhbmVsUmFuKTsKKyAgICBVdGlsOjpydW4oJndlYkF1dGhlbnRpY2F0aW9uUGFuZWxEaW1pc3Nl
ZCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLmh0bWwgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0
aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYmY0OWE1ZmRjZjE4ZDQ3MGQ1YjMyYjc4NmMxZDBkYzVlMDZj
YjkyZQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24uaHRtbApAQCAtMCwwICsxLDEw
IEBACis8c2NyaXB0PgorICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgIHB1YmxpY0tleTog
eworICAgICAgICAgICAgY2hhbGxlbmdlOiBuZXcgVWludDhBcnJheSgxNiksCisgICAgICAgICAg
ICB0aW1lb3V0OiAxCisgICAgICAgIH0KKyAgICB9OworCisgICAgbmF2aWdhdG9yLmNyZWRlbnRp
YWxzLmdldChvcHRpb25zKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcAppbmRleCAwYmQ3NzYxYmJmYzU1MDRlZjIwNTlkOWExZjNiNDQ3NTc2MDc0
ZTBiLi45YjgwNzFkYTdmZjNmOTgwODgxMmY3NTYxN2YyMDBiYTViMmZhNTExIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMjk1LDYgKzI5NSwxMSBAQCBz
dGF0aWMgYm9vbCBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKFdL
UGFnZVJlZiwgV0tTZWN1cml0eU9yaQogICAgIHJldHVybiBUZXN0Q29udHJvbGxlcjo6c2luZ2xl
dG9uKCkuaGFuZGxlRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NSZXF1ZXN0KG9yaWdp
bik7CiB9CiAKKy8vIEEgcGxhY2Vob2xkZXIgdG8gdGVsbCBXZWJLaXQgdGhlIGNsaWVudCBpcyBX
ZWJLaXRUZXN0UnVubmVyLgorc3RhdGljIHZvaWQgcnVuV2ViQXV0aGVudGljYXRpb25QYW5lbCgp
Cit7Cit9CisKIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFn
ZVJlZiwgV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS05hdmlnYXRpb25B
Y3Rpb25SZWYgbmF2aWdhdGlvbkFjdGlvbiwgV0tXaW5kb3dGZWF0dXJlc1JlZiB3aW5kb3dGZWF0
dXJlcywgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBQbGF0Zm9ybVdlYlZpZXcqIHBh
cmVudFZpZXcgPSBzdGF0aWNfY2FzdDxQbGF0Zm9ybVdlYlZpZXcqPihjb25zdF9jYXN0PHZvaWQq
PihjbGllbnRJbmZvKSk7CkBAIC02MTcsOCArNjIyLDggQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6
Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAg
IHJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMob3B0aW9ucyk7CiAKICAgICBwbGF0
Zm9ybUNyZWF0ZVdlYlZpZXcoY29uZmlndXJhdGlvbi5nZXQoKSwgb3B0aW9ucyk7Ci0gICAgV0tQ
YWdlVUlDbGllbnRWMTMgcGFnZVVJQ2xpZW50ID0gewotICAgICAgICB7IDEzLCBtX21haW5XZWJW
aWV3LmdldCgpIH0sCisgICAgV0tQYWdlVUlDbGllbnRWMTQgcGFnZVVJQ2xpZW50ID0geworICAg
ICAgICB7IDE0LCBtX21haW5XZWJWaWV3LmdldCgpIH0sCiAgICAgICAgIDAsIC8vIGNyZWF0ZU5l
d1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMAogICAgICAgICAwLCAvLyBzaG93UGFnZQogICAg
ICAgICAwLCAvLyBjbG9zZQpAQCAtNjkwLDcgKzY5NSw4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6
OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAg
ICAgICAgMCwgLy8gZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdy
b3VuZAogICAgICAgICAwLCAvLyBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFw
cGVhcmFuY2UKICAgICAgICAgMCwgLy8gcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtCi0gICAg
ICAgIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MKKyAgICAgICAg
c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcywKKyAgICAgICAgcnVu
V2ViQXV0aGVudGljYXRpb25QYW5lbAogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50
KG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgJnBhZ2VVSUNsaWVudC5iYXNlKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>