<?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>126310</bug_id>
          
          <creation_ts>2013-12-30 16:20:58 -0800</creation_ts>
          <short_desc>Remove WTF&apos;s BinarySemaphore</short_desc>
          <delta_ts>2015-02-26 06:34:09 -0800</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>INVALID</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="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>963398</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-12-30 16:20:58 -0800</bug_when>
    <thetext>Remove WTF&apos;s BinarySemaphore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963400</commentid>
    <comment_count>1</comment_count>
      <attachid>220131</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-12-30 16:21:38 -0800</bug_when>
    <thetext>Created attachment 220131
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963402</commentid>
    <comment_count>2</comment_count>
      <attachid>220133</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-12-30 16:22:43 -0800</bug_when>
    <thetext>Created attachment 220133
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963407</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-12-30 16:27:27 -0800</bug_when>
    <thetext>Committed r161160: &lt;http://trac.webkit.org/changeset/161160&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963477</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-12-30 22:50:40 -0800</bug_when>
    <thetext>Rolling out with the rest of today&apos;s threading fixes, which broke WebKit2 on Mountain Lion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072362</commentid>
    <comment_count>5</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-02-26 06:34:09 -0800</bug_when>
    <thetext>It is still used.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220131</attachid>
            <date>2013-12-30 16:21:38 -0800</date>
            <delta_ts>2013-12-30 16:22:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126310-20131230162138.patch</filename>
            <type>text/plain</type>
            <size>28096</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNjExNTgpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEzLTEyLTMwICBTYW0gV2VpbmlnICA8c2FtQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIFdURidzIEJpbmFyeVNlbWFwaG9yZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2MzEwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQncyB1bnVzZWQuIEFs
