<?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>226537</bug_id>
          
          <creation_ts>2021-06-02 08:13:55 -0700</creation_ts>
          <short_desc>Drop Checked::safeGet()</short_desc>
          <delta_ts>2021-06-02 12:03:20 -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>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>226514</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1765991</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-02 08:13:55 -0700</bug_when>
    <thetext>Drop Checked::safeGet() and replace with uses of Checked::operator T() or Checked::value().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765994</commentid>
    <comment_count>1</comment_count>
      <attachid>430355</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-02 08:16:30 -0700</bug_when>
    <thetext>Created attachment 430355
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766005</commentid>
    <comment_count>2</comment_count>
      <attachid>430361</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-02 08:36:18 -0700</bug_when>
    <thetext>Created attachment 430361
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766071</commentid>
    <comment_count>3</comment_count>
      <attachid>430361</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-06-02 11:04:33 -0700</bug_when>
    <thetext>Comment on attachment 430361
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766072</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-06-02 11:09:02 -0700</bug_when>
    <thetext>Looks good. In future code we write, I hope people will not need pairs of checked and unchecked local variables; just use Checked&lt;&gt; and it will typically do the right thing without naming everything xxxChecked.

By the way, I think the syntax Checked&lt;uint32_t&gt; will be better than CheckedUint32 some day, so I hope we can later move to that. For now, I think moving to the aliases is better, but I don’t think we need modes other than RecordOverflow. Presumably the &quot;crash right away when we overflow&quot; mode is there for optimization reasons, but it seems unnecessary. Seems like it would always be fine to crash when you go to fetch the value rather than eagerly crashing while doing the math.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766088</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-02 12:02:24 -0700</bug_when>
    <thetext>Committed r278369 (238396@main): &lt;https://commits.webkit.org/238396@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430361.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766089</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-02 12:03:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/78776138&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430355</attachid>
            <date>2021-06-02 08:16:30 -0700</date>
            <delta_ts>2021-06-02 08:36:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226537-20210602081629.patch</filename>
            <type>text/plain</type>
            <size>21310</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MzI1YTBiZDA0MGRiYzFhZmNlZmE4NWY0N2FlZGEyODZlMTU3Y2JlLi5hMTU1ZTNiNGU4N2ViNmJl
