<?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>145161</bug_id>
          
          <creation_ts>2015-05-18 22:41:10 -0700</creation_ts>
          <short_desc>Mark static variables as const when possible</short_desc>
          <delta_ts>2015-05-19 00:22:52 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1095828</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-05-18 22:41:10 -0700</bug_when>
    <thetext>Mark static variables as const when possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095829</commentid>
    <comment_count>1</comment_count>
      <attachid>253366</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-05-18 22:44:29 -0700</bug_when>
    <thetext>Created attachment 253366
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095834</commentid>
    <comment_count>2</comment_count>
      <attachid>253367</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-05-18 23:05:33 -0700</bug_when>
    <thetext>Created attachment 253367
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095842</commentid>
    <comment_count>3</comment_count>
      <attachid>253370</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-05-18 23:16:20 -0700</bug_when>
    <thetext>Created attachment 253370
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095862</commentid>
    <comment_count>4</comment_count>
      <attachid>253370</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-19 00:22:46 -0700</bug_when>
    <thetext>Comment on attachment 253370
Patch

Clearing flags on attachment: 253370

Committed r184555: &lt;http://trac.webkit.org/changeset/184555&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095863</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-19 00:22:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253366</attachid>
            <date>2015-05-18 22:44:29 -0700</date>
            <delta_ts>2015-05-18 23:05:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145161-20150518224426.patch</filename>
            <type>text/plain</type>
            <size>45041</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0NTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcxZDkxNjliOGEwZmM2OTU2MmY4MThm