c28gcmVtb3ZlIHRoZSBub3cgZW1wdHkgd3RmL3RocmVhZHMgZGlyZWN0b3J5LgorCisgICAgICAg
ICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXVEYudmN4cHJvai9XVEYudmN4cHJv
ajoKKyAgICAgICAgKiBXVEYudmN4cHJvai9XVEYudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAq
IFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiB3dGYvRm9yd2FyZC5oOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybVdp
bi5jbWFrZToKKyAgICAgICAgKiB3dGYvdGhyZWFkczogUmVtb3ZlZC4KKyAgICAgICAgKiB3dGYv
dGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHd0Zi90aHJl
YWRzL0JpbmFyeVNlbWFwaG9yZS5oOiBSZW1vdmVkLgorICAgICAgICAqIHd0Zi90aHJlYWRzL3dp
bjogUmVtb3ZlZC4KKyAgICAgICAgKiB3dGYvdGhyZWFkcy93aW4vQmluYXJ5U2VtYXBob3JlV2lu
LmNwcDogUmVtb3ZlZC4KKwogMjAxMy0xMi0zMCAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBw
bGUuY29tPgogCiAgICAgICAgIFtXaW5kb3dzXSBVbnJldmlld2VkIGJ1aWxkIGZpeCBmb2xsb3dp
bmcgcjE2MDk1OS4KSW5kZXg6IFNvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE2MTE1NykK
KysrIFNvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtMjQ0
LDggKzI0NCw2IEBAIHd0Zl9zb3VyY2VzICs9IFwKICAgICBTb3VyY2UvV1RGL3d0Zi90ZXh0L1Rl
eHRQb3NpdGlvbi5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAgXAog
ICAgIFNvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggXAotICAgIFNvdXJjZS9XVEYvd3Rm
L3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmNwcCBcCi0gICAgU291cmNlL1dURi93dGYvdGhyZWFk
cy9CaW5hcnlTZW1hcGhvcmUuaCBcCiAgICAgU291cmNlL1dURi93dGYvdW5pY29kZS9DaGFyYWN0
ZXJOYW1lcy5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi91bmljb2RlL0NvbGxhdG9yLmggXAogICAg
IFNvdXJjZS9XVEYvd3RmL3VuaWNvZGUvQ29sbGF0b3JEZWZhdWx0LmNwcCBcCkluZGV4OiBTb3Vy
Y2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYv
V1RGLnZjeHByb2ovV1RGLnZjeHByb2oJKHJldmlzaW9uIDE2MTE1NykKKysrIFNvdXJjZS9XVEYv
V1RGLnZjeHByb2ovV1RGLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE0MSw4ICsxNDEsNiBA
QAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXFRocmVhZGluZy5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcVGhyZWFkaW5nV2luLmNwcCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHd0Zlx0aHJlYWRzcGVjaWZpY1dpbi5jcHAiIC8+Ci0gICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcdGhyZWFkc1xCaW5hcnlTZW1hcGhvcmUuY3BwIiAvPgot
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXHRocmVhZHNcd2luXEJpbmFyeVNlbWFwaG9y
ZVdpbi5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcdW5pY29kZVxpY3Vc
Q29sbGF0b3JJQ1UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXHVuaWNv
ZGVcVVRGOC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcd2luXE1haW5U
aHJlYWRXaW4uY3BwIiAvPgpAQCAtMjk3LDcgKzI5NSw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlx3dGZcVGhyZWFkUmVzdHJpY3Rpb25WZXJpZmllci5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cd3RmXHRocmVhZHNhZmVSZWZDb3VudGVkLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlx3dGZcdGhyZWFkc3BlY2lmaWMuaCIgLz4KLSAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHd0Zlx0aHJlYWRzXEJpbmFyeVNlbWFwaG9yZS5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cd3RmXHVuaWNvZGVcQ2hhcmFjdGVyTmFtZXMuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0Zlx1bmljb2RlXENvbGxhdG9yLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcdW5pY29kZVxpY3VcVW5pY29kZUljdS5oIiAvPgpJbmRl
eDogU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ouZmlsdGVycwkocmV2aXNpb24g
MTYxMTU3KQorKysgU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvai5maWx0ZXJzCSh3
b3JraW5nIGNvcHkpCkBAIC04NywxMiArODcsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cd3RmXHdpblxNYWluVGhyZWFkV2luLmNwcCI+CiAgICAgICA8RmlsdGVyPndpbjwvRmlsdGVy
PgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXHRocmVh
ZHNcd2luXEJpbmFyeVNlbWFwaG9yZVdpbi5jcHAiPgotICAgICAgPEZpbHRlcj50aHJlYWRzXHdp
bjwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
d3RmXHRocmVhZHNcQmluYXJ5U2VtYXBob3JlLmNwcCI+Ci0gICAgICA8RmlsdGVyPnRocmVhZHM8
L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0
Zlx0aHJlYWRzcGVjaWZpY1dpbi5jcHAiPgogICAgICAgPEZpbHRlcj53dGY8L0ZpbHRlcj4KICAg
ICA8L0NsQ29tcGlsZT4KQEAgLTMyMSw5ICszMTUsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cd3RmXHRleHRcV1RGU3RyaW5nLmgiPgogICAgICAgPEZpbHRlcj50ZXh0PC9GaWx0ZXI+
CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcdGhyZWFk
c1xCaW5hcnlTZW1hcGhvcmUuaCI+Ci0gICAgICA8RmlsdGVyPnRocmVhZHM8L0ZpbHRlcj4KLSAg
ICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0Zlx0aHJlYWRzYWZl
UmVmQ291bnRlZC5oIj4KICAgICAgIDxGaWx0ZXI+d3RmPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1
ZGU+CkluZGV4OiBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlz
aW9uIDE2MTE1NykKKysrIFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTI0NSw4ICsyNDUsNiBAQAogCQlBOEE0NzQ0RDE1MUE4MjVCMDA0
MTIzRkYgLyogVGhyZWFkaW5nUHJpbWl0aXZlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczMzUxNTFBODI1QjAwNDEyM0ZGIC8qIFRocmVhZGlu
Z1ByaW1pdGl2ZXMuaCAqLzsgfTsKIAkJQThBNDc0NEUxNTFBODI1QjAwNDEyM0ZGIC8qIFRocmVh
ZGluZ1B0aHJlYWRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4QTQ3MzM2MTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRpbmdQdGhyZWFkcy5jcHAg
Ki87IH07CiAJCUE4QTQ3NDUwMTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRSZXN0cmljdGlvblZl
cmlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEE0NzMzODE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFkUmVzdHJpY3Rpb25WZXJpZmllci5oICov
OyB9OwotCQlBOEE0NzQ1MTE1MUE4MjVCMDA0MTIzRkYgLyogQmluYXJ5U2VtYXBob3JlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MzNBMTUx
QTgyNUIwMDQxMjNGRiAvKiBCaW5hcnlTZW1hcGhvcmUuY3BwICovOyB9OwotCQlBOEE0NzQ1MjE1
MUE4MjVCMDA0MTIzRkYgLyogQmluYXJ5U2VtYXBob3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzMzQjE1MUE4MjVCMDA0MTIzRkYgLyogQmlu
YXJ5U2VtYXBob3JlLmggKi87IH07CiAJCUE4QTQ3NDU0MTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJl
YWRTYWZlUmVmQ291bnRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQThBNDczM0UxNTFBODI1QjAwNDEyM0ZGIC8qIFRocmVhZFNhZmVSZWZDb3VudGVk
LmggKi87IH07CiAJCUE4QTQ3NDU1MTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRTcGVjaWZpYy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczM0Yx
NTFBODI1QjAwNDEyM0ZGIC8qIFRocmVhZFNwZWNpZmljLmggKi87IH07CiAJCUE4QTQ3NDVFMTUx
QTgyNUIwMDQxMjNGRiAvKiBDaGFyYWN0ZXJOYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczNDkxNTFBODI1QjAwNDEyM0ZGIC8qIENoYXJh
Y3Rlck5hbWVzLmggKi87IH07CkBAIC01MjEsOCArNTE5LDYgQEAKIAkJQThBNDczMzUxNTFBODI1
QjAwNDEyM0ZGIC8qIFRocmVhZGluZ1ByaW1pdGl2ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVGhyZWFkaW5nUHJpbWl0aXZlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBOEE0NzMzNjE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFkaW5nUHRocmVhZHMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGhyZWFkaW5nUHRocmVhZHMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzMzODE1MUE4MjVCMDA0MTIz
RkYgLyogVGhyZWFkUmVzdHJpY3Rpb25WZXJpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBUaHJlYWRSZXN0cmljdGlvblZlcmlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUE4QTQ3MzNBMTUxQTgyNUIwMDQxMjNGRiAvKiBCaW5hcnlTZW1hcGhvcmUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmluYXJ5U2VtYXBob3Jl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThBNDczM0IxNTFBODI1QjAwNDEy
M0ZGIC8qIEJpbmFyeVNlbWFwaG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBCaW5hcnlTZW1hcGhvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcz
M0UxNTFBODI1QjAwNDEyM0ZGIC8qIFRocmVhZFNhZmVSZWZDb3VudGVkLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRocmVhZFNhZmVSZWZDb3VudGVkLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MzNGMTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRTcGVj
aWZpYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaHJlYWRTcGVjaWZpYy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzM0OTE1MUE4MjVCMDA0MTIzRkYg
LyogQ2hhcmFjdGVyTmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2hh
cmFjdGVyTmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY0NCw3ICs2NDAs
NiBAQAogCQkJCTFGQTQ3Qzg3MTUyNTAyREEwMDU2OEQxQiAvKiBpb3MgKi8sCiAJCQkJQThBNDcy
QzQxNTFBODI1QTAwNDEyM0ZGIC8qIG1hYyAqLywKIAkJCQlBOEE0NzMxQjE1MUE4MjVCMDA0MTIz
RkYgLyogdGV4dCAqLywKLQkJCQlBOEE0NzMzOTE1MUE4MjVCMDA0MTIzRkYgLyogdGhyZWFkcyAq
LywKIAkJCQlBOEE0NzM0ODE1MUE4MjVCMDA0MTIzRkYgLyogdW5pY29kZSAqLywKIAkJCQlBOEE0
NzI1QTE1MUE4MjVBMDA0MTIzRkYgLyogQVNDSUlDVHlwZS5oICovLAogCQkJCUE4QTQ3MjVCMTUx
QTgyNUEwMDQxMjNGRiAvKiBBc3NlcnRpb25zLmNwcCAqLywKQEAgLTkwOSwxNSArOTA0LDYgQEAK
IAkJCXBhdGggPSB0ZXh0OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJQThB
NDczMzkxNTFBODI1QjAwNDEyM0ZGIC8qIHRocmVhZHMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91
cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCUE4QTQ3MzNBMTUxQTgyNUIwMDQxMjNGRiAvKiBCaW5h
cnlTZW1hcGhvcmUuY3BwICovLAotCQkJCUE4QTQ3MzNCMTUxQTgyNUIwMDQxMjNGRiAvKiBCaW5h
cnlTZW1hcGhvcmUuaCAqLywKLQkJCSk7Ci0JCQlwYXRoID0gdGhyZWFkczsKLQkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCUE4QTQ3MzQ4MTUxQTgyNUIwMDQxMjNGRiAvKiB1bmlj
b2RlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTk2NSw3
ICs5NTEsNiBAQAogCQkJCUE4QTQ3M0E5MTUxQTgyNUIwMDQxMjNGRiAvKiBiaWdudW0tZHRvYS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczQUIxNTFBODI1QjAwNDEyM0ZGIC8qIGJpZ251bS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0NERDdGRkExODZEMkE1NDAwNzQzM0NEIC8qIEl0ZXJhdG9y
UGFpci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThBNDc0NTIxNTFBODI1QjAwNDEyM0ZGIC8qIEJp
bmFyeVNlbWFwaG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczOEExNTFBODI1QjAwNDEy
M0ZGIC8qIEJpdG1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczOEMxNTFBODI1QjAwNDEy
M0ZGIC8qIEJpdFZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczOEUxNTFBODI1QjAw
NDEyM0ZGIC8qIEJsb2NrU3RhY2suaCBpbiBIZWFkZXJzICovLApAQCAtMTIwOCw3ICsxMTkzLDYg
QEAKIAkJCQk4MTM0MDEzODE1QjA5MkZEMDAxRkYwQjggLyogQmFzZTY0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4QTQ3M0E4MTUxQTgyNUIwMDQxMjNGRiAvKiBiaWdudW0tZHRvYS5jYyBpbiBT
b3VyY2VzICovLAogCQkJCUE4QTQ3M0FBMTUxQTgyNUIwMDQxMjNGRiAvKiBiaWdudW0uY2MgaW4g
U291cmNlcyAqLywKLQkJCQlBOEE0NzQ1MTE1MUE4MjVCMDA0MTIzRkYgLyogQmluYXJ5U2VtYXBo
b3JlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3MzhCMTUxQTgyNUIwMDQxMjNGRiAvKiBC
aXRWZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczQUMxNTFBODI1QjAwNDEyM0ZG
IC8qIGNhY2hlZC1wb3dlcnMuY2MgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQ2MDE1MUE4MjVC
MDA0MTIzRkYgLyogQ29sbGF0b3JEZWZhdWx0LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291
cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYv
Q01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDE2MTE1NykKKysrIFNvdXJjZS9XVEYvd3RmL0NNYWtl
TGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsOCArMTM2LDYgQEAgc2V0KFdURl9IRUFE
RVJTCiAgICAgdGV4dC9TdHJpbmdJbXBsLmgKICAgICB0ZXh0L1dURlN0cmluZy5oCiAKLSAgICB0
aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oCi0KICAgICB1bmljb2RlL0NoYXJhY3Rlck5hbWVzLmgK
ICAgICB1bmljb2RlL0NvbGxhdG9yLmgKICAgICB1bmljb2RlL1VURjguaApAQCAtMjAzLDggKzIw
MSw2IEBAIHNldChXVEZfU09VUkNFUwogICAgIHRleHQvU3RyaW5nU3RhdGljcy5jcHAKICAgICB0
ZXh0L1dURlN0cmluZy5jcHAKIAotICAgIHRocmVhZHMvQmluYXJ5U2VtYXBob3JlLmNwcAotCiAg
ICAgdW5pY29kZS9VVEY4LmNwcAogKQogCkBAIC0yMTIsNyArMjA4LDYgQEAgc2V0KFdURl9JTkNM
VURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V1RGX0RJUn0iCiAgICAgIiR7V1RGX0RJUn0vd3RmIgog
ICAgICIke1dURl9ESVJ9L3d0Zi9kdG9hIgotICAgICIke1dURl9ESVJ9L3d0Zi90aHJlYWRzIgog
ICAgICIke1dURl9ESVJ9L3d0Zi91bmljb2RlIgogICAgICIke1RISVJEUEFSVFlfRElSfSIKICAg
ICAiJHtDTUFLRV9CSU5BUllfRElSfSIKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgJKHJldmlzaW9uIDE2MTE1NykK
KysrIFNvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgs
NiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpCiAKIGNsYXNzIEF0
b21pY1N0cmluZzsKIGNsYXNzIEF0b21pY1N0cmluZ0ltcGw7Ci1jbGFzcyBCaW5hcnlTZW1hcGhv
cmU7CiBjbGFzcyBDU3RyaW5nOwogY2xhc3MgRGVjb2RlcjsKIGNsYXNzIEVuY29kZXI7CkluZGV4
OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdpbi5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybVdpbi5jbWFrZQkocmV2aXNpb24gMTYxMTU3KQorKysgU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1XaW4uY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw0IEBACiBs
aXN0KEFQUEVORCBXVEZfU09VUkNFUwotICAgIHRocmVhZHMvd2luL0JpbmFyeVNlbWFwaG9yZVdp
bi5jcHAKLQogICAgIHdpbi9NYWluVGhyZWFkV2luLmNwcAogICAgIHdpbi9SdW5Mb29wV2luLmNw
cAogKQpJbmRleDogU291cmNlL1dURi93dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmNwcAko
cmV2aXNpb24gMTYxMTU3KQorKysgU291cmNlL1dURi93dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhv
cmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDY4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQmluYXJ5U2VtYXBob3JlLmgiCi0KLSNpZiAhUExB
VEZPUk0oV0lOKQotCi1uYW1lc3BhY2UgV1RGIHsKLQotQmluYXJ5U2VtYXBob3JlOjpCaW5hcnlT
ZW1hcGhvcmUoKQotICAgIDogbV9pc1NldChmYWxzZSkKLXsKLX0KLSAgICAKLUJpbmFyeVNlbWFw
aG9yZTo6fkJpbmFyeVNlbWFwaG9yZSgpCi17Ci19Ci0KLXZvaWQgQmluYXJ5U2VtYXBob3JlOjpz
aWduYWwoKQotewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKLQotICAgIG1faXNT
ZXQgPSB0cnVlOwotICAgIG1fY29uZGl0aW9uLnNpZ25hbCgpOwotfQotCi1ib29sIEJpbmFyeVNl
bWFwaG9yZTo6d2FpdChkb3VibGUgYWJzb2x1dGVUaW1lKQotewotICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX211dGV4KTsKLQotICAgIGJvb2wgdGltZWRPdXQgPSBmYWxzZTsKLSAgICB3aGlsZSAo
IW1faXNTZXQpIHsKLSAgICAgICAgdGltZWRPdXQgPSAhbV9jb25kaXRpb24udGltZWRXYWl0KG1f
bXV0ZXgsIGFic29sdXRlVGltZSk7Ci0gICAgICAgIGlmICh0aW1lZE91dCkKLSAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICAvLyBSZXNldCB0aGUgc2VtYXBob3JlLgotICAg
IG1faXNTZXQgPSBmYWxzZTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotfSAvLyBuYW1lc3BhY2Ug
V1RGCi0KLSNlbmRpZiAvLyAhUExBVEZPUk0oV0lOKQpJbmRleDogU291cmNlL1dURi93dGYvdGhy
ZWFkcy9CaW5hcnlTZW1hcGhvcmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90aHJl
YWRzL0JpbmFyeVNlbWFwaG9yZS5oCShyZXZpc2lvbiAxNjExNTcpCisrKyBTb3VyY2UvV1RGL3d0
Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYzICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEJpbmFyeVNlbWFwaG9yZV9oCi0jZGVmaW5l
IEJpbmFyeVNlbWFwaG9yZV9oCi0KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNs
dWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotY2xh
c3MgQmluYXJ5U2VtYXBob3JlIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShCaW5hcnlTZW1h
cGhvcmUpOwotCi1wdWJsaWM6Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIEJpbmFyeVNlbWFwaG9y
ZSgpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB+QmluYXJ5U2VtYXBob3JlKCk7Ci0KLSAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzaWduYWwoKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
Ym9vbCB3YWl0KGRvdWJsZSBhYnNvbHV0ZVRpbWUpOwotCi0jaWYgT1MoV0lORE9XUykKLSAgICBI
QU5ETEUgZXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2V2ZW50OyB9Ci0jZW5kaWYKLQotcHJpdmF0
ZToKLSNpZiBPUyhXSU5ET1dTKQotICAgIEhBTkRMRSBtX2V2ZW50OwotI2Vsc2UKLSAgICBib29s
IG1faXNTZXQ7Ci0KLSAgICBNdXRleCBtX211dGV4OwotICAgIFRocmVhZENvbmRpdGlvbiBtX2Nv
bmRpdGlvbjsKLSNlbmRpZgotfTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5nIFdURjo6
QmluYXJ5U2VtYXBob3JlOwotCi0jZW5kaWYgLy8gQmluYXJ5U2VtYXBob3JlX2gKSW5kZXg6IFNv
dXJjZS9XVEYvd3RmL3RocmVhZHMvd2luL0JpbmFyeVNlbWFwaG9yZVdpbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dURi93dGYvdGhyZWFkcy93aW4vQmluYXJ5U2VtYXBob3JlV2luLmNwcAko
cmV2aXNpb24gMTYxMTU3KQorKysgU291cmNlL1dURi93dGYvdGhyZWFkcy93aW4vQmluYXJ5U2Vt
YXBob3JlV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw3NSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkJpbmFyeVNlbWFwaG9yZS5oIgotCi1u
YW1lc3BhY2UgV1RGIHsKLQotQmluYXJ5U2VtYXBob3JlOjpCaW5hcnlTZW1hcGhvcmUoKQotICAg
IDogbV9ldmVudCg6OkNyZWF0ZUV2ZW50VygwLCBGQUxTRSwgRkFMU0UsIDApKQotewotfQotCi1C
aW5hcnlTZW1hcGhvcmU6On5CaW5hcnlTZW1hcGhvcmUoKQotewotICAgIDo6Q2xvc2VIYW5kbGUo
bV9ldmVudCk7Ci19Ci0KLXZvaWQgQmluYXJ5U2VtYXBob3JlOjpzaWduYWwoKQotewotICAgIDo6
U2V0RXZlbnQobV9ldmVudCk7Ci19Ci0KLWJvb2wgQmluYXJ5U2VtYXBob3JlOjp3YWl0KGRvdWJs
ZSBhYnNvbHV0ZVRpbWUpCi17Ci0gICAgRFdPUkQgaW50ZXJ2YWwgPSBhYnNvbHV0ZVRpbWVUb1dh
aXRUaW1lb3V0SW50ZXJ2YWwoYWJzb2x1dGVUaW1lKTsKLSAgICBpZiAoIWludGVydmFsKSB7Ci0g
ICAgICAgIC8vIENvbnNpZGVyIHRoZSB3YWl0IHRvIGhhdmUgdGltZWQgb3V0LCBldmVuIGlmIHRo
ZSBldmVudCBoYXMgYWxyZWFkeSBiZWVuIHNpZ25hbGVkLCB0bwotICAgICAgICAvLyBtYXRjaCB0
aGUgV1RGOjpUaHJlYWRDb25kaXRpb24gaW1wbGVtZW50YXRpb24uCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICB9Ci0KLSAgICBEV09SRCByZXN1bHQgPSA6OldhaXRGb3JTaW5nbGVPYmplY3Qo
bV9ldmVudCwgaW50ZXJ2YWwpOwotICAgIHN3aXRjaCAocmVzdWx0KSB7Ci0gICAgY2FzZSBXQUlU
X09CSkVDVF8wOgotICAgICAgICAvLyBUaGUgZXZlbnQgd2FzIHNpZ25hbGVkLgotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLQotICAgIGNhc2UgV0FJVF9USU1FT1VUOgotICAgICAgICAvLyBUaGUgd2Fp
dCB0aW1lZCBvdXQuCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGNhc2UgV0FJVF9GQUlM
RUQ6Ci0gICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoZmFsc2UsICI6OldhaXRGb3JTaW5nbGVP
YmplY3QgZmFpbGVkIHdpdGggZXJyb3IgJWx1IiwgOjpHZXRMYXN0RXJyb3IoKSk7Ci0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9XSVRIX01FU1NB
R0UoZmFsc2UsICI6OldhaXRGb3JTaW5nbGVPYmplY3QgcmV0dXJuZWQgdW5leHBlY3RlZCByZXN1
bHQgJWx1IiwgcmVzdWx0KTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLX0KLQotfSAv
LyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi90aHJlYWRzL0JpbmFyeVNlbWFw
aG9yZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdGhyZWFkcy9CaW5hcnlTZW1h
cGhvcmUuY3BwCShyZXZpc2lvbiAxNjExNTcpCisrKyBTb3VyY2UvV1RGL3d0Zi90aHJlYWRzL0Jp
bmFyeVNlbWFwaG9yZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNjggKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJCaW5hcnlTZW1hcGhvcmUuaCIK
LQotI2lmICFQTEFURk9STShXSU4pCi0KLW5hbWVzcGFjZSBXVEYgewotCi1CaW5hcnlTZW1hcGhv
cmU6OkJpbmFyeVNlbWFwaG9yZSgpCi0gICAgOiBtX2lzU2V0KGZhbHNlKQotewotfQotICAgIAot
QmluYXJ5U2VtYXBob3JlOjp+QmluYXJ5U2VtYXBob3JlKCkKLXsKLX0KLQotdm9pZCBCaW5hcnlT
ZW1hcGhvcmU6OnNpZ25hbCgpCi17Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOwot
Ci0gICAgbV9pc1NldCA9IHRydWU7Ci0gICAgbV9jb25kaXRpb24uc2lnbmFsKCk7Ci19Ci0KLWJv
b2wgQmluYXJ5U2VtYXBob3JlOjp3YWl0KGRvdWJsZSBhYnNvbHV0ZVRpbWUpCi17Ci0gICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOwotCi0gICAgYm9vbCB0aW1lZE91dCA9IGZhbHNlOwot
ICAgIHdoaWxlICghbV9pc1NldCkgewotICAgICAgICB0aW1lZE91dCA9ICFtX2NvbmRpdGlvbi50
aW1lZFdhaXQobV9tdXRleCwgYWJzb2x1dGVUaW1lKTsKLSAgICAgICAgaWYgKHRpbWVkT3V0KQot
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIC8vIFJlc2V0IHRoZSBzZW1h
cGhvcmUuCi0gICAgbV9pc1NldCA9IGZhbHNlOwotICAgIHJldHVybiB0cnVlOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXVEYKLQotI2VuZGlmIC8vICFQTEFURk9STShXSU4pCkluZGV4OiBTb3VyY2Uv
V1RGL3d0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmgJKHJldmlzaW9uIDE2MTE1NykKKysrIFNv
dXJjZS9XVEYvd3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQmluYXJ5U2VtYXBob3Jl
X2gKLSNkZWZpbmUgQmluYXJ5U2VtYXBob3JlX2gKLQotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+Ci0KLW5hbWVzcGFjZSBX
VEYgewotCi1jbGFzcyBCaW5hcnlTZW1hcGhvcmUgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KEJpbmFyeVNlbWFwaG9yZSk7Ci0KLXB1YmxpYzoKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgQmlu
YXJ5U2VtYXBob3JlKCk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIH5CaW5hcnlTZW1hcGhvcmUo
KTsKLQotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHNpZ25hbCgpOwotICAgIFdURl9FWFBP
UlRfUFJJVkFURSBib29sIHdhaXQoZG91YmxlIGFic29sdXRlVGltZSk7Ci0KLSNpZiBPUyhXSU5E
T1dTKQotICAgIEhBTkRMRSBldmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnQ7IH0KLSNlbmRp
ZgotCi1wcml2YXRlOgotI2lmIE9TKFdJTkRPV1MpCi0gICAgSEFORExFIG1fZXZlbnQ7Ci0jZWxz
ZQotICAgIGJvb2wgbV9pc1NldDsKLQotICAgIE11dGV4IG1fbXV0ZXg7Ci0gICAgVGhyZWFkQ29u
ZGl0aW9uIG1fY29uZGl0aW9uOwotI2VuZGlmCi19OwotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQot
dXNpbmcgV1RGOjpCaW5hcnlTZW1hcGhvcmU7Ci0KLSNlbmRpZiAvLyBCaW5hcnlTZW1hcGhvcmVf
aApJbmRleDogU291cmNlL1dURi93dGYvdGhyZWFkcy93aW4vQmluYXJ5U2VtYXBob3JlV2luLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90aHJlYWRzL3dpbi9CaW5hcnlTZW1hcGhv
cmVXaW4uY3BwCShyZXZpc2lvbiAxNjExNTcpCisrKyBTb3VyY2UvV1RGL3d0Zi90aHJlYWRzL3dp
bi9CaW5hcnlTZW1hcGhvcmVXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDc1ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQmluYXJ5U2VtYXBo
b3JlLmgiCi0KLW5hbWVzcGFjZSBXVEYgewotCi1CaW5hcnlTZW1hcGhvcmU6OkJpbmFyeVNlbWFw
aG9yZSgpCi0gICAgOiBtX2V2ZW50KDo6Q3JlYXRlRXZlbnRXKDAsIEZBTFNFLCBGQUxTRSwgMCkp
Ci17Ci19Ci0KLUJpbmFyeVNlbWFwaG9yZTo6fkJpbmFyeVNlbWFwaG9yZSgpCi17Ci0gICAgOjpD
bG9zZUhhbmRsZShtX2V2ZW50KTsKLX0KLQotdm9pZCBCaW5hcnlTZW1hcGhvcmU6OnNpZ25hbCgp
Ci17Ci0gICAgOjpTZXRFdmVudChtX2V2ZW50KTsKLX0KLQotYm9vbCBCaW5hcnlTZW1hcGhvcmU6
OndhaXQoZG91YmxlIGFic29sdXRlVGltZSkKLXsKLSAgICBEV09SRCBpbnRlcnZhbCA9IGFic29s
dXRlVGltZVRvV2FpdFRpbWVvdXRJbnRlcnZhbChhYnNvbHV0ZVRpbWUpOwotICAgIGlmICghaW50
ZXJ2YWwpIHsKLSAgICAgICAgLy8gQ29uc2lkZXIgdGhlIHdhaXQgdG8gaGF2ZSB0aW1lZCBvdXQs
IGV2ZW4gaWYgdGhlIGV2ZW50IGhhcyBhbHJlYWR5IGJlZW4gc2lnbmFsZWQsIHRvCi0gICAgICAg
IC8vIG1hdGNoIHRoZSBXVEY6OlRocmVhZENvbmRpdGlvbiBpbXBsZW1lbnRhdGlvbi4KLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIERXT1JEIHJlc3VsdCA9IDo6V2FpdEZvclNp
bmdsZU9iamVjdChtX2V2ZW50LCBpbnRlcnZhbCk7Ci0gICAgc3dpdGNoIChyZXN1bHQpIHsKLSAg
ICBjYXNlIFdBSVRfT0JKRUNUXzA6Ci0gICAgICAgIC8vIFRoZSBldmVudCB3YXMgc2lnbmFsZWQu
Ci0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgY2FzZSBXQUlUX1RJTUVPVVQ6Ci0gICAgICAg
IC8vIFRoZSB3YWl0IHRpbWVkIG91dC4KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgY2Fz
ZSBXQUlUX0ZBSUxFRDoKLSAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShmYWxzZSwgIjo6V2Fp
dEZvclNpbmdsZU9iamVjdCBmYWlsZWQgd2l0aCBlcnJvciAlbHUiLCA6OkdldExhc3RFcnJvcigp
KTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJU
X1dJVEhfTUVTU0FHRShmYWxzZSwgIjo6V2FpdEZvclNpbmdsZU9iamVjdCByZXR1cm5lZCB1bmV4
cGVjdGVkIHJlc3VsdCAlbHUiLCByZXN1bHQpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
fQotfQotCi19IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL3RocmVhZHMv
d2luL0JpbmFyeVNlbWFwaG9yZVdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYv
dGhyZWFkcy93aW4vQmluYXJ5U2VtYXBob3JlV2luLmNwcAkocmV2aXNpb24gMTYxMTU3KQorKysg
U291cmNlL1dURi93dGYvdGhyZWFkcy93aW4vQmluYXJ5U2VtYXBob3JlV2luLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw3NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIkJpbmFyeVNlbWFwaG9yZS5oIgotCi1uYW1lc3BhY2UgV1RGIHsKLQotQmlu
YXJ5U2VtYXBob3JlOjpCaW5hcnlTZW1hcGhvcmUoKQotICAgIDogbV9ldmVudCg6OkNyZWF0ZUV2
ZW50VygwLCBGQUxTRSwgRkFMU0UsIDApKQotewotfQotCi1CaW5hcnlTZW1hcGhvcmU6On5CaW5h
cnlTZW1hcGhvcmUoKQotewotICAgIDo6Q2xvc2VIYW5kbGUobV9ldmVudCk7Ci19Ci0KLXZvaWQg
QmluYXJ5U2VtYXBob3JlOjpzaWduYWwoKQotewotICAgIDo6U2V0RXZlbnQobV9ldmVudCk7Ci19
Ci0KLWJvb2wgQmluYXJ5U2VtYXBob3JlOjp3YWl0KGRvdWJsZSBhYnNvbHV0ZVRpbWUpCi17Ci0g
ICAgRFdPUkQgaW50ZXJ2YWwgPSBhYnNvbHV0ZVRpbWVUb1dhaXRUaW1lb3V0SW50ZXJ2YWwoYWJz
b2x1dGVUaW1lKTsKLSAgICBpZiAoIWludGVydmFsKSB7Ci0gICAgICAgIC8vIENvbnNpZGVyIHRo
ZSB3YWl0IHRvIGhhdmUgdGltZWQgb3V0LCBldmVuIGlmIHRoZSBldmVudCBoYXMgYWxyZWFkeSBi
ZWVuIHNpZ25hbGVkLCB0bwotICAgICAgICAvLyBtYXRjaCB0aGUgV1RGOjpUaHJlYWRDb25kaXRp
b24gaW1wbGVtZW50YXRpb24uCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBE
V09SRCByZXN1bHQgPSA6OldhaXRGb3JTaW5nbGVPYmplY3QobV9ldmVudCwgaW50ZXJ2YWwpOwot
ICAgIHN3aXRjaCAocmVzdWx0KSB7Ci0gICAgY2FzZSBXQUlUX09CSkVDVF8wOgotICAgICAgICAv
LyBUaGUgZXZlbnQgd2FzIHNpZ25hbGVkLgotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGNh
c2UgV0FJVF9USU1FT1VUOgotICAgICAgICAvLyBUaGUgd2FpdCB0aW1lZCBvdXQuCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIGNhc2UgV0FJVF9GQUlMRUQ6Ci0gICAgICAgIEFTU0VSVF9X
SVRIX01FU1NBR0UoZmFsc2UsICI6OldhaXRGb3JTaW5nbGVPYmplY3QgZmFpbGVkIHdpdGggZXJy
b3IgJWx1IiwgOjpHZXRMYXN0RXJyb3IoKSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoZmFsc2UsICI6OldhaXRGb3JT
aW5nbGVPYmplY3QgcmV0dXJuZWQgdW5leHBlY3RlZCByZXN1bHQgJWx1IiwgcmVzdWx0KTsKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLX0KLQotfSAvLyBuYW1lc3BhY2UgV1RGCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220133</attachid>
            <date>2013-12-30 16:22:43 -0800</date>
            <delta_ts>2013-12-30 16:25:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126310-20131230162242.patch</filename>
            <type>text/plain</type>
            <size>28282</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNjExNTgpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEzLTEyLTMwICBTYW0gV2VpbmlnICA8c2FtQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIFdURidzIEJpbmFyeVNlbWFwaG9yZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2MzEwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQncyB1bnVzZWQuIEFs
