<?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>196360</bug_id>
          
          <creation_ts>2019-03-28 11:55:00 -0700</creation_ts>
          <short_desc>[iPad] Should open popover when the spacebar is pressed</short_desc>
          <delta_ts>2019-04-09 14:45:11 -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>UI Events</component>
          <version>WebKit Local Build</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 12</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>196272</dependson>
          <blocked>190571</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1522153</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-03-28 11:55:00 -0700</bug_when>
    <thetext>Make iOS match Mac behavior. Pressing the spacebar when a popup button is focused (e.g. &lt;select&gt;) should open the picker/popover.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522154</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-28 11:56:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/49389129&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522225</commentid>
    <comment_count>2</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-03-28 14:37:47 -0700</bug_when>
    <thetext>For now let&apos;s keep the iPhone behavior of blurring the element when the Done button is pressed and hence pressing spacebar does nothing (because there is no focused element).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522252</commentid>
    <comment_count>3</comment_count>
      <attachid>366215</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-03-28 15:25:20 -0700</bug_when>
    <thetext>Created attachment 366215
Patch and layout test

Test depends on the patch for bug #196272.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522271</commentid>
    <comment_count>4</comment_count>
      <attachid>366218</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-03-28 15:59:34 -0700</bug_when>
    <thetext>Created attachment 366218
Patch and layout test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525746</commentid>
    <comment_count>5</comment_count>
      <attachid>367068</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-04-09 13:24:58 -0700</bug_when>
    <thetext>Created attachment 367068
Patch (Rebased copy of Dan&apos;s patch)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525748</commentid>
    <comment_count>6</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-04-09 13:28:40 -0700</bug_when>
    <thetext>I uploaded a rebased copy of Dan&apos;s patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525749</commentid>
    <comment_count>7</comment_count>
      <attachid>367068</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-04-09 13:32:50 -0700</bug_when>
    <thetext>Comment on attachment 367068
Patch (Rebased copy of Dan&apos;s patch)

r=me, assuming ews is happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525764</commentid>
    <comment_count>8</comment_count>
      <attachid>367068</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-09 14:45:09 -0700</bug_when>
    <thetext>Comment on attachment 367068
Patch (Rebased copy of Dan&apos;s patch)

Clearing flags on attachment: 367068

Committed r244096: &lt;https://trac.webkit.org/changeset/244096&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525765</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-09 14:45:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366215</attachid>
            <date>2019-03-28 15:25:20 -0700</date>
            <delta_ts>2019-03-28 15:59:33 -0700</delta_ts>
            <desc>Patch and layout test</desc>
            <filename>bug-196360-20190328152519.patch</filename>
            <type>text/plain</type>
            <size>27561</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM3MDJmMzFhZDBhM2RjZTQz