N2Q5YWU2NThiNGE2NDdkZjguLjVhM2U2Y2U2ZjlhNjQ0Y2M0ZTAyNWI0ODYzMjg4MTMzOTNiOWE0
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTUtMDUtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBNYXJrIHN0YXRpYyB2YXJpYWJsZXMgYXMgY29uc3Qgd2hl
biBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ1MTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3dGYvZHRvYS5jcHA6CisgICAgICAgIChXVEY6OnBvdzVtdWx0KToKKwogMjAxNS0wNS0x
NyAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRG8g
bm90IHVzZSBmYXN0TWFsbG9jR29vZFNpemUgYW55d2hlcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2MWYyNWFh
MzliN2E4NjdmZGYxNmU0ZTU4M2NiNGVjN2YyNWQzZmEwLi41ZTdmOTQ4MWZhNThmZmRkNDRmNDVi
MTcxMjY0ZTBkMzRkN2JkNjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODAgQEAKKzIwMTUtMDUt
MTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNYXJrIHN0YXRp
YyB2YXJpYWJsZXMgYXMgY29uc3Qgd2hlbiBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1MTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRp
YVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJj
ZUJ1ZmZlci5jcHA6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxFeGNlcHRpb24u
Y3BwOgorICAgICAgICAqIGRvbS9ET01Db3JlRXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvTmV0d29ya1Jlc291cmNlc0RhdGEuY3BwOgorICAgICAgICAqIGxvYWRlci9pY29uL0lj
b25EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1cmxGb3JMb2dnaW5nKToKKyAgICAg
ICAgKiBwYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBwYWdlL1BhZ2Uu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0lPUy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OmFwcGxpY2F0aW9uSXNBZFNoZWV0KToKKyAgICAgICAgKFdlYkNv
cmU6OmFwcGxpY2F0aW9uSXNNb2JpbGVNYWlsKToKKyAgICAgICAgKFdlYkNvcmU6OmFwcGxpY2F0
aW9uSXNNb2JpbGVTYWZhcmkpOgorICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25Jc0R1bXBS
ZW5kZXJUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OmFwcGxpY2F0aW9uSXNXZWJBcHApOgorICAg
ICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25Jc09rQ3VwaWQpOgorICAgICAgICAoV2ViQ29yZTo6
YXBwbGljYXRpb25Jc0ZhY2Vib29rKToKKyAgICAgICAgKFdlYkNvcmU6OmFwcGxpY2F0aW9uSXNF
cGljdXJpb3VzKToKKyAgICAgICAgKFdlYkNvcmU6OmFwcGxpY2F0aW9uSXNEYWlqaXNlbkRpY3Rp
b25hcnkpOgorICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25Jc05BU0FIRCk6CisgICAgICAg
IChXZWJDb3JlOjphcHBsaWNhdGlvbklzTUFTSCk6CisgICAgICAgIChXZWJDb3JlOjphcHBsaWNh
dGlvbklzVGhlRWNvbm9taXN0T25JUGhvbmUpOgorICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRp
b25Jc1dlYlByb2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25Jc0lCb29rc09u
SU9TKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGRWxldmF0aW9uLmNwcDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByb2Nlc3NJc1J1bm5pbmdQcm9wZXJ0eURlc2NyaXB0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6b3V0cHV0RGV2aWNlUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akMubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6dG9Db3JlVGV4dEZvbnRXZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6
dG9BcHBLaXRGb250V2VpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OnRvTlNGb250V2VpZ2h0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAgIChz
dXBwb3J0c1VJU3RhdGVUcmFuc2l0aW9uUHJvZ3Jlc3MpOgorICAgICAgICAoc3VwcG9ydHNFeHBh
bnNpb25UcmFuc2l0aW9uUHJvZ3Jlc3MpOgorICAgICAgICAoc3VwcG9ydHNDb250ZW50QXJlYVNj
cm9sbGVkSW5EaXJlY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVt
ZU1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViQ29yZU5TVVJMRXh0cmFzLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6ZGF0YUZvclVSTENvbXBvbmVudFR5cGUpOgorICAgICAgICAqIHBs
YXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2NrLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS90
ZXh0L2ljdS9VVGV4dFByb3ZpZGVyTGF0aW4xLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0
L2lvcy9Mb2NhbGl6ZWREYXRlQ2FjaGUubW06CisgICAgICAgIChXZWJDb3JlOjpMb2NhbGl6ZWRE
YXRlQ2FjaGU6OmNhbGN1bGF0ZU1heGltdW1XaWR0aCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckJsb2NrTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zs
b3c6Om1hdGNoZWRFbmRMaW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50
VHJhbnNsdWNlbnRCb3JkZXJTaWRlcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZyYW1l
QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRFeHBhbmRGcmFtZSk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHA6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRoZW1lSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6Z2V0SW5zZXRHcmFkaWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpnZXRTaGluZUdyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OmdldFNoYWRlR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q29udmV4R3JhZGllbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q29uY2F2ZUdyYWRpZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OmdldFNsaWRlclRyYWNrR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0UmVhZG9u
bHlTbGlkZXJUcmFja0dyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmdldFNsaWRlclRodW1i
T3BhcXVlUHJlc3NlZEdyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9T
OjpwYWludENoZWNrYm94RGVjb3JhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVJT1M6OnBhaW50UmFkaW9EZWNvcmF0aW9ucyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6dG9Gb250V2VpZ2h0KToKKyAgICAgICAg
KFdlYkNvcmU6OlRvcEdyYWRpZW50SW50ZXJwb2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Qm90
dG9tR3JhZGllbnRJbnRlcnBvbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluR3JhZGllbnRJ
bnRlcnBvbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFja0dyYWRpZW50SW50ZXJwb2xhdGUp
OgorCiAyMDE1LTA1LTE4ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT04oMTQyNTkwKTogU2Nyb2xsLXNuYXAgcG9pbnRzIGFyZSBpbXByb3Bl
cmx5IHNuYXBwaW5nIHRvIGVhcmxpZXIgaW5kZXggdmFsdWVzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODYxN2Vi
MTFmY2NkM2ViMTM2OGIwMDQ2YzE0Nzc1MDhmNGZjOWU0Ny4uYzQ5MmM4NTI4NmE2NzZlNjBkZGNl
NzFlNjEzYzcyNjE0ODNkZmRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE1LTA1
LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTWFyayBzdGF0
aWMgdmFyaWFibGVzIGFzIGNvbnN0IHdoZW4gcG9zc2libGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTE2MQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL01lc3NhZ2VFbmNvZGVy
LmNwcDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Mb2dnaW5nLmNwcDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6bmV0d29y
a1Byb2Nlc3NMYXRlbmN5UU9TKToKKyAgICAgICAgKFdlYktpdDo6bmV0d29ya1Byb2Nlc3NUaHJv
dWdocHV0UU9TKToKKyAgICAgICAgKFdlYktpdDo6d2ViUHJvY2Vzc0xhdGVuY3lRT1MpOgorICAg
ICAgICAoV2ViS2l0Ojp3ZWJQcm9jZXNzVGhyb3VnaHB1dFFPUyk6CisgICAgICAgICogVUlQcm9j
ZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktp
dDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpwbHVnaW5OZWVkc0V4ZWN1dGFibGVIZWFwKToKKyAgICAg
ICAgKFdlYktpdDo6cGx1Z2luUHJvY2Vzc0xhdGVuY3lRT1MpOgorICAgICAgICAoV2ViS2l0Ojpw
bHVnaW5Qcm9jZXNzVGhyb3VnaHB1dFFPUyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwOgorCiAyMDE1LTA1LTE4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxl
LmNvbT4KIAogICAgICAgICBGb2xsb3d1cCB0bzogTmV0d29ya2luZyBwcm9jZXNzIG9uIGlPUyBj
YW4gYmUgc3VzcGVuZGVkIGFuZCBuZXZlciBleGl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9kdG9hLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2R0b2EuY3BwCmluZGV4IDVhNTUzMjBlZjc2MTFi
NmJjMmZhMzRlM2YwMTEzYzRmM2NhMGE3NGYuLjQ4ZGUyNWIyMzVhMzIzZjJiZTIzODJkZDJmZjhm
MmQ0YzA3N2Y2YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2R0b2EuY3BwCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL2R0b2EuY3BwCkBAIC0zNjcsNyArMzY3LDcgQEAgc3RhdGljIGludCBwNXND
b3VudDsKIAogc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBwb3c1bXVsdChCaWdJbnQmIGIsIGlu
dCBrKQogewotICAgIHN0YXRpYyBpbnQgcDA1WzNdID0geyA1LCAyNSwgMTI1IH07CisgICAgc3Rh
dGljIGNvbnN0IGludCBwMDVbM10gPSB7IDUsIDI1LCAxMjUgfTsKIAogICAgIGlmIChpbnQgaSA9
IGsgJiAzKQogICAgICAgICBtdWx0YWRkKGIsIHAwNVtpIC0gMV0sIDApOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Np
b25NYW5hZ2VyLmNwcAppbmRleCBlZjM0ZGNjZTMwNWM1ZmJmMWJiZTgyZGZjOGI5YjJkZGFmZDAz
ZGVlLi40ZDJkNjEzOGU0ZmQwYmNhYjllM2Y4YmNhODFkOWJjYTYwNzU3YmQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRp
YVNlc3Npb25NYW5hZ2VyLmNwcApAQCAtMzQsNyArMzQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXN0YXRpYyBkb3VibGUgdGFza0RlbGF5SW50ZXJ2YWwgPSAxLjAgLyAxMC4wOworc3Rh
dGljIGNvbnN0IGRvdWJsZSB0YXNrRGVsYXlJbnRlcnZhbCA9IDEuMCAvIDEwLjA7CiAKIHN0cnVj
dCBDbGllbnRTdGF0ZSB7CiAgICAgZXhwbGljaXQgQ2xpZW50U3RhdGUoV2ViTWVkaWFTZXNzaW9u
TWFuYWdlckNsaWVudCYgY2xpZW50LCB1aW50NjRfdCBjb250ZXh0SWQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggMWI2
NjU3NzA5ZjkxMzM4MjBlMTllMGQ2MzhlNDhiOTFiYzI3MWE4OS4uNGYyOTEwNzBlOTNiMjdkYzVj
Zjk0NjViYTM2YmIxNjY1NTc5YTE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcApAQCAtNjIsNyArNjIsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBkb3VibGUgRXhwb25lbnRpYWxNb3ZpbmdBdmVyYWdl
Q29lZmZpY2llbnQgPSAwLjE7CitzdGF0aWMgY29uc3QgZG91YmxlIEV4cG9uZW50aWFsTW92aW5n
QXZlcmFnZUNvZWZmaWNpZW50ID0gMC4xOwogCiAvLyBBbGxvdyBoYXNDdXJyZW50VGltZSgpIHRv
IGJlIG9mZiBieSBhcyBtdWNoIGFzIHRoZSBsZW5ndGggb2YgYSAyNGZwcyB2aWRlbyBmcmFtZQog
c3RhdGljIGNvbnN0IE1lZGlhVGltZSYgY3VycmVudFRpbWVGdWRnZUZhY3RvcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTEV4Y2VwdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTEV4Y2VwdGlvbi5jcHAKaW5k
ZXggMGZjYjNhZWVkMzE3MGJhOTg4NGU0Mjg1ZTgxYjRiNmUxNmE3MzRjNC4uZTlmODgwZWRjYzQx
MTlhMTBjOTE3NzRlMmY4YWRiY2VjOGE4ZGNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMRXhjZXB0aW9uLmNwcApAQCAtMzMsNyArMzMsNyBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBzdHJ1Y3QgU1FMRXhjZXB0aW9uTmFtZURl
c2NyaXB0aW9uIHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgU1FMRXhjZXB0aW9uTmFtZURlc2NyaXB0
aW9uIHsKICAgICBjb25zdCBjaGFyKiBjb25zdCBuYW1lOwogICAgIGNvbnN0IGNoYXIqIGNvbnN0
IGRlc2NyaXB0aW9uOwogfSBzcWxFeGNlcHRpb25zW10gPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9N
Q29yZUV4Y2VwdGlvbi5jcHAKaW5kZXggNjBiOWQ2ZGYwMjU3NDgxYWFiMWEwOWZiMTFkMWU5NjZm
Y2MxNjI0OS4uMmNjYjRkNzdjYzAxNjhhYzZjM2E4NWM3NzcyNTM5NjdiNjc2NjlkZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmNwcApAQCAtMzMsNyArMzMsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBzdHJ1Y3QgQ29yZUV4Y2VwdGlvbiB7CitzdGF0
aWMgY29uc3Qgc3RydWN0IENvcmVFeGNlcHRpb24gewogICAgIGNvbnN0IGNoYXIqIGNvbnN0IG5h
bWU7CiAgICAgY29uc3QgY2hhciogY29uc3QgZGVzY3JpcHRpb247CiB9IGNvcmVFeGNlcHRpb25z
W10gPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvTmV0d29ya1Jlc291
cmNlc0RhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNE
YXRhLmNwcAppbmRleCA0MjUxNmNkNjZmMWRkYmIzNWUxMTBiNjMzMGVkOThlNmE5NjUyZmZmLi5h
N2YzMjJmOTk1MWQ2ZTJiMjI1YjhjYjc2NDZjODBmMDUyZGU4NDg5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvTmV0d29ya1Jlc291cmNlc0RhdGEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5jcHAKQEAgLTM3LDEwICsz
NywxMCBAQAogCiBuYW1lc3BhY2UgewogLy8gMTAwTUIKLXN0YXRpYyBzaXplX3QgbWF4aW11bVJl
c291cmNlc0NvbnRlbnRTaXplID0gMTAwICogMTAwMCAqIDEwMDA7CitzdGF0aWMgY29uc3Qgc2l6
ZV90IG1heGltdW1SZXNvdXJjZXNDb250ZW50U2l6ZSA9IDEwMCAqIDEwMDAgKiAxMDAwOwogCiAv
LyAxME1CCi1zdGF0aWMgc2l6ZV90IG1heGltdW1TaW5nbGVSZXNvdXJjZUNvbnRlbnRTaXplID0g
MTAgKiAxMDAwICogMTAwMDsKK3N0YXRpYyBjb25zdCBzaXplX3QgbWF4aW11bVNpbmdsZVJlc291
cmNlQ29udGVudFNpemUgPSAxMCAqIDEwMDAgKiAxMDAwOwogfQogCiB1c2luZyBuYW1lc3BhY2Ug
SW5zcGVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRh
dGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAK
aW5kZXggNmY1MzA0MjA3NDgyZTViNzE4MWE1ZjA1ZmYyZmUxMTA2NzVjN2I1Zi4uOGI0YmJlYTU0
ODk1MDhkNTM5YjQ3MGE1MWZjMzM4OTdhYTIyMDM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHN0YXRpYyBjb25zdCBp
bnQgbm90VXNlZEljb25FeHBpcmF0aW9uVGltZSA9IDYwKjYwKjI0KjMwOwogI2lmICFMT0dfRElT
QUJMRUQgfHwgIUVSUk9SX0RJU0FCTEVECiBzdGF0aWMgU3RyaW5nIHVybEZvckxvZ2dpbmcoY29u
c3QgU3RyaW5nJiB1cmwpCiB7Ci0gICAgc3RhdGljIHVuc2lnbmVkIHVybFRydW5jYXRpb25MZW5n
dGggPSAxMjA7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVybFRydW5jYXRpb25MZW5ndGgg
PSAxMjA7CiAKICAgICBpZiAodXJsLmxlbmd0aCgpIDwgdXJsVHJ1bmNhdGlvbkxlbmd0aCkKICAg
ICAgICAgcmV0dXJuIHVybDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3Nj
cm9sbENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJv
bGxlci5jcHAKaW5kZXggYTY3NDE5YmEzNzQzNWY5ODA0YmUwZDM4ODU5NmU1MzgwZTM3YWE5OC4u
YjQ1MzIyMDg3NTE1OGRhNDc0MWQ5MzEyZmMzNDkzMWU3ZTZlYmM3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAKQEAgLTQyLDcgKzQyLDcgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gRGVsYXkgdGltZSBpbiBzZWNvbmQgZm9yIHN0YXJ0IGF1
dG9zY3JvbGwgaWYgcG9pbnRlciBpcyBpbiBib3JkZXIgZWRnZSBvZiBzY3JvbGxhYmxlIGVsZW1l
bnQuCi1zdGF0aWMgZG91YmxlIGF1dG9zY3JvbGxEZWxheSA9IDAuMjsKK3N0YXRpYyBjb25zdCBk
b3VibGUgYXV0b3Njcm9sbERlbGF5ID0gMC4yOwogCiAvLyBXaGVuIHRoZSBhdXRvc2Nyb2xsIG9y
IHRoZSBwYW5TY3JvbGwgaXMgdHJpZ2dlcmVkIHdoZW4gZG8gdGhlIHNjcm9sbCBldmVyeSAwLjA1
cyB0byBtYWtlIGl0IHNtb290aAogc3RhdGljIGNvbnN0IGRvdWJsZSBhdXRvc2Nyb2xsSW50ZXJ2
YWwgPSAwLjA1OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMTY0NzZhMzZjZGU3YmQzNmU4NWIwZTZi
NDE3ZTE2OGI0MmZkMDdhOS4uZWE0MzFlZDc3ODYzZThkOGE5NjgwMTI4OGRlOWY5MDFmMzQ5MTVh
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0zOTEsNyArMzkxLDcgQEAgc3RydWN0IFZpZXdNb2Rl
SW5mbyB7CiAgICAgUGFnZTo6Vmlld01vZGUgdHlwZTsKIH07CiBzdGF0aWMgY29uc3QgaW50IHZp
ZXdNb2RlTWFwU2l6ZSA9IDU7Ci1zdGF0aWMgVmlld01vZGVJbmZvIHZpZXdNb2RlTWFwW3ZpZXdN
b2RlTWFwU2l6ZV0gPSB7CitzdGF0aWMgY29uc3QgVmlld01vZGVJbmZvIHZpZXdNb2RlTWFwW3Zp
ZXdNb2RlTWFwU2l6ZV0gPSB7CiAgICAgeyJ3aW5kb3dlZCIsIFBhZ2U6OlZpZXdNb2RlV2luZG93
ZWR9LAogICAgIHsiZmxvYXRpbmciLCBQYWdlOjpWaWV3TW9kZUZsb2F0aW5nfSwKICAgICB7ImZ1
bGxzY3JlZW4iLCBQYWdlOjpWaWV3TW9kZUZ1bGxzY3JlZW59LApAQCAtMTQxNiw4ICsxNDE2LDgg
QEAgQ29sb3IgUGFnZTo6cGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yKCkgY29uc3QKIH0KIAog
Ly8gVGhlc2UgYXJlIG1hZ2ljYWwgY29uc3RhbnRzIHRoYXQgbWlnaHQgYmUgdHdlYWtlZCBvdmVy
IHRpbWUuCi1zdGF0aWMgZG91YmxlIGdNaW5pbXVtUGFpbnRlZEFyZWFSYXRpbyA9IDAuMTsKLXN0
YXRpYyBkb3VibGUgZ01heGltdW1VbnBhaW50ZWRBcmVhUmF0aW8gPSAwLjA0Oworc3RhdGljIGNv
bnN0IGRvdWJsZSBnTWluaW11bVBhaW50ZWRBcmVhUmF0aW8gPSAwLjE7CitzdGF0aWMgY29uc3Qg
ZG91YmxlIGdNYXhpbXVtVW5wYWludGVkQXJlYVJhdGlvID0gMC4wNDsKIAogYm9vbCBQYWdlOjpp
c0NvdW50aW5nUmVsZXZhbnRSZXBhaW50ZWRPYmplY3RzKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0lPUy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0lPUy5tbQpp
bmRleCA0ODU2NjUxNGRlNTQ4YzI1Zjc3ZTRlYWVkZTJhYWRkYTAxZTMwNzU5Li5jYWFlZTg3ODc2
NzIwZWIxZDljMGU1Yjk2YzQwNjFiOWE1MWM4MmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NJT1MubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzSU9TLm1tCkBAIC0zMywxOSAr
MzMsMTkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBib29sIGFwcGxpY2F0aW9uSXNBZFNoZWV0
KCkKIHsKLSAgICBzdGF0aWMgYm9vbCBpc0FkU2hlZXQgPSBbW1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBidW5kbGVJZGVudGlmaWVyXSBpc0VxdWFsVG9TdHJpbmc6QCJjb20uYXBwbGUuQWRTaGVldFBo
b25lIl07CisgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNBZFNoZWV0ID0gW1tbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAiY29tLmFwcGxlLkFk
U2hlZXRQaG9uZSJdOwogICAgIHJldHVybiBpc0FkU2hlZXQ7CiB9CiAKIGJvb2wgYXBwbGljYXRp
b25Jc01vYmlsZU1haWwoKQogewotICAgIHN0YXRpYyBib29sIGlzTW9iaWxlTWFpbCA9IFtbW05T
QnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNv
bS5hcHBsZS5tb2JpbGVtYWlsIl07CisgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNNb2JpbGVNYWls
ID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3Ry
aW5nOkAiY29tLmFwcGxlLm1vYmlsZW1haWwiXTsKICAgICByZXR1cm4gaXNNb2JpbGVNYWlsOwog
fQogCiBib29sIGFwcGxpY2F0aW9uSXNNb2JpbGVTYWZhcmkoKQogewotICAgIHN0YXRpYyBib29s
IGlzTW9iaWxlU2FmYXJpID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmll
cl0gaXNFcXVhbFRvU3RyaW5nOkAiY29tLmFwcGxlLm1vYmlsZXNhZmFyaSJdOworICAgIHN0YXRp
YyBjb25zdCBib29sIGlzTW9iaWxlU2FmYXJpID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVu
ZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAiY29tLmFwcGxlLm1vYmlsZXNhZmFyaSJd
OwogICAgIHJldHVybiBpc01vYmlsZVNhZmFyaTsKIH0KIApAQCAtNTMsNyArNTMsNyBAQCBib29s
IGFwcGxpY2F0aW9uSXNEdW1wUmVuZGVyVHJlZSgpCiB7CiAgICAgLy8gV2UgdXNlIGEgcHJlZml4
IG1hdGNoIGluc3RlYWQgb2Ygc3RyaWN0IGVxdWFsaXR5IHNpbmNlIExheW91dFRlc3RSZWxheSBt
YXkgbGF1bmNoIG11bHRpcGxlIGluc3RhbmNlcyBvZgogICAgIC8vIER1bXBSZW5kZXJUcmVlIHdo
ZXJlIHRoZSBidW5kbGUgaWRlbnRpZmllciBvZiBlYWNoIGluc3RhbmNlIGhhcyBhIHVuaXF1ZSBz
dWZmaXguCi0gICAgc3RhdGljIGJvb2wgaXNEdW1wUmVuZGVyVHJlZSA9IFtbW05TQnVuZGxlIG1h
aW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGhhc1ByZWZpeDpAIm9yZy53ZWJraXQuRHVtcFJl
bmRlclRyZWUiXTsgLy8gZS5nLiBvcmcud2Via2l0LkR1bXBSZW5kZXJUcmVlMAorICAgIHN0YXRp
YyBjb25zdCBib29sIGlzRHVtcFJlbmRlclRyZWUgPSBbW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBi
dW5kbGVJZGVudGlmaWVyXSBoYXNQcmVmaXg6QCJvcmcud2Via2l0LkR1bXBSZW5kZXJUcmVlIl07
IC8vIGUuZy4gb3JnLndlYmtpdC5EdW1wUmVuZGVyVHJlZTAKICAgICByZXR1cm4gaXNEdW1wUmVu
ZGVyVHJlZTsKIH0KIApAQCAtNjUsNDMgKzY1LDQzIEBAIGJvb2wgYXBwbGljYXRpb25Jc01vYmls
ZVN0b3JlKCkKIAogYm9vbCBhcHBsaWNhdGlvbklzV2ViQXBwKCkKIHsKLSAgICBzdGF0aWMgYm9v
bCBpc1dlYkFwcCA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlz
RXF1YWxUb1N0cmluZzpAImNvbS5hcHBsZS53ZWJhcHAiXTsKKyAgICBzdGF0aWMgY29uc3QgYm9v
bCBpc1dlYkFwcCA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlz
RXF1YWxUb1N0cmluZzpAImNvbS5hcHBsZS53ZWJhcHAiXTsKICAgICByZXR1cm4gaXNXZWJBcHA7
CiB9CiAKIGJvb2wgYXBwbGljYXRpb25Jc09rQ3VwaWQoKQogewotICAgIHN0YXRpYyBib29sIGlz
T2tDdXBpZCA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1
YWxUb1N0cmluZzpAImNvbS5va2N1cGlkLmFwcCJdOworICAgIHN0YXRpYyBjb25zdCBib29sIGlz
T2tDdXBpZCA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1
YWxUb1N0cmluZzpAImNvbS5va2N1cGlkLmFwcCJdOwogICAgIHJldHVybiBpc09rQ3VwaWQ7CiB9
CiAKIGJvb2wgYXBwbGljYXRpb25Jc0ZhY2Vib29rKCkKIHsKLSAgICBzdGF0aWMgYm9vbCBpc0Zh
Y2Vib29rID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVh
bFRvU3RyaW5nOkAiY29tLmZhY2Vib29rLkZhY2Vib29rIl07CisgICAgc3RhdGljIGNvbnN0IGJv
b2wgaXNGYWNlYm9vayA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJd
IGlzRXF1YWxUb1N0cmluZzpAImNvbS5mYWNlYm9vay5GYWNlYm9vayJdOwogICAgIHJldHVybiBp
c0ZhY2Vib29rOwogfQogCiBib29sIGFwcGxpY2F0aW9uSXNFcGljdXJpb3VzKCkKIHsKLSAgICBz
dGF0aWMgYm9vbCBpc0VwaWN1cmlvdXMgPSBbW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJ
ZGVudGlmaWVyXSBpc0VxdWFsVG9TdHJpbmc6QCJjb20uY29uZGVuZXQuRXBpY3VyaW91cyJdOwor
ICAgIHN0YXRpYyBjb25zdCBib29sIGlzRXBpY3VyaW91cyA9IFtbW05TQnVuZGxlIG1haW5CdW5k
bGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5jb25kZW5ldC5FcGlj
dXJpb3VzIl07CiAgICAgcmV0dXJuIGlzRXBpY3VyaW91czsKIH0KIAogYm9vbCBhcHBsaWNhdGlv
bklzRGFpamlzZW5EaWN0aW9uYXJ5KCkKIHsKLSAgICBzdGF0aWMgYm9vbCBpc0RhaWppc2VuRGlj
dGlvbmFyeSA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1
YWxUb1N0cmluZzpAImpwLmNvLnNob2dha3VrYW4uZGFpamlzZW4yMDA5aSJdOworICAgIHN0YXRp
YyBjb25zdCBib29sIGlzRGFpamlzZW5EaWN0aW9uYXJ5ID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRs
ZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAianAuY28uc2hvZ2FrdWthbi5k
YWlqaXNlbjIwMDlpIl07CiAgICAgcmV0dXJuIGlzRGFpamlzZW5EaWN0aW9uYXJ5OwogfQogCiBi
b29sIGFwcGxpY2F0aW9uSXNOQVNBSEQoKQogewotICAgIHN0YXRpYyBib29sIGlzTkFTQUhEID0g
W1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5n
OkAiZ292Lm5hc2EuTkFTQUhEIl07CisgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNOQVNBSEQgPSBb
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXSBpc0VxdWFsVG9TdHJpbmc6
QCJnb3YubmFzYS5OQVNBSEQiXTsKICAgICByZXR1cm4gaXNOQVNBSEQ7CiB9CiAKIGJvb2wgYXBw
bGljYXRpb25Jc01BU0goKQogewotICAgIHN0YXRpYyBib29sIGlzTUFTSCA9IFtbW05TQnVuZGxl
IG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5tYWdu
YXRlaW50ZXJhY3RpdmUubWFzaGdhbWUiXQorICAgIHN0YXRpYyBjb25zdCBib29sIGlzTUFTSCA9
IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmlu
ZzpAImNvbS5tYWduYXRlaW50ZXJhY3RpdmUubWFzaGdhbWUiXQogICAgICAgICB8fCBbW1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXSBpc0VxdWFsVG9TdHJpbmc6QCJjb20u
bWFnbmF0ZWludGVyYWN0aXZlLm1hc2hsaXRlZ2FtZSJdCiAgICAgICAgIHx8IFtbW05TQnVuZGxl
IG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5tYWdu
YXRlaW50ZXJhY3RpdmUubWFzaGNocmlzdG1hcyJdCiAgICAgICAgIHx8IFtbW05TQnVuZGxlIG1h
aW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5tYWduYXRl
aW50ZXJhY3RpdmUubWFzaGhhbGxvd2VlbiJdCkBAIC0xMTEsMjAgKzExMSwyMCBAQCBib29sIGFw
cGxpY2F0aW9uSXNNQVNIKCkKIAogYm9vbCBhcHBsaWNhdGlvbklzVGhlRWNvbm9taXN0T25JUGhv
bmUoKQogewotICAgIHN0YXRpYyBib29sIGlzVGhlRWNvbm9taXN0T25JUGhvbmUgPSBbW1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXSBpc0VxdWFsVG9TdHJpbmc6QCJjb20u
ZWNvbm9taXN0LmlwaG9uZSJdOworICAgIHN0YXRpYyBjb25zdCBib29sIGlzVGhlRWNvbm9taXN0
T25JUGhvbmUgPSBbW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXSBpc0Vx
dWFsVG9TdHJpbmc6QCJjb20uZWNvbm9taXN0LmlwaG9uZSJdOwogICAgIHJldHVybiBpc1RoZUVj
b25vbWlzdE9uSVBob25lOwogfQogCiAvLyBGSVhNRTogdGhpcyBuZWVkcyB0byBiZSBjaGFuZ2Vk
IHdoZW4gdGhlIFdlYlByb2Nlc3MgaXMgY2hhbmdlZCB0byBhbiBYUEMgc2VydmljZS4KIGJvb2wg
YXBwbGljYXRpb25Jc1dlYlByb2Nlc3MoKQogewotICAgIHN0YXRpYyBib29sIGlzV2ViUHJvY2Vz
cyA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0
cmluZzpAImNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudCJdIHx8IFtbW05T
QnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNv
bS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudCJdIHx8IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1
bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5hcHBsZS5XZWJQcm9jZXNzIl07
CisgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNXZWJQcm9jZXNzID0gW1tbTlNCdW5kbGUgbWFpbkJ1
bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAiY29tLmFwcGxlLldlYktp
dC5XZWJDb250ZW50LkRldmVsb3BtZW50Il0gfHwgW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVu
ZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAiY29tLmFwcGxlLldlYktpdC5XZWJDb250
ZW50Il0gfHwgW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVh
bFRvU3RyaW5nOkAiY29tLmFwcGxlLldlYlByb2Nlc3MiXTsKICAgICByZXR1cm4gaXNXZWJQcm9j
ZXNzOwogfQogCiBib29sIGFwcGxpY2F0aW9uSXNJQm9va3NPbklPUygpCiB7Ci0gICAgc3RhdGlj
IGJvb2wgaXNJQm9va3NPbklPUyA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50
aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5hcHBsZS5pQm9va3MiXTsKKyAgICBzdGF0aWMg
Y29uc3QgYm9vbCBpc0lCb29rc09uSU9TID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxl
SWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAiY29tLmFwcGxlLmlCb29rcyJdOwogICAgIHJl
dHVybiBpc0lCb29rc09uSU9TOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9IUlRGRWxldmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0hSVEZFbGV2YXRpb24uY3BwCmluZGV4IDNlNzc0Nzg1YTU4ZGZhM2YwNjk0MTUwZjNjODMx
YjBlODY0ZjdkN2MuLmQwZmQ0ZGUxNDIzZGVjMDY1YWFkMmVmZjMxNjBmMzhhMjFhNmVjOWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3BwCkBA
IC0yMDcsNyArMjA3LDcgQEAgYm9vbCBIUlRGRWxldmF0aW9uOjpjYWxjdWxhdGVLZXJuZWxzRm9y
QXppbXV0aEVsZXZhdGlvbihpbnQgYXppbXV0aCwgaW50IGVsZXZhdGkKIC8vIFRoZSByYW5nZSBv
ZiBlbGV2YXRpb25zIGZvciB0aGUgSVJDQU0gaW1wdWxzZSByZXNwb25zZXMgdmFyaWVzIGRlcGVu
ZGluZyBvbiBhemltdXRoLCBidXQgdGhlIG1pbmltdW0gZWxldmF0aW9uIGFwcGVhcnMgdG8gYWx3
YXlzIGJlIC00NS4KIC8vCiAvLyBIZXJlJ3MgaG93IGl0IGdvZXM6Ci1zdGF0aWMgaW50IG1heEVs
ZXZhdGlvbnNbXSA9IHsKK3N0YXRpYyBjb25zdCBpbnQgbWF4RWxldmF0aW9uc1tdID0gewogICAg
ICAgICAvLyAgQXppbXV0aAogICAgICAgICAvLwogICAgIDkwLCAvLyAwICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0hhcmR3YXJlTGlzdGVuZXJN
YWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVM
aXN0ZW5lck1hYy5jcHAKaW5kZXggYzI2OTU5OTcwNjk1NjFiYWZiYWFkZTYwNzRmMjA0YTc3MjY3
NzhhMi4uMGI0NGY1OTIxMzU3YTQ2MmUzNTE5ZGNhMmJmNGU1NGZlYmUyNTYzOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5l
ck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFy
ZHdhcmVMaXN0ZW5lck1hYy5jcHAKQEAgLTg5LDI1ICs4OSwyNSBAQCBzdGF0aWMgYm9vbCBjdXJy
ZW50RGV2aWNlU3VwcG9ydHNMb3dQb3dlckJ1ZmZlclNpemUoKQogCiBzdGF0aWMgY29uc3QgQXVk
aW9PYmplY3RQcm9wZXJ0eUFkZHJlc3MmIHByb2Nlc3NJc1J1bm5pbmdQcm9wZXJ0eURlc2NyaXB0
b3IoKQogewotICAgIHN0YXRpYyBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVzcyBwcm9jZXNzSXNS
dW5uaW5nUHJvcGVydHkgPSB7CisgICAgc3RhdGljIGNvbnN0IEF1ZGlvT2JqZWN0UHJvcGVydHlB
ZGRyZXNzIHByb2Nlc3NJc1J1bm5pbmdQcm9wZXJ0eSA9IHsKICAgICAgICAga0F1ZGlvSGFyZHdh
cmVQcm9wZXJ0eVByb2Nlc3NJc1J1bm5pbmcsCiAgICAgICAgIGtBdWRpb09iamVjdFByb3BlcnR5
U2NvcGVHbG9iYWwsCiAgICAgICAgIGtBdWRpb09iamVjdFByb3BlcnR5RWxlbWVudE1hc3Rlcgog
ICAgIH07CiAKICAgICByZXR1cm4gcHJvY2Vzc0lzUnVubmluZ1Byb3BlcnR5OwotfTsKK30KIAog
c3RhdGljIGNvbnN0IEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzJiBvdXRwdXREZXZpY2VQcm9w
ZXJ0eURlc2NyaXB0b3IoKQogewotICAgIHN0YXRpYyBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVz
cyBvdXRwdXREZXZpY2VQcm9wZXJ0eSA9IHsKKyAgICBzdGF0aWMgY29uc3QgQXVkaW9PYmplY3RQ
cm9wZXJ0eUFkZHJlc3Mgb3V0cHV0RGV2aWNlUHJvcGVydHkgPSB7CiAgICAgICAgIGtBdWRpb0hh
cmR3YXJlUHJvcGVydHlEZWZhdWx0T3V0cHV0RGV2aWNlLAogICAgICAgICBrQXVkaW9PYmplY3RQ
cm9wZXJ0eVNjb3BlR2xvYmFsLAogICAgICAgICBrQXVkaW9PYmplY3RQcm9wZXJ0eUVsZW1lbnRN
YXN0ZXIKICAgICB9OwogCiAgICAgcmV0dXJuIG91dHB1dERldmljZVByb3BlcnR5OwotfTsKK30K
IAogUmVmPEF1ZGlvSGFyZHdhcmVMaXN0ZW5lcj4gQXVkaW9IYXJkd2FyZUxpc3RlbmVyOjpjcmVh
dGUoQ2xpZW50JiBjbGllbnQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakMubW0KaW5kZXggYTM4MzM1Y2RiODUxNTIxYTE2M2QwOGRjZjlkOThkNTIz
NGM3NTNmNS4uODE1OWFmNjZmNzhkMGQ3YTQ1YTE5N2YzMDY3NGJiNThjNDk2ZDlhMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQpAQCAtNjcs
NyArNjcsNyBAQCBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTWVkaWFDaGFyYWN0
ZXJpc3RpY0F1ZGlibGUsIE5TU3RyaW5nICopCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3Rh
dGljIGRvdWJsZSBrUmluZ0J1ZmZlckR1cmF0aW9uID0gMTsKK3N0YXRpYyBjb25zdCBkb3VibGUg
a1JpbmdCdWZmZXJEdXJhdGlvbiA9IDE7CiAKIFJlZlB0cjxBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQz4gQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZShBVlBsYXllckl0ZW0gKml0
ZW0pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmNwcAppbmRleCBiNTQwNmVjNGM5ZTIyYmQwN2FkNzAxNjQyMmQ5Nzdk
NjhhOWJkYTEwLi5jNjk1MTk3MzI5MjQ1NmUzZmI3MDBiN2I4NjkzZjQ2NzNiNWI3NjA4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5jcHAKQEAgLTIwMzIsMTMgKzIwMzIsMTMgQEAgc3RhdGljIHZvaWQgc2V0TGF5ZXJE
ZWJ1Z0JvcmRlcihQbGF0Zm9ybUNBTGF5ZXImIGxheWVyLCBDb2xvciBib3JkZXJDb2xvciwgZmxv
YXQKICAgICBsYXllci5zZXRCb3JkZXJXaWR0aChib3JkZXJDb2xvci5pc1ZhbGlkKCkgPyBib3Jk
ZXJXaWR0aCA6IDApOwogfQogCi1zdGF0aWMgZmxvYXQgY29udGVudHNMYXllckJvcmRlcldpZHRo
ID0gNDsKK3N0YXRpYyBjb25zdCBmbG9hdCBjb250ZW50c0xheWVyQm9yZGVyV2lkdGggPSA0Owog
c3RhdGljIENvbG9yIGNvbnRlbnRzTGF5ZXJEZWJ1Z0JvcmRlckNvbG9yKGJvb2wgc2hvd2luZ0Jv
cmRlcnMpCiB7CiAgICAgcmV0dXJuIHNob3dpbmdCb3JkZXJzID8gQ29sb3IoMCwgMCwgMTI4LCAx
ODApIDogQ29sb3IoKTsKIH0KIAotc3RhdGljIGZsb2F0IGNsb25lTGF5ZXJCb3JkZXJXaWR0aCA9
IDI7CitzdGF0aWMgY29uc3QgZmxvYXQgY2xvbmVMYXllckJvcmRlcldpZHRoID0gMjsKIHN0YXRp
YyBDb2xvciBjbG9uZUxheWVyRGVidWdCb3JkZXJDb2xvcihib29sIHNob3dpbmdCb3JkZXJzKQog
ewogICAgIHJldHVybiBzaG93aW5nQm9yZGVycyA/IENvbG9yKDI1NSwgMTIyLCAyNTEpIDogQ29s
b3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9u
dENhY2hlTWFjLm1tCmluZGV4IDYzNWFkY2IzOGE0YmM2MWU0NjFlOGJmYmEwOWI4ZTYyMjMwMTYx
MTcuLjE0ZDIwYTI2MjdlYTIyM2NjYjcyMjIxODAyN2FjNWY4OWFjOTE5MGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQpA
QCAtMTU4LDcgKzE1OCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCByZW1lbWJlckRlc2lyZWRGYW1p
bHlUb0F2YWlsYWJsZUZhbWlseU1hcHBpbmcoTlNTdHJpbmcqIGRlc2lyCiAKIHN0YXRpYyB1aW50
MTZfdCB0b0NvcmVUZXh0Rm9udFdlaWdodChGb250V2VpZ2h0IGZvbnRXZWlnaHQpCiB7Ci0gICAg
c3RhdGljIGludCBjb3JlVGV4dEZvbnRXZWlnaHRzW10gPSB7CisgICAgc3RhdGljIGNvbnN0IGlu
dCBjb3JlVGV4dEZvbnRXZWlnaHRzW10gPSB7CiAgICAgICAgIDEwMCwgLy8gRm9udFdlaWdodDEw
MAogICAgICAgICAyMDAsIC8vIEZvbnRXZWlnaHQyMDAKICAgICAgICAgMzAwLCAvLyBGb250V2Vp
Z2h0MzAwCkBAIC0xOTAsNyArMTkwLDcgQEAgdm9pZCBGb250Q2FjaGU6OnNldEZvbnRXaGl0ZWxp
c3QoY29uc3QgVmVjdG9yPFN0cmluZz4mIGlucHV0V2hpdGVsaXN0KQogCiBzdGF0aWMgaW50IHRv
QXBwS2l0Rm9udFdlaWdodChGb250V2VpZ2h0IGZvbnRXZWlnaHQpCiB7Ci0gICAgc3RhdGljIGlu
dCBhcHBLaXRGb250V2VpZ2h0c1tdID0geworICAgIHN0YXRpYyBjb25zdCBpbnQgYXBwS2l0Rm9u
dFdlaWdodHNbXSA9IHsKICAgICAgICAgMiwgLy8gRm9udFdlaWdodDEwMAogICAgICAgICAzLCAv
LyBGb250V2VpZ2h0MjAwCiAgICAgICAgIDQsIC8vIEZvbnRXZWlnaHQzMDAKQEAgLTIwNyw3ICsy
MDcsNyBAQCBzdGF0aWMgaW50IHRvQXBwS2l0Rm9udFdlaWdodChGb250V2VpZ2h0IGZvbnRXZWln
aHQpCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKIHN0YXRp
YyBDR0Zsb2F0IHRvTlNGb250V2VpZ2h0KEZvbnRXZWlnaHQgZm9udFdlaWdodCkKIHsKLSAgICBz
dGF0aWMgQ0dGbG9hdCBuc0ZvbnRXZWlnaHRzW10gPSB7CisgICAgc3RhdGljIGNvbnN0IENHRmxv
YXQgbnNGb250V2VpZ2h0c1tdID0gewogICAgICAgICBOU0ZvbnRXZWlnaHRVbHRyYUxpZ2h0LAog
ICAgICAgICBOU0ZvbnRXZWlnaHRUaGluLAogICAgICAgICBOU0ZvbnRXZWlnaHRMaWdodCwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRl
eCBlMjRhNDA2NmVmYjA0Y2VlN2RiMjllNTZmZjYxMzBlZTBhYzMzMTA3Li43MjYzY2VjZTQ1MjNj
MmJmOTM4MDQ4YjFkZjI1ZGUxMThkZjg2YzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCkBAIC00NSwxOSArNDUsMTkgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiBzdGF0aWMgYm9vbCBzdXBwb3J0c1VJU3RhdGVUcmFuc2l0aW9u
UHJvZ3Jlc3MoKQogewogICAgIC8vIEZJWE1FOiBUaGlzIGlzIHRlbXBvcmFyeSB1bnRpbCBhbGwg
cGxhdGZvcm1zIHRoYXQgc3VwcG9ydCBTY3JvbGxiYXJQYWludGVyIHN1cHBvcnQgdGhpcyBwYXJ0
IG9mIHRoZSBBUEkuCi0gICAgc3RhdGljIGJvb2wgZ2xvYmFsU3VwcG9ydHNVSVN0YXRlVHJhbnNp
dGlvblByb2dyZXNzID0gW05TQ2xhc3NGcm9tU3RyaW5nKEAiTlNTY3JvbGxlckltcCIpIGluc3Rh
bmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3Rvcihtb3VzZUVudGVyZWRTY3JvbGxlcildOwor
ICAgIHN0YXRpYyBjb25zdCBib29sIGdsb2JhbFN1cHBvcnRzVUlTdGF0ZVRyYW5zaXRpb25Qcm9n
cmVzcyA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIk5TU2Nyb2xsZXJJbXAiKSBpbnN0YW5jZXNSZXNw
b25kVG9TZWxlY3RvcjpAc2VsZWN0b3IobW91c2VFbnRlcmVkU2Nyb2xsZXIpXTsKICAgICByZXR1
cm4gZ2xvYmFsU3VwcG9ydHNVSVN0YXRlVHJhbnNpdGlvblByb2dyZXNzOwogfQogCiBzdGF0aWMg
Ym9vbCBzdXBwb3J0c0V4cGFuc2lvblRyYW5zaXRpb25Qcm9ncmVzcygpCiB7Ci0gICAgc3RhdGlj
IGJvb2wgZ2xvYmFsU3VwcG9ydHNFeHBhbnNpb25UcmFuc2l0aW9uUHJvZ3Jlc3MgPSBbTlNDbGFz
c0Zyb21TdHJpbmcoQCJOU1Njcm9sbGVySW1wIikgaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6
QHNlbGVjdG9yKGV4cGFuc2lvblRyYW5zaXRpb25Qcm9ncmVzcyldOworICAgIHN0YXRpYyBjb25z
dCBib29sIGdsb2JhbFN1cHBvcnRzRXhwYW5zaW9uVHJhbnNpdGlvblByb2dyZXNzID0gW05TQ2xh
c3NGcm9tU3RyaW5nKEAiTlNTY3JvbGxlckltcCIpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9y
OkBzZWxlY3RvcihleHBhbnNpb25UcmFuc2l0aW9uUHJvZ3Jlc3MpXTsKICAgICByZXR1cm4gZ2xv
YmFsU3VwcG9ydHNFeHBhbnNpb25UcmFuc2l0aW9uUHJvZ3Jlc3M7CiB9CiAKIHN0YXRpYyBib29s
IHN1cHBvcnRzQ29udGVudEFyZWFTY3JvbGxlZEluRGlyZWN0aW9uKCkKIHsKLSAgICBzdGF0aWMg
Ym9vbCBnbG9iYWxTdXBwb3J0c0NvbnRlbnRBcmVhU2Nyb2xsZWRJbkRpcmVjdGlvbiA9IFtOU0Ns
YXNzRnJvbVN0cmluZyhAIk5TU2Nyb2xsZXJJbXBQYWlyIikgaW5zdGFuY2VzUmVzcG9uZFRvU2Vs
ZWN0b3I6QHNlbGVjdG9yKGNvbnRlbnRBcmVhU2Nyb2xsZWRJbkRpcmVjdGlvbjopXTsKKyAgICBz
dGF0aWMgY29uc3QgYm9vbCBnbG9iYWxTdXBwb3J0c0NvbnRlbnRBcmVhU2Nyb2xsZWRJbkRpcmVj
dGlvbiA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIk5TU2Nyb2xsZXJJbXBQYWlyIikgaW5zdGFuY2Vz
UmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKGNvbnRlbnRBcmVhU2Nyb2xsZWRJbkRpcmVjdGlv
bjopXTsKICAgICByZXR1cm4gZ2xvYmFsU3VwcG9ydHNDb250ZW50QXJlYVNjcm9sbGVkSW5EaXJl
Y3Rpb247CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3Jv
bGxiYXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJU
aGVtZU1hYy5tbQppbmRleCBhY2FhZDAyYWU2YTg0ZTZmZGEwMThiYjU0OWI2ODI1MGEyZWYyMGMw
Li42NmQ2MmY0MzMzNjY2YWNhYTc5NWM1YmY0ZTcyOTE5NGQyNjcxZTlmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCkBAIC0xMTksMTMg
KzExOSwxMyBAQCBTY3JvbGxiYXJUaGVtZSogU2Nyb2xsYmFyVGhlbWU6Om5hdGl2ZVRoZW1lKCkK
IH0KIAogLy8gRklYTUU6IEdldCB0aGVzZSBudW1iZXJzIGZyb20gQ29yZVVJLgotc3RhdGljIGlu
dCBjUmVhbEJ1dHRvbkxlbmd0aFtdID0geyAyOCwgMjEgfTsKLXN0YXRpYyBpbnQgY0J1dHRvbkhp
dEluc2V0W10gPSB7IDMsIDIgfTsKK3N0YXRpYyBjb25zdCBpbnQgY1JlYWxCdXR0b25MZW5ndGhb
XSA9IHsgMjgsIDIxIH07CitzdGF0aWMgY29uc3QgaW50IGNCdXR0b25IaXRJbnNldFtdID0geyAz
LCAyIH07CiAvLyBjUmVhbEJ1dHRvbkxlbmd0aCAtIGNCdXR0b25JbnNldAotc3RhdGljIGludCBj
QnV0dG9uTGVuZ3RoW10gPSB7IDE0LCAxMCB9Oworc3RhdGljIGNvbnN0IGludCBjQnV0dG9uTGVu
Z3RoW10gPSB7IDE0LCAxMCB9OwogCi1zdGF0aWMgaW50IGNPdXRlckJ1dHRvbkxlbmd0aFtdID0g
eyAxNiwgMTQgfTsgLy8gVGhlIG91dGVyIGJ1dHRvbiBpbiBhIGRvdWJsZSBidXR0b24gcGFpciBp
cyBhIGJpdCBiaWdnZXIuCi1zdGF0aWMgaW50IGNPdXRlckJ1dHRvbk92ZXJsYXAgPSAyOworc3Rh
dGljIGNvbnN0IGludCBjT3V0ZXJCdXR0b25MZW5ndGhbXSA9IHsgMTYsIDE0IH07IC8vIFRoZSBv
dXRlciBidXR0b24gaW4gYSBkb3VibGUgYnV0dG9uIHBhaXIgaXMgYSBiaXQgYmlnZ2VyLgorc3Rh
dGljIGNvbnN0IGludCBjT3V0ZXJCdXR0b25PdmVybGFwID0gMjsKIAogc3RhdGljIGZsb2F0IGdJ
bml0aWFsQnV0dG9uRGVsYXkgPSAwLjVmOwogc3RhdGljIGZsb2F0IGdBdXRvc2Nyb2xsQnV0dG9u
RGVsYXkgPSAwLjA1ZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9X
ZWJDb3JlTlNVUkxFeHRyYXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29y
ZU5TVVJMRXh0cmFzLm1tCmluZGV4IGVhMGY2NDcxNTY1YmVjYWQ0ODc3NDdkN2JkMWM1ZmY0NzI5
NGVkOTAuLjcyM2VhM2Q4MTUxYjJmOTIyYWU4MDBiMDllZTZjZmI5NzdjZmE1ZTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlTlNVUkxFeHRyYXMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVOU1VSTEV4dHJhcy5tbQpAQCAt
ODQwLDcgKzg0MCw3IEBAIHN0YXRpYyBCT09MIGhhc1F1ZXN0aW9uTWFya09ubHlRdWVyeVN0cmlu
ZyhOU1VSTCAqVVJMKQogCiBOU0RhdGEgKmRhdGFGb3JVUkxDb21wb25lbnRUeXBlKE5TVVJMICpV
UkwsIENGVVJMQ29tcG9uZW50VHlwZSBjb21wb25lbnRUeXBlKQogewotICAgIHN0YXRpYyBpbnQg
VVJMQ29tcG9uZW50VHlwZUJ1ZmZlckxlbmd0aCA9IDIwNDg7CisgICAgc3RhdGljIGNvbnN0IGlu
dCBVUkxDb21wb25lbnRUeXBlQnVmZmVyTGVuZ3RoID0gMjA0ODsKICAgICAKICAgICBVSW50OCBz
dGF0aWNBbGxCeXRlc0J1ZmZlcltVUkxDb21wb25lbnRUeXBlQnVmZmVyTGVuZ3RoXTsKICAgICBV
SW50OCAqYWxsQnl0ZXNCdWZmZXIgPSBzdGF0aWNBbGxCeXRlc0J1ZmZlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2NrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2NrLmNwcAppbmRleCA2
ZGU5MWNjYjgxOTIxMDQwYzA4NDc4YzFlZTU2NzdkZGU0Mzc0OTVkLi5iMmY2MGExY2M0MDVjNjdh
ZmQ4YTVmNzg0MzdiODllYTNjODI2NDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suY3BwCkBAIC0zMCw3ICszMCw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGludCBjU2Nyb2xsYmFyVGhpY2tuZXNzW10gPSB7
IDE1LCAxMSB9Oworc3RhdGljIGNvbnN0IGludCBjU2Nyb2xsYmFyVGhpY2tuZXNzW10gPSB7IDE1
LCAxMSB9OwogCiBJbnRSZWN0IFNjcm9sbGJhclRoZW1lTW9jazo6dHJhY2tSZWN0KFNjcm9sbGJh
clRoZW1lQ2xpZW50KiBzY3JvbGxiYXIsIGJvb2wpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L2ljdS9VVGV4dFByb3ZpZGVyTGF0aW4xLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvaWN1L1VUZXh0UHJvdmlkZXJMYXRpbjEuY3BwCmluZGV4IGQz
NDNhNjU4ZmFhMTdkZjk4ZTgwZTUxMDg5NGNkZDA1MWIyYjUzY2MuLjc0OGQyYTU0ZmFmOGYwNWE5
NzliOGE2ZmExNzcyNDQyNzMxNGIyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvaWN1L1VUZXh0UHJvdmlkZXJMYXRpbjEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvaWN1L1VUZXh0UHJvdmlkZXJMYXRpbjEuY3BwCkBAIC00MSw3ICs0MSw3
IEBAIHN0YXRpYyBpbnQ2NF90IHVUZXh0TGF0aW4xTWFwT2Zmc2V0VG9OYXRpdmUoY29uc3QgVVRl
eHQqKTsKIHN0YXRpYyBpbnQzMl90IHVUZXh0TGF0aW4xTWFwTmF0aXZlSW5kZXhUb1VURjE2KGNv
bnN0IFVUZXh0KiwgaW50NjRfdCk7CiBzdGF0aWMgdm9pZCB1VGV4dExhdGluMUNsb3NlKFVUZXh0
Kik7CiAKLXN0YXRpYyBzdHJ1Y3QgVVRleHRGdW5jcyB1VGV4dExhdGluMUZ1bmNzID0geworc3Rh
dGljIGNvbnN0IHN0cnVjdCBVVGV4dEZ1bmNzIHVUZXh0TGF0aW4xRnVuY3MgPSB7CiAgICAgc2l6
ZW9mKFVUZXh0RnVuY3MpLAogICAgIDAsCiAgICAgMCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvaW9zL0xvY2FsaXplZERhdGVDYWNoZS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvaW9zL0xvY2FsaXplZERhdGVDYWNoZS5tbQppbmRleCA1YzMwNWJl
NWQzMzJlZGM1OTQ4ZDBjMWE4MWYzNzQzYzQyZjBiNWMxLi44N2Y3NGUwMzUxOGVhMTVmYWRhYTVj
ZWQ3N2I4NTMzNjU3ZjU4ZTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L2lvcy9Mb2NhbGl6ZWREYXRlQ2FjaGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9pb3MvTG9jYWxpemVkRGF0ZUNhY2hlLm1tCkBAIC0xNjcsNyArMTY3LDcgQEAgZmxv
YXQgTG9jYWxpemVkRGF0ZUNhY2hlOjpjYWxjdWxhdGVNYXhpbXVtV2lkdGgoRGF0ZUNvbXBvbmVu
dHM6OlR5cGUgdHlwZSwgY29uc3QKICAgICBbY29tcG9uZW50cy5nZXQoKSBzZXRIb3VyOjIyXTsK
ICAgICBbY29tcG9uZW50cy5nZXQoKSBzZXRNaW51dGU6NDVdOwogCi0gICAgc3RhdGljIE5TVUlu
dGVnZXIgbnVtYmVyT2ZHcmVnb3JpYW5Nb250aHMgPSBbW2RhdGVGb3JtYXR0ZXIgbW9udGhTeW1i
b2xzXSBjb3VudF07CisgICAgc3RhdGljIGNvbnN0IE5TVUludGVnZXIgbnVtYmVyT2ZHcmVnb3Jp
YW5Nb250aHMgPSBbW2RhdGVGb3JtYXR0ZXIgbW9udGhTeW1ib2xzXSBjb3VudF07CiAgICAgQVNT
RVJUKG51bWJlck9mR3JlZ29yaWFuTW9udGhzID09IDEyKTsKIAogICAgIC8vIEZvciBlYWNoIG1v
bnRoIChpbiB0aGUgR3JlZ29yaWFuIENhbGVuZGFyKSwgZm9ybWF0IGEgZGF0ZSBhbmQgbWVhc3Vy
ZSBpdHMgbGVuZ3RoLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrTGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2tMaW5lTGF5b3V0LmNwcAppbmRleCBmYzY1MGM5YjQwY2Q3NDVlN2UwYjM3NDE1MzA5NGJkNjM5
MWIwMzEyLi41ZWMwNDcwYmFjYzhhZjhkNTY0YWU2ZGQ2NzdmMmMyNjM1NWY4ZTZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApA
QCAtMTg4OCw3ICsxODg4LDcgQEAgYm9vbCBSZW5kZXJCbG9ja0Zsb3c6Om1hdGNoZWRFbmRMaW5l
KExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGNvbnN0IElubGluZUIKIAogICAgIC8vIFRo
ZSBmaXJzdCBjbGVhbiBsaW5lIGRvZXNuJ3QgbWF0Y2gsIGJ1dCB3ZSBjYW4gY2hlY2sgYSBoYW5k
ZnVsIG9mIGZvbGxvd2luZyBsaW5lcyB0byB0cnkKICAgICAvLyB0byBtYXRjaCBiYWNrIHVwLgot
ICAgIHN0YXRpYyBpbnQgbnVtTGluZXMgPSA4OyAvLyBUaGUgIyBvZiBsaW5lcyB3ZSdyZSB3aWxs
aW5nIHRvIG1hdGNoIGFnYWluc3QuCisgICAgc3RhdGljIGNvbnN0IGludCBudW1MaW5lcyA9IDg7
IC8vIFRoZSAjIG9mIGxpbmVzIHdlJ3JlIHdpbGxpbmcgdG8gbWF0Y2ggYWdhaW5zdC4KICAgICBS
b290SW5saW5lQm94KiBvcmlnaW5hbEVuZExpbmUgPSBsYXlvdXRTdGF0ZS5lbmRMaW5lKCk7CiAg
ICAgUm9vdElubGluZUJveCogbGluZSA9IG9yaWdpbmFsRW5kTGluZTsKICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IG51bUxpbmVzICYmIGxpbmU7IGkrKywgbGluZSA9IGxpbmUtPm5leHRSb290Qm94
KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2Rl
bE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmpl
Y3QuY3BwCmluZGV4IGU0YjIzNWEzMzM2OGRlNmYxNjFiYzBlOTFmY2Y4ZWE3MTEzOTE2ZGUuLmY4
MGYyMDA0NTE1YmNiZThlZDg3NTlmYTgzMDM4NmYwYzRiYmNkZjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtMTY4Miw3ICsx
NjgyLDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRUcmFuc2x1Y2VudEJvcmRl
clNpZGVzKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3MKIHsKICAgICAvLyB3aWxsQmVPdmVyZHJh
d24gYXNzdW1lcyB0aGF0IHdlIGRyYXcgaW4gb3JkZXI6IHRvcCwgYm90dG9tLCBsZWZ0LCByaWdo
dC4KICAgICAvLyBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIEJveFNpZGUgZW51bSBvcmRlci4KLSAg
ICBzdGF0aWMgQm94U2lkZSBwYWludE9yZGVyW10gPSB7IEJTVG9wLCBCU0JvdHRvbSwgQlNMZWZ0
LCBCU1JpZ2h0IH07CisgICAgc3RhdGljIGNvbnN0IEJveFNpZGUgcGFpbnRPcmRlcltdID0geyBC
U1RvcCwgQlNCb3R0b20sIEJTTGVmdCwgQlNSaWdodCB9OwogCiAgICAgd2hpbGUgKGVkZ2VzVG9E
cmF3KSB7CiAgICAgICAgIC8vIEZpbmQgdW5kcmF3biBlZGdlcyBzaGFyaW5nIGEgY29sb3IuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVCYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuY3BwCmluZGV4IDkyMzJj
Y2RmYTllOGJjNTNlOTZiZDg5YmU5MTI1Zjk3ZjhkNmVmNWUuLjE5NGU3OGY1MmZjYTIwZjU3MWU2
MGExMzFmMDI3NzJlMjkyNDExN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGcmFtZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGcmFtZUJhc2UuY3BwCkBAIC00NCw3ICs0NCw3IEBAIGlubGluZSBib29sIHNob3VsZEV4cGFu
ZEZyYW1lKExheW91dFVuaXQgd2lkdGgsIExheW91dFVuaXQgaGVpZ2h0LCBib29sIGhhc0ZpeGVk
CiAgICAgaWYgKCF3aWR0aCB8fCAhaGVpZ2h0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
Ly8gUmVhbGx5IHNtYWxsIGZpeGVkIHNpemUgZnJhbWVzIGNhbid0IGJlIG1lYW50IHRvIGJlIHNj
cm9sbGVkIGFuZCBhcmUgdGhlcmUgcHJvYmFibHkgYnkgbWlzdGFrZS4gQXZvaWQgZXhwYW5kaW5n
LgotICAgIHN0YXRpYyB1bnNpZ25lZCBzbWFsbGVzdFVzZWZ1bGx5U2Nyb2xsYWJsZURpbWVuc2lv
biA9IDg7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNtYWxsZXN0VXNlZnVsbHlTY3JvbGxh
YmxlRGltZW5zaW9uID0gODsKICAgICBpZiAoaGFzRml4ZWRXaWR0aCAmJiB3aWR0aCA8IExheW91
dFVuaXQoc21hbGxlc3RVc2VmdWxseVNjcm9sbGFibGVEaW1lbnNpb24pKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgaWYgKGhhc0ZpeGVkSGVpZ2h0ICYmIGhlaWdodCA8IExheW91dFVuaXQo
c21hbGxlc3RVc2VmdWxseVNjcm9sbGFibGVEaW1lbnNpb24pKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAppbmRleCAzZmQ2OWVmNGJkYmY5YzRj
NWVhOWViMWVhNTgyZTkxNmRlMjMzNjFhLi5kZDVhZDVmZjM3ZWI5NmVlODdjYzczNmI5Y2M0ZDY2
OGM1YmUxYTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGVTZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVT
ZWN0aW9uLmNwcApAQCAtNDUsOCArNDUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOwogCiAvLyBUaG9zZSAyIHZhcmlhYmxlcyBhcmUgdXNlZCB0byBi
YWxhbmNlIHRoZSBtZW1vcnkgY29uc3VtcHRpb24gdnMgdGhlIHJlcGFpbnQgdGltZSBvbiBiaWcg
dGFibGVzLgotc3RhdGljIHVuc2lnbmVkIGdNaW5UYWJsZVNpemVUb1VzZUZhc3RQYWludFBhdGhX
aXRoT3ZlcmZsb3dpbmdDZWxsID0gNzUgKiA3NTsKLXN0YXRpYyBmbG9hdCBnTWF4QWxsb3dlZE92
ZXJmbG93aW5nQ2VsbFJhdGlvRm9yRmFzdFBhaW50UGF0aCA9IDAuMWY7CitzdGF0aWMgY29uc3Qg
dW5zaWduZWQgZ01pblRhYmxlU2l6ZVRvVXNlRmFzdFBhaW50UGF0aFdpdGhPdmVyZmxvd2luZ0Nl
bGwgPSA3NSAqIDc1Oworc3RhdGljIGNvbnN0IGZsb2F0IGdNYXhBbGxvd2VkT3ZlcmZsb3dpbmdD
ZWxsUmF0aW9Gb3JGYXN0UGFpbnRQYXRoID0gMC4xZjsKIAogc3RhdGljIGlubGluZSB2b2lkIHNl
dFJvd0xvZ2ljYWxIZWlnaHRUb1Jvd1N0eWxlTG9naWNhbEhlaWdodElmTm90UmVsYXRpdmUoUmVu
ZGVyVGFibGVTZWN0aW9uOjpSb3dTdHJ1Y3QmIHJvdykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUlPUy5tbQppbmRleCBjNWU3ODljMTU1MTU3NDcyMDhlYjFjZTBiODEx
MTBlMjI5ZjQ4ZTNmLi43NTExYzgwYjQ3YjZmODZhYzcxYTQzYjAwYmFjYjUzZmVhMWNmMDY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCkBAIC0xOTAsNjQg
KzE5MCw2NCBAQCBlbnVtIElPU0dyYWRpZW50VHlwZSB7CiAKIHN0YXRpYyBJT1NHcmFkaWVudFJl
ZiBnZXRJbnNldEdyYWRpZW50KCkKIHsKLSAgICBzdGF0aWMgZmxvYXQgZW5kWzRdID0geyAwIC8g
MjU1LjAsIDAgLyAyNTUuMCwgMCAvIDI1NS4wLCAwIH07Ci0gICAgc3RhdGljIGZsb2F0IHN0YXJ0
WzRdID0geyAwIC8gMjU1LjAsIDAgLyAyNTUuMCwgMCAvIDI1NS4wLCAwLjIgfTsKKyAgICBzdGF0
aWMgY29uc3QgZmxvYXQgZW5kWzRdID0geyAwIC8gMjU1LjAsIDAgLyAyNTUuMCwgMCAvIDI1NS4w
LCAwIH07CisgICAgc3RhdGljIGNvbnN0IGZsb2F0IHN0YXJ0WzRdID0geyAwIC8gMjU1LjAsIDAg
LyAyNTUuMCwgMCAvIDI1NS4wLCAwLjIgfTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SU9T
R3JhZGllbnQ+IGdyYWRpZW50KHN0YXJ0LCBlbmQpOwogICAgIHJldHVybiAmZ3JhZGllbnQuZ2V0
KCk7CiB9CiAKIHN0YXRpYyBJT1NHcmFkaWVudFJlZiBnZXRTaGluZUdyYWRpZW50KCkKIHsKLSAg
ICBzdGF0aWMgZmxvYXQgZW5kWzRdID0geyAxLCAxLCAxLCAwLjggfTsKLSAgICBzdGF0aWMgZmxv
YXQgc3RhcnRbNF0gPSB7IDEsIDEsIDEsIDAgfTsKKyAgICBzdGF0aWMgY29uc3QgZmxvYXQgZW5k
WzRdID0geyAxLCAxLCAxLCAwLjggfTsKKyAgICBzdGF0aWMgY29uc3QgZmxvYXQgc3RhcnRbNF0g
PSB7IDEsIDEsIDEsIDAgfTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SU9TR3JhZGllbnQ+
IGdyYWRpZW50KHN0YXJ0LCBlbmQpOwogICAgIHJldHVybiAmZ3JhZGllbnQuZ2V0KCk7CiB9CiAK
IHN0YXRpYyBJT1NHcmFkaWVudFJlZiBnZXRTaGFkZUdyYWRpZW50KCkKIHsKLSAgICBzdGF0aWMg
ZmxvYXQgZW5kWzRdID0geyAxNzggLyAyNTUuMCwgMTc4IC8gMjU1LjAsIDE3OCAvIDI1NS4wLCAw
LjY1IH07Ci0gICAgc3RhdGljIGZsb2F0IHN0YXJ0WzRdID0geyAyNTIgLyAyNTUuMCwgMjUyIC8g
MjU1LjAsIDI1MiAvIDI1NS4wLCAwLjY1IH07CisgICAgc3RhdGljIGNvbnN0IGZsb2F0IGVuZFs0
XSA9IHsgMTc4IC8gMjU1LjAsIDE3OCAvIDI1NS4wLCAxNzggLyAyNTUuMCwgMC42NSB9OworICAg
IHN0YXRpYyBjb25zdCBmbG9hdCBzdGFydFs0XSA9IHsgMjUyIC8gMjU1LjAsIDI1MiAvIDI1NS4w
LCAyNTIgLyAyNTUuMCwgMC42NSB9OwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxJT1NHcmFk
aWVudD4gZ3JhZGllbnQoc3RhcnQsIGVuZCk7CiAgICAgcmV0dXJuICZncmFkaWVudC5nZXQoKTsK
IH0KIAogc3RhdGljIElPU0dyYWRpZW50UmVmIGdldENvbnZleEdyYWRpZW50KCkKIHsKLSAgICBz
dGF0aWMgZmxvYXQgZW5kWzRdID0geyAyNTUgLyAyNTUuMCwgMjU1IC8gMjU1LjAsIDI1NSAvIDI1
NS4wLCAwLjA1IH07Ci0gICAgc3RhdGljIGZsb2F0IHN0YXJ0WzRdID0geyAyNTUgLyAyNTUuMCwg
MjU1IC8gMjU1LjAsIDI1NSAvIDI1NS4wLCAwLjQzIH07CisgICAgc3RhdGljIGNvbnN0IGZsb2F0
IGVuZFs0XSA9IHsgMjU1IC8gMjU1LjAsIDI1NSAvIDI1NS4wLCAyNTUgLyAyNTUuMCwgMC4wNSB9
OworICAgIHN0YXRpYyBjb25zdCBmbG9hdCBzdGFydFs0XSA9IHsgMjU1IC8gMjU1LjAsIDI1NSAv
IDI1NS4wLCAyNTUgLyAyNTUuMCwgMC40MyB9OwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxJ
T1NHcmFkaWVudD4gZ3JhZGllbnQoc3RhcnQsIGVuZCk7CiAgICAgcmV0dXJuICZncmFkaWVudC5n
ZXQoKTsKIH0KIAogc3RhdGljIElPU0dyYWRpZW50UmVmIGdldENvbmNhdmVHcmFkaWVudCgpCiB7
Ci0gICAgc3RhdGljIGZsb2F0IGVuZFs0XSA9IHsgMjU1IC8gMjU1LjAsIDI1NSAvIDI1NS4wLCAy
NTUgLyAyNTUuMCwgMC40NiB9OwotICAgIHN0YXRpYyBmbG9hdCBzdGFydFs0XSA9IHsgMjU1IC8g
MjU1LjAsIDI1NSAvIDI1NS4wLCAyNTUgLyAyNTUuMCwgMCB9OworICAgIHN0YXRpYyBjb25zdCBm
bG9hdCBlbmRbNF0gPSB7IDI1NSAvIDI1NS4wLCAyNTUgLyAyNTUuMCwgMjU1IC8gMjU1LjAsIDAu
NDYgfTsKKyAgICBzdGF0aWMgY29uc3QgZmxvYXQgc3RhcnRbNF0gPSB7IDI1NSAvIDI1NS4wLCAy
NTUgLyAyNTUuMCwgMjU1IC8gMjU1LjAsIDAgfTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
SU9TR3JhZGllbnQ+IGdyYWRpZW50KHN0YXJ0LCBlbmQpOwogICAgIHJldHVybiAmZ3JhZGllbnQu
Z2V0KCk7CiB9CiAKIHN0YXRpYyBJT1NHcmFkaWVudFJlZiBnZXRTbGlkZXJUcmFja0dyYWRpZW50
KCkKIHsKLSAgICBzdGF0aWMgZmxvYXQgZW5kWzRdID0geyAxMzIgLyAyNTUuMCwgMTMyIC8gMjU1
LjAsIDEzMiAvIDI1NS4wLCAxIH07Ci0gICAgc3RhdGljIGZsb2F0IHN0YXJ0WzRdID0geyA3NCAv
IDI1NS4wLCA3NyAvIDI1NS4wLCA4MCAvIDI1NS4wLCAxIH07CisgICAgc3RhdGljIGNvbnN0IGZs
b2F0IGVuZFs0XSA9IHsgMTMyIC8gMjU1LjAsIDEzMiAvIDI1NS4wLCAxMzIgLyAyNTUuMCwgMSB9
OworICAgIHN0YXRpYyBjb25zdCBmbG9hdCBzdGFydFs0XSA9IHsgNzQgLyAyNTUuMCwgNzcgLyAy
NTUuMCwgODAgLyAyNTUuMCwgMSB9OwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxJT1NHcmFk
aWVudD4gZ3JhZGllbnQoc3RhcnQsIGVuZCk7CiAgICAgcmV0dXJuICZncmFkaWVudC5nZXQoKTsK
IH0KIAogc3RhdGljIElPU0dyYWRpZW50UmVmIGdldFJlYWRvbmx5U2xpZGVyVHJhY2tHcmFkaWVu
dCgpCiB7Ci0gICAgc3RhdGljIGZsb2F0IGVuZFs0XSA9IHsgMTMyIC8gMjU1LjAsIDEzMiAvIDI1
NS4wLCAxMzIgLyAyNTUuMCwgMC40IH07Ci0gICAgc3RhdGljIGZsb2F0IHN0YXJ0WzRdID0geyA3
NCAvIDI1NS4wLCA3NyAvIDI1NS4wLCA4MCAvMjU1LjAsIDAuNCB9OworICAgIHN0YXRpYyBjb25z
dCBmbG9hdCBlbmRbNF0gPSB7IDEzMiAvIDI1NS4wLCAxMzIgLyAyNTUuMCwgMTMyIC8gMjU1LjAs
IDAuNCB9OworICAgIHN0YXRpYyBjb25zdCBmbG9hdCBzdGFydFs0XSA9IHsgNzQgLyAyNTUuMCwg
NzcgLyAyNTUuMCwgODAgLzI1NS4wLCAwLjQgfTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
SU9TR3JhZGllbnQ+IGdyYWRpZW50KHN0YXJ0LCBlbmQpOwogICAgIHJldHVybiAmZ3JhZGllbnQu
Z2V0KCk7CiB9CiAKIHN0YXRpYyBJT1NHcmFkaWVudFJlZiBnZXRTbGlkZXJUaHVtYk9wYXF1ZVBy
ZXNzZWRHcmFkaWVudCgpCiB7Ci0gICAgc3RhdGljIGZsb2F0IGVuZFs0XSA9IHsgMTQ0IC8gMjU1
LjAsIDE0NCAvIDI1NS4wLCAxNDQgLyAyNTUuMCwgMX07Ci0gICAgc3RhdGljIGZsb2F0IHN0YXJ0
WzRdID0geyA1NSAvIDI1NS4wLCA1NSAvIDI1NS4wLCA1NSAvIDI1NS4wLCAxIH07CisgICAgc3Rh
dGljIGNvbnN0IGZsb2F0IGVuZFs0XSA9IHsgMTQ0IC8gMjU1LjAsIDE0NCAvIDI1NS4wLCAxNDQg
LyAyNTUuMCwgMX07CisgICAgc3RhdGljIGNvbnN0IGZsb2F0IHN0YXJ0WzRdID0geyA1NSAvIDI1
NS4wLCA1NSAvIDI1NS4wLCA1NSAvIDI1NS4wLCAxIH07CiAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPElPU0dyYWRpZW50PiBncmFkaWVudChzdGFydCwgZW5kKTsKICAgICByZXR1cm4gJmdyYWRp
ZW50LmdldCgpOwogfQpAQCAtMzc3LDkgKzM3Nyw5IEBAIGJvb2wgUmVuZGVyVGhlbWVJT1M6OnBh
aW50Q2hlY2tib3hEZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJPYmplY3QmIGJveCwgY29uc3QgUGFp
CiAgICAgaWYgKGlzQ2hlY2tlZChib3gpKSB7CiAgICAgICAgIGRyYXdBeGlhbEdyYWRpZW50KGNn
Q29udGV4dCwgZ3JhZGllbnRXaXRoTmFtZShDb25jYXZlR3JhZGllbnQpLCBjbGlwLmxvY2F0aW9u
KCksIEZsb2F0UG9pbnQoY2xpcC54KCksIGNsaXAubWF4WSgpKSwgTGluZWFySW50ZXJwb2xhdGlv
bik7CiAKLSAgICAgICAgc3RhdGljIGZsb2F0IHRoaWNrbmVzc1JhdGlvID0gMiAvIDE0LjA7Ci0g
ICAgICAgIHN0YXRpYyBDR1NpemUgc2l6ZSA9IHsgMTQuMGYsIDE0LjBmIH07Ci0gICAgICAgIHN0
YXRpYyBDR1BvaW50IHBhdGhSYXRpb3NbM10gPSB7CisgICAgICAgIHN0YXRpYyBjb25zdCBmbG9h
dCB0aGlja25lc3NSYXRpbyA9IDIgLyAxNC4wOworICAgICAgICBzdGF0aWMgY29uc3QgQ0dTaXpl
IHNpemUgPSB7IDE0LjBmLCAxNC4wZiB9OworICAgICAgICBzdGF0aWMgY29uc3QgQ0dQb2ludCBw
YXRoUmF0aW9zWzNdID0gewogICAgICAgICAgICAgeyAyLjVmIC8gc2l6ZS53aWR0aCwgNy41ZiAv
IHNpemUuaGVpZ2h0IH0sCiAgICAgICAgICAgICB7IDUuNWYgLyBzaXplLndpZHRoLCAxMC41ZiAv
IHNpemUuaGVpZ2h0IH0sCiAgICAgICAgICAgICB7IDExLjVmIC8gc2l6ZS53aWR0aCwgMi41ZiAv
IHNpemUuaGVpZ2h0IH0KQEAgLTQ2NSw3ICs0NjUsNyBAQCBib29sIFJlbmRlclRoZW1lSU9TOjpw
YWludFJhZGlvRGVjb3JhdGlvbnMoY29uc3QgUmVuZGVyT2JqZWN0JiBib3gsIGNvbnN0IFBhaW50
SQogICAgICAgICAvLyBUaGUgaW5uZXIgY2lyY2xlIGlzIDYgLyAxNCB0aGUgc2l6ZSBvZiB0aGUg
c3Vycm91bmRpbmcgY2lyY2xlLCAKICAgICAgICAgLy8gbGVhdmluZyA4IC8gMTQgYXJvdW5kIGl0
LiAoOCAvIDE0KSAvIDIgPSAyIC8gNy4KIAotICAgICAgICBzdGF0aWMgZmxvYXQgSW5uZXJJbnZl
cnNlUmF0aW8gPSAyIC8gNy4wOworICAgICAgICBzdGF0aWMgY29uc3QgZmxvYXQgSW5uZXJJbnZl
cnNlUmF0aW8gPSAyIC8gNy4wOwogCiAgICAgICAgIGNsaXAuaW5mbGF0ZVgoLWNsaXAud2lkdGgo
KSAqIElubmVySW52ZXJzZVJhdGlvKTsKICAgICAgICAgY2xpcC5pbmZsYXRlWSgtY2xpcC5oZWln
aHQoKSAqIElubmVySW52ZXJzZVJhdGlvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZU1hYy5tbQppbmRleCAxMTQ4MWI5YzY5NjdiMDlkZWI3MDRjOTcxMWQyYjk1NDRlMTZh
ZDJjLi4yZDM1NWI1MzViYjg4OTk1MzM2Yzc5NTdkMTFhOTg4M2NjZGFmYWRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC0zMjUsNyArMzI1LDcgQEAg
c3RhdGljIEZvbnRXZWlnaHQgdG9Gb250V2VpZ2h0KE5TSW50ZWdlciBhcHBLaXRGb250V2VpZ2h0
KQogICAgIGVsc2UgaWYgKGFwcEtpdEZvbnRXZWlnaHQgPCAxKQogICAgICAgICBhcHBLaXRGb250
V2VpZ2h0ID0gMTsKIAotICAgIHN0YXRpYyBGb250V2VpZ2h0IGZvbnRXZWlnaHRzW10gPSB7Cisg
ICAgc3RhdGljIGNvbnN0IEZvbnRXZWlnaHQgZm9udFdlaWdodHNbXSA9IHsKICAgICAgICAgRm9u
dFdlaWdodDEwMCwKICAgICAgICAgRm9udFdlaWdodDEwMCwKICAgICAgICAgRm9udFdlaWdodDIw
MCwKQEAgLTExNzEsOCArMTE3MSw4IEBAIGNvbnN0IGludCBzdHlsZWRQb3B1cFBhZGRpbmdCb3R0
b20gPSAyOwogCiBzdGF0aWMgdm9pZCBUb3BHcmFkaWVudEludGVycG9sYXRlKHZvaWQqLCBjb25z
dCBDR0Zsb2F0KiBpbkRhdGEsIENHRmxvYXQqIG91dERhdGEpCiB7Ci0gICAgc3RhdGljIGZsb2F0
IGRhcmtbNF0gPSB7IDEuMGYsIDEuMGYsIDEuMGYsIDAuNGYgfTsKLSAgICBzdGF0aWMgZmxvYXQg
bGlnaHRbNF0gPSB7IDEuMGYsIDEuMGYsIDEuMGYsIDAuMTVmIH07CisgICAgc3RhdGljIGNvbnN0
IGZsb2F0IGRhcmtbNF0gPSB7IDEuMGYsIDEuMGYsIDEuMGYsIDAuNGYgfTsKKyAgICBzdGF0aWMg
Y29uc3QgZmxvYXQgbGlnaHRbNF0gPSB7IDEuMGYsIDEuMGYsIDEuMGYsIDAuMTVmIH07CiAgICAg
ZmxvYXQgYSA9IGluRGF0YVswXTsKICAgICBpbnQgaSA9IDA7CiAgICAgZm9yIChpID0gMDsgaSA8
IDQ7IGkrKykKQEAgLTExODEsOCArMTE4MSw4IEBAIHN0YXRpYyB2b2lkIFRvcEdyYWRpZW50SW50
ZXJwb2xhdGUodm9pZCosIGNvbnN0IENHRmxvYXQqIGluRGF0YSwgQ0dGbG9hdCogb3V0RGF0CiAK
IHN0YXRpYyB2b2lkIEJvdHRvbUdyYWRpZW50SW50ZXJwb2xhdGUodm9pZCosIGNvbnN0IENHRmxv
YXQqIGluRGF0YSwgQ0dGbG9hdCogb3V0RGF0YSkKIHsKLSAgICBzdGF0aWMgZmxvYXQgZGFya1s0
XSA9IHsgMS4wZiwgMS4wZiwgMS4wZiwgMC4wZiB9OwotICAgIHN0YXRpYyBmbG9hdCBsaWdodFs0
XSA9IHsgMS4wZiwgMS4wZiwgMS4wZiwgMC4zZiB9OworICAgIHN0YXRpYyBjb25zdCBmbG9hdCBk
YXJrWzRdID0geyAxLjBmLCAxLjBmLCAxLjBmLCAwLjBmIH07CisgICAgc3RhdGljIGNvbnN0IGZs
b2F0IGxpZ2h0WzRdID0geyAxLjBmLCAxLjBmLCAxLjBmLCAwLjNmIH07CiAgICAgZmxvYXQgYSA9
IGluRGF0YVswXTsKICAgICBpbnQgaSA9IDA7CiAgICAgZm9yIChpID0gMDsgaSA8IDQ7IGkrKykK
QEAgLTExOTEsOCArMTE5MSw4IEBAIHN0YXRpYyB2b2lkIEJvdHRvbUdyYWRpZW50SW50ZXJwb2xh
dGUodm9pZCosIGNvbnN0IENHRmxvYXQqIGluRGF0YSwgQ0dGbG9hdCogb3V0CiAKIHN0YXRpYyB2
b2lkIE1haW5HcmFkaWVudEludGVycG9sYXRlKHZvaWQqLCBjb25zdCBDR0Zsb2F0KiBpbkRhdGEs
IENHRmxvYXQqIG91dERhdGEpCiB7Ci0gICAgc3RhdGljIGZsb2F0IGRhcmtbNF0gPSB7IDAuMGYs
IDAuMGYsIDAuMGYsIDAuMTVmIH07Ci0gICAgc3RhdGljIGZsb2F0IGxpZ2h0WzRdID0geyAwLjBm
LCAwLjBmLCAwLjBmLCAwLjBmIH07CisgICAgc3RhdGljIGNvbnN0IGZsb2F0IGRhcmtbNF0gPSB7
IDAuMGYsIDAuMGYsIDAuMGYsIDAuMTVmIH07CisgICAgc3RhdGljIGNvbnN0IGZsb2F0IGxpZ2h0
WzRdID0geyAwLjBmLCAwLjBmLCAwLjBmLCAwLjBmIH07CiAgICAgZmxvYXQgYSA9IGluRGF0YVsw
XTsKICAgICBpbnQgaSA9IDA7CiAgICAgZm9yIChpID0gMDsgaSA8IDQ7IGkrKykKQEAgLTEyMDEs
OCArMTIwMSw4IEBAIHN0YXRpYyB2b2lkIE1haW5HcmFkaWVudEludGVycG9sYXRlKHZvaWQqLCBj
b25zdCBDR0Zsb2F0KiBpbkRhdGEsIENHRmxvYXQqIG91dERhCiAKIHN0YXRpYyB2b2lkIFRyYWNr
R3JhZGllbnRJbnRlcnBvbGF0ZSh2b2lkKiwgY29uc3QgQ0dGbG9hdCogaW5EYXRhLCBDR0Zsb2F0
KiBvdXREYXRhKQogewotICAgIHN0YXRpYyBmbG9hdCBkYXJrWzRdID0geyAwLjBmLCAwLjBmLCAw
LjBmLCAwLjY3OGYgfTsKLSAgICBzdGF0aWMgZmxvYXQgbGlnaHRbNF0gPSB7IDAuMGYsIDAuMGYs
IDAuMGYsIDAuMTNmIH07CisgICAgc3RhdGljIGNvbnN0IGZsb2F0IGRhcmtbNF0gPSB7IDAuMGYs
IDAuMGYsIDAuMGYsIDAuNjc4ZiB9OworICAgIHN0YXRpYyBjb25zdCBmbG9hdCBsaWdodFs0XSA9
IHsgMC4wZiwgMC4wZiwgMC4wZiwgMC4xM2YgfTsKICAgICBmbG9hdCBhID0gaW5EYXRhWzBdOwog
ICAgIGludCBpID0gMDsKICAgICBmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VFbmNvZGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRW5jb2Rlci5jcHAKaW5kZXggY2YzYTY3MTM2NjU2
MTJhMjEwNWJmNjZjMDlhMDBiNzZiNjVhMDc4Yy4uN2QwOTU4NDY1YzUwNGM3M2I2Nzc3OTIxOGZl
YWM3Y2NmYjYyZDJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01l
c3NhZ2VFbmNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2Fn
ZUVuY29kZXIuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAKIG5hbWVzcGFjZSBJUEMgewogCi1zdGF0
aWMgdWludDhfdCBkZWZhdWx0TWVzc2FnZUZsYWdzID0gMDsKK3N0YXRpYyBjb25zdCB1aW50OF90
IGRlZmF1bHRNZXNzYWdlRmxhZ3MgPSAwOwogCiAjaWYgSEFWRShEVFJBQ0UpCiBNZXNzYWdlRW5j
b2Rlcjo6TWVzc2FnZUVuY29kZXIoU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUs
IFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgY29u
c3QgdXVpZF90JiBVVUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vTG9n
Z2luZy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dnaW5nLmNwcAppbmRleCAwMGRh
MWE0MGY2OWE4YzVhZmY3MDM2ZGEyYWZmOWE5MjA0NzNmMDIyLi5hOTMxMjEzZjJkNjE5MmQzNjE4
YWExZjJiNzEzN2M3OTcxOTIxYTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Mb2dnaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dnaW5nLmNwcApA
QCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFdFQktJVDJfTE9HX0NIQU5ORUxT
KERFRklORV9MT0dfQ0hBTk5FTCkKIAogI2RlZmluZSBMT0dfQ0hBTk5FTF9BRERSRVNTKG5hbWUp
ICAmSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChMT0dfQ0hBTk5FTF9QUkVGSVgsIG5hbWUp
LAotc3RhdGljIFdURkxvZ0NoYW5uZWwqIGxvZ0NoYW5uZWxzW10gPSB7CitzdGF0aWMgY29uc3Qg
V1RGTG9nQ2hhbm5lbCogbG9nQ2hhbm5lbHNbXSA9IHsKICAgICBXRUJLSVQyX0xPR19DSEFOTkVM
UyhMT0dfQ0hBTk5FTF9BRERSRVNTKQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCBkMjhkY2NkNTljMmUx
ZDBkOGZhOWE5NTgwZWYyNGU0MzExNjk4OTcwLi4xN2JjZDI3MmUwNmM5ZmZiODgxMjI0NWE0OTNj
YzliZWQ3NmQ1MDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAtNDkzLDI1ICs0OTMsMjUgQEAgdm9pZCBXZWJQ
cm9jZXNzUG9vbDo6cmVzZXRIU1RTSG9zdHNBZGRlZEFmdGVyRGF0ZShkb3VibGUgc3RhcnREYXRl
SW50ZXJ2YWxTaW5jZTEKIAogaW50IG5ldHdvcmtQcm9jZXNzTGF0ZW5jeVFPUygpCiB7Ci0gICAg
c3RhdGljIGludCBxb3MgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBp
bnRlZ2VyRm9yS2V5OkAiV2ViS2l0TmV0d29ya1Byb2Nlc3NMYXRlbmN5UU9TIl07CisgICAgc3Rh
dGljIGNvbnN0IGludCBxb3MgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRz
XSBpbnRlZ2VyRm9yS2V5OkAiV2ViS2l0TmV0d29ya1Byb2Nlc3NMYXRlbmN5UU9TIl07CiAgICAg
cmV0dXJuIHFvczsKIH0KIAogaW50IG5ldHdvcmtQcm9jZXNzVGhyb3VnaHB1dFFPUygpCiB7Ci0g
ICAgc3RhdGljIGludCBxb3MgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRz
XSBpbnRlZ2VyRm9yS2V5OkAiV2ViS2l0TmV0d29ya1Byb2Nlc3NUaHJvdWdocHV0UU9TIl07Cisg
ICAgc3RhdGljIGNvbnN0IGludCBxb3MgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRl
ZmF1bHRzXSBpbnRlZ2VyRm9yS2V5OkAiV2ViS2l0TmV0d29ya1Byb2Nlc3NUaHJvdWdocHV0UU9T
Il07CiAgICAgcmV0dXJuIHFvczsKIH0KIAogaW50IHdlYlByb2Nlc3NMYXRlbmN5UU9TKCkKIHsK
LSAgICBzdGF0aWMgaW50IHFvcyA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVs
dHNdIGludGVnZXJGb3JLZXk6QCJXZWJLaXRXZWJQcm9jZXNzTGF0ZW5jeVFPUyJdOworICAgIHN0
YXRpYyBjb25zdCBpbnQgcW9zID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0
c10gaW50ZWdlckZvcktleTpAIldlYktpdFdlYlByb2Nlc3NMYXRlbmN5UU9TIl07CiAgICAgcmV0
dXJuIHFvczsKIH0KIAogaW50IHdlYlByb2Nlc3NUaHJvdWdocHV0UU9TKCkKIHsKLSAgICBzdGF0
aWMgaW50IHFvcyA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGludGVn
ZXJGb3JLZXk6QCJXZWJLaXRXZWJQcm9jZXNzVGhyb3VnaHB1dFFPUyJdOworICAgIHN0YXRpYyBj
b25zdCBpbnQgcW9zID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gaW50
ZWdlckZvcktleTpAIldlYktpdFdlYlByb2Nlc3NUaHJvdWdocHV0UU9TIl07CiAgICAgcmV0dXJu
IHFvczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMv
bWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
bHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KaW5kZXggOTQzMTZjZjIxZjdiOWNi
NmZiY2FkY2JhNjQyYTVjZTk2Zjk3N2Q5OS4uYTVlYjUxZDQ2ZWRlNTM2ZThkMTNlZWE2ZDQ4ZTg1
OGQyOWI4ZmIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMv
bWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCkBAIC02Myw3ICs2Myw3IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogICAgIAogYm9vbCBQbHVnaW5Qcm9jZXNzUHJveHk6OnBsdWdp
bk5lZWRzRXhlY3V0YWJsZUhlYXAoY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYgcGx1Z2luSW5mbykK
IHsKLSAgICBzdGF0aWMgYm9vbCBmb3JjZU5vbmV4ZWN1dGFibGVIZWFwRm9yUGx1Z2lucyA9IFtb
TlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6QCJGb3JjZU5v
bmV4ZWN1dGFibGVIZWFwRm9yUGx1Z2lucyJdOworICAgIHN0YXRpYyBjb25zdCBib29sIGZvcmNl
Tm9uZXhlY3V0YWJsZUhlYXBGb3JQbHVnaW5zID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVz
ZXJEZWZhdWx0c10gYm9vbEZvcktleTpAIkZvcmNlTm9uZXhlY3V0YWJsZUhlYXBGb3JQbHVnaW5z
Il07CiAgICAgaWYgKGZvcmNlTm9uZXhlY3V0YWJsZUhlYXBGb3JQbHVnaW5zKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgCkBAIC00NzMsMTMgKzQ3MywxMyBAQCB2b2lkIFBsdWdpblByb2Nl
c3NQcm94eTo6b3BlbkZpbGUoY29uc3QgU3RyaW5nJiBmdWxsUGF0aCwgYm9vbCYgcmVzdWx0KQog
CiBpbnQgcGx1Z2luUHJvY2Vzc0xhdGVuY3lRT1MoKQogewotICAgIHN0YXRpYyBpbnQgcW9zID0g
W1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gaW50ZWdlckZvcktleTpAIldl
YktpdFBsdWdpblByb2Nlc3NMYXRlbmN5UU9TIl07CisgICAgc3RhdGljIGNvbnN0IGludCBxb3Mg
PSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBpbnRlZ2VyRm9yS2V5OkAi
V2ViS2l0UGx1Z2luUHJvY2Vzc0xhdGVuY3lRT1MiXTsKICAgICByZXR1cm4gcW9zOwogfQogCiBp
bnQgcGx1Z2luUHJvY2Vzc1Rocm91Z2hwdXRRT1MoKQogewotICAgIHN0YXRpYyBpbnQgcW9zID0g
W1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gaW50ZWdlckZvcktleTpAIldl
YktpdFBsdWdpblByb2Nlc3NUaHJvdWdocHV0UU9TIl07CisgICAgc3RhdGljIGNvbnN0IGludCBx
b3MgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBpbnRlZ2VyRm9yS2V5
OkAiV2ViS2l0UGx1Z2luUHJvY2Vzc1Rocm91Z2hwdXRRT1MiXTsKICAgICByZXR1cm4gcW9zOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5k
ZXggZTY4ODAxOGU0OGM5NTczNDk2YzQ1ZWJiZDg3MGYyZGU2ZDNiMDlhOS4uOTdmZjliZTY5MTY3
N2FjZGUwODFmNWM2ZGU1Y2U3ZjBlMTBmNTkwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDYzMywxNCArNDYzMywxNCBAQCB2b2lkIFdl
YlBhZ2U6OmRpZEZpbmlzaExvYWQoV2ViRnJhbWUqIGZyYW1lKQogfQogCiAjaWYgRU5BQkxFKFBS
SU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQykKLXN0YXRpYyBpbnQgcHJpbWFyeVNu
YXBzaG90dGVkUGx1Z0luU2VhcmNoTGltaXQgPSAzMDAwOwotc3RhdGljIGZsb2F0IHByaW1hcnlT
bmFwc2hvdHRlZFBsdWdJblNlYXJjaEJ1Y2tldFNpemUgPSAxLjE7Ci1zdGF0aWMgaW50IHByaW1h
cnlTbmFwc2hvdHRlZFBsdWdJbk1pbmltdW1XaWR0aCA9IDQwMDsKLXN0YXRpYyBpbnQgcHJpbWFy
eVNuYXBzaG90dGVkUGx1Z0luTWluaW11bUhlaWdodCA9IDMwMDsKLXN0YXRpYyB1bnNpZ25lZCBt
YXhQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5EZXRlY3Rpb25BdHRlbXB0cyA9IDI7Ci1zdGF0aWMg
aW50IGRlZmVycmVkUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luRGV0ZWN0aW9uRGVsYXkgPSAzOwot
c3RhdGljIGZsb2F0IG92ZXJsYXBwaW5nSW1hZ2VCb3VuZHNTY2FsZSA9IDEuMTsKLXN0YXRpYyBm
bG9hdCBtaW5pbXVtT3ZlcmxhcHBpbmdJbWFnZVRvUGx1Z2luRGltZW5zaW9uU2NhbGUgPSAuOTsK
K3N0YXRpYyBjb25zdCBpbnQgcHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luU2VhcmNoTGltaXQgPSAz
MDAwOworc3RhdGljIGNvbnN0IGZsb2F0IHByaW1hcnlTbmFwc2hvdHRlZFBsdWdJblNlYXJjaEJ1
Y2tldFNpemUgPSAxLjE7CitzdGF0aWMgY29uc3QgaW50IHByaW1hcnlTbmFwc2hvdHRlZFBsdWdJ
bk1pbmltdW1XaWR0aCA9IDQwMDsKK3N0YXRpYyBjb25zdCBpbnQgcHJpbWFyeVNuYXBzaG90dGVk
UGx1Z0luTWluaW11bUhlaWdodCA9IDMwMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhQcmlt
YXJ5U25hcHNob3R0ZWRQbHVnSW5EZXRlY3Rpb25BdHRlbXB0cyA9IDI7CitzdGF0aWMgY29uc3Qg
aW50IGRlZmVycmVkUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luRGV0ZWN0aW9uRGVsYXkgPSAzOwor
c3RhdGljIGNvbnN0IGZsb2F0IG92ZXJsYXBwaW5nSW1hZ2VCb3VuZHNTY2FsZSA9IDEuMTsKK3N0
YXRpYyBjb25zdCBmbG9hdCBtaW5pbXVtT3ZlcmxhcHBpbmdJbWFnZVRvUGx1Z2luRGltZW5zaW9u
U2NhbGUgPSAuOTsKIAogI2lmIEVOQUJMRShQUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVS
SVNUSUMpCiB2b2lkIFdlYlBhZ2U6OmRldGVybWluZVByaW1hcnlTbmFwc2hvdHRlZFBsdWdJblRp
bWVyRmlyZWQoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253367</attachid>
            <date>2015-05-18 23:05:33 -0700</date>
            <delta_ts>2015-05-18 23:16:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145161-20150518230531.patch</filename>
            <type>text/plain</type>
            <size>41482</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0NTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcxZDkxNjliOGEwZmM2OTU2MmY4MThm