c28gcmVtb3ZlIHRoZSBub3cgZW1wdHkgd3RmL3RocmVhZHMgZGlyZWN0b3J5LgorCisgICAgICAg
ICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXVEYudmN4cHJvai9XVEYudmN4cHJv
ajoKKyAgICAgICAgKiBXVEYudmN4cHJvai9XVEYudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAq
IFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiB3dGYvRm9yd2FyZC5oOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybVdp
bi5jbWFrZToKKyAgICAgICAgKiB3dGYvdGhyZWFkczogUmVtb3ZlZC4KKyAgICAgICAgKiB3dGYv
dGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHd0Zi90aHJl
YWRzL0JpbmFyeVNlbWFwaG9yZS5oOiBSZW1vdmVkLgorICAgICAgICAqIHd0Zi90aHJlYWRzL3dp
bjogUmVtb3ZlZC4KKyAgICAgICAgKiB3dGYvdGhyZWFkcy93aW4vQmluYXJ5U2VtYXBob3JlV2lu
LmNwcDogUmVtb3ZlZC4KKwogMjAxMy0xMi0zMCAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBw
bGUuY29tPgogCiAgICAgICAgIFtXaW5kb3dzXSBVbnJldmlld2VkIGJ1aWxkIGZpeCBmb2xsb3dp
bmcgcjE2MDk1OS4KSW5kZXg6IFNvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE2MTE1NykK
KysrIFNvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtMjQ0
LDggKzI0NCw2IEBAIHd0Zl9zb3VyY2VzICs9IFwKICAgICBTb3VyY2UvV1RGL3d0Zi90ZXh0L1Rl
eHRQb3NpdGlvbi5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAgXAog
ICAgIFNvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggXAotICAgIFNvdXJjZS9XVEYvd3Rm
L3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmNwcCBcCi0gICAgU291cmNlL1dURi93dGYvdGhyZWFk
cy9CaW5hcnlTZW1hcGhvcmUuaCBcCiAgICAgU291cmNlL1dURi93dGYvdW5pY29kZS9DaGFyYWN0
ZXJOYW1lcy5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi91bmljb2RlL0NvbGxhdG9yLmggXAogICAg
IFNvdXJjZS9XVEYvd3RmL3VuaWNvZGUvQ29sbGF0b3JEZWZhdWx0LmNwcCBcCkluZGV4OiBTb3Vy
Y2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYv
V1RGLnZjeHByb2ovV1RGLnZjeHByb2oJKHJldmlzaW9uIDE2MTE1NykKKysrIFNvdXJjZS9XVEYv
V1RGLnZjeHByb2ovV1RGLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE0MSw4ICsxNDEsNiBA
QAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXFRocmVhZGluZy5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcVGhyZWFkaW5nV2luLmNwcCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHd0Zlx0aHJlYWRzcGVjaWZpY1dpbi5jcHAiIC8+Ci0gICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcdGhyZWFkc1xCaW5hcnlTZW1hcGhvcmUuY3BwIiAvPgot
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXHRocmVhZHNcd2luXEJpbmFyeVNlbWFwaG9y
ZVdpbi5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcdW5pY29kZVxpY3Vc
Q29sbGF0b3JJQ1UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXHVuaWNv
ZGVcVVRGOC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcd2luXE1haW5U
aHJlYWRXaW4uY3BwIiAvPgpAQCAtMjk3LDcgKzI5NSw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlx3dGZcVGhyZWFkUmVzdHJpY3Rpb25WZXJpZmllci5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cd3RmXHRocmVhZHNhZmVSZWZDb3VudGVkLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlx3dGZcdGhyZWFkc3BlY2lmaWMuaCIgLz4KLSAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHd0Zlx0aHJlYWRzXEJpbmFyeVNlbWFwaG9yZS5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cd3RmXHVuaWNvZGVcQ2hhcmFjdGVyTmFtZXMuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0Zlx1bmljb2RlXENvbGxhdG9yLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcdW5pY29kZVxpY3VcVW5pY29kZUljdS5oIiAvPgpJbmRl
eDogU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ouZmlsdGVycwkocmV2aXNpb24g
MTYxMTU3KQorKysgU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvai5maWx0ZXJzCSh3
b3JraW5nIGNvcHkpCkBAIC04NywxMiArODcsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cd3RmXHdpblxNYWluVGhyZWFkV2luLmNwcCI+CiAgICAgICA8RmlsdGVyPndpbjwvRmlsdGVy
PgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXHRocmVh
ZHNcd2luXEJpbmFyeVNlbWFwaG9yZVdpbi5jcHAiPgotICAgICAgPEZpbHRlcj50aHJlYWRzXHdp
bjwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
d3RmXHRocmVhZHNcQmluYXJ5U2VtYXBob3JlLmNwcCI+Ci0gICAgICA8RmlsdGVyPnRocmVhZHM8
L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0
Zlx0aHJlYWRzcGVjaWZpY1dpbi5jcHAiPgogICAgICAgPEZpbHRlcj53dGY8L0ZpbHRlcj4KICAg
ICA8L0NsQ29tcGlsZT4KQEAgLTMyMSw5ICszMTUsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cd3RmXHRleHRcV1RGU3RyaW5nLmgiPgogICAgICAgPEZpbHRlcj50ZXh0PC9GaWx0ZXI+
CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcdGhyZWFk
c1xCaW5hcnlTZW1hcGhvcmUuaCI+Ci0gICAgICA8RmlsdGVyPnRocmVhZHM8L0ZpbHRlcj4KLSAg
ICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0Zlx0aHJlYWRzYWZl
UmVmQ291bnRlZC5oIj4KICAgICAgIDxGaWx0ZXI+d3RmPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1
ZGU+CkluZGV4OiBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlz
aW9uIDE2MTE1NykKKysrIFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTI0NSw4ICsyNDUsNiBAQAogCQlBOEE0NzQ0RDE1MUE4MjVCMDA0
MTIzRkYgLyogVGhyZWFkaW5nUHJpbWl0aXZlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczMzUxNTFBODI1QjAwNDEyM0ZGIC8qIFRocmVhZGlu
Z1ByaW1pdGl2ZXMuaCAqLzsgfTsKIAkJQThBNDc0NEUxNTFBODI1QjAwNDEyM0ZGIC8qIFRocmVh
ZGluZ1B0aHJlYWRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4QTQ3MzM2MTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRpbmdQdGhyZWFkcy5jcHAg
Ki87IH07CiAJCUE4QTQ3NDUwMTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRSZXN0cmljdGlvblZl
cmlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEE0NzMzODE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFkUmVzdHJpY3Rpb25WZXJpZmllci5oICov
OyB9OwotCQlBOEE0NzQ1MTE1MUE4MjVCMDA0MTIzRkYgLyogQmluYXJ5U2VtYXBob3JlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MzNBMTUx
QTgyNUIwMDQxMjNGRiAvKiBCaW5hcnlTZW1hcGhvcmUuY3BwICovOyB9OwotCQlBOEE0NzQ1MjE1
MUE4MjVCMDA0MTIzRkYgLyogQmluYXJ5U2VtYXBob3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzMzQjE1MUE4MjVCMDA0MTIzRkYgLyogQmlu
YXJ5U2VtYXBob3JlLmggKi87IH07CiAJCUE4QTQ3NDU0MTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJl
YWRTYWZlUmVmQ291bnRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQThBNDczM0UxNTFBODI1QjAwNDEyM0ZGIC8qIFRocmVhZFNhZmVSZWZDb3VudGVk
LmggKi87IH07CiAJCUE4QTQ3NDU1MTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRTcGVjaWZpYy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczM0Yx
NTFBODI1QjAwNDEyM0ZGIC8qIFRocmVhZFNwZWNpZmljLmggKi87IH07CiAJCUE4QTQ3NDVFMTUx
QTgyNUIwMDQxMjNGRiAvKiBDaGFyYWN0ZXJOYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczNDkxNTFBODI1QjAwNDEyM0ZGIC8qIENoYXJh
Y3Rlck5hbWVzLmggKi87IH07CkBAIC01MjEsOCArNTE5LDYgQEAKIAkJQThBNDczMzUxNTFBODI1
QjAwNDEyM0ZGIC8qIFRocmVhZGluZ1ByaW1pdGl2ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVGhyZWFkaW5nUHJpbWl0aXZlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBOEE0NzMzNjE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFkaW5nUHRocmVhZHMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGhyZWFkaW5nUHRocmVhZHMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzMzODE1MUE4MjVCMDA0MTIz
RkYgLyogVGhyZWFkUmVzdHJpY3Rpb25WZXJpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBUaHJlYWRSZXN0cmljdGlvblZlcmlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUE4QTQ3MzNBMTUxQTgyNUIwMDQxMjNGRiAvKiBCaW5hcnlTZW1hcGhvcmUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmluYXJ5U2VtYXBob3Jl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThBNDczM0IxNTFBODI1QjAwNDEy
M0ZGIC8qIEJpbmFyeVNlbWFwaG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBCaW5hcnlTZW1hcGhvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcz
M0UxNTFBODI1QjAwNDEyM0ZGIC8qIFRocmVhZFNhZmVSZWZDb3VudGVkLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRocmVhZFNhZmVSZWZDb3VudGVkLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MzNGMTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRTcGVj
aWZpYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaHJlYWRTcGVjaWZpYy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzM0OTE1MUE4MjVCMDA0MTIzRkYg
LyogQ2hhcmFjdGVyTmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2hh
cmFjdGVyTmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY0NCw3ICs2NDAs
NiBAQAogCQkJCTFGQTQ3Qzg3MTUyNTAyREEwMDU2OEQxQiAvKiBpb3MgKi8sCiAJCQkJQThBNDcy
QzQxNTFBODI1QTAwNDEyM0ZGIC8qIG1hYyAqLywKIAkJCQlBOEE0NzMxQjE1MUE4MjVCMDA0MTIz
RkYgLyogdGV4dCAqLywKLQkJCQlBOEE0NzMzOTE1MUE4MjVCMDA0MTIzRkYgLyogdGhyZWFkcyAq
LywKIAkJCQlBOEE0NzM0ODE1MUE4MjVCMDA0MTIzRkYgLyogdW5pY29kZSAqLywKIAkJCQlBOEE0
NzI1QTE1MUE4MjVBMDA0MTIzRkYgLyogQVNDSUlDVHlwZS5oICovLAogCQkJCUE4QTQ3MjVCMTUx
QTgyNUEwMDQxMjNGRiAvKiBBc3NlcnRpb25zLmNwcCAqLywKQEAgLTkwOSwxNSArOTA0LDYgQEAK
IAkJCXBhdGggPSB0ZXh0OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJQThB
NDczMzkxNTFBODI1QjAwNDEyM0ZGIC8qIHRocmVhZHMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91
cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCUE4QTQ3MzNBMTUxQTgyNUIwMDQxMjNGRiAvKiBCaW5h
cnlTZW1hcGhvcmUuY3BwICovLAotCQkJCUE4QTQ3MzNCMTUxQTgyNUIwMDQxMjNGRiAvKiBCaW5h
cnlTZW1hcGhvcmUuaCAqLywKLQkJCSk7Ci0JCQlwYXRoID0gdGhyZWFkczsKLQkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCUE4QTQ3MzQ4MTUxQTgyNUIwMDQxMjNGRiAvKiB1bmlj
b2RlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTk2NSw3
ICs5NTEsNiBAQAogCQkJCUE4QTQ3M0E5MTUxQTgyNUIwMDQxMjNGRiAvKiBiaWdudW0tZHRvYS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczQUIxNTFBODI1QjAwNDEyM0ZGIC8qIGJpZ251bS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0NERDdGRkExODZEMkE1NDAwNzQzM0NEIC8qIEl0ZXJhdG9y
UGFpci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThBNDc0NTIxNTFBODI1QjAwNDEyM0ZGIC8qIEJp
bmFyeVNlbWFwaG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczOEExNTFBODI1QjAwNDEy
M0ZGIC8qIEJpdG1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczOEMxNTFBODI1QjAwNDEy
M0ZGIC8qIEJpdFZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczOEUxNTFBODI1QjAw
NDEyM0ZGIC8qIEJsb2NrU3RhY2suaCBpbiBIZWFkZXJzICovLApAQCAtMTIwOCw3ICsxMTkzLDYg
QEAKIAkJCQk4MTM0MDEzODE1QjA5MkZEMDAxRkYwQjggLyogQmFzZTY0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4QTQ3M0E4MTUxQTgyNUIwMDQxMjNGRiAvKiBiaWdudW0tZHRvYS5jYyBpbiBT
b3VyY2VzICovLAogCQkJCUE4QTQ3M0FBMTUxQTgyNUIwMDQxMjNGRiAvKiBiaWdudW0uY2MgaW4g
U291cmNlcyAqLywKLQkJCQlBOEE0NzQ1MTE1MUE4MjVCMDA0MTIzRkYgLyogQmluYXJ5U2VtYXBo
b3JlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3MzhCMTUxQTgyNUIwMDQxMjNGRiAvKiBC
aXRWZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczQUMxNTFBODI1QjAwNDEyM0ZG
IC8qIGNhY2hlZC1wb3dlcnMuY2MgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQ2MDE1MUE4MjVC
MDA0MTIzRkYgLyogQ29sbGF0b3JEZWZhdWx0LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291
cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYv
Q01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDE2MTE1NykKKysrIFNvdXJjZS9XVEYvd3RmL0NNYWtl
TGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsOCArMTM2LDYgQEAgc2V0KFdURl9IRUFE
RVJTCiAgICAgdGV4dC9TdHJpbmdJbXBsLmgKICAgICB0ZXh0L1dURlN0cmluZy5oCiAKLSAgICB0
aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oCi0KICAgICB1bmljb2RlL0NoYXJhY3Rlck5hbWVzLmgK
ICAgICB1bmljb2RlL0NvbGxhdG9yLmgKICAgICB1bmljb2RlL1VURjguaApAQCAtMjAzLDggKzIw
MSw2IEBAIHNldChXVEZfU09VUkNFUwogICAgIHRleHQvU3RyaW5nU3RhdGljcy5jcHAKICAgICB0
ZXh0L1dURlN0cmluZy5jcHAKIAotICAgIHRocmVhZHMvQmluYXJ5U2VtYXBob3JlLmNwcAotCiAg
ICAgdW5pY29kZS9VVEY4LmNwcAogKQogCkBAIC0yMTIsNyArMjA4LDYgQEAgc2V0KFdURl9JTkNM
VURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V1RGX0RJUn0iCiAgICAgIiR7V1RGX0RJUn0vd3RmIgog
ICAgICIke1dURl9ESVJ9L3d0Zi9kdG9hIgotICAgICIke1dURl9ESVJ9L3d0Zi90aHJlYWRzIgog
ICAgICIke1dURl9ESVJ9L3d0Zi91bmljb2RlIgogICAgICIke1RISVJEUEFSVFlfRElSfSIKICAg
ICAiJHtDTUFLRV9CSU5BUllfRElSfSIKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgJKHJldmlzaW9uIDE2MTE1NykK
KysrIFNvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgs
NiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpCiAKIGNsYXNzIEF0
b21pY1N0cmluZzsKIGNsYXNzIEF0b21pY1N0cmluZ0ltcGw7Ci1jbGFzcyBCaW5hcnlTZW1hcGhv
cmU7CiBjbGFzcyBDU3RyaW5nOwogY2xhc3MgRGVjb2RlcjsKIGNsYXNzIEVuY29kZXI7CkBAIC01
Miw3ICs1MSw2IEBAIGNsYXNzIFN0cmluZ0ltcGw7CiAKIHVzaW5nIFdURjo6QXRvbWljU3RyaW5n
OwogdXNpbmcgV1RGOjpBdG9taWNTdHJpbmdJbXBsOwotdXNpbmcgV1RGOjpCaW5hcnlTZW1hcGhv
cmU7CiB1c2luZyBXVEY6OkNTdHJpbmc7CiB1c2luZyBXVEY6OkRlY29kZXI7CiB1c2luZyBXVEY6
OkVuY29kZXI7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdpbi5jbWFrZQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdpbi5jbWFrZQkocmV2aXNpb24gMTYxMTU3
KQorKysgU291cmNlL1dURi93dGYvUGxhdGZvcm1XaW4uY21ha2UJKHdvcmtpbmcgY29weSkKQEAg
LTEsNiArMSw0IEBACiBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwotICAgIHRocmVhZHMvd2luL0Jp
bmFyeVNlbWFwaG9yZVdpbi5jcHAKLQogICAgIHdpbi9NYWluVGhyZWFkV2luLmNwcAogICAgIHdp
bi9SdW5Mb29wV2luLmNwcAogKQpJbmRleDogU291cmNlL1dURi93dGYvdGhyZWFkcy9CaW5hcnlT
ZW1hcGhvcmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3RocmVhZHMvQmluYXJ5
U2VtYXBob3JlLmNwcAkocmV2aXNpb24gMTYxMTU3KQorKysgU291cmNlL1dURi93dGYvdGhyZWFk
cy9CaW5hcnlTZW1hcGhvcmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDY4ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQmluYXJ5U2VtYXBob3Jl
LmgiCi0KLSNpZiAhUExBVEZPUk0oV0lOKQotCi1uYW1lc3BhY2UgV1RGIHsKLQotQmluYXJ5U2Vt
YXBob3JlOjpCaW5hcnlTZW1hcGhvcmUoKQotICAgIDogbV9pc1NldChmYWxzZSkKLXsKLX0KLSAg
ICAKLUJpbmFyeVNlbWFwaG9yZTo6fkJpbmFyeVNlbWFwaG9yZSgpCi17Ci19Ci0KLXZvaWQgQmlu
YXJ5U2VtYXBob3JlOjpzaWduYWwoKQotewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4
KTsKLQotICAgIG1faXNTZXQgPSB0cnVlOwotICAgIG1fY29uZGl0aW9uLnNpZ25hbCgpOwotfQot
Ci1ib29sIEJpbmFyeVNlbWFwaG9yZTo6d2FpdChkb3VibGUgYWJzb2x1dGVUaW1lKQotewotICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKLQotICAgIGJvb2wgdGltZWRPdXQgPSBmYWxz
ZTsKLSAgICB3aGlsZSAoIW1faXNTZXQpIHsKLSAgICAgICAgdGltZWRPdXQgPSAhbV9jb25kaXRp
b24udGltZWRXYWl0KG1fbXV0ZXgsIGFic29sdXRlVGltZSk7Ci0gICAgICAgIGlmICh0aW1lZE91
dCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICAvLyBSZXNldCB0aGUg
c2VtYXBob3JlLgotICAgIG1faXNTZXQgPSBmYWxzZTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQot
fSAvLyBuYW1lc3BhY2UgV1RGCi0KLSNlbmRpZiAvLyAhUExBVEZPUk0oV0lOKQpJbmRleDogU291
cmNlL1dURi93dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL3d0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oCShyZXZpc2lvbiAxNjExNTcpCisr
KyBTb3VyY2UvV1RGL3d0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEJpbmFyeVNlbWFw
aG9yZV9oCi0jZGVmaW5lIEJpbmFyeVNlbWFwaG9yZV9oCi0KLSNpbmNsdWRlIDx3dGYvTm9uY29w
eWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgotCi1uYW1lc3Bh
Y2UgV1RGIHsKLQotY2xhc3MgQmluYXJ5U2VtYXBob3JlIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShCaW5hcnlTZW1hcGhvcmUpOwotCi1wdWJsaWM6Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRF
IEJpbmFyeVNlbWFwaG9yZSgpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB+QmluYXJ5U2VtYXBo
b3JlKCk7Ci0KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzaWduYWwoKTsKLSAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgYm9vbCB3YWl0KGRvdWJsZSBhYnNvbHV0ZVRpbWUpOwotCi0jaWYgT1Mo
V0lORE9XUykKLSAgICBIQU5ETEUgZXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2V2ZW50OyB9Ci0j
ZW5kaWYKLQotcHJpdmF0ZToKLSNpZiBPUyhXSU5ET1dTKQotICAgIEhBTkRMRSBtX2V2ZW50Owot
I2Vsc2UKLSAgICBib29sIG1faXNTZXQ7Ci0KLSAgICBNdXRleCBtX211dGV4OwotICAgIFRocmVh
ZENvbmRpdGlvbiBtX2NvbmRpdGlvbjsKLSNlbmRpZgotfTsKLQotfSAvLyBuYW1lc3BhY2UgV1RG
Ci0KLXVzaW5nIFdURjo6QmluYXJ5U2VtYXBob3JlOwotCi0jZW5kaWYgLy8gQmluYXJ5U2VtYXBo
b3JlX2gKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL3RocmVhZHMvd2luL0JpbmFyeVNlbWFwaG9yZVdp
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdGhyZWFkcy93aW4vQmluYXJ5U2Vt
YXBob3JlV2luLmNwcAkocmV2aXNpb24gMTYxMTU3KQorKysgU291cmNlL1dURi93dGYvdGhyZWFk
cy93aW4vQmluYXJ5U2VtYXBob3JlV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw3NSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkJpbmFyeVNl
bWFwaG9yZS5oIgotCi1uYW1lc3BhY2UgV1RGIHsKLQotQmluYXJ5U2VtYXBob3JlOjpCaW5hcnlT
ZW1hcGhvcmUoKQotICAgIDogbV9ldmVudCg6OkNyZWF0ZUV2ZW50VygwLCBGQUxTRSwgRkFMU0Us
IDApKQotewotfQotCi1CaW5hcnlTZW1hcGhvcmU6On5CaW5hcnlTZW1hcGhvcmUoKQotewotICAg
IDo6Q2xvc2VIYW5kbGUobV9ldmVudCk7Ci19Ci0KLXZvaWQgQmluYXJ5U2VtYXBob3JlOjpzaWdu
YWwoKQotewotICAgIDo6U2V0RXZlbnQobV9ldmVudCk7Ci19Ci0KLWJvb2wgQmluYXJ5U2VtYXBo
b3JlOjp3YWl0KGRvdWJsZSBhYnNvbHV0ZVRpbWUpCi17Ci0gICAgRFdPUkQgaW50ZXJ2YWwgPSBh
YnNvbHV0ZVRpbWVUb1dhaXRUaW1lb3V0SW50ZXJ2YWwoYWJzb2x1dGVUaW1lKTsKLSAgICBpZiAo
IWludGVydmFsKSB7Ci0gICAgICAgIC8vIENvbnNpZGVyIHRoZSB3YWl0IHRvIGhhdmUgdGltZWQg
b3V0LCBldmVuIGlmIHRoZSBldmVudCBoYXMgYWxyZWFkeSBiZWVuIHNpZ25hbGVkLCB0bwotICAg
ICAgICAvLyBtYXRjaCB0aGUgV1RGOjpUaHJlYWRDb25kaXRpb24gaW1wbGVtZW50YXRpb24uCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBEV09SRCByZXN1bHQgPSA6OldhaXRG
b3JTaW5nbGVPYmplY3QobV9ldmVudCwgaW50ZXJ2YWwpOwotICAgIHN3aXRjaCAocmVzdWx0KSB7
Ci0gICAgY2FzZSBXQUlUX09CSkVDVF8wOgotICAgICAgICAvLyBUaGUgZXZlbnQgd2FzIHNpZ25h
bGVkLgotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGNhc2UgV0FJVF9USU1FT1VUOgotICAg
ICAgICAvLyBUaGUgd2FpdCB0aW1lZCBvdXQuCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IGNhc2UgV0FJVF9GQUlMRUQ6Ci0gICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoZmFsc2UsICI6
OldhaXRGb3JTaW5nbGVPYmplY3QgZmFpbGVkIHdpdGggZXJyb3IgJWx1IiwgOjpHZXRMYXN0RXJy
b3IoKSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFT
U0VSVF9XSVRIX01FU1NBR0UoZmFsc2UsICI6OldhaXRGb3JTaW5nbGVPYmplY3QgcmV0dXJuZWQg
dW5leHBlY3RlZCByZXN1bHQgJWx1IiwgcmVzdWx0KTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0KLX0KLQotfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi90aHJl
YWRzL0JpbmFyeVNlbWFwaG9yZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdGhy
ZWFkcy9CaW5hcnlTZW1hcGhvcmUuY3BwCShyZXZpc2lvbiAxNjExNTcpCisrKyBTb3VyY2UvV1RG
L3d0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNjgg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJCaW5h
cnlTZW1hcGhvcmUuaCIKLQotI2lmICFQTEFURk9STShXSU4pCi0KLW5hbWVzcGFjZSBXVEYgewot
Ci1CaW5hcnlTZW1hcGhvcmU6OkJpbmFyeVNlbWFwaG9yZSgpCi0gICAgOiBtX2lzU2V0KGZhbHNl
KQotewotfQotICAgIAotQmluYXJ5U2VtYXBob3JlOjp+QmluYXJ5U2VtYXBob3JlKCkKLXsKLX0K
LQotdm9pZCBCaW5hcnlTZW1hcGhvcmU6OnNpZ25hbCgpCi17Ci0gICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKG1fbXV0ZXgpOwotCi0gICAgbV9pc1NldCA9IHRydWU7Ci0gICAgbV9jb25kaXRpb24uc2ln
bmFsKCk7Ci19Ci0KLWJvb2wgQmluYXJ5U2VtYXBob3JlOjp3YWl0KGRvdWJsZSBhYnNvbHV0ZVRp
bWUpCi17Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOwotCi0gICAgYm9vbCB0aW1l
ZE91dCA9IGZhbHNlOwotICAgIHdoaWxlICghbV9pc1NldCkgewotICAgICAgICB0aW1lZE91dCA9
ICFtX2NvbmRpdGlvbi50aW1lZFdhaXQobV9tdXRleCwgYWJzb2x1dGVUaW1lKTsKLSAgICAgICAg
aWYgKHRpbWVkT3V0KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIC8v
IFJlc2V0IHRoZSBzZW1hcGhvcmUuCi0gICAgbV9pc1NldCA9IGZhbHNlOwotICAgIHJldHVybiB0
cnVlOwotfQotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQotI2VuZGlmIC8vICFQTEFURk9STShXSU4p
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmgJKHJldmlzaW9u
IDE2MTE1NykKKysrIFNvdXJjZS9XVEYvd3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwg
MjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYg
QmluYXJ5U2VtYXBob3JlX2gKLSNkZWZpbmUgQmluYXJ5U2VtYXBob3JlX2gKLQotI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+
Ci0KLW5hbWVzcGFjZSBXVEYgewotCi1jbGFzcyBCaW5hcnlTZW1hcGhvcmUgewotICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKEJpbmFyeVNlbWFwaG9yZSk7Ci0KLXB1YmxpYzoKLSAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgQmluYXJ5U2VtYXBob3JlKCk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIH5C
aW5hcnlTZW1hcGhvcmUoKTsKLQotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHNpZ25hbCgp
OwotICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIHdhaXQoZG91YmxlIGFic29sdXRlVGltZSk7
Ci0KLSNpZiBPUyhXSU5ET1dTKQotICAgIEhBTkRMRSBldmVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZXZlbnQ7IH0KLSNlbmRpZgotCi1wcml2YXRlOgotI2lmIE9TKFdJTkRPV1MpCi0gICAgSEFORExF
IG1fZXZlbnQ7Ci0jZWxzZQotICAgIGJvb2wgbV9pc1NldDsKLQotICAgIE11dGV4IG1fbXV0ZXg7
Ci0gICAgVGhyZWFkQ29uZGl0aW9uIG1fY29uZGl0aW9uOwotI2VuZGlmCi19OwotCi19IC8vIG5h
bWVzcGFjZSBXVEYKLQotdXNpbmcgV1RGOjpCaW5hcnlTZW1hcGhvcmU7Ci0KLSNlbmRpZiAvLyBC
aW5hcnlTZW1hcGhvcmVfaApJbmRleDogU291cmNlL1dURi93dGYvdGhyZWFkcy93aW4vQmluYXJ5
U2VtYXBob3JlV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90aHJlYWRzL3dp
bi9CaW5hcnlTZW1hcGhvcmVXaW4uY3BwCShyZXZpc2lvbiAxNjExNTcpCisrKyBTb3VyY2UvV1RG
L3d0Zi90aHJlYWRzL3dpbi9CaW5hcnlTZW1hcGhvcmVXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDc1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiQmluYXJ5U2VtYXBob3JlLmgiCi0KLW5hbWVzcGFjZSBXVEYgewotCi1CaW5hcnlTZW1hcGhv
cmU6OkJpbmFyeVNlbWFwaG9yZSgpCi0gICAgOiBtX2V2ZW50KDo6Q3JlYXRlRXZlbnRXKDAsIEZB
TFNFLCBGQUxTRSwgMCkpCi17Ci19Ci0KLUJpbmFyeVNlbWFwaG9yZTo6fkJpbmFyeVNlbWFwaG9y
ZSgpCi17Ci0gICAgOjpDbG9zZUhhbmRsZShtX2V2ZW50KTsKLX0KLQotdm9pZCBCaW5hcnlTZW1h
cGhvcmU6OnNpZ25hbCgpCi17Ci0gICAgOjpTZXRFdmVudChtX2V2ZW50KTsKLX0KLQotYm9vbCBC
aW5hcnlTZW1hcGhvcmU6OndhaXQoZG91YmxlIGFic29sdXRlVGltZSkKLXsKLSAgICBEV09SRCBp
bnRlcnZhbCA9IGFic29sdXRlVGltZVRvV2FpdFRpbWVvdXRJbnRlcnZhbChhYnNvbHV0ZVRpbWUp
OwotICAgIGlmICghaW50ZXJ2YWwpIHsKLSAgICAgICAgLy8gQ29uc2lkZXIgdGhlIHdhaXQgdG8g
aGF2ZSB0aW1lZCBvdXQsIGV2ZW4gaWYgdGhlIGV2ZW50IGhhcyBhbHJlYWR5IGJlZW4gc2lnbmFs
ZWQsIHRvCi0gICAgICAgIC8vIG1hdGNoIHRoZSBXVEY6OlRocmVhZENvbmRpdGlvbiBpbXBsZW1l
bnRhdGlvbi4KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIERXT1JEIHJlc3Vs
dCA9IDo6V2FpdEZvclNpbmdsZU9iamVjdChtX2V2ZW50LCBpbnRlcnZhbCk7Ci0gICAgc3dpdGNo
IChyZXN1bHQpIHsKLSAgICBjYXNlIFdBSVRfT0JKRUNUXzA6Ci0gICAgICAgIC8vIFRoZSBldmVu
dCB3YXMgc2lnbmFsZWQuCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgY2FzZSBXQUlUX1RJ
TUVPVVQ6Ci0gICAgICAgIC8vIFRoZSB3YWl0IHRpbWVkIG91dC4KLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgY2FzZSBXQUlUX0ZBSUxFRDoKLSAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FH
RShmYWxzZSwgIjo6V2FpdEZvclNpbmdsZU9iamVjdCBmYWlsZWQgd2l0aCBlcnJvciAlbHUiLCA6
OkdldExhc3RFcnJvcigpKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgZGVmYXVsdDoK
LSAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShmYWxzZSwgIjo6V2FpdEZvclNpbmdsZU9iamVj
dCByZXR1cm5lZCB1bmV4cGVjdGVkIHJlc3VsdCAlbHUiLCByZXN1bHQpOwotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgfQotfQotCi19IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9X
VEYvd3RmL3RocmVhZHMvd2luL0JpbmFyeVNlbWFwaG9yZVdpbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dURi93dGYvdGhyZWFkcy93aW4vQmluYXJ5U2VtYXBob3JlV2luLmNwcAkocmV2aXNp
b24gMTYxMTU3KQorKysgU291cmNlL1dURi93dGYvdGhyZWFkcy93aW4vQmluYXJ5U2VtYXBob3Jl
V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw3NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkJpbmFyeVNlbWFwaG9yZS5oIgotCi1uYW1lc3Bh
Y2UgV1RGIHsKLQotQmluYXJ5U2VtYXBob3JlOjpCaW5hcnlTZW1hcGhvcmUoKQotICAgIDogbV9l
dmVudCg6OkNyZWF0ZUV2ZW50VygwLCBGQUxTRSwgRkFMU0UsIDApKQotewotfQotCi1CaW5hcnlT
ZW1hcGhvcmU6On5CaW5hcnlTZW1hcGhvcmUoKQotewotICAgIDo6Q2xvc2VIYW5kbGUobV9ldmVu
dCk7Ci19Ci0KLXZvaWQgQmluYXJ5U2VtYXBob3JlOjpzaWduYWwoKQotewotICAgIDo6U2V0RXZl
bnQobV9ldmVudCk7Ci19Ci0KLWJvb2wgQmluYXJ5U2VtYXBob3JlOjp3YWl0KGRvdWJsZSBhYnNv
bHV0ZVRpbWUpCi17Ci0gICAgRFdPUkQgaW50ZXJ2YWwgPSBhYnNvbHV0ZVRpbWVUb1dhaXRUaW1l
b3V0SW50ZXJ2YWwoYWJzb2x1dGVUaW1lKTsKLSAgICBpZiAoIWludGVydmFsKSB7Ci0gICAgICAg
IC8vIENvbnNpZGVyIHRoZSB3YWl0IHRvIGhhdmUgdGltZWQgb3V0LCBldmVuIGlmIHRoZSBldmVu
dCBoYXMgYWxyZWFkeSBiZWVuIHNpZ25hbGVkLCB0bwotICAgICAgICAvLyBtYXRjaCB0aGUgV1RG
OjpUaHJlYWRDb25kaXRpb24gaW1wbGVtZW50YXRpb24uCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICB9Ci0KLSAgICBEV09SRCByZXN1bHQgPSA6OldhaXRGb3JTaW5nbGVPYmplY3QobV9ldmVu
dCwgaW50ZXJ2YWwpOwotICAgIHN3aXRjaCAocmVzdWx0KSB7Ci0gICAgY2FzZSBXQUlUX09CSkVD
VF8wOgotICAgICAgICAvLyBUaGUgZXZlbnQgd2FzIHNpZ25hbGVkLgotICAgICAgICByZXR1cm4g
dHJ1ZTsKLQotICAgIGNhc2UgV0FJVF9USU1FT1VUOgotICAgICAgICAvLyBUaGUgd2FpdCB0aW1l
ZCBvdXQuCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGNhc2UgV0FJVF9GQUlMRUQ6Ci0g
ICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoZmFsc2UsICI6OldhaXRGb3JTaW5nbGVPYmplY3Qg
ZmFpbGVkIHdpdGggZXJyb3IgJWx1IiwgOjpHZXRMYXN0RXJyb3IoKSk7Ci0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoZmFs
c2UsICI6OldhaXRGb3JTaW5nbGVPYmplY3QgcmV0dXJuZWQgdW5leHBlY3RlZCByZXN1bHQgJWx1
IiwgcmVzdWx0KTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLX0KLQotfSAvLyBuYW1l
c3BhY2UgV1RGCg==
</data>
<flag name="review"
          id="243808"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>