NDk4MmE2MmQ5ZDMyM2Q1YjIzMjRkZWYuLjFjZDc4MmNhNjUyZGU0ZTRkYTA1NmFjMWYxYmQwNjRm
ZjU0N2QwZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTktMDMtMjggIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpUGFkXSBTaG91bGQgb3BlbiBw
b3BvdmVyIHdoZW4gdGhlIHNwYWNlYmFyIGlzIHByZXNzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjM2MAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNDkzODkxMjk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUHJlc3NpbmcgdGhlIHNwYWNlYmFyIHNob3VsZCBvcGVuIHRoZSBwb3BvdmVyIGZvciBh
IGZvY3VzZWQgcG9wdXAgYnV0dG9uIChlLmcuIDxzZWxlY3Q+KSBvbiBpT1MKKyAgICAgICAganVz
dCBsaWtlIGl0IGRvZXMgb24gdGhlIE1hYy4KKworICAgICAgICBGb3Igbm93LCB3ZSBrZWVwIHRo
ZSBpUGhvbmUgYmVoYXZpb3Igb2YgYmx1cnJpbmcgdGhlIGVsZW1lbnQgd2hlbiB0aGUgRG9uZSBi
dXR0b24gaXMgcHJlc3NlZCBhbmQKKyAgICAgICAgaGVuY2UgcHJlc3Npbmcgc3BhY2ViYXIgZG9l
cyBub3RoaW5nIChiZWNhdXNlIHRoZXJlIGlzIG5vIGZvY3VzZWQgZWxlbWVudCkuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IGFjY2Vzc29yeU9wZW5dKTogQWRkZWQuIEV4dHJhY3RlZCB0aGUgbG9naWMg
ZnJvbSAtX2VsZW1lbnREaWRGb2N1cyB0byBzY3JvbGwgdG8KKyAgICAgICAgdGhlIGZvY3VzZWQg
ZWxlbWVudCwgdXBkYXRlIHRoZSBhY2Nlc3NvcnkgYW5kIHRoZW4gdGVsbCB0aGUgYWNjZXNzb3J5
IHRvIGJlZ2luIGVkaXRpbmcuCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2VsZW1lbnREaWRG
b2N1czp1c2VySXNJbnRlcmFjdGluZzpibHVyUHJldmlvdXNOb2RlOmNoYW5naW5nQWN0aXZpdHlT
dGF0ZTp1c2VyT2JqZWN0Ol0pOgorICAgICAgICBXcml0ZSBpbiB0ZXJtcyBvZiAtYWNjZXNzb3J5
T3Blbi4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBlcmlwaGVyYWxCYXNl
Lm1tOgorICAgICAgICAoLVtXS0Zvcm1QZXJpcGhlcmFsQmFzZSBoYW5kbGVLZXlFdmVudDpdKTog
SW50ZXJwcmV0IHRoZSBzcGFjZWJhciB3aGVuIHRoZSBwZXJpcGhlcmFsIGlzIGNsb3NlZCAoIV9l
ZGl0aW5nKQorICAgICAgICBhbmQgY2FsbCAtYWNjZXNzb3J5T3BlbiB0byB1bHRpbWF0ZWx5IGNh
bGwgYmFjayB0byB0aGlzIHBlcmlwaGVyYWwgdG8gdGVsbCBpdCB0byBiZWdpbiBlZGl0aW5nLAor
ICAgICAgICB3aGljaCB3aWxsIGNhdXNlIHRoZSBwb3BvdmVyIHRvIGFwcGVhciBhZ2Fpbi4KKwog
MjAxOS0wMy0yNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAg
W2lQYWRdIFRhcHBpbmcgb24gYSBwb3B1cCBmb3JtIGNvbnRyb2wgbWF5IG5vdCBzaG93IGEgcG9w
b3ZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5oCmluZGV4IDU0OWNkZjkyNTQwYzNmM2FiYTllMmE4ZTkzZDliYjhhOTE3
MzhkYTkuLjFiYWI5ZjJmOGZmZmZiZTMxODdiNmQ1ODdhMjA2YTlmNmI1NzliMDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLmgKQEAgLTQyOCw3ICs0MjgsNiBAQCBGT1JfRUFDSF9QUklWQVRFX1dLQ09OVEVOVFZJRVdf
QUNUSU9OKERFQ0xBUkVfV0tDT05URU5UVklFV19BQ1RJT05fRk9SX1dFQl9WSUVXKQogLSAodm9p
ZClfc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyOihCT09MKWhhc1ZpZGVvIGZyb21SZWN0Oihjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JillbGVtZW50UmVjdCByb3V0ZVNoYXJpbmdQb2xpY3k6KFdlYkNv
cmU6OlJvdXRlU2hhcmluZ1BvbGljeSlwb2xpY3kgcm91dGluZ0NvbnRleHRVSUQ6KE5TU3RyaW5n
ICopY29udGV4dFVJRDsKIC0gKHZvaWQpX3Nob3dSdW5PcGVuUGFuZWw6KEFQSTo6T3BlblBhbmVs
UGFyYW1ldGVycyopcGFyYW1ldGVycyByZXN1bHRMaXN0ZW5lcjooV2ViS2l0OjpXZWJPcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lclByb3h5KilsaXN0ZW5lcjsKIC0gKHZvaWQpX3Nob3dTaGFyZVNoZWV0
Oihjb25zdCBXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMJilzaGFyZURhdGEgY29tcGxl
dGlvbkhhbmRsZXI6KFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiljb21wbGV0
aW9uSGFuZGxlcjsKLS0gKHZvaWQpYWNjZXNzb3J5RG9uZTsKIC0gKHZvaWQpX2RpZEhhbmRsZUtl
eUV2ZW50Oig6OldlYkV2ZW50ICopZXZlbnQgZXZlbnRXYXNIYW5kbGVkOihCT09MKWV2ZW50V2Fz
SGFuZGxlZDsKIC0gKFZlY3RvcjxXZWJLaXQ6Ok9wdGlvbkl0ZW0+JikgZm9jdXNlZFNlbGVjdEVs
ZW1lbnRPcHRpb25zOwogLSAodm9pZClfZW5hYmxlSW5zcGVjdG9yTm9kZVNlYXJjaDsKQEAgLTQ0
Nyw2ICs0NDYsMTEgQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNM
QVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKHZvaWQpX2FjY2Vzc2li
aWxpdHlDbGVhclNlbGVjdGlvbjsKIC0gKFdLRm9ybUlucHV0U2Vzc2lvbiAqKV9mb3JtSW5wdXRT
ZXNzaW9uOwogCisvLyBVSVdlYkZvcm1BY2Nlc3NvcnlEZWxlZ2F0ZSBwcm90b2NvbAorLSAodm9p
ZClhY2Nlc3NvcnlEb25lOworCistICh2b2lkKWFjY2Vzc29yeU9wZW47CisKIC0gKHZvaWQpX3Jl
cXVlc3RET01QYXN0ZUFjY2Vzc1dpdGhFbGVtZW50UmVjdDooY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYpZWxlbWVudFJlY3Qgb3JpZ2luSWRlbnRpZmllcjooY29uc3QgU3RyaW5nJilvcmlnaW5JZGVu
dGlmaWVyIGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYmKWNvbXBsZXRpb25IYW5kbGVyOwogCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb24gY3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCAz
ZjMyNDAyZTc4NDY4Zjg5YjI2ZDk3N2ExNThlYTc5N2RkM2U1ZDhkLi5hYzcxODZjZWY0ZDUyNzQ5
ZjI3NDM5MDg4MWJkMTZlYzZiMDAxODc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTM3OTMsNiArMzc5
MywxNSBAQCAtIChVSVdlYkZvcm1BY2Nlc3NvcnkgKilmb3JtQWNjZXNzb3J5VmlldwogICAgIHJl
dHVybiBfZm9ybUFjY2Vzc29yeVZpZXcuZ2V0KCk7CiB9CiAKKy0gKHZvaWQpYWNjZXNzb3J5T3Bl
bgoreworICAgIGlmICghX2lucHV0UGVyaXBoZXJhbCkKKyAgICAgICAgcmV0dXJuOworICAgIFtz
ZWxmIF96b29tVG9SZXZlYWxGb2N1c2VkRWxlbWVudF07CisgICAgW3NlbGYgX3VwZGF0ZUFjY2Vz
c29yeV07CisgICAgW19pbnB1dFBlcmlwaGVyYWwgYmVnaW5FZGl0aW5nXTsKK30KKwogLSAodm9p
ZClfdXBkYXRlQWNjZXNzb3J5CiB7CiAgICAgYXV0byogYWNjZXNzb3J5VmlldyA9IHNlbGYuZm9y
bUFjY2Vzc29yeVZpZXc7IC8vIENyZWF0ZXMgb25lLCBpZiBuZWVkZWQuCkBAIC00OTcxLDkgKzQ5
ODAsNyBAQCAtICh2b2lkKV9lbGVtZW50RGlkRm9jdXM6KGNvbnN0IFdlYktpdDo6Rm9jdXNlZEVs
ZW1lbnRJbmZvcm1hdGlvbiYpaW5mb3JtYXRpb24gdQogICAgICAgICBpZiAoX2lucHV0UGVyaXBo
ZXJhbCkgewogICAgICAgICAgICAgaWYgKCFzZWxmLmlzRmlyc3RSZXNwb25kZXIpCiAgICAgICAg
ICAgICAgICAgW3NlbGYgYmVjb21lRmlyc3RSZXNwb25kZXJdOwotICAgICAgICAgICAgW3NlbGYg
X3pvb21Ub1JldmVhbEZvY3VzZWRFbGVtZW50XTsKLSAgICAgICAgICAgIFtzZWxmIF91cGRhdGVB
Y2Nlc3NvcnldOwotICAgICAgICAgICAgW19pbnB1dFBlcmlwaGVyYWwgYmVnaW5FZGl0aW5nXTsK
KyAgICAgICAgICAgIFtzZWxmIGFjY2Vzc29yeU9wZW5dOwogICAgICAgICB9CiAgICAgICAgIHJl
dHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9y
bXMvV0tGb3JtUGVyaXBoZXJhbEJhc2UubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
Zm9ybXMvV0tGb3JtUGVyaXBoZXJhbEJhc2UubW0KaW5kZXggODA5OTlkYTUxYjg3MWQzMzM4ODJm
MzZhZGUwN2VjNWQ4YTc1YzZjYi4uMWU3ODczOGQyMTMzMDEyMDliOGJmM2ZlYmMwMzY3ZTYzZTAx
MTYzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9y
bVBlcmlwaGVyYWxCYXNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jt
cy9XS0Zvcm1QZXJpcGhlcmFsQmFzZS5tbQpAQCAtODMsNiArODMsMTAgQEAgLSAoQk9PTCloYW5k
bGVLZXlFdmVudDooVUlFdmVudCAqKWV2ZW50CiAgICAgICAgIFtfdmlldyBhY2Nlc3NvcnlEb25l
XTsKICAgICAgICAgcmV0dXJuIFlFUzsKICAgICB9CisgICAgaWYgKCFfZWRpdGluZyAmJiBrZXlF
dmVudC5fa2V5Q29kZSA9PSBrSElEVXNhZ2VfS2V5Ym9hcmRTcGFjZWJhcikgeworICAgICAgICBb
X3ZpZXcgYWNjZXNzb3J5T3Blbl07CisgICAgICAgIHJldHVybiBZRVM7CisgICAgfQogICAgIHJl
dHVybiBOTzsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDBhMWQwNjc1M2VmZDc5ZTI1MTMxZmQ4ZGFlY2U3OTEwOGZhNTVhODMuLjIwODAx
ZGQ5Nzk5ZTRkNmJjOTFhY2Y2M2U5NTUzY2U2N2Q1NDRlMGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxOS0wMy0y
OCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lQYWRdIFNo
b3VsZCBvcGVuIHBvcG92ZXIgd2hlbiB0aGUgc3BhY2ViYXIgaXMgcHJlc3NlZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MzYwCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS80OTM4OTEyOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgdGVzdGluZyBpbmZyYXN0cnVjdHVyZSB0byBzdXBwb3J0IHdh
aXRpbmcgZm9yIGEgcG9wb3ZlciB0byBiZSBwcmVzZW50ZWQgb3IgZGlzbWlzc2VkLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbToKKyAgICAg
ICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjppc1Nob3dpbmdQb3BvdmVyIGNvbnN0KTogQWRk
ZWQuCisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXRXaWxsUHJl
c2VudFBvcG92ZXJDYWxsYmFjayk6IEFkZGVkLgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRy
b2xsZXI6OnBsYXRmb3JtU2V0RGlkRGlzbWlzc1BvcG92ZXJDYWxsYmFjayk6IEFkZGVkLgorICAg
ICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0
Q29udHJvbGxlci5pZGw6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRl
eHQvVUlTY3JpcHRDb250ZXh0Lmg6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlw
dENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRD
b250cm9sbGVyOjpzZXRXaWxsUHJlc2VudFBvcG92ZXJDYWxsYmFjayk6IEFkZGVkLgorICAgICAg
ICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OndpbGxQcmVzZW50UG9wb3ZlckNhbGxiYWNrIGNv
bnN0KTogQWRkZWQuCisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkRGlz
bWlzc1BvcG92ZXJDYWxsYmFjayk6IEFkZGVkLgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRy
b2xsZXI6OmRpZERpc21pc3NQb3BvdmVyQ2FsbGJhY2sgY29uc3QpOiBBZGRlZC4KKyAgICAgICAg
KFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjppc1Nob3dpbmdQb3BvdmVyIGNvbnN0KTogQWRkZWQu
CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXRXaWxsUHJlc2Vu
dFBvcG92ZXJDYWxsYmFjayk6IEFkZGVkLgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xs
ZXI6OnBsYXRmb3JtU2V0RGlkRGlzbWlzc1BvcG92ZXJDYWxsYmFjayk6IEFkZGVkLgorICAgICAg
ICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5o
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5o
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5t
bToKKyAgICAgICAgKC1bVGVzdFJ1bm5lcldLV2ViVmlldyBpbml0V2l0aEZyYW1lOmNvbmZpZ3Vy
YXRpb246XSk6IFVwZGF0ZSBzb21lIHN0YXRlLgorICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJW
aWV3IHJlc2V0SW50ZXJhY3Rpb25DYWxsYmFja3NdKTogRGl0dG8uCisgICAgICAgICgtW1Rlc3RS
dW5uZXJXS1dlYlZpZXcgX3dpbGxQcmVzZW50UG9wb3Zlcl0pOiBBZGRlZC4KKyAgICAgICAgKC1b
VGVzdFJ1bm5lcldLV2ViVmlldyBfZGlkRGlzbWlzc1BvcG92ZXJdKTogQWRkZWQuCisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tOgorICAgICAg
ICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmlzU2hvd2luZ1BvcG92ZXIgY29uc3QpOiBBZGRl
ZC4KKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNldFdpbGxQcmVz
ZW50UG9wb3ZlckNhbGxiYWNrKTogQWRkZWQuCisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJv
bGxlcjo6cGxhdGZvcm1TZXREaWREaXNtaXNzUG9wb3ZlckNhbGxiYWNrKTogQWRkZWQuCisKIDIw
MTktMDMtMjUgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJlbW92ZSBOYXZpZ2F0b3JDb250ZW50VXRpbHMgaW4gV2ViQ29yZS9Nb2R1bGVzCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1t
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQppbmRl
eCBjMTIwOTUyYjU3ZjliNWJiZTNlNGUwNWJmNTA3Y2NjOTY3NmJkNDIxLi5kMTJmNDU4Yzg1NzI1
NTUxZWFhNjA4NGJlNzI5OWVmOTA0MTcyNWUxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KQEAgLTM0OSw2ICszNDksMTkgQEAgdm9p
ZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0RGlkSGlkZU1lbnVDYWxsYmFjaygpCiB7
CiB9CiAKK2Jvb2wgVUlTY3JpcHRDb250cm9sbGVyOjppc1Nob3dpbmdQb3BvdmVyKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0
Zm9ybVNldFdpbGxQcmVzZW50UG9wb3ZlckNhbGxiYWNrKCkKK3sKK30KKwordm9pZCBVSVNjcmlw
dENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0RGlkRGlzbWlzc1BvcG92ZXJDYWxsYmFjaygpCit7Cit9
CisKIEpTT2JqZWN0UmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6cmVjdEZvck1lbnVBY3Rpb24oSlNT
dHJpbmdSZWYpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRy
b2xsZXIuaWRsIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGlu
Z3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAppbmRleCA5YWZjNTFlZmZjOWM5ODUzMTE4YTEyZGZi
MjcyMGQ3ZGQ4MjQ0N2MzLi4wMzgxMDBlNTYyM2YyYTVhNWYyYmE4NTI3NmFiYmY4YTE0OWY2MmRl
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5k
aW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
VUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKQEAgLTIyOSw2
ICsyMjksMTAgQEAgaW50ZXJmYWNlIFVJU2NyaXB0Q29udHJvbGxlciB7CiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIG9iamVjdCBtZW51UmVjdDsKICAgICBvYmplY3QgcmVjdEZvck1lbnVBY3Rpb24o
RE9NU3RyaW5nIGFjdGlvbik7CiAKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpc1No
b3dpbmdQb3BvdmVyOworICAgIGF0dHJpYnV0ZSBvYmplY3Qgd2lsbFByZXNlbnRQb3BvdmVyQ2Fs
bGJhY2s7CisgICAgYXR0cmlidXRlIG9iamVjdCBkaWREaXNtaXNzUG9wb3ZlckNhbGxiYWNrOwor
CiAgICAgYXR0cmlidXRlIG9iamVjdCB3aWxsQmVnaW5ab29taW5nQ2FsbGJhY2s7CiAgICAgYXR0
cmlidXRlIG9iamVjdCBkaWRFbmRab29taW5nQ2FsbGJhY2s7CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udGV4dC5oIGIvVG9v
bHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250ZXh0LmgKaW5k
ZXggODA0MDY0N2EyM2YyMzc2MThhM2ViZDY1ZDc2MjI3ZThjNGEyYjZkZi4uNDdmZmU4ZmIxYzQ1
ZWI2MzYwZjkxYjc1OTNlMDMyMTMxMTdhYWQyOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5l
clNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250ZXh0LmgKKysrIGIvVG9vbHMvVGVz
dFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250ZXh0LmgKQEAgLTU2LDYg
KzU2LDggQEAgdHlwZWRlZiBlbnVtICB7CiAgICAgQ2FsbGJhY2tUeXBlRGlkSGlkZUtleWJvYXJk
LAogICAgIENhbGxiYWNrVHlwZURpZFNob3dNZW51LAogICAgIENhbGxiYWNrVHlwZURpZEhpZGVN
ZW51LAorICAgIENhbGxiYWNrVHlwZVdpbGxQcmVzZW50UG9wb3ZlciwKKyAgICBDYWxsYmFja1R5
cGVEaWREaXNtaXNzUG9wb3ZlciwKICAgICBDYWxsYmFja1R5cGVEaWRFbmRTY3JvbGxpbmcsCiAg
ICAgQ2FsbGJhY2tUeXBlRGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uLAogICAgIENhbGxi
YWNrVHlwZURpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb24sCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwIGIv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVy
LmNwcAppbmRleCBlZDNlMzQyYjRkMGUyYjYyMzkwYTI5NzQ2ZmVmMDk5ODFmMmNiOWEyLi4zYTQ0
YTU3YmI3MjhkMWYzYTFhYzU0MjA1MWIyNjNjOTQ4ZGU0MGI4IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJv
bGxlci5jcHAKQEAgLTIyNyw2ICsyMjcsMjggQEAgSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xs
ZXI6OmRpZEhpZGVNZW51Q2FsbGJhY2soKSBjb25zdAogICAgIHJldHVybiBtX2NvbnRleHQtPmNh
bGxiYWNrV2l0aElEKENhbGxiYWNrVHlwZURpZEhpZGVNZW51KTsKIH0KIAordm9pZCBVSVNjcmlw
dENvbnRyb2xsZXI6OnNldFdpbGxQcmVzZW50UG9wb3ZlckNhbGxiYWNrKEpTVmFsdWVSZWYgY2Fs
bGJhY2spCit7CisgICAgbV9jb250ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxs
YmFja1R5cGVXaWxsUHJlc2VudFBvcG92ZXIpOworICAgIHBsYXRmb3JtU2V0V2lsbFByZXNlbnRQ
b3BvdmVyQ2FsbGJhY2soKTsKK30KKworSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6Ondp
bGxQcmVzZW50UG9wb3ZlckNhbGxiYWNrKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb250ZXh0
LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVXaWxsUHJlc2VudFBvcG92ZXIpOworfQorCit2
b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkRGlzbWlzc1BvcG92ZXJDYWxsYmFjayhKU1Zh
bHVlUmVmIGNhbGxiYWNrKQoreworICAgIG1fY29udGV4dC0+cmVnaXN0ZXJDYWxsYmFjayhjYWxs
YmFjaywgQ2FsbGJhY2tUeXBlRGlkRGlzbWlzc1BvcG92ZXIpOworICAgIHBsYXRmb3JtU2V0RGlk
RGlzbWlzc1BvcG92ZXJDYWxsYmFjaygpOworfQorCitKU1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJv
bGxlcjo6ZGlkRGlzbWlzc1BvcG92ZXJDYWxsYmFjaygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
Y29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkRGlzbWlzc1BvcG92ZXIpOwor
fQorCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6em9v
bVRvU2NhbGUoZG91YmxlLCBKU1ZhbHVlUmVmKQpAQCAtNTQ5LDYgKzU3MSwxOSBAQCB2b2lkIFVJ
U2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXREaWRIaWRlTWVudUNhbGxiYWNrKCkKIHsKIH0K
IAorYm9vbCBVSVNjcmlwdENvbnRyb2xsZXI6OmlzU2hvd2luZ1BvcG92ZXIoKSBjb25zdAorewor
ICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3Jt
U2V0V2lsbFByZXNlbnRQb3BvdmVyQ2FsbGJhY2soKQoreworfQorCit2b2lkIFVJU2NyaXB0Q29u
dHJvbGxlcjo6cGxhdGZvcm1TZXREaWREaXNtaXNzUG9wb3ZlckNhbGxiYWNrKCkKK3sKK30KKwog
SlNPYmplY3RSZWYgVUlTY3JpcHRDb250cm9sbGVyOjptZW51UmVjdCgpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2Ny
aXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
VUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IDVhOGRmNmVkZTNhODNk
YjQyNTY2MjlmZDI5ZTIzYmYzNTNhZjhmNDYuLmVlNDUwNmFiNDRmNDI0Mjg1NjRmNTE1OTIzZmFm
MTI1NGMxOGU4M2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRD
b250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
VUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCkBAIC0xNjUsMTAgKzE2NSwxNSBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHNldERpZEhpZGVNZW51Q2FsbGJhY2soSlNWYWx1ZVJlZik7
CiAgICAgSlNWYWx1ZVJlZiBkaWRIaWRlTWVudUNhbGxiYWNrKCkgY29uc3Q7Ci0KICAgICB2b2lk
IHNldERpZFNob3dNZW51Q2FsbGJhY2soSlNWYWx1ZVJlZik7CiAgICAgSlNWYWx1ZVJlZiBkaWRT
aG93TWVudUNhbGxiYWNrKCkgY29uc3Q7CiAKKyAgICBib29sIGlzU2hvd2luZ1BvcG92ZXIoKSBj
b25zdDsKKyAgICB2b2lkIHNldERpZERpc21pc3NQb3BvdmVyQ2FsbGJhY2soSlNWYWx1ZVJlZik7
CisgICAgSlNWYWx1ZVJlZiBkaWREaXNtaXNzUG9wb3ZlckNhbGxiYWNrKCkgY29uc3Q7CisgICAg
dm9pZCBzZXRXaWxsUHJlc2VudFBvcG92ZXJDYWxsYmFjayhKU1ZhbHVlUmVmKTsKKyAgICBKU1Zh
bHVlUmVmIHdpbGxQcmVzZW50UG9wb3ZlckNhbGxiYWNrKCkgY29uc3Q7CisKICAgICBib29sIGlz
U2hvd2luZ01lbnUoKSBjb25zdDsKICAgICBKU09iamVjdFJlZiByZWN0Rm9yTWVudUFjdGlvbihK
U1N0cmluZ1JlZiBhY3Rpb24pIGNvbnN0OwogICAgIEpTT2JqZWN0UmVmIG1lbnVSZWN0KCkgY29u
c3Q7CkBAIC0yNDksNiArMjU0LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtU2V0RGlk
SGlkZUtleWJvYXJkQ2FsbGJhY2soKTsKICAgICB2b2lkIHBsYXRmb3JtU2V0RGlkU2hvd01lbnVD
YWxsYmFjaygpOwogICAgIHZvaWQgcGxhdGZvcm1TZXREaWRIaWRlTWVudUNhbGxiYWNrKCk7Cisg
ICAgdm9pZCBwbGF0Zm9ybVNldFdpbGxQcmVzZW50UG9wb3ZlckNhbGxiYWNrKCk7CisgICAgdm9p
ZCBwbGF0Zm9ybVNldERpZERpc21pc3NQb3BvdmVyQ2FsbGJhY2soKTsKICAgICB2b2lkIHBsYXRm
b3JtU2V0RGlkRW5kU2Nyb2xsaW5nQ2FsbGJhY2soKTsKICAgICB2b2lkIHBsYXRmb3JtQ2xlYXJB
bGxDYWxsYmFja3MoKTsKICAgICB2b2lkIHBsYXRmb3JtUGxheUJhY2tFdmVudFN0cmVhbShKU1N0
cmluZ1JlZiwgSlNWYWx1ZVJlZik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29j
b2EvVGVzdFJ1bm5lcldLV2ViVmlldy5oCmluZGV4IGJjZDYyZGY2NmU4NmQ1OWVjNzU5OWRlODEy
NTRhZWM5NThkYjAwMmQuLjk2ZTUxNTI2MWIyNTg4ZjM3MzZlNjg4OTE1MTcxYTA5OWM0ZTg2NGUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2Vi
Vmlldy5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2Vi
Vmlldy5oCkBAIC00Myw2ICs0Myw4IEBACiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9p
ZCAoXmRpZEhpZGVLZXlib2FyZENhbGxiYWNrKSh2b2lkKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBjb3B5KSB2b2lkICheZGlkU2hvd01lbnVDYWxsYmFjaykodm9pZCk7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgY29weSkgdm9pZCAoXmRpZEhpZGVNZW51Q2FsbGJhY2spKHZvaWQpOworQHByb3Bl
cnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF53aWxsUHJlc2VudFBvcG92ZXJDYWxsYmFjayko
dm9pZCk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZERpc21pc3NQb3Bv
dmVyQ2FsbGJhY2spKHZvaWQpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5k
aWRFbmRTY3JvbGxpbmdDYWxsYmFjaykodm9pZCk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29w
eSkgdm9pZCAoXnJvdGF0aW9uRGlkRW5kQ2FsbGJhY2spKHZvaWQpOwogQHByb3BlcnR5IChub25h
dG9taWMsIGNvcHkpIE5TU3RyaW5nICphY2Nlc3NpYmlsaXR5U3BlYWtTZWxlY3Rpb25Db250ZW50
OwpAQCAtNTYsNiArNTgsNyBAQAogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdl
dHRlcj1pc1Nob3dpbmdLZXlib2FyZCkgQk9PTCBzaG93aW5nS2V5Ym9hcmQ7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc1Nob3dpbmdNZW51KSBCT09MIHNob3dpbmdN
ZW51OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNTaG93aW5nUG9w
b3ZlcikgQk9PTCBzaG93aW5nUG9wb3ZlcjsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24p
IEJPT0wgdXNlc1NhZmFyaUxpa2VSb3RhdGlvbjsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSwgZ2V0dGVyPWlzSW50ZXJhY3RpbmdXaXRoRm9ybUNvbnRyb2wpIEJPT0wgaW50ZXJhY3Rp
bmdXaXRoRm9ybUNvbnRyb2w7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Y29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29j
b2EvVGVzdFJ1bm5lcldLV2ViVmlldy5tbQppbmRleCAxNGQ1ZDU5ZmMzNDlhN2FkZjJmYTc4MDA1
MDdiMDc0YWE3YzNiNjhlLi4yNTgwODBlNDc5ZWVkYWI3NGZkNzAxY2UzODMyZDRkYTg1MTNhMmIy
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dl
YlZpZXcubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tX
ZWJWaWV3Lm1tCkBAIC01NSw2ICs1NSw3IEBAIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2
b2lkICheem9vbVRvU2NhbGVDb21wbGV0aW9uSGFuZGxlcikodm9pZCk7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgY29weSkgdm9pZCAoXnJldHJpZXZlU3BlYWtTZWxlY3Rpb25Db250ZW50Q29tcGxl
dGlvbkhhbmRsZXIpKHZvaWQpOwogQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc1Nob3dp
bmdLZXlib2FyZCwgc2V0dGVyPXNldElzU2hvd2luZ0tleWJvYXJkOikgQk9PTCBzaG93aW5nS2V5
Ym9hcmQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPWlzU2hvd2luZ01lbnUsIHNldHRl
cj1zZXRJc1Nob3dpbmdNZW51OikgQk9PTCBzaG93aW5nTWVudTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBnZXR0ZXI9aXNTaG93aW5nUG9wb3Zlciwgc2V0dGVyPXNldElzU2hvd2luZ1BvcG92ZXI6
KSBCT09MIHNob3dpbmdQb3BvdmVyOwogCiBAZW5kCiAKQEAgLTc5LDYgKzgwLDggQEAgLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSBjb25maWd1cmF0aW9uOihXS1dl
YlZpZXdDb25maWd1cmF0aW8KICAgICAgICAgW2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVj
dG9yOkBzZWxlY3RvcihfaW52b2tlSGlkZUtleWJvYXJkQ2FsbGJhY2tJZk5lY2Vzc2FyeSkgbmFt
ZTpVSUtleWJvYXJkRGlkSGlkZU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKICAgICAgICAgW2Nl
bnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfZGlkU2hvd01lbnUpIG5h
bWU6VUlNZW51Q29udHJvbGxlckRpZFNob3dNZW51Tm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwog
ICAgICAgICBbY2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9kaWRI
aWRlTWVudSkgbmFtZTpVSU1lbnVDb250cm9sbGVyRGlkSGlkZU1lbnVOb3RpZmljYXRpb24gb2Jq
ZWN0Om5pbF07CisgICAgICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2Vs
ZWN0b3IoX3dpbGxQcmVzZW50UG9wb3ZlcikgbmFtZTpAIlVJUG9wb3ZlckNvbnRyb2xsZXJXaWxs
UHJlc2VudFBvcG92ZXJOb3RpZmljYXRpb24iIG9iamVjdDpuaWxdOworICAgICAgICBbY2VudGVy
IGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9kaWREaXNtaXNzUG9wb3Zlcikg
bmFtZTpAIlVJUG9wb3ZlckNvbnRyb2xsZXJEaWREaXNtaXNzUG9wb3Zlck5vdGlmaWNhdGlvbiIg
b2JqZWN0Om5pbF07CiAgICAgICAgIHNlbGYuVUlEZWxlZ2F0ZSA9IHNlbGY7CiAgICAgfQogICAg
IHJldHVybiBzZWxmOwpAQCAtMTQxLDYgKzE0NCw4IEBAIC0gKHZvaWQpcmVzZXRJbnRlcmFjdGlv
bkNhbGxiYWNrcwogICAgIHNlbGYuZGlkSGlkZUtleWJvYXJkQ2FsbGJhY2sgPSBuaWw7CiAgICAg
c2VsZi5kaWRTaG93TWVudUNhbGxiYWNrID0gbmlsOwogICAgIHNlbGYuZGlkSGlkZU1lbnVDYWxs
YmFjayA9IG5pbDsKKyAgICBzZWxmLndpbGxQcmVzZW50UG9wb3ZlckNhbGxiYWNrID0gbmlsOwor
ICAgIHNlbGYuZGlkRGlzbWlzc1BvcG92ZXJDYWxsYmFjayA9IG5pbDsKICAgICBzZWxmLmRpZEVu
ZFNjcm9sbGluZ0NhbGxiYWNrID0gbmlsOwogICAgIHNlbGYucm90YXRpb25EaWRFbmRDYWxsYmFj
ayA9IG5pbDsKIH0KQEAgLTIwMCw2ICsyMDUsMjYgQEAgLSAodm9pZClfZGlkSGlkZU1lbnUKICAg
ICAgICAgc2VsZi5kaWRIaWRlTWVudUNhbGxiYWNrKCk7CiB9CiAKKy0gKHZvaWQpX3dpbGxQcmVz
ZW50UG9wb3ZlcgoreworICAgIGlmIChzZWxmLnNob3dpbmdQb3BvdmVyKQorICAgICAgICByZXR1
cm47CisKKyAgICBzZWxmLnNob3dpbmdQb3BvdmVyID0gWUVTOworICAgIGlmIChzZWxmLndpbGxQ
cmVzZW50UG9wb3ZlckNhbGxiYWNrKQorICAgICAgICBzZWxmLndpbGxQcmVzZW50UG9wb3ZlckNh
bGxiYWNrKCk7Cit9CisKKy0gKHZvaWQpX2RpZERpc21pc3NQb3BvdmVyCit7CisgICAgaWYgKCFz
ZWxmLnNob3dpbmdQb3BvdmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBzZWxmLnNob3dpbmdQ
b3BvdmVyID0gTk87CisgICAgaWYgKHNlbGYuZGlkRGlzbWlzc1BvcG92ZXJDYWxsYmFjaykKKyAg
ICAgICAgc2VsZi5kaWREaXNtaXNzUG9wb3ZlckNhbGxiYWNrKCk7Cit9CisKIC0gKHZvaWQpc2Ny
b2xsVmlld1dpbGxCZWdpblpvb21pbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgd2l0aFZp
ZXc6KFVJVmlldyAqKXZpZXcKIHsKICAgICBbc3VwZXIgc2Nyb2xsVmlld1dpbGxCZWdpblpvb21p
bmc6c2Nyb2xsVmlldyB3aXRoVmlldzp2aWV3XTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQppbmRleCBhOWEwNWZjYjkyOTBkODhk
NWI0MDIxNjU3NzUzZTU2NTc3ZDlkOWIzLi45NzA0ZTE2NTI5NzQxYjEyMGViZjI5MjBkZDMxZjY0
YmQwMmU2NzBkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlw
dENvbnRyb2xsZXJJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3Jp
cHRDb250cm9sbGVySU9TLm1tCkBAIC04OTQsNiArODk0LDI5IEBAIHZvaWQgVUlTY3JpcHRDb250
cm9sbGVyOjpwbGF0Zm9ybVNldERpZEhpZGVNZW51Q2FsbGJhY2soKQogICAgIH07CiB9CiAKK2Jv
b2wgVUlTY3JpcHRDb250cm9sbGVyOjppc1Nob3dpbmdQb3BvdmVyKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBsYXRmb3Jt
VmlldygpLnNob3dpbmdQb3BvdmVyOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxh
dGZvcm1TZXRXaWxsUHJlc2VudFBvcG92ZXJDYWxsYmFjaygpCit7CisgICAgVGVzdENvbnRyb2xs
ZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpLndpbGxQcmVzZW50
UG9wb3ZlckNhbGxiYWNrID0gXnsKKyAgICAgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIG1fY29udGV4dC0+ZmlyZUNhbGxiYWNrKENhbGxiYWNrVHlwZVdp
bGxQcmVzZW50UG9wb3Zlcik7CisgICAgfTsKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6
OnBsYXRmb3JtU2V0RGlkRGlzbWlzc1BvcG92ZXJDYWxsYmFjaygpCit7CisgICAgVGVzdENvbnRy
b2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpLmRpZERpc21p
c3NQb3BvdmVyQ2FsbGJhY2sgPSBeeworICAgICAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgbV9jb250ZXh0LT5maXJlQ2FsbGJhY2soQ2FsbGJhY2tUeXBl
RGlkRGlzbWlzc1BvcG92ZXIpOworICAgIH07Cit9CisKIEpTT2JqZWN0UmVmIFVJU2NyaXB0Q29u
dHJvbGxlcjo6cmVjdEZvck1lbnVBY3Rpb24oSlNTdHJpbmdSZWYganNBY3Rpb24pIGNvbnN0CiB7
CiAgICAgYXV0byBhY3Rpb24gPSBhZG9wdENGKEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9j
YXRvckRlZmF1bHQsIGpzQWN0aW9uKSk7CkBAIC05NjEsNiArOTg0LDggQEAgdm9pZCBVSVNjcmlw
dENvbnRyb2xsZXI6OnBsYXRmb3JtQ2xlYXJBbGxDYWxsYmFja3MoKQogICAgIHdlYlZpZXcud2ls
bEJlZ2luWm9vbWluZ0NhbGxiYWNrID0gbmlsOwogICAgIHdlYlZpZXcuZGlkSGlkZUtleWJvYXJk
Q2FsbGJhY2sgPSBuaWw7CiAgICAgd2ViVmlldy5kaWRTaG93S2V5Ym9hcmRDYWxsYmFjayA9IG5p
bDsKKyAgICB3ZWJWaWV3LndpbGxQcmVzZW50UG9wb3ZlckNhbGxiYWNrID0gbmlsOworICAgIHdl
YlZpZXcuZGlkRGlzbWlzc1BvcG92ZXJDYWxsYmFjayA9IG5pbDsKICAgICB3ZWJWaWV3LmRpZEVu
ZFNjcm9sbGluZ0NhbGxiYWNrID0gbmlsOwogICAgIHdlYlZpZXcucm90YXRpb25EaWRFbmRDYWxs
YmFjayA9IG5pbDsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2ZGZhNjdhOTI2YzFhOTRkODUyNzc3NDhjMWIzOWUxYmRi
OGMwMmM3Li5hZDNiNmJkZjU5YTg4ZTNmNTVkY2MwZTdmMTJiNDJmYjUxOWQwNDhkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTktMDMtMjggIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUu
Y29tPgorCisgICAgICAgIFtpUGFkXSBTaG91bGQgb3BlbiBwb3BvdmVyIHdoZW4gdGhlIHNwYWNl
YmFyIGlzIHByZXNzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5NjM2MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDkzODkxMjk+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGFuIGlQYWQtc3Bl
Y2lmaWMgdGVzdCB0byBlbnN1cmUgdGhhdCBwcmVzc2luZyB0aGUgc3BhY2ViYXIgb3BlbnMgdGhl
IHBvcG92ZXIgYW5kIHNjcm9sbHMKKyAgICAgICAgdGhlIGZvcm0gY29udHJvbCBpbnRvIHZpZXcu
CisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lvcy9pcGFkL29wZW4tcGlja2VyLXVzaW5nLWtleWJv
YXJkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pb3MvaXBhZC9v
cGVuLXBpY2tlci11c2luZy1rZXlib2FyZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9pb3MvVGVzdEV4cGVjdGF0aW9uczogU2tpcCB0ZXN0cyBpbiBmYXN0L2Zvcm1zL2lvcy9pcGFk
LiBXZSB3aWxsIHVuc2tpcCBmb3IgaVBhZCBiZWxvdy4KKyAgICAgICAgKiBwbGF0Zm9ybS9pcGFk
L1Rlc3RFeHBlY3RhdGlvbnM6IE1hcmsgdGVzdHMgaW4gZmFzdC9mb3Jtcy9pb3MvaXBhZCBhcyBQ
QVNTIHNvIHdlIHJ1biB0aGVtLgorICAgICAgICAqIHJlc291cmNlcy91aS1oZWxwZXIuanM6Cisg
ICAgICAgICh3aW5kb3cuVUlIZWxwZXIud2FpdEZvclBvcG92ZXJUb1ByZXNlbnQpOgorICAgICAg
ICAod2luZG93LlVJSGVscGVyLndhaXRGb3JQb3BvdmVyVG9EaXNtaXNzKToKKwogMjAxOS0wMy0y
OCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gU2hv
dWxkIGJlIGFibGUgdG8gZGlzbWlzcyBwaWNrZXIgb3IgcG9wb3ZlciB1c2luZyB0aGUga2V5Ym9h
cmQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2lwYWQvb3Blbi1waWNr
ZXItdXNpbmcta2V5Ym9hcmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9p
b3MvaXBhZC9vcGVuLXBpY2tlci11c2luZy1rZXlib2FyZC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODZjMzBkYWM2MDZiMWE1ZmE4OWEzNWM1NzBiNjI0NmZiY2EzZjRkOAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2lwYWQvb3Blbi1waWNrZXItdXNpbmct
a2V5Ym9hcmQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjIgQEAKK1Rlc3RzIHRoYXQgcHJlc3Np
bmcgdGhlIHNwYWNlYmFyIGFuZCBFc2NhcGUgdG8gb3BlbiBhbmQgY2xvc2UgdGhlIHBvcG92ZXIg
d29yaywgZG8gbm90IGNhdXNlIGEgdmFsdWUgY2hhbmdlLCBhbmQgdGhhdCB3ZSBzY3JvbGwgdGhl
IGZvcm0gY29udHJvbCBpbnRvIHZpZXcgd2hlbiB0aGUgcG9wb3ZlciBpcyBvcGVuZWQuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisKK0FmdGVyIHRhYiBmb2N1c2VkOgorUEFTUyBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpLnZhbHVlIGlzICJGaXJzdCIKKworQWZ0ZXIg
ZGlzbWlzc2luZyBwb3BvdmVyIGJ5IHByZXNzaW5nIEVzY2FwZToKK1BBU1MgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRlc3QiKS52YWx1ZSBpcyAiRmlyc3QiCisKK0FmdGVyIG9wZW5pbmcgcG9w
b3ZlciBieSBwcmVzc2luZyBzcGFjZWJhcjoKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRlc3QiKS52YWx1ZSBpcyAiRmlyc3QiCisKK0FmdGVyIHNjcm9sbGluZyB0aGUgcGFnZSBhbmQg
cHJlc3Npbmcgc3BhY2ViYXI6CitQQVNTIHdpbmRvdy5zY3JvbGxZIGlzIG5vbi16ZXJvLgorUEFT
UyB3aW5kb3cuc2Nyb2xsWSBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3Mv
aXBhZC9vcGVuLXBpY2tlci11c2luZy1rZXlib2FyZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9pb3MvaXBhZC9vcGVuLXBpY2tlci11c2luZy1rZXlib2FyZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQ2ZGNkOTVlZTk0YjQ3M2NiOTIxZTdlMDFiMTI4MmVkNDE0ZGQ2YzEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9pcGFkL29wZW4tcGlja2VyLXVzaW5nLWtl
eWJvYXJkLmh0bWwKQEAgLTAsMCArMSwxMDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04MDAiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IHN0eWxlPSJoZWlnaHQ6IDQwOTZweCI+Cis8IS0tIFBsYWNlIHRoZSB0ZXN0
IGNvbnRhaW5lciBhYm92ZSB0aGUgY29uc29sZSBvdXRwdXQgdG8gYXZvaWQgdGhlIG5lZWQgdG8g
Y29tcGVuc2F0ZSBmb3IgcGFnZSBzY3JvbGwuIC0tPgorPGRpdiBpZD0idGVzdC1jb250YWluZXIi
PgorICAgIDxwPjxzZWxlY3QgaWQ9InRlc3QiPgorICAgICAgICA8b3B0aW9uPkZpcnN0PC9vcHRp
b24+CisgICAgICAgIDxvcHRpb24+U2Vjb25kPC9vcHRpb24+CisgICAgPC9zZWxlY3Q+PC9wPgor
PC9kaXY+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdD4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworbGV0IGV4cGVjdGVk
VmFsdWU7CisKK2NvbnN0IG1vZGlmaWVyRGlzcGxheU5hbWVNYXAgPSB7CisgICAgImFsdEtleSI6
ICJPcHRpb24iLAorICAgICJjdHJsS2V5IjogIkNvbnRyb2wiLAorICAgICJtZXRhS2V5IjogIkNv
bW1hbmQiLAorICAgICJzaGlmdEtleSI6ICJTaGlmdCIsCisgICAgImNhcHNMb2NrS2V5IjogIkNh
cHMgTG9jayIsCit9CisKK2NsYXNzIEtleUNvbW1hbmQgeworICAgIGNvbnN0cnVjdG9yKGtleSwg
bW9kaWZpZXJzID0gW10pCisgICAgeworICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAg
dGhpcy5tb2RpZmllcnMgPSBtb2RpZmllcnM7CisgICAgfQorCisgICAgdG9TdHJpbmcoKQorICAg
IHsKKyAgICAgICAgbGV0IHJlYWRhYmxlQ29tbWFuZCA9IHRoaXMubW9kaWZpZXJzLm1hcCgobW9k
aWZpZXIpID0+IG1vZGlmaWVyRGlzcGxheU5hbWVNYXBbbW9kaWZpZXJdKTsKKyAgICAgICAgcmVh
ZGFibGVDb21tYW5kLnB1c2godGhpcy5rZXkpOworICAgICAgICByZXR1cm4gcmVhZGFibGVDb21t
YW5kLmpvaW4oIiArICIpOworICAgIH0KK30KKworZnVuY3Rpb24gZG9uZSgpCit7CisgICAgbGV0
IHRlc3RDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdC1jb250YWluZXIi
KTsKKyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRlc3RDb250YWluZXIpOworICAgIGZp
bmlzaEpTVGVzdCgpCit9CisKK2FzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGlmICgh
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiTXVzdCBiZSBydW4gaW4g
V2ViS2l0VGVzdFJ1bm5lci4iKTsKKyAgICAgICAgZG9uZSgpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgYXN5bmMgZnVuY3Rpb24gdGVzdFNjcm9sbEludG9WaWV3KCkgeworICAgICAg
ICBzaG91bGRCZU5vblplcm8oIndpbmRvdy5zY3JvbGxZIik7CisgICAgICAgIGFzeW5jIGZ1bmN0
aW9uIGhhbmRsZVNjcm9sbCgpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuc2Nyb2xsWSkKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBzaG91bGRCZVplcm8oIndpbmRvdy5z
Y3JvbGxZIik7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yUG9wb3ZlclRvUHJl
c2VudCgpOworICAgICAgICAgICAgVUlIZWxwZXIua2V5RG93bigiZXNjYXBlIik7CisgICAgICAg
ICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yUG9wb3ZlclRvRGlzbWlzcygpOworICAgICAgICAg
ICAgZG9uZSgpOworICAgICAgICB9CisgICAgICAgIC8vIFRoZSBzY3JvbGwgaW5pdGlhdGVkIGJ5
IHByZXNzaW5nIHRoZSBzcGFjZWJhciBpcyBhbmltYXRlZC4gTXVsdGlwbGUgc2Nyb2xsIGV2ZW50
cyBhcmUKKyAgICAgICAgLy8gZGlzcGF0Y2hlZC4gV2Ugd2FudCB0byB3YWl0IHVudGlsIHRoZSBw
YWdlIHNjcm9sbHMgdG8gdGhlIHRvcCBiZWZvcmUgY29udGludWluZyB0byBlbnN1cmUKKyAgICAg
ICAgLy8gY29uc2lzdGVudCB0ZXN0IHJlc3VsdHMuCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJzY3JvbGwiLCBoYW5kbGVTY3JvbGwpOworICAgICAgICBVSUhlbHBlci5rZXlEb3du
KCIgIik7CisgICAgfQorCisgICAgYXN5bmMgZnVuY3Rpb24gaGFuZGxlRm9jdXMoKSB7CisgICAg
ICAgIGRlYnVnKCI8YnI+QWZ0ZXIgdGFiIGZvY3VzZWQ6Iik7CisgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKS52YWx1ZScsIGV4cGVj
dGVkVmFsdWUpOworICAgICAgICBkZWJ1ZygiPGJyPkFmdGVyIGRpc21pc3NpbmcgcG9wb3ZlciBi
eSBwcmVzc2luZyBFc2NhcGU6Iik7CisgICAgICAgIFVJSGVscGVyLmtleURvd24oImVzY2FwZSIp
OworICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yUG9wb3ZlclRvRGlzbWlzcygpOworICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0
IikudmFsdWUnLCBleHBlY3RlZFZhbHVlKTsKKyAgICAgICAgZGVidWcoIjxicj5BZnRlciBvcGVu
aW5nIHBvcG92ZXIgYnkgcHJlc3Npbmcgc3BhY2ViYXI6Iik7CisgICAgICAgIFVJSGVscGVyLmtl
eURvd24oIiAiKTsKKyAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvclBvcG92ZXJUb1ByZXNl
bnQoKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGVzdCIpLnZhbHVlJywgZXhwZWN0ZWRWYWx1ZSk7CisgICAgICAgIFVJSGVscGVyLmtl
eURvd24oImVzY2FwZSIpOworICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yUG9wb3ZlclRv
RGlzbWlzcygpOworICAgICAgICBkZWJ1ZygiPGJyPkFmdGVyIHNjcm9sbGluZyB0aGUgcGFnZSBh
bmQgcHJlc3Npbmcgc3BhY2ViYXI6Iik7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCJzY3JvbGwiLCB0ZXN0U2Nyb2xsSW50b1ZpZXcsIHsgb25jZTogdHJ1ZSB9KTsKKyAgICAgICAg
d2luZG93LnNjcm9sbFRvKDAsIGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0KTsgLy8gU2Nyb2xs
IHRvIHRoZSBib3R0b20gb2YgdGhlIHBhZ2UuCisgICAgfQorICAgIGxldCBlbGVtZW50VG9UZXN0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKyAgICBleHBlY3RlZFZhbHVlID0g
ZWxlbWVudFRvVGVzdC52YWx1ZTsKKyAgICBlbGVtZW50VG9UZXN0LmFkZEV2ZW50TGlzdGVuZXIo
ImZvY3VzIiwgaGFuZGxlRm9jdXMsIHsgb25jZTogdHJ1ZSB9KTsKKyAgICBVSUhlbHBlci5rZXlE
b3duKCJcdCIsIFsiYWx0S2V5Il0pOworfQorCitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBwcmVz
c2luZyB0aGUgc3BhY2ViYXIgYW5kIEVzY2FwZSB0byBvcGVuIGFuZCBjbG9zZSB0aGUgcG9wb3Zl
ciB3b3JrLCBkbyBub3QgY2F1c2UgYSB2YWx1ZSBjaGFuZ2UsIGFuZCB0aGF0IHdlIHNjcm9sbCB0
aGUgZm9ybSBjb250cm9sIGludG8gdmlldyB3aGVuIHRoZSBwb3BvdmVyIGlzIG9wZW5lZC4iKTsK
KworcnVuVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDE0ZGI5ZDA4ZjYyNTY4MjNlNDQ3ZTUx
MzAwOTAxNjlkM2U5ZTY5NzIuLjg0YTJjYmM3NjhjMDc2N2YzNWY1M2JlOTIwYzRmNWFmYTU4ZTBj
YWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNSw2
ICsyNSw3IEBAIGh0dHAvdGVzdHMvZ3ppcC1jb250ZW50LWVuY29kaW5nIFsgUGFzcyBdCiAKICMg
aVBhZC1zcGVjaWZpYyB0ZXN0cyBza2lwcGVkIGhlcmUgYW5kIHJlLWVuYWJsZWQgaW4gcGxhdGZv
cm0vaXBhZAogZmFzdC9ldmVudHMvaW9zL2lwYWQgWyBTa2lwIF0KK2Zhc3QvZm9ybXMvaW9zL2lw
YWQgWyBTa2lwIF0KIAogIyMjCiAjIFVuc3VwcG9ydGVkIGFuZCBkaXNhYmxlZCBmZWF0dXJlcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaXBhZC9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaXBhZC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDUxNWY2Mjhj
OTMwYTAzOTlmNjkxN2FjNWUwNmFkMDM5MTYyZjEyZDQuLjE0NjdjMzA4NWNlMGVlODdlODI0ZWNj
ZjMyYThlZGI3ZDU2OTNlZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lwYWQv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pcGFkL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTEsMyArMSw1IEBACitmYXN0L2Zvcm1zL2lvcy9pcGFkIFsgUGFzcyBdCisK
ICMgaVBhZHMgZG9uJ3Qgem9vbSB3aGVuIGZvcm0gZWxlbWVudHMgYXJlIGZvY3VzZWQKIGZhc3Qv
Zm9ybXMvaW9zL2FjY2Vzc29yeS1iYXItbmF2aWdhdGlvbi5odG1sIFsgU2tpcCBdCiBmYXN0L2Zv
cm1zL2lvcy9jaG9vc2Utc2VsZWN0LW9wdGlvbi5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2Vz
L3VpLWhlbHBlci5qcwppbmRleCA5NjhlNzAwNzZjNDMxYmQ1NmY4ZTU0MWJmOTVkY2M0ZDQ5Njlk
YjFmLi5lNWJhNDllMTg3YjRjZDBlMjJkNmM4MGE0MmU5NWNhNWNhOWNmZGMwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCisrKyBiL0xheW91dFRlc3RzL3Jl
c291cmNlcy91aS1oZWxwZXIuanMKQEAgLTM4MSw2ICszODEsMzggQEAgd2luZG93LlVJSGVscGVy
ID0gY2xhc3MgVUlIZWxwZXIgewogICAgICAgICB9KTsKICAgICB9CiAKKyAgICBzdGF0aWMgd2Fp
dEZvclBvcG92ZXJUb1ByZXNlbnQoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmlzV2ViS2l0
MigpIHx8ICF0aGlzLmlzSU9TKCkpCisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZl
KCk7CisKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgICAgICBpZiAodWlDb250cm9sbGVyLmlzU2hvd2luZ1BvcG92ZXIp
CisgICAgICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgp
OworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB1aUNv
bnRyb2xsZXIud2lsbFByZXNlbnRQb3BvdmVyQ2FsbGJhY2sgPSAoKSA9PiB1aUNvbnRyb2xsZXIu
dWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICAgICAgICAgIH0pKClgLCByZXNvbHZlKTsKKyAg
ICAgICAgfSk7CisgICAgfQorCisgICAgc3RhdGljIHdhaXRGb3JQb3BvdmVyVG9EaXNtaXNzKCkK
KyAgICB7CisgICAgICAgIGlmICghdGhpcy5pc1dlYktpdDIoKSB8fCAhdGhpcy5pc0lPUygpKQor
ICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOworCisgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3Jp
cHQoYAorICAgICAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKHVpQ29udHJvbGxlci5pc1Nob3dpbmdQb3BvdmVyKQorICAgICAgICAgICAgICAgICAgICAg
ICAgdWlDb250cm9sbGVyLmRpZERpc21pc3NQb3BvdmVyQ2FsbGJhY2sgPSAoKSA9PiB1aUNvbnRy
b2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAg
ICAgICAgICAgICAgIH0pKClgLCByZXNvbHZlKTsKKyAgICAgICAgfSk7CisgICAgfQorCiAgICAg
c3RhdGljIHdhaXRGb3JLZXlib2FyZFRvSGlkZSgpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMu
aXNXZWJLaXQyKCkgfHwgIXRoaXMuaXNJT1MoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366218</attachid>
            <date>2019-03-28 15:59:34 -0700</date>
            <delta_ts>2019-04-09 13:24:56 -0700</delta_ts>
            <desc>Patch and layout test</desc>
            <filename>bug-196360-20190328155954.patch</filename>
            <type>text/plain</type>
            <size>27599</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY5MzI1OWQwYjFmNTQzMjEz