N2Q5YWU2NThiNGE2NDdkZjguLjVhM2U2Y2U2ZjlhNjQ0Y2M0ZTAyNWI0ODYzMjg4MTMzOTNiOWE0
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTUtMDUtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBNYXJrIHN0YXRpYyB2YXJpYWJsZXMgYXMgY29uc3Qgd2hl
biBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ1MTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3dGYvZHRvYS5jcHA6CisgICAgICAgIChXVEY6OnBvdzVtdWx0KToKKwogMjAxNS0wNS0x
NyAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRG8g
bm90IHVzZSBmYXN0TWFsbG9jR29vZFNpemUgYW55d2hlcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2MWYyNWFh
MzliN2E4NjdmZGYxNmU0ZTU4M2NiNGVjN2YyNWQzZmEwLi41ZTdmOTQ4MWZhNThmZmRkNDRmNDVi
MTcxMjY0ZTBkMzRkN2JkNjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODAgQEAKKzIwMTUtMDUt
MTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNYXJrIHN0YXRp
YyB2YXJpYWJsZXMgYXMgY29uc3Qgd2hlbiBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1MTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRp
YVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJj
ZUJ1ZmZlci5jcHA6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxFeGNlcHRpb24u
Y3BwOgorICAgICAgICAqIGRvbS9ET01Db3JlRXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvTmV0d29ya1Jlc291cmNlc0RhdGEuY3BwOgorICAgICAgICAqIGxvYWRlci9pY29uL0lj
b25EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1cmxGb3JMb2dnaW5nKToKKyAgICAg
ICAgKiBwYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBwYWdlL1BhZ2Uu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0lPUy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OmFwcGxpY2F0aW9uSXNBZFNoZWV0KToKKyAgICAgICAgKFdlYkNv
cmU6OmFwcGxpY2F0aW9uSXNNb2JpbGVNYWlsKToKKyAgICAgICAgKFdlYkNvcmU6OmFwcGxpY2F0
aW9uSXNNb2JpbGVTYWZhcmkpOgorICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25Jc0R1bXBS
ZW5kZXJUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OmFwcGxpY2F0aW9uSXNXZWJBcHApOgorICAg
ICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25Jc09rQ3VwaWQpOgorICAgICAgICAoV2ViQ29yZTo6
YXBwbGljYXRpb25Jc0ZhY2Vib29rKToKKyAgICAgICAgKFdlYkNvcmU6OmFwcGxpY2F0aW9uSXNF
cGljdXJpb3VzKToKKyAgICAgICAgKFdlYkNvcmU6OmFwcGxpY2F0aW9uSXNEYWlqaXNlbkRpY3Rp
b25hcnkpOgorICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25Jc05BU0FIRCk6CisgICAgICAg
IChXZWJDb3JlOjphcHBsaWNhdGlvbklzTUFTSCk6CisgICAgICAgIChXZWJDb3JlOjphcHBsaWNh
dGlvbklzVGhlRWNvbm9taXN0T25JUGhvbmUpOgorICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRp
b25Jc1dlYlByb2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25Jc0lCb29rc09u
SU9TKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGRWxldmF0aW9uLmNwcDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByb2Nlc3NJc1J1bm5pbmdQcm9wZXJ0eURlc2NyaXB0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6b3V0cHV0RGV2aWNlUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akMubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6dG9Db3JlVGV4dEZvbnRXZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6
dG9BcHBLaXRGb250V2VpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OnRvTlNGb250V2VpZ2h0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAgIChz
dXBwb3J0c1VJU3RhdGVUcmFuc2l0aW9uUHJvZ3Jlc3MpOgorICAgICAgICAoc3VwcG9ydHNFeHBh
bnNpb25UcmFuc2l0aW9uUHJvZ3Jlc3MpOgorICAgICAgICAoc3VwcG9ydHNDb250ZW50QXJlYVNj
cm9sbGVkSW5EaXJlY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVt
ZU1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViQ29yZU5TVVJMRXh0cmFzLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6ZGF0YUZvclVSTENvbXBvbmVudFR5cGUpOgorICAgICAgICAqIHBs
YXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2NrLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS90
ZXh0L2ljdS9VVGV4dFByb3ZpZGVyTGF0aW4xLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0
L2lvcy9Mb2NhbGl6ZWREYXRlQ2FjaGUubW06CisgICAgICAgIChXZWJDb3JlOjpMb2NhbGl6ZWRE
YXRlQ2FjaGU6OmNhbGN1bGF0ZU1heGltdW1XaWR0aCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckJsb2NrTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zs
b3c6Om1hdGNoZWRFbmRMaW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50
VHJhbnNsdWNlbnRCb3JkZXJTaWRlcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZyYW1l
QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRFeHBhbmRGcmFtZSk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHA6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRoZW1lSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6Z2V0SW5zZXRHcmFkaWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpnZXRTaGluZUdyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OmdldFNoYWRlR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q29udmV4R3JhZGllbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q29uY2F2ZUdyYWRpZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OmdldFNsaWRlclRyYWNrR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0UmVhZG9u
bHlTbGlkZXJUcmFja0dyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmdldFNsaWRlclRodW1i
T3BhcXVlUHJlc3NlZEdyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9T
OjpwYWludENoZWNrYm94RGVjb3JhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVJT1M6OnBhaW50UmFkaW9EZWNvcmF0aW9ucyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6dG9Gb250V2VpZ2h0KToKKyAgICAgICAg
KFdlYkNvcmU6OlRvcEdyYWRpZW50SW50ZXJwb2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Qm90
dG9tR3JhZGllbnRJbnRlcnBvbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluR3JhZGllbnRJ
bnRlcnBvbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFja0dyYWRpZW50SW50ZXJwb2xhdGUp
OgorCiAyMDE1LTA1LTE4ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT04oMTQyNTkwKTogU2Nyb2xsLXNuYXAgcG9pbnRzIGFyZSBpbXByb3Bl
cmx5IHNuYXBwaW5nIHRvIGVhcmxpZXIgaW5kZXggdmFsdWVzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODYxN2Vi
MTFmY2NkM2ViMTM2OGIwMDQ2YzE0Nzc1MDhmNGZjOWU0Ny4uYzQ5MmM4NTI4NmE2NzZlNjBkZGNl
NzFlNjEzYzcyNjE0ODNkZmRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE1LTA1
LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTWFyayBzdGF0
aWMgdmFyaWFibGVzIGFzIGNvbnN0IHdoZW4gcG9zc2libGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTE2MQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL01lc3NhZ2VFbmNvZGVy
LmNwcDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Mb2dnaW5nLmNwcDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6bmV0d29y
a1Byb2Nlc3NMYXRlbmN5UU9TKToKKyAgICAgICAgKFdlYktpdDo6bmV0d29ya1Byb2Nlc3NUaHJv
dWdocHV0UU9TKToKKyAgICAgICAgKFdlYktpdDo6d2ViUHJvY2Vzc0xhdGVuY3lRT1MpOgorICAg
ICAgICAoV2ViS2l0Ojp3ZWJQcm9jZXNzVGhyb3VnaHB1dFFPUyk6CisgICAgICAgICogVUlQcm9j
ZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktp
dDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpwbHVnaW5OZWVkc0V4ZWN1dGFibGVIZWFwKToKKyAgICAg
ICAgKFdlYktpdDo6cGx1Z2luUHJvY2Vzc0xhdGVuY3lRT1MpOgorICAgICAgICAoV2ViS2l0Ojpw
bHVnaW5Qcm9jZXNzVGhyb3VnaHB1dFFPUyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwOgorCiAyMDE1LTA1LTE4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxl
LmNvbT4KIAogICAgICAgICBGb2xsb3d1cCB0bzogTmV0d29ya2luZyBwcm9jZXNzIG9uIGlPUyBj
YW4gYmUgc3VzcGVuZGVkIGFuZCBuZXZlciBleGl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9kdG9hLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2R0b2EuY3BwCmluZGV4IDVhNTUzMjBlZjc2MTFi
NmJjMmZhMzRlM2YwMTEzYzRmM2NhMGE3NGYuLjQ4ZGUyNWIyMzVhMzIzZjJiZTIzODJkZDJmZjhm
MmQ0YzA3N2Y2YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2R0b2EuY3BwCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL2R0b2EuY3BwCkBAIC0zNjcsNyArMzY3LDcgQEAgc3RhdGljIGludCBwNXND
b3VudDsKIAogc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBwb3c1bXVsdChCaWdJbnQmIGIsIGlu
dCBrKQogewotICAgIHN0YXRpYyBpbnQgcDA1WzNdID0geyA1LCAyNSwgMTI1IH07CisgICAgc3Rh
dGljIGNvbnN0IGludCBwMDVbM10gPSB7IDUsIDI1LCAxMjUgfTsKIAogICAgIGlmIChpbnQgaSA9
IGsgJiAzKQogICAgICAgICBtdWx0YWRkKGIsIHAwNVtpIC0gMV0sIDApOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Np
b25NYW5hZ2VyLmNwcAppbmRleCBlZjM0ZGNjZTMwNWM1ZmJmMWJiZTgyZGZjOGI5YjJkZGFmZDAz
ZGVlLi40ZDJkNjEzOGU0ZmQwYmNhYjllM2Y4YmNhODFkOWJjYTYwNzU3YmQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRp
YVNlc3Npb25NYW5hZ2VyLmNwcApAQCAtMzQsNyArMzQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXN0YXRpYyBkb3VibGUgdGFza0RlbGF5SW50ZXJ2YWwgPSAxLjAgLyAxMC4wOworc3Rh
dGljIGNvbnN0IGRvdWJsZSB0YXNrRGVsYXlJbnRlcnZhbCA9IDEuMCAvIDEwLjA7CiAKIHN0cnVj
dCBDbGllbnRTdGF0ZSB7CiAgICAgZXhwbGljaXQgQ2xpZW50U3RhdGUoV2ViTWVkaWFTZXNzaW9u
TWFuYWdlckNsaWVudCYgY2xpZW50LCB1aW50NjRfdCBjb250ZXh0SWQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggMWI2
NjU3NzA5ZjkxMzM4MjBlMTllMGQ2MzhlNDhiOTFiYzI3MWE4OS4uNGYyOTEwNzBlOTNiMjdkYzVj
Zjk0NjViYTM2YmIxNjY1NTc5YTE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcApAQCAtNjIsNyArNjIsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBkb3VibGUgRXhwb25lbnRpYWxNb3ZpbmdBdmVyYWdl
Q29lZmZpY2llbnQgPSAwLjE7CitzdGF0aWMgY29uc3QgZG91YmxlIEV4cG9uZW50aWFsTW92aW5n
QXZlcmFnZUNvZWZmaWNpZW50ID0gMC4xOwogCiAvLyBBbGxvdyBoYXNDdXJyZW50VGltZSgpIHRv
IGJlIG9mZiBieSBhcyBtdWNoIGFzIHRoZSBsZW5ndGggb2YgYSAyNGZwcyB2aWRlbyBmcmFtZQog
c3RhdGljIGNvbnN0IE1lZGlhVGltZSYgY3VycmVudFRpbWVGdWRnZUZhY3RvcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTEV4Y2VwdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTEV4Y2VwdGlvbi5jcHAKaW5k
ZXggMGZjYjNhZWVkMzE3MGJhOTg4NGU0Mjg1ZTgxYjRiNmUxNmE3MzRjNC4uZTlmODgwZWRjYzQx
MTlhMTBjOTE3NzRlMmY4YWRiY2VjOGE4ZGNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMRXhjZXB0aW9uLmNwcApAQCAtMzMsNyArMzMsNyBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBzdHJ1Y3QgU1FMRXhjZXB0aW9uTmFtZURl
c2NyaXB0aW9uIHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgU1FMRXhjZXB0aW9uTmFtZURlc2NyaXB0
aW9uIHsKICAgICBjb25zdCBjaGFyKiBjb25zdCBuYW1lOwogICAgIGNvbnN0IGNoYXIqIGNvbnN0
IGRlc2NyaXB0aW9uOwogfSBzcWxFeGNlcHRpb25zW10gPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9N
Q29yZUV4Y2VwdGlvbi5jcHAKaW5kZXggNjBiOWQ2ZGYwMjU3NDgxYWFiMWEwOWZiMTFkMWU5NjZm
Y2MxNjI0OS4uMmNjYjRkNzdjYzAxNjhhYzZjM2E4NWM3NzcyNTM5NjdiNjc2NjlkZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmNwcApAQCAtMzMsNyArMzMsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBzdHJ1Y3QgQ29yZUV4Y2VwdGlvbiB7CitzdGF0
aWMgY29uc3Qgc3RydWN0IENvcmVFeGNlcHRpb24gewogICAgIGNvbnN0IGNoYXIqIGNvbnN0IG5h
bWU7CiAgICAgY29uc3QgY2hhciogY29uc3QgZGVzY3JpcHRpb247CiB9IGNvcmVFeGNlcHRpb25z
W10gPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvTmV0d29ya1Jlc291
cmNlc0RhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNE
YXRhLmNwcAppbmRleCA0MjUxNmNkNjZmMWRkYmIzNWUxMTBiNjMzMGVkOThlNmE5NjUyZmZmLi5h
N2YzMjJmOTk1MWQ2ZTJiMjI1YjhjYjc2NDZjODBmMDUyZGU4NDg5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvTmV0d29ya1Jlc291cmNlc0RhdGEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5jcHAKQEAgLTM3LDEwICsz
NywxMCBAQAogCiBuYW1lc3BhY2UgewogLy8gMTAwTUIKLXN0YXRpYyBzaXplX3QgbWF4aW11bVJl
c291cmNlc0NvbnRlbnRTaXplID0gMTAwICogMTAwMCAqIDEwMDA7CitzdGF0aWMgY29uc3Qgc2l6
ZV90IG1heGltdW1SZXNvdXJjZXNDb250ZW50U2l6ZSA9IDEwMCAqIDEwMDAgKiAxMDAwOwogCiAv
LyAxME1CCi1zdGF0aWMgc2l6ZV90IG1heGltdW1TaW5nbGVSZXNvdXJjZUNvbnRlbnRTaXplID0g
MTAgKiAxMDAwICogMTAwMDsKK3N0YXRpYyBjb25zdCBzaXplX3QgbWF4aW11bVNpbmdsZVJlc291
cmNlQ29udGVudFNpemUgPSAxMCAqIDEwMDAgKiAxMDAwOwogfQogCiB1c2luZyBuYW1lc3BhY2Ug
SW5zcGVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRh
dGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAK
aW5kZXggNmY1MzA0MjA3NDgyZTViNzE4MWE1ZjA1ZmYyZmUxMTA2NzVjN2I1Zi4uOGI0YmJlYTU0
ODk1MDhkNTM5YjQ3MGE1MWZjMzM4OTdhYTIyMDM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHN0YXRpYyBjb25zdCBp
bnQgbm90VXNlZEljb25FeHBpcmF0aW9uVGltZSA9IDYwKjYwKjI0KjMwOwogI2lmICFMT0dfRElT
QUJMRUQgfHwgIUVSUk9SX0RJU0FCTEVECiBzdGF0aWMgU3RyaW5nIHVybEZvckxvZ2dpbmcoY29u
c3QgU3RyaW5nJiB1cmwpCiB7Ci0gICAgc3RhdGljIHVuc2lnbmVkIHVybFRydW5jYXRpb25MZW5n
dGggPSAxMjA7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVybFRydW5jYXRpb25MZW5ndGgg
PSAxMjA7CiAKICAgICBpZiAodXJsLmxlbmd0aCgpIDwgdXJsVHJ1bmNhdGlvbkxlbmd0aCkKICAg
ICAgICAgcmV0dXJuIHVybDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3Nj
cm9sbENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJv
bGxlci5jcHAKaW5kZXggYTY3NDE5YmEzNzQzNWY5ODA0YmUwZDM4ODU5NmU1MzgwZTM3YWE5OC4u
YjQ1MzIyMDg3NTE1OGRhNDc0MWQ5MzEyZmMzNDkzMWU3ZTZlYmM3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAKQEAgLTQyLDcgKzQyLDcgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gRGVsYXkgdGltZSBpbiBzZWNvbmQgZm9yIHN0YXJ0IGF1
dG9zY3JvbGwgaWYgcG9pbnRlciBpcyBpbiBib3JkZXIgZWRnZSBvZiBzY3JvbGxhYmxlIGVsZW1l
bnQuCi1zdGF0aWMgZG91YmxlIGF1dG9zY3JvbGxEZWxheSA9IDAuMjsKK3N0YXRpYyBjb25zdCBk
b3VibGUgYXV0b3Njcm9sbERlbGF5ID0gMC4yOwogCiAvLyBXaGVuIHRoZSBhdXRvc2Nyb2xsIG9y
IHRoZSBwYW5TY3JvbGwgaXMgdHJpZ2dlcmVkIHdoZW4gZG8gdGhlIHNjcm9sbCBldmVyeSAwLjA1
cyB0byBtYWtlIGl0IHNtb290aAogc3RhdGljIGNvbnN0IGRvdWJsZSBhdXRvc2Nyb2xsSW50ZXJ2
YWwgPSAwLjA1OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMTY0NzZhMzZjZGU3YmQzNmU4NWIwZTZi
NDE3ZTE2OGI0MmZkMDdhOS4uZWE0MzFlZDc3ODYzZThkOGE5NjgwMTI4OGRlOWY5MDFmMzQ5MTVh
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0zOTEsNyArMzkxLDcgQEAgc3RydWN0IFZpZXdNb2Rl
SW5mbyB7CiAgICAgUGFnZTo6Vmlld01vZGUgdHlwZTsKIH07CiBzdGF0aWMgY29uc3QgaW50IHZp
ZXdNb2RlTWFwU2l6ZSA9IDU7Ci1zdGF0aWMgVmlld01vZGVJbmZvIHZpZXdNb2RlTWFwW3ZpZXdN
b2RlTWFwU2l6ZV0gPSB7CitzdGF0aWMgY29uc3QgVmlld01vZGVJbmZvIHZpZXdNb2RlTWFwW3Zp
ZXdNb2RlTWFwU2l6ZV0gPSB7CiAgICAgeyJ3aW5kb3dlZCIsIFBhZ2U6OlZpZXdNb2RlV2luZG93
ZWR9LAogICAgIHsiZmxvYXRpbmciLCBQYWdlOjpWaWV3TW9kZUZsb2F0aW5nfSwKICAgICB7ImZ1
bGxzY3JlZW4iLCBQYWdlOjpWaWV3TW9kZUZ1bGxzY3JlZW59LApAQCAtMTQxNiw4ICsxNDE2LDgg
QEAgQ29sb3IgUGFnZTo6cGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yKCkgY29uc3QKIH0KIAog
Ly8gVGhlc2UgYXJlIG1hZ2ljYWwgY29uc3RhbnRzIHRoYXQgbWlnaHQgYmUgdHdlYWtlZCBvdmVy
IHRpbWUuCi1zdGF0aWMgZG91YmxlIGdNaW5pbXVtUGFpbnRlZEFyZWFSYXRpbyA9IDAuMTsKLXN0
YXRpYyBkb3VibGUgZ01heGltdW1VbnBhaW50ZWRBcmVhUmF0aW8gPSAwLjA0Oworc3RhdGljIGNv
bnN0IGRvdWJsZSBnTWluaW11bVBhaW50ZWRBcmVhUmF0aW8gPSAwLjE7CitzdGF0aWMgY29uc3Qg
ZG91YmxlIGdNYXhpbXVtVW5wYWludGVkQXJlYVJhdGlvID0gMC4wNDsKIAogYm9vbCBQYWdlOjpp
c0NvdW50aW5nUmVsZXZhbnRSZXBhaW50ZWRPYmplY3RzKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0lPUy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0lPUy5tbQpp
bmRleCA0ODU2NjUxNGRlNTQ4YzI1Zjc3ZTRlYWVkZTJhYWRkYTAxZTMwNzU5Li5jYWFlZTg3ODc2
NzIwZWIxZDljMGU1Yjk2YzQwNjFiOWE1MWM4MmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NJT1MubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzSU9TLm1tCkBAIC0zMywxOSAr
MzMsMTkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBib29sIGFwcGxpY2F0aW9uSXNBZFNoZWV0
KCkKIHsKLSAgICBzdGF0aWMgYm9vbCBpc0FkU2hlZXQgPSBbW1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBidW5kbGVJZGVudGlmaWVyXSBpc0VxdWFsVG9TdHJpbmc6QCJjb20uYXBwbGUuQWRTaGVldFBo
b25lIl07CisgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNBZFNoZWV0ID0gW1tbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAiY29tLmFwcGxlLkFk
U2hlZXRQaG9uZSJdOwogICAgIHJldHVybiBpc0FkU2hlZXQ7CiB9CiAKIGJvb2wgYXBwbGljYXRp
b25Jc01vYmlsZU1haWwoKQogewotICAgIHN0YXRpYyBib29sIGlzTW9iaWxlTWFpbCA9IFtbW05T
QnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNv
bS5hcHBsZS5tb2JpbGVtYWlsIl07CisgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNNb2JpbGVNYWls
ID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3Ry
aW5nOkAiY29tLmFwcGxlLm1vYmlsZW1haWwiXTsKICAgICByZXR1cm4gaXNNb2JpbGVNYWlsOwog
fQogCiBib29sIGFwcGxpY2F0aW9uSXNNb2JpbGVTYWZhcmkoKQogewotICAgIHN0YXRpYyBib29s
IGlzTW9iaWxlU2FmYXJpID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmll
cl0gaXNFcXVhbFRvU3RyaW5nOkAiY29tLmFwcGxlLm1vYmlsZXNhZmFyaSJdOworICAgIHN0YXRp
YyBjb25zdCBib29sIGlzTW9iaWxlU2FmYXJpID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVu
ZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAiY29tLmFwcGxlLm1vYmlsZXNhZmFyaSJd
OwogICAgIHJldHVybiBpc01vYmlsZVNhZmFyaTsKIH0KIApAQCAtNTMsNyArNTMsNyBAQCBib29s
IGFwcGxpY2F0aW9uSXNEdW1wUmVuZGVyVHJlZSgpCiB7CiAgICAgLy8gV2UgdXNlIGEgcHJlZml4
IG1hdGNoIGluc3RlYWQgb2Ygc3RyaWN0IGVxdWFsaXR5IHNpbmNlIExheW91dFRlc3RSZWxheSBt
YXkgbGF1bmNoIG11bHRpcGxlIGluc3RhbmNlcyBvZgogICAgIC8vIER1bXBSZW5kZXJUcmVlIHdo
ZXJlIHRoZSBidW5kbGUgaWRlbnRpZmllciBvZiBlYWNoIGluc3RhbmNlIGhhcyBhIHVuaXF1ZSBz
dWZmaXguCi0gICAgc3RhdGljIGJvb2wgaXNEdW1wUmVuZGVyVHJlZSA9IFtbW05TQnVuZGxlIG1h
aW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGhhc1ByZWZpeDpAIm9yZy53ZWJraXQuRHVtcFJl
bmRlclRyZWUiXTsgLy8gZS5nLiBvcmcud2Via2l0LkR1bXBSZW5kZXJUcmVlMAorICAgIHN0YXRp
YyBjb25zdCBib29sIGlzRHVtcFJlbmRlclRyZWUgPSBbW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBi
dW5kbGVJZGVudGlmaWVyXSBoYXNQcmVmaXg6QCJvcmcud2Via2l0LkR1bXBSZW5kZXJUcmVlIl07
IC8vIGUuZy4gb3JnLndlYmtpdC5EdW1wUmVuZGVyVHJlZTAKICAgICByZXR1cm4gaXNEdW1wUmVu
ZGVyVHJlZTsKIH0KIApAQCAtNjUsNDMgKzY1LDQzIEBAIGJvb2wgYXBwbGljYXRpb25Jc01vYmls
ZVN0b3JlKCkKIAogYm9vbCBhcHBsaWNhdGlvbklzV2ViQXBwKCkKIHsKLSAgICBzdGF0aWMgYm9v
bCBpc1dlYkFwcCA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlz
RXF1YWxUb1N0cmluZzpAImNvbS5hcHBsZS53ZWJhcHAiXTsKKyAgICBzdGF0aWMgY29uc3QgYm9v
bCBpc1dlYkFwcCA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlz
RXF1YWxUb1N0cmluZzpAImNvbS5hcHBsZS53ZWJhcHAiXTsKICAgICByZXR1cm4gaXNXZWJBcHA7
CiB9CiAKIGJvb2wgYXBwbGljYXRpb25Jc09rQ3VwaWQoKQogewotICAgIHN0YXRpYyBib29sIGlz
T2tDdXBpZCA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1
YWxUb1N0cmluZzpAImNvbS5va2N1cGlkLmFwcCJdOworICAgIHN0YXRpYyBjb25zdCBib29sIGlz
T2tDdXBpZCA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1
YWxUb1N0cmluZzpAImNvbS5va2N1cGlkLmFwcCJdOwogICAgIHJldHVybiBpc09rQ3VwaWQ7CiB9
CiAKIGJvb2wgYXBwbGljYXRpb25Jc0ZhY2Vib29rKCkKIHsKLSAgICBzdGF0aWMgYm9vbCBpc0Zh
Y2Vib29rID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVh
bFRvU3RyaW5nOkAiY29tLmZhY2Vib29rLkZhY2Vib29rIl07CisgICAgc3RhdGljIGNvbnN0IGJv
b2wgaXNGYWNlYm9vayA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJd
IGlzRXF1YWxUb1N0cmluZzpAImNvbS5mYWNlYm9vay5GYWNlYm9vayJdOwogICAgIHJldHVybiBp
c0ZhY2Vib29rOwogfQogCiBib29sIGFwcGxpY2F0aW9uSXNFcGljdXJpb3VzKCkKIHsKLSAgICBz
dGF0aWMgYm9vbCBpc0VwaWN1cmlvdXMgPSBbW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJ
ZGVudGlmaWVyXSBpc0VxdWFsVG9TdHJpbmc6QCJjb20uY29uZGVuZXQuRXBpY3VyaW91cyJdOwor
ICAgIHN0YXRpYyBjb25zdCBib29sIGlzRXBpY3VyaW91cyA9IFtbW05TQnVuZGxlIG1haW5CdW5k
bGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5jb25kZW5ldC5FcGlj
dXJpb3VzIl07CiAgICAgcmV0dXJuIGlzRXBpY3VyaW91czsKIH0KIAogYm9vbCBhcHBsaWNhdGlv
bklzRGFpamlzZW5EaWN0aW9uYXJ5KCkKIHsKLSAgICBzdGF0aWMgYm9vbCBpc0RhaWppc2VuRGlj
dGlvbmFyeSA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1
YWxUb1N0cmluZzpAImpwLmNvLnNob2dha3VrYW4uZGFpamlzZW4yMDA5aSJdOworICAgIHN0YXRp
YyBjb25zdCBib29sIGlzRGFpamlzZW5EaWN0aW9uYXJ5ID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRs
ZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAianAuY28uc2hvZ2FrdWthbi5k
YWlqaXNlbjIwMDlpIl07CiAgICAgcmV0dXJuIGlzRGFpamlzZW5EaWN0aW9uYXJ5OwogfQogCiBi
b29sIGFwcGxpY2F0aW9uSXNOQVNBSEQoKQogewotICAgIHN0YXRpYyBib29sIGlzTkFTQUhEID0g
W1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5n
OkAiZ292Lm5hc2EuTkFTQUhEIl07CisgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNOQVNBSEQgPSBb
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXSBpc0VxdWFsVG9TdHJpbmc6
QCJnb3YubmFzYS5OQVNBSEQiXTsKICAgICByZXR1cm4gaXNOQVNBSEQ7CiB9CiAKIGJvb2wgYXBw
bGljYXRpb25Jc01BU0goKQogewotICAgIHN0YXRpYyBib29sIGlzTUFTSCA9IFtbW05TQnVuZGxl
IG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5tYWdu
YXRlaW50ZXJhY3RpdmUubWFzaGdhbWUiXQorICAgIHN0YXRpYyBjb25zdCBib29sIGlzTUFTSCA9
IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmlu
ZzpAImNvbS5tYWduYXRlaW50ZXJhY3RpdmUubWFzaGdhbWUiXQogICAgICAgICB8fCBbW1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXSBpc0VxdWFsVG9TdHJpbmc6QCJjb20u
bWFnbmF0ZWludGVyYWN0aXZlLm1hc2hsaXRlZ2FtZSJdCiAgICAgICAgIHx8IFtbW05TQnVuZGxl
IG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5tYWdu
YXRlaW50ZXJhY3RpdmUubWFzaGNocmlzdG1hcyJdCiAgICAgICAgIHx8IFtbW05TQnVuZGxlIG1h
aW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5tYWduYXRl
aW50ZXJhY3RpdmUubWFzaGhhbGxvd2VlbiJdCkBAIC0xMTEsMjAgKzExMSwyMCBAQCBib29sIGFw
cGxpY2F0aW9uSXNNQVNIKCkKIAogYm9vbCBhcHBsaWNhdGlvbklzVGhlRWNvbm9taXN0T25JUGhv
bmUoKQogewotICAgIHN0YXRpYyBib29sIGlzVGhlRWNvbm9taXN0T25JUGhvbmUgPSBbW1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXSBpc0VxdWFsVG9TdHJpbmc6QCJjb20u
ZWNvbm9taXN0LmlwaG9uZSJdOworICAgIHN0YXRpYyBjb25zdCBib29sIGlzVGhlRWNvbm9taXN0
T25JUGhvbmUgPSBbW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXSBpc0Vx
dWFsVG9TdHJpbmc6QCJjb20uZWNvbm9taXN0LmlwaG9uZSJdOwogICAgIHJldHVybiBpc1RoZUVj
b25vbWlzdE9uSVBob25lOwogfQogCiAvLyBGSVhNRTogdGhpcyBuZWVkcyB0byBiZSBjaGFuZ2Vk
IHdoZW4gdGhlIFdlYlByb2Nlc3MgaXMgY2hhbmdlZCB0byBhbiBYUEMgc2VydmljZS4KIGJvb2wg
YXBwbGljYXRpb25Jc1dlYlByb2Nlc3MoKQogewotICAgIHN0YXRpYyBib29sIGlzV2ViUHJvY2Vz
cyA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0
cmluZzpAImNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudCJdIHx8IFtbW05T
QnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNv
bS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudCJdIHx8IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1
bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5hcHBsZS5XZWJQcm9jZXNzIl07
CisgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNXZWJQcm9jZXNzID0gW1tbTlNCdW5kbGUgbWFpbkJ1
bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAiY29tLmFwcGxlLldlYktp
dC5XZWJDb250ZW50LkRldmVsb3BtZW50Il0gfHwgW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVu
ZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAiY29tLmFwcGxlLldlYktpdC5XZWJDb250
ZW50Il0gfHwgW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVh
bFRvU3RyaW5nOkAiY29tLmFwcGxlLldlYlByb2Nlc3MiXTsKICAgICByZXR1cm4gaXNXZWJQcm9j
ZXNzOwogfQogCiBib29sIGFwcGxpY2F0aW9uSXNJQm9va3NPbklPUygpCiB7Ci0gICAgc3RhdGlj
IGJvb2wgaXNJQm9va3NPbklPUyA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50
aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5hcHBsZS5pQm9va3MiXTsKKyAgICBzdGF0aWMg
Y29uc3QgYm9vbCBpc0lCb29rc09uSU9TID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxl
SWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAiY29tLmFwcGxlLmlCb29rcyJdOwogICAgIHJl
dHVybiBpc0lCb29rc09uSU9TOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9IUlRGRWxldmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0hSVEZFbGV2YXRpb24uY3BwCmluZGV4IDNlNzc0Nzg1YTU4ZGZhM2YwNjk0MTUwZjNjODMx
YjBlODY0ZjdkN2MuLmQwZmQ0ZGUxNDIzZGVjMDY1YWFkMmVmZjMxNjBmMzhhMjFhNmVjOWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3BwCkBA
IC0yMDcsNyArMjA3LDcgQEAgYm9vbCBIUlRGRWxldmF0aW9uOjpjYWxjdWxhdGVLZXJuZWxzRm9y
QXppbXV0aEVsZXZhdGlvbihpbnQgYXppbXV0aCwgaW50IGVsZXZhdGkKIC8vIFRoZSByYW5nZSBv
ZiBlbGV2YXRpb25zIGZvciB0aGUgSVJDQU0gaW1wdWxzZSByZXNwb25zZXMgdmFyaWVzIGRlcGVu
ZGluZyBvbiBhemltdXRoLCBidXQgdGhlIG1pbmltdW0gZWxldmF0aW9uIGFwcGVhcnMgdG8gYWx3
YXlzIGJlIC00NS4KIC8vCiAvLyBIZXJlJ3MgaG93IGl0IGdvZXM6Ci1zdGF0aWMgaW50IG1heEVs
ZXZhdGlvbnNbXSA9IHsKK3N0YXRpYyBjb25zdCBpbnQgbWF4RWxldmF0aW9uc1tdID0gewogICAg
ICAgICAvLyAgQXppbXV0aAogICAgICAgICAvLwogICAgIDkwLCAvLyAwICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0hhcmR3YXJlTGlzdGVuZXJN
YWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVM
aXN0ZW5lck1hYy5jcHAKaW5kZXggYzI2OTU5OTcwNjk1NjFiYWZiYWFkZTYwNzRmMjA0YTc3MjY3
NzhhMi4uMGI0NGY1OTIxMzU3YTQ2MmUzNTE5ZGNhMmJmNGU1NGZlYmUyNTYzOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5l
ck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFy
ZHdhcmVMaXN0ZW5lck1hYy5jcHAKQEAgLTg5LDI1ICs4OSwyNSBAQCBzdGF0aWMgYm9vbCBjdXJy
ZW50RGV2aWNlU3VwcG9ydHNMb3dQb3dlckJ1ZmZlclNpemUoKQogCiBzdGF0aWMgY29uc3QgQXVk
aW9PYmplY3RQcm9wZXJ0eUFkZHJlc3MmIHByb2Nlc3NJc1J1bm5pbmdQcm9wZXJ0eURlc2NyaXB0
b3IoKQogewotICAgIHN0YXRpYyBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVzcyBwcm9jZXNzSXNS
dW5uaW5nUHJvcGVydHkgPSB7CisgICAgc3RhdGljIGNvbnN0IEF1ZGlvT2JqZWN0UHJvcGVydHlB
ZGRyZXNzIHByb2Nlc3NJc1J1bm5pbmdQcm9wZXJ0eSA9IHsKICAgICAgICAga0F1ZGlvSGFyZHdh
cmVQcm9wZXJ0eVByb2Nlc3NJc1J1bm5pbmcsCiAgICAgICAgIGtBdWRpb09iamVjdFByb3BlcnR5
U2NvcGVHbG9iYWwsCiAgICAgICAgIGtBdWRpb09iamVjdFByb3BlcnR5RWxlbWVudE1hc3Rlcgog
ICAgIH07CiAKICAgICByZXR1cm4gcHJvY2Vzc0lzUnVubmluZ1Byb3BlcnR5OwotfTsKK30KIAog
c3RhdGljIGNvbnN0IEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzJiBvdXRwdXREZXZpY2VQcm9w
ZXJ0eURlc2NyaXB0b3IoKQogewotICAgIHN0YXRpYyBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVz
cyBvdXRwdXREZXZpY2VQcm9wZXJ0eSA9IHsKKyAgICBzdGF0aWMgY29uc3QgQXVkaW9PYmplY3RQ
cm9wZXJ0eUFkZHJlc3Mgb3V0cHV0RGV2aWNlUHJvcGVydHkgPSB7CiAgICAgICAgIGtBdWRpb0hh
cmR3YXJlUHJvcGVydHlEZWZhdWx0T3V0cHV0RGV2aWNlLAogICAgICAgICBrQXVkaW9PYmplY3RQ
cm9wZXJ0eVNjb3BlR2xvYmFsLAogICAgICAgICBrQXVkaW9PYmplY3RQcm9wZXJ0eUVsZW1lbnRN
YXN0ZXIKICAgICB9OwogCiAgICAgcmV0dXJuIG91dHB1dERldmljZVByb3BlcnR5OwotfTsKK30K
IAogUmVmPEF1ZGlvSGFyZHdhcmVMaXN0ZW5lcj4gQXVkaW9IYXJkd2FyZUxpc3RlbmVyOjpjcmVh
dGUoQ2xpZW50JiBjbGllbnQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakMubW0KaW5kZXggYTM4MzM1Y2RiODUxNTIxYTE2M2QwOGRjZjlkOThkNTIz
NGM3NTNmNS4uODE1OWFmNjZmNzhkMGQ3YTQ1YTE5N2YzMDY3NGJiNThjNDk2ZDlhMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQpAQCAtNjcs
NyArNjcsNyBAQCBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTWVkaWFDaGFyYWN0
ZXJpc3RpY0F1ZGlibGUsIE5TU3RyaW5nICopCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3Rh
dGljIGRvdWJsZSBrUmluZ0J1ZmZlckR1cmF0aW9uID0gMTsKK3N0YXRpYyBjb25zdCBkb3VibGUg
a1JpbmdCdWZmZXJEdXJhdGlvbiA9IDE7CiAKIFJlZlB0cjxBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQz4gQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZShBVlBsYXllckl0ZW0gKml0
ZW0pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmNwcAppbmRleCBiNTQwNmVjNGM5ZTIyYmQwN2FkNzAxNjQyMmQ5Nzdk
NjhhOWJkYTEwLi5jNjk1MTk3MzI5MjQ1NmUzZmI3MDBiN2I4NjkzZjQ2NzNiNWI3NjA4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5jcHAKQEAgLTIwMzIsMTMgKzIwMzIsMTMgQEAgc3RhdGljIHZvaWQgc2V0TGF5ZXJE
ZWJ1Z0JvcmRlcihQbGF0Zm9ybUNBTGF5ZXImIGxheWVyLCBDb2xvciBib3JkZXJDb2xvciwgZmxv
YXQKICAgICBsYXllci5zZXRCb3JkZXJXaWR0aChib3JkZXJDb2xvci5pc1ZhbGlkKCkgPyBib3Jk
ZXJXaWR0aCA6IDApOwogfQogCi1zdGF0aWMgZmxvYXQgY29udGVudHNMYXllckJvcmRlcldpZHRo
ID0gNDsKK3N0YXRpYyBjb25zdCBmbG9hdCBjb250ZW50c0xheWVyQm9yZGVyV2lkdGggPSA0Owog
c3RhdGljIENvbG9yIGNvbnRlbnRzTGF5ZXJEZWJ1Z0JvcmRlckNvbG9yKGJvb2wgc2hvd2luZ0Jv
cmRlcnMpCiB7CiAgICAgcmV0dXJuIHNob3dpbmdCb3JkZXJzID8gQ29sb3IoMCwgMCwgMTI4LCAx
ODApIDogQ29sb3IoKTsKIH0KIAotc3RhdGljIGZsb2F0IGNsb25lTGF5ZXJCb3JkZXJXaWR0aCA9
IDI7CitzdGF0aWMgY29uc3QgZmxvYXQgY2xvbmVMYXllckJvcmRlcldpZHRoID0gMjsKIHN0YXRp
YyBDb2xvciBjbG9uZUxheWVyRGVidWdCb3JkZXJDb2xvcihib29sIHNob3dpbmdCb3JkZXJzKQog
ewogICAgIHJldHVybiBzaG93aW5nQm9yZGVycyA/IENvbG9yKDI1NSwgMTIyLCAyNTEpIDogQ29s
b3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9u
dENhY2hlTWFjLm1tCmluZGV4IDYzNWFkY2IzOGE0YmM2MWU0NjFlOGJmYmEwOWI4ZTYyMjMwMTYx
MTcuLjE0ZDIwYTI2MjdlYTIyM2NjYjcyMjIxODAyN2FjNWY4OWFjOTE5MGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQpA
QCAtMTU4LDcgKzE1OCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCByZW1lbWJlckRlc2lyZWRGYW1p
bHlUb0F2YWlsYWJsZUZhbWlseU1hcHBpbmcoTlNTdHJpbmcqIGRlc2lyCiAKIHN0YXRpYyB1aW50
MTZfdCB0b0NvcmVUZXh0Rm9udFdlaWdodChGb250V2VpZ2h0IGZvbnRXZWlnaHQpCiB7Ci0gICAg
c3RhdGljIGludCBjb3JlVGV4dEZvbnRXZWlnaHRzW10gPSB7CisgICAgc3RhdGljIGNvbnN0IGlu
dCBjb3JlVGV4dEZvbnRXZWlnaHRzW10gPSB7CiAgICAgICAgIDEwMCwgLy8gRm9udFdlaWdodDEw
MAogICAgICAgICAyMDAsIC8vIEZvbnRXZWlnaHQyMDAKICAgICAgICAgMzAwLCAvLyBGb250V2Vp
Z2h0MzAwCkBAIC0xOTAsNyArMTkwLDcgQEAgdm9pZCBGb250Q2FjaGU6OnNldEZvbnRXaGl0ZWxp
c3QoY29uc3QgVmVjdG9yPFN0cmluZz4mIGlucHV0V2hpdGVsaXN0KQogCiBzdGF0aWMgaW50IHRv
QXBwS2l0Rm9udFdlaWdodChGb250V2VpZ2h0IGZvbnRXZWlnaHQpCiB7Ci0gICAgc3RhdGljIGlu
dCBhcHBLaXRGb250V2VpZ2h0c1tdID0geworICAgIHN0YXRpYyBjb25zdCBpbnQgYXBwS2l0Rm9u
dFdlaWdodHNbXSA9IHsKICAgICAgICAgMiwgLy8gRm9udFdlaWdodDEwMAogICAgICAgICAzLCAv
LyBGb250V2VpZ2h0MjAwCiAgICAgICAgIDQsIC8vIEZvbnRXZWlnaHQzMDAKQEAgLTIwNyw3ICsy
MDcsNyBAQCBzdGF0aWMgaW50IHRvQXBwS2l0Rm9udFdlaWdodChGb250V2VpZ2h0IGZvbnRXZWln
aHQpCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKIHN0YXRp
YyBDR0Zsb2F0IHRvTlNGb250V2VpZ2h0KEZvbnRXZWlnaHQgZm9udFdlaWdodCkKIHsKLSAgICBz
dGF0aWMgQ0dGbG9hdCBuc0ZvbnRXZWlnaHRzW10gPSB7CisgICAgc3RhdGljIGNvbnN0IENHRmxv
YXQgbnNGb250V2VpZ2h0c1tdID0gewogICAgICAgICBOU0ZvbnRXZWlnaHRVbHRyYUxpZ2h0LAog
ICAgICAgICBOU0ZvbnRXZWlnaHRUaGluLAogICAgICAgICBOU0ZvbnRXZWlnaHRMaWdodCwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRl
eCBlMjRhNDA2NmVmYjA0Y2VlN2RiMjllNTZmZjYxMzBlZTBhYzMzMTA3Li43MjYzY2VjZTQ1MjNj
MmJmOTM4MDQ4YjFkZjI1ZGUxMThkZjg2YzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCkBAIC00NSwxOSArNDUsMTkgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiBzdGF0aWMgYm9vbCBzdXBwb3J0c1VJU3RhdGVUcmFuc2l0aW9u
UHJvZ3Jlc3MoKQogewogICAgIC8vIEZJWE1FOiBUaGlzIGlzIHRlbXBvcmFyeSB1bnRpbCBhbGwg
cGxhdGZvcm1zIHRoYXQgc3VwcG9ydCBTY3JvbGxiYXJQYWludGVyIHN1cHBvcnQgdGhpcyBwYXJ0
IG9mIHRoZSBBUEkuCi0gICAgc3RhdGljIGJvb2wgZ2xvYmFsU3VwcG9ydHNVSVN0YXRlVHJhbnNp
dGlvblByb2dyZXNzID0gW05TQ2xhc3NGcm9tU3RyaW5nKEAiTlNTY3JvbGxlckltcCIpIGluc3Rh
bmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3Rvcihtb3VzZUVudGVyZWRTY3JvbGxlcildOwor
ICAgIHN0YXRpYyBjb25zdCBib29sIGdsb2JhbFN1cHBvcnRzVUlTdGF0ZVRyYW5zaXRpb25Qcm9n
cmVzcyA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIk5TU2Nyb2xsZXJJbXAiKSBpbnN0YW5jZXNSZXNw
b25kVG9TZWxlY3RvcjpAc2VsZWN0b3IobW91c2VFbnRlcmVkU2Nyb2xsZXIpXTsKICAgICByZXR1
cm4gZ2xvYmFsU3VwcG9ydHNVSVN0YXRlVHJhbnNpdGlvblByb2dyZXNzOwogfQogCiBzdGF0aWMg
Ym9vbCBzdXBwb3J0c0V4cGFuc2lvblRyYW5zaXRpb25Qcm9ncmVzcygpCiB7Ci0gICAgc3RhdGlj
IGJvb2wgZ2xvYmFsU3VwcG9ydHNFeHBhbnNpb25UcmFuc2l0aW9uUHJvZ3Jlc3MgPSBbTlNDbGFz
c0Zyb21TdHJpbmcoQCJOU1Njcm9sbGVySW1wIikgaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6
QHNlbGVjdG9yKGV4cGFuc2lvblRyYW5zaXRpb25Qcm9ncmVzcyldOworICAgIHN0YXRpYyBjb25z
dCBib29sIGdsb2JhbFN1cHBvcnRzRXhwYW5zaW9uVHJhbnNpdGlvblByb2dyZXNzID0gW05TQ2xh
c3NGcm9tU3RyaW5nKEAiTlNTY3JvbGxlckltcCIpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9y
OkBzZWxlY3RvcihleHBhbnNpb25UcmFuc2l0aW9uUHJvZ3Jlc3MpXTsKICAgICByZXR1cm4gZ2xv
YmFsU3VwcG9ydHNFeHBhbnNpb25UcmFuc2l0aW9uUHJvZ3Jlc3M7CiB9CiAKIHN0YXRpYyBib29s
IHN1cHBvcnRzQ29udGVudEFyZWFTY3JvbGxlZEluRGlyZWN0aW9uKCkKIHsKLSAgICBzdGF0aWMg
Ym9vbCBnbG9iYWxTdXBwb3J0c0NvbnRlbnRBcmVhU2Nyb2xsZWRJbkRpcmVjdGlvbiA9IFtOU0Ns
YXNzRnJvbVN0cmluZyhAIk5TU2Nyb2xsZXJJbXBQYWlyIikgaW5zdGFuY2VzUmVzcG9uZFRvU2Vs
ZWN0b3I6QHNlbGVjdG9yKGNvbnRlbnRBcmVhU2Nyb2xsZWRJbkRpcmVjdGlvbjopXTsKKyAgICBz
dGF0aWMgY29uc3QgYm9vbCBnbG9iYWxTdXBwb3J0c0NvbnRlbnRBcmVhU2Nyb2xsZWRJbkRpcmVj
dGlvbiA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIk5TU2Nyb2xsZXJJbXBQYWlyIikgaW5zdGFuY2Vz
UmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKGNvbnRlbnRBcmVhU2Nyb2xsZWRJbkRpcmVjdGlv
bjopXTsKICAgICByZXR1cm4gZ2xvYmFsU3VwcG9ydHNDb250ZW50QXJlYVNjcm9sbGVkSW5EaXJl
Y3Rpb247CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3Jv
bGxiYXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJU
aGVtZU1hYy5tbQppbmRleCBhY2FhZDAyYWU2YTg0ZTZmZGEwMThiYjU0OWI2ODI1MGEyZWYyMGMw
Li42NmQ2MmY0MzMzNjY2YWNhYTc5NWM1YmY0ZTcyOTE5NGQyNjcxZTlmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCkBAIC0xMTksMTMg
KzExOSwxMyBAQCBTY3JvbGxiYXJUaGVtZSogU2Nyb2xsYmFyVGhlbWU6Om5hdGl2ZVRoZW1lKCkK
IH0KIAogLy8gRklYTUU6IEdldCB0aGVzZSBudW1iZXJzIGZyb20gQ29yZVVJLgotc3RhdGljIGlu
dCBjUmVhbEJ1dHRvbkxlbmd0aFtdID0geyAyOCwgMjEgfTsKLXN0YXRpYyBpbnQgY0J1dHRvbkhp
dEluc2V0W10gPSB7IDMsIDIgfTsKK3N0YXRpYyBjb25zdCBpbnQgY1JlYWxCdXR0b25MZW5ndGhb
XSA9IHsgMjgsIDIxIH07CitzdGF0aWMgY29uc3QgaW50IGNCdXR0b25IaXRJbnNldFtdID0geyAz
LCAyIH07CiAvLyBjUmVhbEJ1dHRvbkxlbmd0aCAtIGNCdXR0b25JbnNldAotc3RhdGljIGludCBj
QnV0dG9uTGVuZ3RoW10gPSB7IDE0LCAxMCB9Oworc3RhdGljIGNvbnN0IGludCBjQnV0dG9uTGVu
Z3RoW10gPSB7IDE0LCAxMCB9OwogCi1zdGF0aWMgaW50IGNPdXRlckJ1dHRvbkxlbmd0aFtdID0g
eyAxNiwgMTQgfTsgLy8gVGhlIG91dGVyIGJ1dHRvbiBpbiBhIGRvdWJsZSBidXR0b24gcGFpciBp
cyBhIGJpdCBiaWdnZXIuCi1zdGF0aWMgaW50IGNPdXRlckJ1dHRvbk92ZXJsYXAgPSAyOworc3Rh
dGljIGNvbnN0IGludCBjT3V0ZXJCdXR0b25MZW5ndGhbXSA9IHsgMTYsIDE0IH07IC8vIFRoZSBv
dXRlciBidXR0b24gaW4gYSBkb3VibGUgYnV0dG9uIHBhaXIgaXMgYSBiaXQgYmlnZ2VyLgorc3Rh
dGljIGNvbnN0IGludCBjT3V0ZXJCdXR0b25PdmVybGFwID0gMjsKIAogc3RhdGljIGZsb2F0IGdJ
bml0aWFsQnV0dG9uRGVsYXkgPSAwLjVmOwogc3RhdGljIGZsb2F0IGdBdXRvc2Nyb2xsQnV0dG9u
RGVsYXkgPSAwLjA1ZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9X
ZWJDb3JlTlNVUkxFeHRyYXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29y
ZU5TVVJMRXh0cmFzLm1tCmluZGV4IGVhMGY2NDcxNTY1YmVjYWQ0ODc3NDdkN2JkMWM1ZmY0NzI5
NGVkOTAuLjcyM2VhM2Q4MTUxYjJmOTIyYWU4MDBiMDllZTZjZmI5NzdjZmE1ZTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlTlNVUkxFeHRyYXMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVOU1VSTEV4dHJhcy5tbQpAQCAt
ODQwLDcgKzg0MCw3IEBAIHN0YXRpYyBCT09MIGhhc1F1ZXN0aW9uTWFya09ubHlRdWVyeVN0cmlu
ZyhOU1VSTCAqVVJMKQogCiBOU0RhdGEgKmRhdGFGb3JVUkxDb21wb25lbnRUeXBlKE5TVVJMICpV
UkwsIENGVVJMQ29tcG9uZW50VHlwZSBjb21wb25lbnRUeXBlKQogewotICAgIHN0YXRpYyBpbnQg
VVJMQ29tcG9uZW50VHlwZUJ1ZmZlckxlbmd0aCA9IDIwNDg7CisgICAgc3RhdGljIGNvbnN0IGlu
dCBVUkxDb21wb25lbnRUeXBlQnVmZmVyTGVuZ3RoID0gMjA0ODsKICAgICAKICAgICBVSW50OCBz
dGF0aWNBbGxCeXRlc0J1ZmZlcltVUkxDb21wb25lbnRUeXBlQnVmZmVyTGVuZ3RoXTsKICAgICBV
SW50OCAqYWxsQnl0ZXNCdWZmZXIgPSBzdGF0aWNBbGxCeXRlc0J1ZmZlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2NrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2NrLmNwcAppbmRleCA2
ZGU5MWNjYjgxOTIxMDQwYzA4NDc4YzFlZTU2NzdkZGU0Mzc0OTVkLi5iMmY2MGExY2M0MDVjNjdh
ZmQ4YTVmNzg0MzdiODllYTNjODI2NDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suY3BwCkBAIC0zMCw3ICszMCw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGludCBjU2Nyb2xsYmFyVGhpY2tuZXNzW10gPSB7
IDE1LCAxMSB9Oworc3RhdGljIGNvbnN0IGludCBjU2Nyb2xsYmFyVGhpY2tuZXNzW10gPSB7IDE1
LCAxMSB9OwogCiBJbnRSZWN0IFNjcm9sbGJhclRoZW1lTW9jazo6dHJhY2tSZWN0KFNjcm9sbGJh
clRoZW1lQ2xpZW50KiBzY3JvbGxiYXIsIGJvb2wpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L2ljdS9VVGV4dFByb3ZpZGVyTGF0aW4xLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvaWN1L1VUZXh0UHJvdmlkZXJMYXRpbjEuY3BwCmluZGV4IGQz
NDNhNjU4ZmFhMTdkZjk4ZTgwZTUxMDg5NGNkZDA1MWIyYjUzY2MuLjc0OGQyYTU0ZmFmOGYwNWE5
NzliOGE2ZmExNzcyNDQyNzMxNGIyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvaWN1L1VUZXh0UHJvdmlkZXJMYXRpbjEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvaWN1L1VUZXh0UHJvdmlkZXJMYXRpbjEuY3BwCkBAIC00MSw3ICs0MSw3
IEBAIHN0YXRpYyBpbnQ2NF90IHVUZXh0TGF0aW4xTWFwT2Zmc2V0VG9OYXRpdmUoY29uc3QgVVRl
eHQqKTsKIHN0YXRpYyBpbnQzMl90IHVUZXh0TGF0aW4xTWFwTmF0aXZlSW5kZXhUb1VURjE2KGNv
bnN0IFVUZXh0KiwgaW50NjRfdCk7CiBzdGF0aWMgdm9pZCB1VGV4dExhdGluMUNsb3NlKFVUZXh0
Kik7CiAKLXN0YXRpYyBzdHJ1Y3QgVVRleHRGdW5jcyB1VGV4dExhdGluMUZ1bmNzID0geworc3Rh
dGljIGNvbnN0IHN0cnVjdCBVVGV4dEZ1bmNzIHVUZXh0TGF0aW4xRnVuY3MgPSB7CiAgICAgc2l6
ZW9mKFVUZXh0RnVuY3MpLAogICAgIDAsCiAgICAgMCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvaW9zL0xvY2FsaXplZERhdGVDYWNoZS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvaW9zL0xvY2FsaXplZERhdGVDYWNoZS5tbQppbmRleCA1YzMwNWJl
NWQzMzJlZGM1OTQ4ZDBjMWE4MWYzNzQzYzQyZjBiNWMxLi44N2Y3NGUwMzUxOGVhMTVmYWRhYTVj
ZWQ3N2I4NTMzNjU3ZjU4ZTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L2lvcy9Mb2NhbGl6ZWREYXRlQ2FjaGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9pb3MvTG9jYWxpemVkRGF0ZUNhY2hlLm1tCkBAIC0xNjcsNyArMTY3LDcgQEAgZmxv
YXQgTG9jYWxpemVkRGF0ZUNhY2hlOjpjYWxjdWxhdGVNYXhpbXVtV2lkdGgoRGF0ZUNvbXBvbmVu
dHM6OlR5cGUgdHlwZSwgY29uc3QKICAgICBbY29tcG9uZW50cy5nZXQoKSBzZXRIb3VyOjIyXTsK
ICAgICBbY29tcG9uZW50cy5nZXQoKSBzZXRNaW51dGU6NDVdOwogCi0gICAgc3RhdGljIE5TVUlu
dGVnZXIgbnVtYmVyT2ZHcmVnb3JpYW5Nb250aHMgPSBbW2RhdGVGb3JtYXR0ZXIgbW9udGhTeW1i
b2xzXSBjb3VudF07CisgICAgc3RhdGljIGNvbnN0IE5TVUludGVnZXIgbnVtYmVyT2ZHcmVnb3Jp
YW5Nb250aHMgPSBbW2RhdGVGb3JtYXR0ZXIgbW9udGhTeW1ib2xzXSBjb3VudF07CiAgICAgQVNT
RVJUKG51bWJlck9mR3JlZ29yaWFuTW9udGhzID09IDEyKTsKIAogICAgIC8vIEZvciBlYWNoIG1v
bnRoIChpbiB0aGUgR3JlZ29yaWFuIENhbGVuZGFyKSwgZm9ybWF0IGEgZGF0ZSBhbmQgbWVhc3Vy
ZSBpdHMgbGVuZ3RoLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrTGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2tMaW5lTGF5b3V0LmNwcAppbmRleCBmYzY1MGM5YjQwY2Q3NDVlN2UwYjM3NDE1MzA5NGJkNjM5
MWIwMzEyLi41ZWMwNDcwYmFjYzhhZjhkNTY0YWU2ZGQ2NzdmMmMyNjM1NWY4ZTZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApA
QCAtMTg4OCw3ICsxODg4LDcgQEAgYm9vbCBSZW5kZXJCbG9ja0Zsb3c6Om1hdGNoZWRFbmRMaW5l
KExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGNvbnN0IElubGluZUIKIAogICAgIC8vIFRo
ZSBmaXJzdCBjbGVhbiBsaW5lIGRvZXNuJ3QgbWF0Y2gsIGJ1dCB3ZSBjYW4gY2hlY2sgYSBoYW5k
ZnVsIG9mIGZvbGxvd2luZyBsaW5lcyB0byB0cnkKICAgICAvLyB0byBtYXRjaCBiYWNrIHVwLgot
ICAgIHN0YXRpYyBpbnQgbnVtTGluZXMgPSA4OyAvLyBUaGUgIyBvZiBsaW5lcyB3ZSdyZSB3aWxs
aW5nIHRvIG1hdGNoIGFnYWluc3QuCisgICAgc3RhdGljIGNvbnN0IGludCBudW1MaW5lcyA9IDg7
IC8vIFRoZSAjIG9mIGxpbmVzIHdlJ3JlIHdpbGxpbmcgdG8gbWF0Y2ggYWdhaW5zdC4KICAgICBS
b290SW5saW5lQm94KiBvcmlnaW5hbEVuZExpbmUgPSBsYXlvdXRTdGF0ZS5lbmRMaW5lKCk7CiAg
ICAgUm9vdElubGluZUJveCogbGluZSA9IG9yaWdpbmFsRW5kTGluZTsKICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IG51bUxpbmVzICYmIGxpbmU7IGkrKywgbGluZSA9IGxpbmUtPm5leHRSb290Qm94
KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2Rl
bE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmpl
Y3QuY3BwCmluZGV4IGU0YjIzNWEzMzM2OGRlNmYxNjFiYzBlOTFmY2Y4ZWE3MTEzOTE2ZGUuLmY4
MGYyMDA0NTE1YmNiZThlZDg3NTlmYTgzMDM4NmYwYzRiYmNkZjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtMTY4Miw3ICsx
NjgyLDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRUcmFuc2x1Y2VudEJvcmRl
clNpZGVzKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3MKIHsKICAgICAvLyB3aWxsQmVPdmVyZHJh
d24gYXNzdW1lcyB0aGF0IHdlIGRyYXcgaW4gb3JkZXI6IHRvcCwgYm90dG9tLCBsZWZ0LCByaWdo
dC4KICAgICAvLyBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIEJveFNpZGUgZW51bSBvcmRlci4KLSAg
ICBzdGF0aWMgQm94U2lkZSBwYWludE9yZGVyW10gPSB7IEJTVG9wLCBCU0JvdHRvbSwgQlNMZWZ0
LCBCU1JpZ2h0IH07CisgICAgc3RhdGljIGNvbnN0IEJveFNpZGUgcGFpbnRPcmRlcltdID0geyBC
U1RvcCwgQlNCb3R0b20sIEJTTGVmdCwgQlNSaWdodCB9OwogCiAgICAgd2hpbGUgKGVkZ2VzVG9E
cmF3KSB7CiAgICAgICAgIC8vIEZpbmQgdW5kcmF3biBlZGdlcyBzaGFyaW5nIGEgY29sb3IuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVCYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuY3BwCmluZGV4IDkyMzJj
Y2RmYTllOGJjNTNlOTZiZDg5YmU5MTI1Zjk3ZjhkNmVmNWUuLjE5NGU3OGY1MmZjYTIwZjU3MWU2
MGExMzFmMDI3NzJlMjkyNDExN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGcmFtZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGcmFtZUJhc2UuY3BwCkBAIC00NCw3ICs0NCw3IEBAIGlubGluZSBib29sIHNob3VsZEV4cGFu
ZEZyYW1lKExheW91dFVuaXQgd2lkdGgsIExheW91dFVuaXQgaGVpZ2h0LCBib29sIGhhc0ZpeGVk
CiAgICAgaWYgKCF3aWR0aCB8fCAhaGVpZ2h0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
Ly8gUmVhbGx5IHNtYWxsIGZpeGVkIHNpemUgZnJhbWVzIGNhbid0IGJlIG1lYW50IHRvIGJlIHNj
cm9sbGVkIGFuZCBhcmUgdGhlcmUgcHJvYmFibHkgYnkgbWlzdGFrZS4gQXZvaWQgZXhwYW5kaW5n
LgotICAgIHN0YXRpYyB1bnNpZ25lZCBzbWFsbGVzdFVzZWZ1bGx5U2Nyb2xsYWJsZURpbWVuc2lv
biA9IDg7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNtYWxsZXN0VXNlZnVsbHlTY3JvbGxh
YmxlRGltZW5zaW9uID0gODsKICAgICBpZiAoaGFzRml4ZWRXaWR0aCAmJiB3aWR0aCA8IExheW91
dFVuaXQoc21hbGxlc3RVc2VmdWxseVNjcm9sbGFibGVEaW1lbnNpb24pKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgaWYgKGhhc0ZpeGVkSGVpZ2h0ICYmIGhlaWdodCA8IExheW91dFVuaXQo
c21hbGxlc3RVc2VmdWxseVNjcm9sbGFibGVEaW1lbnNpb24pKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAppbmRleCAzZmQ2OWVmNGJkYmY5YzRj
NWVhOWViMWVhNTgyZTkxNmRlMjMzNjFhLi5kZDVhZDVmZjM3ZWI5NmVlODdjYzczNmI5Y2M0ZDY2
OGM1YmUxYTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGVTZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVT
ZWN0aW9uLmNwcApAQCAtNDUsOCArNDUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOwogCiAvLyBUaG9zZSAyIHZhcmlhYmxlcyBhcmUgdXNlZCB0byBi
YWxhbmNlIHRoZSBtZW1vcnkgY29uc3VtcHRpb24gdnMgdGhlIHJlcGFpbnQgdGltZSBvbiBiaWcg
dGFibGVzLgotc3RhdGljIHVuc2lnbmVkIGdNaW5UYWJsZVNpemVUb1VzZUZhc3RQYWludFBhdGhX
aXRoT3ZlcmZsb3dpbmdDZWxsID0gNzUgKiA3NTsKLXN0YXRpYyBmbG9hdCBnTWF4QWxsb3dlZE92
ZXJmbG93aW5nQ2VsbFJhdGlvRm9yRmFzdFBhaW50UGF0aCA9IDAuMWY7CitzdGF0aWMgY29uc3Qg
dW5zaWduZWQgZ01pblRhYmxlU2l6ZVRvVXNlRmFzdFBhaW50UGF0aFdpdGhPdmVyZmxvd2luZ0Nl
bGwgPSA3NSAqIDc1Oworc3RhdGljIGNvbnN0IGZsb2F0IGdNYXhBbGxvd2VkT3ZlcmZsb3dpbmdD
ZWxsUmF0aW9Gb3JGYXN0UGFpbnRQYXRoID0gMC4xZjsKIAogc3RhdGljIGlubGluZSB2b2lkIHNl
dFJvd0xvZ2ljYWxIZWlnaHRUb1Jvd1N0eWxlTG9naWNhbEhlaWdodElmTm90UmVsYXRpdmUoUmVu
ZGVyVGFibGVTZWN0aW9uOjpSb3dTdHJ1Y3QmIHJvdykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUlPUy5tbQppbmRleCBjNWU3ODljMTU1MTU3NDcyMDhlYjFjZTBiODEx
MTBlMjI5ZjQ4ZTNmLi5mMjMyZGU0NTIyOGM4YTYxNjhlMzc3YTQ4NmI3N2UxYzFmMzJiYTE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCkBAIC0zNzcsOSAr
Mzc3LDkgQEAgYm9vbCBSZW5kZXJUaGVtZUlPUzo6cGFpbnRDaGVja2JveERlY29yYXRpb25zKGNv
bnN0IFJlbmRlck9iamVjdCYgYm94LCBjb25zdCBQYWkKICAgICBpZiAoaXNDaGVja2VkKGJveCkp
IHsKICAgICAgICAgZHJhd0F4aWFsR3JhZGllbnQoY2dDb250ZXh0LCBncmFkaWVudFdpdGhOYW1l
KENvbmNhdmVHcmFkaWVudCksIGNsaXAubG9jYXRpb24oKSwgRmxvYXRQb2ludChjbGlwLngoKSwg
Y2xpcC5tYXhZKCkpLCBMaW5lYXJJbnRlcnBvbGF0aW9uKTsKIAotICAgICAgICBzdGF0aWMgZmxv
YXQgdGhpY2tuZXNzUmF0aW8gPSAyIC8gMTQuMDsKLSAgICAgICAgc3RhdGljIENHU2l6ZSBzaXpl
ID0geyAxNC4wZiwgMTQuMGYgfTsKLSAgICAgICAgc3RhdGljIENHUG9pbnQgcGF0aFJhdGlvc1sz
XSA9IHsKKyAgICAgICAgc3RhdGljIGNvbnN0IGZsb2F0IHRoaWNrbmVzc1JhdGlvID0gMiAvIDE0
LjA7CisgICAgICAgIHN0YXRpYyBjb25zdCBDR1NpemUgc2l6ZSA9IHsgMTQuMGYsIDE0LjBmIH07
CisgICAgICAgIHN0YXRpYyBjb25zdCBDR1BvaW50IHBhdGhSYXRpb3NbM10gPSB7CiAgICAgICAg
ICAgICB7IDIuNWYgLyBzaXplLndpZHRoLCA3LjVmIC8gc2l6ZS5oZWlnaHQgfSwKICAgICAgICAg
ICAgIHsgNS41ZiAvIHNpemUud2lkdGgsIDEwLjVmIC8gc2l6ZS5oZWlnaHQgfSwKICAgICAgICAg
ICAgIHsgMTEuNWYgLyBzaXplLndpZHRoLCAyLjVmIC8gc2l6ZS5oZWlnaHQgfQpAQCAtNDY1LDcg
KzQ2NSw3IEBAIGJvb2wgUmVuZGVyVGhlbWVJT1M6OnBhaW50UmFkaW9EZWNvcmF0aW9ucyhjb25z
dCBSZW5kZXJPYmplY3QmIGJveCwgY29uc3QgUGFpbnRJCiAgICAgICAgIC8vIFRoZSBpbm5lciBj
aXJjbGUgaXMgNiAvIDE0IHRoZSBzaXplIG9mIHRoZSBzdXJyb3VuZGluZyBjaXJjbGUsIAogICAg
ICAgICAvLyBsZWF2aW5nIDggLyAxNCBhcm91bmQgaXQuICg4IC8gMTQpIC8gMiA9IDIgLyA3Lgog
Ci0gICAgICAgIHN0YXRpYyBmbG9hdCBJbm5lckludmVyc2VSYXRpbyA9IDIgLyA3LjA7CisgICAg
ICAgIHN0YXRpYyBjb25zdCBmbG9hdCBJbm5lckludmVyc2VSYXRpbyA9IDIgLyA3LjA7CiAKICAg
ICAgICAgY2xpcC5pbmZsYXRlWCgtY2xpcC53aWR0aCgpICogSW5uZXJJbnZlcnNlUmF0aW8pOwog
ICAgICAgICBjbGlwLmluZmxhdGVZKC1jbGlwLmhlaWdodCgpICogSW5uZXJJbnZlcnNlUmF0aW8p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IDExNDgx
YjljNjk2N2IwOWRlYjcwNGM5NzExZDJiOTU0NGUxNmFkMmMuLjJkMzU1YjUzNWJiODg5OTUzMzZj
Nzk1N2QxMWE5ODgzY2NkYWZhZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMubW0KQEAgLTMyNSw3ICszMjUsNyBAQCBzdGF0aWMgRm9udFdlaWdodCB0b0ZvbnRX
ZWlnaHQoTlNJbnRlZ2VyIGFwcEtpdEZvbnRXZWlnaHQpCiAgICAgZWxzZSBpZiAoYXBwS2l0Rm9u
dFdlaWdodCA8IDEpCiAgICAgICAgIGFwcEtpdEZvbnRXZWlnaHQgPSAxOwogCi0gICAgc3RhdGlj
IEZvbnRXZWlnaHQgZm9udFdlaWdodHNbXSA9IHsKKyAgICBzdGF0aWMgY29uc3QgRm9udFdlaWdo
dCBmb250V2VpZ2h0c1tdID0gewogICAgICAgICBGb250V2VpZ2h0MTAwLAogICAgICAgICBGb250
V2VpZ2h0MTAwLAogICAgICAgICBGb250V2VpZ2h0MjAwLApAQCAtMTE3MSw4ICsxMTcxLDggQEAg
Y29uc3QgaW50IHN0eWxlZFBvcHVwUGFkZGluZ0JvdHRvbSA9IDI7CiAKIHN0YXRpYyB2b2lkIFRv
cEdyYWRpZW50SW50ZXJwb2xhdGUodm9pZCosIGNvbnN0IENHRmxvYXQqIGluRGF0YSwgQ0dGbG9h
dCogb3V0RGF0YSkKIHsKLSAgICBzdGF0aWMgZmxvYXQgZGFya1s0XSA9IHsgMS4wZiwgMS4wZiwg
MS4wZiwgMC40ZiB9OwotICAgIHN0YXRpYyBmbG9hdCBsaWdodFs0XSA9IHsgMS4wZiwgMS4wZiwg
MS4wZiwgMC4xNWYgfTsKKyAgICBzdGF0aWMgY29uc3QgZmxvYXQgZGFya1s0XSA9IHsgMS4wZiwg
MS4wZiwgMS4wZiwgMC40ZiB9OworICAgIHN0YXRpYyBjb25zdCBmbG9hdCBsaWdodFs0XSA9IHsg
MS4wZiwgMS4wZiwgMS4wZiwgMC4xNWYgfTsKICAgICBmbG9hdCBhID0gaW5EYXRhWzBdOwogICAg
IGludCBpID0gMDsKICAgICBmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKQpAQCAtMTE4MSw4ICsxMTgx
LDggQEAgc3RhdGljIHZvaWQgVG9wR3JhZGllbnRJbnRlcnBvbGF0ZSh2b2lkKiwgY29uc3QgQ0dG
bG9hdCogaW5EYXRhLCBDR0Zsb2F0KiBvdXREYXQKIAogc3RhdGljIHZvaWQgQm90dG9tR3JhZGll
bnRJbnRlcnBvbGF0ZSh2b2lkKiwgY29uc3QgQ0dGbG9hdCogaW5EYXRhLCBDR0Zsb2F0KiBvdXRE
YXRhKQogewotICAgIHN0YXRpYyBmbG9hdCBkYXJrWzRdID0geyAxLjBmLCAxLjBmLCAxLjBmLCAw
LjBmIH07Ci0gICAgc3RhdGljIGZsb2F0IGxpZ2h0WzRdID0geyAxLjBmLCAxLjBmLCAxLjBmLCAw
LjNmIH07CisgICAgc3RhdGljIGNvbnN0IGZsb2F0IGRhcmtbNF0gPSB7IDEuMGYsIDEuMGYsIDEu
MGYsIDAuMGYgfTsKKyAgICBzdGF0aWMgY29uc3QgZmxvYXQgbGlnaHRbNF0gPSB7IDEuMGYsIDEu
MGYsIDEuMGYsIDAuM2YgfTsKICAgICBmbG9hdCBhID0gaW5EYXRhWzBdOwogICAgIGludCBpID0g
MDsKICAgICBmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKQpAQCAtMTE5MSw4ICsxMTkxLDggQEAgc3Rh
dGljIHZvaWQgQm90dG9tR3JhZGllbnRJbnRlcnBvbGF0ZSh2b2lkKiwgY29uc3QgQ0dGbG9hdCog
aW5EYXRhLCBDR0Zsb2F0KiBvdXQKIAogc3RhdGljIHZvaWQgTWFpbkdyYWRpZW50SW50ZXJwb2xh
dGUodm9pZCosIGNvbnN0IENHRmxvYXQqIGluRGF0YSwgQ0dGbG9hdCogb3V0RGF0YSkKIHsKLSAg
ICBzdGF0aWMgZmxvYXQgZGFya1s0XSA9IHsgMC4wZiwgMC4wZiwgMC4wZiwgMC4xNWYgfTsKLSAg
ICBzdGF0aWMgZmxvYXQgbGlnaHRbNF0gPSB7IDAuMGYsIDAuMGYsIDAuMGYsIDAuMGYgfTsKKyAg
ICBzdGF0aWMgY29uc3QgZmxvYXQgZGFya1s0XSA9IHsgMC4wZiwgMC4wZiwgMC4wZiwgMC4xNWYg
fTsKKyAgICBzdGF0aWMgY29uc3QgZmxvYXQgbGlnaHRbNF0gPSB7IDAuMGYsIDAuMGYsIDAuMGYs
IDAuMGYgfTsKICAgICBmbG9hdCBhID0gaW5EYXRhWzBdOwogICAgIGludCBpID0gMDsKICAgICBm
b3IgKGkgPSAwOyBpIDwgNDsgaSsrKQpAQCAtMTIwMSw4ICsxMjAxLDggQEAgc3RhdGljIHZvaWQg
TWFpbkdyYWRpZW50SW50ZXJwb2xhdGUodm9pZCosIGNvbnN0IENHRmxvYXQqIGluRGF0YSwgQ0dG
bG9hdCogb3V0RGEKIAogc3RhdGljIHZvaWQgVHJhY2tHcmFkaWVudEludGVycG9sYXRlKHZvaWQq
LCBjb25zdCBDR0Zsb2F0KiBpbkRhdGEsIENHRmxvYXQqIG91dERhdGEpCiB7Ci0gICAgc3RhdGlj
IGZsb2F0IGRhcmtbNF0gPSB7IDAuMGYsIDAuMGYsIDAuMGYsIDAuNjc4ZiB9OwotICAgIHN0YXRp
YyBmbG9hdCBsaWdodFs0XSA9IHsgMC4wZiwgMC4wZiwgMC4wZiwgMC4xM2YgfTsKKyAgICBzdGF0
aWMgY29uc3QgZmxvYXQgZGFya1s0XSA9IHsgMC4wZiwgMC4wZiwgMC4wZiwgMC42NzhmIH07Cisg
ICAgc3RhdGljIGNvbnN0IGZsb2F0IGxpZ2h0WzRdID0geyAwLjBmLCAwLjBmLCAwLjBmLCAwLjEz
ZiB9OwogICAgIGZsb2F0IGEgPSBpbkRhdGFbMF07CiAgICAgaW50IGkgPSAwOwogICAgIGZvciAo
aSA9IDA7IGkgPCA0OyBpKyspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9J
UEMvTWVzc2FnZUVuY29kZXIuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3Nh
Z2VFbmNvZGVyLmNwcAppbmRleCBjZjNhNjcxMzY2NTYxMmEyMTA1YmY2NmMwOWEwMGI3NmI2NWEw
NzhjLi43ZDA5NTg0NjVjNTA0YzczYjY3Nzc5MjE4ZmVhYzdjY2ZiNjJkMmY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZUVuY29kZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRW5jb2Rlci5jcHAKQEAgLTMzLDcgKzMz
LDcgQEAKIAogbmFtZXNwYWNlIElQQyB7CiAKLXN0YXRpYyB1aW50OF90IGRlZmF1bHRNZXNzYWdl
RmxhZ3MgPSAwOworc3RhdGljIGNvbnN0IHVpbnQ4X3QgZGVmYXVsdE1lc3NhZ2VGbGFncyA9IDA7
CiAKICNpZiBIQVZFKERUUkFDRSkKIE1lc3NhZ2VFbmNvZGVyOjpNZXNzYWdlRW5jb2RlcihTdHJp
bmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VO
YW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCBjb25zdCB1dWlkX3QmIFVVSUQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dnaW5nLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0xvZ2dpbmcuY3BwCmluZGV4IDAwZGExYTQwZjY5YThjNWFmZjcwMzZkYTJhZmY5
YTkyMDQ3M2YwMjIuLmE5MzEyMTNmMmQ2MTkyZDM2MThhYTFmMmI3MTM3Yzc5NzE5MjFhMGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0xvZ2dpbmcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0xvZ2dpbmcuY3BwCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogV0VCS0lUMl9MT0dfQ0hBTk5FTFMoREVGSU5FX0xPR19DSEFOTkVMKQogCiAj
ZGVmaW5lIExPR19DSEFOTkVMX0FERFJFU1MobmFtZSkgICZKT0lOX0xPR19DSEFOTkVMX1dJVEhf
UFJFRklYKExPR19DSEFOTkVMX1BSRUZJWCwgbmFtZSksCi1zdGF0aWMgV1RGTG9nQ2hhbm5lbCog
bG9nQ2hhbm5lbHNbXSA9IHsKK3N0YXRpYyBjb25zdCBXVEZMb2dDaGFubmVsKiBsb2dDaGFubmVs
c1tdID0gewogICAgIFdFQktJVDJfTE9HX0NIQU5ORUxTKExPR19DSEFOTkVMX0FERFJFU1MpCiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UG9vbENvY29hLm1tCmluZGV4IGQyOGRjY2Q1OWMyZTFkMGQ4ZmE5YTk1ODBlZjI0ZTQzMTE2OTg5
NzAuLjE3YmNkMjcyZTA2YzlmZmI4ODEyMjQ1YTQ5M2NjOWJlZDc2ZDUwMmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
CkBAIC00OTMsMjUgKzQ5MywyNSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpyZXNldEhTVFNIb3N0
c0FkZGVkQWZ0ZXJEYXRlKGRvdWJsZSBzdGFydERhdGVJbnRlcnZhbFNpbmNlMQogCiBpbnQgbmV0
d29ya1Byb2Nlc3NMYXRlbmN5UU9TKCkKIHsKLSAgICBzdGF0aWMgaW50IHFvcyA9IFtbTlNVc2Vy
RGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGludGVnZXJGb3JLZXk6QCJXZWJLaXROZXR3
b3JrUHJvY2Vzc0xhdGVuY3lRT1MiXTsKKyAgICBzdGF0aWMgY29uc3QgaW50IHFvcyA9IFtbTlNV
c2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGludGVnZXJGb3JLZXk6QCJXZWJLaXRO
ZXR3b3JrUHJvY2Vzc0xhdGVuY3lRT1MiXTsKICAgICByZXR1cm4gcW9zOwogfQogCiBpbnQgbmV0
d29ya1Byb2Nlc3NUaHJvdWdocHV0UU9TKCkKIHsKLSAgICBzdGF0aWMgaW50IHFvcyA9IFtbTlNV
c2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGludGVnZXJGb3JLZXk6QCJXZWJLaXRO
ZXR3b3JrUHJvY2Vzc1Rocm91Z2hwdXRRT1MiXTsKKyAgICBzdGF0aWMgY29uc3QgaW50IHFvcyA9
IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGludGVnZXJGb3JLZXk6QCJX
ZWJLaXROZXR3b3JrUHJvY2Vzc1Rocm91Z2hwdXRRT1MiXTsKICAgICByZXR1cm4gcW9zOwogfQog
CiBpbnQgd2ViUHJvY2Vzc0xhdGVuY3lRT1MoKQogewotICAgIHN0YXRpYyBpbnQgcW9zID0gW1tO
U1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gaW50ZWdlckZvcktleTpAIldlYktp
dFdlYlByb2Nlc3NMYXRlbmN5UU9TIl07CisgICAgc3RhdGljIGNvbnN0IGludCBxb3MgPSBbW05T
VXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBpbnRlZ2VyRm9yS2V5OkAiV2ViS2l0
V2ViUHJvY2Vzc0xhdGVuY3lRT1MiXTsKICAgICByZXR1cm4gcW9zOwogfQogCiBpbnQgd2ViUHJv
Y2Vzc1Rocm91Z2hwdXRRT1MoKQogewotICAgIHN0YXRpYyBpbnQgcW9zID0gW1tOU1VzZXJEZWZh
dWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gaW50ZWdlckZvcktleTpAIldlYktpdFdlYlByb2Nl
c3NUaHJvdWdocHV0UU9TIl07CisgICAgc3RhdGljIGNvbnN0IGludCBxb3MgPSBbW05TVXNlckRl
ZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBpbnRlZ2VyRm9yS2V5OkAiV2ViS2l0V2ViUHJv
Y2Vzc1Rocm91Z2hwdXRRT1MiXTsKICAgICByZXR1cm4gcW9zOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFj
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQ
cm94eU1hYy5tbQppbmRleCA5NDMxNmNmMjFmN2I5Y2I2ZmJjYWRjYmE2NDJhNWNlOTZmOTc3ZDk5
Li5hNWViNTFkNDZlZGU1MzZlOGQxM2VlYTZkNDhlODU4ZDI5YjhmYjFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9j
ZXNzUHJveHlNYWMubW0KQEAgLTYzLDcgKzYzLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAg
CiBib29sIFBsdWdpblByb2Nlc3NQcm94eTo6cGx1Z2luTmVlZHNFeGVjdXRhYmxlSGVhcChjb25z
dCBQbHVnaW5Nb2R1bGVJbmZvJiBwbHVnaW5JbmZvKQogewotICAgIHN0YXRpYyBib29sIGZvcmNl
Tm9uZXhlY3V0YWJsZUhlYXBGb3JQbHVnaW5zID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVz
ZXJEZWZhdWx0c10gYm9vbEZvcktleTpAIkZvcmNlTm9uZXhlY3V0YWJsZUhlYXBGb3JQbHVnaW5z
Il07CisgICAgc3RhdGljIGNvbnN0IGJvb2wgZm9yY2VOb25leGVjdXRhYmxlSGVhcEZvclBsdWdp
bnMgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OkAi
Rm9yY2VOb25leGVjdXRhYmxlSGVhcEZvclBsdWdpbnMiXTsKICAgICBpZiAoZm9yY2VOb25leGVj
dXRhYmxlSGVhcEZvclBsdWdpbnMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKQEAgLTQ3
MywxMyArNDczLDEzIEBAIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpvcGVuRmlsZShjb25zdCBT
dHJpbmcmIGZ1bGxQYXRoLCBib29sJiByZXN1bHQpCiAKIGludCBwbHVnaW5Qcm9jZXNzTGF0ZW5j
eVFPUygpCiB7Ci0gICAgc3RhdGljIGludCBxb3MgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJk
VXNlckRlZmF1bHRzXSBpbnRlZ2VyRm9yS2V5OkAiV2ViS2l0UGx1Z2luUHJvY2Vzc0xhdGVuY3lR
T1MiXTsKKyAgICBzdGF0aWMgY29uc3QgaW50IHFvcyA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRh
cmRVc2VyRGVmYXVsdHNdIGludGVnZXJGb3JLZXk6QCJXZWJLaXRQbHVnaW5Qcm9jZXNzTGF0ZW5j
eVFPUyJdOwogICAgIHJldHVybiBxb3M7CiB9CiAKIGludCBwbHVnaW5Qcm9jZXNzVGhyb3VnaHB1
dFFPUygpCiB7Ci0gICAgc3RhdGljIGludCBxb3MgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJk
VXNlckRlZmF1bHRzXSBpbnRlZ2VyRm9yS2V5OkAiV2ViS2l0UGx1Z2luUHJvY2Vzc1Rocm91Z2hw
dXRRT1MiXTsKKyAgICBzdGF0aWMgY29uc3QgaW50IHFvcyA9IFtbTlNVc2VyRGVmYXVsdHMgc3Rh
bmRhcmRVc2VyRGVmYXVsdHNdIGludGVnZXJGb3JLZXk6QCJXZWJLaXRQbHVnaW5Qcm9jZXNzVGhy
b3VnaHB1dFFPUyJdOwogICAgIHJldHVybiBxb3M7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBlNjg4MDE4ZTQ4Yzk1NzM0OTZjNDVl
YmJkODcwZjJkZTZkM2IwOWE5Li45N2ZmOWJlNjkxNjc3YWNkZTA4MWY1YzZkZTVjZTdmMGUxMGY1
OTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CkBAIC00NjMzLDE0ICs0NjMzLDE0IEBAIHZvaWQgV2ViUGFnZTo6ZGlkRmluaXNoTG9hZChXZWJG
cmFtZSogZnJhbWUpCiB9CiAKICNpZiBFTkFCTEUoUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5f
SEVVUklTVElDKQotc3RhdGljIGludCBwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5TZWFyY2hMaW1p
dCA9IDMwMDA7Ci1zdGF0aWMgZmxvYXQgcHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luU2VhcmNoQnVj
a2V0U2l6ZSA9IDEuMTsKLXN0YXRpYyBpbnQgcHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luTWluaW11
bVdpZHRoID0gNDAwOwotc3RhdGljIGludCBwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5NaW5pbXVt
SGVpZ2h0ID0gMzAwOwotc3RhdGljIHVuc2lnbmVkIG1heFByaW1hcnlTbmFwc2hvdHRlZFBsdWdJ
bkRldGVjdGlvbkF0dGVtcHRzID0gMjsKLXN0YXRpYyBpbnQgZGVmZXJyZWRQcmltYXJ5U25hcHNo
b3R0ZWRQbHVnSW5EZXRlY3Rpb25EZWxheSA9IDM7Ci1zdGF0aWMgZmxvYXQgb3ZlcmxhcHBpbmdJ
bWFnZUJvdW5kc1NjYWxlID0gMS4xOwotc3RhdGljIGZsb2F0IG1pbmltdW1PdmVybGFwcGluZ0lt
YWdlVG9QbHVnaW5EaW1lbnNpb25TY2FsZSA9IC45Oworc3RhdGljIGNvbnN0IGludCBwcmltYXJ5
U25hcHNob3R0ZWRQbHVnSW5TZWFyY2hMaW1pdCA9IDMwMDA7CitzdGF0aWMgY29uc3QgZmxvYXQg
cHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luU2VhcmNoQnVja2V0U2l6ZSA9IDEuMTsKK3N0YXRpYyBj
b25zdCBpbnQgcHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luTWluaW11bVdpZHRoID0gNDAwOworc3Rh
dGljIGNvbnN0IGludCBwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5NaW5pbXVtSGVpZ2h0ID0gMzAw
Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heFByaW1hcnlTbmFwc2hvdHRlZFBsdWdJbkRldGVj
dGlvbkF0dGVtcHRzID0gMjsKK3N0YXRpYyBjb25zdCBpbnQgZGVmZXJyZWRQcmltYXJ5U25hcHNo
b3R0ZWRQbHVnSW5EZXRlY3Rpb25EZWxheSA9IDM7CitzdGF0aWMgY29uc3QgZmxvYXQgb3Zlcmxh
cHBpbmdJbWFnZUJvdW5kc1NjYWxlID0gMS4xOworc3RhdGljIGNvbnN0IGZsb2F0IG1pbmltdW1P
dmVybGFwcGluZ0ltYWdlVG9QbHVnaW5EaW1lbnNpb25TY2FsZSA9IC45OwogCiAjaWYgRU5BQkxF
KFBSSU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQykKIHZvaWQgV2ViUGFnZTo6ZGV0
ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luVGltZXJGaXJlZCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253370</attachid>
            <date>2015-05-18 23:16:20 -0700</date>
            <delta_ts>2015-05-19 00:22:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145161-20150518231618.patch</filename>
            <type>text/plain</type>
            <size>40867</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0NTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcxZDkxNjliOGEwZmM2OTU2MmY4MThm
