<?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>174758</bug_id>
          
          <creation_ts>2017-07-22 20:10:55 -0700</creation_ts>
          <short_desc>[iOS WK2] Remove _WKDraggableElementInfo and fold PositionInformationTests into WKRequestActivatedElementInfo</short_desc>
          <delta_ts>2017-07-24 10:25:21 -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>WebKit2</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aestes</cc>
    
    <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>mitz</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1331416</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-07-22 20:10:55 -0700</bug_when>
    <thetext>_WKDraggableElementInfo is no longer used anywhere in WebKit, so it should be removed. However, some edge cases in PositionInformationTests that currently use _WKDraggableElementInfo are still useful tests to keep around, so fold them into the WKRequestActivatedElementInfo test suite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1331417</commentid>
    <comment_count>1</comment_count>
      <attachid>316222</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-07-22 20:45:21 -0700</bug_when>
    <thetext>Created attachment 316222
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1331418</commentid>
    <comment_count>2</comment_count>
      <attachid>316222</attachid>
    <who name="">mitz</who>
    <bug_when>2017-07-22 21:01:42 -0700</bug_when>
    <thetext>Comment on attachment 316222
Patch

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

&gt; Tools/TestWebKitAPI/cocoa/TestWKWebView.h:56
&gt; +- (_WKActivatedElementInfo *)_activatedElementAtPosition:(CGPoint)position;