OGRkMzI4Y2YyNzAwYTJmM2QzZjgzM2EuLmM4NTdjMzQ0MDFiYWYzZjM4NjU1OGE2YWViMzEyOGU4
NzA3MDc2NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTktMDMtMjggIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpUGFkXSBTaG91bGQgb3BlbiBw
b3BvdmVyIHdoZW4gdGhlIHNwYWNlYmFyIGlzIHByZXNzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjM2MAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNDkzODkxMjk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUHJlc3NpbmcgdGhlIHNwYWNlYmFyIHNob3VsZCBvcGVuIHRoZSBwb3BvdmVyIGZvciBh
IGZvY3VzZWQgcG9wdXAgYnV0dG9uIChlLmcuIDxzZWxlY3Q+KSBvbiBpT1MKKyAgICAgICAganVz
dCBsaWtlIGl0IGRvZXMgb24gdGhlIE1hYy4KKworICAgICAgICBGb3Igbm93LCB3ZSBrZWVwIHRo
ZSBpUGhvbmUgYmVoYXZpb3Igb2YgYmx1cnJpbmcgdGhlIGVsZW1lbnQgd2hlbiB0aGUgRG9uZSBi
dXR0b24gaXMgcHJlc3NlZCBhbmQKKyAgICAgICAgaGVuY2UgcHJlc3Npbmcgc3BhY2ViYXIgZG9l
cyBub3RoaW5nIChiZWNhdXNlIHRoZXJlIGlzIG5vIGZvY3VzZWQgZWxlbWVudCkuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IGFjY2Vzc29yeU9wZW5dKTogQWRkZWQuIEV4dHJhY3RlZCB0aGUgbG9naWMg
ZnJvbSAtX2VsZW1lbnREaWRGb2N1cyB0byBzY3JvbGwgdG8KKyAgICAgICAgdGhlIGZvY3VzZWQg
ZWxlbWVudCwgdXBkYXRlIHRoZSBhY2Nlc3NvcnkgYW5kIHRoZW4gdGVsbCB0aGUgYWNjZXNzb3J5
IHRvIGJlZ2luIGVkaXRpbmcuCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2VsZW1lbnREaWRG
b2N1czp1c2VySXNJbnRlcmFjdGluZzpibHVyUHJldmlvdXNOb2RlOmNoYW5naW5nQWN0aXZpdHlT
dGF0ZTp1c2VyT2JqZWN0Ol0pOgorICAgICAgICBXcml0ZSBpbiB0ZXJtcyBvZiAtYWNjZXNzb3J5
T3Blbi4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBlcmlwaGVyYWxCYXNl
Lm1tOgorICAgICAgICAoLVtXS0Zvcm1QZXJpcGhlcmFsQmFzZSBoYW5kbGVLZXlFdmVudDpdKTog
SW50ZXJwcmV0IHRoZSBzcGFjZWJhciB3aGVuIHRoZSBwZXJpcGhlcmFsIGlzIGNsb3NlZCAoIV9l
ZGl0aW5nKQorICAgICAgICBhbmQgY2FsbCAtYWNjZXNzb3J5T3BlbiB0byB1bHRpbWF0ZWx5IGNh
bGwgYmFjayB0byB0aGlzIHBlcmlwaGVyYWwgdG8gdGVsbCBpdCB0byBiZWdpbiBlZGl0aW5nLAor
ICAgICAgICB3aGljaCB3aWxsIGNhdXNlIHRoZSBwb3BvdmVyIHRvIGFwcGVhciBhZ2Fpbi4KKwog
MjAxOS0wMy0yOCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAg
W2lPU10gU2hvdWxkIGJlIGFibGUgdG8gZGlzbWlzcyBwaWNrZXIgb3IgcG9wb3ZlciB1c2luZyB0
aGUga2V5Ym9hcmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCBmYzliZjZjNWIzOTZkMTI1MzczNzVhMGFlNTM3
YzM0ZGMzODA1MDlhLi40Njg5MjQwYWMwMTFmYzlkYWMyZmM3ZDUyODZjNDEwMjVlNDhmMmFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5oCkBAIC00MjgsNyArNDI4LDYgQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRF
TlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykK
IC0gKHZvaWQpX3Nob3dQbGF5YmFja1RhcmdldFBpY2tlcjooQk9PTCloYXNWaWRlbyBmcm9tUmVj
dDooY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpZWxlbWVudFJlY3Qgcm91dGVTaGFyaW5nUG9saWN5
OihXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kpcG9saWN5IHJvdXRpbmdDb250ZXh0VUlEOihO
U1N0cmluZyAqKWNvbnRleHRVSUQ7CiAtICh2b2lkKV9zaG93UnVuT3BlblBhbmVsOihBUEk6Ok9w
ZW5QYW5lbFBhcmFtZXRlcnMqKXBhcmFtZXRlcnMgcmVzdWx0TGlzdGVuZXI6KFdlYktpdDo6V2Vi
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSopbGlzdGVuZXI7CiAtICh2b2lkKV9zaG93U2hh
cmVTaGVldDooY29uc3QgV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYpc2hhcmVEYXRh
IGNvbXBsZXRpb25IYW5kbGVyOihXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
Y29tcGxldGlvbkhhbmRsZXI7Ci0tICh2b2lkKWFjY2Vzc29yeURvbmU7CiAtICh2b2lkKWRpc21p
c3NGaWxlUGlja2VyOwogLSAodm9pZClfZGlkSGFuZGxlS2V5RXZlbnQ6KDo6V2ViRXZlbnQgKill
dmVudCBldmVudFdhc0hhbmRsZWQ6KEJPT0wpZXZlbnRXYXNIYW5kbGVkOwogLSAoVmVjdG9yPFdl
YktpdDo6T3B0aW9uSXRlbT4mKSBmb2N1c2VkU2VsZWN0RWxlbWVudE9wdGlvbnM7CkBAIC00NDgs
NiArNDQ3LDExIEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFS
RV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKV9hY2Nlc3NpYmls
aXR5Q2xlYXJTZWxlY3Rpb247CiAtIChXS0Zvcm1JbnB1dFNlc3Npb24gKilfZm9ybUlucHV0U2Vz
c2lvbjsKIAorLy8gVUlXZWJGb3JtQWNjZXNzb3J5RGVsZWdhdGUgcHJvdG9jb2wKKy0gKHZvaWQp
YWNjZXNzb3J5RG9uZTsKKworLSAodm9pZClhY2Nlc3NvcnlPcGVuOworCiAtICh2b2lkKV9yZXF1
ZXN0RE9NUGFzdGVBY2Nlc3NXaXRoRWxlbWVudFJlY3Q6KGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
KWVsZW1lbnRSZWN0IG9yaWdpbklkZW50aWZpZXI6KGNvbnN0IFN0cmluZyYpb3JpZ2luSWRlbnRp
ZmllciBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpE
T01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJiljb21wbGV0aW9uSGFuZGxlcjsKIAogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBv
c2l0aW9uIGN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggMjli
MTg3MDM2Mjk5OWExYzY2OTU2ODAxOGNlZWNiNWM5NTcxOTE2OS4uOTRjN2ViYjE3NWNhMjBkMjY2
MGUxOTU4NzBiMTE1NmRjYzhlYWNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0zODAwLDYgKzM4MDAs
MTUgQEAgLSAoVUlXZWJGb3JtQWNjZXNzb3J5ICopZm9ybUFjY2Vzc29yeVZpZXcKICAgICByZXR1
cm4gX2Zvcm1BY2Nlc3NvcnlWaWV3LmdldCgpOwogfQogCistICh2b2lkKWFjY2Vzc29yeU9wZW4K
K3sKKyAgICBpZiAoIV9pbnB1dFBlcmlwaGVyYWwpCisgICAgICAgIHJldHVybjsKKyAgICBbc2Vs
ZiBfem9vbVRvUmV2ZWFsRm9jdXNlZEVsZW1lbnRdOworICAgIFtzZWxmIF91cGRhdGVBY2Nlc3Nv
cnldOworICAgIFtfaW5wdXRQZXJpcGhlcmFsIGJlZ2luRWRpdGluZ107Cit9CisKIC0gKHZvaWQp
X3VwZGF0ZUFjY2Vzc29yeQogewogICAgIGF1dG8qIGFjY2Vzc29yeVZpZXcgPSBzZWxmLmZvcm1B
Y2Nlc3NvcnlWaWV3OyAvLyBDcmVhdGVzIG9uZSwgaWYgbmVlZGVkLgpAQCAtNDk4Myw5ICs0OTky
LDcgQEAgLSAodm9pZClfZWxlbWVudERpZEZvY3VzOihjb25zdCBXZWJLaXQ6OkZvY3VzZWRFbGVt
ZW50SW5mb3JtYXRpb24mKWluZm9ybWF0aW9uIHUKICAgICAgICAgaWYgKF9pbnB1dFBlcmlwaGVy
YWwpIHsKICAgICAgICAgICAgIGlmICghc2VsZi5pc0ZpcnN0UmVzcG9uZGVyKQogICAgICAgICAg
ICAgICAgIFtzZWxmIGJlY29tZUZpcnN0UmVzcG9uZGVyXTsKLSAgICAgICAgICAgIFtzZWxmIF96
b29tVG9SZXZlYWxGb2N1c2VkRWxlbWVudF07Ci0gICAgICAgICAgICBbc2VsZiBfdXBkYXRlQWNj
ZXNzb3J5XTsKLSAgICAgICAgICAgIFtfaW5wdXRQZXJpcGhlcmFsIGJlZ2luRWRpdGluZ107Cisg
ICAgICAgICAgICBbc2VsZiBhY2Nlc3NvcnlPcGVuXTsKICAgICAgICAgfQogICAgICAgICByZXR1
cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1z
L1dLRm9ybVBlcmlwaGVyYWxCYXNlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zv
cm1zL1dLRm9ybVBlcmlwaGVyYWxCYXNlLm1tCmluZGV4IDVmMjg5NjkzOGUwMjU0NmQ5MTliMmNi
N2NlYWJjYmM5MjM0OGNmZWUuLjg0MTUyN2IwYzViZTgyMzBjM2YxNjk4MDI3ZTNjNWE0ZjcyNTQ1
YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Q
ZXJpcGhlcmFsQmFzZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMv
V0tGb3JtUGVyaXBoZXJhbEJhc2UubW0KQEAgLTg0LDYgKzg0LDEwIEBAIC0gKEJPT0wpaGFuZGxl
S2V5RXZlbnQ6KFVJRXZlbnQgKilldmVudAogICAgICAgICBbX3ZpZXcgYWNjZXNzb3J5RG9uZV07
CiAgICAgICAgIHJldHVybiBZRVM7CiAgICAgfQorICAgIGlmICghX2VkaXRpbmcgJiYga2V5RXZl
bnQuX2tleUNvZGUgPT0ga0hJRFVzYWdlX0tleWJvYXJkU3BhY2ViYXIpIHsKKyAgICAgICAgW192
aWV3IGFjY2Vzc29yeU9wZW5dOworICAgICAgICByZXR1cm4gWUVTOworICAgIH0KICAgICByZXR1
cm4gTk87CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCAwZTY5ZjI4YmRmZjdhOTA4ZmUxMzMzMTRmYmM3MzQ0NWFmYzdiZWUyLi41NzM0MGE4
NDRhMzQ3YzA2YjBiNTI0Mjk3NTBmZTMwZmFlNDFlNDU4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTktMDMtMjgg
IERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpUGFkXSBTaG91
bGQgb3BlbiBwb3BvdmVyIHdoZW4gdGhlIHNwYWNlYmFyIGlzIHByZXNzZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjM2MAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNDkzODkxMjk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIHRlc3RpbmcgaW5mcmFzdHJ1Y3R1cmUgdG8gc3VwcG9ydCB3YWl0
aW5nIGZvciBhIHBvcG92ZXIgdG8gYmUgcHJlc2VudGVkIG9yIGRpc21pc3NlZC4KKworICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW06CisgICAgICAg
IChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6aXNTaG93aW5nUG9wb3ZlciBjb25zdCk6IEFkZGVk
LgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0V2lsbFByZXNl
bnRQb3BvdmVyQ2FsbGJhY2spOiBBZGRlZC4KKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9s
bGVyOjpwbGF0Zm9ybVNldERpZERpc21pc3NQb3BvdmVyQ2FsbGJhY2spOiBBZGRlZC4KKyAgICAg
ICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENv
bnRyb2xsZXIuaWRsOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0
L1VJU2NyaXB0Q29udGV4dC5oOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRD
b250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29u
dHJvbGxlcjo6c2V0V2lsbFByZXNlbnRQb3BvdmVyQ2FsbGJhY2spOiBBZGRlZC4KKyAgICAgICAg
KFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjp3aWxsUHJlc2VudFBvcG92ZXJDYWxsYmFjayBjb25z
dCk6IEFkZGVkLgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZERpc21p
c3NQb3BvdmVyQ2FsbGJhY2spOiBBZGRlZC4KKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9s
bGVyOjpkaWREaXNtaXNzUG9wb3ZlckNhbGxiYWNrIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChX
VFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6aXNTaG93aW5nUG9wb3ZlciBjb25zdCk6IEFkZGVkLgor
ICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0V2lsbFByZXNlbnRQ
b3BvdmVyQ2FsbGJhY2spOiBBZGRlZC4KKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVy
OjpwbGF0Zm9ybVNldERpZERpc21pc3NQb3BvdmVyQ2FsbGJhY2spOiBBZGRlZC4KKyAgICAgICAg
KiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaDoK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcuaDoK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcubW06
CisgICAgICAgICgtW1Rlc3RSdW5uZXJXS1dlYlZpZXcgaW5pdFdpdGhGcmFtZTpjb25maWd1cmF0
aW9uOl0pOiBVcGRhdGUgc29tZSBzdGF0ZS4KKyAgICAgICAgKC1bVGVzdFJ1bm5lcldLV2ViVmll
dyByZXNldEludGVyYWN0aW9uQ2FsbGJhY2tzXSk6IERpdHRvLgorICAgICAgICAoLVtUZXN0UnVu
bmVyV0tXZWJWaWV3IF93aWxsUHJlc2VudFBvcG92ZXJdKTogQWRkZWQuCisgICAgICAgICgtW1Rl
c3RSdW5uZXJXS1dlYlZpZXcgX2RpZERpc21pc3NQb3BvdmVyXSk6IEFkZGVkLgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAg
KFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjppc1Nob3dpbmdQb3BvdmVyIGNvbnN0KTogQWRkZWQu
CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXRXaWxsUHJlc2Vu
dFBvcG92ZXJDYWxsYmFjayk6IEFkZGVkLgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xs
ZXI6OnBsYXRmb3JtU2V0RGlkRGlzbWlzc1BvcG92ZXJDYWxsYmFjayk6IEFkZGVkLgorCiAyMDE5
LTAzLTI4ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbV1BFXVtHVEtdIHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X2RhdGFfZmluaXNoIGNhbiBy
ZXR1cm4gTlVMTCB3aXRob3V0IHNldHRpbmcgZXJyb3IKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0gYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCmluZGV4IDIyZDU1YWJjMTJiYjljYjgx
YWM3NDZkZDBhNDg4NzY0NzJmZmViNTEuLjJlZTkxYjA3YTNhYjYwNzhlOGUwMDRhMmUwZTcwOTBl
OWQ3OTkwMjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9VSVNjcmlwdENv
bnRyb2xsZXJJT1MubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29u
dHJvbGxlcklPUy5tbQpAQCAtMzUzLDYgKzM1MywxOSBAQCB2b2lkIFVJU2NyaXB0Q29udHJvbGxl
cjo6cGxhdGZvcm1TZXREaWRIaWRlTWVudUNhbGxiYWNrKCkKIHsKIH0KIAorYm9vbCBVSVNjcmlw
dENvbnRyb2xsZXI6OmlzU2hvd2luZ1BvcG92ZXIoKSBjb25zdAoreworICAgIHJldHVybiBmYWxz
ZTsKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0V2lsbFByZXNlbnRQ
b3BvdmVyQ2FsbGJhY2soKQoreworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZv
cm1TZXREaWREaXNtaXNzUG9wb3ZlckNhbGxiYWNrKCkKK3sKK30KKwogSlNPYmplY3RSZWYgVUlT
Y3JpcHRDb250cm9sbGVyOjpyZWN0Rm9yTWVudUFjdGlvbihKU1N0cmluZ1JlZikgY29uc3QKIHsK
ICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
VUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwgYi9Ub29scy9U
ZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xs
ZXIuaWRsCmluZGV4IGVlY2IyMDYwZWI2YjJlMTI5ZjhiMTJkM2NjNTIwYmY1NTdmYTBmN2MuLjIz
ZmUzMjY1YzYxOGQzYjhhMjc1NjMzOGYxNzQwZmY5NGZiNDNkNTAgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJv
bGxlci5pZGwKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmlu
ZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbApAQCAtMjMxLDYgKzIzMSwxMCBAQCBpbnRlcmZh
Y2UgVUlTY3JpcHRDb250cm9sbGVyIHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgb2JqZWN0IG1l
bnVSZWN0OwogICAgIG9iamVjdCByZWN0Rm9yTWVudUFjdGlvbihET01TdHJpbmcgYWN0aW9uKTsK
IAorICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzU2hvd2luZ1BvcG92ZXI7CisgICAg
YXR0cmlidXRlIG9iamVjdCB3aWxsUHJlc2VudFBvcG92ZXJDYWxsYmFjazsKKyAgICBhdHRyaWJ1
dGUgb2JqZWN0IGRpZERpc21pc3NQb3BvdmVyQ2FsbGJhY2s7CisKICAgICBhdHRyaWJ1dGUgb2Jq
ZWN0IHdpbGxCZWdpblpvb21pbmdDYWxsYmFjazsKICAgICBhdHRyaWJ1dGUgb2JqZWN0IGRpZEVu
ZFpvb21pbmdDYWxsYmFjazsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9V
SVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250ZXh0LmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVk
L1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRleHQuaAppbmRleCA4MDQwNjQ3YTIzZjIzNzYx
OGEzZWJkNjVkNzYyMjdlOGM0YTJiNmRmLi40N2ZmZThmYjFjNDVlYjYzNjBmOTFiNzU5M2UwMzIx
MzExN2FhZDI5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29u
dGV4dC9VSVNjcmlwdENvbnRleHQuaAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2Ny
aXB0Q29udGV4dC9VSVNjcmlwdENvbnRleHQuaApAQCAtNTYsNiArNTYsOCBAQCB0eXBlZGVmIGVu
dW0gIHsKICAgICBDYWxsYmFja1R5cGVEaWRIaWRlS2V5Ym9hcmQsCiAgICAgQ2FsbGJhY2tUeXBl
RGlkU2hvd01lbnUsCiAgICAgQ2FsbGJhY2tUeXBlRGlkSGlkZU1lbnUsCisgICAgQ2FsbGJhY2tU
eXBlV2lsbFByZXNlbnRQb3BvdmVyLAorICAgIENhbGxiYWNrVHlwZURpZERpc21pc3NQb3BvdmVy
LAogICAgIENhbGxiYWNrVHlwZURpZEVuZFNjcm9sbGluZywKICAgICBDYWxsYmFja1R5cGVEaWRT
dGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb24sCiAgICAgQ2FsbGJhY2tUeXBlRGlkRW5kRm9ybUNv
bnRyb2xJbnRlcmFjdGlvbiwKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlT
Y3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDIzZTQyZDEy
NGIxZTllY2NiN2ViOTM2OWRlYTJiNGJkYjZmYWM2YWYuLjZmYWFiMDgzODdlZWYxMzM5MTU5M2Vm
ZWJlYjRkMTE5YjdjZTZmMjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlT
Y3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvVGVzdFJ1bm5l
clNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMjI3LDYg
KzIyNywyOCBAQCBKU1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkSGlkZU1lbnVDYWxs
YmFjaygpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJh
Y2tUeXBlRGlkSGlkZU1lbnUpOwogfQogCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0V2ls
bFByZXNlbnRQb3BvdmVyQ2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBtX2Nv
bnRleHQtPnJlZ2lzdGVyQ2FsbGJhY2soY2FsbGJhY2ssIENhbGxiYWNrVHlwZVdpbGxQcmVzZW50
UG9wb3Zlcik7CisgICAgcGxhdGZvcm1TZXRXaWxsUHJlc2VudFBvcG92ZXJDYWxsYmFjaygpOwor
fQorCitKU1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6d2lsbFByZXNlbnRQb3BvdmVyQ2Fs
bGJhY2soKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbnRleHQtPmNhbGxiYWNrV2l0aElEKENh
bGxiYWNrVHlwZVdpbGxQcmVzZW50UG9wb3Zlcik7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9s
bGVyOjpzZXREaWREaXNtaXNzUG9wb3ZlckNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7
CisgICAgbV9jb250ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVE
aWREaXNtaXNzUG9wb3Zlcik7CisgICAgcGxhdGZvcm1TZXREaWREaXNtaXNzUG9wb3ZlckNhbGxi
YWNrKCk7Cit9CisKK0pTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWREaXNtaXNzUG9w
b3ZlckNhbGxiYWNrKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dp
dGhJRChDYWxsYmFja1R5cGVEaWREaXNtaXNzUG9wb3Zlcik7Cit9CisKICNpZiAhUExBVEZPUk0o
Q09DT0EpCiAKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjp6b29tVG9TY2FsZShkb3VibGUsIEpT
VmFsdWVSZWYpCkBAIC01NTMsNiArNTc1LDE5IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpw
bGF0Zm9ybVNldERpZEhpZGVNZW51Q2FsbGJhY2soKQogewogfQogCitib29sIFVJU2NyaXB0Q29u
dHJvbGxlcjo6aXNTaG93aW5nUG9wb3ZlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXRXaWxsUHJlc2VudFBvcG92
ZXJDYWxsYmFjaygpCit7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNl
dERpZERpc21pc3NQb3BvdmVyQ2FsbGJhY2soKQoreworfQorCiBKU09iamVjdFJlZiBVSVNjcmlw
dENvbnRyb2xsZXI6Om1lbnVSZWN0KCkgY29uc3QKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0
Q29udHJvbGxlci5oIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlT
Y3JpcHRDb250cm9sbGVyLmgKaW5kZXggZTQxZjhhMzczOTE4ODM2MTUzZDliMzJlOWVkYjAyZWRh
ZDk5MzYxNi4uZjI0Y2M3ZWI3OWI2NTZiZWNkZjhmY2FiNjM3NWQ3OTIzZjRlYTk5NyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250
cm9sbGVyLmgKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlT
Y3JpcHRDb250cm9sbGVyLmgKQEAgLTE2NiwxMCArMTY2LDE1IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgc2V0RGlkSGlkZU1lbnVDYWxsYmFjayhKU1ZhbHVlUmVmKTsKICAgICBKU1ZhbHVlUmVmIGRp
ZEhpZGVNZW51Q2FsbGJhY2soKSBjb25zdDsKLQogICAgIHZvaWQgc2V0RGlkU2hvd01lbnVDYWxs
YmFjayhKU1ZhbHVlUmVmKTsKICAgICBKU1ZhbHVlUmVmIGRpZFNob3dNZW51Q2FsbGJhY2soKSBj
b25zdDsKIAorICAgIGJvb2wgaXNTaG93aW5nUG9wb3ZlcigpIGNvbnN0OworICAgIHZvaWQgc2V0
RGlkRGlzbWlzc1BvcG92ZXJDYWxsYmFjayhKU1ZhbHVlUmVmKTsKKyAgICBKU1ZhbHVlUmVmIGRp
ZERpc21pc3NQb3BvdmVyQ2FsbGJhY2soKSBjb25zdDsKKyAgICB2b2lkIHNldFdpbGxQcmVzZW50
UG9wb3ZlckNhbGxiYWNrKEpTVmFsdWVSZWYpOworICAgIEpTVmFsdWVSZWYgd2lsbFByZXNlbnRQ
b3BvdmVyQ2FsbGJhY2soKSBjb25zdDsKKwogICAgIGJvb2wgaXNTaG93aW5nTWVudSgpIGNvbnN0
OwogICAgIEpTT2JqZWN0UmVmIHJlY3RGb3JNZW51QWN0aW9uKEpTU3RyaW5nUmVmIGFjdGlvbikg
Y29uc3Q7CiAgICAgSlNPYmplY3RSZWYgbWVudVJlY3QoKSBjb25zdDsKQEAgLTI1MCw2ICsyNTUs
OCBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1TZXREaWRIaWRlS2V5Ym9hcmRDYWxsYmFj
aygpOwogICAgIHZvaWQgcGxhdGZvcm1TZXREaWRTaG93TWVudUNhbGxiYWNrKCk7CiAgICAgdm9p
ZCBwbGF0Zm9ybVNldERpZEhpZGVNZW51Q2FsbGJhY2soKTsKKyAgICB2b2lkIHBsYXRmb3JtU2V0
V2lsbFByZXNlbnRQb3BvdmVyQ2FsbGJhY2soKTsKKyAgICB2b2lkIHBsYXRmb3JtU2V0RGlkRGlz
bWlzc1BvcG92ZXJDYWxsYmFjaygpOwogICAgIHZvaWQgcGxhdGZvcm1TZXREaWRFbmRTY3JvbGxp
bmdDYWxsYmFjaygpOwogICAgIHZvaWQgcGxhdGZvcm1DbGVhckFsbENhbGxiYWNrcygpOwogICAg
IHZvaWQgcGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVm
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldL
V2ViVmlldy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJW
aWV3LmgKaW5kZXggYmNkNjJkZjY2ZTg2ZDU5ZWM3NTk5ZGU4MTI1NGFlYzk1OGRiMDAyZC4uOTZl
NTE1MjYxYjI1ODhmMzczNmU2ODg5MTUxNzFhMDk5YzRlODY0ZSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmgKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmgKQEAgLTQzLDYgKzQz
LDggQEAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkSGlkZUtleWJvYXJk
Q2FsbGJhY2spKHZvaWQpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRT
aG93TWVudUNhbGxiYWNrKSh2b2lkKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lk
ICheZGlkSGlkZU1lbnVDYWxsYmFjaykodm9pZCk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29w
eSkgdm9pZCAoXndpbGxQcmVzZW50UG9wb3ZlckNhbGxiYWNrKSh2b2lkKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkRGlzbWlzc1BvcG92ZXJDYWxsYmFjaykodm9pZCk7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZEVuZFNjcm9sbGluZ0NhbGxi
YWNrKSh2b2lkKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkIChecm90YXRpb25E
aWRFbmRDYWxsYmFjaykodm9pZCk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTdHJp
bmcgKmFjY2Vzc2liaWxpdHlTcGVha1NlbGVjdGlvbkNvbnRlbnQ7CkBAIC01Niw2ICs1OCw3IEBA
CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzU2hvd2luZ0tleWJv
YXJkKSBCT09MIHNob3dpbmdLZXlib2FyZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSwgZ2V0dGVyPWlzU2hvd2luZ01lbnUpIEJPT0wgc2hvd2luZ01lbnU7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc1Nob3dpbmdQb3BvdmVyKSBCT09MIHNob3dpbmdQ
b3BvdmVyOwogQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgQk9PTCB1c2VzU2FmYXJpTGlr
ZVJvdGF0aW9uOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNJbnRl
cmFjdGluZ1dpdGhGb3JtQ29udHJvbCkgQk9PTCBpbnRlcmFjdGluZ1dpdGhGb3JtQ29udHJvbDsK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tX
ZWJWaWV3Lm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJW
aWV3Lm1tCmluZGV4IDE0ZDVkNTlmYzM0OWE3YWRmMmZhNzgwMDUwN2IwNzRhYTdjM2I2OGUuLjI1
ODA4MGU0NzllZWRhYjc0ZmQ3MDFjZTM4MzJkNGRhODUxM2EyYjIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5tbQorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcubW0KQEAgLTU1LDYg
KzU1LDcgQEAgQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF56b29tVG9TY2FsZUNv
bXBsZXRpb25IYW5kbGVyKSh2b2lkKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lk
IChecmV0cmlldmVTcGVha1NlbGVjdGlvbkNvbnRlbnRDb21wbGV0aW9uSGFuZGxlcikodm9pZCk7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPWlzU2hvd2luZ0tleWJvYXJkLCBzZXR0ZXI9
c2V0SXNTaG93aW5nS2V5Ym9hcmQ6KSBCT09MIHNob3dpbmdLZXlib2FyZDsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBnZXR0ZXI9aXNTaG93aW5nTWVudSwgc2V0dGVyPXNldElzU2hvd2luZ01lbnU6
KSBCT09MIHNob3dpbmdNZW51OworQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc1Nob3dp
bmdQb3BvdmVyLCBzZXR0ZXI9c2V0SXNTaG93aW5nUG9wb3ZlcjopIEJPT0wgc2hvd2luZ1BvcG92
ZXI7CiAKIEBlbmQKIApAQCAtNzksNiArODAsOCBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhG
cmFtZTooQ0dSZWN0KWZyYW1lIGNvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpbwog
ICAgICAgICBbY2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9pbnZv
a2VIaWRlS2V5Ym9hcmRDYWxsYmFja0lmTmVjZXNzYXJ5KSBuYW1lOlVJS2V5Ym9hcmREaWRIaWRl
Tm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwogICAgICAgICBbY2VudGVyIGFkZE9ic2VydmVyOnNl
bGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9kaWRTaG93TWVudSkgbmFtZTpVSU1lbnVDb250cm9sbGVy
RGlkU2hvd01lbnVOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07CiAgICAgICAgIFtjZW50ZXIgYWRk
T2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2RpZEhpZGVNZW51KSBuYW1lOlVJTWVu
dUNvbnRyb2xsZXJEaWRIaWRlTWVudU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKKyAgICAgICAg
W2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2lsbFByZXNlbnRQ
b3BvdmVyKSBuYW1lOkAiVUlQb3BvdmVyQ29udHJvbGxlcldpbGxQcmVzZW50UG9wb3Zlck5vdGlm
aWNhdGlvbiIgb2JqZWN0Om5pbF07CisgICAgICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBz
ZWxlY3RvcjpAc2VsZWN0b3IoX2RpZERpc21pc3NQb3BvdmVyKSBuYW1lOkAiVUlQb3BvdmVyQ29u
dHJvbGxlckRpZERpc21pc3NQb3BvdmVyTm90aWZpY2F0aW9uIiBvYmplY3Q6bmlsXTsKICAgICAg
ICAgc2VsZi5VSURlbGVnYXRlID0gc2VsZjsKICAgICB9CiAgICAgcmV0dXJuIHNlbGY7CkBAIC0x
NDEsNiArMTQ0LDggQEAgLSAodm9pZClyZXNldEludGVyYWN0aW9uQ2FsbGJhY2tzCiAgICAgc2Vs
Zi5kaWRIaWRlS2V5Ym9hcmRDYWxsYmFjayA9IG5pbDsKICAgICBzZWxmLmRpZFNob3dNZW51Q2Fs
bGJhY2sgPSBuaWw7CiAgICAgc2VsZi5kaWRIaWRlTWVudUNhbGxiYWNrID0gbmlsOworICAgIHNl
bGYud2lsbFByZXNlbnRQb3BvdmVyQ2FsbGJhY2sgPSBuaWw7CisgICAgc2VsZi5kaWREaXNtaXNz
UG9wb3ZlckNhbGxiYWNrID0gbmlsOwogICAgIHNlbGYuZGlkRW5kU2Nyb2xsaW5nQ2FsbGJhY2sg
PSBuaWw7CiAgICAgc2VsZi5yb3RhdGlvbkRpZEVuZENhbGxiYWNrID0gbmlsOwogfQpAQCAtMjAw
LDYgKzIwNSwyNiBAQCAtICh2b2lkKV9kaWRIaWRlTWVudQogICAgICAgICBzZWxmLmRpZEhpZGVN
ZW51Q2FsbGJhY2soKTsKIH0KIAorLSAodm9pZClfd2lsbFByZXNlbnRQb3BvdmVyCit7CisgICAg
aWYgKHNlbGYuc2hvd2luZ1BvcG92ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIHNlbGYuc2hv
d2luZ1BvcG92ZXIgPSBZRVM7CisgICAgaWYgKHNlbGYud2lsbFByZXNlbnRQb3BvdmVyQ2FsbGJh
Y2spCisgICAgICAgIHNlbGYud2lsbFByZXNlbnRQb3BvdmVyQ2FsbGJhY2soKTsKK30KKworLSAo
dm9pZClfZGlkRGlzbWlzc1BvcG92ZXIKK3sKKyAgICBpZiAoIXNlbGYuc2hvd2luZ1BvcG92ZXIp
CisgICAgICAgIHJldHVybjsKKworICAgIHNlbGYuc2hvd2luZ1BvcG92ZXIgPSBOTzsKKyAgICBp
ZiAoc2VsZi5kaWREaXNtaXNzUG9wb3ZlckNhbGxiYWNrKQorICAgICAgICBzZWxmLmRpZERpc21p
c3NQb3BvdmVyQ2FsbGJhY2soKTsKK30KKwogLSAodm9pZClzY3JvbGxWaWV3V2lsbEJlZ2luWm9v
bWluZzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyB3aXRoVmlldzooVUlWaWV3ICopdmlldwog
ewogICAgIFtzdXBlciBzY3JvbGxWaWV3V2lsbEJlZ2luWm9vbWluZzpzY3JvbGxWaWV3IHdpdGhW
aWV3OnZpZXddOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3Jp
cHRDb250cm9sbGVySU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRD
b250cm9sbGVySU9TLm1tCmluZGV4IGFhOWQ4NDg4NWFhYTg4MGQzOTgxZWVkZDRmYTM4NDk5YTdm
OGYxNmYuLmQyNDk2Nzg3YTgzZWMwMWNlNzQ2MDc3ZjAzNmUxNmE1NjUyN2YyYzAgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0K
QEAgLTkwNyw2ICs5MDcsMjkgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0
RGlkSGlkZU1lbnVDYWxsYmFjaygpCiAgICAgfTsKIH0KIAorYm9vbCBVSVNjcmlwdENvbnRyb2xs
ZXI6OmlzU2hvd2luZ1BvcG92ZXIoKSBjb25zdAoreworICAgIHJldHVybiBUZXN0Q29udHJvbGxl
cjo6c2luZ2xldG9uKCkubWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCkuc2hvd2luZ1BvcG92
ZXI7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNldFdpbGxQcmVzZW50
UG9wb3ZlckNhbGxiYWNrKCkKK3sKKyAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubWFp
bldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCkud2lsbFByZXNlbnRQb3BvdmVyQ2FsbGJhY2sgPSBe
eworICAgICAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
bV9jb250ZXh0LT5maXJlQ2FsbGJhY2soQ2FsbGJhY2tUeXBlV2lsbFByZXNlbnRQb3BvdmVyKTsK
KyAgICB9OworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXREaWREaXNt
aXNzUG9wb3ZlckNhbGxiYWNrKCkKK3sKKyAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCku
bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCkuZGlkRGlzbWlzc1BvcG92ZXJDYWxsYmFjayA9
IF57CisgICAgICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICBtX2NvbnRleHQtPmZpcmVDYWxsYmFjayhDYWxsYmFja1R5cGVEaWREaXNtaXNzUG9wb3Zlcik7
CisgICAgfTsKK30KKwogSlNPYmplY3RSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpyZWN0Rm9yTWVu
dUFjdGlvbihKU1N0cmluZ1JlZiBqc0FjdGlvbikgY29uc3QKIHsKICAgICBhdXRvIGFjdGlvbiA9
IGFkb3B0Q0YoSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwganNBY3Rp
b24pKTsKQEAgLTk3NCw2ICs5OTcsOCBAQCB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZv
cm1DbGVhckFsbENhbGxiYWNrcygpCiAgICAgd2ViVmlldy53aWxsQmVnaW5ab29taW5nQ2FsbGJh
Y2sgPSBuaWw7CiAgICAgd2ViVmlldy5kaWRIaWRlS2V5Ym9hcmRDYWxsYmFjayA9IG5pbDsKICAg
ICB3ZWJWaWV3LmRpZFNob3dLZXlib2FyZENhbGxiYWNrID0gbmlsOworICAgIHdlYlZpZXcud2ls
bFByZXNlbnRQb3BvdmVyQ2FsbGJhY2sgPSBuaWw7CisgICAgd2ViVmlldy5kaWREaXNtaXNzUG9w
b3ZlckNhbGxiYWNrID0gbmlsOwogICAgIHdlYlZpZXcuZGlkRW5kU2Nyb2xsaW5nQ2FsbGJhY2sg
PSBuaWw7CiAgICAgd2ViVmlldy5yb3RhdGlvbkRpZEVuZENhbGxiYWNrID0gbmlsOwogfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDhhNjY4ZDJlYWFkNTViNTQ1MTUyMGQ3ZDg2MDI5YzM2Mjk1M2ZjNzcuLjA4YjVkYWNhNzEy
NzBkMzJkMjk2YjNlNjk4NjNlOWZlZGZhZTdiNzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAx
OS0wMy0yOCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lQ
YWRdIFNob3VsZCBvcGVuIHBvcG92ZXIgd2hlbiB0aGUgc3BhY2ViYXIgaXMgcHJlc3NlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MzYwCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80OTM4OTEyOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gaVBhZC1zcGVjaWZpYyB0ZXN0IHRvIGVuc3Vy
ZSB0aGF0IHByZXNzaW5nIHRoZSBzcGFjZWJhciBvcGVucyB0aGUgcG9wb3ZlciBhbmQgc2Nyb2xs
cworICAgICAgICB0aGUgZm9ybSBjb250cm9sIGludG8gdmlldy4KKworICAgICAgICAqIGZhc3Qv
Zm9ybXMvaW9zL2lwYWQvb3Blbi1waWNrZXItdXNpbmcta2V5Ym9hcmQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lvcy9pcGFkL29wZW4tcGlja2VyLXVzaW5nLWtl
eWJvYXJkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRp
b25zOiBTa2lwIHRlc3RzIGluIGZhc3QvZm9ybXMvaW9zL2lwYWQuIFdlIHdpbGwgdW5za2lwIGZv
ciBpUGFkIGJlbG93LgorICAgICAgICAqIHBsYXRmb3JtL2lwYWQvVGVzdEV4cGVjdGF0aW9uczog
TWFyayB0ZXN0cyBpbiBmYXN0L2Zvcm1zL2lvcy9pcGFkIGFzIFBBU1Mgc28gd2UgcnVuIHRoZW0u
CisgICAgICAgICogcmVzb3VyY2VzL3VpLWhlbHBlci5qczoKKyAgICAgICAgKHdpbmRvdy5VSUhl
bHBlci53YWl0Rm9yUG9wb3ZlclRvUHJlc2VudCk6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIu
d2FpdEZvclBvcG92ZXJUb0Rpc21pc3MpOgorCiAyMDE5LTAzLTI4ICBEYW5pZWwgQmF0ZXMgIDxk
YWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBTaG91bGQgYmUgYWJsZSB0byBkaXNt
aXNzIHBpY2tlciBvciBwb3BvdmVyIHVzaW5nIHRoZSBrZXlib2FyZApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvaXBhZC9vcGVuLXBpY2tlci11c2luZy1rZXlib2FyZC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9pcGFkL29wZW4tcGlja2Vy
LXVzaW5nLWtleWJvYXJkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NmMzMGRhYzYwNmIxYTVm
YTg5YTM1YzU3MGI2MjQ2ZmJjYTNmNGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9pb3MvaXBhZC9vcGVuLXBpY2tlci11c2luZy1rZXlib2FyZC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwyMiBAQAorVGVzdHMgdGhhdCBwcmVzc2luZyB0aGUgc3BhY2ViYXIgYW5k
IEVzY2FwZSB0byBvcGVuIGFuZCBjbG9zZSB0aGUgcG9wb3ZlciB3b3JrLCBkbyBub3QgY2F1c2Ug
YSB2YWx1ZSBjaGFuZ2UsIGFuZCB0aGF0IHdlIHNjcm9sbCB0aGUgZm9ybSBjb250cm9sIGludG8g
dmlldyB3aGVuIHRoZSBwb3BvdmVyIGlzIG9wZW5lZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKKworQWZ0ZXIgdGFiIGZvY3VzZWQ6CitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0ZXN0IikudmFsdWUgaXMgIkZpcnN0IgorCitBZnRlciBkaXNtaXNzaW5nIHBvcG92ZXIg
YnkgcHJlc3NpbmcgRXNjYXBlOgorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIp
LnZhbHVlIGlzICJGaXJzdCIKKworQWZ0ZXIgb3BlbmluZyBwb3BvdmVyIGJ5IHByZXNzaW5nIHNw
YWNlYmFyOgorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpLnZhbHVlIGlzICJG
aXJzdCIKKworQWZ0ZXIgc2Nyb2xsaW5nIHRoZSBwYWdlIGFuZCBwcmVzc2luZyBzcGFjZWJhcjoK
K1BBU1Mgd2luZG93LnNjcm9sbFkgaXMgbm9uLXplcm8uCitQQVNTIHdpbmRvdy5zY3JvbGxZIGlz
IDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9pcGFkL29wZW4tcGlja2VyLXVz
aW5nLWtleWJvYXJkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9pcGFkL29wZW4t
cGlja2VyLXVzaW5nLWtleWJvYXJkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDZkY2Q5NWVlOTRiNDczY2I5
MjFlN2UwMWIxMjgyZWQ0MTRkZDZjMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW9zL2lwYWQvb3Blbi1waWNrZXItdXNpbmcta2V5Ym9hcmQuaHRtbApAQCAtMCww
ICsxLDEwNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0i
dmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPTgwMCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgc3R5bGU9
ImhlaWdodDogNDA5NnB4Ij4KKzwhLS0gUGxhY2UgdGhlIHRlc3QgY29udGFpbmVyIGFib3ZlIHRo
ZSBjb25zb2xlIG91dHB1dCB0byBhdm9pZCB0aGUgbmVlZCB0byBjb21wZW5zYXRlIGZvciBwYWdl
IHNjcm9sbC4gLS0+Cis8ZGl2IGlkPSJ0ZXN0LWNvbnRhaW5lciI+CisgICAgPHA+PHNlbGVjdCBp
ZD0idGVzdCI+CisgICAgICAgIDxvcHRpb24+Rmlyc3Q8L29wdGlvbj4KKyAgICAgICAgPG9wdGlv
bj5TZWNvbmQ8L29wdGlvbj4KKyAgICA8L3NlbGVjdD48L3A+Cis8L2Rpdj4KKzxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgord2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitsZXQgZXhwZWN0ZWRWYWx1ZTsKKworY29uc3QgbW9k
aWZpZXJEaXNwbGF5TmFtZU1hcCA9IHsKKyAgICAiYWx0S2V5IjogIk9wdGlvbiIsCisgICAgImN0
cmxLZXkiOiAiQ29udHJvbCIsCisgICAgIm1ldGFLZXkiOiAiQ29tbWFuZCIsCisgICAgInNoaWZ0
S2V5IjogIlNoaWZ0IiwKKyAgICAiY2Fwc0xvY2tLZXkiOiAiQ2FwcyBMb2NrIiwKK30KKworY2xh
c3MgS2V5Q29tbWFuZCB7CisgICAgY29uc3RydWN0b3Ioa2V5LCBtb2RpZmllcnMgPSBbXSkKKyAg
ICB7CisgICAgICAgIHRoaXMua2V5ID0ga2V5OworICAgICAgICB0aGlzLm1vZGlmaWVycyA9IG1v
ZGlmaWVyczsKKyAgICB9CisKKyAgICB0b1N0cmluZygpCisgICAgeworICAgICAgICBsZXQgcmVh
ZGFibGVDb21tYW5kID0gdGhpcy5tb2RpZmllcnMubWFwKChtb2RpZmllcikgPT4gbW9kaWZpZXJE
aXNwbGF5TmFtZU1hcFttb2RpZmllcl0pOworICAgICAgICByZWFkYWJsZUNvbW1hbmQucHVzaCh0
aGlzLmtleSk7CisgICAgICAgIHJldHVybiByZWFkYWJsZUNvbW1hbmQuam9pbigiICsgIik7Cisg
ICAgfQorfQorCitmdW5jdGlvbiBkb25lKCkKK3sKKyAgICBsZXQgdGVzdENvbnRhaW5lciA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0LWNvbnRhaW5lciIpOworICAgIGRvY3VtZW50LmJv
ZHkucmVtb3ZlQ2hpbGQodGVzdENvbnRhaW5lcik7CisgICAgZmluaXNoSlNUZXN0KCkKK30KKwor
YXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgICAgICB0ZXN0RmFpbGVkKCJNdXN0IGJlIHJ1biBpbiBXZWJLaXRUZXN0UnVubmVyLiIp
OworICAgICAgICBkb25lKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhc3luYyBm
dW5jdGlvbiB0ZXN0U2Nyb2xsSW50b1ZpZXcoKSB7CisgICAgICAgIHNob3VsZEJlTm9uWmVybygi
d2luZG93LnNjcm9sbFkiKTsKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gaGFuZGxlU2Nyb2xsKCkg
eworICAgICAgICAgICAgaWYgKHdpbmRvdy5zY3JvbGxZKQorICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIHNob3VsZEJlWmVybygid2luZG93LnNjcm9sbFkiKTsKKyAgICAgICAg
ICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JQb3BvdmVyVG9QcmVzZW50KCk7CisgICAgICAgICAg
ICBVSUhlbHBlci5rZXlEb3duKCJlc2NhcGUiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVy
LndhaXRGb3JQb3BvdmVyVG9EaXNtaXNzKCk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAg
IH0KKyAgICAgICAgLy8gVGhlIHNjcm9sbCBpbml0aWF0ZWQgYnkgcHJlc3NpbmcgdGhlIHNwYWNl
YmFyIGlzIGFuaW1hdGVkLiBNdWx0aXBsZSBzY3JvbGwgZXZlbnRzIGFyZQorICAgICAgICAvLyBk
aXNwYXRjaGVkLiBXZSB3YW50IHRvIHdhaXQgdW50aWwgdGhlIHBhZ2Ugc2Nyb2xscyB0byB0aGUg
dG9wIGJlZm9yZSBjb250aW51aW5nIHRvIGVuc3VyZQorICAgICAgICAvLyBjb25zaXN0ZW50IHRl
c3QgcmVzdWx0cy4KKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIGhh
bmRsZVNjcm9sbCk7CisgICAgICAgIFVJSGVscGVyLmtleURvd24oIiAiKTsKKyAgICB9CisKKyAg
ICBhc3luYyBmdW5jdGlvbiBoYW5kbGVGb2N1cygpIHsKKyAgICAgICAgZGVidWcoIjxicj5BZnRl
ciB0YWIgZm9jdXNlZDoiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGVzdCIpLnZhbHVlJywgZXhwZWN0ZWRWYWx1ZSk7CisgICAgICAg
IGRlYnVnKCI8YnI+QWZ0ZXIgZGlzbWlzc2luZyBwb3BvdmVyIGJ5IHByZXNzaW5nIEVzY2FwZToi
KTsKKyAgICAgICAgVUlIZWxwZXIua2V5RG93bigiZXNjYXBlIik7CisgICAgICAgIGF3YWl0IFVJ
SGVscGVyLndhaXRGb3JQb3BvdmVyVG9EaXNtaXNzKCk7CisgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKS52YWx1ZScsIGV4cGVjdGVk
VmFsdWUpOworICAgICAgICBkZWJ1ZygiPGJyPkFmdGVyIG9wZW5pbmcgcG9wb3ZlciBieSBwcmVz
c2luZyBzcGFjZWJhcjoiKTsKKyAgICAgICAgVUlIZWxwZXIua2V5RG93bigiICIpOworICAgICAg
ICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yUG9wb3ZlclRvUHJlc2VudCgpOworICAgICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0IikudmFsdWUn
LCBleHBlY3RlZFZhbHVlKTsKKyAgICAgICAgVUlIZWxwZXIua2V5RG93bigiZXNjYXBlIik7Cisg
ICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JQb3BvdmVyVG9EaXNtaXNzKCk7CisgICAgICAg
IGRlYnVnKCI8YnI+QWZ0ZXIgc2Nyb2xsaW5nIHRoZSBwYWdlIGFuZCBwcmVzc2luZyBzcGFjZWJh
cjoiKTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHRlc3RTY3Jv
bGxJbnRvVmlldywgeyBvbmNlOiB0cnVlIH0pOworICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwg
ZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQpOyAvLyBTY3JvbGwgdG8gdGhlIGJvdHRvbSBvZiB0
aGUgcGFnZS4KKyAgICB9CisgICAgbGV0IGVsZW1lbnRUb1Rlc3QgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGVzdCIpOworICAgIGV4cGVjdGVkVmFsdWUgPSBlbGVtZW50VG9UZXN0LnZhbHVl
OworICAgIGVsZW1lbnRUb1Rlc3QuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCBoYW5kbGVGb2N1
cywgeyBvbmNlOiB0cnVlIH0pOworICAgIFVJSGVscGVyLmtleURvd24oIlx0IiwgWyJhbHRLZXki
XSk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHByZXNzaW5nIHRoZSBzcGFjZWJhciBh
bmQgRXNjYXBlIHRvIG9wZW4gYW5kIGNsb3NlIHRoZSBwb3BvdmVyIHdvcmssIGRvIG5vdCBjYXVz
ZSBhIHZhbHVlIGNoYW5nZSwgYW5kIHRoYXQgd2Ugc2Nyb2xsIHRoZSBmb3JtIGNvbnRyb2wgaW50
byB2aWV3IHdoZW4gdGhlIHBvcG92ZXIgaXMgb3BlbmVkLiIpOworCitydW5UZXN0KCk7Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggNjI4NTFiZjJmZjUzN2YwN2I4MDNiNjczNTE0YWQzOGE4MTg1NmE4OS4u
NDQ3M2E3OTcxYzJlNzVjZDAyZTMzNzhiZjY4ZjI3MWJmZTU4ZTI5MyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI1LDYgKzI1LDcgQEAgaHR0cC90ZXN0
cy9nemlwLWNvbnRlbnQtZW5jb2RpbmcgWyBQYXNzIF0KIAogIyBpUGFkLXNwZWNpZmljIHRlc3Rz
IHNraXBwZWQgaGVyZSBhbmQgcmUtZW5hYmxlZCBpbiBwbGF0Zm9ybS9pcGFkCiBmYXN0L2V2ZW50
cy9pb3MvaXBhZCBbIFNraXAgXQorZmFzdC9mb3Jtcy9pb3MvaXBhZCBbIFNraXAgXQogCiAjIyMK
ICMgVW5zdXBwb3J0ZWQgYW5kIGRpc2FibGVkIGZlYXR1cmVzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pcGFkL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pcGFkL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNTE1ZjYyOGM5MzBhMDM5OWY2OTE3YWM1ZTA2
YWQwMzkxNjJmMTJkNC4uMTQ2N2MzMDg1Y2UwZWU4N2U4MjRlY2NmMzJhOGVkYjdkNTY5M2VkYSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaXBhZC9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lwYWQvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMSwzICsx
LDUgQEAKK2Zhc3QvZm9ybXMvaW9zL2lwYWQgWyBQYXNzIF0KKwogIyBpUGFkcyBkb24ndCB6b29t
IHdoZW4gZm9ybSBlbGVtZW50cyBhcmUgZm9jdXNlZAogZmFzdC9mb3Jtcy9pb3MvYWNjZXNzb3J5
LWJhci1uYXZpZ2F0aW9uLmh0bWwgWyBTa2lwIF0KIGZhc3QvZm9ybXMvaW9zL2Nob29zZS1zZWxl
Y3Qtb3B0aW9uLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNl
cy91aS1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCmluZGV4
IDgzOTliNzk4YmQ4NTY3MWJhODQxZDUwODQ0ZjkxZTFjNDYxZDIzMWIuLjk0ZjBmYWEyMjhjYjIx
MDViMGE4MGYyMTkxNDlkZjE3NDAyNjU3OTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Jlc291
cmNlcy91aS1oZWxwZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5q
cwpAQCAtMzgyLDYgKzM4MiwzOCBAQCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7
CiAgICAgICAgIH0pOwogICAgIH0KIAorICAgIHN0YXRpYyB3YWl0Rm9yUG9wb3ZlclRvUHJlc2Vu
dCgpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuaXNXZWJLaXQyKCkgfHwgIXRoaXMuaXNJT1Mo
KSkKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKKworICAgICAgICByZXR1
cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJ
U2NyaXB0KGAKKyAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmICh1aUNvbnRyb2xsZXIuaXNTaG93aW5nUG9wb3ZlcikKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci53aWxsUHJlc2Vu
dFBvcG92ZXJDYWxsYmFjayA9ICgpID0+IHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7
CisgICAgICAgICAgICAgICAgfSkoKWAsIHJlc29sdmUpOworICAgICAgICB9KTsKKyAgICB9CisK
KyAgICBzdGF0aWMgd2FpdEZvclBvcG92ZXJUb0Rpc21pc3MoKQorICAgIHsKKyAgICAgICAgaWYg
KCF0aGlzLmlzV2ViS2l0MigpIHx8ICF0aGlzLmlzSU9TKCkpCisgICAgICAgICAgICByZXR1cm4g
UHJvbWlzZS5yZXNvbHZlKCk7CisKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUg
PT4geworICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgICAgICAgICAg
ICAgKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodWlDb250cm9sbGVyLmlz
U2hvd2luZ1BvcG92ZXIpCisgICAgICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuZGlk
RGlzbWlzc1BvcG92ZXJDYWxsYmFjayA9ICgpID0+IHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBs
ZXRlKCk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAg
IHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICAgICAgfSkoKWAs
IHJlc29sdmUpOworICAgICAgICB9KTsKKyAgICB9CisKICAgICBzdGF0aWMgd2FpdEZvcktleWJv
YXJkVG9IaWRlKCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5pc1dlYktpdDIoKSB8fCAhdGhp
cy5pc0lPUygpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367068</attachid>
            <date>2019-04-09 13:24:58 -0700</date>
            <delta_ts>2019-04-09 14:45:09 -0700</delta_ts>
            <desc>Patch (Rebased copy of Dan&apos;s patch)</desc>
            <filename>bug-196360-20190409132457.patch</filename>
            <type>text/plain</type>
            <size>27587</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0MDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGEzODA2YWMxZTdiZDBiNGFh