ZTRlM2JkODRhZTM4ODZlZjMyMDY4Y2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAyMS0wNi0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgQ2hlY2tlZDo6c2FmZUdldCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY1MzcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIENoZWNrZWQ6OnNhZmVHZXQoKSBhbmQgcmVw
bGFjZSB3aXRoIHVzZXMgb2YgQ2hlY2tlZDo6b3BlcmF0b3IgVCgpIG9yIENoZWNrZWQ6OnZhbHVl
KCkuCisgICAgICAgIHNhZmVHZXQoKSBpcyBhIGJpdCBha3dhcmQsIGhhdmluZyBib3RoIGEgcmV0
dXJuIHZhbHVlIGFuZCBhbiBvdXQtcGFyYW1ldGVyLgorCisgICAgICAgICogZGZnL0RGR0Fic3Ry
YWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRl
cnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBy
dW50aW1lL0pTQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0FycmF5OjphcHBlbmRNZW1jcHkp
OgorICAgICAgICAoSlNDOjpKU0FycmF5Ojp1bnNoaWZ0Q291bnRXaXRoQW55SW5kZXhpbmdUeXBl
KToKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nSm9pbmVyLmNwcDoKKyAgICAgICAgKEpTQzo6
SlNTdHJpbmdKb2luZXI6OmpvaW5lZExlbmd0aCBjb25zdCk6CisgICAgICAgICogd2FzbS9XYXNt
Rm9ybWF0LmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6U2VnbWVudDo6Y3JlYXRlKToKKyAgICAg
ICAgKiB3YXNtL1dhc21PcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6SlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKToKKyAgICAgICAgKiB3YXNtL1dhc21UYWJsZS5jcHA6CisgICAg
ICAgIChKU0M6Oldhc206OlRhYmxlOjpncm93KToKKwogMjAyMS0wNi0wMiAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBDaGVja2VkIGFsaWFzZXMgaW5zdGVh
ZCBvZiBDaGVja2VkPFQsIFJlY29yZE92ZXJmbG93PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA4NDNiZjVlYTYwZjg2NzQ3M2M1
MzE5NWEyYzZmYWQ1NDYwNWRhNDdmLi4zODQ5ODE0YjNmNTY2OGE0ZWYzNjM4Zjg3OWQyOTgwOGZh
YzM3ZjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RG
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA2LTAyICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBDaGVja2VkOjpzYWZlR2V0KCkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjUzNworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgQ2hlY2tlZDo6
c2FmZUdldCgpIGFuZCByZXBsYWNlIHdpdGggdXNlcyBvZiBDaGVja2VkOjpvcGVyYXRvciBUKCkg
b3IgQ2hlY2tlZDo6dmFsdWUoKS4KKyAgICAgICAgc2FmZUdldCgpIGlzIGEgYml0IGFrd2FyZCwg
aGF2aW5nIGJvdGggYSByZXR1cm4gdmFsdWUgYW5kIGFuIG91dC1wYXJhbWV0ZXIuCisKKyAgICAg
ICAgKiB3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaDoKKyAgICAgICAgKFdURjo6Q2hlY2tlZDo6dmFs
dWUgY29uc3QpOgorICAgICAgICAoV1RGOjpvcGVyYXRvcispOgorICAgICAgICAoV1RGOjpvcGVy
YXRvci0pOgorICAgICAgICAoV1RGOjpvcGVyYXRvciopOgorICAgICAgICAoV1RGOjpvcGVyYXRv
ci8pOgorCiAyMDIxLTA2LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgVXNlIENoZWNrZWQgYWxpYXNlcyBpbnN0ZWFkIG9mIENoZWNrZWQ8VCwgUmVjb3JkT3Zl
cmZsb3c+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDIwYjc2N2ZiMDRhZGE1ZmFlZDYwMjk0ODFhNWE5ZmQ0ZTllYzFk
NWUuLjY0N2IyNDIzYWEwM2FjNTdkNTA0OTY4MjA3ZDhhMWJkMzkzZDNhYmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMjEtMDYtMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KKworICAgICAgICBEcm9wIENoZWNrZWQ6OnNhZmVHZXQoKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NTM3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBDaGVja2VkOjpzYWZlR2V0KCkgYW5k
IHJlcGxhY2Ugd2l0aCB1c2VzIG9mIENoZWNrZWQ6Om9wZXJhdG9yIFQoKSBvciBDaGVja2VkOjp2
YWx1ZSgpLgorICAgICAgICBzYWZlR2V0KCkgaXMgYSBiaXQgYWt3YXJkLCBoYXZpbmcgYm90aCBh
IHJldHVybiB2YWx1ZSBhbmQgYW4gb3V0LXBhcmFtZXRlci4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvVGV4dENoZWNrZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyOjp1
cGRhdGVTcGVsbGluZ1VJV2l0aEdyYW1tYXJTdHJpbmcpOgorCiAyMDIxLTA2LTAyICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIENoZWNrZWQgYWxpYXNlcyBp
bnN0ZWFkIG9mIENoZWNrZWQ8VCwgUmVjb3JkT3ZlcmZsb3c+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5k
ZXggNWZmMmFlNTFjM2E2YmVjYTYyMjhkMjY4NWFjOGE0ZDM3YmRmMDM1YS4uZDYwMjUxYmUyZGY1
YjE3Mzg4OGMzYzU4YzFmZGUzNWNiMzY3YWEyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtMjU1
Myw4ICsyNTUzLDggQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBl
Pjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKIAogICAgICAgICAgICAgQ2hl
Y2tlZFVpbnQzMiBhcmd1bWVudEluZGV4Q2hlY2tlZCA9IGluZGV4LmFzVUludDMyKCk7CiAgICAg
ICAgICAgICBhcmd1bWVudEluZGV4Q2hlY2tlZCArPSBub2RlLT5udW1iZXJPZkFyZ3VtZW50c1Rv
U2tpcCgpOwotICAgICAgICAgICAgdW5zaWduZWQgYXJndW1lbnRJbmRleDsKLSAgICAgICAgICAg
IGlmIChhcmd1bWVudEluZGV4Q2hlY2tlZC5zYWZlR2V0KGFyZ3VtZW50SW5kZXgpICE9IENoZWNr
ZWRTdGF0ZTo6RGlkT3ZlcmZsb3cpIHsKKyAgICAgICAgICAgIGlmICghYXJndW1lbnRJbmRleENo
ZWNrZWQuaGFzT3ZlcmZsb3dlZCgpKSB7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgYXJndW1l
bnRJbmRleCA9IGFyZ3VtZW50SW5kZXhDaGVja2VkOwogICAgICAgICAgICAgICAgIGlmIChpbmxp
bmVDYWxsRnJhbWUpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGFyZ3VtZW50SW5kZXggPCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudENvdW50SW5jbHVk
aW5nVGhpcyAtIDEpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBzZXRGb3JOb2RlKG5vZGUs
IG1fc3RhdGUub3BlcmFuZCgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5j
cHAKaW5kZXggMmE5MWNlMmM5NjYzY2I3ODAzYzlmMDFkYzg4YzQ4ZTllZmM5MzEwMS4uMzIxMmU5
NmVlMjVmMGI5YjQ2N2QwZDNmM2E4ZmVhOTdkNzdjMGExYiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKQEAgLTUwNywxMSArNTA3LDExIEBAIGJvb2wgSlNBcnJh
eTo6YXBwZW5kTWVtY3B5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2bSwgdW5z
aWduZWQgc3RhcnRJCiAgICAgQ2hlY2tlZFVpbnQzMiBjaGVja2VkTmV3TGVuZ3RoID0gc3RhcnRJ
bmRleDsKICAgICBjaGVja2VkTmV3TGVuZ3RoICs9IG90aGVyTGVuZ3RoOwogCi0gICAgdW5zaWdu
ZWQgbmV3TGVuZ3RoOwotICAgIGlmIChjaGVja2VkTmV3TGVuZ3RoLnNhZmVHZXQobmV3TGVuZ3Ro
KSA9PSBDaGVja2VkU3RhdGU6OkRpZE92ZXJmbG93KSB7CisgICAgaWYgKGNoZWNrZWROZXdMZW5n
dGguaGFzT3ZlcmZsb3dlZCgpKSB7CiAgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVj
dCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IoZ2xvYmFsT2JqZWN0LCBMZW5ndGhFeGNlZWRlZFRo
ZU1heGltdW1BcnJheUxlbmd0aEVycm9yKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CisgICAgdW5zaWduZWQgbmV3TGVuZ3RoID0gY2hlY2tlZE5ld0xlbmd0aDsKIAogICAgIGlmIChu
ZXdMZW5ndGggPj0gTUlOX1NQQVJTRV9BUlJBWV9JTkRFWCkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMTA0MywxMSArMTA0MywxMSBAQCBib29sIEpTQXJyYXk6OnVuc2hpZnRDb3VudFdpdGhB
bnlJbmRleGluZ1R5cGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdW5zaQogCiAgICAg
ICAgIENoZWNrZWRVaW50MzIgY2hlY2tlZExlbmd0aChvbGRMZW5ndGgpOwogICAgICAgICBjaGVj
a2VkTGVuZ3RoICs9IGNvdW50OwotICAgICAgICB1bnNpZ25lZCBuZXdMZW5ndGg7Ci0gICAgICAg
IGlmIChDaGVja2VkU3RhdGU6OkRpZE92ZXJmbG93ID09IGNoZWNrZWRMZW5ndGguc2FmZUdldChu
ZXdMZW5ndGgpKSB7CisgICAgICAgIGlmIChjaGVja2VkTGVuZ3RoLmhhc092ZXJmbG93ZWQoKSkg
ewogICAgICAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUp
OwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KKyAgICAgICAgdW5zaWduZWQg
bmV3TGVuZ3RoID0gY2hlY2tlZExlbmd0aDsKICAgICAgICAgaWYgKG5ld0xlbmd0aCA+IE1BWF9T
VE9SQUdFX1ZFQ1RPUl9MRU5HVEgpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IGlmICghZW5zdXJlTGVuZ3RoKHZtLCBuZXdMZW5ndGgpKSB7CkBAIC0xMDkyLDExICsxMDkyLDEx
IEBAIGJvb2wgSlNBcnJheTo6dW5zaGlmdENvdW50V2l0aEFueUluZGV4aW5nVHlwZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCB1bnNpCiAKICAgICAgICAgQ2hlY2tlZFVpbnQzMiBjaGVj
a2VkTGVuZ3RoKG9sZExlbmd0aCk7CiAgICAgICAgIGNoZWNrZWRMZW5ndGggKz0gY291bnQ7Ci0g
ICAgICAgIHVuc2lnbmVkIG5ld0xlbmd0aDsKLSAgICAgICAgaWYgKENoZWNrZWRTdGF0ZTo6RGlk
T3ZlcmZsb3cgPT0gY2hlY2tlZExlbmd0aC5zYWZlR2V0KG5ld0xlbmd0aCkpIHsKKyAgICAgICAg
aWYgKGNoZWNrZWRMZW5ndGguaGFzT3ZlcmZsb3dlZCgpKSB7CiAgICAgICAgICAgICB0aHJvd091
dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgfQorICAgICAgICB1bnNpZ25lZCBuZXdMZW5ndGggPSBjaGVja2VkTGVu
Z3RoOwogICAgICAgICBpZiAobmV3TGVuZ3RoID4gTUFYX1NUT1JBR0VfVkVDVE9SX0xFTkdUSCkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKCFlbnN1cmVMZW5ndGgodm0s
IG5ld0xlbmd0aCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTU3RyaW5nSm9pbmVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Ry
aW5nSm9pbmVyLmNwcAppbmRleCA0NjVhOTc3YmEyYzBkYWJjNjI4Mzg0ZDVkMmZmNjg2NzlhMDQ1
ZGM5Li5lZWQ5MTM0YWU3MzdhNDQ2ZDI0YmQ4N2Y3YTZjMzRjOTk4NTkyMDBiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0pvaW5lci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdKb2luZXIuY3BwCkBAIC05MSwx
MyArOTEsMTEgQEAgaW5saW5lIHVuc2lnbmVkIEpTU3RyaW5nSm9pbmVyOjpqb2luZWRMZW5ndGgo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QKICAgICBDaGVja2VkSW50MzIgc2Vw
YXJhdG9yTGVuZ3RoID0gbV9zZXBhcmF0b3IubGVuZ3RoKCk7CiAgICAgQ2hlY2tlZEludDMyIHRv
dGFsU2VwYXJhdG9yc0xlbmd0aCA9IHNlcGFyYXRvckxlbmd0aCAqIChudW1iZXJPZlN0cmluZ3Mg
LSAxKTsKICAgICBDaGVja2VkSW50MzIgdG90YWxMZW5ndGggPSB0b3RhbFNlcGFyYXRvcnNMZW5n
dGggKyBtX2FjY3VtdWxhdGVkU3RyaW5nc0xlbmd0aDsKLQotICAgIGludDMyX3QgcmVzdWx0Owot
ICAgIGlmICh0b3RhbExlbmd0aC5zYWZlR2V0KHJlc3VsdCkgPT0gQ2hlY2tlZFN0YXRlOjpEaWRP
dmVyZmxvdykgeworICAgIGlmICh0b3RhbExlbmd0aC5oYXNPdmVyZmxvd2VkKCkpIHsKICAgICAg
ICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwogICAgICAgICBy
ZXR1cm4gMDsKICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gdG90YWxMZW5n
dGg7CiB9CiAKIEpTVmFsdWUgSlNTdHJpbmdKb2luZXI6OmpvaW4oSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21G
b3JtYXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5jcHAKaW5k
ZXggMzJjNzRhODI0ZGI2YjljNTdlZmU1ZjJjYzgyZWVhYWUxMmNjZmJhYy4uNTBkNzNhNzIwOWY5
ZjFlYzRmYmYyNjRjZTRiNjZhN2ZmYmEzZjRjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUZvcm1hdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUZvcm1hdC5jcHAKQEAgLTM4LDEwICszOCw5IEBAIFNlZ21lbnQ6OlB0ciBTZWdtZW50
OjpjcmVhdGUoc3RkOjpvcHRpb25hbDxJMzJJbml0RXhwcj4gb2Zmc2V0LCB1aW50MzJfdCBzaXpl
SW5CCiB7CiAgICAgQ2hlY2tlZFVpbnQzMiB0b3RhbEJ5dGVzQ2hlY2tlZCA9IHNpemVJbkJ5dGVz
OwogICAgIHRvdGFsQnl0ZXNDaGVja2VkICs9IHNpemVvZihTZWdtZW50KTsKLSAgICB1aW50MzJf
dCB0b3RhbEJ5dGVzOwotICAgIGlmICh0b3RhbEJ5dGVzQ2hlY2tlZC5zYWZlR2V0KHRvdGFsQnl0
ZXMpID09IENoZWNrZWRTdGF0ZTo6RGlkT3ZlcmZsb3cpCisgICAgaWYgKHRvdGFsQnl0ZXNDaGVj
a2VkLmhhc092ZXJmbG93ZWQoKSkKICAgICAgICAgcmV0dXJuIFB0cihudWxscHRyLCAmU2VnbWVu
dDo6ZGVzdHJveSk7Ci0gICAgYXV0byBhbGxvY2F0ZWQgPSB0cnlGYXN0Q2FsbG9jKHRvdGFsQnl0
ZXMsIDEpOworICAgIGF1dG8gYWxsb2NhdGVkID0gdHJ5RmFzdENhbGxvYyh0b3RhbEJ5dGVzQ2hl
Y2tlZCwgMSk7CiAgICAgU2VnbWVudCogc2VnbWVudDsKICAgICBpZiAoIWFsbG9jYXRlZC5nZXRW
YWx1ZShzZWdtZW50KSkKICAgICAgICAgcmV0dXJuIFB0cihudWxscHRyLCAmU2VnbWVudDo6ZGVz
dHJveSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0
aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAK
aW5kZXggZWVhOTc0ZmQ2YjAxODVhZjg5MjhmOTkzZGRmYjgzYTc5ODE1MGMwZC4uYjU3OGU5YjY4
ZDNkOTBhOTQyYmI2MTA1OGE5N2FhZDQ1NjE0YzlhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcApAQCAtNzkxLDIxICs3OTEsMTkgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUNvcHksIGJvb2wsIChJbnN0YW5j
ZSogaW5zdGFuY2UsIHVuc2kKICAgICBDaGVja2VkVWludDMyIGxhc3REc3RFbGVtZW50SW5kZXhD
aGVja2VkID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGRzdE9mZnNldCk7CiAgICAgbGFzdERzdEVs
ZW1lbnRJbmRleENoZWNrZWQgKz0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGxlbmd0aCk7CiAKLSAg
ICB1aW50MzJfdCBsYXN0RHN0RWxlbWVudEluZGV4OwotICAgIGlmIChsYXN0RHN0RWxlbWVudElu
ZGV4Q2hlY2tlZC5zYWZlR2V0KGxhc3REc3RFbGVtZW50SW5kZXgpID09IENoZWNrZWRTdGF0ZTo6
RGlkT3ZlcmZsb3cpCisgICAgaWYgKGxhc3REc3RFbGVtZW50SW5kZXhDaGVja2VkLmhhc092ZXJm
bG93ZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGxhc3REc3RFbGVtZW50
SW5kZXggPiBkc3RUYWJsZS0+bGVuZ3RoKCkpCisgICAgaWYgKGxhc3REc3RFbGVtZW50SW5kZXhD
aGVja2VkID4gZHN0VGFibGUtPmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBDaGVja2VkVWludDMyIGxhc3RTcmNFbGVtZW50SW5kZXhDaGVja2VkID0gc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KHNyY09mZnNldCk7CiAgICAgbGFzdFNyY0VsZW1lbnRJbmRleENoZWNrZWQgKz0g
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KGxlbmd0aCk7CiAKLSAgICB1aW50MzJfdCBsYXN0U3JjRWxl
bWVudEluZGV4OwotICAgIGlmIChsYXN0U3JjRWxlbWVudEluZGV4Q2hlY2tlZC5zYWZlR2V0KGxh
c3RTcmNFbGVtZW50SW5kZXgpID09IENoZWNrZWRTdGF0ZTo6RGlkT3ZlcmZsb3cpCisgICAgaWYg
KGxhc3RTcmNFbGVtZW50SW5kZXhDaGVja2VkLmhhc092ZXJmbG93ZWQoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgaWYgKGxhc3RTcmNFbGVtZW50SW5kZXggPiBzcmNUYWJsZS0+bGVu
Z3RoKCkpCisgICAgaWYgKGxhc3RTcmNFbGVtZW50SW5kZXhDaGVja2VkID4gc3JjVGFibGUtPmxl
bmd0aCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpbnN0YW5jZS0+dGFibGVDb3B5
KGRzdE9mZnNldCwgc3JjT2Zmc2V0LCBsZW5ndGgsIGRzdFRhYmxlSW5kZXgsIHNyY1RhYmxlSW5k
ZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVRhYmxlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21UYWJsZS5jcHAKaW5kZXggNTU2OGVk
NmE0OTUxYWIwNjg0YjEyNGQwMmQ3OGU5ZTIxNDIxNTNlMS4uODEyNjhjZjVjZWNhYTEyMTJjMjQ3
NDBmZDdmMzQyMjEwMGVlZmE2MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbVRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVGFi
bGUuY3BwCkBAIC04OSwxMCArODksMTAgQEAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gVGFibGU6
Omdyb3codWludDMyX3QgZGVsdGEsIEpTVmFsdWUgZGVmYXVsdFZhbHVlKQogCiAgICAgQ2hlY2tl
ZFVpbnQzMiBuZXdMZW5ndGhDaGVja2VkID0gbGVuZ3RoKCk7CiAgICAgbmV3TGVuZ3RoQ2hlY2tl
ZCArPSBkZWx0YTsKLSAgICB1aW50MzJfdCBuZXdMZW5ndGg7Ci0gICAgaWYgKG5ld0xlbmd0aENo
ZWNrZWQuc2FmZUdldChuZXdMZW5ndGgpID09IENoZWNrZWRTdGF0ZTo6RGlkT3ZlcmZsb3cpCisg
ICAgaWYgKG5ld0xlbmd0aENoZWNrZWQuaGFzT3ZlcmZsb3dlZCgpKQogICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogCisgICAgdWludDMyX3QgbmV3TGVuZ3RoID0gbmV3TGVuZ3RoQ2hlY2tl
ZDsKICAgICBpZiAobWF4aW11bSgpICYmIG5ld0xlbmd0aCA+ICptYXhpbXVtKCkpCiAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgaWYgKCFpc1ZhbGlkTGVuZ3RoKG5ld0xlbmd0aCkp
CkBAIC0xMDIsMTEgKzEwMiwxMCBAQCBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBUYWJsZTo6Z3Jv
dyh1aW50MzJfdCBkZWx0YSwgSlNWYWx1ZSBkZWZhdWx0VmFsdWUpCiAgICAgICAgIGlmIChuZXdM
ZW5ndGhDaGVja2VkID4gYWxsb2NhdGVkTGVuZ3RoKG1fbGVuZ3RoKSkgewogICAgICAgICAgICAg
Q2hlY2tlZFVpbnQzMiByZWFsbG9jU2l6ZUNoZWNrZWQgPSBhbGxvY2F0ZWRMZW5ndGgobmV3TGVu
Z3RoQ2hlY2tlZCk7CiAgICAgICAgICAgICByZWFsbG9jU2l6ZUNoZWNrZWQgKj0gc2l6ZW9mKCpj
b250YWluZXIuZ2V0KCkpOwotICAgICAgICAgICAgdWludDMyX3QgcmVhbGxvY1NpemU7Ci0gICAg
ICAgICAgICBpZiAocmVhbGxvY1NpemVDaGVja2VkLnNhZmVHZXQocmVhbGxvY1NpemUpID09IENo
ZWNrZWRTdGF0ZTo6RGlkT3ZlcmZsb3cpCisgICAgICAgICAgICBpZiAocmVhbGxvY1NpemVDaGVj
a2VkLmhhc092ZXJmbG93ZWQoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgICAgICAvLyBGSVhNRSB0aGlzIG92ZXItYWxsb2NhdGVzIGFuZCBjb3VsZCBiZSBzbWFydGVy
IGFib3V0IG5vdCBjb21taXR0aW5nIGFsbCBvZiB0aGF0IG1lbW9yeSBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxNDI1Ci0gICAgICAgICAgICBjb250YWluZXIucmVh
bGxvYyhyZWFsbG9jU2l6ZSk7CisgICAgICAgICAgICBjb250YWluZXIucmVhbGxvYyhyZWFsbG9j
U2l6ZUNoZWNrZWQpOwogICAgICAgICB9CiAgICAgICAgIGZvciAodWludDMyX3QgaSA9IG1fbGVu
Z3RoOyBpIDwgYWxsb2NhdGVkTGVuZ3RoKG5ld0xlbmd0aCk7ICsraSkgewogICAgICAgICAgICAg
bmV3ICgmY29udGFpbmVyLmdldCgpW2ldKSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2VfdDxkZWNsdHlw
ZSgqY29udGFpbmVyLmdldCgpKT4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NoZWNr
ZWRBcml0aG1ldGljLmggYi9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkQXJpdGhtZXRpYy5oCmluZGV4
IDkyZGQzZjg0YjY5OTA5YzMyOWJjNjIzOWI4NTIyOWM2YzgzNzA5OWUuLjE4NWQ1MWIyYjZkOWNj
NDAzMWRhZmM1Y2E2ZjU2NjdiNzQyM2IwNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0No
ZWNrZWRBcml0aG1ldGljLmgKKysrIGIvU291cmNlL1dURi93dGYvQ2hlY2tlZEFyaXRobWV0aWMu
aApAQCAtNzU0LDE0ICs3NTQsNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICB0aGlzLT5jcmFzaCgp
OwogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VT4obV92YWx1ZSk7CiAgICAgfQotICAgIAot
ICAgIGlubGluZSBDaGVja2VkU3RhdGUgc2FmZUdldChUJiB2YWx1ZSkgY29uc3QgV0FSTl9VTlVT
RURfUkVUVVJOCi0gICAgewotICAgICAgICB2YWx1ZSA9IG1fdmFsdWU7Ci0gICAgICAgIGlmICh0
aGlzLT5oYXNPdmVyZmxvd2VkKCkpCi0gICAgICAgICAgICByZXR1cm4gQ2hlY2tlZFN0YXRlOjpE
aWRPdmVyZmxvdzsKLSAgICAgICAgcmV0dXJuIENoZWNrZWRTdGF0ZTo6RGlkTm90T3ZlcmZsb3c7
Ci0gICAgfQogCiAgICAgLy8gTXV0YXRpbmcgYXNzaWdubWVudAogICAgIHRlbXBsYXRlIDx0eXBl
bmFtZSBVPiBDaGVja2VkJiBvcGVyYXRvcis9KFUgcmhzKQpAQCAtODcyLDQ4ICs4NjQsNDAgQEAg
cHJpdmF0ZToKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIE92
ZXJmbG93SGFuZGxlcj4gc3RhdGljIGlubGluZSBDaGVja2VkPHR5cGVuYW1lIFJlc3VsdDxVLCBW
Pjo6UmVzdWx0VHlwZSwgT3ZlcmZsb3dIYW5kbGVyPiBvcGVyYXRvcisoQ2hlY2tlZDxVLCBPdmVy
Zmxvd0hhbmRsZXI+IGxocywgQ2hlY2tlZDxWLCBPdmVyZmxvd0hhbmRsZXI+IHJocykKIHsKLSAg
ICBVIHggPSAwOwotICAgIFYgeSA9IDA7Ci0gICAgYm9vbCBvdmVyZmxvd2VkID0gbGhzLnNhZmVH
ZXQoeCkgPT0gQ2hlY2tlZFN0YXRlOjpEaWRPdmVyZmxvdyB8fCByaHMuc2FmZUdldCh5KSA9PSBD
aGVja2VkU3RhdGU6OkRpZE92ZXJmbG93OworICAgIGlmIChVTkxJS0VMWShsaHMuaGFzT3ZlcmZs
b3dlZCgpIHx8IHJocy5oYXNPdmVyZmxvd2VkKCkpKQorICAgICAgICByZXR1cm4gUmVzdWx0T3Zl
cmZsb3dlZDsKICAgICB0eXBlbmFtZSBSZXN1bHQ8VSwgVj46OlJlc3VsdFR5cGUgcmVzdWx0ID0g
MDsKLSAgICBvdmVyZmxvd2VkIHw9ICFzYWZlQWRkPE92ZXJmbG93SGFuZGxlcj4oeCwgeSwgcmVz
dWx0KTsKLSAgICBpZiAob3ZlcmZsb3dlZCkKKyAgICBpZiAoVU5MSUtFTFkoIXNhZmVBZGQ8T3Zl
cmZsb3dIYW5kbGVyPihsaHMudmFsdWUoKSwgcmhzLnZhbHVlKCksIHJlc3VsdCkpKQogICAgICAg
ICByZXR1cm4gUmVzdWx0T3ZlcmZsb3dlZDsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyPiBz
dGF0aWMgaW5saW5lIENoZWNrZWQ8dHlwZW5hbWUgUmVzdWx0PFUsIFY+OjpSZXN1bHRUeXBlLCBP
dmVyZmxvd0hhbmRsZXI+IG9wZXJhdG9yLShDaGVja2VkPFUsIE92ZXJmbG93SGFuZGxlcj4gbGhz
LCBDaGVja2VkPFYsIE92ZXJmbG93SGFuZGxlcj4gcmhzKQogewotICAgIFUgeCA9IDA7Ci0gICAg
ViB5ID0gMDsKLSAgICBib29sIG92ZXJmbG93ZWQgPSBsaHMuc2FmZUdldCh4KSA9PSBDaGVja2Vk
U3RhdGU6OkRpZE92ZXJmbG93IHx8IHJocy5zYWZlR2V0KHkpID09IENoZWNrZWRTdGF0ZTo6RGlk
T3ZlcmZsb3c7CisgICAgaWYgKFVOTElLRUxZKGxocy5oYXNPdmVyZmxvd2VkKCkgfHwgcmhzLmhh
c092ZXJmbG93ZWQoKSkpCisgICAgICAgIHJldHVybiBSZXN1bHRPdmVyZmxvd2VkOwogICAgIHR5
cGVuYW1lIFJlc3VsdDxVLCBWPjo6UmVzdWx0VHlwZSByZXN1bHQgPSAwOwotICAgIG92ZXJmbG93
ZWQgfD0gIXNhZmVTdWI8T3ZlcmZsb3dIYW5kbGVyPih4LCB5LCByZXN1bHQpOwotICAgIGlmIChv
dmVyZmxvd2VkKQorICAgIGlmIChVTkxJS0VMWSghc2FmZVN1YjxPdmVyZmxvd0hhbmRsZXI+KGxo
cy52YWx1ZSgpLCByaHMudmFsdWUoKSwgcmVzdWx0KSkpCiAgICAgICAgIHJldHVybiBSZXN1bHRP
dmVyZmxvd2VkOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBV
LCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXI+IHN0YXRpYyBpbmxpbmUgQ2hl
Y2tlZDx0eXBlbmFtZSBSZXN1bHQ8VSwgVj46OlJlc3VsdFR5cGUsIE92ZXJmbG93SGFuZGxlcj4g
b3BlcmF0b3IqKENoZWNrZWQ8VSwgT3ZlcmZsb3dIYW5kbGVyPiBsaHMsIENoZWNrZWQ8ViwgT3Zl
cmZsb3dIYW5kbGVyPiByaHMpCiB7Ci0gICAgVSB4ID0gMDsKLSAgICBWIHkgPSAwOwotICAgIGJv
b2wgb3ZlcmZsb3dlZCA9IGxocy5zYWZlR2V0KHgpID09IENoZWNrZWRTdGF0ZTo6RGlkT3ZlcmZs
b3cgfHwgcmhzLnNhZmVHZXQoeSkgPT0gQ2hlY2tlZFN0YXRlOjpEaWRPdmVyZmxvdzsKKyAgICBp
ZiAoVU5MSUtFTFkobGhzLmhhc092ZXJmbG93ZWQoKSB8fCByaHMuaGFzT3ZlcmZsb3dlZCgpKSkK
KyAgICAgICAgcmV0dXJuIFJlc3VsdE92ZXJmbG93ZWQ7CiAgICAgdHlwZW5hbWUgUmVzdWx0PFUs
IFY+OjpSZXN1bHRUeXBlIHJlc3VsdCA9IDA7Ci0gICAgb3ZlcmZsb3dlZCB8PSAhc2FmZU11bHRp
cGx5PE92ZXJmbG93SGFuZGxlcj4oeCwgeSwgcmVzdWx0KTsKLSAgICBpZiAob3ZlcmZsb3dlZCkK
KyAgICBpZiAoVU5MSUtFTFkoIXNhZmVNdWx0aXBseTxPdmVyZmxvd0hhbmRsZXI+KGxocy52YWx1
ZSgpLCByaHMudmFsdWUoKSwgcmVzdWx0KSkpCiAgICAgICAgIHJldHVybiBSZXN1bHRPdmVyZmxv
d2VkOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBVLCB0eXBl
bmFtZSBWLCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXI+IHN0YXRpYyBpbmxpbmUgQ2hlY2tlZDx0
eXBlbmFtZSBSZXN1bHQ8VSwgVj46OlJlc3VsdFR5cGUsIE92ZXJmbG93SGFuZGxlcj4gb3BlcmF0
b3IvKENoZWNrZWQ8VSwgT3ZlcmZsb3dIYW5kbGVyPiBsaHMsIENoZWNrZWQ8ViwgT3ZlcmZsb3dI
YW5kbGVyPiByaHMpCiB7Ci0gICAgVSB4ID0gMDsKLSAgICBWIHkgPSAwOwotICAgIGJvb2wgb3Zl
cmZsb3dlZCA9IGxocy5zYWZlR2V0KHgpID09IENoZWNrZWRTdGF0ZTo6RGlkT3ZlcmZsb3cgfHwg
cmhzLnNhZmVHZXQoeSkgPT0gQ2hlY2tlZFN0YXRlOjpEaWRPdmVyZmxvdzsKKyAgICBpZiAoVU5M
SUtFTFkobGhzLmhhc092ZXJmbG93ZWQoKSB8fCByaHMuaGFzT3ZlcmZsb3dlZCgpKSkKKyAgICAg
ICAgcmV0dXJuIFJlc3VsdE92ZXJmbG93ZWQ7CiAgICAgdHlwZW5hbWUgUmVzdWx0PFUsIFY+OjpS
ZXN1bHRUeXBlIHJlc3VsdCA9IDA7Ci0gICAgb3ZlcmZsb3dlZCB8PSAhc2FmZURpdmlkZTxPdmVy
Zmxvd0hhbmRsZXI+KHgsIHksIHJlc3VsdCk7Ci0gICAgaWYgKG92ZXJmbG93ZWQpCisgICAgaWYg
KFVOTElLRUxZKCFzYWZlRGl2aWRlPE92ZXJmbG93SGFuZGxlcj4obGhzLnZhbHVlKCksIHJocy52
YWx1ZSgpLCByZXN1bHQpKSkKICAgICAgICAgcmV0dXJuIFJlc3VsdE92ZXJmbG93ZWQ7CiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9UZXh0Q2hlY2tlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9UZXh0Q2hl
Y2tlck1hYy5tbQppbmRleCBhNGY1Njg3MTY0ZGNmOTdiMjViYjA3MjQyNTUxNjMyMDhiZGY3MTZj
Li40Y2MyMmRmMDMwODI1MGJlMjUwNjE2MjEyYzU4MDMwN2UyMDMxMDIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGV4dENoZWNrZXJNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1RleHRDaGVja2VyTWFjLm1tCkBAIC00NDAsOCArNDQwLDcg
QEAgdm9pZCBUZXh0Q2hlY2tlcjo6dXBkYXRlU3BlbGxpbmdVSVdpdGhHcmFtbWFyU3RyaW5nKFNw
ZWxsRG9jdW1lbnRUYWcsIGNvbnN0IFN0cmkKICAgICBDaGVja2VkVWludDY0IGVuZE9mUmFuZ2VD
aGVja2VkID0gZ3JhbW1hckRldGFpbC5yYW5nZS5sb2NhdGlvbjsKICAgICBlbmRPZlJhbmdlQ2hl
Y2tlZCArPSBncmFtbWFyRGV0YWlsLnJhbmdlLmxlbmd0aDsKIAotICAgIHVpbnQ2NF90IGVuZE9m
UmFuZ2U7Ci0gICAgaWYgKGVuZE9mUmFuZ2VDaGVja2VkLnNhZmVHZXQoZW5kT2ZSYW5nZSkgPT0g
Q2hlY2tlZFN0YXRlOjpEaWRPdmVyZmxvdyB8fCBlbmRPZlJhbmdlID49IGJhZEdyYW1tYXJQaHJh
c2UubGVuZ3RoKCkpCisgICAgaWYgKGVuZE9mUmFuZ2VDaGVja2VkLmhhc092ZXJmbG93ZWQoKSB8
fCBlbmRPZlJhbmdlQ2hlY2tlZCA+PSBiYWRHcmFtbWFyUGhyYXNlLmxlbmd0aCgpKQogICAgICAg
ICByZXR1cm47CiAKICAgICBOU0RpY3Rpb25hcnkgKmRldGFpbCA9IEB7CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzczYzRlMzc4ODU0ZjRlN2U3
Y2Y3OGM3ZjIzZDljOGJiMWI2OTRkMy4uMzE2Y2FhMGZjOTI1MzU5NDc1OWY5NTA4MzkzOTEwNjIw
OTNkZmU1MiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTA2LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgRHJvcCBDaGVja2VkOjpzYWZlR2V0KCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjUzNworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgQ2hlY2tlZDo6c2FmZUdldCgp
IGFuZCByZXBsYWNlIHdpdGggdXNlcyBvZiBDaGVja2VkOjpvcGVyYXRvciBUKCkgb3IgQ2hlY2tl
ZDo6dmFsdWUoKS4KKyAgICAgICAgc2FmZUdldCgpIGlzIGEgYml0IGFrd2FyZCwgaGF2aW5nIGJv
dGggYSByZXR1cm4gdmFsdWUgYW5kIGFuIG91dC1wYXJhbWV0ZXIuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6Q2hlY2tlZEFyaXRobWV0aWNUZXN0ZXI6OnJ1bik6CisKIDIw
MjEtMDUtMjMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRk
IENoZWNrZWRQdHIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0No
ZWNrZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9DaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwCmluZGV4IGM0NGE3MGI3NTVlOWMx
NTY3NDkxMjQ3OGM3ZGQ2OThmMTU0ODdiZTguLjljZTFmYjcyNTA0ZTUyYmU3ZTAxMGUzNjQwNDc1
ZDViNjc0ODBiMWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0No
ZWNrZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvQ2hlY2tlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcApAQCAtMTI5LDQxICsxMjks
MjYgQEAgcHVibGljOgogICAgICAgICBFWFBFQ1RfRVEodHJ1ZSwgdmFsdWUuaGFzT3ZlcmZsb3dl
ZCgpKTsKIAogICAgICAgICB2YWx1ZSA9IDEwOwotICAgICAgICB0eXBlIF92YWx1ZSA9IDA7Ci0g
ICAgICAgIEVYUEVDVF9FUSh0cnVlLCBDaGVja2VkU3RhdGU6OkRpZE5vdE92ZXJmbG93ID09ICh2
YWx1ZSAqIENoZWNrZWQ8dHlwZSwgUmVjb3JkT3ZlcmZsb3c+KDApKS5zYWZlR2V0KF92YWx1ZSkp
OwotICAgICAgICBfdmFsdWUgPSAwOwotICAgICAgICBFWFBFQ1RfRVEodHJ1ZSwgQ2hlY2tlZFN0
YXRlOjpEaWROb3RPdmVyZmxvdyA9PSAoQ2hlY2tlZDx0eXBlLCBSZWNvcmRPdmVyZmxvdz4oMCkg
KiB2YWx1ZSkuc2FmZUdldChfdmFsdWUpKTsKLSAgICAgICAgX3ZhbHVlID0gMDsKLSAgICAgICAg
RVhQRUNUX0VRKHRydWUsIENoZWNrZWRTdGF0ZTo6RGlkT3ZlcmZsb3cgPT0gKHZhbHVlICogQ2hl
Y2tlZDx0eXBlLCBSZWNvcmRPdmVyZmxvdz4oc3RkOjpudW1lcmljX2xpbWl0czx0eXBlPjo6bWF4
KCkpKS5zYWZlR2V0KF92YWx1ZSkpOwotICAgICAgICBfdmFsdWUgPSAwOwotICAgICAgICBFWFBF
Q1RfRVEodHJ1ZSwgQ2hlY2tlZFN0YXRlOjpEaWRPdmVyZmxvdyA9PSAoQ2hlY2tlZDx0eXBlLCBS
ZWNvcmRPdmVyZmxvdz4oc3RkOjpudW1lcmljX2xpbWl0czx0eXBlPjo6bWF4KCkpICogdmFsdWUp
LnNhZmVHZXQoX3ZhbHVlKSk7CisgICAgICAgIEVYUEVDVF9GQUxTRSgodmFsdWUgKiBDaGVja2Vk
PHR5cGUsIFJlY29yZE92ZXJmbG93PigwKSkuaGFzT3ZlcmZsb3dlZCgpKTsKKyAgICAgICAgRVhQ
RUNUX0ZBTFNFKChDaGVja2VkPHR5cGUsIFJlY29yZE92ZXJmbG93PigwKSAqIHZhbHVlKS5oYXNP
dmVyZmxvd2VkKCkpOworICAgICAgICBFWFBFQ1RfVFJVRSgodmFsdWUgKiBDaGVja2VkPHR5cGUs
IFJlY29yZE92ZXJmbG93PihzdGQ6Om51bWVyaWNfbGltaXRzPHR5cGU+OjptYXgoKSkpLmhhc092
ZXJmbG93ZWQoKSk7CisgICAgICAgIEVYUEVDVF9UUlVFKChDaGVja2VkPHR5cGUsIFJlY29yZE92
ZXJmbG93PihzdGQ6Om51bWVyaWNfbGltaXRzPHR5cGU+OjptYXgoKSkgKiB2YWx1ZSkuaGFzT3Zl
cmZsb3dlZCgpKTsKICAgICAgICAgdmFsdWUgPSAwOwotICAgICAgICBfdmFsdWUgPSAwOwotICAg
ICAgICBFWFBFQ1RfRVEodHJ1ZSwgQ2hlY2tlZFN0YXRlOjpEaWROb3RPdmVyZmxvdyA9PSAodmFs
dWUgKiBDaGVja2VkPHR5cGUsIFJlY29yZE92ZXJmbG93PihzdGQ6Om51bWVyaWNfbGltaXRzPHR5
cGU+OjptYXgoKSkpLnNhZmVHZXQoX3ZhbHVlKSk7Ci0gICAgICAgIF92YWx1ZSA9IDA7Ci0gICAg
ICAgIEVYUEVDVF9FUSh0cnVlLCBDaGVja2VkU3RhdGU6OkRpZE5vdE92ZXJmbG93ID09IChDaGVj
a2VkPHR5cGUsIFJlY29yZE92ZXJmbG93PihzdGQ6Om51bWVyaWNfbGltaXRzPHR5cGU+OjptYXgo
KSkgKiB2YWx1ZSkuc2FmZUdldChfdmFsdWUpKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKCh2YWx1
ZSAqIENoZWNrZWQ8dHlwZSwgUmVjb3JkT3ZlcmZsb3c+KHN0ZDo6bnVtZXJpY19saW1pdHM8dHlw
ZT46Om1heCgpKSkuaGFzT3ZlcmZsb3dlZCgpKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKChDaGVj
a2VkPHR5cGUsIFJlY29yZE92ZXJmbG93PihzdGQ6Om51bWVyaWNfbGltaXRzPHR5cGU+OjptYXgo
KSkgKiB2YWx1ZSkuaGFzT3ZlcmZsb3dlZCgpKTsKICAgICAgICAgdmFsdWUgPSAxOwotICAgICAg
ICBfdmFsdWUgPSAwOwotICAgICAgICBFWFBFQ1RfRVEodHJ1ZSwgQ2hlY2tlZFN0YXRlOjpEaWRO
b3RPdmVyZmxvdyA9PSAodmFsdWUgKiBDaGVja2VkPHR5cGUsIFJlY29yZE92ZXJmbG93PihzdGQ6
Om51bWVyaWNfbGltaXRzPHR5cGU+OjptYXgoKSkpLnNhZmVHZXQoX3ZhbHVlKSk7Ci0gICAgICAg
IF92YWx1ZSA9IDA7Ci0gICAgICAgIEVYUEVDVF9FUSh0cnVlLCBDaGVja2VkU3RhdGU6OkRpZE5v
dE92ZXJmbG93ID09IChDaGVja2VkPHR5cGUsIFJlY29yZE92ZXJmbG93PihzdGQ6Om51bWVyaWNf
bGltaXRzPHR5cGU+OjptYXgoKSkgKiB2YWx1ZSkuc2FmZUdldChfdmFsdWUpKTsKLSAgICAgICAg
X3ZhbHVlID0gMDsKLSAgICAgICAgdmFsdWUgPSAwOwotICAgICAgICBFWFBFQ1RfRVEodHJ1ZSwg
Q2hlY2tlZFN0YXRlOjpEaWROb3RPdmVyZmxvdyA9PSAodmFsdWUgKiBDaGVja2VkPHR5cGUsIFJl
Y29yZE92ZXJmbG93PihzdGQ6Om51bWVyaWNfbGltaXRzPHR5cGU+OjptYXgoKSkpLnNhZmVHZXQo
X3ZhbHVlKSk7Ci0gICAgICAgIF92YWx1ZSA9IDA7Ci0gICAgICAgIEVYUEVDVF9FUSh0cnVlLCBD
aGVja2VkU3RhdGU6OkRpZE5vdE92ZXJmbG93ID09IChDaGVja2VkPHR5cGUsIFJlY29yZE92ZXJm
bG93PihzdGQ6Om51bWVyaWNfbGltaXRzPHR5cGU+OjptYXgoKSkgKiAodHlwZSkwKS5zYWZlR2V0
KF92YWx1ZSkpOwotICAgICAgICBfdmFsdWUgPSAwOworICAgICAgICBFWFBFQ1RfRkFMU0UoKHZh
bHVlICogQ2hlY2tlZDx0eXBlLCBSZWNvcmRPdmVyZmxvdz4oc3RkOjpudW1lcmljX2xpbWl0czx0
eXBlPjo6bWF4KCkpKS5oYXNPdmVyZmxvd2VkKCkpOworICAgICAgICBFWFBFQ1RfRkFMU0UoKENo
ZWNrZWQ8dHlwZSwgUmVjb3JkT3ZlcmZsb3c+KHN0ZDo6bnVtZXJpY19saW1pdHM8dHlwZT46Om1h
eCgpKSAqIHZhbHVlKS5oYXNPdmVyZmxvd2VkKCkpOworICAgICAgICBFWFBFQ1RfRkFMU0UoKHZh
bHVlICogQ2hlY2tlZDx0eXBlLCBSZWNvcmRPdmVyZmxvdz4oc3RkOjpudW1lcmljX2xpbWl0czx0
eXBlPjo6bWF4KCkpKS5oYXNPdmVyZmxvd2VkKCkpOworICAgICAgICBFWFBFQ1RfRkFMU0UoKENo
ZWNrZWQ8dHlwZSwgUmVjb3JkT3ZlcmZsb3c+KHN0ZDo6bnVtZXJpY19saW1pdHM8dHlwZT46Om1h
eCgpKSAqICh0eXBlKTApLmhhc092ZXJmbG93ZWQoKSk7CiAgICAgICAgIHZhbHVlID0gMTsKLSAg
ICAgICAgRVhQRUNUX0VRKHRydWUsIENoZWNrZWRTdGF0ZTo6RGlkTm90T3ZlcmZsb3cgPT0gKHZh
bHVlICogQ2hlY2tlZDx0eXBlLCBSZWNvcmRPdmVyZmxvdz4oc3RkOjpudW1lcmljX2xpbWl0czx0
eXBlPjo6bWF4KCkpKS5zYWZlR2V0KF92YWx1ZSkpOwotICAgICAgICBfdmFsdWUgPSAwOwotICAg
ICAgICBFWFBFQ1RfRVEodHJ1ZSwgQ2hlY2tlZFN0YXRlOjpEaWROb3RPdmVyZmxvdyA9PSAoQ2hl
Y2tlZDx0eXBlLCBSZWNvcmRPdmVyZmxvdz4oc3RkOjpudW1lcmljX2xpbWl0czx0eXBlPjo6bWF4
KCkpICogKHR5cGUpMSkuc2FmZUdldChfdmFsdWUpKTsKLSAgICAgICAgX3ZhbHVlID0gMDsKKyAg
ICAgICAgRVhQRUNUX0ZBTFNFKCh2YWx1ZSAqIENoZWNrZWQ8dHlwZSwgUmVjb3JkT3ZlcmZsb3c+
KHN0ZDo6bnVtZXJpY19saW1pdHM8dHlwZT46Om1heCgpKSkuaGFzT3ZlcmZsb3dlZCgpKTsKKyAg
ICAgICAgRVhQRUNUX0ZBTFNFKChDaGVja2VkPHR5cGUsIFJlY29yZE92ZXJmbG93PihzdGQ6Om51
bWVyaWNfbGltaXRzPHR5cGU+OjptYXgoKSkgKiAodHlwZSkxKS5oYXNPdmVyZmxvd2VkKCkpOwog
ICAgICAgICB2YWx1ZSA9IDI7Ci0gICAgICAgIEVYUEVDVF9FUSh0cnVlLCBDaGVja2VkU3RhdGU6
OkRpZE92ZXJmbG93ID09ICh2YWx1ZSAqIENoZWNrZWQ8dHlwZSwgUmVjb3JkT3ZlcmZsb3c+KHN0
ZDo6bnVtZXJpY19saW1pdHM8dHlwZT46Om1heCgpKSkuc2FmZUdldChfdmFsdWUpKTsKLSAgICAg
ICAgX3ZhbHVlID0gMDsKLSAgICAgICAgRVhQRUNUX0VRKHRydWUsIENoZWNrZWRTdGF0ZTo6RGlk
T3ZlcmZsb3cgPT0gKENoZWNrZWQ8dHlwZSwgUmVjb3JkT3ZlcmZsb3c+KHN0ZDo6bnVtZXJpY19s
aW1pdHM8dHlwZT46Om1heCgpKSAqICh0eXBlKTIpLnNhZmVHZXQoX3ZhbHVlKSk7CisgICAgICAg
IEVYUEVDVF9UUlVFKCh2YWx1ZSAqIENoZWNrZWQ8dHlwZSwgUmVjb3JkT3ZlcmZsb3c+KHN0ZDo6
bnVtZXJpY19saW1pdHM8dHlwZT46Om1heCgpKSkuaGFzT3ZlcmZsb3dlZCgpKTsKKyAgICAgICAg
RVhQRUNUX1RSVUUoKENoZWNrZWQ8dHlwZSwgUmVjb3JkT3ZlcmZsb3c+KHN0ZDo6bnVtZXJpY19s
aW1pdHM8dHlwZT46Om1heCgpKSAqICh0eXBlKTIpLmhhc092ZXJmbG93ZWQoKSk7CiAgICAgICAg
IHZhbHVlID0gMTA7Ci0gICAgICAgIEVYUEVDVF9FUSh0cnVlLCAodmFsdWUgKiBDaGVja2VkPHR5
cGUsIFJlY29yZE92ZXJmbG93PihzdGQ6Om51bWVyaWNfbGltaXRzPHR5cGU+OjptYXgoKSkpLmhh
c092ZXJmbG93ZWQoKSk7CisgICAgICAgIEVYUEVDVF9UUlVFKCh2YWx1ZSAqIENoZWNrZWQ8dHlw
ZSwgUmVjb3JkT3ZlcmZsb3c+KHN0ZDo6bnVtZXJpY19saW1pdHM8dHlwZT46Om1heCgpKSkuaGFz
T3ZlcmZsb3dlZCgpKTsKIAogCiAgICAgICAgIENoZWNrZWQ8dHlwZSwgT3ZlcmZsb3dDcmFzaExv
Z2dlcj4gbnZhbHVlOyAvLyB0byBob2xkIGEgbm90IG92ZXJmbG93ZWQgdmFsdWUuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430361</attachid>
            <date>2021-06-02 08:36:18 -0700</date>
            <delta_ts>2021-06-02 12:02:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226537-20210602083618.patch</filename>
            <type>text/plain</type>
            <size>21509</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MzI1YTBiZDA0MGRiYzFhZmNlZmE4NWY0N2FlZGEyODZlMTU3Y2JlLi5hMTU1ZTNiNGU4N2ViNmJl