Probably don’t need the underscore prefix on this method’s name. It’s like the rest of the TestWKWebView methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1331420</commentid>
    <comment_count>3</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-07-22 21:43:05 -0700</bug_when>
    <thetext>(In reply to mitz from comment #2)
&gt; Comment on attachment 316222 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=316222&amp;action=review
&gt; 
&gt; &gt; Tools/TestWebKitAPI/cocoa/TestWKWebView.h:56
&gt; &gt; +- (_WKActivatedElementInfo *)_activatedElementAtPosition:(CGPoint)position;
&gt; 
&gt; Probably don’t need the underscore prefix on this method’s name. It’s like
&gt; the rest of the TestWKWebView methods.

Good catch -- fixed. I originally had it as SPI on WKWebView, and then decided to move it into TestWebKitAPI but didn&apos;t rename it.

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1331421</commentid>
    <comment_count>4</comment_count>
      <attachid>316224</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-07-22 21:50:58 -0700</bug_when>
    <thetext>Created attachment 316224
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1331422</commentid>
    <comment_count>5</comment_count>
      <attachid>316224</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-22 22:28:37 -0700</bug_when>
    <thetext>Comment on attachment 316224
Patch for landing

Clearing flags on attachment: 316224

Committed r219768: &lt;http://trac.webkit.org/changeset/219768&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316222</attachid>
            <date>2017-07-22 20:45:21 -0700</date>
            <delta_ts>2017-07-22 21:01:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174758-20170722204520.patch</filename>
            <type>text/plain</type>
            <size>38157</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5NzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIzMWY1NjZjY2I2N2JlNGMw
ZDhkNDA4NDcwODNjNjAwOTlhYTFlNjQuLjEyMzFlNTUyYjliODIwMzJiZDAyYjFjZGU4ZDgzNjJj
MjQwMGViYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjggQEAKIDIwMTctMDctMjIgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKKyAgICAgICAgW2lPUyBXSzJdIFJlbW92
ZSBfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyBhbmQgZm9sZCBQb3NpdGlvbkluZm9ybWF0aW9uVGVz
dHMgaW50byBXS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mbworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0NzU4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gaXMg
bm8gbG9uZ2VyIHVzZWQgaW4gV2ViS2l0LCBzbyBpdCBzaG91bGQgYmUgcmVtb3ZlZC4gSG93ZXZl
ciwgc29tZSBvZiB0aGUgc2NlbmFyaW9zCisgICAgICAgIGluIFBvc2l0aW9uSW5mb3JtYXRpb25U
ZXN0cyB0aGF0IGRlcGVuZCBvbiBfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyBhcmUgc3RpbGwgdXNl
ZnVsIHRvIGV4ZXJjaXNlOiBuYW1lbHksCisgICAgICAgIHBlcmZvcm1pbmcgYm90aCBzeW5jaHJv
bm91cyBhbmQgYXN5bmNocm9ub3VzIHBvc2l0aW9uIGluZm9ybWF0aW9uIHVwZGF0ZXMgd2hpbGUg
YW4gYXN5bmMgcG9zaXRpb24gaW5mb3JtYXRpb24KKyAgICAgICAgdXBkYXRlIGlzIGluIGZsaWdo
dC4gVGhpcyBwYXRjaCByZWZhY3RvcnMgdGhlc2UgdW5pdCB0ZXN0cyBpbnRvIDIgbmV3IHVuaXQg
dGVzdHMgaW4gdGhlIGV4aXN0aW5nCisgICAgICAgIFdLUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJ
bmZvIHRlc3Qgc3VpdGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjpd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9yZXF1ZXN0RHJhZ2dhYmxlRWxlbWVu
dEF0UG9zaXRpb246Y29tcGxldGlvbkJsb2NrOl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8uaDogUmVtb3ZlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLm1tOiBSZW1vdmVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRHJhZ2dhYmxlRWxlbWVudEluZm9JbnRl
cm5hbC5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorCisyMDE3LTA3LTIyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CiAgICAgICAgIFtNYWMgV0syXSBGaXggbnVsbCBkZXJlZmVyZW5jZSBpbiBhc3luY2hyb25vdXMg
TlNUZXh0SW5wdXRDbGllbnQgbWV0aG9kcyB3aGVuIGRlYWxsb2NhdGluZyBhIFdLV2ViVmlldwog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0NzUxCiAg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzEzMjQwNT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDI0MTk1NTVhNTM4NWZlMGU5NjhmMTBh
ZTdjMzdmOTM3NThjNmFlNjUuLjg0MjFlZmI2ZTQ1OWU5NDU1MTE4YTk1ZjVmOGRhODg3NzM1MDUy
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQpAQCAtMTMyLDcgKzEzMiw2IEBACiAjaW1wb3J0ICJXS1Njcm9sbFZpZXcuaCIKICNpbXBvcnQg
IldLV2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5LmgiCiAjaW1wb3J0ICJXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCIKLSNpbXBvcnQgIl9XS0RyYWdnYWJsZUVsZW1lbnRJbmZv
SW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS1dlYlZpZXdQcmludEZvcm1hdHRlci5oIgogI2ltcG9y
dCA8VUlLaXQvVUlBcHBsaWNhdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db3JlR3JhcGhpY3NT
UEkuaD4KQEAgLTUyOTUsMTkgKzUyOTQsNiBAQCAtIChOU0RpY3Rpb25hcnkgKilfY29udGVudHNP
ZlVzZXJJbnRlcmZhY2VJdGVtOihOU1N0cmluZyAqKXVzZXJJbnRlcmZhY2VJdGVtCiB9CiAKICNp
ZiBQTEFURk9STShJT1MpCi0tIChfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAqKV9kcmFnZ2FibGVF
bGVtZW50QXRQb3NpdGlvbjooQ0dQb2ludClwb3NpdGlvbgotewotICAgIFtfY29udGVudFZpZXcg
ZW5zdXJlUG9zaXRpb25JbmZvcm1hdGlvbklzVXBUb0RhdGU6V2ViS2l0OjpJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uUmVxdWVzdChXZWJDb3JlOjpyb3VuZGVkSW50UG9pbnQocG9zaXRpb24pKV07Ci0g
ICAgcmV0dXJuIFtfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyBpbmZvV2l0aEludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uOltfY29udGVudFZpZXcgY3VycmVudFBvc2l0aW9uSW5mb3JtYXRp
b25dXTsKLX0KLQotLSAodm9pZClfcmVxdWVzdERyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOihD
R1BvaW50KXBvc2l0aW9uIGNvbXBsZXRpb25CbG9jazoodm9pZCAoXikoX1dLRHJhZ2dhYmxlRWxl
bWVudEluZm8gKikpYmxvY2sKLXsKLSAgICBbX2NvbnRlbnRWaWV3IGRvQWZ0ZXJQb3NpdGlvbklu
Zm9ybWF0aW9uVXBkYXRlOltjYXB0dXJlZEJsb2NrID0gbWFrZUJsb2NrUHRyKGJsb2NrKV0gKFdl
YktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gaW5mb3JtYXRpb24pIHsKLSAg
ICAgICAgY2FwdHVyZWRCbG9jayhbX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gaW5mb1dpdGhJbnRl
cmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjppbmZvcm1hdGlvbl0pOwotICAgIH0gZm9yUmVx
dWVzdDpXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KFdlYkNvcmU6OnJvdW5k
ZWRJbnRQb2ludChwb3NpdGlvbikpXTsKLX0KLQogLSAodm9pZClfcmVxdWVzdEFjdGl2YXRlZEVs
ZW1lbnRBdFBvc2l0aW9uOihDR1BvaW50KXBvc2l0aW9uIGNvbXBsZXRpb25CbG9jazoodm9pZCAo
XikoX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKikpYmxvY2sKIHsKICAgICBhdXRvIGluZm9SZXF1
ZXN0ID0gV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdChXZWJDb3JlOjpyb3Vu
ZGVkSW50UG9pbnQocG9zaXRpb24pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDg5OWUyN2NiYmY0OGE3NjNjNjQz
ZWUyYjYwOTg0NDhiZmQxOGNkNTcuLmM1MGZiZDRmY2IyYTRjNGUxY2FhMGRhZWU3NzM2YzQzMGIz
ZDAwN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1ByaXZhdGUuaApAQCAtODMsNyArODMsNiBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRl
Z2VyLCBfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKSB7CiAjZW5kaWYKIAogQGNsYXNzIFdLQnJvd3Np
bmdDb250ZXh0SGFuZGxlOwotQGNsYXNzIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvOwogQGNsYXNz
IF9XS0ZyYW1lSGFuZGxlOwogQGNsYXNzIF9XS0hpdFRlc3RSZXN1bHQ7CiBAY2xhc3MgX1dLSWNv
bkxvYWRpbmdEZWxlZ2F0ZTsKQEAgLTM3Nyw5ICszNzYsNiBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJ
bnRlZ2VyLCBfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKSB7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgQ0dSZWN0IF9kcmFnQ2FyZXRSZWN0IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdL
X0lPU19UQkEpKTsKIAotLSAoX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gKilfZHJhZ2dhYmxlRWxl
bWVudEF0UG9zaXRpb246KENHUG9pbnQpcG9zaXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9yZXF1ZXN0RHJhZ2dhYmxl
RWxlbWVudEF0UG9zaXRpb246KENHUG9pbnQpcG9zaXRpb24gY29tcGxldGlvbkJsb2NrOih2b2lk
ICheKShfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAqKSlibG9jayBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLQogLSAodm9pZClfcmVxdWVzdEFj
dGl2YXRlZEVsZW1lbnRBdFBvc2l0aW9uOihDR1BvaW50KXBvc2l0aW9uIGNvbXBsZXRpb25CbG9j
azoodm9pZCAoXikoX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKikpYmxvY2sgV0tfQVBJX0FWQUlM
QUJMRShpb3MoV0tfSU9TX1RCQSkpOwogCiAjZW5kaWYgLy8gVEFSR0VUX09TX0lQSE9ORQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RyYWdnYWJsZUVs
ZW1lbnRJbmZvLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRHJhZ2dh
YmxlRWxlbWVudEluZm8uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzA2ZGM4YzVi
MWZjMTk5OTAwN2I3MDdkYTg3ZDJjZWMwN2Y5NzI2Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLRHJhZ2dhYmxlRWxlbWVudEluZm8uaAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+Ci0KLSNpZiBXS19B
UElfRU5BQkxFRAotCi1OU19BU1NVTUVfTk9OTlVMTF9CRUdJTgotCi1XS19DTEFTU19BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCi1AaW50ZXJmYWNlIF9XS0Ry
YWdnYWJsZUVsZW1lbnRJbmZvIDogTlNPYmplY3QgPE5TQ29weWluZz4KLQotQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBDR1BvaW50IHBvaW50OwotCi1AcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHksIGdldHRlcj1pc0xpbmspIEJPT0wgbGluazsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSwgZ2V0dGVyPWlzQXR0YWNobWVudCkgQk9PTCBhdHRhY2htZW50OwotQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNJbWFnZSkgQk9PTCBpbWFnZTsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzU2VsZWN0ZWQpIEJPT0wg
c2VsZWN0ZWQ7Ci0KLUBlbmQKLQotTlNfQVNTVU1FX05PTk5VTExfRU5ECi0KLSNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RyYWdnYWJsZUVs
ZW1lbnRJbmZvLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RyYWdn
YWJsZUVsZW1lbnRJbmZvLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMGZmOTIx
MDdiZTYxYzFiYTljYmJiYTA5NTA0OWIyZDc2MmJmNDgxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tEcmFnZ2FibGVFbGVtZW50SW5mby5tbQorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiX1dLRHJhZ2dh
YmxlRWxlbWVudEluZm9JbnRlcm5hbC5oIgotCi0jaWYgV0tfQVBJX0VOQUJMRUQKLQotQGltcGxl
bWVudGF0aW9uIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvCi0KLSNpZiBQTEFURk9STShJT1MpCi0K
LSsgKGluc3RhbmNldHlwZSlpbmZvV2l0aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9u
Oihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilpbmZvcm1h
dGlvbgotewotICAgIHJldHVybiBbW1tzZWxmIGFsbG9jXSBpbml0V2l0aEludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uOmluZm9ybWF0aW9uXSBhdXRvcmVsZWFzZV07Ci19Ci0KLS0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOihjb25z
dCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilpbmZvcm1hdGlvbgot
ewotICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQotICAgICAgICByZXR1cm4gbmlsOwot
Ci0gICAgX3BvaW50ID0gaW5mb3JtYXRpb24ucmVxdWVzdC5wb2ludDsKLSAgICBfbGluayA9IGlu
Zm9ybWF0aW9uLmlzTGluazsKLSAgICBfYXR0YWNobWVudCA9IGluZm9ybWF0aW9uLmlzQXR0YWNo
bWVudDsKLSAgICBfaW1hZ2UgPSBpbmZvcm1hdGlvbi5pc0ltYWdlOwotI2lmIEVOQUJMRShEQVRB
X0lOVEVSQUNUSU9OKQotICAgIF9zZWxlY3RlZCA9IGluZm9ybWF0aW9uLmhhc1NlbGVjdGlvbkF0
UG9zaXRpb247Ci0jZW5kaWYKLQotICAgIHJldHVybiBzZWxmOwotfQotCi0jZW5kaWYKLQotLSAo
aW5zdGFuY2V0eXBlKWNvcHlXaXRoWm9uZTooTlNab25lICopem9uZQotewotICAgIF9XS0RyYWdn
YWJsZUVsZW1lbnRJbmZvICpjb3B5ID0gW1tfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyBhbGxvY10g
aW5pdF07Ci0KLSAgICBjb3B5LnBvaW50ID0gc2VsZi5wb2ludDsKLSAgICBjb3B5LmxpbmsgPSBz
ZWxmLmxpbms7Ci0gICAgY29weS5hdHRhY2htZW50ID0gc2VsZi5hdHRhY2htZW50OwotICAgIGNv
cHkuaW1hZ2UgPSBzZWxmLmltYWdlOwotICAgIGNvcHkuc2VsZWN0ZWQgPSBzZWxmLnNlbGVjdGVk
OwotCi0gICAgcmV0dXJuIGNvcHk7Ci19Ci0KLUBlbmQKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRHJhZ2dhYmxlRWxlbWVudEluZm9J
bnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RyYWdnYWJs
ZUVsZW1lbnRJbmZvSW50ZXJuYWwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjgw
NmNlNzY0MWU1ODBhOWU0NjMwNGNhZjFkMmQ5MWY5NzJmZDE1ZC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRHJhZ2dhYmxlRWxlbWVudEluZm9JbnRlcm5hbC5oCisrKyAvZGV2L251bGwKQEAg
LTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgIkludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uLmgiCi0jaW1wb3J0ICJfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5oIgotCi0j
aWYgV0tfQVBJX0VOQUJMRUQKLQotQGludGVyZmFjZSBfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAo
KQotCi0jaWYgVEFSR0VUX09TX0lQSE9ORQotKyAoaW5zdGFuY2V0eXBlKWluZm9XaXRoSW50ZXJh
Y3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkF0UG9zaXRpb24mKWluZm9ybWF0aW9uOwotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRo
SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rp
b25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKWluZm9ybWF0aW9uOwotI2VuZGlmCi0KLUBwcm9wZXJ0
eSAobm9uYXRvbWljKSBDR1BvaW50IHBvaW50OwotQHByb3BlcnR5IChub25hdG9taWMsIGdldHRl
cj1pc0xpbmspIEJPT0wgbGluazsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9aXNBdHRh
Y2htZW50KSBCT09MIGF0dGFjaG1lbnQ7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPWlz
SW1hZ2UpIEJPT0wgaW1hZ2U7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPWlzU2VsZWN0
ZWQpIEJPT0wgc2VsZWN0ZWQ7Ci0KLUBlbmQKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBm
NmZhNzZjMWQxYmY3NjYyYzc5MjdhM2Y3MWVmMjk0NjViZDg4ZGVhLi45NGVhMzc0NzdkYzk4OGJi
MGZlMGFjNDA0MTQzYmY1ZmZkNjJhYjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTU4LDcgKzU4LDYg
QEAKICNpbXBvcnQgIldlYlBhZ2VNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5
LmgiCiAjaW1wb3J0ICJfV0tBY3RpdmF0ZWRFbGVtZW50SW5mb0ludGVybmFsLmgiCi0jaW1wb3J0
ICJfV0tEcmFnZ2FibGVFbGVtZW50SW5mb0ludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tFbGVtZW50
QWN0aW9uLmgiCiAjaW1wb3J0ICJfV0tGb2N1c2VkRWxlbWVudEluZm8uaCIKICNpbXBvcnQgIl9X
S0Zvcm1JbnB1dFNlc3Npb24uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDNjMjAyMzZmNzM3YWYwN2UxMjA5NThkNGM5MjFjMmYwMWY5
YWZhOGIuLmRiODkwNWU4NzM4MGY2NzkxN2ZjMjY4MDJhMmQyMGEyNzg0ZWUwZDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjAxOSw5
ICsyMDE5LDYgQEAKIAkJRjQwOUJBMTgxRTZFNjRCQzAwOURBMjhFIC8qIFdLRHJhZ0Rlc3RpbmF0
aW9uQWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNDA5QkExNzFFNkU2NEIzMDA5REEyOEUgLyogV0tEcmFnRGVzdGluYXRpb25BY3Rpb24uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDRERkVC
MjFFOUU3NTJGMDAzOEQxOTYgLyogV2ViSWNvblV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0REZFQjAxRTlFNzUyRjAwMzhEMTk2IC8q
IFdlYkljb25VdGlsaXRpZXMuaCAqLzsgfTsKIAkJRjQ0REZFQjMxRTlFNzUyRjAwMzhEMTk2IC8q
IFdlYkljb25VdGlsaXRpZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNDRERkVCMTFFOUU3NTJGMDAzOEQxOTYgLyogV2ViSWNvblV0aWxpdGllcy5t
bSAqLzsgfTsKLQkJRjRFOENCOTExRUE2QUI1QjAwRTMxMTk4IC8qIF9XS0RyYWdnYWJsZUVsZW1l
bnRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NEU4Q0I4RTFFQTZBQjVCMDBFMzExOTggLyogX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlGNEU4Q0I5MjFF
QTZBQjVCMDBFMzExOTggLyogX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8ubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEU4Q0I4RjFFQTZBQjVCMDBFMzEx
OTggLyogX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8ubW0gKi87IH07Ci0JCUY0RThDQjkzMUVBNkFC
NUIwMEUzMTE5OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50SW5mb0ludGVybmFsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEU4Q0I5MDFFQTZBQjVCMDBF
MzExOTggLyogX1dLRHJhZ2dhYmxlRWxlbWVudEluZm9JbnRlcm5hbC5oICovOyB9OwogCQlGNjEx
M0UyNTEyNkNFMTgyMDA1N0QwQTcgLyogQVBJVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjExM0UyNDEyNkNFMTgy
MDA1N0QwQTcgLyogQVBJVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggKi87IH07CiAJCUY2MTEzRTI4
MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjExM0UyNjEyNkNFMTlCMDA1
N0QwQTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwICovOyB9OwogCQlGNjExM0UyOTEy
NkNFMTlCMDA1N0QwQTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2MTEzRTI3MTI2Q0UxOUIwMDU3RDBB
NyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC00MzY1LDkgKzQzNjIsNiBAQAogCQlGNDA5QkExNzFF
NkU2NEIzMDA5REEyOEUgLyogV0tEcmFnRGVzdGluYXRpb25BY3Rpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tEcmFnRGVzdGluYXRpb25BY3Rpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0REZFQjAxRTlFNzUyRjAwMzhEMTk2IC8qIFdlYkljb25V
dGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSWNvblV0aWxp
dGllcy5oOyBwYXRoID0gaW9zL1dlYkljb25VdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjQ0REZFQjExRTlFNzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJJY29uVXRpbGl0
aWVzLm1tOyBwYXRoID0gaW9zL1dlYkljb25VdGlsaXRpZXMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUY0RThDQjhFMUVBNkFCNUIwMEUzMTE5OCAvKiBfV0tEcmFnZ2FibGVFbGVt
ZW50SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tEcmFnZ2FibGVF
bGVtZW50SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGNEU4Q0I4RjFFQTZB
QjVCMDBFMzExOTggLyogX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8ubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjRFOENCOTAxRUE2QUI1QjAwRTMxMTk4IC8qIF9X
S0RyYWdnYWJsZUVsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gX1dLRHJhZ2dhYmxlRWxlbWVudEluZm9JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNjExM0UyNDEyNkNFMTgyMDA1N0QwQTcgLyogQVBJVXNlckNvbnRl
bnRVUkxQYXR0ZXJuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSVVzZXJD
b250ZW50VVJMUGF0dGVybi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjExM0Uy
NjEyNkNFMTlCMDA1N0QwQTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjExM0UyNzEyNkNFMTlCMDA1N0QwQTcg
LyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTU1NjAsOSArNTU1NCw2IEBACiAJCQkJQTFBNEZFNTgxOERDRTlGQTAwQjVFQThBIC8q
IF9XS0Rvd25sb2FkLm1tICovLAogCQkJCUExQTRGRTYwMThERDU0QTQwMEI1RUE4QSAvKiBfV0tE
b3dubG9hZERlbGVnYXRlLmggKi8sCiAJCQkJQTFBNEZFNTkxOERDRTlGQTAwQjVFQThBIC8qIF9X
S0Rvd25sb2FkSW50ZXJuYWwuaCAqLywKLQkJCQlGNEU4Q0I4RTFFQTZBQjVCMDBFMzExOTggLyog
X1dLRHJhZ2dhYmxlRWxlbWVudEluZm8uaCAqLywKLQkJCQlGNEU4Q0I4RjFFQTZBQjVCMDBFMzEx
OTggLyogX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8ubW0gKi8sCi0JCQkJRjRFOENCOTAxRUE2QUI1
QjAwRTMxMTk4IC8qIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLywKIAkJCQkz
NzlBODczODE4QkJGRTBGMDA1ODhBRjIgLyogX1dLRWxlbWVudEFjdGlvbi5oICovLAogCQkJCTM3
OUE4NzM3MThCQkZFMEYwMDU4OEFGMiAvKiBfV0tFbGVtZW50QWN0aW9uLm1tICovLAogCQkJCTM3
OUE4NzNCMThCQkZGMDcwMDU4OEFGMiAvKiBfV0tFbGVtZW50QWN0aW9uSW50ZXJuYWwuaCAqLywK
QEAgLTgxMjAsOCArODExMSw2IEBACiAJCQkJQTFBNEZFNUExOERDRTlGQTAwQjVFQThBIC8qIF9X
S0Rvd25sb2FkLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUE0RkU2MTE4REQ1NEE0MDBCNUVBOEEg
LyogX1dLRG93bmxvYWREZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFBNEZFNUMxOERD
RTlGQTAwQjVFQThBIC8qIF9XS0Rvd25sb2FkSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAotCQkJ
CUY0RThDQjkxMUVBNkFCNUIwMEUzMTE5OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJRjRFOENCOTMxRUE2QUI1QjAwRTMxMTk4IC8qIF9XS0RyYWdnYWJs
ZUVsZW1lbnRJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3OUE4NzNBMThCQkZF
MEYwMDU4OEFGMiAvKiBfV0tFbGVtZW50QWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzlB
ODczQzE4QkJGRjA3MDA1ODhBRjIgLyogX1dLRWxlbWVudEFjdGlvbkludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQUQwMUJDOTE5MDVEMzdFMDBDOUM0NUYgLyogX1dLRXJyb3JSZWNvdmVy
eUF0dGVtcHRpbmcuaCBpbiBIZWFkZXJzICovLApAQCAtOTcyOCw3ICs5NzE3LDYgQEAKIAkJCQk5
OTBEMjhCMjFDNjUyMDk0MDA5ODY5NzcgLyogX1dLQXV0b21hdGlvblNlc3Npb24ubW0gaW4gU291
cmNlcyAqLywKIAkJCQkxQTU3MDRGNzFCRTAxRkY0MDA4NzRBRjEgLyogX1dLQ29udGV4dE1lbnVF
bGVtZW50SW5mby5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExQTRGRTVCMThEQ0U5RkEwMEI1RUE4
QSAvKiBfV0tEb3dubG9hZC5tbSBpbiBTb3VyY2VzICovLAotCQkJCUY0RThDQjkyMUVBNkFCNUIw
MEUzMTE5OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTM3OUE4NzM5MThCQkZFMEYwMDU4OEFGMiAvKiBfV0tFbGVtZW50QWN0aW9uLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUFEMDFCQzgxOTA1RDM3RTAwQzlDNDVGIC8qIF9XS0Vycm9yUmVjb3ZlcnlB
dHRlbXB0aW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzE3RkU3Q0UxQzQ4N0RCODAwQTBDQTg5
IC8qIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5ZWNhNzRkMTI0MWJlYmJj
YTQ2OWQzMTVhOTRlNDBjYmE3OTllY2QwLi4yMjgxZjcxNWRiODc2NzAwOGE4ZDAxZjBmNDdlOWIz
Y2UzYjIyNTQ3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTctMDctMjIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPUyBXSzJdIFJlbW92ZSBfV0tEcmFnZ2FibGVF
bGVtZW50SW5mbyBhbmQgZm9sZCBQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMgaW50byBXS1JlcXVl
c3RBY3RpdmF0ZWRFbGVtZW50SW5mbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc0NzU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTWlncmF0ZSBwb3NpdGlvbi1pbmZvcm1hdGlvbi1yZWxhdGVkIHVuaXQg
dGVzdHMgZnJvbSB0aGUgUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzIHN1aXRlIHRvCisgICAgICAg
IFdLUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvIGFzIDIgbmV3IHVuaXQgdGVzdHMuIFNlZSBX
ZWJLaXQyIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV0tSZXF1ZXN0QWN0aXZhdGVkRWxlbWVu
dEluZm8ubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpjaGVja0VsZW1lbnRUeXBlQW5kQm91
bmRpbmdSZWN0KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvaW9zL1Bvc2l0aW9uSW5mb3JtYXRpb25UZXN0cy5tbTogUmVtb3Zl
ZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaDoKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW06CisgICAgICAgICgtW1Rl
c3RXS1dlYlZpZXcgX2FjdGl2YXRlZEVsZW1lbnRBdFBvc2l0aW9uOl0pOgorCiAyMDE3LTA3LTIy
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihy
MjA0NTY1KTogV0tPYmplY3QgaXMgYnJva2VuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGYw
NDkwMDdlYzYzNzI1ODQyY2RmYmFhMTQ0OGFjNDE5MGZkM2VmZGIuLmFiYWNiYWVjZWMxNDhhMTM5
MjE5YmJiMWFiOTgyYWViNWY4MWFhNzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02Njgs
NyArNjY4LDYgQEAKIAkJRjRENEYzQjYxRTRFMkJDQjAwQkIyNzY3IC8qIERhdGFJbnRlcmFjdGlv
blNpbXVsYXRvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0RDRGM0I0MUU0RTJCQ0IwMEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3Iu
bW0gKi87IH07CiAJCUY0RDRGM0I5MUU0RTM2RTQwMEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25U
ZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0
RDRGM0I3MUU0RTM2RTQwMEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25UZXN0cy5tbSAqLzsgfTsK
IAkJRjRENUU0RTgxRjBDNUQzODAwOEMxQTQ5IC8qIGRyYWdzdGFydC1jbGVhci1zZWxlY3Rpb24u
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNEQ1RTRFNzFGMEM1RDI3MDA4QzFBNDkgLyogZHJhZ3N0YXJ0LWNsZWFyLXNlbGVjdGlvbi5o
dG1sICovOyB9OwotCQlGNEQ3QkNEODFFQTU3ODk4MDBDNDIxRDMgLyogUG9zaXRpb25JbmZvcm1h
dGlvblRlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjREN0JDRDYxRUE1NzRERDAwQzQyMUQzIC8qIFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0cy5t
bSAqLzsgfTsKIAkJRjRERUY2RUQxRTlCNERCNjAwNDhFRjYxIC8qIGltYWdlLWluLWxpbmstYW5k
LWlucHV0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjRERUY2RUMxRTlCNEQ5NTAwNDhFRjYxIC8qIGltYWdlLWluLWxpbmstYW5kLWlu
cHV0Lmh0bWwgKi87IH07CiAJCUY0RjEzNzkyMUQ5QjY4M0UwMDJCRUM1NyAvKiBsYXJnZS12aWRl
by10ZXN0LW5vdy1wbGF5aW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjRGMTM3OTExRDlCNjgzMjAwMkJFQzU3IC8qIGxhcmdlLXZp
ZGVvLXRlc3Qtbm93LXBsYXlpbmcuaHRtbCAqLzsgfTsKIAkJRjRGNDA1QkMxRDRDMEQxQzAwN0E5
NzA3IC8qIGZ1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRGNDA1QkEx
RDRDMENGODAwN0E5NzA3IC8qIGZ1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlv
Lmh0bWwgKi87IH07CkBAIC0xNjU5LDcgKzE2NTgsNiBAQAogCQlGNEQ0RjNCNTFFNEUyQkNCMDBC
QjI3NjcgLyogRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGNEQ0RjNCNzFFNEUzNkU0MDBCQjI3NjcgLyogRGF0YUludGVyYWN0aW9u
VGVzdHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEYXRhSW50
ZXJhY3Rpb25UZXN0cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRENUU0RTcx
RjBDNUQyNzAwOEMxQTQ5IC8qIGRyYWdzdGFydC1jbGVhci1zZWxlY3Rpb24uaHRtbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0
aCA9ICJkcmFnc3RhcnQtY2xlYXItc2VsZWN0aW9uLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlGNEQ3QkNENjFFQTU3NEREMDBDNDIxRDMgLyogUG9zaXRpb25JbmZvcm1hdGlv
blRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUG9zaXRpb25JbmZvcm1hdGlvblRlc3Rz
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNERFRjZFQzFFOUI0RDk1MDA0OEVG
NjEgLyogaW1hZ2UtaW4tbGluay1hbmQtaW5wdXQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsg
cGF0aCA9ICJpbWFnZS1pbi1saW5rLWFuZC1pbnB1dC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjRGMTM3OTExRDlCNjgzMjAwMkJFQzU3IC8qIGxhcmdlLXZpZGVvLXRlc3Qt
bm93LXBsYXlpbmcuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJnZS12aWRl
by10ZXN0LW5vdy1wbGF5aW5nLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NEY0MDVCQTFENEMwQ0Y4MDA3QTk3MDcgLyogZnVsbC1zaXplLWF1dG9wbGF5aW5nLXZpZGVvLXdp
dGgtYXVkaW8uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJmdWxsLXNpemUtYXV0
b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTIwMDQsNyArMjAwMiw2IEBACiAJCQkJQTFDNEZCNkYxQkFDQ0VGQTAwMzc0MkQwIC8q
IFJlc291cmNlcyAqLywKIAkJCQlGNEQ0RjNCNzFFNEUzNkU0MDBCQjI3NjcgLyogRGF0YUludGVy
YWN0aW9uVGVzdHMubW0gKi8sCiAJCQkJNzU2MDkxNzcxOTI1OUM1OTAwOUVGMDZFIC8qIE1lbW9y
eUNhY2hlQWRkSW1hZ2VUb0NhY2hlSU9TLm1tICovLAotCQkJCUY0RDdCQ0Q2MUVBNTc0REQwMEM0
MjFEMyAvKiBQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMubW0gKi8sCiAJCQkJRjQ2ODQ5QkQxRUVG
NThFNDAwQjkzN0ZFIC8qIFVJUGFzdGVib2FyZFRlc3RzLm1tICovLAogCQkJCUY0NUI2M0ZDMUYx
OUQ0MTAwMDlEMzhCOSAvKiBBY3Rpb25TaGVldFRlc3RzLm1tICovLAogCQkJKTsKQEAgLTMxNzEs
NyArMzE2OCw2IEBACiAJCQkJN0M4M0UwNTMxRDBBNjQzQTAwRkVCQ0YzIC8qIFBlbmRpbmdBUElS
ZXF1ZXN0VVJMLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUFGMUE0MTFBMzgwMDQ0N0M0
QyAvKiBQbGF0Zm9ybVV0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjEzOUU3ODFB
NDIzQTZCMDBGNTkwRjUgLyogUGxhdGZvcm1VdGlsaXRpZXNDb2NvYS5tbSBpbiBTb3VyY2VzICov
LAotCQkJCUY0RDdCQ0Q4MUVBNTc4OTgwMEM0MjFEMyAvKiBQb3NpdGlvbkluZm9ybWF0aW9uVGVz
dHMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VBNjFBNDExQTBGMDA0NDdDNEMgLyogUGxh
dGZvcm1VdGlsaXRpZXNNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MURCMTZDRTFGMDg1MTM3
MDAxRkE0QzUgLyogV2ViVmlld0ljb25Mb2FkaW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0ND
RTdFQTcxQTQxMUExMzAwNDQ3QzRDIC8qIFBsYXRmb3JtV2ViVmlld01hYy5tbSBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
V0tSZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEluZm8ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9XS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mby5tbQppbmRleCBi
ODc4NDZkMjQxYmYxNWNjYWU1MjUyZjRkOTQzMjQ5NDkwMGFjYTA1Li44OTkzMTU3YzQxMTYyZTdh
MTgwNGFmZTYzNWFmNDM3OWFiODZiNDRlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9XS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mby5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XS1JlcXVlc3RBY3RpdmF0
ZWRFbGVtZW50SW5mby5tbQpAQCAtMzYsOCArMzYsMTggQEAKICNpZiBXS19BUElfRU5BQkxFRCAm
JiBQTEFURk9STShJT1MpCiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworc3RhdGljIHZv
aWQgY2hlY2tFbGVtZW50VHlwZUFuZEJvdW5kaW5nUmVjdChfV0tBY3RpdmF0ZWRFbGVtZW50SW5m
byAqZWxlbWVudEluZm8sIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlIGV4cGVjdGVkVHlwZSwgQ0dS
ZWN0IGV4cGVjdGVkQm91bmRpbmdSZWN0KQoreworICAgIGF1dG8gb2JzZXJ2ZWRCb3VuZGluZ1Jl
Y3QgPSBlbGVtZW50SW5mby5ib3VuZGluZ1JlY3Q7CisgICAgRVhQRUNUX0VRKENHUmVjdEdldFdp
ZHRoKGV4cGVjdGVkQm91bmRpbmdSZWN0KSwgQ0dSZWN0R2V0V2lkdGgob2JzZXJ2ZWRCb3VuZGlu
Z1JlY3QpKTsKKyAgICBFWFBFQ1RfRVEoQ0dSZWN0R2V0SGVpZ2h0KGV4cGVjdGVkQm91bmRpbmdS
ZWN0KSwgQ0dSZWN0R2V0SGVpZ2h0KG9ic2VydmVkQm91bmRpbmdSZWN0KSk7CisgICAgRVhQRUNU
X0VRKENHUmVjdEdldE1pblgoZXhwZWN0ZWRCb3VuZGluZ1JlY3QpLCBDR1JlY3RHZXRNaW5YKG9i
c2VydmVkQm91bmRpbmdSZWN0KSk7CisgICAgRVhQRUNUX0VRKENHUmVjdEdldE1pblkoZXhwZWN0
ZWRCb3VuZGluZ1JlY3QpLCBDR1JlY3RHZXRNaW5ZKG9ic2VydmVkQm91bmRpbmdSZWN0KSk7Cisg
ICAgRVhQRUNUX0VRKGV4cGVjdGVkVHlwZSwgZWxlbWVudEluZm8udHlwZSk7Cit9CiAgICAgCi1U
RVNUKFdlYktpdDIsIFJlcWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvRm9yTGluaykKK1RFU1QoV2Vi
S2l0MiwgUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvRm9yTGluaykKIHsKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1Jl
Y3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAi
PGh0bWw+PGhlYWQ+PG1ldGEgbmFtZT0ndmlld3BvcnQnIGNvbnRlbnQ9J2luaXRpYWwtc2NhbGU9
MSc+PC9oZWFkPjxib2R5IHN0eWxlID0gJ21hcmdpbjogMHB4Oyc+PGEgaHJlZj0ndGVzdFVSTC50
ZXN0JyBzdHlsZT0nZGlzcGxheTogYmxvY2s7IGhlaWdodDogMTAwJTsnIHRpdGxlPSdIaXRUZXN0
TGlua1RpdGxlJyBpZD0ndGVzdElEJz48L2E+PC9ib2R5PjwvaHRtbD4iIGJhc2VVUkw6bmlsXTsK
QEAgLTYyLDcgKzcyLDcgQEAgVEVTVChXZWJLaXQyLCBSZXFlc3RBY3RpdmF0ZWRFbGVtZW50SW5m
b0ZvckxpbmspCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7CiB9CiAg
ICAgCi1URVNUKFdlYktpdDIsIFJlcWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvRm9yQmxhbmspCitU
RVNUKFdlYktpdDIsIFJlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mb0ZvckJsYW5rKQogewogICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CiAgICAgW3dlYlZpZXcgbG9hZEhUTUxT
dHJpbmc6QCI8aHRtbD48aGVhZD48bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29udGVudD0naW5pdGlh
bC1zY2FsZT0xJz48L2hlYWQ+PGJvZHkgc3R5bGUgPSAnbWFyZ2luOiAwcHg7Jz48L2JvZHk+PC9o
dG1sPiIgYmFzZVVSTDpuaWxdOwpAQCAtODEsNiArOTEsNjIgQEAgVEVTVChXZWJLaXQyLCBSZXFl
c3RBY3RpdmF0ZWRFbGVtZW50SW5mb0ZvckJsYW5rKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZmluaXNoZWQpOwogfQogICAgIAorVEVTVChXZWJLaXQyLCBSZXF1ZXN0QWN0aXZhdGVk
RWxlbWVudEluZm9XaXRoTmVzdGVkU3luY2hyb25vdXNVcGRhdGVzKQoreworICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVj
dE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRI
VE1MU3RyaW5nOkAiPG1ldGEgbmFtZT0ndmlld3BvcnQnIGNvbnRlbnQ9J2luaXRpYWwtc2NhbGU9
MSc+PHN0eWxlPmJvZHkgeyBtYXJnaW46MCB9IGEgeyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoyMDBw
eDsgaGVpZ2h0OjIwMHB4IH08L3N0eWxlPjxhIGhyZWY9J2h0dHBzOi8vd3d3LmFwcGxlLmNvbSc+
Rk9PPC9hPiJdOworCisgICAgX19ibG9jayBib29sIGZpbmlzaGVkID0gZmFsc2U7CisgICAgW3dl
YlZpZXcgX3JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50QXRQb3NpdGlvbjpDR1BvaW50TWFrZSgxMDAs
IDEwMCkgY29tcGxldGlvbkJsb2NrOl4oX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKmVsZW1lbnRJ
bmZvKSB7CisgICAgICAgIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICpzeW5jaHJvbm91c0VsZW1l
bnRJbmZvID0gW3dlYlZpZXcgX2FjdGl2YXRlZEVsZW1lbnRBdFBvc2l0aW9uOkNHUG9pbnRNYWtl
KDMwMCwgMzAwKV07CisgICAgICAgIEVYUEVDVF9FUShfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZVVu
c3BlY2lmaWVkLCBzeW5jaHJvbm91c0VsZW1lbnRJbmZvLnR5cGUpOworICAgICAgICBjaGVja0Vs
ZW1lbnRUeXBlQW5kQm91bmRpbmdSZWN0KGVsZW1lbnRJbmZvLCBfV0tBY3RpdmF0ZWRFbGVtZW50
VHlwZUxpbmssIENHUmVjdE1ha2UoMCwgMCwgMjAwLCAyMDApKTsKKyAgICAgICAgZmluaXNoZWQg
PSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWQp
OworCisgICAgZmluaXNoZWQgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBfcmVxdWVzdEFjdGl2YXRl
ZEVsZW1lbnRBdFBvc2l0aW9uOkNHUG9pbnRNYWtlKDEwMCwgMTAwKSBjb21wbGV0aW9uQmxvY2s6
XihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqZWxlbWVudEluZm8pIHsKKyAgICAgICAgX1dLQWN0
aXZhdGVkRWxlbWVudEluZm8gKnN5bmNocm9ub3VzRWxlbWVudEluZm8gPSBbd2ViVmlldyBfYWN0
aXZhdGVkRWxlbWVudEF0UG9zaXRpb246Q0dQb2ludE1ha2UoMTAwLCAxMDApXTsKKyAgICAgICAg
Y2hlY2tFbGVtZW50VHlwZUFuZEJvdW5kaW5nUmVjdChzeW5jaHJvbm91c0VsZW1lbnRJbmZvLCBf
V0tBY3RpdmF0ZWRFbGVtZW50VHlwZUxpbmssIENHUmVjdE1ha2UoMCwgMCwgMjAwLCAyMDApKTsK
KyAgICAgICAgY2hlY2tFbGVtZW50VHlwZUFuZEJvdW5kaW5nUmVjdChlbGVtZW50SW5mbywgX1dL
QWN0aXZhdGVkRWxlbWVudFR5cGVMaW5rLCBDR1JlY3RNYWtlKDAsIDAsIDIwMCwgMjAwKSk7Cisg
ICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmZpbmlzaGVkKTsKK30KKworVEVTVChXZWJLaXQyLCBSZXF1ZXN0QWN0aXZhdGVkRWxl
bWVudEluZm9XaXRoTmVzdGVkUmVxdWVzdHMpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAz
MjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6
QCJpbWFnZS1hbmQtY29udGVudGVkaXRhYmxlIl07CisKKyAgICBfX2Jsb2NrIGJvb2wgZmluaXNo
ZWRXaXRoSW5uZXIgPSBmYWxzZTsKKyAgICBfX2Jsb2NrIGJvb2wgZmluaXNoZWRXaXRoT3V0ZXIg
PSBmYWxzZTsKKyAgICBbd2ViVmlldyBfcmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRBdFBvc2l0aW9u
OkNHUG9pbnRNYWtlKDEwMCwgNTApIGNvbXBsZXRpb25CbG9jazpeKF9XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvICpvdXRlckVsZW1lbnRJbmZvKSB7CisgICAgICAgIFt3ZWJWaWV3IF9yZXF1ZXN0QWN0
aXZhdGVkRWxlbWVudEF0UG9zaXRpb246Q0dQb2ludE1ha2UoMTAwLCA1MCkgY29tcGxldGlvbkJs
b2NrOl4oX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKmlubmVyRWxlbWVudEluZm8pIHsKKyAgICAg
ICAgICAgIGNoZWNrRWxlbWVudFR5cGVBbmRCb3VuZGluZ1JlY3QoaW5uZXJFbGVtZW50SW5mbywg
X1dLQWN0aXZhdGVkRWxlbWVudFR5cGVJbWFnZSwgQ0dSZWN0TWFrZSgwLCAwLCAyMDAsIDIwMCkp
OworICAgICAgICAgICAgZmluaXNoZWRXaXRoSW5uZXIgPSB0cnVlOworICAgICAgICB9XTsKKyAg
ICAgICAgY2hlY2tFbGVtZW50VHlwZUFuZEJvdW5kaW5nUmVjdChvdXRlckVsZW1lbnRJbmZvLCBf
V0tBY3RpdmF0ZWRFbGVtZW50VHlwZUltYWdlLCBDR1JlY3RNYWtlKDAsIDAsIDIwMCwgMjAwKSk7
CisgICAgICAgIGZpbmlzaGVkV2l0aE91dGVyID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkV2l0aE91dGVyKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmZpbmlzaGVkV2l0aElubmVyKTsKKworICAgIGZpbmlzaGVkV2l0aElubmVy
ID0gZmFsc2U7CisgICAgZmluaXNoZWRXaXRoT3V0ZXIgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBf
cmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRBdFBvc2l0aW9uOkNHUG9pbnRNYWtlKDEwMCwgNTApIGNv
bXBsZXRpb25CbG9jazpeKF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICpvdXRlckVsZW1lbnRJbmZv
KSB7CisgICAgICAgIFt3ZWJWaWV3IF9yZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEF0UG9zaXRpb246
Q0dQb2ludE1ha2UoMzAwLCAzMDApIGNvbXBsZXRpb25CbG9jazpeKF9XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvICppbm5lckVsZW1lbnRJbmZvKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoX1dLQWN0
aXZhdGVkRWxlbWVudFR5cGVVbnNwZWNpZmllZCwgaW5uZXJFbGVtZW50SW5mby50eXBlKTsKKyAg
ICAgICAgICAgIGZpbmlzaGVkV2l0aElubmVyID0gdHJ1ZTsKKyAgICAgICAgfV07CisgICAgICAg
IGNoZWNrRWxlbWVudFR5cGVBbmRCb3VuZGluZ1JlY3Qob3V0ZXJFbGVtZW50SW5mbywgX1dLQWN0
aXZhdGVkRWxlbWVudFR5cGVJbWFnZSwgQ0dSZWN0TWFrZSgwLCAwLCAyMDAsIDIwMCkpOworICAg
ICAgICBmaW5pc2hlZFdpdGhPdXRlciA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZmaW5pc2hlZFdpdGhPdXRlcik7CisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZmaW5pc2hlZFdpdGhJbm5lcik7Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9Qb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9Qb3NpdGlvbkluZm9ybWF0aW9uVGVz
dHMubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBlOWEyODZiYzNjYjhmMzc2Mzc3
MDQ0N2Y3ZjlkZGYyOTA3M2RiYWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvUG9zaXRpb25JbmZvcm1h
dGlvblRlc3RzLm1tCisrKyAvZGV2L251bGwKQEAgLTEsMTQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKLQot
I2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKLSNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIK
LSNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+Ci0jaW1wb3J0IDxXZWJLaXQvX1dL
RHJhZ2dhYmxlRWxlbWVudEluZm8uaD4KLQotQGltcGxlbWVudGF0aW9uIF9XS0RyYWdnYWJsZUVs
ZW1lbnRJbmZvIChQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMpCi0KLS0gKHZvaWQpZXhwZWN0VG9C
ZUxpbms6KEJPT0wpaXNMaW5rIGltYWdlOihCT09MKWlzSW1hZ2UgYXRQb2ludDooQ0dQb2ludClw
b2ludAotewotICAgIEVYUEVDVF9FUShpc0xpbmssIHNlbGYuaXNMaW5rKTsKLSAgICBFWFBFQ1Rf
RVEoaXNJbWFnZSwgc2VsZi5pc0ltYWdlKTsKLSAgICBFWFBFQ1RfRVEocG9pbnQueCwgc2VsZi5w
b2ludC54KTsKLSAgICBFWFBFQ1RfRVEocG9pbnQueSwgc2VsZi5wb2ludC55KTsKLX0KLQotQGVu
ZAotCi1uYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7Ci0KLVRFU1QoUG9zaXRpb25JbmZvcm1hdGlv
blRlc3RzLCBGaW5kRHJhZ2dhYmxlTGlua0F0UG9zaXRpb24pCi17Ci0gICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFr
ZSgwLCAwLCAzMjAsIDUwMCldKTsKLSAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQ
YWdlTmFtZWQ6QCJsaW5rLWFuZC1pbnB1dCJdOwotCi0gICAgX1dLRHJhZ2dhYmxlRWxlbWVudElu
Zm8gKmluZm9ybWF0aW9uID0gW3dlYlZpZXcgX2RyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOkNH
UG9pbnRNYWtlKDEwMCwgNTApXTsKLSAgICBbaW5mb3JtYXRpb24gZXhwZWN0VG9CZUxpbms6WUVT
IGltYWdlOk5PIGF0UG9pbnQ6Q0dQb2ludE1ha2UoMTAwLCA1MCldOwotfQotCi1URVNUKFBvc2l0
aW9uSW5mb3JtYXRpb25UZXN0cywgUmVxdWVzdERyYWdnYWJsZUxpbmtBdFBvc2l0aW9uKQotewot
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7Ci0gICAgW3dlYlZpZXcgc3luY2hy
b25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAibGluay1hbmQtaW5wdXQiXTsKLQotICAgIF9fYmxv
Y2sgYm9vbCBpc0RvbmUgPSBmYWxzZTsKLSAgICBbd2ViVmlldyBfcmVxdWVzdERyYWdnYWJsZUVs
ZW1lbnRBdFBvc2l0aW9uOkNHUG9pbnRNYWtlKDEwMCwgNTApIGNvbXBsZXRpb25CbG9jazpeKF9X
S0RyYWdnYWJsZUVsZW1lbnRJbmZvICppbmZvcm1hdGlvbikgewotICAgICAgICBbaW5mb3JtYXRp
b24gZXhwZWN0VG9CZUxpbms6WUVTIGltYWdlOk5PIGF0UG9pbnQ6Q0dQb2ludE1ha2UoMTAwLCA1
MCldOwotICAgICAgICBpc0RvbmUgPSB0cnVlOwotICAgIH1dOwotCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZpc0RvbmUpOwotfQotCi1URVNUKFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0
cywgRmluZERyYWdnYWJsZUxpbmtBdERpZmZlcmVudFBvc2l0aW9uV2l0aGluUmVxdWVzdEJsb2Nr
KQotewotICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7Ci0gICAgW3dlYlZpZXcg
c3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAibGluay1hbmQtaW5wdXQiXTsKLQotICAg
IF9fYmxvY2sgYm9vbCBpc0RvbmUgPSBmYWxzZTsKLSAgICBbd2ViVmlldyBfcmVxdWVzdERyYWdn
YWJsZUVsZW1lbnRBdFBvc2l0aW9uOkNHUG9pbnRNYWtlKDEwMCwgNTApIGNvbXBsZXRpb25CbG9j
azpeKF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvICppbmZvcm1hdGlvbikgewotICAgICAgICBfV0tE
cmFnZ2FibGVFbGVtZW50SW5mbyAqc3luY2hyb25vdXNJbmZvcm1hdGlvbiA9IFt3ZWJWaWV3IF9k
cmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjpDR1BvaW50TWFrZSgxMDAsIDMwMCldOwotICAgICAg
ICBbc3luY2hyb25vdXNJbmZvcm1hdGlvbiBleHBlY3RUb0JlTGluazpOTyBpbWFnZTpOTyBhdFBv
aW50OkNHUG9pbnRNYWtlKDEwMCwgMzAwKV07Ci0gICAgICAgIFtpbmZvcm1hdGlvbiBleHBlY3RU
b0JlTGluazpZRVMgaW1hZ2U6Tk8gYXRQb2ludDpDR1BvaW50TWFrZSgxMDAsIDUwKV07Ci0gICAg
ICAgIGlzRG9uZSA9IHRydWU7Ci0gICAgfV07Ci0KLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmlzRG9uZSk7Ci19Ci0KLVRFU1QoUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLCBGaW5kRHJh
Z2dhYmxlTGlua0F0U2FtZVBvc2l0aW9uV2l0aGluUmVxdWVzdEJsb2NrKQotewotICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNH
UmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7Ci0gICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxv
YWRUZXN0UGFnZU5hbWVkOkAibGluay1hbmQtaW5wdXQiXTsKLQotICAgIF9fYmxvY2sgYm9vbCBp
c0RvbmUgPSBmYWxzZTsKLSAgICBbd2ViVmlldyBfcmVxdWVzdERyYWdnYWJsZUVsZW1lbnRBdFBv
c2l0aW9uOkNHUG9pbnRNYWtlKDEwMCwgNTApIGNvbXBsZXRpb25CbG9jazpeKF9XS0RyYWdnYWJs
ZUVsZW1lbnRJbmZvICppbmZvcm1hdGlvbikgewotICAgICAgICBfV0tEcmFnZ2FibGVFbGVtZW50
SW5mbyAqc3luY2hyb25vdXNJbmZvcm1hdGlvbiA9IFt3ZWJWaWV3IF9kcmFnZ2FibGVFbGVtZW50
QXRQb3NpdGlvbjpDR1BvaW50TWFrZSgxMDAsIDUwKV07Ci0gICAgICAgIFtzeW5jaHJvbm91c0lu
Zm9ybWF0aW9uIGV4cGVjdFRvQmVMaW5rOllFUyBpbWFnZTpOTyBhdFBvaW50OkNHUG9pbnRNYWtl
KDEwMCwgNTApXTsKLSAgICAgICAgW2luZm9ybWF0aW9uIGV4cGVjdFRvQmVMaW5rOllFUyBpbWFn
ZTpOTyBhdFBvaW50OkNHUG9pbnRNYWtlKDEwMCwgNTApXTsKLSAgICAgICAgaXNEb25lID0gdHJ1
ZTsKLSAgICB9XTsKLQotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKLX0K
LQotVEVTVChQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMsIFJlcXVlc3REcmFnZ2FibGVMaW5rQXRT
YW1lUG9zaXRpb25XaXRoaW5SZXF1ZXN0QmxvY2spCi17Ci0gICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAw
LCAzMjAsIDUwMCldKTsKLSAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFt
ZWQ6QCJpbWFnZS1hbmQtY29udGVudGVkaXRhYmxlIl07Ci0KLSAgICBfX2Jsb2NrIGJvb2wgaXNE
b25lV2l0aElubmVyID0gZmFsc2U7Ci0gICAgX19ibG9jayBib29sIGlzRG9uZVdpdGhPdXRlciA9
IGZhbHNlOwotCi0gICAgW3dlYlZpZXcgX3JlcXVlc3REcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlv
bjpDR1BvaW50TWFrZSgxMDAsIDUwKSBjb21wbGV0aW9uQmxvY2s6XihfV0tEcmFnZ2FibGVFbGVt
ZW50SW5mbyAqb3V0ZXJJbmZvcm1hdGlvbikgewotICAgICAgICBbd2ViVmlldyBfcmVxdWVzdERy
YWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOkNHUG9pbnRNYWtlKDEwMCwgNTApIGNvbXBsZXRpb25C
bG9jazpeKF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvICppbm5lckluZm9ybWF0aW9uKSB7Ci0gICAg
ICAgICAgICBbaW5uZXJJbmZvcm1hdGlvbiBleHBlY3RUb0JlTGluazpOTyBpbWFnZTpZRVMgYXRQ
b2ludDpDR1BvaW50TWFrZSgxMDAsIDUwKV07Ci0gICAgICAgICAgICBpc0RvbmVXaXRoSW5uZXIg
PSB0cnVlOwotICAgICAgICB9XTsKLSAgICAgICAgW291dGVySW5mb3JtYXRpb24gZXhwZWN0VG9C
ZUxpbms6Tk8gaW1hZ2U6WUVTIGF0UG9pbnQ6Q0dQb2ludE1ha2UoMTAwLCA1MCldOwotICAgICAg
ICBpc0RvbmVXaXRoT3V0ZXIgPSB0cnVlOwotICAgIH1dOwotCi0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZpc0RvbmVXaXRoT3V0ZXIpOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmaXNEb25lV2l0aElubmVyKTsKLX0KLQotVEVTVChQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMs
IFJlcXVlc3REcmFnZ2FibGVMaW5rQXREaWZmZXJlbnRQb3NpdGlvbldpdGhpblJlcXVlc3RCbG9j
aykKLXsKLSAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwotICAgIFt3ZWJWaWV3
IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAImltYWdlLWFuZC1jb250ZW50ZWRpdGFi
bGUiXTsKLQotICAgIF9fYmxvY2sgYm9vbCBpc0RvbmVXaXRoSW5uZXIgPSBmYWxzZTsKLSAgICBf
X2Jsb2NrIGJvb2wgaXNEb25lV2l0aE91dGVyID0gZmFsc2U7Ci0KLSAgICBbd2ViVmlldyBfcmVx
dWVzdERyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOkNHUG9pbnRNYWtlKDEwMCwgNTApIGNvbXBs
ZXRpb25CbG9jazpeKF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvICpvdXRlckluZm9ybWF0aW9uKSB7
Ci0gICAgICAgIFt3ZWJWaWV3IF9yZXF1ZXN0RHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246Q0dQ
b2ludE1ha2UoMTAwLCAzMDApIGNvbXBsZXRpb25CbG9jazpeKF9XS0RyYWdnYWJsZUVsZW1lbnRJ
bmZvICppbm5lckluZm9ybWF0aW9uKSB7Ci0gICAgICAgICAgICBbaW5uZXJJbmZvcm1hdGlvbiBl
eHBlY3RUb0JlTGluazpOTyBpbWFnZTpOTyBhdFBvaW50OkNHUG9pbnRNYWtlKDEwMCwgMzAwKV07
Ci0gICAgICAgICAgICBpc0RvbmVXaXRoSW5uZXIgPSB0cnVlOwotICAgICAgICB9XTsKLSAgICAg
ICAgW291dGVySW5mb3JtYXRpb24gZXhwZWN0VG9CZUxpbms6Tk8gaW1hZ2U6WUVTIGF0UG9pbnQ6
Q0dQb2ludE1ha2UoMTAwLCA1MCldOwotICAgICAgICBpc0RvbmVXaXRoT3V0ZXIgPSB0cnVlOwot
ICAgIH1dOwotCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmVXaXRoT3V0ZXIp
OwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lV2l0aElubmVyKTsKLX0KLQot
fSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgKaW5kZXggZWRiMWZkNWRmYTE3MWVmYTAwZjM2M2M2NDg4
Mzg0MDU1ZGNiOThkMy4uZTU2NjI3YzU3YjZhZDgzMDJkYzFiMjM4ODA2NzdmZmRmYzAxYjExOCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgKQEAgLTMwLDYgKzMw
LDEwIEBACiAKIEBjbGFzcyBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb247CiAKKyNpZiBQTEFU
Rk9STShJT1MpCitAY2xhc3MgX1dLQWN0aXZhdGVkRWxlbWVudEluZm87CisjZW5kaWYKKwogQGlu
dGVyZmFjZSBUZXN0TWVzc2FnZUhhbmRsZXIgOiBOU09iamVjdCA8V0tTY3JpcHRNZXNzYWdlSGFu
ZGxlcj4KIC0gKHZvaWQpYWRkTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIHdpdGhIYW5kbGVy
OihkaXNwYXRjaF9ibG9ja190KWhhbmRsZXI7CiBAZW5kCkBAIC00OSw2ICs1Myw3IEBACiAjaWYg
UExBVEZPUk0oSU9TKQogQGludGVyZmFjZSBUZXN0V0tXZWJWaWV3IChJT1NPbmx5KQogQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBSZXRhaW5QdHI8TlNBcnJheT4gc2VsZWN0aW9uUmVj
dHNBZnRlclByZXNlbnRhdGlvblVwZGF0ZTsKKy0gKF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICop
X2FjdGl2YXRlZEVsZW1lbnRBdFBvc2l0aW9uOihDR1BvaW50KXBvc2l0aW9uOwogQGVuZAogI2Vu
ZGlmCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmll
dy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQppbmRleCAx
ZjBmMDdlMmQ3ZTYyNjdmNDhjZDU4ZWVhMGEzZThlOTYxOWQ1MDAzLi4yNWNkZGY4MDMwMGZkNTQx
N2U5MmNhMGEwYTNkMGI1NzA5YTZmNGE1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9U
ZXN0V0tXZWJWaWV3Lm1tCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbXBvcnQgPFdlYktpdC9XS1dl
YlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktpdFByaXZh
dGUuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5oPgogI2ltcG9y
dCA8V2ViS2l0L19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oPgogI2ltcG9ydCA8b2JqYy9y
dW50aW1lLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CkBAIC0yOTQsNiArMjk1LDE5IEBA
IC0gKFJldGFpblB0cjxOU0FycmF5PilzZWxlY3Rpb25SZWN0c0FmdGVyUHJlc2VudGF0aW9uVXBk
YXRlCiAgICAgcmV0dXJuIHNlbGVjdGlvblJlY3RzOwogfQogCistIChfV0tBY3RpdmF0ZWRFbGVt
ZW50SW5mbyAqKV9hY3RpdmF0ZWRFbGVtZW50QXRQb3NpdGlvbjooQ0dQb2ludClwb3NpdGlvbgor
eworICAgIF9fYmxvY2sgUmV0YWluUHRyPF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvPiBpbmZvOwor
ICAgIF9fYmxvY2sgYm9vbCBmaW5pc2hlZCA9IGZhbHNlOworICAgIFtzZWxmIF9yZXF1ZXN0QWN0
aXZhdGVkRWxlbWVudEF0UG9zaXRpb246cG9zaXRpb24gY29tcGxldGlvbkJsb2NrOl4oX1dLQWN0
aXZhdGVkRWxlbWVudEluZm8gKmVsZW1lbnRJbmZvKSB7CisgICAgICAgIGluZm8gPSBlbGVtZW50
SW5mbzsKKyAgICAgICAgZmluaXNoZWQgPSB0cnVlOworICAgIH1dOworCisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgcmV0dXJuIGluZm8uYXV0b3JlbGVhc2Uo
KTsKK30KKwogQGVuZAogCiAjZW5kaWYK
</data>
<flag name="review"
          id="336922"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316224</attachid>
            <date>2017-07-22 21:50:58 -0700</date>
            <delta_ts>2017-07-22 22:28:37 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-174758-20170722215057.patch</filename>
            <type>text/plain</type>
            <size>38150</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5NzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIzMWY1NjZjY2I2N2JlNGMw
ZDhkNDA4NDcwODNjNjAwOTlhYTFlNjQuLjk3YmMxMzdlNzlhM2Y3YzcwMjRiNGM4ZjRjOWJlMDNi
YTFlNTE2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjggQEAKIDIwMTctMDctMjIgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKKyAgICAgICAgW2lPUyBXSzJdIFJlbW92
ZSBfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyBhbmQgZm9sZCBQb3NpdGlvbkluZm9ybWF0aW9uVGVz
dHMgaW50byBXS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mbworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0NzU4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRGFuIEJlcm5zdGVpbi4KKworICAgICAgICBfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyBpcyBu
byBsb25nZXIgdXNlZCBpbiBXZWJLaXQsIHNvIGl0IHNob3VsZCBiZSByZW1vdmVkLiBIb3dldmVy
LCBzb21lIG9mIHRoZSBzY2VuYXJpb3MKKyAgICAgICAgaW4gUG9zaXRpb25JbmZvcm1hdGlvblRl
c3RzIHRoYXQgZGVwZW5kIG9uIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvIGFyZSBzdGlsbCB1c2Vm
dWwgdG8gZXhlcmNpc2U6IG5hbWVseSwKKyAgICAgICAgcGVyZm9ybWluZyBib3RoIHN5bmNocm9u
b3VzIGFuZCBhc3luY2hyb25vdXMgcG9zaXRpb24gaW5mb3JtYXRpb24gdXBkYXRlcyB3aGlsZSBh
biBhc3luYyBwb3NpdGlvbiBpbmZvcm1hdGlvbgorICAgICAgICB1cGRhdGUgaXMgaW4gZmxpZ2h0
LiBUaGlzIHBhdGNoIHJlZmFjdG9ycyB0aGVzZSB1bml0IHRlc3RzIGludG8gMiBuZXcgdW5pdCB0
ZXN0cyBpbiB0aGUgZXhpc3RpbmcKKyAgICAgICAgV0tSZXF1ZXN0QWN0aXZhdGVkRWxlbWVudElu
Zm8gdGVzdCBzdWl0ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2RyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOl0p
OiBEZWxldGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcgX3JlcXVlc3REcmFnZ2FibGVFbGVtZW50
QXRQb3NpdGlvbjpjb21wbGV0aW9uQmxvY2s6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tEcmFnZ2FibGVFbGVtZW50SW5mby5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8ubW06IFJlbW92ZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEcmFnZ2FibGVFbGVtZW50SW5mb0ludGVy
bmFsLmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW06CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisKKzIwMTctMDctMjIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisK
ICAgICAgICAgW01hYyBXSzJdIEZpeCBudWxsIGRlcmVmZXJlbmNlIGluIGFzeW5jaHJvbm91cyBO
U1RleHRJbnB1dENsaWVudCBtZXRob2RzIHdoZW4gZGVhbGxvY2F0aW5nIGEgV0tXZWJWaWV3CiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQ3NTEKICAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzMTMyNDA1PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMjQxOTU1NWE1Mzg1ZmUwZTk2OGYxMGFl
N2MzN2Y5Mzc1OGM2YWU2NS4uODQyMWVmYjZlNDU5ZTk0NTUxMThhOTVmNWY4ZGE4ODc3MzUwNTJl
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CkBAIC0xMzIsNyArMTMyLDYgQEAKICNpbXBvcnQgIldLU2Nyb2xsVmlldy5oIgogI2ltcG9ydCAi
V0tXZWJWaWV3Q29udGVudFByb3ZpZGVyUmVnaXN0cnkuaCIKICNpbXBvcnQgIldlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5oIgotI2ltcG9ydCAiX1dLRHJhZ2dhYmxlRWxlbWVudEluZm9J
bnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyLmgiCiAjaW1wb3J0
IDxVSUtpdC9VSUFwcGxpY2F0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvcmVHcmFwaGljc1NQ
SS5oPgpAQCAtNTI5NSwxOSArNTI5NCw2IEBAIC0gKE5TRGljdGlvbmFyeSAqKV9jb250ZW50c09m
VXNlckludGVyZmFjZUl0ZW06KE5TU3RyaW5nICopdXNlckludGVyZmFjZUl0ZW0KIH0KIAogI2lm
IFBMQVRGT1JNKElPUykKLS0gKF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvICopX2RyYWdnYWJsZUVs
ZW1lbnRBdFBvc2l0aW9uOihDR1BvaW50KXBvc2l0aW9uCi17Ci0gICAgW19jb250ZW50VmlldyBl
bnN1cmVQb3NpdGlvbkluZm9ybWF0aW9uSXNVcFRvRGF0ZTpXZWJLaXQ6OkludGVyYWN0aW9uSW5m
b3JtYXRpb25SZXF1ZXN0KFdlYkNvcmU6OnJvdW5kZWRJbnRQb2ludChwb3NpdGlvbikpXTsKLSAg
ICByZXR1cm4gW19XS0RyYWdnYWJsZUVsZW1lbnRJbmZvIGluZm9XaXRoSW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkF0UG9zaXRpb246W19jb250ZW50VmlldyBjdXJyZW50UG9zaXRpb25JbmZvcm1hdGlv
bl1dOwotfQotCi0tICh2b2lkKV9yZXF1ZXN0RHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246KENH
UG9pbnQpcG9zaXRpb24gY29tcGxldGlvbkJsb2NrOih2b2lkICheKShfV0tEcmFnZ2FibGVFbGVt
ZW50SW5mbyAqKSlibG9jawotewotICAgIFtfY29udGVudFZpZXcgZG9BZnRlclBvc2l0aW9uSW5m
b3JtYXRpb25VcGRhdGU6W2NhcHR1cmVkQmxvY2sgPSBtYWtlQmxvY2tQdHIoYmxvY2spXSAoV2Vi
S2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiBpbmZvcm1hdGlvbikgewotICAg
ICAgICBjYXB0dXJlZEJsb2NrKFtfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyBpbmZvV2l0aEludGVy
YWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOmluZm9ybWF0aW9uXSk7Ci0gICAgfSBmb3JSZXF1
ZXN0OldlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QoV2ViQ29yZTo6cm91bmRl
ZEludFBvaW50KHBvc2l0aW9uKSldOwotfQotCiAtICh2b2lkKV9yZXF1ZXN0QWN0aXZhdGVkRWxl
bWVudEF0UG9zaXRpb246KENHUG9pbnQpcG9zaXRpb24gY29tcGxldGlvbkJsb2NrOih2b2lkIChe
KShfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKSlibG9jawogewogICAgIGF1dG8gaW5mb1JlcXVl
c3QgPSBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KFdlYkNvcmU6OnJvdW5k
ZWRJbnRQb2ludChwb3NpdGlvbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggODk5ZTI3Y2JiZjQ4YTc2M2M2NDNl
ZTJiNjA5ODQ0OGJmZDE4Y2Q1Ny4uYzUwZmJkNGZjYjJhNGM0ZTFjYWEwZGFlZTc3MzZjNDMwYjNk
MDA3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZS5oCkBAIC04Myw3ICs4Myw2IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVn
ZXIsIF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpIHsKICNlbmRpZgogCiBAY2xhc3MgV0tCcm93c2lu
Z0NvbnRleHRIYW5kbGU7Ci1AY2xhc3MgX1dLRHJhZ2dhYmxlRWxlbWVudEluZm87CiBAY2xhc3Mg
X1dLRnJhbWVIYW5kbGU7CiBAY2xhc3MgX1dLSGl0VGVzdFJlc3VsdDsKIEBjbGFzcyBfV0tJY29u
TG9hZGluZ0RlbGVnYXRlOwpAQCAtMzc3LDkgKzM3Niw2IEBAIHR5cGVkZWYgTlNfRU5VTShOU0lu
dGVnZXIsIF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpIHsKIAogQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBDR1JlY3QgX2RyYWdDYXJldFJlY3QgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tf
SU9TX1RCQSkpOwogCi0tIChfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAqKV9kcmFnZ2FibGVFbGVt
ZW50QXRQb3NpdGlvbjooQ0dQb2ludClwb3NpdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3JlcXVlc3REcmFnZ2FibGVF
bGVtZW50QXRQb3NpdGlvbjooQ0dQb2ludClwb3NpdGlvbiBjb21wbGV0aW9uQmxvY2s6KHZvaWQg
KF4pKF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvICopKWJsb2NrIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotCiAtICh2b2lkKV9yZXF1ZXN0QWN0
aXZhdGVkRWxlbWVudEF0UG9zaXRpb246KENHUG9pbnQpcG9zaXRpb24gY29tcGxldGlvbkJsb2Nr
Oih2b2lkICheKShfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKSlibG9jayBXS19BUElfQVZBSUxB
QkxFKGlvcyhXS19JT1NfVEJBKSk7CiAKICNlbmRpZiAvLyBUQVJHRVRfT1NfSVBIT05FCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRHJhZ2dhYmxlRWxl
bWVudEluZm8uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEcmFnZ2Fi
bGVFbGVtZW50SW5mby5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMDZkYzhjNWIx
ZmMxOTk5MDA3YjcwN2RhODdkMmNlYzA3Zjk3MjZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tEcmFnZ2FibGVFbGVtZW50SW5mby5oCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KLQotI2lmIFdLX0FQ
SV9FTkFCTEVECi0KLU5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCi0KLVdLX0NMQVNTX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKLUBpbnRlcmZhY2UgX1dLRHJh
Z2dhYmxlRWxlbWVudEluZm8gOiBOU09iamVjdCA8TlNDb3B5aW5nPgotCi1AcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIENHUG9pbnQgcG9pbnQ7Ci0KLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSwgZ2V0dGVyPWlzTGluaykgQk9PTCBsaW5rOwotQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNBdHRhY2htZW50KSBCT09MIGF0dGFjaG1lbnQ7Ci1AcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc0ltYWdlKSBCT09MIGltYWdlOwot
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNTZWxlY3RlZCkgQk9PTCBz
ZWxlY3RlZDsKLQotQGVuZAotCi1OU19BU1NVTUVfTk9OTlVMTF9FTkQKLQotI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRHJhZ2dhYmxlRWxl
bWVudEluZm8ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRHJhZ2dh
YmxlRWxlbWVudEluZm8ubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwZmY5MjEw
N2JlNjFjMWJhOWNiYmJhMDk1MDQ5YjJkNzYyYmY0ODEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLm1tCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJfV0tEcmFnZ2Fi
bGVFbGVtZW50SW5mb0ludGVybmFsLmgiCi0KLSNpZiBXS19BUElfRU5BQkxFRAotCi1AaW1wbGVt
ZW50YXRpb24gX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8KLQotI2lmIFBMQVRGT1JNKElPUykKLQot
KyAoaW5zdGFuY2V0eXBlKWluZm9XaXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246
KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKWluZm9ybWF0
aW9uCi17Ci0gICAgcmV0dXJuIFtbW3NlbGYgYWxsb2NdIGluaXRXaXRoSW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkF0UG9zaXRpb246aW5mb3JtYXRpb25dIGF1dG9yZWxlYXNlXTsKLX0KLQotLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246KGNvbnN0
IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKWluZm9ybWF0aW9uCi17
Ci0gICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCi0gICAgICAgIHJldHVybiBuaWw7Ci0K
LSAgICBfcG9pbnQgPSBpbmZvcm1hdGlvbi5yZXF1ZXN0LnBvaW50OwotICAgIF9saW5rID0gaW5m
b3JtYXRpb24uaXNMaW5rOwotICAgIF9hdHRhY2htZW50ID0gaW5mb3JtYXRpb24uaXNBdHRhY2ht
ZW50OwotICAgIF9pbWFnZSA9IGluZm9ybWF0aW9uLmlzSW1hZ2U7Ci0jaWYgRU5BQkxFKERBVEFf
SU5URVJBQ1RJT04pCi0gICAgX3NlbGVjdGVkID0gaW5mb3JtYXRpb24uaGFzU2VsZWN0aW9uQXRQ
b3NpdGlvbjsKLSNlbmRpZgotCi0gICAgcmV0dXJuIHNlbGY7Ci19Ci0KLSNlbmRpZgotCi0tIChp
bnN0YW5jZXR5cGUpY29weVdpdGhab25lOihOU1pvbmUgKil6b25lCi17Ci0gICAgX1dLRHJhZ2dh
YmxlRWxlbWVudEluZm8gKmNvcHkgPSBbW19XS0RyYWdnYWJsZUVsZW1lbnRJbmZvIGFsbG9jXSBp
bml0XTsKLQotICAgIGNvcHkucG9pbnQgPSBzZWxmLnBvaW50OwotICAgIGNvcHkubGluayA9IHNl
bGYubGluazsKLSAgICBjb3B5LmF0dGFjaG1lbnQgPSBzZWxmLmF0dGFjaG1lbnQ7Ci0gICAgY29w
eS5pbWFnZSA9IHNlbGYuaW1hZ2U7Ci0gICAgY29weS5zZWxlY3RlZCA9IHNlbGYuc2VsZWN0ZWQ7
Ci0KLSAgICByZXR1cm4gY29weTsKLX0KLQotQGVuZAotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEcmFnZ2FibGVFbGVtZW50SW5mb0lu
dGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRHJhZ2dhYmxl
RWxlbWVudEluZm9JbnRlcm5hbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmODA2
Y2U3NjQxZTU4MGE5ZTQ2MzA0Y2FmMWQyZDkxZjk3MmZkMTVkLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tEcmFnZ2FibGVFbGVtZW50SW5mb0ludGVybmFsLmgKKysrIC9kZXYvbnVsbApAQCAt
MSw0NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiSW50ZXJhY3Rpb25JbmZvcm1hdGlv
bkF0UG9zaXRpb24uaCIKLSNpbXBvcnQgIl9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLmgiCi0KLSNp
ZiBXS19BUElfRU5BQkxFRAotCi1AaW50ZXJmYWNlIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvICgp
Ci0KLSNpZiBUQVJHRVRfT1NfSVBIT05FCi0rIChpbnN0YW5jZXR5cGUpaW5mb1dpdGhJbnRlcmFj
dGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9y
bWF0aW9uQXRQb3NpdGlvbiYpaW5mb3JtYXRpb247Ci0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhJ
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpaW5mb3JtYXRpb247Ci0jZW5kaWYKLQotQHByb3BlcnR5
IChub25hdG9taWMpIENHUG9pbnQgcG9pbnQ7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVy
PWlzTGluaykgQk9PTCBsaW5rOwotQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc0F0dGFj
aG1lbnQpIEJPT0wgYXR0YWNobWVudDsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9aXNJ
bWFnZSkgQk9PTCBpbWFnZTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9aXNTZWxlY3Rl
ZCkgQk9PTCBzZWxlY3RlZDsKLQotQGVuZAotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGY2
ZmE3NmMxZDFiZjc2NjJjNzkyN2EzZjcxZWYyOTQ2NWJkODhkZWEuLjk0ZWEzNzQ3N2RjOTg4YmIw
ZmUwYWM0MDQxNDNiZjVmZmQ2MmFiMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNTgsNyArNTgsNiBA
QAogI2ltcG9ydCAiV2ViUGFnZU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHku
aCIKICNpbXBvcnQgIl9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvSW50ZXJuYWwuaCIKLSNpbXBvcnQg
Il9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0VsZW1lbnRB
Y3Rpb24uaCIKICNpbXBvcnQgIl9XS0ZvY3VzZWRFbGVtZW50SW5mby5oIgogI2ltcG9ydCAiX1dL
Rm9ybUlucHV0U2Vzc2lvbi5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggM2MyMDIzNmY3MzdhZjA3ZTEyMDk1OGQ0YzkyMWMyZjAxZjlh
ZmE4Yi4uZGI4OTA1ZTg3MzgwZjY3OTE3ZmMyNjgwMmEyZDIwYTI3ODRlZTBkOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMDE5LDkg
KzIwMTksNiBAQAogCQlGNDA5QkExODFFNkU2NEJDMDA5REEyOEUgLyogV0tEcmFnRGVzdGluYXRp
b25BY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0MDlCQTE3MUU2RTY0QjMwMDlEQTI4RSAvKiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0NERGRUIy
MUU5RTc1MkYwMDM4RDE5NiAvKiBXZWJJY29uVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDRERkVCMDFFOUU3NTJGMDAzOEQxOTYgLyog
V2ViSWNvblV0aWxpdGllcy5oICovOyB9OwogCQlGNDRERkVCMzFFOUU3NTJGMDAzOEQxOTYgLyog
V2ViSWNvblV0aWxpdGllcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0NERGRUIxMUU5RTc1MkYwMDM4RDE5NiAvKiBXZWJJY29uVXRpbGl0aWVzLm1t
ICovOyB9OwotCQlGNEU4Q0I5MTFFQTZBQjVCMDBFMzExOTggLyogX1dLRHJhZ2dhYmxlRWxlbWVu
dEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0
RThDQjhFMUVBNkFCNUIwMEUzMTE5OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUY0RThDQjkyMUVB
NkFCNUIwMEUzMTE5OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RThDQjhGMUVBNkFCNUIwMEUzMTE5
OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5tbSAqLzsgfTsKLQkJRjRFOENCOTMxRUE2QUI1
QjAwRTMxMTk4IC8qIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RThDQjkwMUVBNkFCNUIwMEUz
MTE5OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50SW5mb0ludGVybmFsLmggKi87IH07CiAJCUY2MTEz
RTI1MTI2Q0UxODIwMDU3RDBBNyAvKiBBUElVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2MTEzRTI0MTI2Q0UxODIw
MDU3RDBBNyAvKiBBUElVc2VyQ29udGVudFVSTFBhdHRlcm4uaCAqLzsgfTsKIAkJRjYxMTNFMjgx
MjZDRTE5QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2MTEzRTI2MTI2Q0UxOUIwMDU3
RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAgKi87IH07CiAJCUY2MTEzRTI5MTI2
Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjYxMTNFMjcxMjZDRTE5QjAwNTdEMEE3
IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQzNjUsOSArNDM2Miw2IEBACiAJCUY0MDlCQTE3MUU2
RTY0QjMwMDlEQTI4RSAvKiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNDRERkVCMDFFOUU3NTJGMDAzOEQxOTYgLyogV2ViSWNvblV0
aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJY29uVXRpbGl0
aWVzLmg7IHBhdGggPSBpb3MvV2ViSWNvblV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNDRERkVCMTFFOUU3NTJGMDAzOEQxOTYgLyogV2ViSWNvblV0aWxpdGllcy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYkljb25VdGlsaXRp
ZXMubW07IHBhdGggPSBpb3MvV2ViSWNvblV0aWxpdGllcy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJRjRFOENCOEUxRUE2QUI1QjAwRTMxMTk4IC8qIF9XS0RyYWdnYWJsZUVsZW1l
bnRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0RyYWdnYWJsZUVs
ZW1lbnRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0RThDQjhGMUVBNkFC
NUIwMEUzMTE5OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGNEU4Q0I5MDFFQTZBQjVCMDBFMzExOTggLyogX1dL
RHJhZ2dhYmxlRWxlbWVudEluZm9JbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBfV0tEcmFnZ2FibGVFbGVtZW50SW5mb0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY2MTEzRTI0MTI2Q0UxODIwMDU3RDBBNyAvKiBBUElVc2VyQ29udGVu
dFVSTFBhdHRlcm4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJVXNlckNv
bnRlbnRVUkxQYXR0ZXJuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2MTEzRTI2
MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2MTEzRTI3MTI2Q0UxOUIwMDU3RDBBNyAv
KiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNTU2MCw5ICs1NTU0LDYgQEAKIAkJCQlBMUE0RkU1ODE4RENFOUZBMDBCNUVBOEEgLyog
X1dLRG93bmxvYWQubW0gKi8sCiAJCQkJQTFBNEZFNjAxOERENTRBNDAwQjVFQThBIC8qIF9XS0Rv
d25sb2FkRGVsZWdhdGUuaCAqLywKIAkJCQlBMUE0RkU1OTE4RENFOUZBMDBCNUVBOEEgLyogX1dL
RG93bmxvYWRJbnRlcm5hbC5oICovLAotCQkJCUY0RThDQjhFMUVBNkFCNUIwMEUzMTE5OCAvKiBf
V0tEcmFnZ2FibGVFbGVtZW50SW5mby5oICovLAotCQkJCUY0RThDQjhGMUVBNkFCNUIwMEUzMTE5
OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5tbSAqLywKLQkJCQlGNEU4Q0I5MDFFQTZBQjVC
MDBFMzExOTggLyogX1dLRHJhZ2dhYmxlRWxlbWVudEluZm9JbnRlcm5hbC5oICovLAogCQkJCTM3
OUE4NzM4MThCQkZFMEYwMDU4OEFGMiAvKiBfV0tFbGVtZW50QWN0aW9uLmggKi8sCiAJCQkJMzc5
QTg3MzcxOEJCRkUwRjAwNTg4QUYyIC8qIF9XS0VsZW1lbnRBY3Rpb24ubW0gKi8sCiAJCQkJMzc5
QTg3M0IxOEJCRkYwNzAwNTg4QUYyIC8qIF9XS0VsZW1lbnRBY3Rpb25JbnRlcm5hbC5oICovLApA
QCAtODEyMCw4ICs4MTExLDYgQEAKIAkJCQlBMUE0RkU1QTE4RENFOUZBMDBCNUVBOEEgLyogX1dL
RG93bmxvYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCUExQTRGRTYxMThERDU0QTQwMEI1RUE4QSAv
KiBfV0tEb3dubG9hZERlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUE0RkU1QzE4RENF
OUZBMDBCNUVBOEEgLyogX1dLRG93bmxvYWRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
RjRFOENCOTExRUE2QUI1QjAwRTMxMTk4IC8qIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLmggaW4g
SGVhZGVycyAqLywKLQkJCQlGNEU4Q0I5MzFFQTZBQjVCMDBFMzExOTggLyogX1dLRHJhZ2dhYmxl
RWxlbWVudEluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc5QTg3M0ExOEJCRkUw
RjAwNTg4QUYyIC8qIF9XS0VsZW1lbnRBY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTM3OUE4
NzNDMThCQkZGMDcwMDU4OEFGMiAvKiBfV0tFbGVtZW50QWN0aW9uSW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBRDAxQkM5MTkwNUQzN0UwMEM5QzQ1RiAvKiBfV0tFcnJvclJlY292ZXJ5
QXR0ZW1wdGluZy5oIGluIEhlYWRlcnMgKi8sCkBAIC05NzI4LDcgKzk3MTcsNiBAQAogCQkJCTk5
MEQyOEIyMUM2NTIwOTQwMDk4Njk3NyAvKiBfV0tBdXRvbWF0aW9uU2Vzc2lvbi5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBNTcwNEY3MUJFMDFGRjQwMDg3NEFGMSAvKiBfV0tDb250ZXh0TWVudUVs
ZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFBNEZFNUIxOERDRTlGQTAwQjVFQThB
IC8qIF9XS0Rvd25sb2FkLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJRjRFOENCOTIxRUE2QUI1QjAw
RTMxMTk4IC8qIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
Mzc5QTg3MzkxOEJCRkUwRjAwNTg4QUYyIC8qIF9XS0VsZW1lbnRBY3Rpb24ubW0gaW4gU291cmNl
cyAqLywKIAkJCQkxQUQwMUJDODE5MDVEMzdFMDBDOUM0NUYgLyogX1dLRXJyb3JSZWNvdmVyeUF0
dGVtcHRpbmcubW0gaW4gU291cmNlcyAqLywKIAkJCQkzMTdGRTdDRTFDNDg3REI4MDBBMENBODkg
LyogX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDllY2E3NGQxMjQxYmViYmNh
NDY5ZDMxNWE5NGU0MGNiYTc5OWVjZDAuLjJiNTU1MTY4ZDYwYWRiY2YyYTNhMTdmMTJhYmMwYjA0
MmRlMjVhZDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMiBAQAorMjAxNy0wNy0yMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TIFdLMl0gUmVtb3ZlIF9XS0RyYWdnYWJsZUVs
ZW1lbnRJbmZvIGFuZCBmb2xkIFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0cyBpbnRvIFdLUmVxdWVz
dEFjdGl2YXRlZEVsZW1lbnRJbmZvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzQ3NTgKKworICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWlu
LgorCisgICAgICAgIE1pZ3JhdGUgcG9zaXRpb24taW5mb3JtYXRpb24tcmVsYXRlZCB1bml0IHRl
c3RzIGZyb20gdGhlIFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0cyBzdWl0ZSB0bworICAgICAgICBX
S1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mbyBhcyAyIG5ldyB1bml0IHRlc3RzLiBTZWUgV2Vi
S2l0MiBDaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJ
bmZvLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Y2hlY2tFbGVtZW50VHlwZUFuZEJvdW5k
aW5nUmVjdCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL2lvcy9Qb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMubW06IFJlbW92ZWQu
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lmg6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtUZXN0
V0tXZWJWaWV3IGFjdGl2YXRlZEVsZW1lbnRBdFBvc2l0aW9uOl0pOgorCiAyMDE3LTA3LTIyICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjA0
NTY1KTogV0tPYmplY3QgaXMgYnJva2VuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGYwNDkw
MDdlYzYzNzI1ODQyY2RmYmFhMTQ0OGFjNDE5MGZkM2VmZGIuLmFiYWNiYWVjZWMxNDhhMTM5MjE5
YmJiMWFiOTgyYWViNWY4MWFhNzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NjgsNyAr
NjY4LDYgQEAKIAkJRjRENEYzQjYxRTRFMkJDQjAwQkIyNzY3IC8qIERhdGFJbnRlcmFjdGlvblNp
bXVsYXRvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0RDRGM0I0MUU0RTJCQ0IwMEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IubW0g
Ki87IH07CiAJCUY0RDRGM0I5MUU0RTM2RTQwMEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25UZXN0
cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RDRG
M0I3MUU0RTM2RTQwMEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25UZXN0cy5tbSAqLzsgfTsKIAkJ
RjRENUU0RTgxRjBDNUQzODAwOEMxQTQ5IC8qIGRyYWdzdGFydC1jbGVhci1zZWxlY3Rpb24uaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NEQ1RTRFNzFGMEM1RDI3MDA4QzFBNDkgLyogZHJhZ3N0YXJ0LWNsZWFyLXNlbGVjdGlvbi5odG1s
ICovOyB9OwotCQlGNEQ3QkNEODFFQTU3ODk4MDBDNDIxRDMgLyogUG9zaXRpb25JbmZvcm1hdGlv
blRlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjREN0JDRDYxRUE1NzRERDAwQzQyMUQzIC8qIFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0cy5tbSAq
LzsgfTsKIAkJRjRERUY2RUQxRTlCNERCNjAwNDhFRjYxIC8qIGltYWdlLWluLWxpbmstYW5kLWlu
cHV0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjRERUY2RUMxRTlCNEQ5NTAwNDhFRjYxIC8qIGltYWdlLWluLWxpbmstYW5kLWlucHV0
Lmh0bWwgKi87IH07CiAJCUY0RjEzNzkyMUQ5QjY4M0UwMDJCRUM1NyAvKiBsYXJnZS12aWRlby10
ZXN0LW5vdy1wbGF5aW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjRGMTM3OTExRDlCNjgzMjAwMkJFQzU3IC8qIGxhcmdlLXZpZGVv
LXRlc3Qtbm93LXBsYXlpbmcuaHRtbCAqLzsgfTsKIAkJRjRGNDA1QkMxRDRDMEQxQzAwN0E5NzA3
IC8qIGZ1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRGNDA1QkExRDRD
MENGODAwN0E5NzA3IC8qIGZ1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0
bWwgKi87IH07CkBAIC0xNjU5LDcgKzE2NTgsNiBAQAogCQlGNEQ0RjNCNTFFNEUyQkNCMDBCQjI3
NjcgLyogRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNEQ0RjNCNzFFNEUzNkU0MDBCQjI3NjcgLyogRGF0YUludGVyYWN0aW9uVGVz
dHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEYXRhSW50ZXJh
Y3Rpb25UZXN0cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRENUU0RTcxRjBD
NUQyNzAwOEMxQTQ5IC8qIGRyYWdzdGFydC1jbGVhci1zZWxlY3Rpb24uaHRtbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9
ICJkcmFnc3RhcnQtY2xlYXItc2VsZWN0aW9uLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlGNEQ3QkNENjFFQTU3NEREMDBDNDIxRDMgLyogUG9zaXRpb25JbmZvcm1hdGlvblRl
c3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNERFRjZFQzFFOUI0RDk1MDA0OEVGNjEg
LyogaW1hZ2UtaW4tbGluay1hbmQtaW5wdXQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0
aCA9ICJpbWFnZS1pbi1saW5rLWFuZC1pbnB1dC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjRGMTM3OTExRDlCNjgzMjAwMkJFQzU3IC8qIGxhcmdlLXZpZGVvLXRlc3Qtbm93
LXBsYXlpbmcuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJnZS12aWRlby10
ZXN0LW5vdy1wbGF5aW5nLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEY0
MDVCQTFENEMwQ0Y4MDA3QTk3MDcgLyogZnVsbC1zaXplLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgt
YXVkaW8uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJmdWxsLXNpemUtYXV0b3Bs
YXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIwMDQsNyArMjAwMiw2IEBACiAJCQkJQTFDNEZCNkYxQkFDQ0VGQTAwMzc0MkQwIC8qIFJl
c291cmNlcyAqLywKIAkJCQlGNEQ0RjNCNzFFNEUzNkU0MDBCQjI3NjcgLyogRGF0YUludGVyYWN0
aW9uVGVzdHMubW0gKi8sCiAJCQkJNzU2MDkxNzcxOTI1OUM1OTAwOUVGMDZFIC8qIE1lbW9yeUNh
Y2hlQWRkSW1hZ2VUb0NhY2hlSU9TLm1tICovLAotCQkJCUY0RDdCQ0Q2MUVBNTc0REQwMEM0MjFE
MyAvKiBQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMubW0gKi8sCiAJCQkJRjQ2ODQ5QkQxRUVGNThF
NDAwQjkzN0ZFIC8qIFVJUGFzdGVib2FyZFRlc3RzLm1tICovLAogCQkJCUY0NUI2M0ZDMUYxOUQ0
MTAwMDlEMzhCOSAvKiBBY3Rpb25TaGVldFRlc3RzLm1tICovLAogCQkJKTsKQEAgLTMxNzEsNyAr
MzE2OCw2IEBACiAJCQkJN0M4M0UwNTMxRDBBNjQzQTAwRkVCQ0YzIC8qIFBlbmRpbmdBUElSZXF1
ZXN0VVJMLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUFGMUE0MTFBMzgwMDQ0N0M0QyAv
KiBQbGF0Zm9ybVV0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjEzOUU3ODFBNDIz
QTZCMDBGNTkwRjUgLyogUGxhdGZvcm1VdGlsaXRpZXNDb2NvYS5tbSBpbiBTb3VyY2VzICovLAot
CQkJCUY0RDdCQ0Q4MUVBNTc4OTgwMEM0MjFEMyAvKiBQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VBNjFBNDExQTBGMDA0NDdDNEMgLyogUGxhdGZv
cm1VdGlsaXRpZXNNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MURCMTZDRTFGMDg1MTM3MDAx
RkE0QzUgLyogV2ViVmlld0ljb25Mb2FkaW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdF
QTcxQTQxMUExMzAwNDQ3QzRDIC8qIFBsYXRmb3JtV2ViVmlld01hYy5tbSBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV0tS
ZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEluZm8ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9XS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mby5tbQppbmRleCBiODc4
NDZkMjQxYmYxNWNjYWU1MjUyZjRkOTQzMjQ5NDkwMGFjYTA1Li4yODMwM2E2ZmU3NjJiMmNjMmMy
MTE3YWFkZmM1M2U4ZTNhYzc4YTZkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9XS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mby5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XS1JlcXVlc3RBY3RpdmF0ZWRF
bGVtZW50SW5mby5tbQpAQCAtMzYsOCArMzYsMTggQEAKICNpZiBXS19BUElfRU5BQkxFRCAmJiBQ
TEFURk9STShJT1MpCiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworc3RhdGljIHZvaWQg
Y2hlY2tFbGVtZW50VHlwZUFuZEJvdW5kaW5nUmVjdChfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAq
ZWxlbWVudEluZm8sIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlIGV4cGVjdGVkVHlwZSwgQ0dSZWN0
IGV4cGVjdGVkQm91bmRpbmdSZWN0KQoreworICAgIGF1dG8gb2JzZXJ2ZWRCb3VuZGluZ1JlY3Qg
PSBlbGVtZW50SW5mby5ib3VuZGluZ1JlY3Q7CisgICAgRVhQRUNUX0VRKENHUmVjdEdldFdpZHRo
KGV4cGVjdGVkQm91bmRpbmdSZWN0KSwgQ0dSZWN0R2V0V2lkdGgob2JzZXJ2ZWRCb3VuZGluZ1Jl
Y3QpKTsKKyAgICBFWFBFQ1RfRVEoQ0dSZWN0R2V0SGVpZ2h0KGV4cGVjdGVkQm91bmRpbmdSZWN0
KSwgQ0dSZWN0R2V0SGVpZ2h0KG9ic2VydmVkQm91bmRpbmdSZWN0KSk7CisgICAgRVhQRUNUX0VR
KENHUmVjdEdldE1pblgoZXhwZWN0ZWRCb3VuZGluZ1JlY3QpLCBDR1JlY3RHZXRNaW5YKG9ic2Vy
dmVkQm91bmRpbmdSZWN0KSk7CisgICAgRVhQRUNUX0VRKENHUmVjdEdldE1pblkoZXhwZWN0ZWRC
b3VuZGluZ1JlY3QpLCBDR1JlY3RHZXRNaW5ZKG9ic2VydmVkQm91bmRpbmdSZWN0KSk7CisgICAg
RVhQRUNUX0VRKGV4cGVjdGVkVHlwZSwgZWxlbWVudEluZm8udHlwZSk7Cit9CiAgICAgCi1URVNU
KFdlYktpdDIsIFJlcWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvRm9yTGluaykKK1RFU1QoV2ViS2l0
MiwgUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvRm9yTGluaykKIHsKICAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RN
YWtlKDAsIDAsIDMyMCwgNTAwKV0pOwogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPGh0
bWw+PGhlYWQ+PG1ldGEgbmFtZT0ndmlld3BvcnQnIGNvbnRlbnQ9J2luaXRpYWwtc2NhbGU9MSc+
PC9oZWFkPjxib2R5IHN0eWxlID0gJ21hcmdpbjogMHB4Oyc+PGEgaHJlZj0ndGVzdFVSTC50ZXN0
JyBzdHlsZT0nZGlzcGxheTogYmxvY2s7IGhlaWdodDogMTAwJTsnIHRpdGxlPSdIaXRUZXN0TGlu
a1RpdGxlJyBpZD0ndGVzdElEJz48L2E+PC9ib2R5PjwvaHRtbD4iIGJhc2VVUkw6bmlsXTsKQEAg
LTYyLDcgKzcyLDcgQEAgVEVTVChXZWJLaXQyLCBSZXFlc3RBY3RpdmF0ZWRFbGVtZW50SW5mb0Zv
ckxpbmspCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7CiB9CiAgICAg
Ci1URVNUKFdlYktpdDIsIFJlcWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvRm9yQmxhbmspCitURVNU
KFdlYktpdDIsIFJlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mb0ZvckJsYW5rKQogewogICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
OkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJp
bmc6QCI8aHRtbD48aGVhZD48bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29udGVudD0naW5pdGlhbC1z
Y2FsZT0xJz48L2hlYWQ+PGJvZHkgc3R5bGUgPSAnbWFyZ2luOiAwcHg7Jz48L2JvZHk+PC9odG1s
PiIgYmFzZVVSTDpuaWxdOwpAQCAtODEsNiArOTEsNjIgQEAgVEVTVChXZWJLaXQyLCBSZXFlc3RB
Y3RpdmF0ZWRFbGVtZW50SW5mb0ZvckJsYW5rKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZmluaXNoZWQpOwogfQogICAgIAorVEVTVChXZWJLaXQyLCBSZXF1ZXN0QWN0aXZhdGVkRWxl
bWVudEluZm9XaXRoTmVzdGVkU3luY2hyb25vdXNVcGRhdGVzKQoreworICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1h
a2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1M
U3RyaW5nOkAiPG1ldGEgbmFtZT0ndmlld3BvcnQnIGNvbnRlbnQ9J2luaXRpYWwtc2NhbGU9MSc+
PHN0eWxlPmJvZHkgeyBtYXJnaW46MCB9IGEgeyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoyMDBweDsg
aGVpZ2h0OjIwMHB4IH08L3N0eWxlPjxhIGhyZWY9J2h0dHBzOi8vd3d3LmFwcGxlLmNvbSc+Rk9P
PC9hPiJdOworCisgICAgX19ibG9jayBib29sIGZpbmlzaGVkID0gZmFsc2U7CisgICAgW3dlYlZp
ZXcgX3JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50QXRQb3NpdGlvbjpDR1BvaW50TWFrZSgxMDAsIDEw
MCkgY29tcGxldGlvbkJsb2NrOl4oX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKmVsZW1lbnRJbmZv
KSB7CisgICAgICAgIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICpzeW5jaHJvbm91c0VsZW1lbnRJ
bmZvID0gW3dlYlZpZXcgYWN0aXZhdGVkRWxlbWVudEF0UG9zaXRpb246Q0dQb2ludE1ha2UoMzAw
LCAzMDApXTsKKyAgICAgICAgRVhQRUNUX0VRKF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlVW5zcGVj
aWZpZWQsIHN5bmNocm9ub3VzRWxlbWVudEluZm8udHlwZSk7CisgICAgICAgIGNoZWNrRWxlbWVu
dFR5cGVBbmRCb3VuZGluZ1JlY3QoZWxlbWVudEluZm8sIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBl
TGluaywgQ0dSZWN0TWFrZSgwLCAwLCAyMDAsIDIwMCkpOworICAgICAgICBmaW5pc2hlZCA9IHRy
dWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7CisK
KyAgICBmaW5pc2hlZCA9IGZhbHNlOworICAgIFt3ZWJWaWV3IF9yZXF1ZXN0QWN0aXZhdGVkRWxl
bWVudEF0UG9zaXRpb246Q0dQb2ludE1ha2UoMTAwLCAxMDApIGNvbXBsZXRpb25CbG9jazpeKF9X
S0FjdGl2YXRlZEVsZW1lbnRJbmZvICplbGVtZW50SW5mbykgeworICAgICAgICBfV0tBY3RpdmF0
ZWRFbGVtZW50SW5mbyAqc3luY2hyb25vdXNFbGVtZW50SW5mbyA9IFt3ZWJWaWV3IGFjdGl2YXRl
ZEVsZW1lbnRBdFBvc2l0aW9uOkNHUG9pbnRNYWtlKDEwMCwgMTAwKV07CisgICAgICAgIGNoZWNr
RWxlbWVudFR5cGVBbmRCb3VuZGluZ1JlY3Qoc3luY2hyb25vdXNFbGVtZW50SW5mbywgX1dLQWN0
aXZhdGVkRWxlbWVudFR5cGVMaW5rLCBDR1JlY3RNYWtlKDAsIDAsIDIwMCwgMjAwKSk7CisgICAg
ICAgIGNoZWNrRWxlbWVudFR5cGVBbmRCb3VuZGluZ1JlY3QoZWxlbWVudEluZm8sIF9XS0FjdGl2
YXRlZEVsZW1lbnRUeXBlTGluaywgQ0dSZWN0TWFrZSgwLCAwLCAyMDAsIDIwMCkpOworICAgICAg
ICBmaW5pc2hlZCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZmaW5pc2hlZCk7Cit9CisKK1RFU1QoV2ViS2l0MiwgUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJ
bmZvV2l0aE5lc3RlZFJlcXVlc3RzKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tU
ZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1
MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiaW1h
Z2UtYW5kLWNvbnRlbnRlZGl0YWJsZSJdOworCisgICAgX19ibG9jayBib29sIGZpbmlzaGVkV2l0
aElubmVyID0gZmFsc2U7CisgICAgX19ibG9jayBib29sIGZpbmlzaGVkV2l0aE91dGVyID0gZmFs
c2U7CisgICAgW3dlYlZpZXcgX3JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50QXRQb3NpdGlvbjpDR1Bv
aW50TWFrZSgxMDAsIDUwKSBjb21wbGV0aW9uQmxvY2s6XihfV0tBY3RpdmF0ZWRFbGVtZW50SW5m
byAqb3V0ZXJFbGVtZW50SW5mbykgeworICAgICAgICBbd2ViVmlldyBfcmVxdWVzdEFjdGl2YXRl
ZEVsZW1lbnRBdFBvc2l0aW9uOkNHUG9pbnRNYWtlKDEwMCwgNTApIGNvbXBsZXRpb25CbG9jazpe
KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICppbm5lckVsZW1lbnRJbmZvKSB7CisgICAgICAgICAg
ICBjaGVja0VsZW1lbnRUeXBlQW5kQm91bmRpbmdSZWN0KGlubmVyRWxlbWVudEluZm8sIF9XS0Fj
dGl2YXRlZEVsZW1lbnRUeXBlSW1hZ2UsIENHUmVjdE1ha2UoMCwgMCwgMjAwLCAyMDApKTsKKyAg
ICAgICAgICAgIGZpbmlzaGVkV2l0aElubmVyID0gdHJ1ZTsKKyAgICAgICAgfV07CisgICAgICAg
IGNoZWNrRWxlbWVudFR5cGVBbmRCb3VuZGluZ1JlY3Qob3V0ZXJFbGVtZW50SW5mbywgX1dLQWN0
aXZhdGVkRWxlbWVudFR5cGVJbWFnZSwgQ0dSZWN0TWFrZSgwLCAwLCAyMDAsIDIwMCkpOworICAg
ICAgICBmaW5pc2hlZFdpdGhPdXRlciA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZmaW5pc2hlZFdpdGhPdXRlcik7CisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZmaW5pc2hlZFdpdGhJbm5lcik7CisKKyAgICBmaW5pc2hlZFdpdGhJbm5lciA9IGZh
bHNlOworICAgIGZpbmlzaGVkV2l0aE91dGVyID0gZmFsc2U7CisgICAgW3dlYlZpZXcgX3JlcXVl
c3RBY3RpdmF0ZWRFbGVtZW50QXRQb3NpdGlvbjpDR1BvaW50TWFrZSgxMDAsIDUwKSBjb21wbGV0
aW9uQmxvY2s6XihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqb3V0ZXJFbGVtZW50SW5mbykgewor
ICAgICAgICBbd2ViVmlldyBfcmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRBdFBvc2l0aW9uOkNHUG9p
bnRNYWtlKDMwMCwgMzAwKSBjb21wbGV0aW9uQmxvY2s6XihfV0tBY3RpdmF0ZWRFbGVtZW50SW5m
byAqaW5uZXJFbGVtZW50SW5mbykgeworICAgICAgICAgICAgRVhQRUNUX0VRKF9XS0FjdGl2YXRl
ZEVsZW1lbnRUeXBlVW5zcGVjaWZpZWQsIGlubmVyRWxlbWVudEluZm8udHlwZSk7CisgICAgICAg
ICAgICBmaW5pc2hlZFdpdGhJbm5lciA9IHRydWU7CisgICAgICAgIH1dOworICAgICAgICBjaGVj
a0VsZW1lbnRUeXBlQW5kQm91bmRpbmdSZWN0KG91dGVyRWxlbWVudEluZm8sIF9XS0FjdGl2YXRl
ZEVsZW1lbnRUeXBlSW1hZ2UsIENHUmVjdE1ha2UoMCwgMCwgMjAwLCAyMDApKTsKKyAgICAgICAg
ZmluaXNoZWRXaXRoT3V0ZXIgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZmluaXNoZWRXaXRoT3V0ZXIpOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZmluaXNoZWRXaXRoSW5uZXIpOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLm1t
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZTlhMjg2YmMzY2I4ZjM3NjM3NzA0NDdm
N2Y5ZGRmMjkwNzNkYmFkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1Bvc2l0aW9uSW5mb3JtYXRpb25U
ZXN0cy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDE0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCi0KLSNpbXBv
cnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCi0jaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCi0jaW1w
b3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgotI2ltcG9ydCA8V2ViS2l0L19XS0RyYWdn
YWJsZUVsZW1lbnRJbmZvLmg+Ci0KLUBpbXBsZW1lbnRhdGlvbiBfV0tEcmFnZ2FibGVFbGVtZW50
SW5mbyAoUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzKQotCi0tICh2b2lkKWV4cGVjdFRvQmVMaW5r
OihCT09MKWlzTGluayBpbWFnZTooQk9PTClpc0ltYWdlIGF0UG9pbnQ6KENHUG9pbnQpcG9pbnQK
LXsKLSAgICBFWFBFQ1RfRVEoaXNMaW5rLCBzZWxmLmlzTGluayk7Ci0gICAgRVhQRUNUX0VRKGlz
SW1hZ2UsIHNlbGYuaXNJbWFnZSk7Ci0gICAgRVhQRUNUX0VRKHBvaW50LngsIHNlbGYucG9pbnQu
eCk7Ci0gICAgRVhQRUNUX0VRKHBvaW50LnksIHNlbGYucG9pbnQueSk7Ci19Ci0KLUBlbmQKLQot
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewotCi1URVNUKFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0
cywgRmluZERyYWdnYWJsZUxpbmtBdFBvc2l0aW9uKQotewotICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwg
MCwgMzIwLCA1MDApXSk7Ci0gICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5h
bWVkOkAibGluay1hbmQtaW5wdXQiXTsKLQotICAgIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvICpp
bmZvcm1hdGlvbiA9IFt3ZWJWaWV3IF9kcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjpDR1BvaW50
TWFrZSgxMDAsIDUwKV07Ci0gICAgW2luZm9ybWF0aW9uIGV4cGVjdFRvQmVMaW5rOllFUyBpbWFn
ZTpOTyBhdFBvaW50OkNHUG9pbnRNYWtlKDEwMCwgNTApXTsKLX0KLQotVEVTVChQb3NpdGlvbklu
Zm9ybWF0aW9uVGVzdHMsIFJlcXVlc3REcmFnZ2FibGVMaW5rQXRQb3NpdGlvbikKLXsKLSAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwotICAgIFt3ZWJWaWV3IHN5bmNocm9ub3Vz
bHlMb2FkVGVzdFBhZ2VOYW1lZDpAImxpbmstYW5kLWlucHV0Il07Ci0KLSAgICBfX2Jsb2NrIGJv
b2wgaXNEb25lID0gZmFsc2U7Ci0gICAgW3dlYlZpZXcgX3JlcXVlc3REcmFnZ2FibGVFbGVtZW50
QXRQb3NpdGlvbjpDR1BvaW50TWFrZSgxMDAsIDUwKSBjb21wbGV0aW9uQmxvY2s6XihfV0tEcmFn
Z2FibGVFbGVtZW50SW5mbyAqaW5mb3JtYXRpb24pIHsKLSAgICAgICAgW2luZm9ybWF0aW9uIGV4
cGVjdFRvQmVMaW5rOllFUyBpbWFnZTpOTyBhdFBvaW50OkNHUG9pbnRNYWtlKDEwMCwgNTApXTsK
LSAgICAgICAgaXNEb25lID0gdHJ1ZTsKLSAgICB9XTsKLQotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmaXNEb25lKTsKLX0KLQotVEVTVChQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMsIEZp
bmREcmFnZ2FibGVMaW5rQXREaWZmZXJlbnRQb3NpdGlvbldpdGhpblJlcXVlc3RCbG9jaykKLXsK
LSAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwotICAgIFt3ZWJWaWV3IHN5bmNo
cm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAImxpbmstYW5kLWlucHV0Il07Ci0KLSAgICBfX2Js
b2NrIGJvb2wgaXNEb25lID0gZmFsc2U7Ci0gICAgW3dlYlZpZXcgX3JlcXVlc3REcmFnZ2FibGVF
bGVtZW50QXRQb3NpdGlvbjpDR1BvaW50TWFrZSgxMDAsIDUwKSBjb21wbGV0aW9uQmxvY2s6Xihf
V0tEcmFnZ2FibGVFbGVtZW50SW5mbyAqaW5mb3JtYXRpb24pIHsKLSAgICAgICAgX1dLRHJhZ2dh
YmxlRWxlbWVudEluZm8gKnN5bmNocm9ub3VzSW5mb3JtYXRpb24gPSBbd2ViVmlldyBfZHJhZ2dh
YmxlRWxlbWVudEF0UG9zaXRpb246Q0dQb2ludE1ha2UoMTAwLCAzMDApXTsKLSAgICAgICAgW3N5
bmNocm9ub3VzSW5mb3JtYXRpb24gZXhwZWN0VG9CZUxpbms6Tk8gaW1hZ2U6Tk8gYXRQb2ludDpD
R1BvaW50TWFrZSgxMDAsIDMwMCldOwotICAgICAgICBbaW5mb3JtYXRpb24gZXhwZWN0VG9CZUxp
bms6WUVTIGltYWdlOk5PIGF0UG9pbnQ6Q0dQb2ludE1ha2UoMTAwLCA1MCldOwotICAgICAgICBp
c0RvbmUgPSB0cnVlOwotICAgIH1dOwotCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZp
c0RvbmUpOwotfQotCi1URVNUKFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0cywgRmluZERyYWdnYWJs
ZUxpbmtBdFNhbWVQb3NpdGlvbldpdGhpblJlcXVlc3RCbG9jaykKLXsKLSAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RN
YWtlKDAsIDAsIDMyMCwgNTAwKV0pOwotICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVz
dFBhZ2VOYW1lZDpAImxpbmstYW5kLWlucHV0Il07Ci0KLSAgICBfX2Jsb2NrIGJvb2wgaXNEb25l
ID0gZmFsc2U7Ci0gICAgW3dlYlZpZXcgX3JlcXVlc3REcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlv
bjpDR1BvaW50TWFrZSgxMDAsIDUwKSBjb21wbGV0aW9uQmxvY2s6XihfV0tEcmFnZ2FibGVFbGVt
ZW50SW5mbyAqaW5mb3JtYXRpb24pIHsKLSAgICAgICAgX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8g
KnN5bmNocm9ub3VzSW5mb3JtYXRpb24gPSBbd2ViVmlldyBfZHJhZ2dhYmxlRWxlbWVudEF0UG9z
aXRpb246Q0dQb2ludE1ha2UoMTAwLCA1MCldOwotICAgICAgICBbc3luY2hyb25vdXNJbmZvcm1h
dGlvbiBleHBlY3RUb0JlTGluazpZRVMgaW1hZ2U6Tk8gYXRQb2ludDpDR1BvaW50TWFrZSgxMDAs
IDUwKV07Ci0gICAgICAgIFtpbmZvcm1hdGlvbiBleHBlY3RUb0JlTGluazpZRVMgaW1hZ2U6Tk8g
YXRQb2ludDpDR1BvaW50TWFrZSgxMDAsIDUwKV07Ci0gICAgICAgIGlzRG9uZSA9IHRydWU7Ci0g
ICAgfV07Ci0KLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7Ci19Ci0KLVRF
U1QoUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLCBSZXF1ZXN0RHJhZ2dhYmxlTGlua0F0U2FtZVBv
c2l0aW9uV2l0aGluUmVxdWVzdEJsb2NrKQotewotICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIw
LCA1MDApXSk7Ci0gICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAi
aW1hZ2UtYW5kLWNvbnRlbnRlZGl0YWJsZSJdOwotCi0gICAgX19ibG9jayBib29sIGlzRG9uZVdp
dGhJbm5lciA9IGZhbHNlOwotICAgIF9fYmxvY2sgYm9vbCBpc0RvbmVXaXRoT3V0ZXIgPSBmYWxz
ZTsKLQotICAgIFt3ZWJWaWV3IF9yZXF1ZXN0RHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246Q0dQ
b2ludE1ha2UoMTAwLCA1MCkgY29tcGxldGlvbkJsb2NrOl4oX1dLRHJhZ2dhYmxlRWxlbWVudElu
Zm8gKm91dGVySW5mb3JtYXRpb24pIHsKLSAgICAgICAgW3dlYlZpZXcgX3JlcXVlc3REcmFnZ2Fi
bGVFbGVtZW50QXRQb3NpdGlvbjpDR1BvaW50TWFrZSgxMDAsIDUwKSBjb21wbGV0aW9uQmxvY2s6
XihfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAqaW5uZXJJbmZvcm1hdGlvbikgewotICAgICAgICAg
ICAgW2lubmVySW5mb3JtYXRpb24gZXhwZWN0VG9CZUxpbms6Tk8gaW1hZ2U6WUVTIGF0UG9pbnQ6
Q0dQb2ludE1ha2UoMTAwLCA1MCldOwotICAgICAgICAgICAgaXNEb25lV2l0aElubmVyID0gdHJ1
ZTsKLSAgICAgICAgfV07Ci0gICAgICAgIFtvdXRlckluZm9ybWF0aW9uIGV4cGVjdFRvQmVMaW5r
Ok5PIGltYWdlOllFUyBhdFBvaW50OkNHUG9pbnRNYWtlKDEwMCwgNTApXTsKLSAgICAgICAgaXNE
b25lV2l0aE91dGVyID0gdHJ1ZTsKLSAgICB9XTsKLQotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmaXNEb25lV2l0aE91dGVyKTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlz
RG9uZVdpdGhJbm5lcik7Ci19Ci0KLVRFU1QoUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLCBSZXF1
ZXN0RHJhZ2dhYmxlTGlua0F0RGlmZmVyZW50UG9zaXRpb25XaXRoaW5SZXF1ZXN0QmxvY2spCi17
Ci0gICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKLSAgICBbd2ViVmlldyBzeW5j
aHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJpbWFnZS1hbmQtY29udGVudGVkaXRhYmxlIl07
Ci0KLSAgICBfX2Jsb2NrIGJvb2wgaXNEb25lV2l0aElubmVyID0gZmFsc2U7Ci0gICAgX19ibG9j
ayBib29sIGlzRG9uZVdpdGhPdXRlciA9IGZhbHNlOwotCi0gICAgW3dlYlZpZXcgX3JlcXVlc3RE
cmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjpDR1BvaW50TWFrZSgxMDAsIDUwKSBjb21wbGV0aW9u
QmxvY2s6XihfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAqb3V0ZXJJbmZvcm1hdGlvbikgewotICAg
ICAgICBbd2ViVmlldyBfcmVxdWVzdERyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOkNHUG9pbnRN
YWtlKDEwMCwgMzAwKSBjb21wbGV0aW9uQmxvY2s6XihfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAq
aW5uZXJJbmZvcm1hdGlvbikgewotICAgICAgICAgICAgW2lubmVySW5mb3JtYXRpb24gZXhwZWN0
VG9CZUxpbms6Tk8gaW1hZ2U6Tk8gYXRQb2ludDpDR1BvaW50TWFrZSgxMDAsIDMwMCldOwotICAg
ICAgICAgICAgaXNEb25lV2l0aElubmVyID0gdHJ1ZTsKLSAgICAgICAgfV07Ci0gICAgICAgIFtv
dXRlckluZm9ybWF0aW9uIGV4cGVjdFRvQmVMaW5rOk5PIGltYWdlOllFUyBhdFBvaW50OkNHUG9p
bnRNYWtlKDEwMCwgNTApXTsKLSAgICAgICAgaXNEb25lV2l0aE91dGVyID0gdHJ1ZTsKLSAgICB9
XTsKLQotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lV2l0aE91dGVyKTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZVdpdGhJbm5lcik7Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29j
b2EvVGVzdFdLV2ViVmlldy5oCmluZGV4IGVkYjFmZDVkZmExNzFlZmEwMGYzNjNjNjQ4ODM4NDA1
NWRjYjk4ZDMuLjI0OTdlYmQ3MDhhODlhM2Q5NmE0ZjJlNjNlNmY0NjAzYzdlODQ1NTEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCkBAIC0zMCw2ICszMCwxMCBA
QAogCiBAY2xhc3MgX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOwogCisjaWYgUExBVEZPUk0o
SU9TKQorQGNsYXNzIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvOworI2VuZGlmCisKIEBpbnRlcmZh
Y2UgVGVzdE1lc3NhZ2VIYW5kbGVyIDogTlNPYmplY3QgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+
CiAtICh2b2lkKWFkZE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSB3aXRoSGFuZGxlcjooZGlz
cGF0Y2hfYmxvY2tfdCloYW5kbGVyOwogQGVuZApAQCAtNDksNiArNTMsNyBAQAogI2lmIFBMQVRG
T1JNKElPUykKIEBpbnRlcmZhY2UgVGVzdFdLV2ViVmlldyAoSU9TT25seSkKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgUmV0YWluUHRyPE5TQXJyYXk+IHNlbGVjdGlvblJlY3RzQWZ0
ZXJQcmVzZW50YXRpb25VcGRhdGU7CistIChfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWFjdGl2
YXRlZEVsZW1lbnRBdFBvc2l0aW9uOihDR1BvaW50KXBvc2l0aW9uOwogQGVuZAogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQppbmRleCAxZjBmMDdl
MmQ3ZTYyNjdmNDhjZDU4ZWVhMGEzZThlOTYxOWQ1MDAzLi44ZDRhZGM3MDQwNGQ4MjAzMDI0MDA1
NTZiNjc0ZjlkYzk3ZWU2MjZiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29h
L1Rlc3RXS1dlYlZpZXcubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tX
ZWJWaWV3Lm1tCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdD
b25maWd1cmF0aW9uUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktpdFByaXZhdGUuaD4K
KyNpbXBvcnQgPFdlYktpdC9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5oPgogI2ltcG9ydCA8V2Vi
S2l0L19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oPgogI2ltcG9ydCA8b2JqYy9ydW50aW1l
Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CkBAIC0yOTQsNiArMjk1LDE5IEBAIC0gKFJl
dGFpblB0cjxOU0FycmF5PilzZWxlY3Rpb25SZWN0c0FmdGVyUHJlc2VudGF0aW9uVXBkYXRlCiAg
ICAgcmV0dXJuIHNlbGVjdGlvblJlY3RzOwogfQogCistIChfV0tBY3RpdmF0ZWRFbGVtZW50SW5m
byAqKWFjdGl2YXRlZEVsZW1lbnRBdFBvc2l0aW9uOihDR1BvaW50KXBvc2l0aW9uCit7CisgICAg
X19ibG9jayBSZXRhaW5QdHI8X1dLQWN0aXZhdGVkRWxlbWVudEluZm8+IGluZm87CisgICAgX19i
bG9jayBib29sIGZpbmlzaGVkID0gZmFsc2U7CisgICAgW3NlbGYgX3JlcXVlc3RBY3RpdmF0ZWRF
bGVtZW50QXRQb3NpdGlvbjpwb3NpdGlvbiBjb21wbGV0aW9uQmxvY2s6XihfV0tBY3RpdmF0ZWRF
bGVtZW50SW5mbyAqZWxlbWVudEluZm8pIHsKKyAgICAgICAgaW5mbyA9IGVsZW1lbnRJbmZvOwor
ICAgICAgICBmaW5pc2hlZCA9IHRydWU7CisgICAgfV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmZpbmlzaGVkKTsKKyAgICByZXR1cm4gaW5mby5hdXRvcmVsZWFzZSgpOworfQor
CiBAZW5kCiAKICNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>