YmQwZWQ4NWExYjBhNmY5N2Q1OTliOGQuLmNmMjUwZmZhODQ3MTE2NWU5MjcxMjY3ZjBjMTA5MTY0
NGM3NzQ3NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTktMDQtMDkgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpUGFkXSBTaG91bGQgb3BlbiBw
b3BvdmVyIHdoZW4gdGhlIHNwYWNlYmFyIGlzIHByZXNzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjM2MAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNDkzODkxMjk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUHJlc3NpbmcgdGhlIHNwYWNlYmFyIHNob3VsZCBvcGVuIHRoZSBwb3BvdmVyIGZvciBh
IGZvY3VzZWQgcG9wdXAgYnV0dG9uIChlLmcuIDxzZWxlY3Q+KSBvbiBpT1MKKyAgICAgICAganVz
dCBsaWtlIGl0IGRvZXMgb24gdGhlIE1hYy4KKworICAgICAgICBGb3Igbm93LCB3ZSBrZWVwIHRo
ZSBpUGhvbmUgYmVoYXZpb3Igb2YgYmx1cnJpbmcgdGhlIGVsZW1lbnQgd2hlbiB0aGUgRG9uZSBi
dXR0b24gaXMgcHJlc3NlZCBhbmQKKyAgICAgICAgaGVuY2UgcHJlc3Npbmcgc3BhY2ViYXIgZG9l
cyBub3RoaW5nIChiZWNhdXNlIHRoZXJlIGlzIG5vIGZvY3VzZWQgZWxlbWVudCkuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IGFjY2Vzc29yeU9wZW5dKTogQWRkZWQuIEV4dHJhY3RlZCB0aGUgbG9naWMg
ZnJvbSAtX2VsZW1lbnREaWRGb2N1cyB0byBzY3JvbGwgdG8KKyAgICAgICAgdGhlIGZvY3VzZWQg
ZWxlbWVudCwgdXBkYXRlIHRoZSBhY2Nlc3NvcnkgYW5kIHRoZW4gdGVsbCB0aGUgYWNjZXNzb3J5
IHRvIGJlZ2luIGVkaXRpbmcuCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2VsZW1lbnREaWRG
b2N1czp1c2VySXNJbnRlcmFjdGluZzpibHVyUHJldmlvdXNOb2RlOmNoYW5naW5nQWN0aXZpdHlT
dGF0ZTp1c2VyT2JqZWN0Ol0pOgorICAgICAgICBXcml0ZSBpbiB0ZXJtcyBvZiAtYWNjZXNzb3J5
T3Blbi4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBlcmlwaGVyYWxCYXNl
Lm1tOgorICAgICAgICAoLVtXS0Zvcm1QZXJpcGhlcmFsQmFzZSBoYW5kbGVLZXlFdmVudDpdKTog
SW50ZXJwcmV0IHRoZSBzcGFjZWJhciB3aGVuIHRoZSBwZXJpcGhlcmFsIGlzIGNsb3NlZCAoIV9l
ZGl0aW5nKQorICAgICAgICBhbmQgY2FsbCAtYWNjZXNzb3J5T3BlbiB0byB1bHRpbWF0ZWx5IGNh
bGwgYmFjayB0byB0aGlzIHBlcmlwaGVyYWwgdG8gdGVsbCBpdCB0byBiZWdpbiBlZGl0aW5nLAor
ICAgICAgICB3aGljaCB3aWxsIGNhdXNlIHRoZSBwb3BvdmVyIHRvIGFwcGVhciBhZ2Fpbi4KKwog
MjAxOS0wNC0wOSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW0Fw
cGxlIFBheV0gQWRkIHJlbGVhc2UgbG9nZ2luZyB0byBQYXltZW50Q29vcmRpbmF0b3IKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaAppbmRleCBhZDJmZTZlMjM2ZjI4NjI5Zjc4OTQxYmRkMzVhNDJhZmViZWEwNjQzLi43ZmRk
MTQ2ODI5ODhhMTZkOWFjNDE2MGJlNzg2NmUyN2E1Njg3OTE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC00
MjgsNyArNDI4LDYgQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNM
QVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKHZvaWQpX3Nob3dQbGF5
YmFja1RhcmdldFBpY2tlcjooQk9PTCloYXNWaWRlbyBmcm9tUmVjdDooY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpZWxlbWVudFJlY3Qgcm91dGVTaGFyaW5nUG9saWN5OihXZWJDb3JlOjpSb3V0ZVNo
YXJpbmdQb2xpY3kpcG9saWN5IHJvdXRpbmdDb250ZXh0VUlEOihOU1N0cmluZyAqKWNvbnRleHRV
SUQ7CiAtICh2b2lkKV9zaG93UnVuT3BlblBhbmVsOihBUEk6Ok9wZW5QYW5lbFBhcmFtZXRlcnMq
KXBhcmFtZXRlcnMgcmVzdWx0TGlzdGVuZXI6KFdlYktpdDo6V2ViT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXJQcm94eSopbGlzdGVuZXI7CiAtICh2b2lkKV9zaG93U2hhcmVTaGVldDooY29uc3QgV2Vi
Q29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYpc2hhcmVEYXRhIGNvbXBsZXRpb25IYW5kbGVy
OihXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpY29tcGxldGlvbkhhbmRsZXI7
Ci0tICh2b2lkKWFjY2Vzc29yeURvbmU7CiAtICh2b2lkKWRpc21pc3NGaWxlUGlja2VyOwogLSAo
dm9pZClfZGlkSGFuZGxlS2V5RXZlbnQ6KDo6V2ViRXZlbnQgKilldmVudCBldmVudFdhc0hhbmRs
ZWQ6KEJPT0wpZXZlbnRXYXNIYW5kbGVkOwogLSAoVmVjdG9yPFdlYktpdDo6T3B0aW9uSXRlbT4m
KSBmb2N1c2VkU2VsZWN0RWxlbWVudE9wdGlvbnM7CkBAIC00NDksNiArNDQ4LDExIEBAIEZPUl9F
QUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FD
VElPTl9GT1JfV0VCX1ZJRVcpCiAtIChXS0Zvcm1JbnB1dFNlc3Npb24gKilfZm9ybUlucHV0U2Vz
c2lvbjsKIC0gKHZvaWQpX2RpZENoYW5nZVdlYlZpZXdFZGl0YWJpbGl0eTsKIAorLy8gVUlXZWJG
b3JtQWNjZXNzb3J5RGVsZWdhdGUgcHJvdG9jb2wKKy0gKHZvaWQpYWNjZXNzb3J5RG9uZTsKKwor
LSAodm9pZClhY2Nlc3NvcnlPcGVuOworCiAtICh2b2lkKV9yZXF1ZXN0RE9NUGFzdGVBY2Nlc3NX
aXRoRWxlbWVudFJlY3Q6KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKWVsZW1lbnRSZWN0IG9yaWdp
bklkZW50aWZpZXI6KGNvbnN0IFN0cmluZyYpb3JpZ2luSWRlbnRpZmllciBjb21wbGV0aW9uSGFu
ZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3Bv
bnNlKT4mJiljb21wbGV0aW9uSGFuZGxlcjsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIGN1cnJlbnRQb3Np
dGlvbkluZm9ybWF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggMDllOTZhYjAyODIyMTE0NDM3OGYx
NWJjYmE0NmQ0ZGFjZjA0NjI4Mi4uMzU0MTg5ZTI0OWZjNjk0YjgyNjVlYzA0NzcyZWFkZmJiM2Fk
NDkyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0zODA3LDYgKzM4MDcsMTUgQEAgLSAoVUlXZWJGb3Jt
QWNjZXNzb3J5ICopZm9ybUFjY2Vzc29yeVZpZXcKICAgICByZXR1cm4gX2Zvcm1BY2Nlc3NvcnlW
aWV3LmdldCgpOwogfQogCistICh2b2lkKWFjY2Vzc29yeU9wZW4KK3sKKyAgICBpZiAoIV9pbnB1
dFBlcmlwaGVyYWwpCisgICAgICAgIHJldHVybjsKKyAgICBbc2VsZiBfem9vbVRvUmV2ZWFsRm9j
dXNlZEVsZW1lbnRdOworICAgIFtzZWxmIF91cGRhdGVBY2Nlc3NvcnldOworICAgIFtfaW5wdXRQ
ZXJpcGhlcmFsIGJlZ2luRWRpdGluZ107Cit9CisKIC0gKHZvaWQpX3VwZGF0ZUFjY2Vzc29yeQog
ewogICAgIGF1dG8qIGFjY2Vzc29yeVZpZXcgPSBzZWxmLmZvcm1BY2Nlc3NvcnlWaWV3OyAvLyBD
cmVhdGVzIG9uZSwgaWYgbmVlZGVkLgpAQCAtNDk5OSw5ICs1MDA4LDcgQEAgLSAodm9pZClfZWxl
bWVudERpZEZvY3VzOihjb25zdCBXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mKWlu
Zm9ybWF0aW9uIHUKICAgICAgICAgaWYgKF9pbnB1dFBlcmlwaGVyYWwpIHsKICAgICAgICAgICAg
IGlmICghc2VsZi5pc0ZpcnN0UmVzcG9uZGVyKQogICAgICAgICAgICAgICAgIFtzZWxmIGJlY29t
ZUZpcnN0UmVzcG9uZGVyXTsKLSAgICAgICAgICAgIFtzZWxmIF96b29tVG9SZXZlYWxGb2N1c2Vk
RWxlbWVudF07Ci0gICAgICAgICAgICBbc2VsZiBfdXBkYXRlQWNjZXNzb3J5XTsKLSAgICAgICAg
ICAgIFtfaW5wdXRQZXJpcGhlcmFsIGJlZ2luRWRpdGluZ107CisgICAgICAgICAgICBbc2VsZiBh
Y2Nlc3NvcnlPcGVuXTsKICAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBlcmlwaGVyYWxC
YXNlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBlcmlwaGVy
YWxCYXNlLm1tCmluZGV4IDVmMjg5NjkzOGUwMjU0NmQ5MTliMmNiN2NlYWJjYmM5MjM0OGNmZWUu
Ljg0MTUyN2IwYzViZTgyMzBjM2YxNjk4MDI3ZTNjNWE0ZjcyNTQ1YmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1QZXJpcGhlcmFsQmFzZS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtUGVyaXBoZXJhbEJh
c2UubW0KQEAgLTg0LDYgKzg0LDEwIEBAIC0gKEJPT0wpaGFuZGxlS2V5RXZlbnQ6KFVJRXZlbnQg
KilldmVudAogICAgICAgICBbX3ZpZXcgYWNjZXNzb3J5RG9uZV07CiAgICAgICAgIHJldHVybiBZ
RVM7CiAgICAgfQorICAgIGlmICghX2VkaXRpbmcgJiYga2V5RXZlbnQuX2tleUNvZGUgPT0ga0hJ
RFVzYWdlX0tleWJvYXJkU3BhY2ViYXIpIHsKKyAgICAgICAgW192aWV3IGFjY2Vzc29yeU9wZW5d
OworICAgICAgICByZXR1cm4gWUVTOworICAgIH0KICAgICByZXR1cm4gTk87CiB9CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiMjZmNjNjNTc4
MTlmMTllZWY1ZmNmODE5OGNjNWMyOWU0ZTc2ZTg1Li41ZTU0MDY2YjA1MjM4NGExMGQ4ZTZkNGM3
YWUwY2I0MzVkZmZlODcxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTktMDQtMDkgIERhbmllbCBCYXRlcyAgPGRh
YmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpUGFkXSBTaG91bGQgb3BlbiBwb3BvdmVyIHdo
ZW4gdGhlIHNwYWNlYmFyIGlzIHByZXNzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5NjM2MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDkzODkx
Mjk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IHRlc3RpbmcgaW5mcmFzdHJ1Y3R1cmUgdG8gc3VwcG9ydCB3YWl0aW5nIGZvciBhIHBvcG92ZXIg
dG8gYmUgcHJlc2VudGVkIG9yIGRpc21pc3NlZC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW06CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29u
dHJvbGxlcjo6aXNTaG93aW5nUG9wb3ZlciBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV1RSOjpV
SVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0V2lsbFByZXNlbnRQb3BvdmVyQ2FsbGJhY2sp
OiBBZGRlZC4KKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNldERp
ZERpc21pc3NQb3BvdmVyQ2FsbGJhY2spOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0UnVubmVyU2hh
cmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsOgorICAg
ICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udGV4dC5o
OgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6c2V0V2lsbFBy
ZXNlbnRQb3BvdmVyQ2FsbGJhY2spOiBBZGRlZC4KKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250
cm9sbGVyOjp3aWxsUHJlc2VudFBvcG92ZXJDYWxsYmFjayBjb25zdCk6IEFkZGVkLgorICAgICAg
ICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZERpc21pc3NQb3BvdmVyQ2FsbGJhY2sp
OiBBZGRlZC4KKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpkaWREaXNtaXNzUG9w
b3ZlckNhbGxiYWNrIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJv
bGxlcjo6aXNTaG93aW5nUG9wb3ZlciBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV1RSOjpVSVNj
cmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0V2lsbFByZXNlbnRQb3BvdmVyQ2FsbGJhY2spOiBB
ZGRlZC4KKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNldERpZERp
c21pc3NQb3BvdmVyQ2FsbGJhY2spOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVk
L1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcuaDoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcubW06CisgICAgICAgICgtW1Rlc3RS
dW5uZXJXS1dlYlZpZXcgaW5pdFdpdGhGcmFtZTpjb25maWd1cmF0aW9uOl0pOiBVcGRhdGUgc29t
ZSBzdGF0ZS4KKyAgICAgICAgKC1bVGVzdFJ1bm5lcldLV2ViVmlldyByZXNldEludGVyYWN0aW9u
Q2FsbGJhY2tzXSk6IERpdHRvLgorICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJWaWV3IF93aWxs
UHJlc2VudFBvcG92ZXJdKTogQWRkZWQuCisgICAgICAgICgtW1Rlc3RSdW5uZXJXS1dlYlZpZXcg
X2RpZERpc21pc3NQb3BvdmVyXSk6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
aW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250
cm9sbGVyOjppc1Nob3dpbmdQb3BvdmVyIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXVFI6OlVJ
U2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXRXaWxsUHJlc2VudFBvcG92ZXJDYWxsYmFjayk6
IEFkZGVkLgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0RGlk
RGlzbWlzc1BvcG92ZXJDYWxsYmFjayk6IEFkZGVkLgorCiAyMDE5LTA0LTA5ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ2xpY2tpbmcgIkdv
IEJhY2siIGZyb20gYSBzYWZlIGJyb3dzaW5nIHdhcm5pbmcgZnJvbSBhbiBpZnJhbWUgc2hvdWxk
IG5hdmlnYXRlIHRoZSBXS1dlYlZpZXcgYmFjayB0byB0aGUgcHJldmlvdXMgcGFnZQpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbSBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KaW5kZXgg
MjJkNTVhYmMxMmJiOWNiODFhYzc0NmRkMGE0ODg3NjQ3MmZmZWI1MS4uMmVlOTFiMDdhM2FiNjA3
OGU4ZTAwNGEyZTBlNzA5MGU5ZDc5OTAyMiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCkBAIC0zNTMsNiArMzUzLDE5IEBAIHZvaWQg
VUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNldERpZEhpZGVNZW51Q2FsbGJhY2soKQogewog
fQogCitib29sIFVJU2NyaXB0Q29udHJvbGxlcjo6aXNTaG93aW5nUG9wb3ZlcigpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZv
cm1TZXRXaWxsUHJlc2VudFBvcG92ZXJDYWxsYmFjaygpCit7Cit9CisKK3ZvaWQgVUlTY3JpcHRD
b250cm9sbGVyOjpwbGF0Zm9ybVNldERpZERpc21pc3NQb3BvdmVyQ2FsbGJhY2soKQoreworfQor
CiBKU09iamVjdFJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OnJlY3RGb3JNZW51QWN0aW9uKEpTU3Ry
aW5nUmVmKSBjb25zdAogewogICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9s
bGVyLmlkbCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdz
L1VJU2NyaXB0Q29udHJvbGxlci5pZGwKaW5kZXggZWVjYjIwNjBlYjZiMmUxMjlmOGIxMmQzY2M1
MjBiZjU1N2ZhMGY3Yy4uMjNmZTMyNjVjNjE4ZDNiOGEyNzU2MzM4ZjE3NDBmZjk0ZmI0M2Q1MCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGlu
Z3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJ
U2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCkBAIC0yMzEsNiAr
MjMxLDEwIEBAIGludGVyZmFjZSBVSVNjcmlwdENvbnRyb2xsZXIgewogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBvYmplY3QgbWVudVJlY3Q7CiAgICAgb2JqZWN0IHJlY3RGb3JNZW51QWN0aW9uKERP
TVN0cmluZyBhY3Rpb24pOwogCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNTaG93
aW5nUG9wb3ZlcjsKKyAgICBhdHRyaWJ1dGUgb2JqZWN0IHdpbGxQcmVzZW50UG9wb3ZlckNhbGxi
YWNrOworICAgIGF0dHJpYnV0ZSBvYmplY3QgZGlkRGlzbWlzc1BvcG92ZXJDYWxsYmFjazsKKwog
ICAgIGF0dHJpYnV0ZSBvYmplY3Qgd2lsbEJlZ2luWm9vbWluZ0NhbGxiYWNrOwogICAgIGF0dHJp
YnV0ZSBvYmplY3QgZGlkRW5kWm9vbWluZ0NhbGxiYWNrOwogCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRleHQuaCBiL1Rvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udGV4dC5oCmluZGV4
IDgwNDA2NDdhMjNmMjM3NjE4YTNlYmQ2NWQ3NjIyN2U4YzRhMmI2ZGYuLjQ3ZmZlOGZiMWM0NWVi
NjM2MGY5MWI3NTkzZTAzMjEzMTE3YWFkMjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJT
aGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udGV4dC5oCisrKyBiL1Rvb2xzL1Rlc3RS
dW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udGV4dC5oCkBAIC01Niw2ICs1
Niw4IEBAIHR5cGVkZWYgZW51bSAgewogICAgIENhbGxiYWNrVHlwZURpZEhpZGVLZXlib2FyZCwK
ICAgICBDYWxsYmFja1R5cGVEaWRTaG93TWVudSwKICAgICBDYWxsYmFja1R5cGVEaWRIaWRlTWVu
dSwKKyAgICBDYWxsYmFja1R5cGVXaWxsUHJlc2VudFBvcG92ZXIsCisgICAgQ2FsbGJhY2tUeXBl
RGlkRGlzbWlzc1BvcG92ZXIsCiAgICAgQ2FsbGJhY2tUeXBlRGlkRW5kU2Nyb2xsaW5nLAogICAg
IENhbGxiYWNrVHlwZURpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbiwKICAgICBDYWxsYmFj
a1R5cGVEaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcCBiL1Rv
b2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5j
cHAKaW5kZXggMjNlNDJkMTI0YjFlOWVjY2I3ZWI5MzY5ZGVhMmI0YmRiNmZhYzZhZi4uNmZhYWIw
ODM4N2VlZjEzMzkxNTkzZWZlYmViNGQxMTliN2NlNmYyMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcAorKysg
Yi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xs
ZXIuY3BwCkBAIC0yMjcsNiArMjI3LDI4IEBAIEpTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVy
OjpkaWRIaWRlTWVudUNhbGxiYWNrKCkgY29uc3QKICAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxs
YmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRIaWRlTWVudSk7CiB9CiAKK3ZvaWQgVUlTY3JpcHRD
b250cm9sbGVyOjpzZXRXaWxsUHJlc2VudFBvcG92ZXJDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxi
YWNrKQoreworICAgIG1fY29udGV4dC0+cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFjaywgQ2FsbGJh
Y2tUeXBlV2lsbFByZXNlbnRQb3BvdmVyKTsKKyAgICBwbGF0Zm9ybVNldFdpbGxQcmVzZW50UG9w
b3ZlckNhbGxiYWNrKCk7Cit9CisKK0pTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjp3aWxs
UHJlc2VudFBvcG92ZXJDYWxsYmFjaygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29udGV4dC0+
Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlV2lsbFByZXNlbnRQb3BvdmVyKTsKK30KKwordm9p
ZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZERpc21pc3NQb3BvdmVyQ2FsbGJhY2soSlNWYWx1
ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBtX2NvbnRleHQtPnJlZ2lzdGVyQ2FsbGJhY2soY2FsbGJh
Y2ssIENhbGxiYWNrVHlwZURpZERpc21pc3NQb3BvdmVyKTsKKyAgICBwbGF0Zm9ybVNldERpZERp
c21pc3NQb3BvdmVyQ2FsbGJhY2soKTsKK30KKworSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xs
ZXI6OmRpZERpc21pc3NQb3BvdmVyQ2FsbGJhY2soKSBjb25zdAoreworICAgIHJldHVybiBtX2Nv
bnRleHQtPmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlwZURpZERpc21pc3NQb3BvdmVyKTsKK30K
KwogI2lmICFQTEFURk9STShDT0NPQSkKIAogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6Onpvb21U
b1NjYWxlKGRvdWJsZSwgSlNWYWx1ZVJlZikKQEAgLTU1Myw2ICs1NzUsMTkgQEAgdm9pZCBVSVNj
cmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0RGlkSGlkZU1lbnVDYWxsYmFjaygpCiB7CiB9CiAK
K2Jvb2wgVUlTY3JpcHRDb250cm9sbGVyOjppc1Nob3dpbmdQb3BvdmVyKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNl
dFdpbGxQcmVzZW50UG9wb3ZlckNhbGxiYWNrKCkKK3sKK30KKwordm9pZCBVSVNjcmlwdENvbnRy
b2xsZXI6OnBsYXRmb3JtU2V0RGlkRGlzbWlzc1BvcG92ZXJDYWxsYmFjaygpCit7Cit9CisKIEpT
T2JqZWN0UmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6bWVudVJlY3QoKSBjb25zdAogewogICAgIHJl
dHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlw
dENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJ
U2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaAppbmRleCBlNDFmOGEzNzM5MTg4MzYx
NTNkOWIzMmU5ZWRiMDJlZGFkOTkzNjE2Li5mMjRjYzdlYjc5YjY1NmJlY2RmOGZjYWI2Mzc1ZDc5
MjNmNGVhOTk3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29u
dGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJ
U2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaApAQCAtMTY2LDEwICsxNjYsMTUgQEAg
cHVibGljOgogCiAgICAgdm9pZCBzZXREaWRIaWRlTWVudUNhbGxiYWNrKEpTVmFsdWVSZWYpOwog
ICAgIEpTVmFsdWVSZWYgZGlkSGlkZU1lbnVDYWxsYmFjaygpIGNvbnN0OwotCiAgICAgdm9pZCBz
ZXREaWRTaG93TWVudUNhbGxiYWNrKEpTVmFsdWVSZWYpOwogICAgIEpTVmFsdWVSZWYgZGlkU2hv
d01lbnVDYWxsYmFjaygpIGNvbnN0OwogCisgICAgYm9vbCBpc1Nob3dpbmdQb3BvdmVyKCkgY29u
c3Q7CisgICAgdm9pZCBzZXREaWREaXNtaXNzUG9wb3ZlckNhbGxiYWNrKEpTVmFsdWVSZWYpOwor
ICAgIEpTVmFsdWVSZWYgZGlkRGlzbWlzc1BvcG92ZXJDYWxsYmFjaygpIGNvbnN0OworICAgIHZv
aWQgc2V0V2lsbFByZXNlbnRQb3BvdmVyQ2FsbGJhY2soSlNWYWx1ZVJlZik7CisgICAgSlNWYWx1
ZVJlZiB3aWxsUHJlc2VudFBvcG92ZXJDYWxsYmFjaygpIGNvbnN0OworCiAgICAgYm9vbCBpc1No
b3dpbmdNZW51KCkgY29uc3Q7CiAgICAgSlNPYmplY3RSZWYgcmVjdEZvck1lbnVBY3Rpb24oSlNT
dHJpbmdSZWYgYWN0aW9uKSBjb25zdDsKICAgICBKU09iamVjdFJlZiBtZW51UmVjdCgpIGNvbnN0
OwpAQCAtMjUwLDYgKzI1NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybVNldERpZEhp
ZGVLZXlib2FyZENhbGxiYWNrKCk7CiAgICAgdm9pZCBwbGF0Zm9ybVNldERpZFNob3dNZW51Q2Fs
bGJhY2soKTsKICAgICB2b2lkIHBsYXRmb3JtU2V0RGlkSGlkZU1lbnVDYWxsYmFjaygpOworICAg
IHZvaWQgcGxhdGZvcm1TZXRXaWxsUHJlc2VudFBvcG92ZXJDYWxsYmFjaygpOworICAgIHZvaWQg
cGxhdGZvcm1TZXREaWREaXNtaXNzUG9wb3ZlckNhbGxiYWNrKCk7CiAgICAgdm9pZCBwbGF0Zm9y
bVNldERpZEVuZFNjcm9sbGluZ0NhbGxiYWNrKCk7CiAgICAgdm9pZCBwbGF0Zm9ybUNsZWFyQWxs
Q2FsbGJhY2tzKCk7CiAgICAgdm9pZCBwbGF0Zm9ybVBsYXlCYWNrRXZlbnRTdHJlYW0oSlNTdHJp
bmdSZWYsIEpTVmFsdWVSZWYpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9j
b2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29h
L1Rlc3RSdW5uZXJXS1dlYlZpZXcuaAppbmRleCBiY2Q2MmRmNjZlODZkNTllYzc1OTlkZTgxMjU0
YWVjOTU4ZGIwMDJkLi45NmU1MTUyNjFiMjU4OGYzNzM2ZTY4ODkxNTE3MWEwOTljNGU4NjRlIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZp
ZXcuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZp
ZXcuaApAQCAtNDMsNiArNDMsOCBAQAogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQg
KF5kaWRIaWRlS2V5Ym9hcmRDYWxsYmFjaykodm9pZCk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
Y29weSkgdm9pZCAoXmRpZFNob3dNZW51Q2FsbGJhY2spKHZvaWQpOwogQHByb3BlcnR5IChub25h
dG9taWMsIGNvcHkpIHZvaWQgKF5kaWRIaWRlTWVudUNhbGxiYWNrKSh2b2lkKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkIChed2lsbFByZXNlbnRQb3BvdmVyQ2FsbGJhY2spKHZv
aWQpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWREaXNtaXNzUG9wb3Zl
ckNhbGxiYWNrKSh2b2lkKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlk
RW5kU2Nyb2xsaW5nQ2FsbGJhY2spKHZvaWQpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkp
IHZvaWQgKF5yb3RhdGlvbkRpZEVuZENhbGxiYWNrKSh2b2lkKTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBjb3B5KSBOU1N0cmluZyAqYWNjZXNzaWJpbGl0eVNwZWFrU2VsZWN0aW9uQ29udGVudDsK
QEAgLTU2LDYgKzU4LDcgQEAKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0
ZXI9aXNTaG93aW5nS2V5Ym9hcmQpIEJPT0wgc2hvd2luZ0tleWJvYXJkOwogQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNTaG93aW5nTWVudSkgQk9PTCBzaG93aW5nTWVu
dTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzU2hvd2luZ1BvcG92
ZXIpIEJPT0wgc2hvd2luZ1BvcG92ZXI7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBC
T09MIHVzZXNTYWZhcmlMaWtlUm90YXRpb247CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHksIGdldHRlcj1pc0ludGVyYWN0aW5nV2l0aEZvcm1Db250cm9sKSBCT09MIGludGVyYWN0aW5n
V2l0aEZvcm1Db250cm9sOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2Nv
Y29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29h
L1Rlc3RSdW5uZXJXS1dlYlZpZXcubW0KaW5kZXggMTRkNWQ1OWZjMzQ5YTdhZGYyZmE3ODAwNTA3
YjA3NGFhN2MzYjY4ZS4uMjU4MDgwZTQ3OWVlZGFiNzRmZDcwMWNlMzgzMmQ0ZGE4NTEzYTJiMiAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJW
aWV3Lm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2Vi
Vmlldy5tbQpAQCAtNTUsNiArNTUsNyBAQCBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9p
ZCAoXnpvb21Ub1NjYWxlQ29tcGxldGlvbkhhbmRsZXIpKHZvaWQpOwogQHByb3BlcnR5IChub25h
dG9taWMsIGNvcHkpIHZvaWQgKF5yZXRyaWV2ZVNwZWFrU2VsZWN0aW9uQ29udGVudENvbXBsZXRp
b25IYW5kbGVyKSh2b2lkKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9aXNTaG93aW5n
S2V5Ym9hcmQsIHNldHRlcj1zZXRJc1Nob3dpbmdLZXlib2FyZDopIEJPT0wgc2hvd2luZ0tleWJv
YXJkOwogQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc1Nob3dpbmdNZW51LCBzZXR0ZXI9
c2V0SXNTaG93aW5nTWVudTopIEJPT0wgc2hvd2luZ01lbnU7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgZ2V0dGVyPWlzU2hvd2luZ1BvcG92ZXIsIHNldHRlcj1zZXRJc1Nob3dpbmdQb3BvdmVyOikg
Qk9PTCBzaG93aW5nUG9wb3ZlcjsKIAogQGVuZAogCkBAIC03OSw2ICs4MCw4IEBAIC0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgY29uZmlndXJhdGlvbjooV0tXZWJW
aWV3Q29uZmlndXJhdGlvCiAgICAgICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3Rv
cjpAc2VsZWN0b3IoX2ludm9rZUhpZGVLZXlib2FyZENhbGxiYWNrSWZOZWNlc3NhcnkpIG5hbWU6
VUlLZXlib2FyZERpZEhpZGVOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07CiAgICAgICAgIFtjZW50
ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2RpZFNob3dNZW51KSBuYW1l
OlVJTWVudUNvbnRyb2xsZXJEaWRTaG93TWVudU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKICAg
ICAgICAgW2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfZGlkSGlk
ZU1lbnUpIG5hbWU6VUlNZW51Q29udHJvbGxlckRpZEhpZGVNZW51Tm90aWZpY2F0aW9uIG9iamVj
dDpuaWxdOworICAgICAgICBbY2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVj
dG9yKF93aWxsUHJlc2VudFBvcG92ZXIpIG5hbWU6QCJVSVBvcG92ZXJDb250cm9sbGVyV2lsbFBy
ZXNlbnRQb3BvdmVyTm90aWZpY2F0aW9uIiBvYmplY3Q6bmlsXTsKKyAgICAgICAgW2NlbnRlciBh
ZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfZGlkRGlzbWlzc1BvcG92ZXIpIG5h
bWU6QCJVSVBvcG92ZXJDb250cm9sbGVyRGlkRGlzbWlzc1BvcG92ZXJOb3RpZmljYXRpb24iIG9i
amVjdDpuaWxdOwogICAgICAgICBzZWxmLlVJRGVsZWdhdGUgPSBzZWxmOwogICAgIH0KICAgICBy
ZXR1cm4gc2VsZjsKQEAgLTE0MSw2ICsxNDQsOCBAQCAtICh2b2lkKXJlc2V0SW50ZXJhY3Rpb25D
YWxsYmFja3MKICAgICBzZWxmLmRpZEhpZGVLZXlib2FyZENhbGxiYWNrID0gbmlsOwogICAgIHNl
bGYuZGlkU2hvd01lbnVDYWxsYmFjayA9IG5pbDsKICAgICBzZWxmLmRpZEhpZGVNZW51Q2FsbGJh
Y2sgPSBuaWw7CisgICAgc2VsZi53aWxsUHJlc2VudFBvcG92ZXJDYWxsYmFjayA9IG5pbDsKKyAg
ICBzZWxmLmRpZERpc21pc3NQb3BvdmVyQ2FsbGJhY2sgPSBuaWw7CiAgICAgc2VsZi5kaWRFbmRT
Y3JvbGxpbmdDYWxsYmFjayA9IG5pbDsKICAgICBzZWxmLnJvdGF0aW9uRGlkRW5kQ2FsbGJhY2sg
PSBuaWw7CiB9CkBAIC0yMDAsNiArMjA1LDI2IEBAIC0gKHZvaWQpX2RpZEhpZGVNZW51CiAgICAg
ICAgIHNlbGYuZGlkSGlkZU1lbnVDYWxsYmFjaygpOwogfQogCistICh2b2lkKV93aWxsUHJlc2Vu
dFBvcG92ZXIKK3sKKyAgICBpZiAoc2VsZi5zaG93aW5nUG9wb3ZlcikKKyAgICAgICAgcmV0dXJu
OworCisgICAgc2VsZi5zaG93aW5nUG9wb3ZlciA9IFlFUzsKKyAgICBpZiAoc2VsZi53aWxsUHJl
c2VudFBvcG92ZXJDYWxsYmFjaykKKyAgICAgICAgc2VsZi53aWxsUHJlc2VudFBvcG92ZXJDYWxs
YmFjaygpOworfQorCistICh2b2lkKV9kaWREaXNtaXNzUG9wb3ZlcgoreworICAgIGlmICghc2Vs
Zi5zaG93aW5nUG9wb3ZlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgc2VsZi5zaG93aW5nUG9w
b3ZlciA9IE5POworICAgIGlmIChzZWxmLmRpZERpc21pc3NQb3BvdmVyQ2FsbGJhY2spCisgICAg
ICAgIHNlbGYuZGlkRGlzbWlzc1BvcG92ZXJDYWxsYmFjaygpOworfQorCiAtICh2b2lkKXNjcm9s
bFZpZXdXaWxsQmVnaW5ab29taW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpdGhWaWV3
OihVSVZpZXcgKil2aWV3CiB7CiAgICAgW3N1cGVyIHNjcm9sbFZpZXdXaWxsQmVnaW5ab29taW5n
OnNjcm9sbFZpZXcgd2l0aFZpZXc6dmlld107CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KaW5kZXggYWE5ZDg0ODg1YWFhODgwZDM5
ODFlZWRkNGZhMzg0OTlhN2Y4ZjE2Zi4uZDI0OTY3ODdhODNlYzAxY2U3NDYwNzdmMDM2ZTE2YTU2
NTI3ZjJjMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRD
b250cm9sbGVySU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0
Q29udHJvbGxlcklPUy5tbQpAQCAtOTA3LDYgKzkwNywyOSBAQCB2b2lkIFVJU2NyaXB0Q29udHJv
bGxlcjo6cGxhdGZvcm1TZXREaWRIaWRlTWVudUNhbGxiYWNrKCkKICAgICB9OwogfQogCitib29s
IFVJU2NyaXB0Q29udHJvbGxlcjo6aXNTaG93aW5nUG9wb3ZlcigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZp
ZXcoKS5zaG93aW5nUG9wb3ZlcjsKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRm
b3JtU2V0V2lsbFByZXNlbnRQb3BvdmVyQ2FsbGJhY2soKQoreworICAgIFRlc3RDb250cm9sbGVy
OjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKS53aWxsUHJlc2VudFBv
cG92ZXJDYWxsYmFjayA9IF57CisgICAgICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICBtX2NvbnRleHQtPmZpcmVDYWxsYmFjayhDYWxsYmFja1R5cGVXaWxs
UHJlc2VudFBvcG92ZXIpOworICAgIH07Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpw
bGF0Zm9ybVNldERpZERpc21pc3NQb3BvdmVyQ2FsbGJhY2soKQoreworICAgIFRlc3RDb250cm9s
bGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKS5kaWREaXNtaXNz
UG9wb3ZlckNhbGxiYWNrID0gXnsKKyAgICAgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIG1fY29udGV4dC0+ZmlyZUNhbGxiYWNrKENhbGxiYWNrVHlwZURp
ZERpc21pc3NQb3BvdmVyKTsKKyAgICB9OworfQorCiBKU09iamVjdFJlZiBVSVNjcmlwdENvbnRy
b2xsZXI6OnJlY3RGb3JNZW51QWN0aW9uKEpTU3RyaW5nUmVmIGpzQWN0aW9uKSBjb25zdAogewog
ICAgIGF1dG8gYWN0aW9uID0gYWRvcHRDRihKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBqc0FjdGlvbikpOwpAQCAtOTc0LDYgKzk5Nyw4IEBAIHZvaWQgVUlTY3JpcHRD
b250cm9sbGVyOjpwbGF0Zm9ybUNsZWFyQWxsQ2FsbGJhY2tzKCkKICAgICB3ZWJWaWV3LndpbGxC
ZWdpblpvb21pbmdDYWxsYmFjayA9IG5pbDsKICAgICB3ZWJWaWV3LmRpZEhpZGVLZXlib2FyZENh
bGxiYWNrID0gbmlsOwogICAgIHdlYlZpZXcuZGlkU2hvd0tleWJvYXJkQ2FsbGJhY2sgPSBuaWw7
CisgICAgd2ViVmlldy53aWxsUHJlc2VudFBvcG92ZXJDYWxsYmFjayA9IG5pbDsKKyAgICB3ZWJW
aWV3LmRpZERpc21pc3NQb3BvdmVyQ2FsbGJhY2sgPSBuaWw7CiAgICAgd2ViVmlldy5kaWRFbmRT
Y3JvbGxpbmdDYWxsYmFjayA9IG5pbDsKICAgICB3ZWJWaWV3LnJvdGF0aW9uRGlkRW5kQ2FsbGJh
Y2sgPSBuaWw7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggOThlZjYzNjFjM2Q0YjBhOWRkZGM1ZTAxYzEwYTgwYTQwN2M2
NTI0ZC4uNjg5Nzc0NjU5MTdkOTM0MWVhYzk1M2E3MTMwNDIyYTZkYTVhMmJjNiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIyIEBACisyMDE5LTA0LTA5ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNv
bT4KKworICAgICAgICBbaVBhZF0gU2hvdWxkIG9wZW4gcG9wb3ZlciB3aGVuIHRoZSBzcGFjZWJh
ciBpcyBwcmVzc2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTYzNjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ5Mzg5MTI5PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhbiBpUGFkLXNwZWNp
ZmljIHRlc3QgdG8gZW5zdXJlIHRoYXQgcHJlc3NpbmcgdGhlIHNwYWNlYmFyIG9wZW5zIHRoZSBw
b3BvdmVyIGFuZCBzY3JvbGxzCisgICAgICAgIHRoZSBmb3JtIGNvbnRyb2wgaW50byB2aWV3Lgor
CisgICAgICAgICogZmFzdC9mb3Jtcy9pb3MvaXBhZC9vcGVuLXBpY2tlci11c2luZy1rZXlib2Fy
ZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW9zL2lwYWQvb3Bl
bi1waWNrZXItdXNpbmcta2V5Ym9hcmQuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
aW9zL1Rlc3RFeHBlY3RhdGlvbnM6IFNraXAgdGVzdHMgaW4gZmFzdC9mb3Jtcy9pb3MvaXBhZC4g
V2Ugd2lsbCB1bnNraXAgZm9yIGlQYWQgYmVsb3cuCisgICAgICAgICogcGxhdGZvcm0vaXBhZC9U
ZXN0RXhwZWN0YXRpb25zOiBNYXJrIHRlc3RzIGluIGZhc3QvZm9ybXMvaW9zL2lwYWQgYXMgUEFT
UyBzbyB3ZSBydW4gdGhlbS4KKyAgICAgICAgKiByZXNvdXJjZXMvdWktaGVscGVyLmpzOgorICAg
ICAgICAod2luZG93LlVJSGVscGVyLndhaXRGb3JQb3BvdmVyVG9QcmVzZW50KToKKyAgICAgICAg
KHdpbmRvdy5VSUhlbHBlci53YWl0Rm9yUG9wb3ZlclRvRGlzbWlzcyk6CisKIDIwMTktMDQtMDkg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlZnJlc2ggV1BU
IHNlcnZpY2Ugd29ya2VyIGV4cGVjdGF0aW9ucwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9pb3MvaXBhZC9vcGVuLXBpY2tlci11c2luZy1rZXlib2FyZC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9pcGFkL29wZW4tcGlja2VyLXVzaW5nLWtleWJv
YXJkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NmMzMGRhYzYwNmIxYTVmYTg5YTM1YzU3MGI2
MjQ2ZmJjYTNmNGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9p
b3MvaXBhZC9vcGVuLXBpY2tlci11c2luZy1rZXlib2FyZC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwyMiBAQAorVGVzdHMgdGhhdCBwcmVzc2luZyB0aGUgc3BhY2ViYXIgYW5kIEVzY2FwZSB0byBv
cGVuIGFuZCBjbG9zZSB0aGUgcG9wb3ZlciB3b3JrLCBkbyBub3QgY2F1c2UgYSB2YWx1ZSBjaGFu
Z2UsIGFuZCB0aGF0IHdlIHNjcm9sbCB0aGUgZm9ybSBjb250cm9sIGludG8gdmlldyB3aGVuIHRo
ZSBwb3BvdmVyIGlzIG9wZW5lZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKwor
QWZ0ZXIgdGFiIGZvY3VzZWQ6CitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iiku
dmFsdWUgaXMgIkZpcnN0IgorCitBZnRlciBkaXNtaXNzaW5nIHBvcG92ZXIgYnkgcHJlc3Npbmcg
RXNjYXBlOgorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpLnZhbHVlIGlzICJG
aXJzdCIKKworQWZ0ZXIgb3BlbmluZyBwb3BvdmVyIGJ5IHByZXNzaW5nIHNwYWNlYmFyOgorUEFT
UyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpLnZhbHVlIGlzICJGaXJzdCIKKworQWZ0
ZXIgc2Nyb2xsaW5nIHRoZSBwYWdlIGFuZCBwcmVzc2luZyBzcGFjZWJhcjoKK1BBU1Mgd2luZG93
LnNjcm9sbFkgaXMgbm9uLXplcm8uCitQQVNTIHdpbmRvdy5zY3JvbGxZIGlzIDAKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9pcGFkL29wZW4tcGlja2VyLXVzaW5nLWtleWJvYXJk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9pcGFkL29wZW4tcGlja2VyLXVzaW5n
LWtleWJvYXJkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDZkY2Q5NWVlOTRiNDczY2I5MjFlN2UwMWIxMjgy
ZWQ0MTRkZDZjMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9z
L2lwYWQvb3Blbi1waWNrZXItdXNpbmcta2V5Ym9hcmQuaHRtbApAQCAtMCwwICsxLDEwNyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNv
bnRlbnQ9IndpZHRoPTgwMCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91
aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgc3R5bGU9ImhlaWdodDogNDA5
NnB4Ij4KKzwhLS0gUGxhY2UgdGhlIHRlc3QgY29udGFpbmVyIGFib3ZlIHRoZSBjb25zb2xlIG91
dHB1dCB0byBhdm9pZCB0aGUgbmVlZCB0byBjb21wZW5zYXRlIGZvciBwYWdlIHNjcm9sbC4gLS0+
Cis8ZGl2IGlkPSJ0ZXN0LWNvbnRhaW5lciI+CisgICAgPHA+PHNlbGVjdCBpZD0idGVzdCI+Cisg
ICAgICAgIDxvcHRpb24+Rmlyc3Q8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj5TZWNvbmQ8L29w
dGlvbj4KKyAgICA8L3NlbGVjdD48L3A+Cis8L2Rpdj4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgord2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworCitsZXQgZXhwZWN0ZWRWYWx1ZTsKKworY29uc3QgbW9kaWZpZXJEaXNwbGF5
TmFtZU1hcCA9IHsKKyAgICAiYWx0S2V5IjogIk9wdGlvbiIsCisgICAgImN0cmxLZXkiOiAiQ29u
dHJvbCIsCisgICAgIm1ldGFLZXkiOiAiQ29tbWFuZCIsCisgICAgInNoaWZ0S2V5IjogIlNoaWZ0
IiwKKyAgICAiY2Fwc0xvY2tLZXkiOiAiQ2FwcyBMb2NrIiwKK30KKworY2xhc3MgS2V5Q29tbWFu
ZCB7CisgICAgY29uc3RydWN0b3Ioa2V5LCBtb2RpZmllcnMgPSBbXSkKKyAgICB7CisgICAgICAg
IHRoaXMua2V5ID0ga2V5OworICAgICAgICB0aGlzLm1vZGlmaWVycyA9IG1vZGlmaWVyczsKKyAg
ICB9CisKKyAgICB0b1N0cmluZygpCisgICAgeworICAgICAgICBsZXQgcmVhZGFibGVDb21tYW5k
ID0gdGhpcy5tb2RpZmllcnMubWFwKChtb2RpZmllcikgPT4gbW9kaWZpZXJEaXNwbGF5TmFtZU1h
cFttb2RpZmllcl0pOworICAgICAgICByZWFkYWJsZUNvbW1hbmQucHVzaCh0aGlzLmtleSk7Cisg
ICAgICAgIHJldHVybiByZWFkYWJsZUNvbW1hbmQuam9pbigiICsgIik7CisgICAgfQorfQorCitm
dW5jdGlvbiBkb25lKCkKK3sKKyAgICBsZXQgdGVzdENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0ZXN0LWNvbnRhaW5lciIpOworICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hp
bGQodGVzdENvbnRhaW5lcik7CisgICAgZmluaXNoSlNUZXN0KCkKK30KKworYXN5bmMgZnVuY3Rp
b24gcnVuVGVzdCgpCit7CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0
ZXN0RmFpbGVkKCJNdXN0IGJlIHJ1biBpbiBXZWJLaXRUZXN0UnVubmVyLiIpOworICAgICAgICBk
b25lKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhc3luYyBmdW5jdGlvbiB0ZXN0
U2Nyb2xsSW50b1ZpZXcoKSB7CisgICAgICAgIHNob3VsZEJlTm9uWmVybygid2luZG93LnNjcm9s
bFkiKTsKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gaGFuZGxlU2Nyb2xsKCkgeworICAgICAgICAg
ICAgaWYgKHdpbmRvdy5zY3JvbGxZKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIHNob3VsZEJlWmVybygid2luZG93LnNjcm9sbFkiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJ
SGVscGVyLndhaXRGb3JQb3BvdmVyVG9QcmVzZW50KCk7CisgICAgICAgICAgICBVSUhlbHBlci5r
ZXlEb3duKCJlc2NhcGUiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JQb3Bv
dmVyVG9EaXNtaXNzKCk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0KKyAgICAgICAg
Ly8gVGhlIHNjcm9sbCBpbml0aWF0ZWQgYnkgcHJlc3NpbmcgdGhlIHNwYWNlYmFyIGlzIGFuaW1h
dGVkLiBNdWx0aXBsZSBzY3JvbGwgZXZlbnRzIGFyZQorICAgICAgICAvLyBkaXNwYXRjaGVkLiBX
ZSB3YW50IHRvIHdhaXQgdW50aWwgdGhlIHBhZ2Ugc2Nyb2xscyB0byB0aGUgdG9wIGJlZm9yZSBj
b250aW51aW5nIHRvIGVuc3VyZQorICAgICAgICAvLyBjb25zaXN0ZW50IHRlc3QgcmVzdWx0cy4K
KyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIGhhbmRsZVNjcm9sbCk7
CisgICAgICAgIFVJSGVscGVyLmtleURvd24oIiAiKTsKKyAgICB9CisKKyAgICBhc3luYyBmdW5j
dGlvbiBoYW5kbGVGb2N1cygpIHsKKyAgICAgICAgZGVidWcoIjxicj5BZnRlciB0YWIgZm9jdXNl
ZDoiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGVzdCIpLnZhbHVlJywgZXhwZWN0ZWRWYWx1ZSk7CisgICAgICAgIGRlYnVnKCI8YnI+
QWZ0ZXIgZGlzbWlzc2luZyBwb3BvdmVyIGJ5IHByZXNzaW5nIEVzY2FwZToiKTsKKyAgICAgICAg
VUlIZWxwZXIua2V5RG93bigiZXNjYXBlIik7CisgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRG
b3JQb3BvdmVyVG9EaXNtaXNzKCk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKS52YWx1ZScsIGV4cGVjdGVkVmFsdWUpOworICAg
ICAgICBkZWJ1ZygiPGJyPkFmdGVyIG9wZW5pbmcgcG9wb3ZlciBieSBwcmVzc2luZyBzcGFjZWJh
cjoiKTsKKyAgICAgICAgVUlIZWxwZXIua2V5RG93bigiICIpOworICAgICAgICBhd2FpdCBVSUhl
bHBlci53YWl0Rm9yUG9wb3ZlclRvUHJlc2VudCgpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0IikudmFsdWUnLCBleHBlY3RlZFZh
bHVlKTsKKyAgICAgICAgVUlIZWxwZXIua2V5RG93bigiZXNjYXBlIik7CisgICAgICAgIGF3YWl0
IFVJSGVscGVyLndhaXRGb3JQb3BvdmVyVG9EaXNtaXNzKCk7CisgICAgICAgIGRlYnVnKCI8YnI+
QWZ0ZXIgc2Nyb2xsaW5nIHRoZSBwYWdlIGFuZCBwcmVzc2luZyBzcGFjZWJhcjoiKTsKKyAgICAg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHRlc3RTY3JvbGxJbnRvVmlldywg
eyBvbmNlOiB0cnVlIH0pOworICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgZG9jdW1lbnQuYm9k
eS5zY3JvbGxIZWlnaHQpOyAvLyBTY3JvbGwgdG8gdGhlIGJvdHRvbSBvZiB0aGUgcGFnZS4KKyAg
ICB9CisgICAgbGV0IGVsZW1lbnRUb1Rlc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVz
dCIpOworICAgIGV4cGVjdGVkVmFsdWUgPSBlbGVtZW50VG9UZXN0LnZhbHVlOworICAgIGVsZW1l
bnRUb1Rlc3QuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCBoYW5kbGVGb2N1cywgeyBvbmNlOiB0
cnVlIH0pOworICAgIFVJSGVscGVyLmtleURvd24oIlx0IiwgWyJhbHRLZXkiXSk7Cit9CisKK2Rl
c2NyaXB0aW9uKCJUZXN0cyB0aGF0IHByZXNzaW5nIHRoZSBzcGFjZWJhciBhbmQgRXNjYXBlIHRv
IG9wZW4gYW5kIGNsb3NlIHRoZSBwb3BvdmVyIHdvcmssIGRvIG5vdCBjYXVzZSBhIHZhbHVlIGNo
YW5nZSwgYW5kIHRoYXQgd2Ugc2Nyb2xsIHRoZSBmb3JtIGNvbnRyb2wgaW50byB2aWV3IHdoZW4g
dGhlIHBvcG92ZXIgaXMgb3BlbmVkLiIpOworCitydW5UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggN2E1MTczYjI3Yjk2NTVhOTMyM2VmZWE1M2Q4MWNlOWM3OTMxOTliNS4uNmJjZDRjZGFhNGI1
NDA0YTViOTU0M2Y5MGZiMzgxNWJhYWExN2IyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI1LDYgKzI1LDcgQEAgaHR0cC90ZXN0cy9nemlwLWNvbnRl
bnQtZW5jb2RpbmcgWyBQYXNzIF0KIAogIyBpUGFkLXNwZWNpZmljIHRlc3RzIHNraXBwZWQgaGVy
ZSBhbmQgcmUtZW5hYmxlZCBpbiBwbGF0Zm9ybS9pcGFkCiBmYXN0L2V2ZW50cy9pb3MvaXBhZCBb
IFNraXAgXQorZmFzdC9mb3Jtcy9pb3MvaXBhZCBbIFNraXAgXQogCiAjIyMKICMgVW5zdXBwb3J0
ZWQgYW5kIGRpc2FibGVkIGZlYXR1cmVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pcGFkL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pcGFkL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggNTE1ZjYyOGM5MzBhMDM5OWY2OTE3YWM1ZTA2YWQwMzkxNjJmMTJk
NC4uMTQ2N2MzMDg1Y2UwZWU4N2U4MjRlY2NmMzJhOGVkYjdkNTY5M2VkYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaXBhZC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lwYWQvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMSwzICsxLDUgQEAKK2Zhc3Qv
Zm9ybXMvaW9zL2lwYWQgWyBQYXNzIF0KKwogIyBpUGFkcyBkb24ndCB6b29tIHdoZW4gZm9ybSBl
bGVtZW50cyBhcmUgZm9jdXNlZAogZmFzdC9mb3Jtcy9pb3MvYWNjZXNzb3J5LWJhci1uYXZpZ2F0
aW9uLmh0bWwgWyBTa2lwIF0KIGZhc3QvZm9ybXMvaW9zL2Nob29zZS1zZWxlY3Qtb3B0aW9uLmh0
bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIu
anMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCmluZGV4IDgzOTliNzk4YmQ4
NTY3MWJhODQxZDUwODQ0ZjkxZTFjNDYxZDIzMWIuLjk0ZjBmYWEyMjhjYjIxMDViMGE4MGYyMTkx
NDlkZjE3NDAyNjU3OTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxw
ZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwpAQCAtMzgyLDYg
KzM4MiwzOCBAQCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAgICAgICAgIH0p
OwogICAgIH0KIAorICAgIHN0YXRpYyB3YWl0Rm9yUG9wb3ZlclRvUHJlc2VudCgpCisgICAgewor
ICAgICAgICBpZiAoIXRoaXMuaXNXZWJLaXQyKCkgfHwgIXRoaXMuaXNJT1MoKSkKKyAgICAgICAg
ICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKKworICAgICAgICByZXR1cm4gbmV3IFByb21p
c2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAg
ICAgICAgICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh1aUNv
bnRyb2xsZXIuaXNTaG93aW5nUG9wb3ZlcikKKyAgICAgICAgICAgICAgICAgICAgICAgIHVpQ29u
dHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci53aWxsUHJlc2VudFBvcG92ZXJDYWxs
YmFjayA9ICgpID0+IHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAg
ICAgICAgfSkoKWAsIHJlc29sdmUpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBzdGF0aWMg
d2FpdEZvclBvcG92ZXJUb0Rpc21pc3MoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmlzV2Vi
S2l0MigpIHx8ICF0aGlzLmlzSU9TKCkpCisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNv
bHZlKCk7CisKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgICAgICAgICAgICAgKGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodWlDb250cm9sbGVyLmlzU2hvd2luZ1BvcG92
ZXIpCisgICAgICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuZGlkRGlzbWlzc1BvcG92
ZXJDYWxsYmFjayA9ICgpID0+IHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAg
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxl
ci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICAgICAgfSkoKWAsIHJlc29sdmUpOwor
ICAgICAgICB9KTsKKyAgICB9CisKICAgICBzdGF0aWMgd2FpdEZvcktleWJvYXJkVG9IaWRlKCkK
ICAgICB7CiAgICAgICAgIGlmICghdGhpcy5pc1dlYktpdDIoKSB8fCAhdGhpcy5pc0lPUygpKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>