<?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>98572</bug_id>
          
          <creation_ts>2012-10-05 16:21:16 -0700</creation_ts>
          <short_desc>REGRESSION(r130556): The patch wasn&apos;t reviewed by a reviewer and it is breaking Chromium Windows (Requested by jchaffraix on #webkit).</short_desc>
          <delta_ts>2012-10-05 16:28:37 -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>New Bugs</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>
          
          <blocked>97800</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>736072</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-05 16:21:16 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/130556 broke the build:
The patch wasn&apos;t reviewed by a reviewer and it is breaking Chromium Windows (Requested by jchaffraix on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736077</commentid>
    <comment_count>1</comment_count>
      <attachid>167409</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-05 16:21:58 -0700</bug_when>
    <thetext>Created attachment 167409
ROLLOUT of r130556

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736083</commentid>
    <comment_count>2</comment_count>
      <attachid>167409</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-05 16:28:34 -0700</bug_when>
    <thetext>Comment on attachment 167409
ROLLOUT of r130556

Clearing flags on attachment: 167409

Committed r130567: &lt;http://trac.webkit.org/changeset/130567&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736084</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-05 16:28:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167409</attachid>
            <date>2012-10-05 16:21:58 -0700</date>
            <delta_ts>2012-10-05 16:28:34 -0700</delta_ts>
            <desc>ROLLOUT of r130556</desc>
            <filename>bug-98572-20121005232828.patch</filename>
            <type>text/plain</type>
            <size>64463</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjFkMWIwOGMxOTkyMWRh
N2Y2MWVhMzE0NTk0OWIwNzE3N2I5OTZkOS4uMjVjMjE2MzBjMThmYmU4MjA4MDFhYWEwMjhlYjZl
OWEzZmVlZmUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDEyLTEwLTA1ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTMwNTU2IGFuZCByMTMwNTY0LgorICAgICAgICBodHRwOi8vdHJh
Yy53ZWJraXQub3JnL2NoYW5nZXNldC8xMzA1NTYKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMTMwNTY0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05ODU3MgorCisgICAgICAgIFRoZSBwYXRjaCB3YXNuJ3QgcmV2aWV3ZWQg
YnkgYSByZXZpZXdlciBhbmQgaXQgaXMgYnJlYWtpbmcKKyAgICAgICAgQ2hyb21pdW0gV2luZG93
cyAoUmVxdWVzdGVkIGJ5IGpjaGFmZnJhaXggb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBXZWJD
b3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHMuY3NzOgorICAgICAgICAodmlkZW86Oi13ZWJr
aXQtbWVkaWEtdGV4dC10cmFjay1jb250YWluZXIpOgorICAgICAgICAodmlkZW86Oi13ZWJraXQt
bWVkaWEtdGV4dC10cmFjay1wYXN0LW5vZGVzKToKKyAgICAgICAgKHZpZGVvOjotd2Via2l0LW1l
ZGlhLXRleHQtdHJhY2stZnV0dXJlLW5vZGVzKToKKyAgICAgICAgKHZpZGVvOjotd2Via2l0LW1l
ZGlhLXRleHQtdHJhY2stZGlzcGxheSk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YXR0YWNoKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVzZXJJc0ludGVyZXN0ZWRJblRoaXNMYW5n
dWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp1c2VySXNJbnRlcmVz
dGVkSW5UaGlzVHJhY2tLaW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OnNldENsb3NlZENhcHRpb25zVmlzaWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50Ojp1cGRhdGVDbG9zZWRDYXB0aW9uc0NvbnRyb2xzKToKKyAgICAgICAgKiBodG1sL0hU
TUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxNZWRpYUVsZW1lbnQpOgorICAgICAgICAq
IGh0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVu
dDo6dXBkYXRlU2l6ZXMpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1l
bnRzLmg6CisgICAgICAgIChNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50KToK
KyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6dXBkYXRlVGV4dFRyYWNrRGlz
cGxheSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuaDoK
KyAgICAgICAgKE1lZGlhQ29udHJvbFJvb3RFbGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xzLmg6CisgICAgICAgIChNZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKiBo
dG1sL3RyYWNrL1RleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OlRl
eHRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OmlzVmFsaWRLaW5kS2V5d29y
ZCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OnNldEtpbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dFRyYWNrOjpzZXRNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6
bW9kZSk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2suaDoKKyAgICAgICAgKFdlYkNv
cmU6OlRleHRUcmFjazo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6a2lu
ZCk6CisgICAgICAgIChUZXh0VHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjps
YWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OnNldExhYmVsKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRUcmFjazo6bGFuZ3VhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRy
YWNrOjpzZXRMYW5ndWFnZSk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlQm94OjpUZXh0VHJhY2tDdWVCb3gpOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlQm94OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6dXBkYXRlRGlz
cGxheVRyZWUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmg6CisgICAgICAg
IChUZXh0VHJhY2tDdWVCb3gpOgorICAgICAgICAoVGV4dFRyYWNrQ3VlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tOgorICAgICAgICAqIHJlbmRlcmluZy9DYXB0
aW9uUHJlZmVyZW5jZXNDaGFuZ2VkTGlzdGVuZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUmVuZGVy
VGhlbWUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oOgorICAgICAgICAo
UmVuZGVyVGhlbWVNYWMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OlJl
bmRlclRoZW1lTWFjKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjp+UmVuZGVy
VGhlbWVNYWMpOgorCiAyMDEyLTEwLTA1ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgogCiAgICAgICAgIFtjZ10gR3JhcGhpY3NDb250ZXh0Q0cgc2hvdWxkIGFzayBDRyB3
aGV0aGVyIHRoZSBzaGFkb3cgb2Zmc2V0IHdvcmthcm91bmQgaXMgcmVxdWlyZWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwppbmRleCA4MTEwMTkxMzQ3NWI5ZWZjYWViZmE3NWQ4ODk5NWMzNWUyNGVhZGNhLi5iNDkx
Y2MwYWQwZmViYzM4YTJmMzg0MThkMWQ3ZTJiMzc2YzRjZjM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTItMTAtMDUgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5i
b3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMzA1NTYg
YW5kIHIxMzA1NjQuCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEz
MDU1NgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMzA1NjQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NTcyCisKKyAg
ICAgICAgVGhlIHBhdGNoIHdhc24ndCByZXZpZXdlZCBieSBhIHJldmlld2VyIGFuZCBpdCBpcyBi
cmVha2luZworICAgICAgICBDaHJvbWl1bSBXaW5kb3dzIChSZXF1ZXN0ZWQgYnkgamNoYWZmcmFp
eCBvbiAjd2Via2l0KS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVy
ZmFjZS5tbToKKyAgICAgICAgKEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKToKKwogMjAxMi0x
MC0wNSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBb
Y2ddIEdyYXBoaWNzQ29udGV4dENHIHNob3VsZCBhc2sgQ0cgd2hldGhlciB0aGUgc2hhZG93IG9m
ZnNldCB3b3JrYXJvdW5kIGlzIHJlcXVpcmVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDBiMmIxMTY0ODc0MGU2
NmVlNDRjMWMyNzJkMjNmZGRlNzVkZWRhZi4uYTI0M2IzOGNmM2IyMTM0NzYwYTk0MDUyNzJjZGMy
NGYxZTg1ZmExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTEwLTA1ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTMwNTU2IGFuZCByMTMwNTY0LgorICAgICAgICBodHRwOi8vdHJh
Yy53ZWJraXQub3JnL2NoYW5nZXNldC8xMzA1NTYKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMTMwNTY0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05ODU3MgorCisgICAgICAgIFRoZSBwYXRjaCB3YXNuJ3QgcmV2aWV3ZWQg
YnkgYSByZXZpZXdlciBhbmQgaXQgaXMgYnJlYWtpbmcKKyAgICAgICAgQ2hyb21pdW0gV2luZG93
cyAoUmVxdWVzdGVkIGJ5IGpjaGFmZnJhaXggb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAg
IChJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSk6CisKIDIwMTItMTAtMDUgIFNhbSBXZWluaWcg
IDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBTZXQgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJl
Y3RvcnkgdG8gVE1QRElSIHdoZW4gZW50ZXJpbmcgdGhlIHNhbmRib3ggaW4gdGhlIHBsdWctaW4g
cHJvY2Vzcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggOGM1MTI2MWYyZWNkZjk3MTJjOTk4MTgw
YjE4YTA2MmQzNWM2YjkzMi4uNWY4N2FhYjVhZDEyOGQ3NmJlZjA3ZDRlMzkwNDgzYjIwMGRiZmM4
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTI1ODUsMTggKzI1ODUsMyBAQCBfX1pON1dlYkNv
cmUyN0FsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcjE2c2hvd0FsdGVybmF0aXZlc0VQNk5TVmll
d1JLTlNfOUZsb2F0UgogX19aTjdXZWJDb3JlMjRUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2VDMUVQ
MThOU1RleHRBbHRlcm5hdGl2ZXM4X05TUmFuZ2UKIF9fWk43V2ViQ29yZTMyY29sbGVjdERpY3Rh
dGlvblRleHRBbHRlcm5hdGl2ZXNFUDE4TlNBdHRyaWJ1dGVkU3RyaW5nUk4zV1RGNlZlY3RvcklO
U18yNFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZUVMbTBFRUUKICNlbmRpZgotCi0jaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQotX3drQ2FwdGlvbkFwcGVhcmFuY2VIYXNVc2VyUHJlZmVyZW5jZXMKLV93
a0NhcHRpb25BcHBlYXJhbmNlU2hvd0NhcHRpb25zV2hlbkF2YWlsYWJsZQotX3drQ2FwdGlvbkFw
cGVhcmFuY2VDb3B5Rm9yZWdyb3VuZENvbG9yCi1fd2tDYXB0aW9uQXBwZWFyYW5jZUNvcHlCYWNr
Z3JvdW5kQ29sb3IKLV93a0NhcHRpb25BcHBlYXJhbmNlQ29weVdpbmRvd0NvbG9yCi1fd2tDYXB0
aW9uQXBwZWFyYW5jZUdldEZvcmVncm91bmRPcGFjaXR5Ci1fd2tDYXB0aW9uQXBwZWFyYW5jZUdl
dEJhY2tncm91bmRPcGFjaXR5Ci1fd2tDYXB0aW9uQXBwZWFyYW5jZUdldFdpbmRvd09wYWNpdHkK
LV93a0NhcHRpb25BcHBlYXJhbmNlQ29weUZvbnRGb3JTdHlsZQotX3drQ2FwdGlvbkFwcGVhcmFu
Y2VHZXRSZWxhdGl2ZUNoYXJhY3RlclNpemUKLV93a0NhcHRpb25BcHBlYXJhbmNlR2V0VGV4dEVk
Z2VTdHlsZQotX3drQ2FwdGlvbkFwcGVhcmFuY2VHZXRTZXR0aW5nc0NoYW5nZWROb3RpZmljYXRp
b24KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGUwNDExZDRkZmM3Yzk5MGNiNGNmZDdkZGM2OTU3MTA0MWY1ZTA1YzIu
LmNiN2JkNjUxMGU4YzYyMzM4MzYxZjUxOTU3N2RlNDE0MjkyMGE0ZWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU4NTYsNyAr
NTg1Niw2IEBACiAJCUNBRTlGOTEwMTQ2NDQxRjAwMEMyNDVCMSAvKiBDU1NWYXJpYWJsZVZhbHVl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQUU5Rjkw
RTE0NjQ0MUYwMDBDMjQ1QjEgLyogQ1NTVmFyaWFibGVWYWx1ZS5oICovOyB9OwogCQlDRDEyN0RF
RDE0RjMwOTdEMDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDEyN0RFQjE0RjMwOTc5MDBF
ODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW0gKi87IH07CiAJCUNEMTI3REVFMTRG
MzA5ODQwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxMjdERUExNEYzMDk3OTAwRTg0Nzc5
IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQ0QyNTY1QkExNjFFNDZBOTAwNTU2MzREIC8qIENhcHRp
b25QcmVmZXJlbmNlc0NoYW5nZWRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDdFQzM4QjgxNjE1NEMxQTAwRTgxNDZEIC8qIENhcHRpb25Q
cmVmZXJlbmNlc0NoYW5nZWRMaXN0ZW5lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUNEMjdGNkU1MTQ1NzY4NUEwMDc4MjA3RCAvKiBKU01lZGlh
Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDI3RjZFMjE0NTc2NzU4MDA3ODIwN0QgLyogSlNNZWRpYUNvbnRyb2xsZXIuY3BwICov
OyB9OwogCQlDRDI3RjZFNzE0NTc3MEQzMDA3ODIwN0QgLyogTWVkaWFDb250cm9sbGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjdGNkU2MTQ1
NzcwRDMwMDc4MjA3RCAvKiBNZWRpYUNvbnRyb2xsZXIuY3BwICovOyB9OwogCQlDRDM3QjM5ODE1
QzFCOTcxMDA2REM4OTggLyogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMzdCMzc0MTVDMUE3RTEwMDZEQzg5
OCAvKiBEaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwICovOyB9OwpAQCAtNzE0OCw3ICs3MTQ3LDYg
QEAKIAkJMDdFMTE2QjAxNDg5QzlBMTAwRUM1QUNFIC8qIEpTVGV4dFRyYWNrQ3VzdG9tLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVGV4dFRyYWNrQ3VzdG9tLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdFMTE3MDYxNDg5RUJFQjAwRUM1QUNF
IC8qIEpTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDdFMzhBMEIxNDhGQ0YwQzAwNkUxRUNDIC8qIEpTVGV4dFRyYWNrQ3VzdG9tLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVGV4dFRyYWNrQ3VzdG9tLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3RUMzOEI4MTYxNTRDMUEwMEU4MTQ2RCAvKiBD
YXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkTGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZExpc3RlbmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4MDZFNTc5MTI4OTMwNDUwMDdDRUQzMiAvKiBTVkdNYXRy
aXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHTWF0cml4Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4MEU0OTIxMTI1NUYzQkQwMEVGQ0EyNyAvKiBTVkdU
ZXh0TGF5b3V0RW5naW5lQmFzZWxpbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU1ZHVGV4dExheW91dEVuZ2luZUJhc2VsaW5lLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDgwRTQ5MjIxMjU1RjNCRDAwRUZDQTI3IC8qIFNWR1RleHRMYXlvdXRF
bmdpbmVCYXNlbGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdUZXh0
TGF5b3V0RW5naW5lQmFzZWxpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIx
MzA3LDcgKzIxMzA1LDYgQEAKIAkJCQlCQ0U3ODk4NTExMjBFN0E2MDA2MEVDRTUgLyogQmlkaVJ1
bi5oICovLAogCQkJCUJDRUE0ODE1MDk3RDkzMDIwMDk0QzlFNCAvKiBicmVha19saW5lcy5jcHAg
Ki8sCiAJCQkJQkNFQTQ4MTYwOTdEOTMwMjAwOTRDOUU0IC8qIGJyZWFrX2xpbmVzLmggKi8sCi0J
CQkJMDdFQzM4QjgxNjE1NEMxQTAwRTgxNDZEIC8qIENhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWRM
aXN0ZW5lci5oICovLAogCQkJCUJDREQ0NTREMTIzNkM5NUMwMDlBNzk4NSAvKiBDb2x1bW5JbmZv
LmggKi8sCiAJCQkJOTM5MkYxNEYwQUQxODYyMzAwNjkxQkQ0IC8qIENvdW50ZXJOb2RlLmNwcCAq
LywKIAkJCQk5MzkyRjE0QjBBRDE4NjFCMDA2OTFCRDQgLyogQ291bnRlck5vZGUuaCAqLywKQEAg
LTI1NTQwLDcgKzI1NTM3LDYgQEAKIAkJCQk5MzFDQkQwRDE2MUE0NEU5MDBFNEM4NzQgLyogU2Ny
b2xsaW5nU3RhdGVOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzFDQkQwRjE2MUE0NEU5MDBF
NEM4NzQgLyogU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzFDQkQxMTE2MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5nU3RhdGVUcmVlLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlDRDI1NjVCQTE2MUU0NkE5MDA1NTYzNEQgLyogQ2FwdGlvblByZWZlcmVu
Y2VzQ2hhbmdlZExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNv
bnRyb2xzLmNzcwppbmRleCA2ZGYwMzQwMmQzYTRjOWU3OGFiZjhmNzdlYzRhYjEzYmZiYmY4NGVi
Li44MWIwZTE2YjkwNWZjNDU0Y2JhMDY4MjFlZWQ2MGM0NWQxMjNhMmJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL21lZGlhQ29udHJvbHMuY3NzCkBAIC0yMTYsNyArMjE2LDcgQEAgdmlkZW86Oi13ZWJraXQt
bWVkaWEtdGV4dC10cmFjay1jb250YWluZXIgewogICAgIGZvbnQtc2l6ZTogMjJweDsKICAgICBm
b250LWZhbWlseTogc2Fucy1zZXJpZjsKICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Ci0gICAgY29s
b3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7CisgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1
NSwgMCk7CiAKICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOwogICAgIHdvcmQtc3BhY2luZzog
bm9ybWFsOwpAQCAtMjM0LDYgKzIzNCw4IEBAIHZpZGVvOjotd2Via2l0LW1lZGlhLXRleHQtdHJh
Y2stcGFzdC1ub2RlcyB7CiAKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAu
OCk7CiAgICAgcGFkZGluZzogMnB4IDJweDsKKworICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsK
IH0KIAogdmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1mdXR1cmUtbm9kZXMgewpAQCAt
MjQ0LDEwICsyNDYsMTEgQEAgdmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1mdXR1cmUt
bm9kZXMgewogCiAgICAgbWFyZ2luLWxlZnQ6IC0ycHg7CiAgICAgcGFkZGluZzogMnB4IDJweCAy
cHggMHB4OworCisgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogfQogCiB2aWRlbzo6LXdlYmtp
dC1tZWRpYS10ZXh0LXRyYWNrLWRpc3BsYXkgewogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAg
ICBvdmVyZmxvdzogaGlkZGVuOwotICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKKyAgICBjb2xv
cjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCmluZGV4IGJjOGM1MDllM2ZjNmZjNDg4NTc2ZDFlNDlkNDM5MmM3Yzk0NDM3
NTcuLjQ3MTYxNmEwMDYwYWM4MjI5YjdiYTYzMDYzNTBlYzg1OGNhNjAwY2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNjksNyArNjksNiBAQAogI2luY2x1
ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVyaW5nQ29udGV4dC5o
IgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUg
IlJlbmRlclZpZGVvLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNjcmlw
dENvbnRyb2xsZXIuaCIKQEAgLTI4MiwxNCArMjgxLDYgQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRN
TE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9j
dW0KIAogICAgIHNldEhhc0N1c3RvbUNhbGxiYWNrcygpOwogICAgIGFkZEVsZW1lbnRUb0RvY3Vt
ZW50TWFwKHRoaXMsIGRvY3VtZW50KTsKLQotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICBp
ZiAoZG9jdW1lbnQtPnBhZ2UoKSkgewotICAgICAgICBSZW5kZXJUaGVtZSogdGhlbWUgPSBkb2N1
bWVudC0+cGFnZSgpLT50aGVtZSgpOwotICAgICAgICBpZiAodGhlbWUtPnVzZXJIYXNDYXB0aW9u
UHJlZmVyZW5jZXMoKSkKLSAgICAgICAgICAgIG1fZGlzYWJsZUNhcHRpb25zID0gIXRoZW1lLT51
c2VyUHJlZmVyc0NhcHRpb25zKCk7Ci0gICAgfQotI2VuZGlmCiB9CiAKIEhUTUxNZWRpYUVsZW1l
bnQ6On5IVE1MTWVkaWFFbGVtZW50KCkKQEAgLTU1MCwyMCArNTQxLDYgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjphdHRhY2goKQogICAgICAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5jbGllbnQo
KS0+aGlkZU1lZGlhUGxheWVyUHJveHlQbHVnaW4obV9wcm94eVdpZGdldC5nZXQoKSk7CiAgICAg
fQogI2VuZGlmCi0KLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgaWYgKGRvY3VtZW50KCkt
PnBhZ2UoKSkKLSAgICAgICAgZG9jdW1lbnQoKS0+cGFnZSgpLT50aGVtZSgpLT5yZWdpc3RlckZv
ckNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFja3ModGhpcyk7Ci0jZW5kaWYKLX0KLQot
dm9pZCBIVE1MTWVkaWFFbGVtZW50OjpkZXRhY2goKQotewotI2lmIEVOQUJMRShWSURFT19UUkFD
SykKLSAgICBpZiAoZG9jdW1lbnQoKS0+cGFnZSgpKQotICAgICAgICBkb2N1bWVudCgpLT5wYWdl
KCktPnRoZW1lKCktPnVucmVnaXN0ZXJGb3JDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJh
Y2tzKHRoaXMpOwotI2VuZGlmCi0gICAgSFRNTEVsZW1lbnQ6OmRldGFjaCgpOwogfQogCiB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OmRpZFJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlKQpAQCAtMjgwNiwz
MCArMjc4MywyOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OndpbGxSZW1vdmVUcmFjayhIVE1M
VHJhY2tFbGVtZW50KiB0cmFja0VsZW1lbnQpCiAgICAgICAgIG1fdGV4dFRyYWNrc1doZW5SZXNv
dXJjZVNlbGVjdGlvbkJlZ2FuLnJlbW92ZShpbmRleCk7CiB9CiAKLWJvb2wgSFRNTE1lZGlhRWxl
bWVudDo6dXNlclByZWZlcnNDYXB0aW9ucygpIGNvbnN0Citib29sIEhUTUxNZWRpYUVsZW1lbnQ6
OnVzZXJJc0ludGVyZXN0ZWRJblRoaXNMYW5ndWFnZShjb25zdCBTdHJpbmcmKSBjb25zdAogewot
ICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCk7Ci0gICAgaWYgKCFwYWdlKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBSZW5kZXJUaGVtZSogdGhlbWUgPSBwYWdlLT50aGVt
ZSgpOwotICAgIHJldHVybiB0aGVtZS0+dXNlckhhc0NhcHRpb25QcmVmZXJlbmNlcygpICYmIHRo
ZW1lLT51c2VyUHJlZmVyc0NhcHRpb25zKCk7CisgICAgLy8gRklYTUU6IGNoZWNrIHRoZSB1c2Vy
J3MgbGFuZ3VhZ2UgcHJlZmVyZW5jZSAtIGJ1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzQxMjEKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojp1c2Vy
SXNJbnRlcmVzdGVkSW5UaGlzVHJhY2tLaW5kKFN0cmluZyBraW5kKSBjb25zdAogeworICAgIC8v
IElmIC4uLiB0aGUgdXNlciBoYXMgaW5kaWNhdGVkIGFuIGludGVyZXN0IGluIGhhdmluZyBhIHRy
YWNrIHdpdGggdGhpcyB0ZXh0IHRyYWNrIGtpbmQsIHRleHQgdHJhY2sgbGFuZ3VhZ2UsIC4uLiAK
ICAgICBpZiAobV9kaXNhYmxlQ2FwdGlvbnMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50KCktPnNldHRpbmdzKCk7Ci0gICAgYm9vbCB1
c2VyUHJlZmVyc0NhcHRpb25zT3JTdWJ0aXRsZXMgPSBtX2Nsb3NlZENhcHRpb25zVmlzaWJsZSB8
fCB1c2VyUHJlZmVyc0NhcHRpb25zKCk7CisgICAgaWYgKCFzZXR0aW5ncykKKyAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgaWYgKGtpbmQgPT0gVGV4dFRyYWNrOjpzdWJ0aXRsZXNLZXl3b3Jk
KCkpCi0gICAgICAgIHJldHVybiAoc2V0dGluZ3MgJiYgc2V0dGluZ3MtPnNob3VsZERpc3BsYXlT
dWJ0aXRsZXMoKSkgfHwgdXNlclByZWZlcnNDYXB0aW9uc09yU3VidGl0bGVzOworICAgICAgICBy
ZXR1cm4gc2V0dGluZ3MtPnNob3VsZERpc3BsYXlTdWJ0aXRsZXMoKSB8fCBtX2Nsb3NlZENhcHRp
b25zVmlzaWJsZTsKICAgICBpZiAoa2luZCA9PSBUZXh0VHJhY2s6OmNhcHRpb25zS2V5d29yZCgp
KQotICAgICAgICByZXR1cm4gKHNldHRpbmdzICYmIHNldHRpbmdzLT5zaG91bGREaXNwbGF5Q2Fw
dGlvbnMoKSkgfHwgdXNlclByZWZlcnNDYXB0aW9uc09yU3VidGl0bGVzOworICAgICAgICByZXR1
cm4gc2V0dGluZ3MtPnNob3VsZERpc3BsYXlDYXB0aW9ucygpIHx8IG1fY2xvc2VkQ2FwdGlvbnNW
aXNpYmxlOwogICAgIGlmIChraW5kID09IFRleHRUcmFjazo6ZGVzY3JpcHRpb25zS2V5d29yZCgp
KQotICAgICAgICByZXR1cm4gc2V0dGluZ3MgJiYgc2V0dGluZ3MtPnNob3VsZERpc3BsYXlUZXh0
RGVzY3JpcHRpb25zKCk7CisgICAgICAgIHJldHVybiBzZXR0aW5ncy0+c2hvdWxkRGlzcGxheVRl
eHREZXNjcmlwdGlvbnMoKSB8fCBtX2Nsb3NlZENhcHRpb25zVmlzaWJsZTsKIAogICAgIHJldHVy
biBmYWxzZTsKIH0KQEAgLTM5OTQsMTIgKzM5NjksMjIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50
OjpzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCBjbG9zZWRDYXB0aW9uVmlzaWJsZSkKICNp
ZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6Ondl
YmtpdFZpZGVvVHJhY2tFbmFibGVkKCkpIHsKICAgICAgICAgbV9kaXNhYmxlQ2FwdGlvbnMgPSAh
bV9jbG9zZWRDYXB0aW9uc1Zpc2libGU7CisgICAgICAgIAorICAgICAgICAvLyBNYXJrIGFsbCB0
cmFjayBlbGVtZW50cyBhcyBub3QgImNvbmZpZ3VyZWQiIHNvIHRoYXQgY29uZmlndXJlVGV4dFRy
YWNrcygpCisgICAgICAgIC8vIHdpbGwgcmVjb25zaWRlciB3aGljaCB0cmFja3MgdG8gZGlzcGxh
eSBpbiBsaWdodCBvZiBuZXcgdXNlciBwcmVmZXJlbmNlcworICAgICAgICAvLyAoZS5nLiBkZWZh
dWx0IHRyYWNrcyBzaG91bGQgbm90IGJlIGRpc3BsYXllZCBpZiB0aGUgdXNlciBoYXMgdHVybmVk
IG9mZgorICAgICAgICAvLyBjYXB0aW9ucyBhbmQgbm9uLWRlZmF1bHQgdHJhY2tzIHNob3VsZCBi
ZSBkaXNwbGF5ZWQgYmFzZWQgb24gbGFuZ3VhZ2UKKyAgICAgICAgLy8gcHJlZmVyZW5jZXMgaWYg
dGhlIHVzZXIgaGFzIHR1cm5lZCBjYXB0aW9ucyBvbikuCisgICAgICAgIGZvciAoTm9kZSogbm9k
ZSA9IGZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpIHsKKyAg
ICAgICAgICAgIGlmICghbm9kZS0+aGFzVGFnTmFtZSh0cmFja1RhZykpCisgICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICBIVE1MVHJhY2tFbGVtZW50KiB0cmFja0VsZW1lbnQg
PSBzdGF0aWNfY2FzdDxIVE1MVHJhY2tFbGVtZW50Kj4obm9kZSk7CisgICAgICAgICAgICBpZiAo
dHJhY2tFbGVtZW50LT5raW5kKCkgPT0gVGV4dFRyYWNrOjpjYXB0aW9uc0tleXdvcmQoKQorICAg
ICAgICAgICAgICAgIHx8IHRyYWNrRWxlbWVudC0+a2luZCgpID09IFRleHRUcmFjazo6c3VidGl0
bGVzS2V5d29yZCgpKQorICAgICAgICAgICAgICAgIHRyYWNrRWxlbWVudC0+c2V0SGFzQmVlbkNv
bmZpZ3VyZWQoZmFsc2UpOworICAgICAgICB9CiAKLSAgICAgICAgbWFya0NhcHRpb25BbmRTdWJ0
aXRsZVRyYWNrc0FzVW5jb25maWd1cmVkKCk7CiAgICAgICAgIGNvbmZpZ3VyZVRleHRUcmFja3Mo
KTsKLQotICAgICAgICBpZiAoIW1fZGlzYWJsZUNhcHRpb25zICYmIChoYXNNZWRpYUNvbnRyb2xz
KCkgfHwgY3JlYXRlTWVkaWFDb250cm9scygpKSkKLSAgICAgICAgICAgIG1lZGlhQ29udHJvbHMo
KS0+dXNlckNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKTsKICAgICB9CiAjZWxzZQogICAgIGlm
IChoYXNNZWRpYUNvbnRyb2xzKCkpCkBAIC00MTg3LDQzICs0MTcyLDYgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50Ojp1cGRhdGVDbG9zZWRDYXB0aW9uc0NvbnRyb2xzKCkKICAgICAgICAgICAgIG1l
ZGlhQ29udHJvbHMoKS0+dXBkYXRlVGV4dFRyYWNrRGlzcGxheSgpOwogICAgIH0KIH0KLQotdm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjpjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCkKLXsKLSAgICBp
ZiAoIWlzVmlkZW8oKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbWFya0NhcHRpb25BbmRTdWJ0
aXRsZVRyYWNrc0FzVW5jb25maWd1cmVkKCk7Ci0gICAgY29uZmlndXJlVGV4dFRyYWNrcygpOwot
Ci0gICAgaWYgKCFoYXNNZWRpYUNvbnRyb2xzKCkgJiYgIWNyZWF0ZU1lZGlhQ29udHJvbHMoKSkK
LSAgICAgICAgcmV0dXJuOwotICAgIG1lZGlhQ29udHJvbHMoKS0+dXNlckNhcHRpb25QcmVmZXJl
bmNlc0NoYW5nZWQoKTsKLX0KLQotdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptYXJrQ2FwdGlvbkFu
ZFN1YnRpdGxlVHJhY2tzQXNVbmNvbmZpZ3VyZWQoKQotewotICAgIC8vIE1hcmsgYWxsIHRyYWNr
IGVsZW1lbnRzIGFzIG5vdCAiY29uZmlndXJlZCIgc28gdGhhdCBjb25maWd1cmVUZXh0VHJhY2tz
KCkKLSAgICAvLyB3aWxsIHJlY29uc2lkZXIgd2hpY2ggdHJhY2tzIHRvIGRpc3BsYXkgaW4gbGln
aHQgb2YgbmV3IHVzZXIgcHJlZmVyZW5jZXMKLSAgICAvLyAoZS5nLiBkZWZhdWx0IHRyYWNrcyBz
aG91bGQgbm90IGJlIGRpc3BsYXllZCBpZiB0aGUgdXNlciBoYXMgdHVybmVkIG9mZgotICAgIC8v
IGNhcHRpb25zIGFuZCBub24tZGVmYXVsdCB0cmFja3Mgc2hvdWxkIGJlIGRpc3BsYXllZCBiYXNl
ZCBvbiBsYW5ndWFnZQotICAgIC8vIHByZWZlcmVuY2VzIGlmIHRoZSB1c2VyIGhhcyB0dXJuZWQg
Y2FwdGlvbnMgb24pLgotICAgIGZvciAoUmVmUHRyPE5vZGU+IG5vZGUgPSBmaXJzdENoaWxkKCk7
IG5vZGU7IG5vZGUgPSBub2RlLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIGlmICghbm9kZS0+
aGFzVGFnTmFtZSh0cmFja1RhZykpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgCi0g
ICAgICAgIEhUTUxUcmFja0VsZW1lbnQqIHRyYWNrRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxU
cmFja0VsZW1lbnQqPihub2RlLmdldCgpKTsKLSAgICAgICAgUmVmUHRyPFRleHRUcmFjaz4gdGV4
dFRyYWNrID0gdHJhY2tFbGVtZW50LT50cmFjaygpOwotICAgICAgICBpZiAoIXRleHRUcmFjaykK
LSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAKLSAgICAgICAgU3RyaW5nIGtpbmQgPSB0
ZXh0VHJhY2stPmtpbmQoKTsKLQotICAgICAgICBpZiAoa2luZCA9PSBUZXh0VHJhY2s6OnN1YnRp
dGxlc0tleXdvcmQoKSB8fCBraW5kID09IFRleHRUcmFjazo6Y2FwdGlvbnNLZXl3b3JkKCkpCi0g
ICAgICAgICAgICB0cmFja0VsZW1lbnQtPnNldEhhc0JlZW5Db25maWd1cmVkKGZhbHNlKTsKLSAg
ICB9Ci19Ci0KICNlbmRpZgogCiB2b2lkKiBIVE1MTWVkaWFFbGVtZW50OjpwcmVEaXNwYXRjaEV2
ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oCmluZGV4IDdlODRiNzVkOTI5ZjE3MmU3Y2M2ODEwMjhlMmQ2ZGQzMmNiNGZiZTkuLjgyMWUy
Mjg1YjQxY2RjZWIwNTYzN2NkY2I1MDE4NTg5OGU1YmQ5ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJIVE1MRWxl
bWVudC5oIgogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUgIkNhcHRpb25Q
cmVmZXJlbmNlc0NoYW5nZWRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVl
LmgiCiAjaW5jbHVkZSAiTWVkaWFDYW5TdGFydExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiTWVkaWFD
b250cm9sbGVySW50ZXJmYWNlLmgiCkBAIC03OSw3ICs3OCw3IEBAIHR5cGVkZWYgVmVjdG9yPEN1
ZUludGVydmFsVHJlZTo6SW50ZXJ2YWxUeXBlPiBDdWVMaXN0OwogCiBjbGFzcyBIVE1MTWVkaWFF
bGVtZW50IDogcHVibGljIEhUTUxFbGVtZW50LCBwdWJsaWMgTWVkaWFQbGF5ZXJDbGllbnQsIHB1
YmxpYyBNZWRpYVBsYXllclN1cHBvcnRzVHlwZUNsaWVudCwgcHJpdmF0ZSBNZWRpYUNhblN0YXJ0
TGlzdGVuZXIsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBNZWRpYUNvbnRyb2xsZXJJ
bnRlcmZhY2UKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgLCBwcml2YXRlIFRleHRUcmFj
a0NsaWVudCwgcHJpdmF0ZSBDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkTGlzdGVuZXIKKyAgICAs
IHByaXZhdGUgVGV4dFRyYWNrQ2xpZW50CiAjZW5kaWYKIHsKIHB1YmxpYzoKQEAgLTI0MSw3ICsy
NDAsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb25maWd1cmVUZXh0VHJhY2tzKCk7CiAgICAgdm9p
ZCBjb25maWd1cmVUZXh0VHJhY2tHcm91cChjb25zdCBUcmFja0dyb3VwJikgY29uc3Q7CiAKLSAg
ICBib29sIHVzZXJQcmVmZXJzQ2FwdGlvbnMoKSBjb25zdDsKICAgICBib29sIHVzZXJJc0ludGVy
ZXN0ZWRJblRoaXNUcmFja0tpbmQoU3RyaW5nKSBjb25zdDsKICAgICBib29sIHRleHRUcmFja3NB
cmVSZWFkeSgpIGNvbnN0OwogICAgIHZvaWQgY29uZmlndXJlVGV4dFRyYWNrRGlzcGxheSgpOwpA
QCAtMzI3LDggKzMyNSw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgQXR0cmlidXRlJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGZpbmlz
aFBhcnNpbmdDaGlsZHJlbigpOwogICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25z
dCBBdHRyaWJ1dGUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRldGFjaCgpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBhdHRhY2goKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVu
dChEb2N1bWVudCogb2xkRG9jdW1lbnQpIE9WRVJSSURFOwogCkBAIC00NzcsMTQgKzQ3NCwxMiBA
QCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIHZvaWQgdXBkYXRlQWN0
aXZlVGV4dFRyYWNrQ3VlcyhmbG9hdCk7CisgICAgYm9vbCB1c2VySXNJbnRlcmVzdGVkSW5UaGlz
TGFuZ3VhZ2UoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgSFRNTFRyYWNrRWxlbWVudCogc2hv
d2luZ1RyYWNrV2l0aFNhbWVLaW5kKEhUTUxUcmFja0VsZW1lbnQqKSBjb25zdDsKIAogICAgIGJv
b2wgaWdub3JlVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKSBjb25zdCB7IHJldHVybiBtX2ln
bm9yZVRyYWNrRGlzcGxheVVwZGF0ZSA+IDA7IH0KICAgICB2b2lkIGJlZ2luSWdub3JpbmdUcmFj
a0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpIHsgKyttX2lnbm9yZVRyYWNrRGlzcGxheVVwZGF0ZTsg
fQogICAgIHZvaWQgZW5kSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpIHsgQVNT
RVJUKG1faWdub3JlVHJhY2tEaXNwbGF5VXBkYXRlKTsgLS1tX2lnbm9yZVRyYWNrRGlzcGxheVVw
ZGF0ZTsgfQotCi0gICAgdm9pZCBtYXJrQ2FwdGlvbkFuZFN1YnRpdGxlVHJhY2tzQXNVbmNvbmZp
Z3VyZWQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgY2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpIE9W
RVJSSURFOwogI2VuZGlmCiAKICAgICAvLyBUaGVzZSAiaW50ZXJuYWwiIGZ1bmN0aW9ucyBkbyBu
b3QgY2hlY2sgdXNlciBnZXN0dXJlIHJlc3RyaWN0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAppbmRleCBjNTE5MzFiYTIx
NzcwYzYwODgxNjVlOTk5YzE1OTIyYTdkNTczYTEyLi44ODFjMmRlYjVjY2EyZTdhOWI4ZjE0ZjRk
ZjBjNWI1NjVhMWFjZTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9sRWxlbWVudHMuY3BwCkBAIC00NSwxMSArNDUsOSBAQAogI2luY2x1ZGUgIkhU
TUxWaWRlb0VsZW1lbnQuaCIKICNpbmNsdWRlICJMYXlvdXRSZXBhaW50ZXIuaCIKICNpbmNsdWRl
ICJMb2NhbGl6ZWRTdHJpbmdzLmgiCi0jaW5jbHVkZSAiTWVkaWFDb250cm9sUm9vdEVsZW1lbnQu
aCIKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xzLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJSZW5k
ZXJEZXByZWNhdGVkRmxleGlibGVCb3guaCIKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNp
bmNsdWRlICJSZW5kZXJNZWRpYS5oIgpAQCAtMTMxMiwzMiArMTMxMCw2IEBAIGNvbnN0IEF0b21p
Y1N0cmluZyYgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNl
dWRvSWQoKSBjb25zCiAgICAgcmV0dXJuIGlkOwogfQogCi12b2lkIE1lZGlhQ29udHJvbFRleHRU
cmFja0NvbnRhaW5lckVsZW1lbnQ6OnVzZXJDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCkKLXsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEtVUkwsIGNhcHRpb25zU3R5bGVTaGVldFVSTCwgKFBh
cnNlZFVSTFN0cmluZywgInVzZXItY2FwdGlvbnMtb3ZlcnJpZGU6MDFGNkFGMTItQzNCMC00Rjcw
LUFGNUUtQTNFMDAyMzREQzIzIikpOwotCi0gICAgUGFnZSogcGFnZSA9IGRvY3VtZW50KCktPnBh
Z2UoKTsKLSAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJlbmRlclRoZW1l
KiB0aGVtZSA9IHBhZ2UtPnRoZW1lKCk7Ci0gICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVt
ZW50ID0gdG9QYXJlbnRNZWRpYUVsZW1lbnQodGhpcyk7Ci0KLSAgICBtZWRpYUVsZW1lbnQtPnNl
dE5lZWRzU3R5bGVSZWNhbGMoKTsKLQotICAgIHBhZ2UtPmdyb3VwKCkucmVtb3ZlVXNlclN0eWxl
U2hlZXRGcm9tV29ybGQobWFpblRocmVhZE5vcm1hbFdvcmxkKCksIGNhcHRpb25zU3R5bGVTaGVl
dFVSTCk7Ci0KLSAgICBpZiAoIW1lZGlhRWxlbWVudC0+Y2xvc2VkQ2FwdGlvbnNWaXNpYmxlKCkg
JiYgIXRoZW1lLT51c2VySGFzQ2FwdGlvblByZWZlcmVuY2VzKCkpCi0gICAgICAgIHJldHVybjsK
LQotICAgIFN0cmluZyBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldCA9IHRoZW1lLT5jYXB0aW9u
c1N0eWxlU2hlZXRPdmVycmlkZSgpOwotICAgIGlmIChjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVl
dC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHBhZ2UtPmdyb3VwKCkuYWRkVXNl
clN0eWxlU2hlZXRUb1dvcmxkKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBjYXB0aW9uc092ZXJy
aWRlU3R5bGVTaGVldCwgY2FwdGlvbnNTdHlsZVNoZWV0VVJMLCBhZG9wdFB0cihuZXcgVmVjdG9y
PFN0cmluZz4pLCBhZG9wdFB0cihuZXcgVmVjdG9yPFN0cmluZz4pLCAKLSAgICAgICAgSW5qZWN0
SW5BbGxGcmFtZXMsIFVzZXJTdHlsZUF1dGhvckxldmVsLCBJbmplY3RJbkV4aXN0aW5nRG9jdW1l
bnRzKTsKLX0KLQogdm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp1
cGRhdGVEaXNwbGF5KCkKIHsKICAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQgPSB0
b1BhcmVudE1lZGlhRWxlbWVudCh0aGlzKTsKQEAgLTE0MDQsMTggKzEzNzYsMjIgQEAgdm9pZCBN
ZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp1cGRhdGVEaXNwbGF5KCkKICAg
ICBoYXNDaGlsZE5vZGVzKCkgPyBzaG93KCkgOiBoaWRlKCk7CiB9CiAKK3N0YXRpYyBjb25zdCBm
bG9hdCBtaW1pbXVtRm9udFNpemUgPSAxNjsKK3N0YXRpYyBjb25zdCBmbG9hdCB2aWRlb0hlaWdo
dEZvbnRTaXplUGVyY2VudGFnZSA9IC4wNTsKK3N0YXRpYyBjb25zdCBmbG9hdCB0cmFja0JvdHRv
bU11bHRpcGxpZXIgPSAuOTsKKwogdm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJF
bGVtZW50Ojp1cGRhdGVTaXplcygpCiB7CiAgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVt
ZW50ID0gdG9QYXJlbnRNZWRpYUVsZW1lbnQodGhpcyk7CiAgICAgaWYgKCFtZWRpYUVsZW1lbnQg
fHwgIW1lZGlhRWxlbWVudC0+cmVuZGVyZXIoKSB8fCAhbWVkaWFFbGVtZW50LT5yZW5kZXJlcigp
LT5pc1ZpZGVvKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghZG9jdW1lbnQoKS0+cGFn
ZSgpKQotICAgICAgICByZXR1cm47Ci0KICAgICBJbnRSZWN0IHZpZGVvQm94ID0gdG9SZW5kZXJW
aWRlbyhtZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCkpLT52aWRlb0JveCgpOworICAgIGlmIChtX3Zp
ZGVvRGlzcGxheVNpemUgPT0gdmlkZW9Cb3gpCisgICAgICAgIHJldHVybjsKKyAgICBtX3ZpZGVv
RGlzcGxheVNpemUgPSB2aWRlb0JveDsKIAotICAgIGZsb2F0IGZvbnRTaXplID0gdmlkZW9Cb3gu
c2l6ZSgpLmhlaWdodCgpICogKGRvY3VtZW50KCktPnBhZ2UoKS0+dGhlbWUoKS0+Y2FwdGlvbkZv
bnRTaXplU2NhbGUoKSk7CisgICAgZmxvYXQgZm9udFNpemUgPSBtX3ZpZGVvRGlzcGxheVNpemUu
c2l6ZSgpLmhlaWdodCgpICogdmlkZW9IZWlnaHRGb250U2l6ZVBlcmNlbnRhZ2U7CiAgICAgaWYg
KGZvbnRTaXplICE9IG1fZm9udFNpemUpIHsKICAgICAgICAgbV9mb250U2l6ZSA9IGZvbnRTaXpl
OwogICAgICAgICBzZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5Rm9udFNpemUsIFN0
cmluZzo6bnVtYmVyKGZvbnRTaXplKSArICJweCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgKaW5kZXggN2M3YzVkZDUyMTllYzViNDYy
YzIyMzI5NTJjNTY2ZmQ1ZDViOTg4Yi4uZWZmZGNlZTdmMWM3ZjUyNzVhYWIyY2ExY2ZiZjlmMDZj
YTQ0NDExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sRWxlbWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xFbGVtZW50cy5oCkBAIC01MzcsNyArNTM3LDYgQEAgY2xhc3MgTWVkaWFDb250cm9sVGV4dFRy
YWNrQ29udGFpbmVyRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xFbGVtZW50IHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJF
bGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKIAotICAgIHZvaWQgdXNlckNhcHRpb25QcmVmZXJl
bmNlc0NoYW5nZWQoKTsKICAgICB2b2lkIHVwZGF0ZURpc3BsYXkoKTsKICAgICB2b2lkIHVwZGF0
ZVNpemVzKCk7CiAKQEAgLTU0OCw4ICs1NDcsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgTWVk
aWFDb250cm9sRWxlbWVudFR5cGUgZGlzcGxheVR5cGUoKSBjb25zdCB7IHJldHVybiBNZWRpYVRl
eHRUcmFja0Rpc3BsYXlDb250YWluZXI7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKIAotICAgIHZvaWQgdXBkYXRlQ2FwdGlvbkFwcGVh
cmFuY2UoKTsKLQorICAgIEludFJlY3QgbV92aWRlb0Rpc3BsYXlTaXplOwogICAgIGZsb2F0IG1f
Zm9udFNpemU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xSb290RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xSb290RWxlbWVudC5jcHAKaW5kZXggMDM2OGU4N2ZjMTY3YTFmZTk3ZWYwNjgx
NWE3YmU0ZTA1MDNhZjdkZi4uZWY1NDFiYWEzM2IxZThiZGYwZjA5MzIyYzVmZTA5NzZiMjcxNzc4
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9v
dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJv
bFJvb3RFbGVtZW50LmNwcApAQCAtNjMwLDEyICs2MzAsNiBAQCB2b2lkIE1lZGlhQ29udHJvbFJv
b3RFbGVtZW50OjpjcmVhdGVUZXh0VHJhY2tEaXNwbGF5KCkKICAgICBpbnNlcnRCZWZvcmUodGV4
dERpc3BsYXlDb250YWluZXIucmVsZWFzZSgpLCBtX3BhbmVsLCBlYywgdHJ1ZSk7CiB9CiAKLXZv
aWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnVzZXJDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2Vk
KCkKLXsKLSAgICBpZiAobV90ZXh0RGlzcGxheUNvbnRhaW5lcikKLSAgICAgICAgbV90ZXh0RGlz
cGxheUNvbnRhaW5lci0+dXNlckNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKTsKLX0KLQogdm9p
ZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6c2hvd1RleHRUcmFja0Rpc3BsYXkoKQogewogICAg
IGlmICghbV90ZXh0RGlzcGxheUNvbnRhaW5lcikKQEAgLTY1Niw2ICs2NTAsNyBAQCB2b2lkIE1l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Ojp1cGRhdGVUZXh0VHJhY2tEaXNwbGF5KCkKICAgICAgICAg
Y3JlYXRlVGV4dFRyYWNrRGlzcGxheSgpOwogCiAgICAgbV90ZXh0RGlzcGxheUNvbnRhaW5lci0+
dXBkYXRlRGlzcGxheSgpOworCiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50LmgKaW5kZXggOTAxMGUxMDUxNTk3
NjA1ZWJhYzhlZGRiMGFkMWNiMmFkOGNmMTYwOS4uYTBiMDlkODc0NWI3YWM2MWE3ZDU5NmQ0MWEy
Mzg5NjZiNjFmNGI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sUm9vdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xSb290RWxlbWVudC5oCkBAIC0xMDUsMTAgKzEwNSw5IEBAIHB1YmxpYzoKIAog
I2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICB2b2lkIGNyZWF0ZVRleHRUcmFja0Rpc3BsYXko
KTsKLSAgICB2aXJ0dWFsIHZvaWQgdXNlckNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2hvd1RleHRUcmFja0Rpc3BsYXkoKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgaGlkZVRleHRUcmFja0Rpc3BsYXkoKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlVGV4dFRyYWNrRGlzcGxheSgpIE9WRVJSSURFOworICAgIHZvaWQg
c2hvd1RleHRUcmFja0Rpc3BsYXkoKTsKKyAgICB2b2lkIGhpZGVUZXh0VHJhY2tEaXNwbGF5KCk7
CisgICAgdm9pZCB1cGRhdGVUZXh0VHJhY2tEaXNwbGF5KCk7CiAjZW5kaWYKIAogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRIaWRlQ29udHJvbHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L01lZGlhQ29udHJvbHMuaAppbmRleCA4YTk5YmMxOGU0NjhlNmMxNzU5YmIyMzQ5YzgwNTAxNDBh
YTY2MjQ0Li4yODkwOGE5YTEwN2U0NTcwMzkyODY4MzIwMzNkYmEyOGQwMzdiNjM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5oCkBAIC03Myw3ICs3Myw2IEBA
IGNsYXNzIE1lZGlhQ29udHJvbHMgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRIaWRlQ29udHJvbHMoKSA9IDA7CiAKICNpZiBFTkFCTEUoVklERU9fVFJB
Q0spCi0gICAgdmlydHVhbCB2b2lkIHVzZXJDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCkgeyB9
OwogICAgIHZpcnR1YWwgdm9pZCBzaG93VGV4dFRyYWNrRGlzcGxheSgpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgaGlkZVRleHRUcmFja0Rpc3BsYXkoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZVRleHRUcmFja0Rpc3BsYXkoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFjay5jcHAKaW5kZXggMWIzNWVmY2FkODRlNmMzYWYzYWQzOWQ5ODdjY2M0MGQ5MTQyYWI0Yi4u
NmFiY2FjY2Q4NzYwZmE1ZTE0NWFkMGNhODFlZWFkYmEwOThhYTdhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcApAQCAtOTQsNyArOTQsNyBAQCBjb25zdCBBdG9taWNT
dHJpbmcmIFRleHRUcmFjazo6c2hvd2luZ0tleXdvcmQoKQogICAgIHJldHVybiBlbmRlZDsKIH0K
IAotVGV4dFRyYWNrOjpUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
VGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIGNvbnN0IEF0b21pY1N0cmluZyYga2luZCwgY29uc3Qg
QXRvbWljU3RyaW5nJiBsYWJlbCwgY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSwgVGV4dFRy
YWNrVHlwZSB0eXBlKQorVGV4dFRyYWNrOjpUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIGNvbnN0IFN0cmluZyYga2luZCwg
Y29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgVGV4dFRyYWNrVHlw
ZSB0eXBlKQogICAgIDogVHJhY2tCYXNlKGNvbnRleHQsIFRyYWNrQmFzZTo6VGV4dFRyYWNrKQog
ICAgICwgbV9jdWVzKDApCiAgICAgLCBtX21lZGlhRWxlbWVudCgwKQpAQCAtMTE3LDcgKzExNyw3
IEBAIFRleHRUcmFjazo6flRleHRUcmFjaygpCiAgICAgY2xlYXJDbGllbnQoKTsKIH0KIAotYm9v
bCBUZXh0VHJhY2s6OmlzVmFsaWRLaW5kS2V5d29yZChjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVl
KQorYm9vbCBUZXh0VHJhY2s6OmlzVmFsaWRLaW5kS2V5d29yZChjb25zdCBTdHJpbmcmIHZhbHVl
KQogewogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2YWx1ZSwgc3VidGl0bGVzS2V5d29yZCgp
KSkKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0xMzMsNyArMTMzLDcgQEAgYm9vbCBUZXh0VHJh
Y2s6OmlzVmFsaWRLaW5kS2V5d29yZChjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotdm9pZCBUZXh0VHJhY2s6OnNldEtpbmQoY29uc3QgQXRvbWljU3Ry
aW5nJiBraW5kKQordm9pZCBUZXh0VHJhY2s6OnNldEtpbmQoY29uc3QgU3RyaW5nJiBraW5kKQog
ewogICAgIFN0cmluZyBvbGRLaW5kID0gbV9raW5kOwogCkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9p
ZCBUZXh0VHJhY2s6OnNldEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJiBraW5kKQogICAgICAgICBt
X2NsaWVudC0+dGV4dFRyYWNrS2luZENoYW5nZWQodGhpcyk7CiB9CiAKLXZvaWQgVGV4dFRyYWNr
OjpzZXRNb2RlKGNvbnN0IEF0b21pY1N0cmluZyYgbW9kZSkKK3ZvaWQgVGV4dFRyYWNrOjpzZXRN
b2RlKGNvbnN0IFN0cmluZyYgbW9kZSkKIHsKICAgICAvLyBPbiBzZXR0aW5nLCBpZiB0aGUgbmV3
IHZhbHVlIGlzbid0IGVxdWFsIHRvIHdoYXQgdGhlIGF0dHJpYnV0ZSB3b3VsZCBjdXJyZW50bHkK
ICAgICAvLyByZXR1cm4sIHRoZSBuZXcgdmFsdWUgbXVzdCBiZSBwcm9jZXNzZWQgYXMgZm9sbG93
cyAuLi4KQEAgLTE3NCw3ICsxNzQsNyBAQCB2b2lkIFRleHRUcmFjazo6c2V0TW9kZShjb25zdCBB
dG9taWNTdHJpbmcmIG1vZGUpCiAgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tNb2RlQ2hhbmdl
ZCh0aGlzKTsKIH0KIAotQXRvbWljU3RyaW5nIFRleHRUcmFjazo6bW9kZSgpIGNvbnN0CitTdHJp
bmcgVGV4dFRyYWNrOjptb2RlKCkgY29uc3QKIHsKICAgICAvLyBUaGUgdGV4dCB0cmFjayAic2hv
d2luZyIgYW5kICJzaG93aW5nIGJ5IGRlZmF1bHQiIG1vZGVzIHJldHVybiB0aGUgc3RyaW5nICJz
aG93aW5nIi4KICAgICBpZiAobV9zaG93aW5nQnlEZWZhdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVGV4dFRyYWNrLmgKaW5kZXggM2JhNGQzN2JhOWJmYTQ2MDBmMGRkMWVlZTA3Y2JiODI1OGU0
ZDJmZi4uMmM3OTllZDA0NzBmNThmNjQzYTJiYzc5YzdjNjQxNGM3YzIxMmI2YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKIAog
Y2xhc3MgVGV4dFRyYWNrIDogcHVibGljIFRyYWNrQmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8VGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIGNvbnN0IEF0b21pY1N0cmluZyYga2luZCwg
Y29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCwgY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgY29uc3QgU3RyaW5nJiBr
aW5kLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJpbmcmIGxhbmd1YWdlKQogICAgIHsK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCBr
aW5kLCBsYWJlbCwgbGFuZ3VhZ2UsIEFkZFRyYWNrKSk7CiAgICAgfQpAQCAtNjMsMjggKzYzLDI4
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1lZGlhRWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiBl
bGVtZW50KSB7IG1fbWVkaWFFbGVtZW50ID0gZWxlbWVudDsgfQogICAgIEhUTUxNZWRpYUVsZW1l
bnQqIG1lZGlhRWxlbWVudCgpIHsgcmV0dXJuIG1fbWVkaWFFbGVtZW50OyB9CiAKLSAgICBBdG9t
aWNTdHJpbmcga2luZCgpIGNvbnN0IHsgcmV0dXJuIG1fa2luZDsgfQotICAgIHZvaWQgc2V0S2lu
ZChjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAgICBTdHJpbmcga2luZCgpIGNvbnN0IHsgcmV0dXJu
IG1fa2luZDsgfQorICAgIHZvaWQgc2V0S2luZChjb25zdCBTdHJpbmcmKTsKIAogICAgIHN0YXRp
YyBjb25zdCBBdG9taWNTdHJpbmcmIHN1YnRpdGxlc0tleXdvcmQoKTsKICAgICBzdGF0aWMgY29u
c3QgQXRvbWljU3RyaW5nJiBjYXB0aW9uc0tleXdvcmQoKTsKICAgICBzdGF0aWMgY29uc3QgQXRv
bWljU3RyaW5nJiBkZXNjcmlwdGlvbnNLZXl3b3JkKCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21p
Y1N0cmluZyYgY2hhcHRlcnNLZXl3b3JkKCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmlu
ZyYgbWV0YWRhdGFLZXl3b3JkKCk7Ci0gICAgc3RhdGljIGJvb2wgaXNWYWxpZEtpbmRLZXl3b3Jk
KGNvbnN0IEF0b21pY1N0cmluZyYpOworICAgIHN0YXRpYyBib29sIGlzVmFsaWRLaW5kS2V5d29y
ZChjb25zdCBTdHJpbmcmKTsKIAotICAgIEF0b21pY1N0cmluZyBsYWJlbCgpIGNvbnN0IHsgcmV0
dXJuIG1fbGFiZWw7IH0KLSAgICB2b2lkIHNldExhYmVsKGNvbnN0IEF0b21pY1N0cmluZyYgbGFi
ZWwpIHsgbV9sYWJlbCA9IGxhYmVsOyB9CisgICAgU3RyaW5nIGxhYmVsKCkgY29uc3QgeyByZXR1
cm4gbV9sYWJlbDsgfQorICAgIHZvaWQgc2V0TGFiZWwoY29uc3QgU3RyaW5nJiBsYWJlbCkgeyBt
X2xhYmVsID0gbGFiZWw7IH0KIAotICAgIEF0b21pY1N0cmluZyBsYW5ndWFnZSgpIGNvbnN0IHsg
cmV0dXJuIG1fbGFuZ3VhZ2U7IH0KLSAgICB2b2lkIHNldExhbmd1YWdlKGNvbnN0IEF0b21pY1N0
cmluZyYgbGFuZ3VhZ2UpIHsgbV9sYW5ndWFnZSA9IGxhbmd1YWdlOyB9CisgICAgU3RyaW5nIGxh
bmd1YWdlKCkgY29uc3QgeyByZXR1cm4gbV9sYW5ndWFnZTsgfQorICAgIHZvaWQgc2V0TGFuZ3Vh
Z2UoY29uc3QgU3RyaW5nJiBsYW5ndWFnZSkgeyBtX2xhbmd1YWdlID0gbGFuZ3VhZ2U7IH0KIAog
ICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGRpc2FibGVkS2V5d29yZCgpOwogICAgIHN0
YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGhpZGRlbktleXdvcmQoKTsKICAgICBzdGF0aWMgY29u
c3QgQXRvbWljU3RyaW5nJiBzaG93aW5nS2V5d29yZCgpOwogCi0gICAgQXRvbWljU3RyaW5nIG1v
ZGUoKSBjb25zdDsKLSAgICB2b2lkIHNldE1vZGUoY29uc3QgQXRvbWljU3RyaW5nJik7CisgICAg
U3RyaW5nIG1vZGUoKSBjb25zdDsKKyAgICB2b2lkIHNldE1vZGUoY29uc3QgU3RyaW5nJik7CiAK
ICAgICBib29sIHNob3dpbmdCeURlZmF1bHQoKSBjb25zdCB7IHJldHVybiBtX3Nob3dpbmdCeURl
ZmF1bHQ7IH0KICAgICB2b2lkIHNldFNob3dpbmdCeURlZmF1bHQoYm9vbCBzaG93aW5nKSB7IG1f
c2hvd2luZ0J5RGVmYXVsdCA9IHNob3dpbmc7IH0KQEAgLTExNiwxNyArMTE2LDE3IEBAIHB1Ymxp
YzoKICAgICBib29sIGlzUmVuZGVyZWQoKTsKIAogcHJvdGVjdGVkOgotICAgIFRleHRUcmFjayhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xpZW50KiwgY29uc3QgQXRvbWljU3Ry
aW5nJiBraW5kLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsLCBjb25zdCBBdG9taWNTdHJpbmcm
IGxhbmd1YWdlLCBUZXh0VHJhY2tUeXBlKTsKKyAgICBUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFRleHRUcmFja0NsaWVudCosIGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3Ry
aW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgVGV4dFRyYWNrVHlwZSk7CiAKICAg
ICBSZWZQdHI8VGV4dFRyYWNrQ3VlTGlzdD4gbV9jdWVzOwogCiBwcml2YXRlOgogICAgIFRleHRU
cmFja0N1ZUxpc3QqIGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKTsKICAgICBIVE1MTWVkaWFFbGVt
ZW50KiBtX21lZGlhRWxlbWVudDsKLSAgICBBdG9taWNTdHJpbmcgbV9raW5kOwotICAgIEF0b21p
Y1N0cmluZyBtX2xhYmVsOwotICAgIEF0b21pY1N0cmluZyBtX2xhbmd1YWdlOwotICAgIEF0b21p
Y1N0cmluZyBtX21vZGU7CisgICAgU3RyaW5nIG1fa2luZDsKKyAgICBTdHJpbmcgbV9sYWJlbDsK
KyAgICBTdHJpbmcgbV9sYW5ndWFnZTsKKyAgICBTdHJpbmcgbV9tb2RlOwogICAgIFRleHRUcmFj
a0NsaWVudCogbV9jbGllbnQ7CiAgICAgVGV4dFRyYWNrVHlwZSBtX3RyYWNrVHlwZTsKICAgICBS
ZWFkaW5lc3NTdGF0ZSBtX3JlYWRpbmVzc1N0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9UZXh0VHJhY2tDdWUuY3BwCmluZGV4IGJiNzM0NDVlNTczOTkyODdhOGNkYzIyZDU0MmYwZmI0
ZjA4NWIxZGYuLjJmZDRmMWQ0YmNkMDlkNWU0YmUzM2Y3NDZiNWUyZDZlNWViY2FkNGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKQEAgLTk1LDcgKzk1LDYg
QEAgVGV4dFRyYWNrQ3VlQm94OjpUZXh0VHJhY2tDdWVCb3goRG9jdW1lbnQqIGRvY3VtZW50LCBU
ZXh0VHJhY2tDdWUqIGN1ZSkKICAgICA6IEhUTUxFbGVtZW50KGRpdlRhZywgZG9jdW1lbnQpCiAg
ICAgLCBtX2N1ZShjdWUpCiB7Ci0gICAgc2V0U2hhZG93UHNldWRvSWQoc2hhZG93UHNldWRvSWQo
KSk7CiB9CiAKIFRleHRUcmFja0N1ZSogVGV4dFRyYWNrQ3VlQm94OjpnZXRDdWUoKSBjb25zdApA
QCAtMTY4LDE3ICsxNjcsMTIgQEAgdm9pZCBUZXh0VHJhY2tDdWVCb3g6OmFwcGx5Q1NTUHJvcGVy
dGllcygpCiAgICAgfQogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFja0N1ZUJveDo6
dGV4dFRyYWNrQ3VlQm94U2hhZG93UHNldWRvSWQoKQorY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0
VHJhY2tDdWVCb3g6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgdHJhY2tEaXNwbGF5Qm94U2hhZG93UHNldWRvSWQs
ICgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWRpc3BsYXkiKSk7CiAgICAgcmV0dXJuIHRyYWNr
RGlzcGxheUJveFNoYWRvd1BzZXVkb0lkOwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIFRleHRU
cmFja0N1ZUJveDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAotewotICAgIHJldHVybiB0ZXh0VHJh
Y2tDdWVCb3hTaGFkb3dQc2V1ZG9JZCgpOwotfQotCiBSZW5kZXJPYmplY3QqIFRleHRUcmFja0N1
ZUJveDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSopCiB7
CiAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclRleHRUcmFja0N1ZSh0aGlzKTsKQEAgLTE4
NiwxOCArMTgwLDYgQEAgUmVuZGVyT2JqZWN0KiBUZXh0VHJhY2tDdWVCb3g6OmNyZWF0ZVJlbmRl
cmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqKQogCiAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAKLWNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrQ3VlOjpwYXN0
Tm9kZXNTaGFkb3dQc2V1ZG9JZCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
dG9taWNTdHJpbmcsIHN1YnRpdGxlcywgKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stcGFzdC1u
b2RlcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICByZXR1cm4g
c3VidGl0bGVzOwotfQotCi1jb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFja0N1ZTo6ZnV0dXJl
Tm9kZXNTaGFkb3dQc2V1ZG9JZCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
dG9taWNTdHJpbmcsIHN1YnRpdGxlcywgKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stZnV0dXJl
LW5vZGVzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIHJldHVy
biBzdWJ0aXRsZXM7Ci19Ci0KIFRleHRUcmFja0N1ZTo6VGV4dFRyYWNrQ3VlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIGRvdWJsZSBzdGFydCwgZG91YmxlIGVuZCwgY29uc3QgU3Ry
aW5nJiBjb250ZW50KQogICAgIDogbV9zdGFydFRpbWUoc3RhcnQpCiAgICAgLCBtX2VuZFRpbWUo
ZW5kKQpAQCAtNjcwLDYgKzY1Miw5IEBAIHZvaWQgVGV4dFRyYWNrQ3VlOjp1cGRhdGVEaXNwbGF5
VHJlZShmbG9hdCBtb3ZpZVRpbWUpCiAgICAgLy8gdGltZXN0YW1wcyAocHJvY2Vzc2luZyBpbnN0
cnVjdGlvbnMpLCBhbG9uZyB3aXRoIGRpc3BsYXlhYmxlIG5vZGVzLgogICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCB0aW1lc3RhbXBUYWcsIChBU0NJSUxpdGVyYWwoInRpbWVz
dGFtcCIpKSk7CiAKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
dHJhY2tQYXN0Tm9kZXNTaGFkb3dQc2V1ZG9JZCwgKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2st
cGFzdC1ub2RlcyIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmlu
ZywgdHJhY2tGdXR1cmVOb2Rlc1NoYWRvd1BzZXVkb0lkLCAoIi13ZWJraXQtbWVkaWEtdGV4dC10
cmFjay1mdXR1cmUtbm9kZXMiKSk7CisKICAgICBpZiAoIXRyYWNrKCktPmlzUmVuZGVyZWQoKSkK
ICAgICAgIHJldHVybjsKIApAQCAtNjc3LDEwICs2NjIsMTAgQEAgdm9pZCBUZXh0VHJhY2tDdWU6
OnVwZGF0ZURpc3BsYXlUcmVlKGZsb2F0IG1vdmllVGltZSkKIAogICAgIC8vIENsZWFyIHRoZSBj
b250ZW50cyBvZiB0aGUgdHdvIHNldHMuCiAgICAgbV9mdXR1cmVEb2N1bWVudE5vZGVzLT5yZW1v
dmVDaGlsZHJlbigpOwotICAgIG1fZnV0dXJlRG9jdW1lbnROb2Rlcy0+c2V0U2hhZG93UHNldWRv
SWQoZnV0dXJlTm9kZXNTaGFkb3dQc2V1ZG9JZCgpKTsKKyAgICBtX2Z1dHVyZURvY3VtZW50Tm9k
ZXMtPnNldFNoYWRvd1BzZXVkb0lkKHRyYWNrRnV0dXJlTm9kZXNTaGFkb3dQc2V1ZG9JZCk7CiAK
ICAgICBtX3Bhc3REb2N1bWVudE5vZGVzLT5yZW1vdmVDaGlsZHJlbigpOwotICAgIG1fcGFzdERv
Y3VtZW50Tm9kZXMtPnNldFNoYWRvd1BzZXVkb0lkKHBhc3ROb2Rlc1NoYWRvd1BzZXVkb0lkKCkp
OworICAgIG1fcGFzdERvY3VtZW50Tm9kZXMtPnNldFNoYWRvd1BzZXVkb0lkKHRyYWNrUGFzdE5v
ZGVzU2hhZG93UHNldWRvSWQpOwogCiAgICAgLy8gVXBkYXRlIHRoZSB0d28gc2V0cyBjb250YWlu
aW5nIHBhc3QgYW5kIGZ1dHVyZSBXZWJWVFQgb2JqZWN0cy4KICAgICBSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gcmVmZXJlbmNlVHJlZSA9IGdldEN1ZUFzSFRNTCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgKaW5kZXggM2UyOWQxZTc0MjU4ZjczMThjMGI3MTFjMDk5
ODcwMWQ0ZWRiZjBhNy4uMTE1YTg2ODA5ZjZmNjA2YjMxMmRhNTBlMWE4OGI4MTQ3MjAyNWExZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCkBAIC02MCw3ICs2MCw2
IEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGx5Q1NTUHJvcGVydGllcygpOwogCiAgICAgdmlydHVh
bCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgdGV4dFRyYWNrQ3VlQm94U2hhZG93UHNldWRv
SWQoKTsKIAogcHJpdmF0ZToKICAgICBUZXh0VHJhY2tDdWVCb3goRG9jdW1lbnQqLCBUZXh0VHJh
Y2tDdWUqKTsKQEAgLTgxLDkgKzgwLDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+VGV4dFRy
YWNrQ3VlKCk7CiAKLSAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBwYXN0Tm9kZXNTaGFk
b3dQc2V1ZG9JZCgpOwotICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGZ1dHVyZU5vZGVz
U2hhZG93UHNldWRvSWQoKTsKLQogICAgIFRleHRUcmFjayogdHJhY2soKSBjb25zdDsKICAgICB2
b2lkIHNldFRyYWNrKFBhc3NSZWZQdHI8VGV4dFRyYWNrPik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCmluZGV4IGQ4ZjYx
NTY5NGQ2MGM5NGM0MjFjZDk5OTE1ZGVhMDY5OTE5OWQzYTIuLmU5Y2EzN2E3M2ExYmZhNDU1MTkx
ODE1ZTM2NmQ3MjI3YjhlMWZjODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaApAQCAtMzMzLDQwICszMzMsNiBAQCBleHRl
cm4gQ0dGbG9hdCAoKndrTlNFbGFzdGljRGVsdGFGb3JSZWJvdW5kRGVsdGEpKENHRmxvYXQgZGVs
dGEpOwogZXh0ZXJuIENHRmxvYXQgKCp3a05TUmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKShD
R0Zsb2F0IGRlbHRhKTsKICNlbmRpZgogCi10eXBlZGVmIGVudW0gewotICAgIHdrQ2FwdGlvbkZv
bnRTdHlsZURlZmF1bHQgPSAwLAotICAgIHdrQ2FwdGlvbkZvbnRTdHlsZU1vbm9zcGFjZWRXaXRo
U2VyaWYsCi0gICAgd2tDYXB0aW9uRm9udFN0eWxlUHJvcG9ydGlvbmFsV2l0aFNlcmlmLAotICAg
IHdrQ2FwdGlvbkZvbnRTdHlsZU1vbm9zcGFjZWRXaXRob3V0U2VyaWYsCi0gICAgd2tDYXB0aW9u
Rm9udFN0eWxlUHJvcG9ydGlvbmFsV2l0aG91dFNlcmlmLAotICAgIHdrQ2FwdGlvbkZvbnRTdHls
ZUNhc3VhbCwKLSAgICB3a0NhcHRpb25Gb250U3R5bGVDdXJzaXZlLAotICAgIHdrQ2FwdGlvbkZv
bnRTdHlsZVNtYWxsQ2FwaXRhbCwKLSAgICB3a0NhcHRpb25Gb250U3R5bGVNYXgKLX0gd2tDYXB0
aW9uRm9udFN0eWxlOwotCi10eXBlZGVmIGVudW0gewotICAgIHdrQ2FwdGlvblRleHRFZGdlU3R5
bGVVbmRlZmluZWQgPSAwLAotICAgIHdrQ2FwdGlvblRleHRFZGdlU3R5bGVOb25lLAotICAgIHdr
Q2FwdGlvblRleHRFZGdlU3R5bGVSYWlzZWQsCi0gICAgd2tDYXB0aW9uVGV4dEVkZ2VTdHlsZURl
cHJlc3NlZCwKLSAgICB3a0NhcHRpb25UZXh0RWRnZVN0eWxlVW5pZm9ybSwKLSAgICB3a0NhcHRp
b25UZXh0RWRnZVN0eWxlRHJvcFNoYWRvdywKLSAgICB3a0NhcHRpb25UZXh0RWRnZVN0eWxlTWF4
Ci19IHdrQ2FwdGlvblRleHRFZGdlU3R5bGU7Ci0KLWV4dGVybiBib29sICgqd2tDYXB0aW9uQXBw
ZWFyYW5jZUhhc1VzZXJQcmVmZXJlbmNlcykodm9pZCk7Ci1leHRlcm4gYm9vbCAoKndrQ2FwdGlv
bkFwcGVhcmFuY2VTaG93Q2FwdGlvbnNXaGVuQXZhaWxhYmxlKSh2b2lkKTsKLWV4dGVybiBDR0Nv
bG9yUmVmKCp3a0NhcHRpb25BcHBlYXJhbmNlQ29weUZvcmVncm91bmRDb2xvcikodm9pZCk7Ci1l
eHRlcm4gQ0dDb2xvclJlZigqd2tDYXB0aW9uQXBwZWFyYW5jZUNvcHlCYWNrZ3JvdW5kQ29sb3Ip
KHZvaWQpOwotZXh0ZXJuIENHQ29sb3JSZWYoKndrQ2FwdGlvbkFwcGVhcmFuY2VDb3B5V2luZG93
Q29sb3IpKHZvaWQpOwotZXh0ZXJuIGJvb2woKndrQ2FwdGlvbkFwcGVhcmFuY2VHZXRGb3JlZ3Jv
dW5kT3BhY2l0eSkoQ0dGbG9hdCopOwotZXh0ZXJuIGJvb2woKndrQ2FwdGlvbkFwcGVhcmFuY2VH
ZXRCYWNrZ3JvdW5kT3BhY2l0eSkoQ0dGbG9hdCopOwotZXh0ZXJuIGJvb2woKndrQ2FwdGlvbkFw
cGVhcmFuY2VHZXRXaW5kb3dPcGFjaXR5KShDR0Zsb2F0Kik7Ci1leHRlcm4gQ0dGb250UmVmKCp3
a0NhcHRpb25BcHBlYXJhbmNlQ29weUZvbnRGb3JTdHlsZSkoaW50KTsKLWV4dGVybiBib29sKCp3
a0NhcHRpb25BcHBlYXJhbmNlR2V0UmVsYXRpdmVDaGFyYWN0ZXJTaXplKShDR0Zsb2F0Kik7Ci1l
eHRlcm4gaW50KCp3a0NhcHRpb25BcHBlYXJhbmNlR2V0VGV4dEVkZ2VTdHlsZSkodm9pZCk7Ci1l
eHRlcm4gQ0ZTdHJpbmdSZWYoKndrQ2FwdGlvbkFwcGVhcmFuY2VHZXRTZXR0aW5nc0NoYW5nZWRO
b3RpZmljYXRpb24pKHZvaWQpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0KaW5kZXggNTIyZjVlY2Q4
MDI4YTIzZjgxNjUyMjQ4YTAwMzliNzU5ZTQ1NDFkMS4uZjFhZWYyN2I0OTYzM2EzYjZmM2Q4ZGM1
Njc0YTA0MTY3ZGQ5Y2ViZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTIxMiwxNSArMjEyLDMgQEAgQ0dGbG9h
dCAoKndrTlNFbGFzdGljRGVsdGFGb3JSZWJvdW5kRGVsdGEpKENHRmxvYXQgZGVsdGEpOwogQ0dG
bG9hdCAoKndrTlNSZWJvdW5kRGVsdGFGb3JFbGFzdGljRGVsdGEpKENHRmxvYXQgZGVsdGEpOwog
I2VuZGlmCiAKLWJvb2wgKCp3a0NhcHRpb25BcHBlYXJhbmNlSGFzVXNlclByZWZlcmVuY2VzKSh2
b2lkKTsKLWJvb2wgKCp3a0NhcHRpb25BcHBlYXJhbmNlU2hvd0NhcHRpb25zV2hlbkF2YWlsYWJs
ZSkodm9pZCk7Ci1DR0NvbG9yUmVmKCp3a0NhcHRpb25BcHBlYXJhbmNlQ29weUZvcmVncm91bmRD
b2xvcikodm9pZCk7Ci1DR0NvbG9yUmVmKCp3a0NhcHRpb25BcHBlYXJhbmNlQ29weUJhY2tncm91
bmRDb2xvcikodm9pZCk7Ci1DR0NvbG9yUmVmKCp3a0NhcHRpb25BcHBlYXJhbmNlQ29weVdpbmRv
d0NvbG9yKSh2b2lkKTsKLWJvb2woKndrQ2FwdGlvbkFwcGVhcmFuY2VHZXRGb3JlZ3JvdW5kT3Bh
Y2l0eSkoQ0dGbG9hdCopOwotYm9vbCgqd2tDYXB0aW9uQXBwZWFyYW5jZUdldEJhY2tncm91bmRP
cGFjaXR5KShDR0Zsb2F0Kik7Ci1ib29sKCp3a0NhcHRpb25BcHBlYXJhbmNlR2V0V2luZG93T3Bh
Y2l0eSkoQ0dGbG9hdCopOwotQ0dGb250UmVmKCp3a0NhcHRpb25BcHBlYXJhbmNlQ29weUZvbnRG
b3JTdHlsZSkoaW50KTsKLWJvb2woKndrQ2FwdGlvbkFwcGVhcmFuY2VHZXRSZWxhdGl2ZUNoYXJh
Y3RlclNpemUpKENHRmxvYXQqKTsKLWludCgqd2tDYXB0aW9uQXBwZWFyYW5jZUdldFRleHRFZGdl
U3R5bGUpKHZvaWQpOwotQ0ZTdHJpbmdSZWYoKndrQ2FwdGlvbkFwcGVhcmFuY2VHZXRTZXR0aW5n
c0NoYW5nZWROb3RpZmljYXRpb24pKHZvaWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0NhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWRMaXN0ZW5lci5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0NhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWRMaXN0ZW5lci5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NjhmMjE5MWU2ODRiMjA3MDY4YjA1ODliOTJlZTEx
NDg0NjAxNzYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkTGlzdGVu
ZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBDYXB0aW9uUHJlZmVyZW5jZXNDaGFu
Z2VkTGlzdGVuZXJfaAotI2RlZmluZSBDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkTGlzdGVuZXJf
aAotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENhcHRpb25QcmVmZXJlbmNlc0NoYW5n
ZWRMaXN0ZW5lciB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIGNhcHRpb25QcmVmZXJlbmNl
c0NoYW5nZWQoKSA9IDA7Ci1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB+Q2FwdGlvblByZWZlcmVu
Y2VzQ2hhbmdlZExpc3RlbmVyKCkgeyB9Ci19OwotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAppbmRleCAzMjE3MDQ0ZDAzNmZmNTg4NzNlNGE1Y2YxMGY0
N2JlOTE2ODM0ZDdlLi4zNmU0OWYyNmNkYmNhZThkY2RlOTYxNzE2NTAwYzBkYmI0YmUwNWQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaApAQCAtNDYsOSArNDYsNiBAQCBj
bGFzcyBSZW5kZXJNZXRlcjsKICNpZiBFTkFCTEUoUFJPR1JFU1NfRUxFTUVOVCkKIGNsYXNzIFJl
bmRlclByb2dyZXNzOwogI2VuZGlmCi0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotY2xhc3MgQ2Fw
dGlvblByZWZlcmVuY2VzQ2hhbmdlZExpc3RlbmVyOwotI2VuZGlmCiBjbGFzcyBDU1NTdHlsZVNo
ZWV0OwogCiBjbGFzcyBSZW5kZXJUaGVtZSA6IHB1YmxpYyBSZWZDb3VudGVkPFJlbmRlclRoZW1l
PiB7CkBAIC0yMzMsMTUgKzIzMCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhaW50U2xpZGVyVGlj
a3MoUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogI2Vu
ZGlmCiAKLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgdmlydHVhbCBib29sIHVzZXJQcmVm
ZXJzQ2FwdGlvbnMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCB1
c2VySGFzQ2FwdGlvblByZWZlcmVuY2VzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2
aXJ0dWFsIGZsb2F0IGNhcHRpb25Gb250U2l6ZVNjYWxlKCkgY29uc3QgeyByZXR1cm4gMC4wNTsg
fQotICAgIHZpcnR1YWwgU3RyaW5nIGNhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRlKCkgY29uc3Qg
eyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQotICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckZvckNh
cHRpb25QcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFja3MoQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdl
ZExpc3RlbmVyKikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJGb3JDYXB0aW9uUHJl
ZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2tzKENhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWRMaXN0ZW5l
ciopIHsgfQotI2VuZGlmCi0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2hvd1BsYWNlaG9sZGVy
V2hlbkZvY3VzZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRIYXZlU3BpbkJ1dHRvbihIVE1MSW5wdXRFbGVtZW50KikgY29uc3Q7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKaW5kZXggNDRmMWQ2MmM0MTc0MWY1MzU5
M2E3MDk1NjlkNGQ4NjAwNWVlYmUwYi4uN2FkNDliZDM0Nzg4NWI1ODQwMmI3OGUyZmY1MzJkN2I3
NmMxMTMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKQEAg
LTEwMSwxMSArMTAxLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCB1c2VzVGVzdE1vZGVG
b2N1c1JpbmdDb2xvcigpIGNvbnN0OwogICAgIC8vIEEgdmlldyBhc3NvY2lhdGVkIHRvIHRoZSBj
b250YWluZWQgZG9jdW1lbnQuIFN1YmNsYXNzZXMgbWF5IG5vdCBoYXZlIHN1Y2ggYSB2aWV3IGFu
ZCByZXR1cm4gYSBmYWtlLgogICAgIHZpcnR1YWwgTlNWaWV3KiBkb2N1bWVudFZpZXdGb3IoUmVu
ZGVyT2JqZWN0KikgY29uc3Q7Ci0KLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgdm9pZCBj
YXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7Ci0jZW5kaWYKLQogcHJvdGVjdGVkOgogICAgIFJl
bmRlclRoZW1lTWFjKCk7CiAgICAgdmlydHVhbCB+UmVuZGVyVGhlbWVNYWMoKTsKQEAgLTE4Mywx
NSArMTc4LDYgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RNZWRpYVNsaWRl
clRodW1iU2l6ZShSZW5kZXJTdHlsZSopIGNvbnN0OwogICAgIHZpcnR1YWwgSW50UG9pbnQgdm9s
dW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24oUmVuZGVyQm94KiwgY29uc3QgSW50U2l6ZSYp
IGNvbnN0IE9WRVJSSURFOwogI2VuZGlmCi0KLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAg
dmlydHVhbCBib29sIHVzZXJQcmVmZXJzQ2FwdGlvbnMoKSBjb25zdCBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGJvb2wgdXNlckhhc0NhcHRpb25QcmVmZXJlbmNlcygpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgZmxvYXQgY2FwdGlvbkZvbnRTaXplU2NhbGUoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjYXB0aW9uc1N0eWxlU2hlZXRPdmVycmlkZSgpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckZvckNhcHRpb25QcmVmZXJlbmNlc0No
YW5nZWRDYWxsYmFja3MoQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZExpc3RlbmVyKikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJGb3JDYXB0aW9uUHJlZmVyZW5jZXNDaGFu
Z2VkQ2FsbGJhY2tzKENhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWRMaXN0ZW5lciopIE9WRVJSSURF
OwotI2VuZGlmCiAgICAgCiAgICAgdmlydHVhbCBib29sIHNob3VsZFNob3dQbGFjZWhvbGRlcldo
ZW5Gb2N1c2VkKCkgY29uc3Q7CiAKQEAgLTI1MSwxNyArMjM3LDYgQEAgcHJpdmF0ZToKICAgICBj
b25zdCBpbnQqIHByb2dyZXNzQmFyTWFyZ2lucyhOU0NvbnRyb2xTaXplKSBjb25zdDsKICNlbmRp
ZgogCi0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIENvbG9yIGNhcHRpb25zV2luZG93Q29s
b3IoKSBjb25zdDsKLSAgICBDb2xvciBjYXB0aW9uc0JhY2tncm91bmRDb2xvcigpIGNvbnN0Owot
ICAgIENvbG9yIGNhcHRpb25zVGV4dENvbG9yKCkgY29uc3Q7Ci0gICAgU3RyaW5nIGNhcHRpb25z
RGVmYXVsdEZvbnQoKSBjb25zdDsKLSAgICBDb2xvciBjYXB0aW9uc0VkZ2VDb2xvckZvclRleHRD
b2xvcihjb25zdCBDb2xvciYpIGNvbnN0OwotICAgIFN0cmluZyBjYXB0aW9uc1RleHRFZGdlU3R5
bGUoKSBjb25zdDsKLSAgICBTdHJpbmcgY3NzUHJvcGVydHlXaXRoVGV4dEVkZ2VDb2xvcihDU1NQ
cm9wZXJ0eUlELCBjb25zdCBTdHJpbmcmLCBjb25zdCBDb2xvciYpIGNvbnN0OwotICAgIFN0cmlu
ZyBjc3NDb2xvclByb3BlcnR5KENTU1Byb3BlcnR5SUQsIGNvbnN0IENvbG9yJikgY29uc3Q7Ci0j
ZW5kaWYKLQogcHJpdmF0ZToKICAgICBtdXRhYmxlIFJldGFpblB0cjxOU1BvcFVwQnV0dG9uQ2Vs
bD4gbV9wb3B1cEJ1dHRvbjsKICAgICBtdXRhYmxlIFJldGFpblB0cjxOU1NlYXJjaEZpZWxkQ2Vs
bD4gbV9zZWFyY2g7CkBAIC0yNzcsMTEgKzI1Miw2IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBI
YXNoTWFwPGludCwgUkdCQTMyPiBtX3N5c3RlbUNvbG9yQ2FjaGU7CiAKICAgICBSZXRhaW5QdHI8
V2ViQ29yZVJlbmRlclRoZW1lTm90aWZpY2F0aW9uT2JzZXJ2ZXI+IG1fbm90aWZpY2F0aW9uT2Jz
ZXJ2ZXI7Ci0KLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgSGFzaFNldDxDYXB0aW9uUHJl
ZmVyZW5jZXNDaGFuZ2VkTGlzdGVuZXIqPiBtX2NhcHRpb25QcmVmZXJlbmNlQ2hhbmdlTGlzdGVu
ZXJzOwotICAgIGJvb2wgbV9saXN0ZW5pbmdGb3JDYXB0aW9uUHJlZmVyZW5jZU5vdGlmaWNhdGlv
bnM7Ci0jZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCA0OWM0OTIwZGQxMWZiNmE2M2E0MjAz
MTdjZGUyNmIwMjE5NGI0YjQxLi4wYmM5ODA0ZmI3NTliMTFlZDk2YTQwOTEwNmEwMTE2Nzk4YzIw
NGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC0y
Nyw3ICsyNyw2IEBACiAjaW1wb3J0ICJEb2N1bWVudC5oIgogI2ltcG9ydCAiRWxlbWVudC5oIgog
I2ltcG9ydCAiRmlsZUxpc3QuaCIKLSNpbXBvcnQgIkZsb2F0Q29udmVyc2lvbi5oIgogI2ltcG9y
dCAiRnJhbWVWaWV3LmgiCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRDRy5oIgogI2ltcG9ydCAi
SFRNTElucHV0RWxlbWVudC5oIgpAQCAtMTUyLDExICsxNTEsNiBAQCBQYXNzUmVmUHRyPFJlbmRl
clRoZW1lPiBSZW5kZXJUaGVtZTo6dGhlbWVGb3JQYWdlKFBhZ2UqKQogfQogI2VuZGlmCiAKLXN0
YXRpYyB2b2lkIHVzZXJDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9uQ2FsbGJh
Y2soQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsIHZvaWQqIG9ic2VydmVyLCBDRlN0cmluZ1JlZiwg
Y29uc3Qgdm9pZCAqLCBDRkRpY3Rpb25hcnlSZWYpCi17Ci0gICAgc3RhdGljX2Nhc3Q8UmVuZGVy
VGhlbWVNYWMqPihvYnNlcnZlciktPmNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKTsKLX0KLQog
UGFzc1JlZlB0cjxSZW5kZXJUaGVtZT4gUmVuZGVyVGhlbWVNYWM6OmNyZWF0ZSgpCiB7CiAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBSZW5kZXJUaGVtZU1hYyk7CkBAIC0xNjYsOSArMTYwLDYgQEAg
UmVuZGVyVGhlbWVNYWM6OlJlbmRlclRoZW1lTWFjKCkKICAgICA6IG1faXNTbGlkZXJUaHVtYkhv
cml6b250YWxQcmVzc2VkKGZhbHNlKQogICAgICwgbV9pc1NsaWRlclRodW1iVmVydGljYWxQcmVz
c2VkKGZhbHNlKQogICAgICwgbV9ub3RpZmljYXRpb25PYnNlcnZlcihBZG9wdE5TLCBbW1dlYkNv
cmVSZW5kZXJUaGVtZU5vdGlmaWNhdGlvbk9ic2VydmVyIGFsbG9jXSBpbml0V2l0aFRoZW1lOnRo
aXNdKQotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICAsIG1fbGlzdGVuaW5nRm9yQ2FwdGlv
blByZWZlcmVuY2VOb3RpZmljYXRpb25zKGZhbHNlKQotI2VuZGlmCiB7CiAgICAgW1tOU05vdGlm
aWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjptX25vdGlmaWNhdGlvbk9i
c2VydmVyLmdldCgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGVjdG9yOkBzZWxlY3RvcihzeXN0ZW1Db2xvcnNEaWRDaGFuZ2U6KQpA
QCAtMTc5LDExICsxNzAsNiBAQCBSZW5kZXJUaGVtZU1hYzo6UmVuZGVyVGhlbWVNYWMoKQogUmVu
ZGVyVGhlbWVNYWM6On5SZW5kZXJUaGVtZU1hYygpCiB7CiAgICAgW1tOU05vdGlmaWNhdGlvbkNl
bnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX25vdGlmaWNhdGlvbk9ic2VydmVy
LmdldCgpXTsKLQotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICBpZiAobV9saXN0ZW5pbmdG
b3JDYXB0aW9uUHJlZmVyZW5jZU5vdGlmaWNhdGlvbnMpCi0gICAgICAgIENGTm90aWZpY2F0aW9u
Q2VudGVyUmVtb3ZlT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXRMb2NhbENlbnRlcigp
LCB0aGlzLCB3a0NhcHRpb25BcHBlYXJhbmNlR2V0U2V0dGluZ3NDaGFuZ2VkTm90aWZpY2F0aW9u
KCksIE5VTEwpOwotI2VuZGlmCiB9CiAKIENvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFj
dGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0CkBAIC0yMTQyLDI1NSArMjEyOCw2
IEBAIEludFBvaW50IFJlbmRlclRoZW1lTWFjOjp2b2x1bWVTbGlkZXJPZmZzZXRGcm9tTXV0ZUJ1
dHRvbihSZW5kZXJCb3gqIG11dGVCdXR0b25CCiAgICAgcmV0dXJuIFJlbmRlck1lZGlhQ29udHJv
bHM6OnZvbHVtZVNsaWRlck9mZnNldEZyb21NdXRlQnV0dG9uKG11dGVCdXR0b25Cb3gsIHNpemUp
OwogfQogCi0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotYm9vbCBSZW5kZXJUaGVtZU1hYzo6dXNl
ckhhc0NhcHRpb25QcmVmZXJlbmNlcygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHdrQ2FwdGlvbkFw
cGVhcmFuY2VIYXNVc2VyUHJlZmVyZW5jZXMoKTsKLX0KLQotYm9vbCBSZW5kZXJUaGVtZU1hYzo6
dXNlclByZWZlcnNDYXB0aW9ucygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHdrQ2FwdGlvbkFwcGVh
cmFuY2VTaG93Q2FwdGlvbnNXaGVuQXZhaWxhYmxlKCk7Ci19Ci0KLUNvbG9yIFJlbmRlclRoZW1l
TWFjOjpjYXB0aW9uc1dpbmRvd0NvbG9yKCkgY29uc3QKLXsKLSAgICBSZXRhaW5QdHI8Q0dDb2xv
clJlZj4gY29sb3IoQWRvcHRDRiwgd2tDYXB0aW9uQXBwZWFyYW5jZUNvcHlXaW5kb3dDb2xvcigp
KTsKLSAgICBDb2xvciB3aW5kb3dDb2xvcihjb2xvci5nZXQoKSk7Ci0gICAgaWYgKCF3aW5kb3dD
b2xvci5pc1ZhbGlkKCkpCi0gICAgICAgIHdpbmRvd0NvbG9yID0gQ29sb3I6OnRyYW5zcGFyZW50
OwotICAgIAotICAgIENHRmxvYXQgb3BhY2l0eTsKLSAgICBpZiAod2tDYXB0aW9uQXBwZWFyYW5j
ZUdldFdpbmRvd09wYWNpdHkoJm9wYWNpdHkpKQotICAgICAgICByZXR1cm4gQ29sb3Iod2luZG93
Q29sb3IucmVkKCksIHdpbmRvd0NvbG9yLmdyZWVuKCksIHdpbmRvd0NvbG9yLmJsdWUoKSwgc3Rh
dGljX2Nhc3Q8aW50PihvcGFjaXR5ICogMjU1KSk7Ci0gICAgCi0gICAgaWYgKCFjb2xvcikKLSAg
ICAgICAgcmV0dXJuIENvbG9yKCk7Ci0KLSAgICByZXR1cm4gd2luZG93Q29sb3I7Ci19Ci0KLUNv
bG9yIFJlbmRlclRoZW1lTWFjOjpjYXB0aW9uc0JhY2tncm91bmRDb2xvcigpIGNvbnN0Ci17Ci0g
ICAgLy8gVGhpcyBkZWZhdWx0IHZhbHVlIG11c3QgYmUgdGhlIHNhbWUgYXMgdGhlIG9uZSBzcGVj
aWZpZWQgaW4gbWVkaWFDb250cm9scy5jc3MgZm9yIC13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1w
YXN0LW5vZGVzCi0gICAgLy8gYW5kIHdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWZ1dHVyZS1ub2Rl
cy4KLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENvbG9yLCBkZWZhdWx0QmFja2dyb3VuZENvbG9y
LCAoQ29sb3IoMCwgMCwgMCwgMC44ICogMjU1KSkpOwotCi0gICAgUmV0YWluUHRyPENHQ29sb3JS
ZWY+IGNvbG9yKEFkb3B0Q0YsIHdrQ2FwdGlvbkFwcGVhcmFuY2VDb3B5QmFja2dyb3VuZENvbG9y
KCkpOwotICAgIENvbG9yIGJhY2tncm91bmRDb2xvcihjb2xvci5nZXQoKSk7Ci0gICAgaWYgKCFi
YWNrZ3JvdW5kQ29sb3IuaXNWYWxpZCgpKSB7Ci0gICAgICAgIGJhY2tncm91bmRDb2xvciA9IGRl
ZmF1bHRCYWNrZ3JvdW5kQ29sb3I7Ci0gICAgfQotCi0gICAgQ0dGbG9hdCBvcGFjaXR5OwotICAg
IGlmICh3a0NhcHRpb25BcHBlYXJhbmNlR2V0QmFja2dyb3VuZE9wYWNpdHkoJm9wYWNpdHkpKQot
ICAgICAgICByZXR1cm4gQ29sb3IoYmFja2dyb3VuZENvbG9yLnJlZCgpLCBiYWNrZ3JvdW5kQ29s
b3IuZ3JlZW4oKSwgYmFja2dyb3VuZENvbG9yLmJsdWUoKSwgb3BhY2l0eSAqIDI1NSk7Ci0KLSAg
ICBpZiAoIWNvbG9yKQotICAgICAgICByZXR1cm4gQ29sb3IoKTsKLSAgICAKLSAgICByZXR1cm4g
YmFja2dyb3VuZENvbG9yOwotfQotCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6Y2FwdGlvbnNUZXh0
Q29sb3IoKSBjb25zdAotewotICAgIFJldGFpblB0cjxDR0NvbG9yUmVmPiBjb2xvcihBZG9wdENG
LCB3a0NhcHRpb25BcHBlYXJhbmNlQ29weUZvcmVncm91bmRDb2xvcigpKTsKLSAgICBDb2xvciB0
ZXh0Q29sb3IoY29sb3IuZ2V0KCkpOwotICAgIGlmICghdGV4dENvbG9yLmlzVmFsaWQoKSkgewot
ICAgICAgICAvLyBUaGlzIGRlZmF1bHQgdmFsdWUgbXVzdCBiZSB0aGUgc2FtZSBhcyB0aGUgb25l
IHNwZWNpZmllZCBpbiBtZWRpYUNvbnRyb2xzLmNzcyBmb3IgLXdlYmtpdC1tZWRpYS10ZXh0LXRy
YWNrLWNvbnRhaW5lci4KLSAgICAgICAgdGV4dENvbG9yID0gQ29sb3I6OndoaXRlOwotICAgIH0K
LSAgICAKLSAgICBDR0Zsb2F0IG9wYWNpdHk7Ci0gICAgaWYgKHdrQ2FwdGlvbkFwcGVhcmFuY2VH
ZXRGb3JlZ3JvdW5kT3BhY2l0eSgmb3BhY2l0eSkpCi0gICAgICAgIHJldHVybiBDb2xvcih0ZXh0
Q29sb3IucmVkKCksIHRleHRDb2xvci5ncmVlbigpLCB0ZXh0Q29sb3IuYmx1ZSgpLCBvcGFjaXR5
ICogMjU1KTsKLSAgICAKLSAgICBpZiAoIWNvbG9yKQotICAgICAgICByZXR1cm4gQ29sb3IoKTsK
LSAgICAKLSAgICByZXR1cm4gdGV4dENvbG9yOwotfQotCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6
Y2FwdGlvbnNFZGdlQ29sb3JGb3JUZXh0Q29sb3IoY29uc3QgQ29sb3ImIHRleHRDb2xvcikgY29u
c3QKLXsKLSAgICBpbnQgZGlzdGFuY2VGcm9tV2hpdGUgPSBkaWZmZXJlbmNlU3F1YXJlZCh0ZXh0
Q29sb3IsIENvbG9yOjp3aGl0ZSk7Ci0gICAgaW50IGRpc3RhbmNlRnJvbUJsYWNrID0gZGlmZmVy
ZW5jZVNxdWFyZWQodGV4dENvbG9yLCBDb2xvcjo6YmxhY2spOwotICAgIAotICAgIGlmIChkaXN0
YW5jZUZyb21XaGl0ZSA8IGRpc3RhbmNlRnJvbUJsYWNrKQotICAgICAgICByZXR1cm4gdGV4dENv
bG9yLmRhcmsoKTsKLSAgICAKLSAgICByZXR1cm4gdGV4dENvbG9yLmxpZ2h0KCk7Ci19Ci0KLVN0
cmluZyBSZW5kZXJUaGVtZU1hYzo6Y3NzUHJvcGVydHlXaXRoVGV4dEVkZ2VDb2xvcihDU1NQcm9w
ZXJ0eUlEIGlkLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBjb25zdCBDb2xvciYgdGV4dENvbG9yKSBj
b25zdAotewotICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAKLSAgICBidWlsZGVyLmFw
cGVuZChnZXRQcm9wZXJ0eU5hbWVTdHJpbmcoaWQpKTsKLSAgICBidWlsZGVyLmFwcGVuZCgnOicp
OwotICAgIGJ1aWxkZXIuYXBwZW5kKHZhbHVlKTsKLSAgICBidWlsZGVyLmFwcGVuZCgnICcpOwot
ICAgIGJ1aWxkZXIuYXBwZW5kKGNhcHRpb25zRWRnZUNvbG9yRm9yVGV4dENvbG9yKHRleHRDb2xv
cikuc2VyaWFsaXplZCgpKTsKLSAgICBidWlsZGVyLmFwcGVuZCgnOycpOwotCi0gICAgcmV0dXJu
IGJ1aWxkZXIudG9TdHJpbmcoKTsKLX0KLSAgICAKLVN0cmluZyBSZW5kZXJUaGVtZU1hYzo6Y3Nz
Q29sb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBjb25zdCBDb2xvciYgY29sb3IpIGNvbnN0
Ci17Ci0gICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIAotICAgIGJ1aWxkZXIuYXBwZW5k
KGdldFByb3BlcnR5TmFtZVN0cmluZyhpZCkpOwotICAgIGJ1aWxkZXIuYXBwZW5kKCc6Jyk7Ci0g
ICAgYnVpbGRlci5hcHBlbmQoY29sb3Iuc2VyaWFsaXplZCgpKTsKLSAgICBidWlsZGVyLmFwcGVu
ZCgnOycpOwotICAgIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Ci19Ci0KLVN0cmlu
ZyBSZW5kZXJUaGVtZU1hYzo6Y2FwdGlvbnNUZXh0RWRnZVN0eWxlKCkgY29uc3QKLXsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZWRnZVN0eWxlUmFpc2VkLCAoIiAtLjA1
ZW0gLS4wNWVtIDAgIiwgU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBlZGdlU3R5bGVEZXByZXNzZWQsICgiIC4wNWVt
IC4wNWVtIDAgIiwgU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBlZGdlU3R5bGVEcm9wU2hhZG93LCAoIiAuMDc1ZW0g
LjA3NWVtIDAgIiwgU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBlZGdlU3R5bGVVbmlmb3JtLCAoIiAuMDNlbSAiLCBT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0KLSAgICBDb2xvciBjb2xvciA9IGNhcHRp
b25zVGV4dENvbG9yKCk7Ci0gICAgaWYgKCFjb2xvci5pc1ZhbGlkKCkpCi0gICAgICAgIGNvbG9y
LnNldE5hbWVkQ29sb3IoImJsYWNrIik7Ci0gICAgY29sb3IgPSBjYXB0aW9uc0VkZ2VDb2xvckZv
clRleHRDb2xvcihjb2xvcik7Ci0KLSAgICB3a0NhcHRpb25UZXh0RWRnZVN0eWxlIHRleHRFZGdl
U3R5bGUgPSBzdGF0aWNfY2FzdDx3a0NhcHRpb25UZXh0RWRnZVN0eWxlPih3a0NhcHRpb25BcHBl
YXJhbmNlR2V0VGV4dEVkZ2VTdHlsZSgpKTsKLSAgICBzd2l0Y2ggKHRleHRFZGdlU3R5bGUpIHsK
LSAgICBjYXNlIHdrQ2FwdGlvblRleHRFZGdlU3R5bGVVbmRlZmluZWQ6Ci0gICAgY2FzZSB3a0Nh
cHRpb25UZXh0RWRnZVN0eWxlTm9uZToKLSAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Ci0K
LSAgICBjYXNlIHdrQ2FwdGlvblRleHRFZGdlU3R5bGVSYWlzZWQ6Ci0gICAgICAgIHJldHVybiBj
c3NQcm9wZXJ0eVdpdGhUZXh0RWRnZUNvbG9yKENTU1Byb3BlcnR5VGV4dFNoYWRvdywgZWRnZVN0
eWxlUmFpc2VkLCBjb2xvcik7Ci0gICAgY2FzZSB3a0NhcHRpb25UZXh0RWRnZVN0eWxlRGVwcmVz
c2VkOgotICAgICAgICByZXR1cm4gY3NzUHJvcGVydHlXaXRoVGV4dEVkZ2VDb2xvcihDU1NQcm9w
ZXJ0eVRleHRTaGFkb3csIGVkZ2VTdHlsZURlcHJlc3NlZCwgY29sb3IpOwotICAgIGNhc2Ugd2tD
YXB0aW9uVGV4dEVkZ2VTdHlsZURyb3BTaGFkb3c6Ci0gICAgICAgIHJldHVybiBjc3NQcm9wZXJ0
eVdpdGhUZXh0RWRnZUNvbG9yKENTU1Byb3BlcnR5VGV4dFNoYWRvdywgZWRnZVN0eWxlRHJvcFNo
YWRvdywgY29sb3IpOwotICAgIGNhc2Ugd2tDYXB0aW9uVGV4dEVkZ2VTdHlsZVVuaWZvcm06Ci0g
ICAgICAgIHJldHVybiBjc3NQcm9wZXJ0eVdpdGhUZXh0RWRnZUNvbG9yKENTU1Byb3BlcnR5V2Vi
a2l0VGV4dFN0cm9rZSwgZWRnZVN0eWxlVW5pZm9ybSwgY29sb3IpOwotCi0gICAgY2FzZSB3a0Nh
cHRpb25UZXh0RWRnZVN0eWxlTWF4OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgfQotCi0gICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBSZW5kZXJU
aGVtZU1hYzo6Y2FwdGlvbnNEZWZhdWx0Rm9udCgpIGNvbnN0Ci17Ci0gICAgUmV0YWluUHRyPENH
Rm9udFJlZj4gZm9udChBZG9wdENGLCB3a0NhcHRpb25BcHBlYXJhbmNlQ29weUZvbnRGb3JTdHls
ZSh3a0NhcHRpb25Gb250U3R5bGVEZWZhdWx0KSk7Ci0gICAgaWYgKCFmb250KQotICAgICAgICBy
ZXR1cm4gZW1wdHlTdHJpbmcoKTsKLQotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gbmFtZShB
ZG9wdENGLCBDR0ZvbnRDb3B5UG9zdFNjcmlwdE5hbWUoZm9udC5nZXQoKSkpOwotICAgIGlmICgh
bmFtZSkKLSAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Ci0KLSAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXI7Ci0gICAgCi0gICAgYnVpbGRlci5hcHBlbmQoZ2V0UHJvcGVydHlOYW1lU3RyaW5n
KENTU1Byb3BlcnR5Rm9udEZhbWlseSkpOwotICAgIGJ1aWxkZXIuYXBwZW5kKCI6IFwiIik7Ci0g
ICAgYnVpbGRlci5hcHBlbmQobmFtZS5nZXQoKSk7Ci0gICAgYnVpbGRlci5hcHBlbmQoIlwiOyIp
OwotICAgIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBSZW5k
ZXJUaGVtZU1hYzo6Y2FwdGlvbnNTdHlsZVNoZWV0T3ZlcnJpZGUoKSBjb25zdAotewotICAgIFN0
cmluZ0J1aWxkZXIgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQ7Ci0KLSAgICBDb2xvciBjb2xv
ciA9IGNhcHRpb25zQmFja2dyb3VuZENvbG9yKCk7Ci0gICAgaWYgKGNvbG9yLmlzVmFsaWQoKSkg
ewotICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoIiB2aWRlbzo6Iik7
Ci0gICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZChUZXh0VHJhY2tDdWU6
OnBhc3ROb2Rlc1NoYWRvd1BzZXVkb0lkKCkpOwotICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5
bGVTaGVldC5hcHBlbmQoJ3snKTsKLSAgICAgICAgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQu
YXBwZW5kKGNzc0NvbG9yUHJvcGVydHkoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IsIGNvbG9y
KSk7Ci0gICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZCgnfScpOwotCi0g
ICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZCgiIHZpZGVvOjoiKTsKLSAg
ICAgICAgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQuYXBwZW5kKFRleHRUcmFja0N1ZTo6ZnV0
dXJlTm9kZXNTaGFkb3dQc2V1ZG9JZCgpKTsKLSAgICAgICAgY2FwdGlvbnNPdmVycmlkZVN0eWxl
U2hlZXQuYXBwZW5kKCd7Jyk7Ci0gICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFw
cGVuZChjc3NDb2xvclByb3BlcnR5KENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yLCBjb2xvcikp
OwotICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoJ30nKTsKLSAgICB9
Ci0KLSAgICBjb2xvciA9IGNhcHRpb25zV2luZG93Q29sb3IoKTsKLSAgICBpZiAoY29sb3IuaXNW
YWxpZCgpKSB7Ci0gICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZCgiIHZp
ZGVvOjoiKTsKLSAgICAgICAgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQuYXBwZW5kKFRleHRU
cmFja0N1ZUJveDo6dGV4dFRyYWNrQ3VlQm94U2hhZG93UHNldWRvSWQoKSk7Ci0gICAgICAgIGNh
cHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZCgneycpOwotICAgICAgICBjYXB0aW9uc092
ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoY3NzQ29sb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUJhY2tn
cm91bmRDb2xvciwgY29sb3IpKTsKLSAgICAgICAgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQu
YXBwZW5kKCd9Jyk7Ci0gICAgfQotCi0gICAgY29sb3IgPSBjYXB0aW9uc1RleHRDb2xvcigpOwot
ICAgIFN0cmluZyBlZGdlU3R5bGUgPSBjYXB0aW9uc1RleHRFZGdlU3R5bGUoKTsKLSAgICBTdHJp
bmcgZm9udE5hbWUgPSBjYXB0aW9uc0RlZmF1bHRGb250KCk7Ci0gICAgaWYgKGNvbG9yLmlzVmFs
aWQoKSB8fCAhZWRnZVN0eWxlLmlzRW1wdHkoKSB8fCAhZm9udE5hbWUuaXNFbXB0eSgpKSB7Ci0g
ICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZCgiIHZpZGVvOjoiKTsKLSAg
ICAgICAgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQuYXBwZW5kKFRleHRUcmFja0N1ZUJveDo6
dGV4dFRyYWNrQ3VlQm94U2hhZG93UHNldWRvSWQoKSk7Ci0gICAgICAgIGNhcHRpb25zT3ZlcnJp
ZGVTdHlsZVNoZWV0LmFwcGVuZCgneycpOwotCi0gICAgICAgIGlmIChjb2xvci5pc1ZhbGlkKCkp
Ci0gICAgICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoY3NzQ29sb3JQ
cm9wZXJ0eShDU1NQcm9wZXJ0eUNvbG9yLCBjb2xvcikpOwotICAgICAgICBpZiAoIWVkZ2VTdHls
ZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBl
bmQoZWRnZVN0eWxlKTsKLSAgICAgICAgaWYgKCFmb250TmFtZS5pc0VtcHR5KCkpCi0gICAgICAg
ICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoZm9udE5hbWUpOwotCi0gICAg
ICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZCgnfScpOwotICAgIH0KLQotICAg
IHJldHVybiBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC50b1N0cmluZygpOwotfQotCi1mbG9h
dCBSZW5kZXJUaGVtZU1hYzo6Y2FwdGlvbkZvbnRTaXplU2NhbGUoKSBjb25zdAotewotICAgIENH
RmxvYXQgY2hhcmFjdGVyU2NhbGUgPSBSZW5kZXJUaGVtZTo6Y2FwdGlvbkZvbnRTaXplU2NhbGUo
KTsKLSAgICBDR0Zsb2F0IHNjYWxlQWRqdXN0bWVudDsKLSAgICAKLSAgICBpZiAoIXdrQ2FwdGlv
bkFwcGVhcmFuY2VHZXRSZWxhdGl2ZUNoYXJhY3RlclNpemUoJnNjYWxlQWRqdXN0bWVudCkpCi0g
ICAgICAgIHJldHVybiBjaGFyYWN0ZXJTY2FsZTsKLSAgICAKLSAgICByZXR1cm4gbmFycm93UHJl
Y2lzaW9uVG9GbG9hdChzY2FsZUFkanVzdG1lbnQgKiBjaGFyYWN0ZXJTY2FsZSk7Ci19Ci0KLXZv
aWQgUmVuZGVyVGhlbWVNYWM6OmNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKQotewotICAgIGZv
ciAoSGFzaFNldDxDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkTGlzdGVuZXIqPjo6aXRlcmF0b3Ig
aSA9IG1fY2FwdGlvblByZWZlcmVuY2VDaGFuZ2VMaXN0ZW5lcnMuYmVnaW4oKTsgaSAhPSBtX2Nh
cHRpb25QcmVmZXJlbmNlQ2hhbmdlTGlzdGVuZXJzLmVuZCgpOyArK2kpCi0gICAgICAgICgqaSkt
PmNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKTsKLX0KLQotdm9pZCBSZW5kZXJUaGVtZU1hYzo6
cmVnaXN0ZXJGb3JDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2tzKENhcHRpb25QcmVm
ZXJlbmNlc0NoYW5nZWRMaXN0ZW5lciogbGlzdGVuZXIpCi17Ci0gICAgaWYgKCF3a0NhcHRpb25B
cHBlYXJhbmNlR2V0U2V0dGluZ3NDaGFuZ2VkTm90aWZpY2F0aW9uKCkpCi0gICAgICAgIHJldHVy
bjsKLSAgICAKLSAgICBpZiAoIW1fbGlzdGVuaW5nRm9yQ2FwdGlvblByZWZlcmVuY2VOb3RpZmlj
YXRpb25zKSB7Ci0gICAgICAgIG1fbGlzdGVuaW5nRm9yQ2FwdGlvblByZWZlcmVuY2VOb3RpZmlj
YXRpb25zID0gdHJ1ZTsKLSAgICAgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJBZGRPYnNlcnZlciAo
Q0ZOb3RpZmljYXRpb25DZW50ZXJHZXRMb2NhbENlbnRlcigpLCB0aGlzLCB1c2VyQ2FwdGlvblBy
ZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbkNhbGxiYWNrLCB3a0NhcHRpb25BcHBlYXJhbmNl
R2V0U2V0dGluZ3NDaGFuZ2VkTm90aWZpY2F0aW9uKCksIE5VTEwsIENGTm90aWZpY2F0aW9uU3Vz
cGVuc2lvbkJlaGF2aW9yQ29hbGVzY2UpOwotICAgIH0KLSAgICAKLSAgICBtX2NhcHRpb25QcmVm
ZXJlbmNlQ2hhbmdlTGlzdGVuZXJzLmFkZChsaXN0ZW5lcik7Ci19Ci0gICAgCi12b2lkIFJlbmRl
clRoZW1lTWFjOjp1bnJlZ2lzdGVyRm9yQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNr
cyhDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkTGlzdGVuZXIqIGxpc3RlbmVyKQotewotICAgICBp
ZiAod2tDYXB0aW9uQXBwZWFyYW5jZUdldFNldHRpbmdzQ2hhbmdlZE5vdGlmaWNhdGlvbigpKQot
ICAgICAgICBtX2NhcHRpb25QcmVmZXJlbmNlQ2hhbmdlTGlzdGVuZXJzLnJlbW92ZShsaXN0ZW5l
cik7Ci19Ci0jZW5kaWYgLy8gRU5BQkxFKFZJREVPX1RSQUNLKQotCiAjZW5kaWYgLy8gRU5BQkxF
KFZJREVPKQogCiBib29sIFJlbmRlclRoZW1lTWFjOjpzaG91bGRTaG93UGxhY2Vob2xkZXJXaGVu
Rm9jdXNlZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KaW5kZXggM2I2ZTFkOWNkZmM4OGUxN2U1OGQ0YjFi
NzFhYTFlZTgyODJlNzBkOS4uOGMzNWU4ZjA4OWZlYWUxMDcwZjEwZmRhZjg2MWMyODIwYWE5ZDBj
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVt
SW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5
c3RlbUludGVyZmFjZS5tbQpAQCAtMjA4LDE5ICsyMDgsNiBAQCB2b2lkIEluaXRXZWJDb3JlU3lz
dGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgSU5JVChOU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0
YSk7CiAjZW5kaWYKIAotICAgIElOSVQoQ2FwdGlvbkFwcGVhcmFuY2VIYXNVc2VyUHJlZmVyZW5j
ZXMpOwotICAgIElOSVQoQ2FwdGlvbkFwcGVhcmFuY2VTaG93Q2FwdGlvbnNXaGVuQXZhaWxhYmxl
KTsKLSAgICBJTklUKENhcHRpb25BcHBlYXJhbmNlQ29weUZvcmVncm91bmRDb2xvcik7Ci0gICAg
SU5JVChDYXB0aW9uQXBwZWFyYW5jZUNvcHlCYWNrZ3JvdW5kQ29sb3IpOwotICAgIElOSVQoQ2Fw
dGlvbkFwcGVhcmFuY2VDb3B5V2luZG93Q29sb3IpOwotICAgIElOSVQoQ2FwdGlvbkFwcGVhcmFu
Y2VHZXRGb3JlZ3JvdW5kT3BhY2l0eSk7Ci0gICAgSU5JVChDYXB0aW9uQXBwZWFyYW5jZUdldEJh
Y2tncm91bmRPcGFjaXR5KTsKLSAgICBJTklUKENhcHRpb25BcHBlYXJhbmNlR2V0V2luZG93T3Bh
Y2l0eSk7Ci0gICAgSU5JVChDYXB0aW9uQXBwZWFyYW5jZUNvcHlGb250Rm9yU3R5bGUpOwotICAg
IElOSVQoQ2FwdGlvbkFwcGVhcmFuY2VHZXRSZWxhdGl2ZUNoYXJhY3RlclNpemUpOwotICAgIElO
SVQoQ2FwdGlvbkFwcGVhcmFuY2VHZXRUZXh0RWRnZVN0eWxlKTsKLSAgICBJTklUKENhcHRpb25B
cHBlYXJhbmNlR2V0U2V0dGluZ3NDaGFuZ2VkTm90aWZpY2F0aW9uKTsKLQogI2VuZGlmCiAgICAg
ZGlkSW5pdCA9IHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KaW5k
ZXggNzk1YTEzZTM5YzU4ZmIxYWVhYmQ0ZDg3ZDIxOTQ5ODJlMjVlYTc4Ny4uYTAwNGE4Y2M3ZGZl
MDgwNjY1ZTJkMDU1OWQ4NmJhNzNkYjdhNGFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUlu
dGVyZmFjZS5tbQpAQCAtMTg5LDE3ICsxODksNSBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50
ZXJmYWNlKHZvaWQpCiAgICAgICAgIElOSVQoTlNSZWJvdW5kRGVsdGFGb3JFbGFzdGljRGVsdGEp
OwogI2VuZGlmCiAKLSAgICAgICAgSU5JVChDYXB0aW9uQXBwZWFyYW5jZUhhc1VzZXJQcmVmZXJl
bmNlcyk7Ci0gICAgICAgIElOSVQoQ2FwdGlvbkFwcGVhcmFuY2VTaG93Q2FwdGlvbnNXaGVuQXZh
aWxhYmxlKTsKLSAgICAgICAgSU5JVChDYXB0aW9uQXBwZWFyYW5jZUNvcHlGb3JlZ3JvdW5kQ29s
b3IpOwotICAgICAgICBJTklUKENhcHRpb25BcHBlYXJhbmNlQ29weUJhY2tncm91bmRDb2xvcik7
Ci0gICAgICAgIElOSVQoQ2FwdGlvbkFwcGVhcmFuY2VDb3B5V2luZG93Q29sb3IpOwotICAgICAg
ICBJTklUKENhcHRpb25BcHBlYXJhbmNlR2V0Rm9yZWdyb3VuZE9wYWNpdHkpOwotICAgICAgICBJ
TklUKENhcHRpb25BcHBlYXJhbmNlR2V0QmFja2dyb3VuZE9wYWNpdHkpOwotICAgICAgICBJTklU
KENhcHRpb25BcHBlYXJhbmNlR2V0V2luZG93T3BhY2l0eSk7Ci0gICAgICAgIElOSVQoQ2FwdGlv
bkFwcGVhcmFuY2VDb3B5Rm9udEZvclN0eWxlKTsKLSAgICAgICAgSU5JVChDYXB0aW9uQXBwZWFy
YW5jZUdldFJlbGF0aXZlQ2hhcmFjdGVyU2l6ZSk7Ci0gICAgICAgIElOSVQoQ2FwdGlvbkFwcGVh
cmFuY2VHZXRUZXh0RWRnZVN0eWxlKTsKLSAgICAgICAgSU5JVChDYXB0aW9uQXBwZWFyYW5jZUdl
dFNldHRpbmdzQ2hhbmdlZE5vdGlmaWNhdGlvbik7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWRhNzgw
MmJiNGQyMmQ3MDgzMzQ0NmIxMzk0OWE1ZjlmYjQzYjNjMS4uMGMwOGFlNjFmNzRjMmMzYTIxZjdl
YWMwMjBhMTkyZWZlODEwNWNiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTEwLTA1ICBT
aGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMTMwNTU2IGFuZCByMTMwNTY0LgorICAgICAgICBodHRwOi8v
dHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMzA1NTYKKyAgICAgICAgaHR0cDovL3RyYWMud2Vi
a2l0Lm9yZy9jaGFuZ2VzZXQvMTMwNTY0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05ODU3MgorCisgICAgICAgIFRoZSBwYXRjaCB3YXNuJ3QgcmV2aWV3
ZWQgYnkgYSByZXZpZXdlciBhbmQgaXQgaXMgYnJlYWtpbmcKKyAgICAgICAgQ2hyb21pdW0gV2lu
ZG93cyAoUmVxdWVzdGVkIGJ5IGpjaGFmZnJhaXggb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBt
ZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBt
ZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxMi0xMC0wNSAgSnVsaWVuIENoYWZmcmFp
eCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIENocm9taXVt
IGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1
ZS1yZW5kZXJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2st
Y3VlLXJlbmRlcmluZy1leHBlY3RlZC50eHQKaW5kZXggMzZjN2Y0N2EyNTg4MTRkNzQwYzdiNDE0
OTViZmExZTAxYjgyZjZmOC4uYzA2ZmJkMGQwMjdjYmE1MGZhOWYwOTliZmVjNDE2ZmM2MWQ5ZWZm
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmlu
Zy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJl
bmRlcmluZy1leHBlY3RlZC50eHQKQEAgLTQ5LDcgKzQ5LDcgQEAgUlVOKHZpZGVvLmhlaWdodCA9
IDE0NDApCiBFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0VHJhY2tEaXNwbGF5RWxlbWVu
dCh2aWRlbykpLmZvbnRTaXplID09ICc3MnB4JykgT0sKIAogRVhQRUNURUQgKGdldENvbXB1dGVk
U3R5bGUodGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8pKS5mb250RmFtaWx5ID09ICdzYW5z
LXNlcmlmJykgT0sKLUVYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKHRleHRUcmFja0Rpc3BsYXlF
bGVtZW50KHZpZGVvKSkuY29sb3IgPT0gJ3JnYigyNTUsIDI1NSwgMjU1KScpIE9LCitFWFBFQ1RF
RCAoZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbykpLmNvbG9y
ID09ICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDApJykgT0sKIEVYUEVDVEVEIChnZXRDb21wdXRlZFN0
eWxlKHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvLCAnZGlzcGxheScpLmZpcnN0Q2hpbGQp
LmJhY2tncm91bmRDb2xvciA9PSAncmdiYSgwLCAwLCAwLCAwLjc5Njg3NSknKSwgT0JTRVJWRUQg
J3JnYmEoMCwgMCwgMCwgMC44KScgRkFJTAogRU5EIE9GIFRFU1QKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy5odG1sIGIvTGF5b3V0VGVz
dHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy5odG1sCmluZGV4IGNkZjFiMDgzYTNl
OTdkOTEzYzVkYzUwMjJiMDk4OTYzNWYyMmE1NTUuLjVhN2U4ZTY1ZDhlYjFlMzQwYjBlOTRmNDEx
NWNhODc2ZWJjOTg2NTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNr
LWN1ZS1yZW5kZXJpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1j
dWUtcmVuZGVyaW5nLmh0bWwKQEAgLTMyLDcgKzMyLDcgQEAKICAgICAgICAgICAgIHRlc3RGb250
U2l6ZSgyNTYwLCAxNDQwKTsKIAogICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRl
ZFN0eWxlKHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvKSkuZm9udEZhbWlseSIsICJzYW5z
LXNlcmlmIik7Ci0gICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5bGUodGV4
dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8pKS5jb2xvciIsICJyZ2IoMjU1LCAyNTUsIDI1NSki
KTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0VHJhY2tE
aXNwbGF5RWxlbWVudCh2aWRlbykpLmNvbG9yIiwgInJnYmEoMjU1LCAyNTUsIDI1NSwgMCkiKTsK
ICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0VHJhY2tEaXNw
bGF5RWxlbWVudCh2aWRlbywgJ2Rpc3BsYXknKS5maXJzdENoaWxkKS5iYWNrZ3JvdW5kQ29sb3Ii
LCAicmdiYSgwLCAwLCAwLCAwLjc5Njg3NSkiKTsKIAogICAgICAgICAgICAgZW5kVGVzdCgpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
YTk5ZDhhNmRkMzlkNzNjYjc4ODNiNDVmMDhiMjZiNWM2YzBlNzk5Ni4uOThlZjE1ZGIxNGE4YjJh
ZmM2NTBhZWJiYzRmYmUzY2FlM2VhMWQwMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC0zNzg2LDkgKzM3ODYsMyBAQCB3ZWJraXQub3Jn
L2IvOTUxMjEgZmFzdC9ib3JkZXJzL2JvcmRlci1pbWFnZS1zaWRlLXJlZHVjdGlvbi5odG1sIFsg
SW1hZ2VPbmx5RmFpbAogIyBmYWlsaW5nIGFmdGVyIHIxMzA0NDMgYnV0IHdlJ3JlIG5vdCBzdXJl
IGlmIHRoaXMgaXMgYSByZWFsIGJ1ZyBvciBqdXN0IG5lZWRzIHJlYmFzZWxpbmluZwogd2Via2l0
Lm9yZy9iLzk4NTQ1IFsgTWFjIF0gZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvdGV4dC1zcGxpY2Vk
LWZvbnQuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzk4NTQ1IFsgTWFjIF0gZmFzdC93
cml0aW5nLW1vZGUvS3VzYS1NYWt1cmEtYmFja2dyb3VuZC1jYW52YXMuaHRtbCBbIEZhaWx1cmUg
XQotCi0jIE5lZWQgdG8gYmUgdXBkYXRlZCBhZnRlciB3ZWJraXQub3JnL2IvOTc4MDAKLXdlYmtp
dC5vcmcvYi84OTE2NyBtZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLWhvcml6b250YWwu
aHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzg5MTY3IG1lZGlhL3RyYWNrL3RyYWNrLWN1
ZS1yZW5kZXJpbmctdmVydGljYWwuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzg5MTY3
IG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmcuaHRtbCBbIEZhaWx1cmUgXQotCmRpZmYg
LS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nIGIvV2ViS2l0TGlicmFyaWVzL0NoYW5n
ZUxvZwppbmRleCAyNjRhYjJjODkxZWUyZjU2OWE5MGEwMDBmMjE3NTgwZTQyYmVkZTM1Li5jZDM2
NGQwN2ZjYWU3YTYzYThmZDhkZmU0YWIxNWI0NmMxOTU2ZDFhIDEwMDY0NAotLS0gYS9XZWJLaXRM
aWJyYXJpZXMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxMi0xMC0wNSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBn
bWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzMDU1NiBhbmQg
cjEzMDU2NC4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTMwNTU2
CisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEzMDU2NAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg1NzIKKworICAgICAg
ICBUaGUgcGF0Y2ggd2Fzbid0IHJldmlld2VkIGJ5IGEgcmV2aWV3ZXIgYW5kIGl0IGlzIGJyZWFr
aW5nCisgICAgICAgIENocm9taXVtIFdpbmRvd3MgKFJlcXVlc3RlZCBieSBqY2hhZmZyYWl4IG9u
ICN3ZWJraXQpLgorCisgICAgICAgICogV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg6CisKIDIwMTIt
MTAtMDUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAg
VXBkYXRlIFdlYktpdFN5c3RlbUludGVyZmFjZSBsaWJyYXJpZXMgYW5kIGhlYWRlci4KZGlmZiAt
LWdpdCBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCBiL1dlYktpdExp
YnJhcmllcy9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaAppbmRleCA0NzI3OWYzODdkYmFkOTE3ODBm
ZjdkNjIwNmNhNGRlNDc0N2MyNjRiLi5hY2Y0MDYxYmNhMjA4NWI1NDU2YTM5MGEyYzA4MzE4ZWJi
ZDZlMTY1IDEwMDY0NAotLS0gYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0U3lzdGVtSW50ZXJmYWNl
LmgKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFN5c3RlbUludGVyZmFjZS5oCkBAIC0xLDYg
KzEsNiBAQAogLyogICAgICAKICAgICBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaAotICAgIENvcHly
aWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSwgMjAxMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgICAgQ29weXJpZ2h0IChDKSAyMDA1LCAy
MDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KIAogICAgIFB1YmxpYyBoZWFkZXIgZmlsZS4KICovCkBAIC01MTMsNDEgKzUxMyw2
IEBAIENHRmxvYXQgV0tOU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YShDR0Zsb2F0IGRlbHRh
KTsKIEJvb2xlYW4gV0tKTElzUnVudGltZUFuZFdlYkNvbXBvbmVudHNJbnN0YWxsZWQodm9pZCk7
CiAjZW5kaWYKIAotdHlwZWRlZiBlbnVtIHsKLSAgICBXS0NhcHRpb25Gb250U3R5bGVEZWZhdWx0
ID0gMCwKLSAgICBXS0NhcHRpb25Gb250U3R5bGVNb25vc3BhY2VkV2l0aFNlcmlmLAotICAgIFdL
Q2FwdGlvbkZvbnRTdHlsZVByb3BvcnRpb25hbFdpdGhTZXJpZiwKLSAgICBXS0NhcHRpb25Gb250
U3R5bGVNb25vc3BhY2VkV2l0aG91dFNlcmlmLAotICAgIFdLQ2FwdGlvbkZvbnRTdHlsZVByb3Bv
cnRpb25hbFdpdGhvdXRTZXJpZiwKLSAgICBXS0NhcHRpb25Gb250U3R5bGVDYXN1YWwsCi0gICAg
V0tDYXB0aW9uRm9udFN0eWxlQ3Vyc2l2ZSwKLSAgICBXS0NhcHRpb25Gb250U3R5bGVTbWFsbENh
cGl0YWwsCi0gICAgV0tDYXB0aW9uRm9udFN0eWxlTWF4Ci19IFdLQ2FwdGlvbkZvbnRTdHlsZTsK
LQotdHlwZWRlZiBlbnVtIHsKLSAgICBXS0NhcHRpb25UZXh0RWRnZVN0eWxlVW5kZWZpbmVkID0g
MCwKLSAgICBXS0NhcHRpb25UZXh0RWRnZVN0eWxlTm9uZSwKLSAgICBXS0NhcHRpb25UZXh0RWRn
ZVN0eWxlUmFpc2VkLAotICAgIFdLQ2FwdGlvblRleHRFZGdlU3R5bGVEZXByZXNzZWQsCi0gICAg
V0tDYXB0aW9uVGV4dEVkZ2VTdHlsZVVuaWZvcm0sCi0gICAgV0tDYXB0aW9uVGV4dEVkZ2VTdHls
ZURyb3BTaGFkb3csCi0gICAgV0tDYXB0aW9uVGV4dEVkZ2VTdHlsZU1heAotfSBXS0NhcHRpb25U
ZXh0RWRnZVN0eWxlOwotCi1ib29sIFdLQ2FwdGlvbkFwcGVhcmFuY2VIYXNVc2VyUHJlZmVyZW5j
ZXModm9pZCk7Ci1ib29sIFdLQ2FwdGlvbkFwcGVhcmFuY2VTaG93Q2FwdGlvbnNXaGVuQXZhaWxh
YmxlKHZvaWQpOwotQ0dDb2xvclJlZiBXS0NhcHRpb25BcHBlYXJhbmNlQ29weUZvcmVncm91bmRD
b2xvcih2b2lkKTsKLUNHQ29sb3JSZWYgV0tDYXB0aW9uQXBwZWFyYW5jZUNvcHlCYWNrZ3JvdW5k
Q29sb3Iodm9pZCk7Ci1DR0NvbG9yUmVmIFdLQ2FwdGlvbkFwcGVhcmFuY2VDb3B5V2luZG93Q29s
b3Iodm9pZCk7Ci1ib29sIFdLQ2FwdGlvbkFwcGVhcmFuY2VHZXRGb3JlZ3JvdW5kT3BhY2l0eShD
R0Zsb2F0Kik7Ci1ib29sIFdLQ2FwdGlvbkFwcGVhcmFuY2VHZXRCYWNrZ3JvdW5kT3BhY2l0eShD
R0Zsb2F0Kik7Ci1ib29sIFdLQ2FwdGlvbkFwcGVhcmFuY2VHZXRXaW5kb3dPcGFjaXR5KENHRmxv
YXQqKTsKLUNHRm9udFJlZiBXS0NhcHRpb25BcHBlYXJhbmNlQ29weUZvbnRGb3JTdHlsZShpbnQg
Zm9udFN0eWxlKTsKLWJvb2wgV0tDYXB0aW9uQXBwZWFyYW5jZUdldFJlbGF0aXZlQ2hhcmFjdGVy
U2l6ZShDR0Zsb2F0Kik7Ci1pbnQgV0tDYXB0aW9uQXBwZWFyYW5jZUdldFRleHRFZGdlU3R5bGUo
dm9pZCk7Ci1DRlN0cmluZ1JlZiBXS0NhcHRpb25BcHBlYXJhbmNlR2V0U2V0dGluZ3NDaGFuZ2Vk
Tm90aWZpY2F0aW9uKHZvaWQpOwotCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>