N2Q5YWU2NThiNGE2NDdkZjguLjVhM2U2Y2U2ZjlhNjQ0Y2M0ZTAyNWI0ODYzMjg4MTMzOTNiOWE0
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTUtMDUtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBNYXJrIHN0YXRpYyB2YXJpYWJsZXMgYXMgY29uc3Qgd2hl
biBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ1MTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3dGYvZHRvYS5jcHA6CisgICAgICAgIChXVEY6OnBvdzVtdWx0KToKKwogMjAxNS0wNS0x
NyAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRG8g
bm90IHVzZSBmYXN0TWFsbG9jR29vZFNpemUgYW55d2hlcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2MWYyNWFh
MzliN2E4NjdmZGYxNmU0ZTU4M2NiNGVjN2YyNWQzZmEwLi41ZTdmOTQ4MWZhNThmZmRkNDRmNDVi
MTcxMjY0ZTBkMzRkN2JkNjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODAgQEAKKzIwMTUtMDUt
MTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNYXJrIHN0YXRp
YyB2YXJpYWJsZXMgYXMgY29uc3Qgd2hlbiBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1MTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRp
YVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJj
ZUJ1ZmZlci5jcHA6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxFeGNlcHRpb24u
Y3BwOgorICAgICAgICAqIGRvbS9ET01Db3JlRXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvTmV0d29ya1Jlc291cmNlc0RhdGEuY3BwOgorICAgICAgICAqIGxvYWRlci9pY29uL0lj
b25EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1cmxGb3JMb2dnaW5nKToKKyAgICAg
ICAgKiBwYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBwYWdlL1BhZ2Uu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0lPUy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OmFwcGxpY2F0aW9uSXNBZFNoZWV0KToKKyAgICAgICAgKFdlYkNv
cmU6OmFwcGxpY2F0aW9uSXNNb2JpbGVNYWlsKToKKyAgICAgICAgKFdlYkNvcmU6OmFwcGxpY2F0
aW9uSXNNb2JpbGVTYWZhcmkpOgorICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25Jc0R1bXBS
ZW5kZXJUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OmFwcGxpY2F0aW9uSXNXZWJBcHApOgorICAg
ICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25Jc09rQ3VwaWQpOgorICAgICAgICAoV2ViQ29yZTo6
YXBwbGljYXRpb25Jc0ZhY2Vib29rKToKKyAgICAgICAgKFdlYkNvcmU6OmFwcGxpY2F0aW9uSXNF
cGljdXJpb3VzKToKKyAgICAgICAgKFdlYkNvcmU6OmFwcGxpY2F0aW9uSXNEYWlqaXNlbkRpY3Rp
b25hcnkpOgorICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25Jc05BU0FIRCk6CisgICAgICAg
IChXZWJDb3JlOjphcHBsaWNhdGlvbklzTUFTSCk6CisgICAgICAgIChXZWJDb3JlOjphcHBsaWNh
dGlvbklzVGhlRWNvbm9taXN0T25JUGhvbmUpOgorICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRp
b25Jc1dlYlByb2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25Jc0lCb29rc09u
SU9TKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGRWxldmF0aW9uLmNwcDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByb2Nlc3NJc1J1bm5pbmdQcm9wZXJ0eURlc2NyaXB0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6b3V0cHV0RGV2aWNlUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akMubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6dG9Db3JlVGV4dEZvbnRXZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6
dG9BcHBLaXRGb250V2VpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OnRvTlNGb250V2VpZ2h0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAgIChz
dXBwb3J0c1VJU3RhdGVUcmFuc2l0aW9uUHJvZ3Jlc3MpOgorICAgICAgICAoc3VwcG9ydHNFeHBh
bnNpb25UcmFuc2l0aW9uUHJvZ3Jlc3MpOgorICAgICAgICAoc3VwcG9ydHNDb250ZW50QXJlYVNj
cm9sbGVkSW5EaXJlY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVt
ZU1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViQ29yZU5TVVJMRXh0cmFzLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6ZGF0YUZvclVSTENvbXBvbmVudFR5cGUpOgorICAgICAgICAqIHBs
YXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2NrLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS90
ZXh0L2ljdS9VVGV4dFByb3ZpZGVyTGF0aW4xLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0
L2lvcy9Mb2NhbGl6ZWREYXRlQ2FjaGUubW06CisgICAgICAgIChXZWJDb3JlOjpMb2NhbGl6ZWRE
YXRlQ2FjaGU6OmNhbGN1bGF0ZU1heGltdW1XaWR0aCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckJsb2NrTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zs
b3c6Om1hdGNoZWRFbmRMaW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50
VHJhbnNsdWNlbnRCb3JkZXJTaWRlcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZyYW1l
QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRFeHBhbmRGcmFtZSk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHA6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRoZW1lSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6Z2V0SW5zZXRHcmFkaWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpnZXRTaGluZUdyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OmdldFNoYWRlR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q29udmV4R3JhZGllbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q29uY2F2ZUdyYWRpZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OmdldFNsaWRlclRyYWNrR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0UmVhZG9u
bHlTbGlkZXJUcmFja0dyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmdldFNsaWRlclRodW1i
T3BhcXVlUHJlc3NlZEdyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9T
OjpwYWludENoZWNrYm94RGVjb3JhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVJT1M6OnBhaW50UmFkaW9EZWNvcmF0aW9ucyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6dG9Gb250V2VpZ2h0KToKKyAgICAgICAg
KFdlYkNvcmU6OlRvcEdyYWRpZW50SW50ZXJwb2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Qm90
dG9tR3JhZGllbnRJbnRlcnBvbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluR3JhZGllbnRJ
bnRlcnBvbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFja0dyYWRpZW50SW50ZXJwb2xhdGUp
OgorCiAyMDE1LTA1LTE4ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT04oMTQyNTkwKTogU2Nyb2xsLXNuYXAgcG9pbnRzIGFyZSBpbXByb3Bl
cmx5IHNuYXBwaW5nIHRvIGVhcmxpZXIgaW5kZXggdmFsdWVzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODYxN2Vi
MTFmY2NkM2ViMTM2OGIwMDQ2YzE0Nzc1MDhmNGZjOWU0Ny4uZGVkOThkMDRjNTYyYjQzNDgyYWEz
ZGUwOGM5NmU1MmIzZDU1ODhiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE1LTA1
LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTWFyayBzdGF0
aWMgdmFyaWFibGVzIGFzIGNvbnN0IHdoZW4gcG9zc2libGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTE2MQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL01lc3NhZ2VFbmNvZGVy
LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6bmV0d29ya1Byb2Nlc3NMYXRlbmN5UU9TKToKKyAgICAgICAgKFdl
YktpdDo6bmV0d29ya1Byb2Nlc3NUaHJvdWdocHV0UU9TKToKKyAgICAgICAgKFdlYktpdDo6d2Vi
UHJvY2Vzc0xhdGVuY3lRT1MpOgorICAgICAgICAoV2ViS2l0Ojp3ZWJQcm9jZXNzVGhyb3VnaHB1
dFFPUyk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94
eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpwbHVnaW5OZWVk
c0V4ZWN1dGFibGVIZWFwKToKKyAgICAgICAgKFdlYktpdDo6cGx1Z2luUHJvY2Vzc0xhdGVuY3lR
T1MpOgorICAgICAgICAoV2ViS2l0OjpwbHVnaW5Qcm9jZXNzVGhyb3VnaHB1dFFPUyk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorCiAyMDE1LTA1LTE4ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBGb2xsb3d1cCB0bzogTmV0
d29ya2luZyBwcm9jZXNzIG9uIGlPUyBjYW4gYmUgc3VzcGVuZGVkIGFuZCBuZXZlciBleGl0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9kdG9hLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2R0b2Eu
Y3BwCmluZGV4IDVhNTUzMjBlZjc2MTFiNmJjMmZhMzRlM2YwMTEzYzRmM2NhMGE3NGYuLjQ4ZGUy
NWIyMzVhMzIzZjJiZTIzODJkZDJmZjhmMmQ0YzA3N2Y2YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL2R0b2EuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2R0b2EuY3BwCkBAIC0zNjcsNyAr
MzY3LDcgQEAgc3RhdGljIGludCBwNXNDb3VudDsKIAogc3RhdGljIEFMV0FZU19JTkxJTkUgdm9p
ZCBwb3c1bXVsdChCaWdJbnQmIGIsIGludCBrKQogewotICAgIHN0YXRpYyBpbnQgcDA1WzNdID0g
eyA1LCAyNSwgMTI1IH07CisgICAgc3RhdGljIGNvbnN0IGludCBwMDVbM10gPSB7IDUsIDI1LCAx
MjUgfTsKIAogICAgIGlmIChpbnQgaSA9IGsgJiAzKQogICAgICAgICBtdWx0YWRkKGIsIHAwNVtp
IC0gMV0sIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAppbmRleCBlZjM0ZGNjZTMwNWM1
ZmJmMWJiZTgyZGZjOGI5YjJkZGFmZDAzZGVlLi40ZDJkNjEzOGU0ZmQwYmNhYjllM2Y4YmNhODFk
OWJjYTYwNzU3YmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcApAQCAtMzQsNyArMzQs
NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBkb3VibGUgdGFza0RlbGF5SW50
ZXJ2YWwgPSAxLjAgLyAxMC4wOworc3RhdGljIGNvbnN0IGRvdWJsZSB0YXNrRGVsYXlJbnRlcnZh
bCA9IDEuMCAvIDEwLjA7CiAKIHN0cnVjdCBDbGllbnRTdGF0ZSB7CiAgICAgZXhwbGljaXQgQ2xp
ZW50U3RhdGUoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYgY2xpZW50LCB1aW50NjRfdCBj
b250ZXh0SWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNl
L1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1Nv
dXJjZUJ1ZmZlci5jcHAKaW5kZXggMWI2NjU3NzA5ZjkxMzM4MjBlMTllMGQ2MzhlNDhiOTFiYzI3
MWE4OS4uNGYyOTEwNzBlOTNiMjdkYzVjZjk0NjViYTM2YmIxNjY1NTc5YTE5YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcApA
QCAtNjIsNyArNjIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBkb3VibGUg
RXhwb25lbnRpYWxNb3ZpbmdBdmVyYWdlQ29lZmZpY2llbnQgPSAwLjE7CitzdGF0aWMgY29uc3Qg
ZG91YmxlIEV4cG9uZW50aWFsTW92aW5nQXZlcmFnZUNvZWZmaWNpZW50ID0gMC4xOwogCiAvLyBB
bGxvdyBoYXNDdXJyZW50VGltZSgpIHRvIGJlIG9mZiBieSBhcyBtdWNoIGFzIHRoZSBsZW5ndGgg
b2YgYSAyNGZwcyB2aWRlbyBmcmFtZQogc3RhdGljIGNvbnN0IE1lZGlhVGltZSYgY3VycmVudFRp
bWVGdWRnZUZhY3RvcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL1NRTEV4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL1NRTEV4Y2VwdGlvbi5jcHAKaW5kZXggMGZjYjNhZWVkMzE3MGJhOTg4NGU0Mjg1ZTgxYjRi
NmUxNmE3MzRjNC4uZTlmODgwZWRjYzQxMTlhMTBjOTE3NzRlMmY4YWRiY2VjOGE4ZGNkNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxFeGNlcHRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMRXhjZXB0aW9u
LmNwcApAQCAtMzMsNyArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBz
dHJ1Y3QgU1FMRXhjZXB0aW9uTmFtZURlc2NyaXB0aW9uIHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg
U1FMRXhjZXB0aW9uTmFtZURlc2NyaXB0aW9uIHsKICAgICBjb25zdCBjaGFyKiBjb25zdCBuYW1l
OwogICAgIGNvbnN0IGNoYXIqIGNvbnN0IGRlc2NyaXB0aW9uOwogfSBzcWxFeGNlcHRpb25zW10g
PSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5jcHAKaW5kZXggNjBiOWQ2ZGYw
MjU3NDgxYWFiMWEwOWZiMTFkMWU5NjZmY2MxNjI0OS4uMmNjYjRkNzdjYzAxNjhhYzZjM2E4NWM3
NzcyNTM5NjdiNjc2NjlkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUNvcmVF
eGNlcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmNw
cApAQCAtMzMsNyArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBzdHJ1
Y3QgQ29yZUV4Y2VwdGlvbiB7CitzdGF0aWMgY29uc3Qgc3RydWN0IENvcmVFeGNlcHRpb24gewog
ICAgIGNvbnN0IGNoYXIqIGNvbnN0IG5hbWU7CiAgICAgY29uc3QgY2hhciogY29uc3QgZGVzY3Jp
cHRpb247CiB9IGNvcmVFeGNlcHRpb25zW10gPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvTmV0d29ya1Jlc291cmNlc0RhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRhLmNwcAppbmRleCA0MjUxNmNkNjZmMWRkYmIzNWUx
MTBiNjMzMGVkOThlNmE5NjUyZmZmLi5hN2YzMjJmOTk1MWQ2ZTJiMjI1YjhjYjc2NDZjODBmMDUy
ZGU4NDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvTmV0d29ya1Jlc291
cmNlc0RhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVzb3Vy
Y2VzRGF0YS5jcHAKQEAgLTM3LDEwICszNywxMCBAQAogCiBuYW1lc3BhY2UgewogLy8gMTAwTUIK
LXN0YXRpYyBzaXplX3QgbWF4aW11bVJlc291cmNlc0NvbnRlbnRTaXplID0gMTAwICogMTAwMCAq
IDEwMDA7CitzdGF0aWMgY29uc3Qgc2l6ZV90IG1heGltdW1SZXNvdXJjZXNDb250ZW50U2l6ZSA9
IDEwMCAqIDEwMDAgKiAxMDAwOwogCiAvLyAxME1CCi1zdGF0aWMgc2l6ZV90IG1heGltdW1TaW5n
bGVSZXNvdXJjZUNvbnRlbnRTaXplID0gMTAgKiAxMDAwICogMTAwMDsKK3N0YXRpYyBjb25zdCBz
aXplX3QgbWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVudFNpemUgPSAxMCAqIDEwMDAgKiAxMDAw
OwogfQogCiB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9pY29uL0ljb25EYXRhYmFzZS5jcHAKaW5kZXggNmY1MzA0MjA3NDgyZTViNzE4MWE1ZjA1ZmYy
ZmUxMTA2NzVjN2I1Zi4uOGI0YmJlYTU0ODk1MDhkNTM5YjQ3MGE1MWZjMzM4OTdhYTIyMDM1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCkBAIC03OSw3
ICs3OSw3IEBAIHN0YXRpYyBjb25zdCBpbnQgbm90VXNlZEljb25FeHBpcmF0aW9uVGltZSA9IDYw
KjYwKjI0KjMwOwogI2lmICFMT0dfRElTQUJMRUQgfHwgIUVSUk9SX0RJU0FCTEVECiBzdGF0aWMg
U3RyaW5nIHVybEZvckxvZ2dpbmcoY29uc3QgU3RyaW5nJiB1cmwpCiB7Ci0gICAgc3RhdGljIHVu
c2lnbmVkIHVybFRydW5jYXRpb25MZW5ndGggPSAxMjA7CisgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIHVybFRydW5jYXRpb25MZW5ndGggPSAxMjA7CiAKICAgICBpZiAodXJsLmxlbmd0aCgpIDwg
dXJsVHJ1bmNhdGlvbkxlbmd0aCkKICAgICAgICAgcmV0dXJuIHVybDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAKaW5kZXggYTY3NDE5YmEzNzQzNWY5ODA0
YmUwZDM4ODU5NmU1MzgwZTM3YWE5OC4uYjQ1MzIyMDg3NTE1OGRhNDc0MWQ5MzEyZmMzNDkzMWU3
ZTZlYmM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5j
cHAKQEAgLTQyLDcgKzQyLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gRGVsYXkgdGlt
ZSBpbiBzZWNvbmQgZm9yIHN0YXJ0IGF1dG9zY3JvbGwgaWYgcG9pbnRlciBpcyBpbiBib3JkZXIg
ZWRnZSBvZiBzY3JvbGxhYmxlIGVsZW1lbnQuCi1zdGF0aWMgZG91YmxlIGF1dG9zY3JvbGxEZWxh
eSA9IDAuMjsKK3N0YXRpYyBjb25zdCBkb3VibGUgYXV0b3Njcm9sbERlbGF5ID0gMC4yOwogCiAv
LyBXaGVuIHRoZSBhdXRvc2Nyb2xsIG9yIHRoZSBwYW5TY3JvbGwgaXMgdHJpZ2dlcmVkIHdoZW4g
ZG8gdGhlIHNjcm9sbCBldmVyeSAwLjA1cyB0byBtYWtlIGl0IHNtb290aAogc3RhdGljIGNvbnN0
IGRvdWJsZSBhdXRvc2Nyb2xsSW50ZXJ2YWwgPSAwLjA1OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXgg
MTY0NzZhMzZjZGU3YmQzNmU4NWIwZTZiNDE3ZTE2OGI0MmZkMDdhOS4uZWE0MzFlZDc3ODYzZThk
OGE5NjgwMTI4OGRlOWY5MDFmMzQ5MTVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0zOTEsNyAr
MzkxLDcgQEAgc3RydWN0IFZpZXdNb2RlSW5mbyB7CiAgICAgUGFnZTo6Vmlld01vZGUgdHlwZTsK
IH07CiBzdGF0aWMgY29uc3QgaW50IHZpZXdNb2RlTWFwU2l6ZSA9IDU7Ci1zdGF0aWMgVmlld01v
ZGVJbmZvIHZpZXdNb2RlTWFwW3ZpZXdNb2RlTWFwU2l6ZV0gPSB7CitzdGF0aWMgY29uc3QgVmll
d01vZGVJbmZvIHZpZXdNb2RlTWFwW3ZpZXdNb2RlTWFwU2l6ZV0gPSB7CiAgICAgeyJ3aW5kb3dl
ZCIsIFBhZ2U6OlZpZXdNb2RlV2luZG93ZWR9LAogICAgIHsiZmxvYXRpbmciLCBQYWdlOjpWaWV3
TW9kZUZsb2F0aW5nfSwKICAgICB7ImZ1bGxzY3JlZW4iLCBQYWdlOjpWaWV3TW9kZUZ1bGxzY3Jl
ZW59LApAQCAtMTQxNiw4ICsxNDE2LDggQEAgQ29sb3IgUGFnZTo6cGFnZUV4dGVuZGVkQmFja2dy
b3VuZENvbG9yKCkgY29uc3QKIH0KIAogLy8gVGhlc2UgYXJlIG1hZ2ljYWwgY29uc3RhbnRzIHRo
YXQgbWlnaHQgYmUgdHdlYWtlZCBvdmVyIHRpbWUuCi1zdGF0aWMgZG91YmxlIGdNaW5pbXVtUGFp
bnRlZEFyZWFSYXRpbyA9IDAuMTsKLXN0YXRpYyBkb3VibGUgZ01heGltdW1VbnBhaW50ZWRBcmVh
UmF0aW8gPSAwLjA0Oworc3RhdGljIGNvbnN0IGRvdWJsZSBnTWluaW11bVBhaW50ZWRBcmVhUmF0
aW8gPSAwLjE7CitzdGF0aWMgY29uc3QgZG91YmxlIGdNYXhpbXVtVW5wYWludGVkQXJlYVJhdGlv
ID0gMC4wNDsKIAogYm9vbCBQYWdlOjppc0NvdW50aW5nUmVsZXZhbnRSZXBhaW50ZWRPYmplY3Rz
KCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrc0lPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrc0lPUy5tbQppbmRleCA0ODU2NjUxNGRlNTQ4YzI1Zjc3ZTRlYWVkZTJh
YWRkYTAxZTMwNzU5Li5jYWFlZTg3ODc2NzIwZWIxZDljMGU1Yjk2YzQwNjFiOWE1MWM4MmFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVj
a3NJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzSU9TLm1tCkBAIC0zMywxOSArMzMsMTkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBi
b29sIGFwcGxpY2F0aW9uSXNBZFNoZWV0KCkKIHsKLSAgICBzdGF0aWMgYm9vbCBpc0FkU2hlZXQg
PSBbW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXSBpc0VxdWFsVG9TdHJp
bmc6QCJjb20uYXBwbGUuQWRTaGVldFBob25lIl07CisgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNB
ZFNoZWV0ID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVh
bFRvU3RyaW5nOkAiY29tLmFwcGxlLkFkU2hlZXRQaG9uZSJdOwogICAgIHJldHVybiBpc0FkU2hl
ZXQ7CiB9CiAKIGJvb2wgYXBwbGljYXRpb25Jc01vYmlsZU1haWwoKQogewotICAgIHN0YXRpYyBi
b29sIGlzTW9iaWxlTWFpbCA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZp
ZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5hcHBsZS5tb2JpbGVtYWlsIl07CisgICAgc3RhdGlj
IGNvbnN0IGJvb2wgaXNNb2JpbGVNYWlsID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxl
SWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAiY29tLmFwcGxlLm1vYmlsZW1haWwiXTsKICAg
ICByZXR1cm4gaXNNb2JpbGVNYWlsOwogfQogCiBib29sIGFwcGxpY2F0aW9uSXNNb2JpbGVTYWZh
cmkoKQogewotICAgIHN0YXRpYyBib29sIGlzTW9iaWxlU2FmYXJpID0gW1tbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAiY29tLmFwcGxlLm1v
YmlsZXNhZmFyaSJdOworICAgIHN0YXRpYyBjb25zdCBib29sIGlzTW9iaWxlU2FmYXJpID0gW1tb
TlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAi
Y29tLmFwcGxlLm1vYmlsZXNhZmFyaSJdOwogICAgIHJldHVybiBpc01vYmlsZVNhZmFyaTsKIH0K
IApAQCAtNTMsNyArNTMsNyBAQCBib29sIGFwcGxpY2F0aW9uSXNEdW1wUmVuZGVyVHJlZSgpCiB7
CiAgICAgLy8gV2UgdXNlIGEgcHJlZml4IG1hdGNoIGluc3RlYWQgb2Ygc3RyaWN0IGVxdWFsaXR5
IHNpbmNlIExheW91dFRlc3RSZWxheSBtYXkgbGF1bmNoIG11bHRpcGxlIGluc3RhbmNlcyBvZgog
ICAgIC8vIER1bXBSZW5kZXJUcmVlIHdoZXJlIHRoZSBidW5kbGUgaWRlbnRpZmllciBvZiBlYWNo
IGluc3RhbmNlIGhhcyBhIHVuaXF1ZSBzdWZmaXguCi0gICAgc3RhdGljIGJvb2wgaXNEdW1wUmVu
ZGVyVHJlZSA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGhhc1By
ZWZpeDpAIm9yZy53ZWJraXQuRHVtcFJlbmRlclRyZWUiXTsgLy8gZS5nLiBvcmcud2Via2l0LkR1
bXBSZW5kZXJUcmVlMAorICAgIHN0YXRpYyBjb25zdCBib29sIGlzRHVtcFJlbmRlclRyZWUgPSBb
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXSBoYXNQcmVmaXg6QCJvcmcu
d2Via2l0LkR1bXBSZW5kZXJUcmVlIl07IC8vIGUuZy4gb3JnLndlYmtpdC5EdW1wUmVuZGVyVHJl
ZTAKICAgICByZXR1cm4gaXNEdW1wUmVuZGVyVHJlZTsKIH0KIApAQCAtNjUsNDMgKzY1LDQzIEBA
IGJvb2wgYXBwbGljYXRpb25Jc01vYmlsZVN0b3JlKCkKIAogYm9vbCBhcHBsaWNhdGlvbklzV2Vi
QXBwKCkKIHsKLSAgICBzdGF0aWMgYm9vbCBpc1dlYkFwcCA9IFtbW05TQnVuZGxlIG1haW5CdW5k
bGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5hcHBsZS53ZWJhcHAi
XTsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1dlYkFwcCA9IFtbW05TQnVuZGxlIG1haW5CdW5k
bGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5hcHBsZS53ZWJhcHAi
XTsKICAgICByZXR1cm4gaXNXZWJBcHA7CiB9CiAKIGJvb2wgYXBwbGljYXRpb25Jc09rQ3VwaWQo
KQogewotICAgIHN0YXRpYyBib29sIGlzT2tDdXBpZCA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVd
IGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5va2N1cGlkLmFwcCJdOwor
ICAgIHN0YXRpYyBjb25zdCBib29sIGlzT2tDdXBpZCA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVd
IGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5va2N1cGlkLmFwcCJdOwog
ICAgIHJldHVybiBpc09rQ3VwaWQ7CiB9CiAKIGJvb2wgYXBwbGljYXRpb25Jc0ZhY2Vib29rKCkK
IHsKLSAgICBzdGF0aWMgYm9vbCBpc0ZhY2Vib29rID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
YnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAiY29tLmZhY2Vib29rLkZhY2Vib29r
Il07CisgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNGYWNlYm9vayA9IFtbW05TQnVuZGxlIG1haW5C
dW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5mYWNlYm9vay5G
YWNlYm9vayJdOwogICAgIHJldHVybiBpc0ZhY2Vib29rOwogfQogCiBib29sIGFwcGxpY2F0aW9u
SXNFcGljdXJpb3VzKCkKIHsKLSAgICBzdGF0aWMgYm9vbCBpc0VwaWN1cmlvdXMgPSBbW1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXSBpc0VxdWFsVG9TdHJpbmc6QCJjb20u
Y29uZGVuZXQuRXBpY3VyaW91cyJdOworICAgIHN0YXRpYyBjb25zdCBib29sIGlzRXBpY3VyaW91
cyA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0
cmluZzpAImNvbS5jb25kZW5ldC5FcGljdXJpb3VzIl07CiAgICAgcmV0dXJuIGlzRXBpY3VyaW91
czsKIH0KIAogYm9vbCBhcHBsaWNhdGlvbklzRGFpamlzZW5EaWN0aW9uYXJ5KCkKIHsKLSAgICBz
dGF0aWMgYm9vbCBpc0RhaWppc2VuRGljdGlvbmFyeSA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVd
IGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImpwLmNvLnNob2dha3VrYW4uZGFp
amlzZW4yMDA5aSJdOworICAgIHN0YXRpYyBjb25zdCBib29sIGlzRGFpamlzZW5EaWN0aW9uYXJ5
ID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3Ry
aW5nOkAianAuY28uc2hvZ2FrdWthbi5kYWlqaXNlbjIwMDlpIl07CiAgICAgcmV0dXJuIGlzRGFp
amlzZW5EaWN0aW9uYXJ5OwogfQogCiBib29sIGFwcGxpY2F0aW9uSXNOQVNBSEQoKQogewotICAg
IHN0YXRpYyBib29sIGlzTkFTQUhEID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRl
bnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAiZ292Lm5hc2EuTkFTQUhEIl07CisgICAgc3RhdGlj
IGNvbnN0IGJvb2wgaXNOQVNBSEQgPSBbW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVu
dGlmaWVyXSBpc0VxdWFsVG9TdHJpbmc6QCJnb3YubmFzYS5OQVNBSEQiXTsKICAgICByZXR1cm4g
aXNOQVNBSEQ7CiB9CiAKIGJvb2wgYXBwbGljYXRpb25Jc01BU0goKQogewotICAgIHN0YXRpYyBi
b29sIGlzTUFTSCA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlz
RXF1YWxUb1N0cmluZzpAImNvbS5tYWduYXRlaW50ZXJhY3RpdmUubWFzaGdhbWUiXQorICAgIHN0
YXRpYyBjb25zdCBib29sIGlzTUFTSCA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlk
ZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5tYWduYXRlaW50ZXJhY3RpdmUubWFzaGdh
bWUiXQogICAgICAgICB8fCBbW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVy
XSBpc0VxdWFsVG9TdHJpbmc6QCJjb20ubWFnbmF0ZWludGVyYWN0aXZlLm1hc2hsaXRlZ2FtZSJd
CiAgICAgICAgIHx8IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlz
RXF1YWxUb1N0cmluZzpAImNvbS5tYWduYXRlaW50ZXJhY3RpdmUubWFzaGNocmlzdG1hcyJdCiAg
ICAgICAgIHx8IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1
YWxUb1N0cmluZzpAImNvbS5tYWduYXRlaW50ZXJhY3RpdmUubWFzaGhhbGxvd2VlbiJdCkBAIC0x
MTEsMjAgKzExMSwyMCBAQCBib29sIGFwcGxpY2F0aW9uSXNNQVNIKCkKIAogYm9vbCBhcHBsaWNh
dGlvbklzVGhlRWNvbm9taXN0T25JUGhvbmUoKQogewotICAgIHN0YXRpYyBib29sIGlzVGhlRWNv
bm9taXN0T25JUGhvbmUgPSBbW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVy
XSBpc0VxdWFsVG9TdHJpbmc6QCJjb20uZWNvbm9taXN0LmlwaG9uZSJdOworICAgIHN0YXRpYyBj
b25zdCBib29sIGlzVGhlRWNvbm9taXN0T25JUGhvbmUgPSBbW1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBidW5kbGVJZGVudGlmaWVyXSBpc0VxdWFsVG9TdHJpbmc6QCJjb20uZWNvbm9taXN0LmlwaG9u
ZSJdOwogICAgIHJldHVybiBpc1RoZUVjb25vbWlzdE9uSVBob25lOwogfQogCiAvLyBGSVhNRTog
dGhpcyBuZWVkcyB0byBiZSBjaGFuZ2VkIHdoZW4gdGhlIFdlYlByb2Nlc3MgaXMgY2hhbmdlZCB0
byBhbiBYUEMgc2VydmljZS4KIGJvb2wgYXBwbGljYXRpb25Jc1dlYlByb2Nlc3MoKQogewotICAg
IHN0YXRpYyBib29sIGlzV2ViUHJvY2VzcyA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRs
ZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVu
dC5EZXZlbG9wbWVudCJdIHx8IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZp
ZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudCJdIHx8IFtb
W05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpA
ImNvbS5hcHBsZS5XZWJQcm9jZXNzIl07CisgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNXZWJQcm9j
ZXNzID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRv
U3RyaW5nOkAiY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVsb3BtZW50Il0gfHwgW1tb
TlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAi
Y29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50Il0gfHwgW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
YnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAiY29tLmFwcGxlLldlYlByb2Nlc3Mi
XTsKICAgICByZXR1cm4gaXNXZWJQcm9jZXNzOwogfQogCiBib29sIGFwcGxpY2F0aW9uSXNJQm9v
a3NPbklPUygpCiB7Ci0gICAgc3RhdGljIGJvb2wgaXNJQm9va3NPbklPUyA9IFtbW05TQnVuZGxl
IG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5hcHBs
ZS5pQm9va3MiXTsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCBpc0lCb29rc09uSU9TID0gW1tbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAiY29t
LmFwcGxlLmlCb29rcyJdOwogICAgIHJldHVybiBpc0lCb29rc09uSU9TOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRWxldmF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3BwCmluZGV4IDNlNzc0
Nzg1YTU4ZGZhM2YwNjk0MTUwZjNjODMxYjBlODY0ZjdkN2MuLmQwZmQ0ZGUxNDIzZGVjMDY1YWFk
MmVmZjMxNjBmMzhhMjFhNmVjOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0hSVEZFbGV2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0hSVEZFbGV2YXRpb24uY3BwCkBAIC0yMDcsNyArMjA3LDcgQEAgYm9vbCBIUlRGRWxldmF0
aW9uOjpjYWxjdWxhdGVLZXJuZWxzRm9yQXppbXV0aEVsZXZhdGlvbihpbnQgYXppbXV0aCwgaW50
IGVsZXZhdGkKIC8vIFRoZSByYW5nZSBvZiBlbGV2YXRpb25zIGZvciB0aGUgSVJDQU0gaW1wdWxz
ZSByZXNwb25zZXMgdmFyaWVzIGRlcGVuZGluZyBvbiBhemltdXRoLCBidXQgdGhlIG1pbmltdW0g
ZWxldmF0aW9uIGFwcGVhcnMgdG8gYWx3YXlzIGJlIC00NS4KIC8vCiAvLyBIZXJlJ3MgaG93IGl0
IGdvZXM6Ci1zdGF0aWMgaW50IG1heEVsZXZhdGlvbnNbXSA9IHsKK3N0YXRpYyBjb25zdCBpbnQg
bWF4RWxldmF0aW9uc1tdID0gewogICAgICAgICAvLyAgQXppbXV0aAogICAgICAgICAvLwogICAg
IDkwLCAvLyAwICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21h
Yy9BdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHAKaW5kZXggYzI2OTU5OTcwNjk1
NjFiYWZiYWFkZTYwNzRmMjA0YTc3MjY3NzhhMi4uMGI0NGY1OTIxMzU3YTQ2MmUzNTE5ZGNhMmJm
NGU1NGZlYmUyNTYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
bWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHAKQEAgLTg5LDI1ICs4
OSwyNSBAQCBzdGF0aWMgYm9vbCBjdXJyZW50RGV2aWNlU3VwcG9ydHNMb3dQb3dlckJ1ZmZlclNp
emUoKQogCiBzdGF0aWMgY29uc3QgQXVkaW9PYmplY3RQcm9wZXJ0eUFkZHJlc3MmIHByb2Nlc3NJ
c1J1bm5pbmdQcm9wZXJ0eURlc2NyaXB0b3IoKQogewotICAgIHN0YXRpYyBBdWRpb09iamVjdFBy
b3BlcnR5QWRkcmVzcyBwcm9jZXNzSXNSdW5uaW5nUHJvcGVydHkgPSB7CisgICAgc3RhdGljIGNv
bnN0IEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzIHByb2Nlc3NJc1J1bm5pbmdQcm9wZXJ0eSA9
IHsKICAgICAgICAga0F1ZGlvSGFyZHdhcmVQcm9wZXJ0eVByb2Nlc3NJc1J1bm5pbmcsCiAgICAg
ICAgIGtBdWRpb09iamVjdFByb3BlcnR5U2NvcGVHbG9iYWwsCiAgICAgICAgIGtBdWRpb09iamVj
dFByb3BlcnR5RWxlbWVudE1hc3RlcgogICAgIH07CiAKICAgICByZXR1cm4gcHJvY2Vzc0lzUnVu
bmluZ1Byb3BlcnR5OwotfTsKK30KIAogc3RhdGljIGNvbnN0IEF1ZGlvT2JqZWN0UHJvcGVydHlB
ZGRyZXNzJiBvdXRwdXREZXZpY2VQcm9wZXJ0eURlc2NyaXB0b3IoKQogewotICAgIHN0YXRpYyBB
dWRpb09iamVjdFByb3BlcnR5QWRkcmVzcyBvdXRwdXREZXZpY2VQcm9wZXJ0eSA9IHsKKyAgICBz
dGF0aWMgY29uc3QgQXVkaW9PYmplY3RQcm9wZXJ0eUFkZHJlc3Mgb3V0cHV0RGV2aWNlUHJvcGVy
dHkgPSB7CiAgICAgICAgIGtBdWRpb0hhcmR3YXJlUHJvcGVydHlEZWZhdWx0T3V0cHV0RGV2aWNl
LAogICAgICAgICBrQXVkaW9PYmplY3RQcm9wZXJ0eVNjb3BlR2xvYmFsLAogICAgICAgICBrQXVk
aW9PYmplY3RQcm9wZXJ0eUVsZW1lbnRNYXN0ZXIKICAgICB9OwogCiAgICAgcmV0dXJuIG91dHB1
dERldmljZVByb3BlcnR5OwotfTsKK30KIAogUmVmPEF1ZGlvSGFyZHdhcmVMaXN0ZW5lcj4gQXVk
aW9IYXJkd2FyZUxpc3RlbmVyOjpjcmVhdGUoQ2xpZW50JiBjbGllbnQpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KaW5kZXggYTM4MzM1Y2Ri
ODUxNTIxYTE2M2QwOGRjZjlkOThkNTIzNGM3NTNmNS4uODE1OWFmNjZmNzhkMGQ3YTQ1YTE5N2Yz
MDY3NGJiNThjNDk2ZDlhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQy5tbQpAQCAtNjcsNyArNjcsNyBAQCBTT0ZUX0xJTktfUE9JTlRFUihBVkZv
dW5kYXRpb24sIEFWTWVkaWFDaGFyYWN0ZXJpc3RpY0F1ZGlibGUsIE5TU3RyaW5nICopCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGRvdWJsZSBrUmluZ0J1ZmZlckR1cmF0aW9uID0g
MTsKK3N0YXRpYyBjb25zdCBkb3VibGUga1JpbmdCdWZmZXJEdXJhdGlvbiA9IDE7CiAKIFJlZlB0
cjxBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQz4gQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6
OmNyZWF0ZShBVlBsYXllckl0ZW0gKml0ZW0pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCBiNTQwNmVj
NGM5ZTIyYmQwN2FkNzAxNjQyMmQ5NzdkNjhhOWJkYTEwLi5jNjk1MTk3MzI5MjQ1NmUzZmI3MDBi
N2I4NjkzZjQ2NzNiNWI3NjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTIwMzIsMTMgKzIwMzIsMTMg
QEAgc3RhdGljIHZvaWQgc2V0TGF5ZXJEZWJ1Z0JvcmRlcihQbGF0Zm9ybUNBTGF5ZXImIGxheWVy
LCBDb2xvciBib3JkZXJDb2xvciwgZmxvYXQKICAgICBsYXllci5zZXRCb3JkZXJXaWR0aChib3Jk
ZXJDb2xvci5pc1ZhbGlkKCkgPyBib3JkZXJXaWR0aCA6IDApOwogfQogCi1zdGF0aWMgZmxvYXQg
Y29udGVudHNMYXllckJvcmRlcldpZHRoID0gNDsKK3N0YXRpYyBjb25zdCBmbG9hdCBjb250ZW50
c0xheWVyQm9yZGVyV2lkdGggPSA0Owogc3RhdGljIENvbG9yIGNvbnRlbnRzTGF5ZXJEZWJ1Z0Jv
cmRlckNvbG9yKGJvb2wgc2hvd2luZ0JvcmRlcnMpCiB7CiAgICAgcmV0dXJuIHNob3dpbmdCb3Jk
ZXJzID8gQ29sb3IoMCwgMCwgMTI4LCAxODApIDogQ29sb3IoKTsKIH0KIAotc3RhdGljIGZsb2F0
IGNsb25lTGF5ZXJCb3JkZXJXaWR0aCA9IDI7CitzdGF0aWMgY29uc3QgZmxvYXQgY2xvbmVMYXll
ckJvcmRlcldpZHRoID0gMjsKIHN0YXRpYyBDb2xvciBjbG9uZUxheWVyRGVidWdCb3JkZXJDb2xv
cihib29sIHNob3dpbmdCb3JkZXJzKQogewogICAgIHJldHVybiBzaG93aW5nQm9yZGVycyA/IENv
bG9yKDI1NSwgMTIyLCAyNTEpIDogQ29sb3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCmluZGV4IDYzNWFkY2IzOGE0YmM2
MWU0NjFlOGJmYmEwOWI4ZTYyMjMwMTYxMTcuLjE0ZDIwYTI2MjdlYTIyM2NjYjcyMjIxODAyN2Fj
NWY4OWFjOTE5MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9Gb250Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQpAQCAtMTU4LDcgKzE1OCw3IEBAIHN0YXRpYyBpbmxpbmUg
dm9pZCByZW1lbWJlckRlc2lyZWRGYW1pbHlUb0F2YWlsYWJsZUZhbWlseU1hcHBpbmcoTlNTdHJp
bmcqIGRlc2lyCiAKIHN0YXRpYyB1aW50MTZfdCB0b0NvcmVUZXh0Rm9udFdlaWdodChGb250V2Vp
Z2h0IGZvbnRXZWlnaHQpCiB7Ci0gICAgc3RhdGljIGludCBjb3JlVGV4dEZvbnRXZWlnaHRzW10g
PSB7CisgICAgc3RhdGljIGNvbnN0IGludCBjb3JlVGV4dEZvbnRXZWlnaHRzW10gPSB7CiAgICAg
ICAgIDEwMCwgLy8gRm9udFdlaWdodDEwMAogICAgICAgICAyMDAsIC8vIEZvbnRXZWlnaHQyMDAK
ICAgICAgICAgMzAwLCAvLyBGb250V2VpZ2h0MzAwCkBAIC0xOTAsNyArMTkwLDcgQEAgdm9pZCBG
b250Q2FjaGU6OnNldEZvbnRXaGl0ZWxpc3QoY29uc3QgVmVjdG9yPFN0cmluZz4mIGlucHV0V2hp
dGVsaXN0KQogCiBzdGF0aWMgaW50IHRvQXBwS2l0Rm9udFdlaWdodChGb250V2VpZ2h0IGZvbnRX
ZWlnaHQpCiB7Ci0gICAgc3RhdGljIGludCBhcHBLaXRGb250V2VpZ2h0c1tdID0geworICAgIHN0
YXRpYyBjb25zdCBpbnQgYXBwS2l0Rm9udFdlaWdodHNbXSA9IHsKICAgICAgICAgMiwgLy8gRm9u
dFdlaWdodDEwMAogICAgICAgICAzLCAvLyBGb250V2VpZ2h0MjAwCiAgICAgICAgIDQsIC8vIEZv
bnRXZWlnaHQzMDAKQEAgLTIwNyw3ICsyMDcsNyBAQCBzdGF0aWMgaW50IHRvQXBwS2l0Rm9udFdl
aWdodChGb250V2VpZ2h0IGZvbnRXZWlnaHQpCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDEwMDAKIHN0YXRpYyBDR0Zsb2F0IHRvTlNGb250V2VpZ2h0KEZvbnRXZWln
aHQgZm9udFdlaWdodCkKIHsKLSAgICBzdGF0aWMgQ0dGbG9hdCBuc0ZvbnRXZWlnaHRzW10gPSB7
CisgICAgc3RhdGljIGNvbnN0IENHRmxvYXQgbnNGb250V2VpZ2h0c1tdID0gewogICAgICAgICBO
U0ZvbnRXZWlnaHRVbHRyYUxpZ2h0LAogICAgICAgICBOU0ZvbnRXZWlnaHRUaGluLAogICAgICAg
ICBOU0ZvbnRXZWlnaHRMaWdodCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
Y3JvbGxBbmltYXRvck1hYy5tbQppbmRleCBlMjRhNDA2NmVmYjA0Y2VlN2RiMjllNTZmZjYxMzBl
ZTBhYzMzMTA3Li43MjYzY2VjZTQ1MjNjMmJmOTM4MDQ4YjFkZjI1ZGUxMThkZjg2YzVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCkBA
IC00NSwxOSArNDUsMTkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBzdGF0aWMgYm9vbCBz
dXBwb3J0c1VJU3RhdGVUcmFuc2l0aW9uUHJvZ3Jlc3MoKQogewogICAgIC8vIEZJWE1FOiBUaGlz
IGlzIHRlbXBvcmFyeSB1bnRpbCBhbGwgcGxhdGZvcm1zIHRoYXQgc3VwcG9ydCBTY3JvbGxiYXJQ
YWludGVyIHN1cHBvcnQgdGhpcyBwYXJ0IG9mIHRoZSBBUEkuCi0gICAgc3RhdGljIGJvb2wgZ2xv
YmFsU3VwcG9ydHNVSVN0YXRlVHJhbnNpdGlvblByb2dyZXNzID0gW05TQ2xhc3NGcm9tU3RyaW5n
KEAiTlNTY3JvbGxlckltcCIpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3Rvciht
b3VzZUVudGVyZWRTY3JvbGxlcildOworICAgIHN0YXRpYyBjb25zdCBib29sIGdsb2JhbFN1cHBv
cnRzVUlTdGF0ZVRyYW5zaXRpb25Qcm9ncmVzcyA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIk5TU2Ny
b2xsZXJJbXAiKSBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3IobW91c2VFbnRl
cmVkU2Nyb2xsZXIpXTsKICAgICByZXR1cm4gZ2xvYmFsU3VwcG9ydHNVSVN0YXRlVHJhbnNpdGlv
blByb2dyZXNzOwogfQogCiBzdGF0aWMgYm9vbCBzdXBwb3J0c0V4cGFuc2lvblRyYW5zaXRpb25Q
cm9ncmVzcygpCiB7Ci0gICAgc3RhdGljIGJvb2wgZ2xvYmFsU3VwcG9ydHNFeHBhbnNpb25UcmFu
c2l0aW9uUHJvZ3Jlc3MgPSBbTlNDbGFzc0Zyb21TdHJpbmcoQCJOU1Njcm9sbGVySW1wIikgaW5z
dGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKGV4cGFuc2lvblRyYW5zaXRpb25Qcm9n
cmVzcyldOworICAgIHN0YXRpYyBjb25zdCBib29sIGdsb2JhbFN1cHBvcnRzRXhwYW5zaW9uVHJh
bnNpdGlvblByb2dyZXNzID0gW05TQ2xhc3NGcm9tU3RyaW5nKEAiTlNTY3JvbGxlckltcCIpIGlu
c3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3RvcihleHBhbnNpb25UcmFuc2l0aW9uUHJv
Z3Jlc3MpXTsKICAgICByZXR1cm4gZ2xvYmFsU3VwcG9ydHNFeHBhbnNpb25UcmFuc2l0aW9uUHJv
Z3Jlc3M7CiB9CiAKIHN0YXRpYyBib29sIHN1cHBvcnRzQ29udGVudEFyZWFTY3JvbGxlZEluRGly
ZWN0aW9uKCkKIHsKLSAgICBzdGF0aWMgYm9vbCBnbG9iYWxTdXBwb3J0c0NvbnRlbnRBcmVhU2Ny
b2xsZWRJbkRpcmVjdGlvbiA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIk5TU2Nyb2xsZXJJbXBQYWly
IikgaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKGNvbnRlbnRBcmVhU2Nyb2xs
ZWRJbkRpcmVjdGlvbjopXTsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCBnbG9iYWxTdXBwb3J0c0Nv
bnRlbnRBcmVhU2Nyb2xsZWRJbkRpcmVjdGlvbiA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIk5TU2Ny
b2xsZXJJbXBQYWlyIikgaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKGNvbnRl
bnRBcmVhU2Nyb2xsZWRJbkRpcmVjdGlvbjopXTsKICAgICByZXR1cm4gZ2xvYmFsU3VwcG9ydHND
b250ZW50QXJlYVNjcm9sbGVkSW5EaXJlY3Rpb247CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQppbmRleCBhY2FhZDAyYWU2YTg0ZTZm
ZGEwMThiYjU0OWI2ODI1MGEyZWYyMGMwLi42NmQ2MmY0MzMzNjY2YWNhYTc5NWM1YmY0ZTcyOTE5
NGQyNjcxZTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xs
YmFyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJh
clRoZW1lTWFjLm1tCkBAIC0xMTksMTMgKzExOSwxMyBAQCBTY3JvbGxiYXJUaGVtZSogU2Nyb2xs
YmFyVGhlbWU6Om5hdGl2ZVRoZW1lKCkKIH0KIAogLy8gRklYTUU6IEdldCB0aGVzZSBudW1iZXJz
IGZyb20gQ29yZVVJLgotc3RhdGljIGludCBjUmVhbEJ1dHRvbkxlbmd0aFtdID0geyAyOCwgMjEg
fTsKLXN0YXRpYyBpbnQgY0J1dHRvbkhpdEluc2V0W10gPSB7IDMsIDIgfTsKK3N0YXRpYyBjb25z
dCBpbnQgY1JlYWxCdXR0b25MZW5ndGhbXSA9IHsgMjgsIDIxIH07CitzdGF0aWMgY29uc3QgaW50
IGNCdXR0b25IaXRJbnNldFtdID0geyAzLCAyIH07CiAvLyBjUmVhbEJ1dHRvbkxlbmd0aCAtIGNC
dXR0b25JbnNldAotc3RhdGljIGludCBjQnV0dG9uTGVuZ3RoW10gPSB7IDE0LCAxMCB9Oworc3Rh
dGljIGNvbnN0IGludCBjQnV0dG9uTGVuZ3RoW10gPSB7IDE0LCAxMCB9OwogCi1zdGF0aWMgaW50
IGNPdXRlckJ1dHRvbkxlbmd0aFtdID0geyAxNiwgMTQgfTsgLy8gVGhlIG91dGVyIGJ1dHRvbiBp
biBhIGRvdWJsZSBidXR0b24gcGFpciBpcyBhIGJpdCBiaWdnZXIuCi1zdGF0aWMgaW50IGNPdXRl
ckJ1dHRvbk92ZXJsYXAgPSAyOworc3RhdGljIGNvbnN0IGludCBjT3V0ZXJCdXR0b25MZW5ndGhb
XSA9IHsgMTYsIDE0IH07IC8vIFRoZSBvdXRlciBidXR0b24gaW4gYSBkb3VibGUgYnV0dG9uIHBh
aXIgaXMgYSBiaXQgYmlnZ2VyLgorc3RhdGljIGNvbnN0IGludCBjT3V0ZXJCdXR0b25PdmVybGFw
ID0gMjsKIAogc3RhdGljIGZsb2F0IGdJbml0aWFsQnV0dG9uRGVsYXkgPSAwLjVmOwogc3RhdGlj
IGZsb2F0IGdBdXRvc2Nyb2xsQnV0dG9uRGVsYXkgPSAwLjA1ZjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlTlNVUkxFeHRyYXMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZU5TVVJMRXh0cmFzLm1tCmluZGV4IGVhMGY2NDcxNTY1
YmVjYWQ0ODc3NDdkN2JkMWM1ZmY0NzI5NGVkOTAuLjcyM2VhM2Q4MTUxYjJmOTIyYWU4MDBiMDll
ZTZjZmI5NzdjZmE1ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9X
ZWJDb3JlTlNVUkxFeHRyYXMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dl
YkNvcmVOU1VSTEV4dHJhcy5tbQpAQCAtODQwLDcgKzg0MCw3IEBAIHN0YXRpYyBCT09MIGhhc1F1
ZXN0aW9uTWFya09ubHlRdWVyeVN0cmluZyhOU1VSTCAqVVJMKQogCiBOU0RhdGEgKmRhdGFGb3JV
UkxDb21wb25lbnRUeXBlKE5TVVJMICpVUkwsIENGVVJMQ29tcG9uZW50VHlwZSBjb21wb25lbnRU
eXBlKQogewotICAgIHN0YXRpYyBpbnQgVVJMQ29tcG9uZW50VHlwZUJ1ZmZlckxlbmd0aCA9IDIw
NDg7CisgICAgc3RhdGljIGNvbnN0IGludCBVUkxDb21wb25lbnRUeXBlQnVmZmVyTGVuZ3RoID0g
MjA0ODsKICAgICAKICAgICBVSW50OCBzdGF0aWNBbGxCeXRlc0J1ZmZlcltVUkxDb21wb25lbnRU
eXBlQnVmZmVyTGVuZ3RoXTsKICAgICBVSW50OCAqYWxsQnl0ZXNCdWZmZXIgPSBzdGF0aWNBbGxC
eXRlc0J1ZmZlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Ny
b2xsYmFyVGhlbWVNb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xs
YmFyVGhlbWVNb2NrLmNwcAppbmRleCA2ZGU5MWNjYjgxOTIxMDQwYzA4NDc4YzFlZTU2NzdkZGU0
Mzc0OTVkLi5iMmY2MGExY2M0MDVjNjdhZmQ4YTVmNzg0MzdiODllYTNjODI2NDViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suY3Bw
CkBAIC0zMCw3ICszMCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGludCBj
U2Nyb2xsYmFyVGhpY2tuZXNzW10gPSB7IDE1LCAxMSB9Oworc3RhdGljIGNvbnN0IGludCBjU2Ny
b2xsYmFyVGhpY2tuZXNzW10gPSB7IDE1LCAxMSB9OwogCiBJbnRSZWN0IFNjcm9sbGJhclRoZW1l
TW9jazo6dHJhY2tSZWN0KFNjcm9sbGJhclRoZW1lQ2xpZW50KiBzY3JvbGxiYXIsIGJvb2wpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2ljdS9VVGV4dFByb3Zp
ZGVyTGF0aW4xLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvaWN1L1VUZXh0UHJv
dmlkZXJMYXRpbjEuY3BwCmluZGV4IGQzNDNhNjU4ZmFhMTdkZjk4ZTgwZTUxMDg5NGNkZDA1MWIy
YjUzY2MuLjc0OGQyYTU0ZmFmOGYwNWE5NzliOGE2ZmExNzcyNDQyNzMxNGIyZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvaWN1L1VUZXh0UHJvdmlkZXJMYXRpbjEu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvaWN1L1VUZXh0UHJvdmlkZXJM
YXRpbjEuY3BwCkBAIC00MSw3ICs0MSw3IEBAIHN0YXRpYyBpbnQ2NF90IHVUZXh0TGF0aW4xTWFw
T2Zmc2V0VG9OYXRpdmUoY29uc3QgVVRleHQqKTsKIHN0YXRpYyBpbnQzMl90IHVUZXh0TGF0aW4x
TWFwTmF0aXZlSW5kZXhUb1VURjE2KGNvbnN0IFVUZXh0KiwgaW50NjRfdCk7CiBzdGF0aWMgdm9p
ZCB1VGV4dExhdGluMUNsb3NlKFVUZXh0Kik7CiAKLXN0YXRpYyBzdHJ1Y3QgVVRleHRGdW5jcyB1
VGV4dExhdGluMUZ1bmNzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBVVGV4dEZ1bmNzIHVUZXh0
TGF0aW4xRnVuY3MgPSB7CiAgICAgc2l6ZW9mKFVUZXh0RnVuY3MpLAogICAgIDAsCiAgICAgMCwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvaW9zL0xvY2FsaXplZERh
dGVDYWNoZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvaW9zL0xvY2FsaXplZERh
dGVDYWNoZS5tbQppbmRleCA1YzMwNWJlNWQzMzJlZGM1OTQ4ZDBjMWE4MWYzNzQzYzQyZjBiNWMx
Li44N2Y3NGUwMzUxOGVhMTVmYWRhYTVjZWQ3N2I4NTMzNjU3ZjU4ZTkzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2lvcy9Mb2NhbGl6ZWREYXRlQ2FjaGUubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9pb3MvTG9jYWxpemVkRGF0ZUNhY2hlLm1t
CkBAIC0xNjcsNyArMTY3LDcgQEAgZmxvYXQgTG9jYWxpemVkRGF0ZUNhY2hlOjpjYWxjdWxhdGVN
YXhpbXVtV2lkdGgoRGF0ZUNvbXBvbmVudHM6OlR5cGUgdHlwZSwgY29uc3QKICAgICBbY29tcG9u
ZW50cy5nZXQoKSBzZXRIb3VyOjIyXTsKICAgICBbY29tcG9uZW50cy5nZXQoKSBzZXRNaW51dGU6
NDVdOwogCi0gICAgc3RhdGljIE5TVUludGVnZXIgbnVtYmVyT2ZHcmVnb3JpYW5Nb250aHMgPSBb
W2RhdGVGb3JtYXR0ZXIgbW9udGhTeW1ib2xzXSBjb3VudF07CisgICAgc3RhdGljIGNvbnN0IE5T
VUludGVnZXIgbnVtYmVyT2ZHcmVnb3JpYW5Nb250aHMgPSBbW2RhdGVGb3JtYXR0ZXIgbW9udGhT
eW1ib2xzXSBjb3VudF07CiAgICAgQVNTRVJUKG51bWJlck9mR3JlZ29yaWFuTW9udGhzID09IDEy
KTsKIAogICAgIC8vIEZvciBlYWNoIG1vbnRoIChpbiB0aGUgR3JlZ29yaWFuIENhbGVuZGFyKSwg
Zm9ybWF0IGEgZGF0ZSBhbmQgbWVhc3VyZSBpdHMgbGVuZ3RoLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAppbmRleCBmYzY1MGM5YjQw
Y2Q3NDVlN2UwYjM3NDE1MzA5NGJkNjM5MWIwMzEyLi41ZWMwNDcwYmFjYzhhZjhkNTY0YWU2ZGQ2
NzdmMmMyNjM1NWY4ZTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApAQCAtMTg4OCw3ICsxODg4LDcgQEAgYm9vbCBSZW5kZXJC
bG9ja0Zsb3c6Om1hdGNoZWRFbmRMaW5lKExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGNv
bnN0IElubGluZUIKIAogICAgIC8vIFRoZSBmaXJzdCBjbGVhbiBsaW5lIGRvZXNuJ3QgbWF0Y2gs
IGJ1dCB3ZSBjYW4gY2hlY2sgYSBoYW5kZnVsIG9mIGZvbGxvd2luZyBsaW5lcyB0byB0cnkKICAg
ICAvLyB0byBtYXRjaCBiYWNrIHVwLgotICAgIHN0YXRpYyBpbnQgbnVtTGluZXMgPSA4OyAvLyBU
aGUgIyBvZiBsaW5lcyB3ZSdyZSB3aWxsaW5nIHRvIG1hdGNoIGFnYWluc3QuCisgICAgc3RhdGlj
IGNvbnN0IGludCBudW1MaW5lcyA9IDg7IC8vIFRoZSAjIG9mIGxpbmVzIHdlJ3JlIHdpbGxpbmcg
dG8gbWF0Y2ggYWdhaW5zdC4KICAgICBSb290SW5saW5lQm94KiBvcmlnaW5hbEVuZExpbmUgPSBs
YXlvdXRTdGF0ZS5lbmRMaW5lKCk7CiAgICAgUm9vdElubGluZUJveCogbGluZSA9IG9yaWdpbmFs
RW5kTGluZTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUxpbmVzICYmIGxpbmU7IGkrKywg
bGluZSA9IGxpbmUtPm5leHRSb290Qm94KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IGU0YjIzNWEzMzM2OGRlNmYxNjFi
YzBlOTFmY2Y4ZWE3MTEzOTE2ZGUuLmY4MGYyMDA0NTE1YmNiZThlZDg3NTlmYTgzMDM4NmYwYzRi
YmNkZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2Rl
bE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmNwcApAQCAtMTY4Miw3ICsxNjgyLDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVj
dDo6cGFpbnRUcmFuc2x1Y2VudEJvcmRlclNpZGVzKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3MK
IHsKICAgICAvLyB3aWxsQmVPdmVyZHJhd24gYXNzdW1lcyB0aGF0IHdlIGRyYXcgaW4gb3JkZXI6
IHRvcCwgYm90dG9tLCBsZWZ0LCByaWdodC4KICAgICAvLyBUaGlzIGlzIGRpZmZlcmVudCBmcm9t
IEJveFNpZGUgZW51bSBvcmRlci4KLSAgICBzdGF0aWMgQm94U2lkZSBwYWludE9yZGVyW10gPSB7
IEJTVG9wLCBCU0JvdHRvbSwgQlNMZWZ0LCBCU1JpZ2h0IH07CisgICAgc3RhdGljIGNvbnN0IEJv
eFNpZGUgcGFpbnRPcmRlcltdID0geyBCU1RvcCwgQlNCb3R0b20sIEJTTGVmdCwgQlNSaWdodCB9
OwogCiAgICAgd2hpbGUgKGVkZ2VzVG9EcmF3KSB7CiAgICAgICAgIC8vIEZpbmQgdW5kcmF3biBl
ZGdlcyBzaGFyaW5nIGEgY29sb3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRnJhbWVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
cmFtZUJhc2UuY3BwCmluZGV4IDkyMzJjY2RmYTllOGJjNTNlOTZiZDg5YmU5MTI1Zjk3ZjhkNmVm
NWUuLjE5NGU3OGY1MmZjYTIwZjU3MWU2MGExMzFmMDI3NzJlMjkyNDExN2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuY3BwCkBAIC00NCw3ICs0NCw3IEBA
IGlubGluZSBib29sIHNob3VsZEV4cGFuZEZyYW1lKExheW91dFVuaXQgd2lkdGgsIExheW91dFVu
aXQgaGVpZ2h0LCBib29sIGhhc0ZpeGVkCiAgICAgaWYgKCF3aWR0aCB8fCAhaGVpZ2h0KQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgLy8gUmVhbGx5IHNtYWxsIGZpeGVkIHNpemUgZnJhbWVz
IGNhbid0IGJlIG1lYW50IHRvIGJlIHNjcm9sbGVkIGFuZCBhcmUgdGhlcmUgcHJvYmFibHkgYnkg
bWlzdGFrZS4gQXZvaWQgZXhwYW5kaW5nLgotICAgIHN0YXRpYyB1bnNpZ25lZCBzbWFsbGVzdFVz
ZWZ1bGx5U2Nyb2xsYWJsZURpbWVuc2lvbiA9IDg7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IHNtYWxsZXN0VXNlZnVsbHlTY3JvbGxhYmxlRGltZW5zaW9uID0gODsKICAgICBpZiAoaGFzRml4
ZWRXaWR0aCAmJiB3aWR0aCA8IExheW91dFVuaXQoc21hbGxlc3RVc2VmdWxseVNjcm9sbGFibGVE
aW1lbnNpb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKGhhc0ZpeGVkSGVpZ2h0
ICYmIGhlaWdodCA8IExheW91dFVuaXQoc21hbGxlc3RVc2VmdWxseVNjcm9sbGFibGVEaW1lbnNp
b24pKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2Vj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNw
cAppbmRleCAzZmQ2OWVmNGJkYmY5YzRjNWVhOWViMWVhNTgyZTkxNmRlMjMzNjFhLi5kZDVhZDVm
ZjM3ZWI5NmVlODdjYzczNmI5Y2M0ZDY2OGM1YmUxYTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcApAQCAtNDUsOCArNDUsOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiAvLyBUaG9zZSAy
IHZhcmlhYmxlcyBhcmUgdXNlZCB0byBiYWxhbmNlIHRoZSBtZW1vcnkgY29uc3VtcHRpb24gdnMg
dGhlIHJlcGFpbnQgdGltZSBvbiBiaWcgdGFibGVzLgotc3RhdGljIHVuc2lnbmVkIGdNaW5UYWJs
ZVNpemVUb1VzZUZhc3RQYWludFBhdGhXaXRoT3ZlcmZsb3dpbmdDZWxsID0gNzUgKiA3NTsKLXN0
YXRpYyBmbG9hdCBnTWF4QWxsb3dlZE92ZXJmbG93aW5nQ2VsbFJhdGlvRm9yRmFzdFBhaW50UGF0
aCA9IDAuMWY7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgZ01pblRhYmxlU2l6ZVRvVXNlRmFzdFBh
aW50UGF0aFdpdGhPdmVyZmxvd2luZ0NlbGwgPSA3NSAqIDc1Oworc3RhdGljIGNvbnN0IGZsb2F0
IGdNYXhBbGxvd2VkT3ZlcmZsb3dpbmdDZWxsUmF0aW9Gb3JGYXN0UGFpbnRQYXRoID0gMC4xZjsK
IAogc3RhdGljIGlubGluZSB2b2lkIHNldFJvd0xvZ2ljYWxIZWlnaHRUb1Jvd1N0eWxlTG9naWNh
bEhlaWdodElmTm90UmVsYXRpdmUoUmVuZGVyVGFibGVTZWN0aW9uOjpSb3dTdHJ1Y3QmIHJvdykK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQppbmRleCBjNWU3
ODljMTU1MTU3NDcyMDhlYjFjZTBiODExMTBlMjI5ZjQ4ZTNmLi5mMjMyZGU0NTIyOGM4YTYxNjhl
Mzc3YTQ4NmI3N2UxYzFmMzJiYTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lSU9TLm1tCkBAIC0zNzcsOSArMzc3LDkgQEAgYm9vbCBSZW5kZXJUaGVtZUlPUzo6cGFp
bnRDaGVja2JveERlY29yYXRpb25zKGNvbnN0IFJlbmRlck9iamVjdCYgYm94LCBjb25zdCBQYWkK
ICAgICBpZiAoaXNDaGVja2VkKGJveCkpIHsKICAgICAgICAgZHJhd0F4aWFsR3JhZGllbnQoY2dD
b250ZXh0LCBncmFkaWVudFdpdGhOYW1lKENvbmNhdmVHcmFkaWVudCksIGNsaXAubG9jYXRpb24o
KSwgRmxvYXRQb2ludChjbGlwLngoKSwgY2xpcC5tYXhZKCkpLCBMaW5lYXJJbnRlcnBvbGF0aW9u
KTsKIAotICAgICAgICBzdGF0aWMgZmxvYXQgdGhpY2tuZXNzUmF0aW8gPSAyIC8gMTQuMDsKLSAg
ICAgICAgc3RhdGljIENHU2l6ZSBzaXplID0geyAxNC4wZiwgMTQuMGYgfTsKLSAgICAgICAgc3Rh
dGljIENHUG9pbnQgcGF0aFJhdGlvc1szXSA9IHsKKyAgICAgICAgc3RhdGljIGNvbnN0IGZsb2F0
IHRoaWNrbmVzc1JhdGlvID0gMiAvIDE0LjA7CisgICAgICAgIHN0YXRpYyBjb25zdCBDR1NpemUg
c2l6ZSA9IHsgMTQuMGYsIDE0LjBmIH07CisgICAgICAgIHN0YXRpYyBjb25zdCBDR1BvaW50IHBh
dGhSYXRpb3NbM10gPSB7CiAgICAgICAgICAgICB7IDIuNWYgLyBzaXplLndpZHRoLCA3LjVmIC8g
c2l6ZS5oZWlnaHQgfSwKICAgICAgICAgICAgIHsgNS41ZiAvIHNpemUud2lkdGgsIDEwLjVmIC8g
c2l6ZS5oZWlnaHQgfSwKICAgICAgICAgICAgIHsgMTEuNWYgLyBzaXplLndpZHRoLCAyLjVmIC8g
c2l6ZS5oZWlnaHQgfQpAQCAtNDY1LDcgKzQ2NSw3IEBAIGJvb2wgUmVuZGVyVGhlbWVJT1M6OnBh
aW50UmFkaW9EZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJPYmplY3QmIGJveCwgY29uc3QgUGFpbnRJ
CiAgICAgICAgIC8vIFRoZSBpbm5lciBjaXJjbGUgaXMgNiAvIDE0IHRoZSBzaXplIG9mIHRoZSBz
dXJyb3VuZGluZyBjaXJjbGUsIAogICAgICAgICAvLyBsZWF2aW5nIDggLyAxNCBhcm91bmQgaXQu
ICg4IC8gMTQpIC8gMiA9IDIgLyA3LgogCi0gICAgICAgIHN0YXRpYyBmbG9hdCBJbm5lckludmVy
c2VSYXRpbyA9IDIgLyA3LjA7CisgICAgICAgIHN0YXRpYyBjb25zdCBmbG9hdCBJbm5lckludmVy
c2VSYXRpbyA9IDIgLyA3LjA7CiAKICAgICAgICAgY2xpcC5pbmZsYXRlWCgtY2xpcC53aWR0aCgp
ICogSW5uZXJJbnZlcnNlUmF0aW8pOwogICAgICAgICBjbGlwLmluZmxhdGVZKC1jbGlwLmhlaWdo
dCgpICogSW5uZXJJbnZlcnNlUmF0aW8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lTWFjLm1tCmluZGV4IDExNDgxYjljNjk2N2IwOWRlYjcwNGM5NzExZDJiOTU0NGUxNmFk
MmMuLjJkMzU1YjUzNWJiODg5OTUzMzZjNzk1N2QxMWE5ODgzY2NkYWZhZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTMyNSw3ICszMjUsNyBAQCBz
dGF0aWMgRm9udFdlaWdodCB0b0ZvbnRXZWlnaHQoTlNJbnRlZ2VyIGFwcEtpdEZvbnRXZWlnaHQp
CiAgICAgZWxzZSBpZiAoYXBwS2l0Rm9udFdlaWdodCA8IDEpCiAgICAgICAgIGFwcEtpdEZvbnRX
ZWlnaHQgPSAxOwogCi0gICAgc3RhdGljIEZvbnRXZWlnaHQgZm9udFdlaWdodHNbXSA9IHsKKyAg
ICBzdGF0aWMgY29uc3QgRm9udFdlaWdodCBmb250V2VpZ2h0c1tdID0gewogICAgICAgICBGb250
V2VpZ2h0MTAwLAogICAgICAgICBGb250V2VpZ2h0MTAwLAogICAgICAgICBGb250V2VpZ2h0MjAw
LApAQCAtMTE3MSw4ICsxMTcxLDggQEAgY29uc3QgaW50IHN0eWxlZFBvcHVwUGFkZGluZ0JvdHRv
bSA9IDI7CiAKIHN0YXRpYyB2b2lkIFRvcEdyYWRpZW50SW50ZXJwb2xhdGUodm9pZCosIGNvbnN0
IENHRmxvYXQqIGluRGF0YSwgQ0dGbG9hdCogb3V0RGF0YSkKIHsKLSAgICBzdGF0aWMgZmxvYXQg
ZGFya1s0XSA9IHsgMS4wZiwgMS4wZiwgMS4wZiwgMC40ZiB9OwotICAgIHN0YXRpYyBmbG9hdCBs
aWdodFs0XSA9IHsgMS4wZiwgMS4wZiwgMS4wZiwgMC4xNWYgfTsKKyAgICBzdGF0aWMgY29uc3Qg
ZmxvYXQgZGFya1s0XSA9IHsgMS4wZiwgMS4wZiwgMS4wZiwgMC40ZiB9OworICAgIHN0YXRpYyBj
b25zdCBmbG9hdCBsaWdodFs0XSA9IHsgMS4wZiwgMS4wZiwgMS4wZiwgMC4xNWYgfTsKICAgICBm
bG9hdCBhID0gaW5EYXRhWzBdOwogICAgIGludCBpID0gMDsKICAgICBmb3IgKGkgPSAwOyBpIDwg
NDsgaSsrKQpAQCAtMTE4MSw4ICsxMTgxLDggQEAgc3RhdGljIHZvaWQgVG9wR3JhZGllbnRJbnRl
cnBvbGF0ZSh2b2lkKiwgY29uc3QgQ0dGbG9hdCogaW5EYXRhLCBDR0Zsb2F0KiBvdXREYXQKIAog
c3RhdGljIHZvaWQgQm90dG9tR3JhZGllbnRJbnRlcnBvbGF0ZSh2b2lkKiwgY29uc3QgQ0dGbG9h
dCogaW5EYXRhLCBDR0Zsb2F0KiBvdXREYXRhKQogewotICAgIHN0YXRpYyBmbG9hdCBkYXJrWzRd
ID0geyAxLjBmLCAxLjBmLCAxLjBmLCAwLjBmIH07Ci0gICAgc3RhdGljIGZsb2F0IGxpZ2h0WzRd
ID0geyAxLjBmLCAxLjBmLCAxLjBmLCAwLjNmIH07CisgICAgc3RhdGljIGNvbnN0IGZsb2F0IGRh
cmtbNF0gPSB7IDEuMGYsIDEuMGYsIDEuMGYsIDAuMGYgfTsKKyAgICBzdGF0aWMgY29uc3QgZmxv
YXQgbGlnaHRbNF0gPSB7IDEuMGYsIDEuMGYsIDEuMGYsIDAuM2YgfTsKICAgICBmbG9hdCBhID0g
aW5EYXRhWzBdOwogICAgIGludCBpID0gMDsKICAgICBmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKQpA
QCAtMTE5MSw4ICsxMTkxLDggQEAgc3RhdGljIHZvaWQgQm90dG9tR3JhZGllbnRJbnRlcnBvbGF0
ZSh2b2lkKiwgY29uc3QgQ0dGbG9hdCogaW5EYXRhLCBDR0Zsb2F0KiBvdXQKIAogc3RhdGljIHZv
aWQgTWFpbkdyYWRpZW50SW50ZXJwb2xhdGUodm9pZCosIGNvbnN0IENHRmxvYXQqIGluRGF0YSwg
Q0dGbG9hdCogb3V0RGF0YSkKIHsKLSAgICBzdGF0aWMgZmxvYXQgZGFya1s0XSA9IHsgMC4wZiwg
MC4wZiwgMC4wZiwgMC4xNWYgfTsKLSAgICBzdGF0aWMgZmxvYXQgbGlnaHRbNF0gPSB7IDAuMGYs
IDAuMGYsIDAuMGYsIDAuMGYgfTsKKyAgICBzdGF0aWMgY29uc3QgZmxvYXQgZGFya1s0XSA9IHsg
MC4wZiwgMC4wZiwgMC4wZiwgMC4xNWYgfTsKKyAgICBzdGF0aWMgY29uc3QgZmxvYXQgbGlnaHRb
NF0gPSB7IDAuMGYsIDAuMGYsIDAuMGYsIDAuMGYgfTsKICAgICBmbG9hdCBhID0gaW5EYXRhWzBd
OwogICAgIGludCBpID0gMDsKICAgICBmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKQpAQCAtMTIwMSw4
ICsxMjAxLDggQEAgc3RhdGljIHZvaWQgTWFpbkdyYWRpZW50SW50ZXJwb2xhdGUodm9pZCosIGNv
bnN0IENHRmxvYXQqIGluRGF0YSwgQ0dGbG9hdCogb3V0RGEKIAogc3RhdGljIHZvaWQgVHJhY2tH
cmFkaWVudEludGVycG9sYXRlKHZvaWQqLCBjb25zdCBDR0Zsb2F0KiBpbkRhdGEsIENHRmxvYXQq
IG91dERhdGEpCiB7Ci0gICAgc3RhdGljIGZsb2F0IGRhcmtbNF0gPSB7IDAuMGYsIDAuMGYsIDAu
MGYsIDAuNjc4ZiB9OwotICAgIHN0YXRpYyBmbG9hdCBsaWdodFs0XSA9IHsgMC4wZiwgMC4wZiwg
MC4wZiwgMC4xM2YgfTsKKyAgICBzdGF0aWMgY29uc3QgZmxvYXQgZGFya1s0XSA9IHsgMC4wZiwg
MC4wZiwgMC4wZiwgMC42NzhmIH07CisgICAgc3RhdGljIGNvbnN0IGZsb2F0IGxpZ2h0WzRdID0g
eyAwLjBmLCAwLjBmLCAwLjBmLCAwLjEzZiB9OwogICAgIGZsb2F0IGEgPSBpbkRhdGFbMF07CiAg
ICAgaW50IGkgPSAwOwogICAgIGZvciAoaSA9IDA7IGkgPCA0OyBpKyspCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZUVuY29kZXIuY3BwIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VFbmNvZGVyLmNwcAppbmRleCBjZjNhNjcxMzY2NTYx
MmEyMTA1YmY2NmMwOWEwMGI3NmI2NWEwNzhjLi43ZDA5NTg0NjVjNTA0YzczYjY3Nzc5MjE4ZmVh
YzdjY2ZiNjJkMmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVz
c2FnZUVuY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdl
RW5jb2Rlci5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKIAogbmFtZXNwYWNlIElQQyB7CiAKLXN0YXRp
YyB1aW50OF90IGRlZmF1bHRNZXNzYWdlRmxhZ3MgPSAwOworc3RhdGljIGNvbnN0IHVpbnQ4X3Qg
ZGVmYXVsdE1lc3NhZ2VGbGFncyA9IDA7CiAKICNpZiBIQVZFKERUUkFDRSkKIE1lc3NhZ2VFbmNv
ZGVyOjpNZXNzYWdlRW5jb2RlcihTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwg
U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCBjb25z
dCB1dWlkX3QmIFVVSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCmluZGV4IGQyOGRjY2Q1OWMyZTFkMGQ4ZmE5YTk1ODBl
ZjI0ZTQzMTE2OTg5NzAuLjE3YmNkMjcyZTA2YzlmZmI4ODEyMjQ1YTQ5M2NjOWJlZDc2ZDUwMmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UG9vbENvY29hLm1tCkBAIC00OTMsMjUgKzQ5MywyNSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpy
ZXNldEhTVFNIb3N0c0FkZGVkQWZ0ZXJEYXRlKGRvdWJsZSBzdGFydERhdGVJbnRlcnZhbFNpbmNl
MQogCiBpbnQgbmV0d29ya1Byb2Nlc3NMYXRlbmN5UU9TKCkKIHsKLSAgICBzdGF0aWMgaW50IHFv
cyA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGludGVnZXJGb3JLZXk6
QCJXZWJLaXROZXR3b3JrUHJvY2Vzc0xhdGVuY3lRT1MiXTsKKyAgICBzdGF0aWMgY29uc3QgaW50
IHFvcyA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGludGVnZXJGb3JL
ZXk6QCJXZWJLaXROZXR3b3JrUHJvY2Vzc0xhdGVuY3lRT1MiXTsKICAgICByZXR1cm4gcW9zOwog
fQogCiBpbnQgbmV0d29ya1Byb2Nlc3NUaHJvdWdocHV0UU9TKCkKIHsKLSAgICBzdGF0aWMgaW50
IHFvcyA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGludGVnZXJGb3JL
ZXk6QCJXZWJLaXROZXR3b3JrUHJvY2Vzc1Rocm91Z2hwdXRRT1MiXTsKKyAgICBzdGF0aWMgY29u
c3QgaW50IHFvcyA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGludGVn
ZXJGb3JLZXk6QCJXZWJLaXROZXR3b3JrUHJvY2Vzc1Rocm91Z2hwdXRRT1MiXTsKICAgICByZXR1
cm4gcW9zOwogfQogCiBpbnQgd2ViUHJvY2Vzc0xhdGVuY3lRT1MoKQogewotICAgIHN0YXRpYyBp
bnQgcW9zID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gaW50ZWdlckZv
cktleTpAIldlYktpdFdlYlByb2Nlc3NMYXRlbmN5UU9TIl07CisgICAgc3RhdGljIGNvbnN0IGlu
dCBxb3MgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBpbnRlZ2VyRm9y
S2V5OkAiV2ViS2l0V2ViUHJvY2Vzc0xhdGVuY3lRT1MiXTsKICAgICByZXR1cm4gcW9zOwogfQog
CiBpbnQgd2ViUHJvY2Vzc1Rocm91Z2hwdXRRT1MoKQogewotICAgIHN0YXRpYyBpbnQgcW9zID0g
W1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gaW50ZWdlckZvcktleTpAIldl
YktpdFdlYlByb2Nlc3NUaHJvdWdocHV0UU9TIl07CisgICAgc3RhdGljIGNvbnN0IGludCBxb3Mg
PSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBpbnRlZ2VyRm9yS2V5OkAi
V2ViS2l0V2ViUHJvY2Vzc1Rocm91Z2hwdXRRT1MiXTsKICAgICByZXR1cm4gcW9zOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJv
Y2Vzc1Byb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1Bs
dWdpblByb2Nlc3NQcm94eU1hYy5tbQppbmRleCA5NDMxNmNmMjFmN2I5Y2I2ZmJjYWRjYmE2NDJh
NWNlOTZmOTc3ZDk5Li5hNWViNTFkNDZlZGU1MzZlOGQxM2VlYTZkNDhlODU4ZDI5YjhmYjFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJv
Y2Vzc1Byb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21h
Yy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KQEAgLTYzLDcgKzYzLDcgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAgICAgCiBib29sIFBsdWdpblByb2Nlc3NQcm94eTo6cGx1Z2luTmVlZHNFeGVjdXRh
YmxlSGVhcChjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJiBwbHVnaW5JbmZvKQogewotICAgIHN0YXRp
YyBib29sIGZvcmNlTm9uZXhlY3V0YWJsZUhlYXBGb3JQbHVnaW5zID0gW1tOU1VzZXJEZWZhdWx0
cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpAIkZvcmNlTm9uZXhlY3V0YWJsZUhl
YXBGb3JQbHVnaW5zIl07CisgICAgc3RhdGljIGNvbnN0IGJvb2wgZm9yY2VOb25leGVjdXRhYmxl
SGVhcEZvclBsdWdpbnMgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBi
b29sRm9yS2V5OkAiRm9yY2VOb25leGVjdXRhYmxlSGVhcEZvclBsdWdpbnMiXTsKICAgICBpZiAo
Zm9yY2VOb25leGVjdXRhYmxlSGVhcEZvclBsdWdpbnMpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAKQEAgLTQ3MywxMyArNDczLDEzIEBAIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpvcGVu
RmlsZShjb25zdCBTdHJpbmcmIGZ1bGxQYXRoLCBib29sJiByZXN1bHQpCiAKIGludCBwbHVnaW5Q
cm9jZXNzTGF0ZW5jeVFPUygpCiB7Ci0gICAgc3RhdGljIGludCBxb3MgPSBbW05TVXNlckRlZmF1
bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBpbnRlZ2VyRm9yS2V5OkAiV2ViS2l0UGx1Z2luUHJv
Y2Vzc0xhdGVuY3lRT1MiXTsKKyAgICBzdGF0aWMgY29uc3QgaW50IHFvcyA9IFtbTlNVc2VyRGVm
YXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGludGVnZXJGb3JLZXk6QCJXZWJLaXRQbHVnaW5Q
cm9jZXNzTGF0ZW5jeVFPUyJdOwogICAgIHJldHVybiBxb3M7CiB9CiAKIGludCBwbHVnaW5Qcm9j
ZXNzVGhyb3VnaHB1dFFPUygpCiB7Ci0gICAgc3RhdGljIGludCBxb3MgPSBbW05TVXNlckRlZmF1
bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBpbnRlZ2VyRm9yS2V5OkAiV2ViS2l0UGx1Z2luUHJv
Y2Vzc1Rocm91Z2hwdXRRT1MiXTsKKyAgICBzdGF0aWMgY29uc3QgaW50IHFvcyA9IFtbTlNVc2Vy
RGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGludGVnZXJGb3JLZXk6QCJXZWJLaXRQbHVn
aW5Qcm9jZXNzVGhyb3VnaHB1dFFPUyJdOwogICAgIHJldHVybiBxb3M7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBlNjg4MDE4ZTQ4
Yzk1NzM0OTZjNDVlYmJkODcwZjJkZTZkM2IwOWE5Li45N2ZmOWJlNjkxNjc3YWNkZTA4MWY1YzZk
ZTVjZTdmMGUxMGY1OTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCkBAIC00NjMzLDE0ICs0NjMzLDE0IEBAIHZvaWQgV2ViUGFnZTo6ZGlkRmlu
aXNoTG9hZChXZWJGcmFtZSogZnJhbWUpCiB9CiAKICNpZiBFTkFCTEUoUFJJTUFSWV9TTkFQU0hP
VFRFRF9QTFVHSU5fSEVVUklTVElDKQotc3RhdGljIGludCBwcmltYXJ5U25hcHNob3R0ZWRQbHVn
SW5TZWFyY2hMaW1pdCA9IDMwMDA7Ci1zdGF0aWMgZmxvYXQgcHJpbWFyeVNuYXBzaG90dGVkUGx1
Z0luU2VhcmNoQnVja2V0U2l6ZSA9IDEuMTsKLXN0YXRpYyBpbnQgcHJpbWFyeVNuYXBzaG90dGVk
UGx1Z0luTWluaW11bVdpZHRoID0gNDAwOwotc3RhdGljIGludCBwcmltYXJ5U25hcHNob3R0ZWRQ
bHVnSW5NaW5pbXVtSGVpZ2h0ID0gMzAwOwotc3RhdGljIHVuc2lnbmVkIG1heFByaW1hcnlTbmFw
c2hvdHRlZFBsdWdJbkRldGVjdGlvbkF0dGVtcHRzID0gMjsKLXN0YXRpYyBpbnQgZGVmZXJyZWRQ
cmltYXJ5U25hcHNob3R0ZWRQbHVnSW5EZXRlY3Rpb25EZWxheSA9IDM7Ci1zdGF0aWMgZmxvYXQg
b3ZlcmxhcHBpbmdJbWFnZUJvdW5kc1NjYWxlID0gMS4xOwotc3RhdGljIGZsb2F0IG1pbmltdW1P
dmVybGFwcGluZ0ltYWdlVG9QbHVnaW5EaW1lbnNpb25TY2FsZSA9IC45Oworc3RhdGljIGNvbnN0
IGludCBwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5TZWFyY2hMaW1pdCA9IDMwMDA7CitzdGF0aWMg
Y29uc3QgZmxvYXQgcHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luU2VhcmNoQnVja2V0U2l6ZSA9IDEu
MTsKK3N0YXRpYyBjb25zdCBpbnQgcHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luTWluaW11bVdpZHRo
ID0gNDAwOworc3RhdGljIGNvbnN0IGludCBwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5NaW5pbXVt
SGVpZ2h0ID0gMzAwOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heFByaW1hcnlTbmFwc2hvdHRl
ZFBsdWdJbkRldGVjdGlvbkF0dGVtcHRzID0gMjsKK3N0YXRpYyBjb25zdCBpbnQgZGVmZXJyZWRQ
cmltYXJ5U25hcHNob3R0ZWRQbHVnSW5EZXRlY3Rpb25EZWxheSA9IDM7CitzdGF0aWMgY29uc3Qg
ZmxvYXQgb3ZlcmxhcHBpbmdJbWFnZUJvdW5kc1NjYWxlID0gMS4xOworc3RhdGljIGNvbnN0IGZs
b2F0IG1pbmltdW1PdmVybGFwcGluZ0ltYWdlVG9QbHVnaW5EaW1lbnNpb25TY2FsZSA9IC45Owog
CiAjaWYgRU5BQkxFKFBSSU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQykKIHZvaWQg
V2ViUGFnZTo6ZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luVGltZXJGaXJlZCgpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>