ZTRlM2JkODRhZTM4ODZlZjMyMDY4Y2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAyMS0wNi0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgQ2hlY2tlZDo6c2FmZUdldCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY1MzcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIENoZWNrZWQ6OnNhZmVHZXQoKSBhbmQgcmVw
bGFjZSB3aXRoIHVzZXMgb2YgQ2hlY2tlZDo6b3BlcmF0b3IgVCgpIG9yIENoZWNrZWQ6OnZhbHVl
KCkuCisgICAgICAgIHNhZmVHZXQoKSBpcyBhIGJpdCBha3dhcmQsIGhhdmluZyBib3RoIGEgcmV0
dXJuIHZhbHVlIGFuZCBhbiBvdXQtcGFyYW1ldGVyLgorCisgICAgICAgICogZGZnL0RGR0Fic3Ry
YWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRl
cnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBy
dW50aW1lL0pTQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0FycmF5OjphcHBlbmRNZW1jcHkp
OgorICAgICAgICAoSlNDOjpKU0FycmF5Ojp1bnNoaWZ0Q291bnRXaXRoQW55SW5kZXhpbmdUeXBl
KToKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nSm9pbmVyLmNwcDoKKyAgICAgICAgKEpTQzo6
SlNTdHJpbmdKb2luZXI6OmpvaW5lZExlbmd0aCBjb25zdCk6CisgICAgICAgICogd2FzbS9XYXNt
Rm9ybWF0LmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6U2VnbWVudDo6Y3JlYXRlKToKKyAgICAg
ICAgKiB3YXNtL1dhc21PcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6SlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKToKKyAgICAgICAgKiB3YXNtL1dhc21UYWJsZS5jcHA6CisgICAg
ICAgIChKU0M6Oldhc206OlRhYmxlOjpncm93KToKKwogMjAyMS0wNi0wMiAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBDaGVja2VkIGFsaWFzZXMgaW5zdGVh
ZCBvZiBDaGVja2VkPFQsIFJlY29yZE92ZXJmbG93PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA4NDNiZjVlYTYwZjg2NzQ3M2M1
MzE5NWEyYzZmYWQ1NDYwNWRhNDdmLi4zODQ5ODE0YjNmNTY2OGE0ZWYzNjM4Zjg3OWQyOTgwOGZh
YzM3ZjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RG
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA2LTAyICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBDaGVja2VkOjpzYWZlR2V0KCkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjUzNworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgQ2hlY2tlZDo6
c2FmZUdldCgpIGFuZCByZXBsYWNlIHdpdGggdXNlcyBvZiBDaGVja2VkOjpvcGVyYXRvciBUKCkg
b3IgQ2hlY2tlZDo6dmFsdWUoKS4KKyAgICAgICAgc2FmZUdldCgpIGlzIGEgYml0IGFrd2FyZCwg
aGF2aW5nIGJvdGggYSByZXR1cm4gdmFsdWUgYW5kIGFuIG91dC1wYXJhbWV0ZXIuCisKKyAgICAg
ICAgKiB3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaDoKKyAgICAgICAgKFdURjo6Q2hlY2tlZDo6dmFs
dWUgY29uc3QpOgorICAgICAgICAoV1RGOjpvcGVyYXRvcispOgorICAgICAgICAoV1RGOjpvcGVy
YXRvci0pOgorICAgICAgICAoV1RGOjpvcGVyYXRvciopOgorICAgICAgICAoV1RGOjpvcGVyYXRv
ci8pOgorCiAyMDIxLTA2LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgVXNlIENoZWNrZWQgYWxpYXNlcyBpbnN0ZWFkIG9mIENoZWNrZWQ8VCwgUmVjb3JkT3Zl
cmZsb3c+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDIwYjc2N2ZiMDRhZGE1ZmFlZDYwMjk0ODFhNWE5ZmQ0ZTllYzFk
NWUuLjY0N2IyNDIzYWEwM2FjNTdkNTA0OTY4MjA3ZDhhMWJkMzkzZDNhYmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMjEtMDYtMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KKworICAgICAgICBEcm9wIENoZWNrZWQ6OnNhZmVHZXQoKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NTM3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBDaGVja2VkOjpzYWZlR2V0KCkgYW5k
IHJlcGxhY2Ugd2l0aCB1c2VzIG9mIENoZWNrZWQ6Om9wZXJhdG9yIFQoKSBvciBDaGVja2VkOjp2
YWx1ZSgpLgorICAgICAgICBzYWZlR2V0KCkgaXMgYSBiaXQgYWt3YXJkLCBoYXZpbmcgYm90aCBh
IHJldHVybiB2YWx1ZSBhbmQgYW4gb3V0LXBhcmFtZXRlci4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvVGV4dENoZWNrZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyOjp1
cGRhdGVTcGVsbGluZ1VJV2l0aEdyYW1tYXJTdHJpbmcpOgorCiAyMDIxLTA2LTAyICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIENoZWNrZWQgYWxpYXNlcyBp
bnN0ZWFkIG9mIENoZWNrZWQ8VCwgUmVjb3JkT3ZlcmZsb3c+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5k
ZXggNWZmMmFlNTFjM2E2YmVjYTYyMjhkMjY4NWFjOGE0ZDM3YmRmMDM1YS4uZDYwMjUxYmUyZGY1
YjE3Mzg4OGMzYzU4YzFmZGUzNWNiMzY3YWEyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtMjU1
Myw4ICsyNTUzLDggQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBl
Pjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKIAogICAgICAgICAgICAgQ2hl
Y2tlZFVpbnQzMiBhcmd1bWVudEluZGV4Q2hlY2tlZCA9IGluZGV4LmFzVUludDMyKCk7CiAgICAg
ICAgICAgICBhcmd1bWVudEluZGV4Q2hlY2tlZCArPSBub2RlLT5udW1iZXJPZkFyZ3VtZW50c1Rv
U2tpcCgpOwotICAgICAgICAgICAgdW5zaWduZWQgYXJndW1lbnRJbmRleDsKLSAgICAgICAgICAg
IGlmIChhcmd1bWVudEluZGV4Q2hlY2tlZC5zYWZlR2V0KGFyZ3VtZW50SW5kZXgpICE9IENoZWNr
ZWRTdGF0ZTo6RGlkT3ZlcmZsb3cpIHsKKyAgICAgICAgICAgIGlmICghYXJndW1lbnRJbmRleENo
ZWNrZWQuaGFzT3ZlcmZsb3dlZCgpKSB7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgYXJndW1l
bnRJbmRleCA9IGFyZ3VtZW50SW5kZXhDaGVja2VkOwogICAgICAgICAgICAgICAgIGlmIChpbmxp
bmVDYWxsRnJhbWUpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGFyZ3VtZW50SW5kZXggPCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudENvdW50SW5jbHVk
aW5nVGhpcyAtIDEpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBzZXRGb3JOb2RlKG5vZGUs
IG1fc3RhdGUub3BlcmFuZCgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5j
cHAKaW5kZXggMmE5MWNlMmM5NjYzY2I3ODAzYzlmMDFkYzg4YzQ4ZTllZmM5MzEwMS4uMzIxMmU5
NmVlMjVmMGI5YjQ2N2QwZDNmM2E4ZmVhOTdkNzdjMGExYiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKQEAgLTUwNywxMSArNTA3LDExIEBAIGJvb2wgSlNBcnJh
eTo6YXBwZW5kTWVtY3B5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2bSwgdW5z
aWduZWQgc3RhcnRJCiAgICAgQ2hlY2tlZFVpbnQzMiBjaGVja2VkTmV3TGVuZ3RoID0gc3RhcnRJ
bmRleDsKICAgICBjaGVja2VkTmV3TGVuZ3RoICs9IG90aGVyTGVuZ3RoOwogCi0gICAgdW5zaWdu
ZWQgbmV3TGVuZ3RoOwotICAgIGlmIChjaGVja2VkTmV3TGVuZ3RoLnNhZmVHZXQobmV3TGVuZ3Ro
KSA9PSBDaGVja2VkU3RhdGU6OkRpZE92ZXJmbG93KSB7CisgICAgaWYgKGNoZWNrZWROZXdMZW5n
dGguaGFzT3ZlcmZsb3dlZCgpKSB7CiAgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVj
dCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IoZ2xvYmFsT2JqZWN0LCBMZW5ndGhFeGNlZWRlZFRo
ZU1heGltdW1BcnJheUxlbmd0aEVycm9yKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CisgICAgdW5zaWduZWQgbmV3TGVuZ3RoID0gY2hlY2tlZE5ld0xlbmd0aDsKIAogICAgIGlmIChu
ZXdMZW5ndGggPj0gTUlOX1NQQVJTRV9BUlJBWV9JTkRFWCkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMTA0MywxMSArMTA0MywxMSBAQCBib29sIEpTQXJyYXk6OnVuc2hpZnRDb3VudFdpdGhB
bnlJbmRleGluZ1R5cGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdW5zaQogCiAgICAg
ICAgIENoZWNrZWRVaW50MzIgY2hlY2tlZExlbmd0aChvbGRMZW5ndGgpOwogICAgICAgICBjaGVj
a2VkTGVuZ3RoICs9IGNvdW50OwotICAgICAgICB1bnNpZ25lZCBuZXdMZW5ndGg7Ci0gICAgICAg
IGlmIChDaGVja2VkU3RhdGU6OkRpZE92ZXJmbG93ID09IGNoZWNrZWRMZW5ndGguc2FmZUdldChu
ZXdMZW5ndGgpKSB7CisgICAgICAgIGlmIChjaGVja2VkTGVuZ3RoLmhhc092ZXJmbG93ZWQoKSkg
ewogICAgICAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUp
OwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KKyAgICAgICAgdW5zaWduZWQg
bmV3TGVuZ3RoID0gY2hlY2tlZExlbmd0aDsKICAgICAgICAgaWYgKG5ld0xlbmd0aCA+IE1BWF9T
VE9SQUdFX1ZFQ1RPUl9MRU5HVEgpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IGlmICghZW5zdXJlTGVuZ3RoKHZtLCBuZXdMZW5ndGgpKSB7CkBAIC0xMDkyLDExICsxMDkyLDEx
IEBAIGJvb2wgSlNBcnJheTo6dW5zaGlmdENvdW50V2l0aEFueUluZGV4aW5nVHlwZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCB1bnNpCiAKICAgICAgICAgQ2hlY2tlZFVpbnQzMiBjaGVj
a2VkTGVuZ3RoKG9sZExlbmd0aCk7CiAgICAgICAgIGNoZWNrZWRMZW5ndGggKz0gY291bnQ7Ci0g
ICAgICAgIHVuc2lnbmVkIG5ld0xlbmd0aDsKLSAgICAgICAgaWYgKENoZWNrZWRTdGF0ZTo6RGlk
T3ZlcmZsb3cgPT0gY2hlY2tlZExlbmd0aC5zYWZlR2V0KG5ld0xlbmd0aCkpIHsKKyAgICAgICAg
aWYgKGNoZWNrZWRMZW5ndGguaGFzT3ZlcmZsb3dlZCgpKSB7CiAgICAgICAgICAgICB0aHJvd091
dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgfQorICAgICAgICB1bnNpZ25lZCBuZXdMZW5ndGggPSBjaGVja2VkTGVu
Z3RoOwogICAgICAgICBpZiAobmV3TGVuZ3RoID4gTUFYX1NUT1JBR0VfVkVDVE9SX0xFTkdUSCkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKCFlbnN1cmVMZW5ndGgodm0s
IG5ld0xlbmd0aCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTU3RyaW5nSm9pbmVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Ry
aW5nSm9pbmVyLmNwcAppbmRleCA0NjVhOTc3YmEyYzBkYWJjNjI4Mzg0ZDVkMmZmNjg2NzlhMDQ1
ZGM5Li5lZWQ5MTM0YWU3MzdhNDQ2ZDI0YmQ4N2Y3YTZjMzRjOTk4NTkyMDBiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0pvaW5lci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdKb2luZXIuY3BwCkBAIC05MSwx
MyArOTEsMTEgQEAgaW5saW5lIHVuc2lnbmVkIEpTU3RyaW5nSm9pbmVyOjpqb2luZWRMZW5ndGgo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QKICAgICBDaGVja2VkSW50MzIgc2Vw
YXJhdG9yTGVuZ3RoID0gbV9zZXBhcmF0b3IubGVuZ3RoKCk7CiAgICAgQ2hlY2tlZEludDMyIHRv
dGFsU2VwYXJhdG9yc0xlbmd0aCA9IHNlcGFyYXRvckxlbmd0aCAqIChudW1iZXJPZlN0cmluZ3Mg
LSAxKTsKICAgICBDaGVja2VkSW50MzIgdG90YWxMZW5ndGggPSB0b3RhbFNlcGFyYXRvcnNMZW5n
dGggKyBtX2FjY3VtdWxhdGVkU3RyaW5nc0xlbmd0aDsKLQotICAgIGludDMyX3QgcmVzdWx0Owot
ICAgIGlmICh0b3RhbExlbmd0aC5zYWZlR2V0KHJlc3VsdCkgPT0gQ2hlY2tlZFN0YXRlOjpEaWRP
dmVyZmxvdykgeworICAgIGlmICh0b3RhbExlbmd0aC5oYXNPdmVyZmxvd2VkKCkpIHsKICAgICAg
ICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwogICAgICAgICBy
ZXR1cm4gMDsKICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gdG90YWxMZW5n
dGg7CiB9CiAKIEpTVmFsdWUgSlNTdHJpbmdKb2luZXI6OmpvaW4oSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21G
b3JtYXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5jcHAKaW5k
ZXggMzJjNzRhODI0ZGI2YjljNTdlZmU1ZjJjYzgyZWVhYWUxMmNjZmJhYy4uNTBkNzNhNzIwOWY5
ZjFlYzRmYmYyNjRjZTRiNjZhN2ZmYmEzZjRjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUZvcm1hdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUZvcm1hdC5jcHAKQEAgLTM4LDEwICszOCw5IEBAIFNlZ21lbnQ6OlB0ciBTZWdtZW50
OjpjcmVhdGUoc3RkOjpvcHRpb25hbDxJMzJJbml0RXhwcj4gb2Zmc2V0LCB1aW50MzJfdCBzaXpl
SW5CCiB7CiAgICAgQ2hlY2tlZFVpbnQzMiB0b3RhbEJ5dGVzQ2hlY2tlZCA9IHNpemVJbkJ5dGVz
OwogICAgIHRvdGFsQnl0ZXNDaGVja2VkICs9IHNpemVvZihTZWdtZW50KTsKLSAgICB1aW50MzJf
dCB0b3RhbEJ5dGVzOwotICAgIGlmICh0b3RhbEJ5dGVzQ2hlY2tlZC5zYWZlR2V0KHRvdGFsQnl0
ZXMpID09IENoZWNrZWRTdGF0ZTo6RGlkT3ZlcmZsb3cpCisgICAgaWYgKHRvdGFsQnl0ZXNDaGVj
a2VkLmhhc092ZXJmbG93ZWQoKSkKICAgICAgICAgcmV0dXJuIFB0cihudWxscHRyLCAmU2VnbWVu
dDo6ZGVzdHJveSk7Ci0gICAgYXV0byBhbGxvY2F0ZWQgPSB0cnlGYXN0Q2FsbG9jKHRvdGFsQnl0
ZXMsIDEpOworICAgIGF1dG8gYWxsb2NhdGVkID0gdHJ5RmFzdENhbGxvYyh0b3RhbEJ5dGVzQ2hl
Y2tlZCwgMSk7CiAgICAgU2VnbWVudCogc2VnbWVudDsKICAgICBpZiAoIWFsbG9jYXRlZC5nZXRW
YWx1ZShzZWdtZW50KSkKICAgICAgICAgcmV0dXJuIFB0cihudWxscHRyLCAmU2VnbWVudDo6ZGVz
dHJveSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0
aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAK
aW5kZXggZWVhOTc0ZmQ2YjAxODVhZjg5MjhmOTkzZGRmYjgzYTc5ODE1MGMwZC4uYjU3OGU5YjY4
ZDNkOTBhOTQyYmI2MTA1OGE5N2FhZDQ1NjE0YzlhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcApAQCAtNzkxLDIxICs3OTEsMTkgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUNvcHksIGJvb2wsIChJbnN0YW5j
ZSogaW5zdGFuY2UsIHVuc2kKICAgICBDaGVja2VkVWludDMyIGxhc3REc3RFbGVtZW50SW5kZXhD
aGVja2VkID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGRzdE9mZnNldCk7CiAgICAgbGFzdERzdEVs
ZW1lbnRJbmRleENoZWNrZWQgKz0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGxlbmd0aCk7CiAKLSAg
ICB1aW50MzJfdCBsYXN0RHN0RWxlbWVudEluZGV4OwotICAgIGlmIChsYXN0RHN0RWxlbWVudElu
ZGV4Q2hlY2tlZC5zYWZlR2V0KGxhc3REc3RFbGVtZW50SW5kZXgpID09IENoZWNrZWRTdGF0ZTo6
RGlkT3ZlcmZsb3cpCisgICAgaWYgKGxhc3REc3RFbGVtZW50SW5kZXhDaGVja2VkLmhhc092ZXJm
bG93ZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGxhc3REc3RFbGVtZW50
SW5kZXggPiBkc3RUYWJsZS0+bGVuZ3RoKCkpCisgICAgaWYgKGxhc3REc3RFbGVtZW50SW5kZXhD
aGVja2VkID4gZHN0VGFibGUtPmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBDaGVja2VkVWludDMyIGxhc3RTcmNFbGVtZW50SW5kZXhDaGVja2VkID0gc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KHNyY09mZnNldCk7CiAgICAgbGFzdFNyY0VsZW1lbnRJbmRleENoZWNrZWQgKz0g
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KGxlbmd0aCk7CiAKLSAgICB1aW50MzJfdCBsYXN0U3JjRWxl
bWVudEluZGV4OwotICAgIGlmIChsYXN0U3JjRWxlbWVudEluZGV4Q2hlY2tlZC5zYWZlR2V0KGxh
c3RTcmNFbGVtZW50SW5kZXgpID09IENoZWNrZWRTdGF0ZTo6RGlkT3ZlcmZsb3cpCisgICAgaWYg
KGxhc3RTcmNFbGVtZW50SW5kZXhDaGVja2VkLmhhc092ZXJmbG93ZWQoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgaWYgKGxhc3RTcmNFbGVtZW50SW5kZXggPiBzcmNUYWJsZS0+bGVu
Z3RoKCkpCisgICAgaWYgKGxhc3RTcmNFbGVtZW50SW5kZXhDaGVja2VkID4gc3JjVGFibGUtPmxl
bmd0aCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpbnN0YW5jZS0+dGFibGVDb3B5
KGRzdE9mZnNldCwgc3JjT2Zmc2V0LCBsZW5ndGgsIGRzdFRhYmxlSW5kZXgsIHNyY1RhYmxlSW5k
ZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVRhYmxlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21UYWJsZS5jcHAKaW5kZXggNTU2OGVk
NmE0OTUxYWIwNjg0YjEyNGQwMmQ3OGU5ZTIxNDIxNTNlMS4uODEyNjhjZjVjZWNhYTEyMTJjMjQ3
NDBmZDdmMzQyMjEwMGVlZmE2MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbVRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVGFi
bGUuY3BwCkBAIC04OSwxMCArODksMTAgQEAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gVGFibGU6
Omdyb3codWludDMyX3QgZGVsdGEsIEpTVmFsdWUgZGVmYXVsdFZhbHVlKQogCiAgICAgQ2hlY2tl
ZFVpbnQzMiBuZXdMZW5ndGhDaGVja2VkID0gbGVuZ3RoKCk7CiAgICAgbmV3TGVuZ3RoQ2hlY2tl
ZCArPSBkZWx0YTsKLSAgICB1aW50MzJfdCBuZXdMZW5ndGg7Ci0gICAgaWYgKG5ld0xlbmd0aENo
ZWNrZWQuc2FmZUdldChuZXdMZW5ndGgpID09IENoZWNrZWRTdGF0ZTo6RGlkT3ZlcmZsb3cpCisg
ICAgaWYgKG5ld0xlbmd0aENoZWNrZWQuaGFzT3ZlcmZsb3dlZCgpKQogICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogCisgICAgdWludDMyX3QgbmV3TGVuZ3RoID0gbmV3TGVuZ3RoQ2hlY2tl
ZDsKICAgICBpZiAobWF4aW11bSgpICYmIG5ld0xlbmd0aCA+ICptYXhpbXVtKCkpCiAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgaWYgKCFpc1ZhbGlkTGVuZ3RoKG5ld0xlbmd0aCkp
CkBAIC0xMDIsMTEgKzEwMiwxMCBAQCBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBUYWJsZTo6Z3Jv
dyh1aW50MzJfdCBkZWx0YSwgSlNWYWx1ZSBkZWZhdWx0VmFsdWUpCiAgICAgICAgIGlmIChuZXdM
ZW5ndGhDaGVja2VkID4gYWxsb2NhdGVkTGVuZ3RoKG1fbGVuZ3RoKSkgewogICAgICAgICAgICAg
Q2hlY2tlZFVpbnQzMiByZWFsbG9jU2l6ZUNoZWNrZWQgPSBhbGxvY2F0ZWRMZW5ndGgobmV3TGVu
Z3RoQ2hlY2tlZCk7CiAgICAgICAgICAgICByZWFsbG9jU2l6ZUNoZWNrZWQgKj0gc2l6ZW9mKCpj
b250YWluZXIuZ2V0KCkpOwotICAgICAgICAgICAgdWludDMyX3QgcmVhbGxvY1NpemU7Ci0gICAg
ICAgICAgICBpZiAocmVhbGxvY1NpemVDaGVja2VkLnNhZmVHZXQocmVhbGxvY1NpemUpID09IENo
ZWNrZWRTdGF0ZTo6RGlkT3ZlcmZsb3cpCisgICAgICAgICAgICBpZiAocmVhbGxvY1NpemVDaGVj
a2VkLmhhc092ZXJmbG93ZWQoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgICAgICAvLyBGSVhNRSB0aGlzIG92ZXItYWxsb2NhdGVzIGFuZCBjb3VsZCBiZSBzbWFydGVy
IGFib3V0IG5vdCBjb21taXR0aW5nIGFsbCBvZiB0aGF0IG1lbW9yeSBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxNDI1Ci0gICAgICAgICAgICBjb250YWluZXIucmVh
bGxvYyhyZWFsbG9jU2l6ZSk7CisgICAgICAgICAgICBjb250YWluZXIucmVhbGxvYyhyZWFsbG9j
U2l6ZUNoZWNrZWQpOwogICAgICAgICB9CiAgICAgICAgIGZvciAodWludDMyX3QgaSA9IG1fbGVu
Z3RoOyBpIDwgYWxsb2NhdGVkTGVuZ3RoKG5ld0xlbmd0aCk7ICsraSkgewogICAgICAgICAgICAg
bmV3ICgmY29udGFpbmVyLmdldCgpW2ldKSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2VfdDxkZWNsdHlw
ZSgqY29udGFpbmVyLmdldCgpKT4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NoZWNr
ZWRBcml0aG1ldGljLmggYi9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkQXJpdGhtZXRpYy5oCmluZGV4
IDkyZGQzZjg0YjY5OTA5YzMyOWJjNjIzOWI4NTIyOWM2YzgzNzA5OWUuLjE4NWQ1MWIyYjZkOWNj
NDAzMWRhZmM1Y2E2ZjU2NjdiNzQyM2IwNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0No
ZWNrZWRBcml0aG1ldGljLmgKKysrIGIvU291cmNlL1dURi93dGYvQ2hlY2tlZEFyaXRobWV0aWMu
aApAQCAtNzU0LDE0ICs3NTQsNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICB0aGlzLT5jcmFzaCgp
OwogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VT4obV92YWx1ZSk7CiAgICAgfQotICAgIAot
ICAgIGlubGluZSBDaGVja2VkU3RhdGUgc2FmZUdldChUJiB2YWx1ZSkgY29uc3QgV0FSTl9VTlVT
RURfUkVUVVJOCi0gICAgewotICAgICAgICB2YWx1ZSA9IG1fdmFsdWU7Ci0gICAgICAgIGlmICh0
aGlzLT5oYXNPdmVyZmxvd2VkKCkpCi0gICAgICAgICAgICByZXR1cm4gQ2hlY2tlZFN0YXRlOjpE
aWRPdmVyZmxvdzsKLSAgICAgICAgcmV0dXJuIENoZWNrZWRTdGF0ZTo6RGlkTm90T3ZlcmZsb3c7
Ci0gICAgfQogCiAgICAgLy8gTXV0YXRpbmcgYXNzaWdubWVudAogICAgIHRlbXBsYXRlIDx0eXBl
bmFtZSBVPiBDaGVja2VkJiBvcGVyYXRvcis9KFUgcmhzKQpAQCAtODcyLDQ4ICs4NjQsNDAgQEAg
cHJpdmF0ZToKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIE92
ZXJmbG93SGFuZGxlcj4gc3RhdGljIGlubGluZSBDaGVja2VkPHR5cGVuYW1lIFJlc3VsdDxVLCBW
Pjo6UmVzdWx0VHlwZSwgT3ZlcmZsb3dIYW5kbGVyPiBvcGVyYXRvcisoQ2hlY2tlZDxVLCBPdmVy
Zmxvd0hhbmRsZXI+IGxocywgQ2hlY2tlZDxWLCBPdmVyZmxvd0hhbmRsZXI+IHJocykKIHsKLSAg
ICBVIHggPSAwOwotICAgIFYgeSA9IDA7Ci0gICAgYm9vbCBvdmVyZmxvd2VkID0gbGhzLnNhZmVH
ZXQoeCkgPT0gQ2hlY2tlZFN0YXRlOjpEaWRPdmVyZmxvdyB8fCByaHMuc2FmZUdldCh5KSA9PSBD
aGVja2VkU3RhdGU6OkRpZE92ZXJmbG93OworICAgIGlmIChVTkxJS0VMWShsaHMuaGFzT3ZlcmZs
b3dlZCgpIHx8IHJocy5oYXNPdmVyZmxvd2VkKCkpKQorICAgICAgICByZXR1cm4gUmVzdWx0T3Zl
cmZsb3dlZDsKICAgICB0eXBlbmFtZSBSZXN1bHQ8VSwgVj46OlJlc3VsdFR5cGUgcmVzdWx0ID0g
MDsKLSAgICBvdmVyZmxvd2VkIHw9ICFzYWZlQWRkPE92ZXJmbG93SGFuZGxlcj4oeCwgeSwgcmVz
dWx0KTsKLSAgICBpZiAob3ZlcmZsb3dlZCkKKyAgICBpZiAoVU5MSUtFTFkoIXNhZmVBZGQ8T3Zl
cmZsb3dIYW5kbGVyPihsaHMudmFsdWUoKSwgcmhzLnZhbHVlKCksIHJlc3VsdCkpKQogICAgICAg
ICByZXR1cm4gUmVzdWx0T3ZlcmZsb3dlZDsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyPiBz
dGF0aWMgaW5saW5lIENoZWNrZWQ8dHlwZW5hbWUgUmVzdWx0PFUsIFY+OjpSZXN1bHRUeXBlLCBP
dmVyZmxvd0hhbmRsZXI+IG9wZXJhdG9yLShDaGVja2VkPFUsIE92ZXJmbG93SGFuZGxlcj4gbGhz
LCBDaGVja2VkPFYsIE92ZXJmbG93SGFuZGxlcj4gcmhzKQogewotICAgIFUgeCA9IDA7Ci0gICAg
ViB5ID0gMDsKLSAgICBib29sIG92ZXJmbG93ZWQgPSBsaHMuc2FmZUdldCh4KSA9PSBDaGVja2Vk
U3RhdGU6OkRpZE92ZXJmbG93IHx8IHJocy5zYWZlR2V0KHkpID09IENoZWNrZWRTdGF0ZTo6RGlk
T3ZlcmZsb3c7CisgICAgaWYgKFVOTElLRUxZKGxocy5oYXNPdmVyZmxvd2VkKCkgfHwgcmhzLmhh
c092ZXJmbG93ZWQoKSkpCisgICAgICAgIHJldHVybiBSZXN1bHRPdmVyZmxvd2VkOwogICAgIHR5
cGVuYW1lIFJlc3VsdDxVLCBWPjo6UmVzdWx0VHlwZSByZXN1bHQgPSAwOwotICAgIG92ZXJmbG93
ZWQgfD0gIXNhZmVTdWI8T3ZlcmZsb3dIYW5kbGVyPih4LCB5LCByZXN1bHQpOwotICAgIGlmIChv
dmVyZmxvd2VkKQorICAgIGlmIChVTkxJS0VMWSghc2FmZVN1YjxPdmVyZmxvd0hhbmRsZXI+KGxo
cy52YWx1ZSgpLCByaHMudmFsdWUoKSwgcmVzdWx0KSkpCiAgICAgICAgIHJldHVybiBSZXN1bHRP
dmVyZmxvd2VkOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBV
LCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXI+IHN0YXRpYyBpbmxpbmUgQ2hl
Y2tlZDx0eXBlbmFtZSBSZXN1bHQ8VSwgVj46OlJlc3VsdFR5cGUsIE92ZXJmbG93SGFuZGxlcj4g
b3BlcmF0b3IqKENoZWNrZWQ8VSwgT3ZlcmZsb3dIYW5kbGVyPiBsaHMsIENoZWNrZWQ8ViwgT3Zl
cmZsb3dIYW5kbGVyPiByaHMpCiB7Ci0gICAgVSB4ID0gMDsKLSAgICBWIHkgPSAwOwotICAgIGJv
b2wgb3ZlcmZsb3dlZCA9IGxocy5zYWZlR2V0KHgpID09IENoZWNrZWRTdGF0ZTo6RGlkT3ZlcmZs
b3cgfHwgcmhzLnNhZmVHZXQoeSkgPT0gQ2hlY2tlZFN0YXRlOjpEaWRPdmVyZmxvdzsKKyAgICBp
ZiAoVU5MSUtFTFkobGhzLmhhc092ZXJmbG93ZWQoKSB8fCByaHMuaGFzT3ZlcmZsb3dlZCgpKSkK
KyAgICAgICAgcmV0dXJuIFJlc3VsdE92ZXJmbG93ZWQ7CiAgICAgdHlwZW5hbWUgUmVzdWx0PFUs
IFY+OjpSZXN1bHRUeXBlIHJlc3VsdCA9IDA7Ci0gICAgb3ZlcmZsb3dlZCB8PSAhc2FmZU11bHRp
cGx5PE92ZXJmbG93SGFuZGxlcj4oeCwgeSwgcmVzdWx0KTsKLSAgICBpZiAob3ZlcmZsb3dlZCkK
KyAgICBpZiAoVU5MSUtFTFkoIXNhZmVNdWx0aXBseTxPdmVyZmxvd0hhbmRsZXI+KGxocy52YWx1
ZSgpLCByaHMudmFsdWUoKSwgcmVzdWx0KSkpCiAgICAgICAgIHJldHVybiBSZXN1bHRPdmVyZmxv
d2VkOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBVLCB0eXBl
bmFtZSBWLCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXI+IHN0YXRpYyBpbmxpbmUgQ2hlY2tlZDx0
eXBlbmFtZSBSZXN1bHQ8VSwgVj46OlJlc3VsdFR5cGUsIE92ZXJmbG93SGFuZGxlcj4gb3BlcmF0
b3IvKENoZWNrZWQ8VSwgT3ZlcmZsb3dIYW5kbGVyPiBsaHMsIENoZWNrZWQ8ViwgT3ZlcmZsb3dI
YW5kbGVyPiByaHMpCiB7Ci0gICAgVSB4ID0gMDsKLSAgICBWIHkgPSAwOwotICAgIGJvb2wgb3Zl
cmZsb3dlZCA9IGxocy5zYWZlR2V0KHgpID09IENoZWNrZWRTdGF0ZTo6RGlkT3ZlcmZsb3cgfHwg
cmhzLnNhZmVHZXQoeSkgPT0gQ2hlY2tlZFN0YXRlOjpEaWRPdmVyZmxvdzsKKyAgICBpZiAoVU5M
SUtFTFkobGhzLmhhc092ZXJmbG93ZWQoKSB8fCByaHMuaGFzT3ZlcmZsb3dlZCgpKSkKKyAgICAg
ICAgcmV0dXJuIFJlc3VsdE92ZXJmbG93ZWQ7CiAgICAgdHlwZW5hbWUgUmVzdWx0PFUsIFY+OjpS
ZXN1bHRUeXBlIHJlc3VsdCA9IDA7Ci0gICAgb3ZlcmZsb3dlZCB8PSAhc2FmZURpdmlkZTxPdmVy
Zmxvd0hhbmRsZXI+KHgsIHksIHJlc3VsdCk7Ci0gICAgaWYgKG92ZXJmbG93ZWQpCisgICAgaWYg
KFVOTElLRUxZKCFzYWZlRGl2aWRlPE92ZXJmbG93SGFuZGxlcj4obGhzLnZhbHVlKCksIHJocy52
YWx1ZSgpLCByZXN1bHQpKSkKICAgICAgICAgcmV0dXJuIFJlc3VsdE92ZXJmbG93ZWQ7CiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9UZXh0Q2hlY2tlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9UZXh0Q2hl
Y2tlck1hYy5tbQppbmRleCBhNGY1Njg3MTY0ZGNmOTdiMjViYjA3MjQyNTUxNjMyMDhiZGY3MTZj
Li40Y2MyMmRmMDMwODI1MGJlMjUwNjE2MjEyYzU4MDMwN2UyMDMxMDIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGV4dENoZWNrZXJNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1RleHRDaGVja2VyTWFjLm1tCkBAIC00NDAsOCArNDQwLDcg
QEAgdm9pZCBUZXh0Q2hlY2tlcjo6dXBkYXRlU3BlbGxpbmdVSVdpdGhHcmFtbWFyU3RyaW5nKFNw
ZWxsRG9jdW1lbnRUYWcsIGNvbnN0IFN0cmkKICAgICBDaGVja2VkVWludDY0IGVuZE9mUmFuZ2VD
aGVja2VkID0gZ3JhbW1hckRldGFpbC5yYW5nZS5sb2NhdGlvbjsKICAgICBlbmRPZlJhbmdlQ2hl
Y2tlZCArPSBncmFtbWFyRGV0YWlsLnJhbmdlLmxlbmd0aDsKIAotICAgIHVpbnQ2NF90IGVuZE9m
UmFuZ2U7Ci0gICAgaWYgKGVuZE9mUmFuZ2VDaGVja2VkLnNhZmVHZXQoZW5kT2ZSYW5nZSkgPT0g
Q2hlY2tlZFN0YXRlOjpEaWRPdmVyZmxvdyB8fCBlbmRPZlJhbmdlID49IGJhZEdyYW1tYXJQaHJh
c2UubGVuZ3RoKCkpCisgICAgaWYgKGVuZE9mUmFuZ2VDaGVja2VkLmhhc092ZXJmbG93ZWQoKSB8
fCBlbmRPZlJhbmdlQ2hlY2tlZCA+PSBiYWRHcmFtbWFyUGhyYXNlLmxlbmd0aCgpKQogICAgICAg
ICByZXR1cm47CiAKICAgICBOU0RpY3Rpb25hcnkgKmRldGFpbCA9IEB7CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzczYzRlMzc4ODU0ZjRlN2U3
Y2Y3OGM3ZjIzZDljOGJiMWI2OTRkMy4uMzE2Y2FhMGZjOTI1MzU5NDc1OWY5NTA4MzkzOTEwNjIw
OTNkZmU1MiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTA2LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgRHJvcCBDaGVja2VkOjpzYWZlR2V0KCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjUzNworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgQ2hlY2tlZDo6c2FmZUdldCgp
IGFuZCByZXBsYWNlIHdpdGggdXNlcyBvZiBDaGVja2VkOjpvcGVyYXRvciBUKCkgb3IgQ2hlY2tl
ZDo6dmFsdWUoKS4KKyAgICAgICAgc2FmZUdldCgpIGlzIGEgYml0IGFrd2FyZCwgaGF2aW5nIGJv
dGggYSByZXR1cm4gdmFsdWUgYW5kIGFuIG91dC1wYXJhbWV0ZXIuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6Q2hlY2tlZEFyaXRobWV0aWNUZXN0ZXI6OnJ1bik6CisKIDIw
MjEtMDUtMjMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRk
IENoZWNrZWRQdHIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0No
ZWNrZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9DaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwCmluZGV4IGM0NGE3MGI3NTVlOWMx
NTY3NDkxMjQ3OGM3ZGQ2OThmMTU0ODdiZTguLjY4OGJhODJhODI0ZDMyNzc4M2JjNDVkNmMxZGY3
N2ZiZTk2OGNhZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0No
ZWNrZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvQ2hlY2tlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcApAQCAtMTI5LDQxICsxMjks
MjYgQEAgcHVibGljOgogICAgICAgICBFWFBFQ1RfRVEodHJ1ZSwgdmFsdWUuaGFzT3ZlcmZsb3dl
ZCgpKTsKIAogICAgICAgICB2YWx1ZSA9IDEwOwotICAgICAgICB0eXBlIF92YWx1ZSA9IDA7Ci0g
ICAgICAgIEVYUEVDVF9FUSh0cnVlLCBDaGVja2VkU3RhdGU6OkRpZE5vdE92ZXJmbG93ID09ICh2
YWx1ZSAqIENoZWNrZWQ8dHlwZSwgUmVjb3JkT3ZlcmZsb3c+KDApKS5zYWZlR2V0KF92YWx1ZSkp
OwotICAgICAgICBfdmFsdWUgPSAwOwotICAgICAgICBFWFBFQ1RfRVEodHJ1ZSwgQ2hlY2tlZFN0
YXRlOjpEaWROb3RPdmVyZmxvdyA9PSAoQ2hlY2tlZDx0eXBlLCBSZWNvcmRPdmVyZmxvdz4oMCkg
KiB2YWx1ZSkuc2FmZUdldChfdmFsdWUpKTsKLSAgICAgICAgX3ZhbHVlID0gMDsKLSAgICAgICAg
RVhQRUNUX0VRKHRydWUsIENoZWNrZWRTdGF0ZTo6RGlkT3ZlcmZsb3cgPT0gKHZhbHVlICogQ2hl
Y2tlZDx0eXBlLCBSZWNvcmRPdmVyZmxvdz4oc3RkOjpudW1lcmljX2xpbWl0czx0eXBlPjo6bWF4
KCkpKS5zYWZlR2V0KF92YWx1ZSkpOwotICAgICAgICBfdmFsdWUgPSAwOwotICAgICAgICBFWFBF
Q1RfRVEodHJ1ZSwgQ2hlY2tlZFN0YXRlOjpEaWRPdmVyZmxvdyA9PSAoQ2hlY2tlZDx0eXBlLCBS
ZWNvcmRPdmVyZmxvdz4oc3RkOjpudW1lcmljX2xpbWl0czx0eXBlPjo6bWF4KCkpICogdmFsdWUp
LnNhZmVHZXQoX3ZhbHVlKSk7CisgICAgICAgIEVYUEVDVF9GQUxTRSgodmFsdWUgKiBDaGVja2Vk
PHR5cGUsIFJlY29yZE92ZXJmbG93PigwKSkuaGFzT3ZlcmZsb3dlZCgpKTsKKyAgICAgICAgRVhQ
RUNUX0ZBTFNFKChDaGVja2VkPHR5cGUsIFJlY29yZE92ZXJmbG93PigwKSAqIHZhbHVlKS5oYXNP
dmVyZmxvd2VkKCkpOworICAgICAgICBFWFBFQ1RfVFJVRSgodmFsdWUgKiBDaGVja2VkPHR5cGUs
IFJlY29yZE92ZXJmbG93PihzdGQ6Om51bWVyaWNfbGltaXRzPHR5cGU+OjptYXgoKSkpLmhhc092
ZXJmbG93ZWQoKSk7CisgICAgICAgIEVYUEVDVF9UUlVFKChDaGVja2VkPHR5cGUsIFJlY29yZE92
ZXJmbG93PihzdGQ6Om51bWVyaWNfbGltaXRzPHR5cGU+OjptYXgoKSkgKiB2YWx1ZSkuaGFzT3Zl
cmZsb3dlZCgpKTsKICAgICAgICAgdmFsdWUgPSAwOwotICAgICAgICBfdmFsdWUgPSAwOwotICAg
ICAgICBFWFBFQ1RfRVEodHJ1ZSwgQ2hlY2tlZFN0YXRlOjpEaWROb3RPdmVyZmxvdyA9PSAodmFs
dWUgKiBDaGVja2VkPHR5cGUsIFJlY29yZE92ZXJmbG93PihzdGQ6Om51bWVyaWNfbGltaXRzPHR5
cGU+OjptYXgoKSkpLnNhZmVHZXQoX3ZhbHVlKSk7Ci0gICAgICAgIF92YWx1ZSA9IDA7Ci0gICAg
ICAgIEVYUEVDVF9FUSh0cnVlLCBDaGVja2VkU3RhdGU6OkRpZE5vdE92ZXJmbG93ID09IChDaGVj
a2VkPHR5cGUsIFJlY29yZE92ZXJmbG93PihzdGQ6Om51bWVyaWNfbGltaXRzPHR5cGU+OjptYXgo
KSkgKiB2YWx1ZSkuc2FmZUdldChfdmFsdWUpKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKCh2YWx1
ZSAqIENoZWNrZWQ8dHlwZSwgUmVjb3JkT3ZlcmZsb3c+KHN0ZDo6bnVtZXJpY19saW1pdHM8dHlw
ZT46Om1heCgpKSkuaGFzT3ZlcmZsb3dlZCgpKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKChDaGVj
a2VkPHR5cGUsIFJlY29yZE92ZXJmbG93PihzdGQ6Om51bWVyaWNfbGltaXRzPHR5cGU+OjptYXgo
KSkgKiB2YWx1ZSkuaGFzT3ZlcmZsb3dlZCgpKTsKICAgICAgICAgdmFsdWUgPSAxOwotICAgICAg
ICBfdmFsdWUgPSAwOwotICAgICAgICBFWFBFQ1RfRVEodHJ1ZSwgQ2hlY2tlZFN0YXRlOjpEaWRO
b3RPdmVyZmxvdyA9PSAodmFsdWUgKiBDaGVja2VkPHR5cGUsIFJlY29yZE92ZXJmbG93PihzdGQ6
Om51bWVyaWNfbGltaXRzPHR5cGU+OjptYXgoKSkpLnNhZmVHZXQoX3ZhbHVlKSk7Ci0gICAgICAg
IF92YWx1ZSA9IDA7Ci0gICAgICAgIEVYUEVDVF9FUSh0cnVlLCBDaGVja2VkU3RhdGU6OkRpZE5v
dE92ZXJmbG93ID09IChDaGVja2VkPHR5cGUsIFJlY29yZE92ZXJmbG93PihzdGQ6Om51bWVyaWNf
bGltaXRzPHR5cGU+OjptYXgoKSkgKiB2YWx1ZSkuc2FmZUdldChfdmFsdWUpKTsKLSAgICAgICAg
X3ZhbHVlID0gMDsKLSAgICAgICAgdmFsdWUgPSAwOwotICAgICAgICBFWFBFQ1RfRVEodHJ1ZSwg
Q2hlY2tlZFN0YXRlOjpEaWROb3RPdmVyZmxvdyA9PSAodmFsdWUgKiBDaGVja2VkPHR5cGUsIFJl
Y29yZE92ZXJmbG93PihzdGQ6Om51bWVyaWNfbGltaXRzPHR5cGU+OjptYXgoKSkpLnNhZmVHZXQo
X3ZhbHVlKSk7Ci0gICAgICAgIF92YWx1ZSA9IDA7Ci0gICAgICAgIEVYUEVDVF9FUSh0cnVlLCBD
aGVja2VkU3RhdGU6OkRpZE5vdE92ZXJmbG93ID09IChDaGVja2VkPHR5cGUsIFJlY29yZE92ZXJm
bG93PihzdGQ6Om51bWVyaWNfbGltaXRzPHR5cGU+OjptYXgoKSkgKiAodHlwZSkwKS5zYWZlR2V0
KF92YWx1ZSkpOwotICAgICAgICBfdmFsdWUgPSAwOworICAgICAgICBFWFBFQ1RfRkFMU0UoKHZh
bHVlICogQ2hlY2tlZDx0eXBlLCBSZWNvcmRPdmVyZmxvdz4oc3RkOjpudW1lcmljX2xpbWl0czx0
eXBlPjo6bWF4KCkpKS5oYXNPdmVyZmxvd2VkKCkpOworICAgICAgICBFWFBFQ1RfRkFMU0UoKENo
ZWNrZWQ8dHlwZSwgUmVjb3JkT3ZlcmZsb3c+KHN0ZDo6bnVtZXJpY19saW1pdHM8dHlwZT46Om1h
eCgpKSAqIHZhbHVlKS5oYXNPdmVyZmxvd2VkKCkpOworICAgICAgICBFWFBFQ1RfRkFMU0UoKHZh
bHVlICogQ2hlY2tlZDx0eXBlLCBSZWNvcmRPdmVyZmxvdz4oc3RkOjpudW1lcmljX2xpbWl0czx0
eXBlPjo6bWF4KCkpKS5oYXNPdmVyZmxvd2VkKCkpOworICAgICAgICBFWFBFQ1RfRkFMU0UoKENo
ZWNrZWQ8dHlwZSwgUmVjb3JkT3ZlcmZsb3c+KHN0ZDo6bnVtZXJpY19saW1pdHM8dHlwZT46Om1h
eCgpKSAqICh0eXBlKTApLmhhc092ZXJmbG93ZWQoKSk7CiAgICAgICAgIHZhbHVlID0gMTsKLSAg
ICAgICAgRVhQRUNUX0VRKHRydWUsIENoZWNrZWRTdGF0ZTo6RGlkTm90T3ZlcmZsb3cgPT0gKHZh
bHVlICogQ2hlY2tlZDx0eXBlLCBSZWNvcmRPdmVyZmxvdz4oc3RkOjpudW1lcmljX2xpbWl0czx0
eXBlPjo6bWF4KCkpKS5zYWZlR2V0KF92YWx1ZSkpOwotICAgICAgICBfdmFsdWUgPSAwOwotICAg
ICAgICBFWFBFQ1RfRVEodHJ1ZSwgQ2hlY2tlZFN0YXRlOjpEaWROb3RPdmVyZmxvdyA9PSAoQ2hl
Y2tlZDx0eXBlLCBSZWNvcmRPdmVyZmxvdz4oc3RkOjpudW1lcmljX2xpbWl0czx0eXBlPjo6bWF4
KCkpICogKHR5cGUpMSkuc2FmZUdldChfdmFsdWUpKTsKLSAgICAgICAgX3ZhbHVlID0gMDsKKyAg
ICAgICAgRVhQRUNUX0ZBTFNFKCh2YWx1ZSAqIENoZWNrZWQ8dHlwZSwgUmVjb3JkT3ZlcmZsb3c+
KHN0ZDo6bnVtZXJpY19saW1pdHM8dHlwZT46Om1heCgpKSkuaGFzT3ZlcmZsb3dlZCgpKTsKKyAg
ICAgICAgRVhQRUNUX0ZBTFNFKChDaGVja2VkPHR5cGUsIFJlY29yZE92ZXJmbG93PihzdGQ6Om51
bWVyaWNfbGltaXRzPHR5cGU+OjptYXgoKSkgKiAodHlwZSkxKS5oYXNPdmVyZmxvd2VkKCkpOwog
ICAgICAgICB2YWx1ZSA9IDI7Ci0gICAgICAgIEVYUEVDVF9FUSh0cnVlLCBDaGVja2VkU3RhdGU6
OkRpZE92ZXJmbG93ID09ICh2YWx1ZSAqIENoZWNrZWQ8dHlwZSwgUmVjb3JkT3ZlcmZsb3c+KHN0
ZDo6bnVtZXJpY19saW1pdHM8dHlwZT46Om1heCgpKSkuc2FmZUdldChfdmFsdWUpKTsKLSAgICAg
ICAgX3ZhbHVlID0gMDsKLSAgICAgICAgRVhQRUNUX0VRKHRydWUsIENoZWNrZWRTdGF0ZTo6RGlk
T3ZlcmZsb3cgPT0gKENoZWNrZWQ8dHlwZSwgUmVjb3JkT3ZlcmZsb3c+KHN0ZDo6bnVtZXJpY19s
aW1pdHM8dHlwZT46Om1heCgpKSAqICh0eXBlKTIpLnNhZmVHZXQoX3ZhbHVlKSk7CisgICAgICAg
IEVYUEVDVF9UUlVFKCh2YWx1ZSAqIENoZWNrZWQ8dHlwZSwgUmVjb3JkT3ZlcmZsb3c+KHN0ZDo6
bnVtZXJpY19saW1pdHM8dHlwZT46Om1heCgpKSkuaGFzT3ZlcmZsb3dlZCgpKTsKKyAgICAgICAg
RVhQRUNUX1RSVUUoKENoZWNrZWQ8dHlwZSwgUmVjb3JkT3ZlcmZsb3c+KHN0ZDo6bnVtZXJpY19s
aW1pdHM8dHlwZT46Om1heCgpKSAqICh0eXBlKTIpLmhhc092ZXJmbG93ZWQoKSk7CiAgICAgICAg
IHZhbHVlID0gMTA7Ci0gICAgICAgIEVYUEVDVF9FUSh0cnVlLCAodmFsdWUgKiBDaGVja2VkPHR5
cGUsIFJlY29yZE92ZXJmbG93PihzdGQ6Om51bWVyaWNfbGltaXRzPHR5cGU+OjptYXgoKSkpLmhh
c092ZXJmbG93ZWQoKSk7CisgICAgICAgIEVYUEVDVF9UUlVFKCh2YWx1ZSAqIENoZWNrZWQ8dHlw
ZSwgUmVjb3JkT3ZlcmZsb3c+KHN0ZDo6bnVtZXJpY19saW1pdHM8dHlwZT46Om1heCgpKSkuaGFz
T3ZlcmZsb3dlZCgpKTsKIAogCiAgICAgICAgIENoZWNrZWQ8dHlwZSwgT3ZlcmZsb3dDcmFzaExv
Z2dlcj4gbnZhbHVlOyAvLyB0byBob2xkIGEgbm90IG92ZXJmbG93ZWQgdmFsdWUuCkBAIC0xNzIs
NyArMTU3LDcgQEAgcHVibGljOgogICAgICAgICBib29sIHVudXNlZDsKICAgICAgICAgVU5VU0VE
X1BBUkFNKHVudXNlZCk7CiAKLSAgICAgICAgX3ZhbHVlID0gNzU7CisgICAgICAgIHR5cGUgX3Zh
bHVlID0gNzU7CiAgICAgICAgIHR5cGUgX2xhcmdlVmFsdWUgPSAxMDA7CiAgICAgICAgIHR5cGUg
X3NtYWxsVmFsdWUgPSA1MDsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>