<?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>226117</bug_id>
          
          <creation_ts>2021-05-21 15:48:44 -0700</creation_ts>
          <short_desc>Stop using holdLock() in WTF as it is not compatible with Clang thread safety analysis</short_desc>
          <delta_ts>2021-05-21 17:12: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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=226116</see_also>
          <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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1762624</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-21 15:48:44 -0700</bug_when>
    <thetext>Stop using holdLock() in WTF as it is not compatible with Clang thread safety analysis.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762626</commentid>
    <comment_count>1</comment_count>
      <attachid>429354</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-21 15:51:02 -0700</bug_when>
    <thetext>Created attachment 429354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762685</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-21 17:11:45 -0700</bug_when>
    <thetext>Committed r277900 (238033@main): &lt;https://commits.webkit.org/238033@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 429354.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762686</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-21 17:12:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/78335707&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429354</attachid>
            <date>2021-05-21 15:51:02 -0700</date>
            <delta_ts>2021-05-21 17:11:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226117-20210521155102.patch</filename>
            <type>text/plain</type>
            <size>27218</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3ODk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGI1MTM5YmMwOTQwNmY5MDYxZjU1Zjkx
ZTRiNjE3Mzc0NzM2NzQ2MTguLmU4NTdkNTIxZjQ5NTFhMTVhNGEwY2FjNTkyZGFjYjg1YmMwMWFm
ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsODMgQEAKKzIwMjEtMDUtMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBTdG9wIHVzaW5nIGhvbGRMb2NrKCkgaW4gV1RGIGFzIGl0
IGlzIG5vdCBjb21wYXRpYmxlIHdpdGggQ2xhbmcgdGhyZWFkIHNhZmV0eSBhbmFseXNpcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTE3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RvcCB1c2luZyBo
b2xkTG9jaygpIGluIFdURiBhcyBpdCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIENsYW5nIHRocmVh
ZCBzYWZldHkgYW5hbHlzaXMKKyAgICAgICAgKFdURjo6Q2hlY2tlZExvY2spIGFuZCB1c2UgdGhl
IExvY2tlciBjb25zdHJ1Y3RvciBpbnN0ZWFkLgorCisgICAgICAgIFRoaXMgaXMgYSBzdGVwIHRv
d2FyZHMgZ2V0dGluZyByaWQgb2YgaG9sZExvY2soKSBjb21wbGV0ZWx5LgorCisgICAgICAgICog
YmVuY2htYXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3BwOgorICAgICAgICAqIHd0Zi9Db25jdXJy
ZW50UHRySGFzaFNldC5jcHA6CisgICAgICAgIChXVEY6OkNvbmN1cnJlbnRQdHJIYXNoU2V0Ojpk
ZWxldGVPbGRUYWJsZXMpOgorICAgICAgICAoV1RGOjpDb25jdXJyZW50UHRySGFzaFNldDo6Y2xl
YXIpOgorICAgICAgICAoV1RGOjpDb25jdXJyZW50UHRySGFzaFNldDo6Y29udGFpbnNJbXBsU2xv
dyBjb25zdCk6CisgICAgICAgIChXVEY6OkNvbmN1cnJlbnRQdHJIYXNoU2V0OjpzaXplU2xvdyBj
b25zdCk6CisgICAgICAgIChXVEY6OkNvbmN1cnJlbnRQdHJIYXNoU2V0OjpyZXNpemVJZk5lY2Vz
c2FyeSk6CisgICAgICAgICogd3RmL0NvdW50aW5nTG9jay5oOgorICAgICAgICAqIHd0Zi9IYXNo
VGFibGUuY3BwOgorICAgICAgICAoV1RGOjpIYXNoVGFibGVTdGF0czo6cmVjb3JkQ29sbGlzaW9u
QXRDb3VudCk6CisgICAgICAgIChXVEY6Okhhc2hUYWJsZVN0YXRzOjpkdW1wU3RhdHMpOgorICAg
ICAgICAqIHd0Zi9IYXNoVGFibGUuaDoKKyAgICAgICAgKFdURjo6aW52YWxpZGF0ZUl0ZXJhdG9y
cyk6CisgICAgICAgIChXVEY6OmFkZEl0ZXJhdG9yKToKKyAgICAgICAgKFdURjo6cmVtb3ZlSXRl
cmF0b3IpOgorICAgICAgICAqIHd0Zi9Mb2NrZWRQcmludFN0cmVhbS5jcHA6CisgICAgICAgIChX
VEY6OkxvY2tlZFByaW50U3RyZWFtOjp2cHJpbnRmKToKKyAgICAgICAgKFdURjo6TG9ja2VkUHJp
bnRTdHJlYW06OmZsdXNoKToKKyAgICAgICAgKiB3dGYvTWV0YUFsbG9jYXRvci5jcHA6CisgICAg
ICAgIChXVEY6Ok1ldGFBbGxvY2F0b3JIYW5kbGU6On5NZXRhQWxsb2NhdG9ySGFuZGxlKToKKyAg
ICAgICAgKiB3dGYvTWV0YUFsbG9jYXRvci5oOgorICAgICAgICAoV1RGOjpNZXRhQWxsb2NhdG9y
OjphbGxvY2F0ZSk6CisgICAgICAgIChXVEY6Ok1ldGFBbGxvY2F0b3I6OmN1cnJlbnRTdGF0aXN0
aWNzKToKKyAgICAgICAgKiB3dGYvUmVhZFdyaXRlTG9jay5oOgorICAgICAgICAqIHd0Zi9TdGFj
a1Nob3RQcm9maWxlci5oOgorICAgICAgICAoV1RGOjpTdGFja1Nob3RQcm9maWxlcjo6cHJvZmls
ZSk6CisgICAgICAgIChXVEY6OlN0YWNrU2hvdFByb2ZpbGVyOjpydW4pOgorICAgICAgICAqIHd0
Zi9TdGFja1N0YXRzLmNwcDoKKyAgICAgICAgKFdURjo6U3RhY2tTdGF0czo6Q2hlY2tQb2ludDo6
Q2hlY2tQb2ludCk6CisgICAgICAgIChXVEY6OlN0YWNrU3RhdHM6OkNoZWNrUG9pbnQ6On5DaGVj
a1BvaW50KToKKyAgICAgICAgKFdURjo6U3RhY2tTdGF0czo6cHJvYmUpOgorICAgICAgICAoV1RG
OjpTdGFja1N0YXRzOjpMYXlvdXRDaGVja1BvaW50OjpMYXlvdXRDaGVja1BvaW50KToKKyAgICAg
ICAgKFdURjo6U3RhY2tTdGF0czo6TGF5b3V0Q2hlY2tQb2ludDo6fkxheW91dENoZWNrUG9pbnQp
OgorICAgICAgICAqIHd0Zi9UaHJlYWRHcm91cC5jcHA6CisgICAgICAgIChXVEY6OlRocmVhZEdy
b3VwOjp+VGhyZWFkR3JvdXApOgorICAgICAgICAoV1RGOjpUaHJlYWRHcm91cDo6YWRkKToKKyAg
ICAgICAgKiB3dGYvVGhyZWFkTWVzc2FnZS5jcHA6CisgICAgICAgIChXVEY6OnNlbmRNZXNzYWdl
U2NvcGVkKToKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nLmNwcDoKKyAgICAgICAgKFdURjo6VGhy
ZWFkOjpkaWRFeGl0KToKKyAgICAgICAgKFdURjo6VGhyZWFkOjphZGRUb1RocmVhZEdyb3VwKToK
KyAgICAgICAgKFdURjo6VGhyZWFkOjpyZW1vdmVGcm9tVGhyZWFkR3JvdXApOgorICAgICAgICAo
V1RGOjpUaHJlYWQ6Om51bWJlck9mVGhyZWFkR3JvdXBzKToKKyAgICAgICAgKiB3dGYvVGltaW5n
U2NvcGUuY3BwOgorICAgICAgICAqIHd0Zi9XVEZDb25maWcuY3BwOgorICAgICAgICAoV1RGOjpD
b25maWc6OnBlcm1hbmVudGx5RnJlZXplKToKKyAgICAgICAgKiB3dGYvV1RGU2VtYXBob3JlLmg6
CisgICAgICAgICogd3RmL3Bvc2l4L1RocmVhZGluZ1BPU0lYLmNwcDoKKyAgICAgICAgKFdURjo6
VGhyZWFkOjpjaGFuZ2VQcmlvcml0eSk6CisgICAgICAgIChXVEY6OlRocmVhZDo6d2FpdEZvckNv
bXBsZXRpb24pOgorICAgICAgICAoV1RGOjpUaHJlYWQ6OmRldGFjaCk6CisgICAgICAgIChXVEY6
OlRocmVhZDo6c2lnbmFsKToKKyAgICAgICAgKFdURjo6VGhyZWFkOjplc3RhYmxpc2hQbGF0Zm9y
bVNwZWNpZmljSGFuZGxlKToKKyAgICAgICAgKiB3dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUu
Y3BwOgorICAgICAgICAoV1RGOjpCaW5hcnlTZW1hcGhvcmU6OnNpZ25hbCk6CisgICAgICAgIChX
VEY6OkJpbmFyeVNlbWFwaG9yZTo6d2FpdFVudGlsKToKKyAgICAgICAgKiB3dGYvdGhyZWFkcy9T
aWduYWxzLmNwcDoKKyAgICAgICAgKFdURjo6U2lnbmFsSGFuZGxlcnM6OmFkZCk6CisgICAgICAg
IChXVEY6OnJlZ2lzdGVyVGhyZWFkRm9yTWFjaEV4Y2VwdGlvbkhhbmRsaW5nKToKKyAgICAgICAg
KFdURjo6YWN0aXZhdGVTaWduYWxIYW5kbGVyc0Zvcik6CisgICAgICAgICogd3RmL3dpbi9MYW5n
dWFnZVdpbi5jcHA6CisgICAgICAgIChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAq
IHd0Zi93aW4vVGhyZWFkaW5nV2luLmNwcDoKKyAgICAgICAgKFdURjo6VGhyZWFkOjpjaGFuZ2VQ
cmlvcml0eSk6CisgICAgICAgIChXVEY6OlRocmVhZDo6d2FpdEZvckNvbXBsZXRpb24pOgorICAg
ICAgICAoV1RGOjpUaHJlYWQ6OmRldGFjaCk6CisgICAgICAgIChXVEY6OlRocmVhZDo6ZXN0YWJs
aXNoUGxhdGZvcm1TcGVjaWZpY0hhbmRsZSk6CisKIDIwMjEtMDUtMjEgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIFVuYWJsZSB0byB1cGxvYWQgZmls
ZXMgdGhhdCBhcmUgc3RvcmVkIGluIHRoZSBjbG91ZCAod2l0aG91dCBhIGxvY2FsIGNvcHkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcCBi
L1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3BwCmluZGV4IDlkNTk1
NzVkNWY5YjFiMWJiN2RiMjMxZTY0YzM0N2NiZDVmYzdkZDMuLjliODUxNDNiNmM1ZDJjZWQwNjEz
MWM2NDVjNjYzM2E3YzgwMWNlNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9D
b25kaXRpb25TcGVlZFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRp
b25TcGVlZFRlc3QuY3BwCkBAIC0xMTgsNyArMTE4LDcgQEAgdm9pZCBydW5UZXN0KAogICAgICAg
ICAgICAgICAgICAgICBub3RpZnkoZnVsbENvbmRpdGlvbiwgbXVzdE5vdGlmeSk7CiAKICAgICAg
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBsb2NrZXIgPSBo
b2xkTG9jayhyZWNlaXZlZExvY2spOworICAgICAgICAgICAgICAgICAgICAgICAgTG9ja2VyIGxv
Y2tlciB7IHJlY2VpdmVkTG9jayB9OwogICAgICAgICAgICAgICAgICAgICAgICAgcmVjZWl2ZWQu
YXBwZW5kKHJlc3VsdCk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9
CkBAIC0xNTIsNyArMTUyLDcgQEAgdm9pZCBydW5UZXN0KAogICAgICAgICB0aHJlYWQtPndhaXRG
b3JDb21wbGV0aW9uKCk7CiAKICAgICB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
bG9jayk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBsb2NrIH07CiAgICAgICAgIHNob3VsZENv
bnRpbnVlID0gZmFsc2U7CiAgICAgfQogICAgIG5vdGlmeUFsbChlbXB0eUNvbmRpdGlvbik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Db25jdXJyZW50UHRySGFzaFNldC5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi9Db25jdXJyZW50UHRySGFzaFNldC5jcHAKaW5kZXggNzMyNTkzNjhjM2ExNjM3
YTIyZWZmODdiOTM2MWRhMzQ5OWQ5YWEwYS4uNDkzYWE1NjI0YzE1MzkwMWJiNGEzNzdhMGExMzNi
YzcwYzliMmYyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ29uY3VycmVudFB0ckhhc2hT
ZXQuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NvbmN1cnJlbnRQdHJIYXNoU2V0LmNwcApAQCAt
NDEsNyArNDEsNyBAQCB2b2lkIENvbmN1cnJlbnRQdHJIYXNoU2V0OjpkZWxldGVPbGRUYWJsZXMo
KQogewogICAgIC8vIFRoaXMgaXMganVzdCBpbiBjYXNlLiBJdCBkb2VzIG5vdCBtYWtlIGl0IE9L
IGZvciBvdGhlciB0aHJlYWRzIHRvIGNhbGwgYWRkKCkuIEJ1dCBpdCBtaWdodCBwcmV2ZW50CiAg
ICAgLy8gc29tZSBiYWQgY3Jhc2hlcyBpZiB3ZSBkaWQgbWFrZSB0aGF0IG1pc3Rha2UuCi0gICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOyAKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9s
b2NrIH07CiAKICAgICBBU1NFUlQobV90YWJsZS5sb2FkUmVsYXhlZCgpICE9ICZtX3N0dWJUYWJs
ZSk7CiAgICAgbV9hbGxUYWJsZXMucmVtb3ZlQWxsTWF0Y2hpbmcoCkBAIC01NCw3ICs1NCw3IEBA
IHZvaWQgQ29uY3VycmVudFB0ckhhc2hTZXQ6OmNsZWFyKCkKIHsKICAgICAvLyBUaGlzIGlzIGp1
c3QgaW4gY2FzZS4gSXQgZG9lcyBub3QgbWFrZSBpdCBPSyBmb3Igb3RoZXIgdGhyZWFkcyB0byBj
YWxsIGFkZCgpLiBCdXQgaXQgbWlnaHQgcHJldmVudAogICAgIC8vIHNvbWUgYmFkIGNyYXNoZXMg
aWYgd2UgZGlkIG1ha2UgdGhhdCBtaXN0YWtlLgotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
bV9sb2NrKTsgCisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIAogICAgIG1fYWxs
VGFibGVzLmNsZWFyKCk7CiAgICAgaW5pdGlhbGl6ZSgpOwpAQCAtOTIsMjEgKzkyLDIxIEBAIGJv
b2wgQ29uY3VycmVudFB0ckhhc2hTZXQ6OmFkZFNsb3coVGFibGUqIHRhYmxlLCB1bnNpZ25lZCBt
YXNrLCB1bnNpZ25lZCBzdGFydEluCiAKIGJvb2wgQ29uY3VycmVudFB0ckhhc2hTZXQ6OmNvbnRh
aW5zSW1wbFNsb3codm9pZCogcHRyKSBjb25zdAogewotICAgIGF1dG8gbG9ja2VyID0gaG9sZExv
Y2sobV9sb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgQVNTRVJUKG1f
dGFibGUubG9hZFJlbGF4ZWQoKSAhPSAmbV9zdHViVGFibGUpOwogICAgIHJldHVybiBjb250YWlu
c0ltcGwocHRyKTsKIH0KIAogc2l6ZV90IENvbmN1cnJlbnRQdHJIYXNoU2V0OjpzaXplU2xvdygp
IGNvbnN0CiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOworICAgIExvY2tl
ciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICBBU1NFUlQobV90YWJsZS5sb2FkUmVsYXhlZCgpICE9
ICZtX3N0dWJUYWJsZSk7CiAgICAgcmV0dXJuIHNpemUoKTsKIH0KIAogdm9pZCBDb25jdXJyZW50
UHRySGFzaFNldDo6cmVzaXplSWZOZWNlc3NhcnkoKQogewotICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2sobV9sb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgVGFibGUq
IHRhYmxlID0gbV90YWJsZS5sb2FkUmVsYXhlZCgpOwogICAgIEFTU0VSVCh0YWJsZSAhPSAmbV9z
dHViVGFibGUpOwogICAgIGlmICh0YWJsZS0+bG9hZC5sb2FkUmVsYXhlZCgpIDwgdGFibGUtPm1h
eExvYWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NvdW50aW5nTG9jay5oIGIvU291
cmNlL1dURi93dGYvQ291bnRpbmdMb2NrLmgKaW5kZXggMmFkMjRmMDRmNDY0NmZmN2ZjYjMwYzZi
YjBkM2MzYzAxNmM4MGNjMy4uYzdkYjA1ZTExYTY4OTA2OWIyNTY2OWI5YjQ5NzMwMTM1OTM2MWMx
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ291bnRpbmdMb2NrLmgKKysrIGIvU291cmNl
L1dURi93dGYvQ291bnRpbmdMb2NrLmgKQEAgLTEzMyw3ICsxMzMsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gICAgICAgICAgICAgaWYgKG1fbG9jay52YWxpZGF0ZShjb3VudCkpCiAgICAgLy8gICAgICAg
ICAgICAgICAgIHJldHVybiB2YWx1ZTsgLy8gc3VjY2VzcyEKICAgICAvLyAgICAgICAgIH0KLSAg
ICAvLyAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9sb2NrKTsKKyAgICAvLyAgICAg
ICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICAvLyAgICAgICAgIGludCB2YWx1ZSA9
IG1fdGhpbmdzOwogICAgIC8vICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgIC8vICAgICB9CkBA
IC0yMDMsNyArMjAzLDcgQEAgcHVibGljOgogICAgIC8vICAgICAgICAgICAgIGlmIChtX2xvY2su
ZmVuY2VsZXNzVmFsaWRhdGUoY291bnQsIERlcGVuZGVuY3k6OmZlbmNlKHZhbHVlKSkpCiAgICAg
Ly8gICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsgLy8gc3VjY2VzcyEKICAgICAvLyAgICAg
ICAgIH0KLSAgICAvLyAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9sb2NrKTsKKyAg
ICAvLyAgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICAvLyAgICAgICAgIGlu
dCB2YWx1ZSA9IG1fdGhpbmdzOwogICAgIC8vICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgIC8v
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoVGFibGUuY3BwIGIvU291cmNl
L1dURi93dGYvSGFzaFRhYmxlLmNwcAppbmRleCAwMTcwMTAwMTAzZTE2ZDc3MjZmZjM3YWZhYjlj
OTliMjBmNWIwM2VjLi5hMDI1OTA0ZmU2NzlhYTczMjdiMTkyODUxZGVlYmUyYzllNDQzOWQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoVGFibGUuY3BwCisrKyBiL1NvdXJjZS9XVEYv
d3RmL0hhc2hUYWJsZS5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgc3RhdGljIExvY2sgaGFzaFRhYmxl
U3RhdHNNdXRleDsKIAogdm9pZCBIYXNoVGFibGVTdGF0czo6cmVjb3JkQ29sbGlzaW9uQXRDb3Vu
dCh1bnNpZ25lZCBjb3VudCkKIHsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKGhhc2hUYWJs
ZVN0YXRzTXV0ZXgpOworICAgIExvY2tlciBsb2NrZXIgeyBoYXNoVGFibGVTdGF0c011dGV4IH07
CiAKICAgICBpZiAoY291bnQgPiBtYXhDb2xsaXNpb25zKQogICAgICAgICBtYXhDb2xsaXNpb25z
ID0gY291bnQ7CkBAIC01MSw3ICs1MSw3IEBAIHZvaWQgSGFzaFRhYmxlU3RhdHM6OnJlY29yZENv
bGxpc2lvbkF0Q291bnQodW5zaWduZWQgY291bnQpCiAKIHZvaWQgSGFzaFRhYmxlU3RhdHM6OmR1
bXBTdGF0cygpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhoYXNoVGFibGVTdGF0c011
dGV4KTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgaGFzaFRhYmxlU3RhdHNNdXRleCB9OwogCiAgICAg
ZGF0YUxvZ0YoIlxuV1RGOjpIYXNoVGFibGUgc3RhdGlzdGljc1xuXG4iKTsKICAgICBkYXRhTG9n
RigiJXUgYWNjZXNzZXNcbiIsIG51bUFjY2Vzc2VzLmxvYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9IYXNoVGFibGUuaCBiL1NvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCmluZGV4
IDYzMjYyNTJjMTg5ODVkNjE4OTZiMDBkMTYyMWYzYjgwMWYzYTVjM2YuLmJlN2VjZDlmYjc2YmIx
MWVlODMwNDFmYjQ3NDVlY2MzZTQ5YTA3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0hh
c2hUYWJsZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCkBAIC0xNDk1LDcgKzE0
OTUsNyBAQCBERUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihIYXNoVGFibGUp
OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hUYWJsZVR5cGU+CiAgICAgdm9pZCBpbnZhbGlk
YXRlSXRlcmF0b3JzKGNvbnN0IEhhc2hUYWJsZVR5cGUqIHRhYmxlKQogICAgIHsKLSAgICAgICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jaygqdGFibGUtPm1fbXV0ZXgpOworICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgKnRhYmxlLT5tX211dGV4IH07CiAgICAgICAgIHR5cGVuYW1lIEhhc2hUYWJsZVR5
cGU6OmNvbnN0X2l0ZXJhdG9yKiBuZXh0OwogICAgICAgICBmb3IgKHR5cGVuYW1lIEhhc2hUYWJs
ZVR5cGU6OmNvbnN0X2l0ZXJhdG9yKiBwID0gdGFibGUtPm1faXRlcmF0b3JzOyBwOyBwID0gbmV4
dCkgewogICAgICAgICAgICAgbmV4dCA9IHAtPm1fbmV4dDsKQEAgLTE1MTYsNyArMTUxNiw3IEBA
IERFQ0xBUkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKEhhc2hUYWJsZSk7CiAgICAg
ICAgIGlmICghdGFibGUpIHsKICAgICAgICAgICAgIGl0LT5tX25leHQgPSBudWxscHRyOwogICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jaygqdGFibGUt
Pm1fbXV0ZXgpOworICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7ICp0YWJsZS0+bV9tdXRleCB9
OwogICAgICAgICAgICAgQVNTRVJUKHRhYmxlLT5tX2l0ZXJhdG9ycyAhPSBpdCk7CiAgICAgICAg
ICAgICBpdC0+bV9uZXh0ID0gdGFibGUtPm1faXRlcmF0b3JzOwogICAgICAgICAgICAgdGFibGUt
Pm1faXRlcmF0b3JzID0gaXQ7CkBAIC0xNTM1LDcgKzE1MzUsNyBAQCBERUNMQVJFX0FMTE9DQVRP
Ul9XSVRIX0hFQVBfSURFTlRJRklFUihIYXNoVGFibGUpOwogICAgICAgICAgICAgQVNTRVJUKCFp
dC0+bV9uZXh0KTsKICAgICAgICAgICAgIEFTU0VSVCghaXQtPm1fcHJldmlvdXMpOwogICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jaygqaXQtPm1fdGFi
bGUtPm1fbXV0ZXgpOworICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7ICppdC0+bV90YWJsZS0+
bV9tdXRleCB9OwogICAgICAgICAgICAgaWYgKGl0LT5tX25leHQpIHsKICAgICAgICAgICAgICAg
ICBBU1NFUlQoaXQtPm1fbmV4dC0+bV9wcmV2aW91cyA9PSBpdCk7CiAgICAgICAgICAgICAgICAg
aXQtPm1fbmV4dC0+bV9wcmV2aW91cyA9IGl0LT5tX3ByZXZpb3VzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvTG9ja2VkUHJpbnRTdHJlYW0uY3BwIGIvU291cmNlL1dURi93dGYvTG9ja2Vk
UHJpbnRTdHJlYW0uY3BwCmluZGV4IDczMmZlOTViNWNhMjRiOGQwNjgzNGZmM2JlNzRjMjdhZGU5
NDMwN2MuLjZiODdmNDBmZDk3MmUwMTg2ZDliMTFiZmQ0ODJlYWYwNTAxNDQ2OTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0xvY2tlZFByaW50U3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9Mb2NrZWRQcmludFN0cmVhbS5jcHAKQEAgLTM5LDEzICszOSwxMyBAQCBMb2NrZWRQcmlu
dFN0cmVhbTo6fkxvY2tlZFByaW50U3RyZWFtKCkKIAogdm9pZCBMb2NrZWRQcmludFN0cmVhbTo6
dnByaW50Zihjb25zdCBjaGFyKiBmb3JtYXQsIHZhX2xpc3QgYXJncykKIHsKLSAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKG1fbG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9Owog
ICAgIG1fdGFyZ2V0LT52cHJpbnRmKGZvcm1hdCwgYXJncyk7CiB9CiAKIHZvaWQgTG9ja2VkUHJp
bnRTdHJlYW06OmZsdXNoKCkKIHsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbG9jayk7
CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIG1fdGFyZ2V0LT5mbHVzaCgpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuY3BwCmluZGV4IDg0YTdhMDE5ZWIwNzkyYjE4ZWRkZTZj
MWJmZTFiZmMzOGVlN2Y0ZGEuLmQ3YzhlZGVjZWI5YzExMmFiNTAzODQwZGI0ZmY1NmJmNzdhNTJh
MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuY3BwCkBAIC04Niw3ICs4Niw3IEBAIE1ldGFBbGxv
Y2F0b3JIYW5kbGU6Ok1ldGFBbGxvY2F0b3JIYW5kbGUoTWV0YUFsbG9jYXRvciYgYWxsb2NhdG9y
LCBNZXRhQWxsb2NhdG9yCiAKIE1ldGFBbGxvY2F0b3JIYW5kbGU6On5NZXRhQWxsb2NhdG9ySGFu
ZGxlKCkKIHsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKGFsbG9jYXRvcigpLm1fbG9jayk7
CisgICAgTG9ja2VyIGxvY2tlciB7IGFsbG9jYXRvcigpLm1fbG9jayB9OwogICAgIGFsbG9jYXRv
cigpLnJlbGVhc2UobG9ja2VyLCAqdGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL01ldGFBbGxvY2F0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuaAppbmRl
eCBlYTEzMzJjM2ViZTMwODFkMDcxNzVkNjY4MTlkMDdmMzQ0Y2RiYmQ2Li41ZmI3MmMyODBlZGMw
NmRlYTg5MzFiNmEzYzA5ZTFmZjdiZjVjOGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9N
ZXRhQWxsb2NhdG9yLmgKKysrIGIvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5oCkBAIC03
MSw3ICs3MSw3IEBAIHB1YmxpYzoKICAgICAKICAgICBBTFdBWVNfSU5MSU5FIFJlZlB0cjxNZXRh
QWxsb2NhdG9ySGFuZGxlPiBhbGxvY2F0ZShzaXplX3Qgc2l6ZUluQnl0ZXMpCiAgICAgewotICAg
ICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbG9jayk7CisgICAgICAgIExvY2tlciBsb2Nr
ZXIgeyBtX2xvY2sgfTsKICAgICAgICAgcmV0dXJuIGFsbG9jYXRlKGxvY2tlciwgc2l6ZUluQnl0
ZXMpOwogICAgIH0KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgUmVmUHRyPE1ldGFBbGxvY2F0b3JI
YW5kbGU+IGFsbG9jYXRlKGNvbnN0IExvY2tIb2xkZXImLCBzaXplX3Qgc2l6ZUluQnl0ZXMpOwpA
QCAtOTUsNyArOTUsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBTdGF0aXN0aWNzIGN1cnJlbnRT
dGF0aXN0aWNzKCkKICAgICB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9sb2Nr
KTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICByZXR1cm4gY3Vy
cmVudFN0YXRpc3RpY3MobG9ja2VyKTsKICAgICB9CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0
YXRpc3RpY3MgY3VycmVudFN0YXRpc3RpY3MoY29uc3QgTG9ja0hvbGRlciYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvUmVhZFdyaXRlTG9jay5oIGIvU291cmNlL1dURi93dGYvUmVhZFdy
aXRlTG9jay5oCmluZGV4IDJhN2IwNjgyYzMzNGU5MTA0ZGE3N2MyZmNmOTIyNmNlZDczMTAxZDIu
LjEwZjNiNTdhNTkzZmFkYmYxZGIzMzE0ZDJkMGFhNDVhNjUyYTIzMDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1JlYWRXcml0ZUxvY2suaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SZWFkV3Jp
dGVMb2NrLmgKQEAgLTQzLDExICs0MywxMSBAQCBwdWJsaWM6CiAKICAgICAvLyBJdCdzIGVhc2ll
c3QgdG8gcmVhZCBsb2NrIGxpa2UgdGhpczoKICAgICAvLyAKLSAgICAvLyAgICAgYXV0byBsb2Nr
ZXIgPSBob2xkTG9jayhyd0xvY2sucmVhZCgpKTsKKyAgICAvLyAgICAgTG9ja2VyIGxvY2tlciB7
IHJ3TG9jay5yZWFkKCkgfTsKICAgICAvLwogICAgIC8vIEl0J3MgZWFzaWVzdCB0byB3cml0ZSBs
b2NrIGxpa2UgdGhpczoKICAgICAvLyAKLSAgICAvLyAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9j
ayhyd0xvY2sud3JpdGUoKSk7CisgICAgLy8gICAgIExvY2tlciBsb2NrZXIgeyByd0xvY2sud3Jp
dGUoKSB9OwogICAgIC8vCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVhZExvY2soKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCByZWFkVW5sb2NrKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9TdGFja1Nob3RQcm9maWxlci5oIGIvU291cmNlL1dURi93dGYvU3RhY2tT
aG90UHJvZmlsZXIuaAppbmRleCAzNjJjZDVlYjhlMjVlMDA0ZDI0MjFiMzZhNTRiMGI4YjRlYmQz
ZWM4Li5hMzJjMTRhMGE4M2FiNzM3NDg5MWVkZjgxNTc0OTdiYTQ0MjQzMjg1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9TdGFja1Nob3RQcm9maWxlci5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1N0YWNrU2hvdFByb2ZpbGVyLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogICAgIC8vIE5F
VkVSX0lOTElORSBzbyB0aGF0IGZyYW1lc1RvU2tpcCBpcyBwcmVkaWN0YWJsZS4KICAgICBORVZF
Ul9JTkxJTkUgdm9pZCBwcm9maWxlKCkKICAgICB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2sobV9sb2NrKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgICAg
ICBtX3Byb2ZpbGUuYWRkKFN0YWNrU2hvdChtX251bUZyYW1lcyArIG1fZnJhbWVzVG9Ta2lwKSk7
CiAgICAgICAgIG1fdG90YWxDb3VudCsrOwogICAgIH0KQEAgLTYwLDcgKzYwLDcgQEAgcHJpdmF0
ZToKICAgICB7CiAgICAgICAgIGZvciAoOzspIHsKICAgICAgICAgICAgIHNsZWVwKDFfcyk7Ci0g
ICAgICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbG9jayk7CisgICAgICAgICAgICBM
b2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAgICAgICBhdXRvIGxpc3QgPSBtX3Byb2Zp
bGUuYnVpbGRMaXN0KCk7CiAgICAgICAgICAgICBkYXRhTG9nKCJcbkhvdHRlc3Qgc3RhY2tzIGlu
ICIsIGdldEN1cnJlbnRQcm9jZXNzSUQoKSwgIjpcbiIpOwogICAgICAgICAgICAgZm9yIChzaXpl
X3QgaSA9IGxpc3Quc2l6ZSgpLCBjb3VudCA9IDA7IGktLSAmJiBjb3VudCA8IG1fc3RhY2tzVG9S
ZXBvcnQ7IGNvdW50KyspIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1N0YWNrU3RhdHMu
Y3BwIGIvU291cmNlL1dURi93dGYvU3RhY2tTdGF0cy5jcHAKaW5kZXggM2YxYWI1MmM4ZDZmYTg1
OTdlY2M5YTZhZWZiMTRlMDFmNGYxM2Q5Yi4uZThhYzdlYjY1Yjg4MDY0NzJiOWVkZjBmOThiMTRj
OTYwYTg5Mzk3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU3RhY2tTdGF0cy5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvU3RhY2tTdGF0cy5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgU3RhY2tT
dGF0czo6UGVyVGhyZWFkU3RhdHM6OlBlclRocmVhZFN0YXRzKCkKIAogU3RhY2tTdGF0czo6Q2hl
Y2tQb2ludDo6Q2hlY2tQb2ludCgpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhTdGFj
a1N0YXRzOjpzX3NoYXJlZE11dGV4KTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgU3RhY2tTdGF0czo6
c19zaGFyZWRNdXRleCB9OwogICAgIFRocmVhZCYgdGhyZWFkID0gVGhyZWFkOjpjdXJyZW50KCk7
CiAgICAgU3RhY2tTdGF0czo6UGVyVGhyZWFkU3RhdHMmIHQgPSB0aHJlYWQuc3RhY2tTdGF0cygp
OwogICAgIGNvbnN0IFN0YWNrQm91bmRzJiBzdGFjayA9IHRocmVhZC5zdGFjaygpOwpAQCAtMTIx
LDcgKzEyMSw3IEBAIFN0YWNrU3RhdHM6OkNoZWNrUG9pbnQ6OkNoZWNrUG9pbnQoKQogCiBTdGFj
a1N0YXRzOjpDaGVja1BvaW50Ojp+Q2hlY2tQb2ludCgpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBo
b2xkTG9jayhTdGFja1N0YXRzOjpzX3NoYXJlZE11dGV4KTsKKyAgICBMb2NrZXIgbG9ja2VyIHsg
U3RhY2tTdGF0czo6c19zaGFyZWRNdXRleCB9OwogICAgIFRocmVhZCYgdGhyZWFkID0gVGhyZWFk
OjpjdXJyZW50KCk7CiAgICAgU3RhY2tTdGF0czo6UGVyVGhyZWFkU3RhdHMmIHQgPSB0aHJlYWQu
c3RhY2tTdGF0cygpOwogCkBAIC0xNDgsNyArMTQ4LDcgQEAgU3RhY2tTdGF0czo6Q2hlY2tQb2lu
dDo6fkNoZWNrUG9pbnQoKQogCiB2b2lkIFN0YWNrU3RhdHM6OnByb2JlKCkKIHsKLSAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKFN0YWNrU3RhdHM6OnNfc2hhcmVkTXV0ZXgpOworICAgIExvY2tl
ciBsb2NrZXIgeyBTdGFja1N0YXRzOjpzX3NoYXJlZE11dGV4IH07CiAgICAgVGhyZWFkJiB0aHJl
YWQgPSBUaHJlYWQ6OmN1cnJlbnQoKTsKICAgICBTdGFja1N0YXRzOjpQZXJUaHJlYWRTdGF0cyYg
dCA9IHRocmVhZC5zdGFja1N0YXRzKCk7CiAgICAgY29uc3QgU3RhY2tCb3VuZHMmIHN0YWNrID0g
dGhyZWFkLnN0YWNrKCk7CkBAIC0yMDMsNyArMjAzLDcgQEAgU3RhY2tTdGF0czo6TGF5b3V0Q2hl
Y2tQb2ludDo6TGF5b3V0Q2hlY2tQb2ludCgpCiAgICAgLy8gcHJvYmUgZmlyc3QsIHdlIGNhbiBh
dm9pZCByZS1lbnRlcmluZyB0aGUgbG9jay4KICAgICBTdGFja1N0YXRzOjpwcm9iZSgpOwogCi0g
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhTdGFja1N0YXRzOjpzX3NoYXJlZE11dGV4KTsKKyAg
ICBMb2NrZXIgbG9ja2VyIHsgU3RhY2tTdGF0czo6c19zaGFyZWRNdXRleCB9OwogICAgIFRocmVh
ZCYgdGhyZWFkID0gVGhyZWFkOjpjdXJyZW50KCk7CiAgICAgU3RhY2tTdGF0czo6UGVyVGhyZWFk
U3RhdHMmIHQgPSB0aHJlYWQuc3RhY2tTdGF0cygpOwogICAgIGNvbnN0IFN0YWNrQm91bmRzJiBz
dGFjayA9IHRocmVhZC5zdGFjaygpOwpAQCAtMjY0LDcgKzI2NCw3IEBAIFN0YWNrU3RhdHM6Okxh
eW91dENoZWNrUG9pbnQ6OkxheW91dENoZWNrUG9pbnQoKQogCiBTdGFja1N0YXRzOjpMYXlvdXRD
aGVja1BvaW50Ojp+TGF5b3V0Q2hlY2tQb2ludCgpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xk
TG9jayhTdGFja1N0YXRzOjpzX3NoYXJlZE11dGV4KTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgU3Rh
Y2tTdGF0czo6c19zaGFyZWRNdXRleCB9OwogCiAgICAgLy8gUG9wIHRvIHRoZSBwcmV2aW91cyBs
YXlvdXQgY2hlY2twb2ludDoKICAgICBTdGFja1N0YXRzOjpzX3RvcExheW91dENoZWNrUG9pbnQg
PSBtX3ByZXY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRHcm91cC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi9UaHJlYWRHcm91cC5jcHAKaW5kZXggMTk2ZjZjMjI3M2MzNWM3OTAzZTQw
NmQxZTczZTg1MTFiYjE1ZDRiYi4uM2YzOTI3MThhMzM1NDgyNzY4NWQyNTk5MmY3ZDZhNDQwYjlk
N2QwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGhyZWFkR3JvdXAuY3BwCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1RocmVhZEdyb3VwLmNwcApAQCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2Ug
V1RGIHsKIAogVGhyZWFkR3JvdXA6On5UaHJlYWRHcm91cCgpCiB7Ci0gICAgYXV0byBsb2NrZXIg
PSBob2xkTG9jayhtX2xvY2spOworICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICBm
b3IgKGF1dG8mIHRocmVhZCA6IG1fdGhyZWFkcykKICAgICAgICAgdGhyZWFkLT5yZW1vdmVGcm9t
VGhyZWFkR3JvdXAobG9ja2VyLCAqdGhpcyk7CiB9CkBAIC00Miw3ICs0Miw3IEBAIFRocmVhZEdy
b3VwQWRkUmVzdWx0IFRocmVhZEdyb3VwOjphZGQoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tl
ciwgVGhyZWFkJiB0aHJlCiAKIFRocmVhZEdyb3VwQWRkUmVzdWx0IFRocmVhZEdyb3VwOjphZGQo
VGhyZWFkJiB0aHJlYWQpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOwor
ICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICByZXR1cm4gYWRkKGxvY2tlciwgdGhy
ZWFkKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkTWVzc2FnZS5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRNZXNzYWdlLmNwcAppbmRleCA0MjE1NGEzN2U0ZjFlNGM2
MmNlYzYwNjU5OTczN2Y3N2Y3MWQ2ODUyLi43NGM0ZDk1YThkMjZhMGMxNTgzNjIwMzE0NWM3MTUz
MWU4OTQ5YmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRNZXNzYWdlLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRNZXNzYWdlLmNwcApAQCAtMzQsNyArMzQsNyBAQCBu
YW1lc3BhY2UgV1RGIHsKIE1lc3NhZ2VTdGF0dXMgc2VuZE1lc3NhZ2VTY29wZWQoVGhyZWFkJiB0
aHJlYWQsIGNvbnN0IFRocmVhZE1lc3NhZ2UmIG1lc3NhZ2UpCiB7CiAgICAgc3RhdGljIExvY2sg
bWVzc2FnZUxvY2s7Ci0gICAgYXV0byBsb2NraG9sZGVyID0gaG9sZExvY2sobWVzc2FnZUxvY2sp
OworICAgIExvY2tlciBsb2NrZXIgeyBtZXNzYWdlTG9jayB9OwogCiAgICAgYXV0byByZXN1bHQg
PSB0aHJlYWQuc3VzcGVuZCgpOwogICAgIGlmICghcmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvVGhyZWFkaW5nLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAKaW5k
ZXggNTcwYjc4YjQ5YjMwOWZmNDhhZDg5MGFkMTUzNGM4YzI3NWMyOWI4Yy4uZDU2NDJhODIwNjcw
NTg0ZTc1N2Q2M2FmMjBjZDNjMDdlNTU3MzM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
VGhyZWFkaW5nLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwCkBAIC0yNTQs
NyArMjU0LDcgQEAgdm9pZCBUaHJlYWQ6OmRpZEV4aXQoKQogICAgICAgICB7CiAgICAgICAgICAg
ICBWZWN0b3I8c3RkOjpzaGFyZWRfcHRyPFRocmVhZEdyb3VwPj4gdGhyZWFkR3JvdXBzOwogICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9tdXRl
eCk7CisgICAgICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbXV0ZXggfTsKICAgICAgICAg
ICAgICAgICBmb3IgKGF1dG8mIHRocmVhZEdyb3VwUG9pbnRlclBhaXIgOiBtX3RocmVhZEdyb3Vw
TWFwKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIElmIFRocmVhZEdyb3VwIGlzIGp1c3QgYmVp
bmcgZGVzdHJveWVkLAogICAgICAgICAgICAgICAgICAgICAvLyB3ZSBkbyBub3QgbmVlZCB0byBw
ZXJmb3JtIHVucmVnaXN0ZXJpbmcuCkBAIC0yNjQsMTUgKzI2NCwxNSBAQCB2b2lkIFRocmVhZDo6
ZGlkRXhpdCgpCiAgICAgICAgICAgICAgICAgbV9pc1NodXR0aW5nRG93biA9IHRydWU7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBmb3IgKGF1dG8mIHRocmVhZEdyb3VwIDogdGhyZWFkR3Jv
dXBzKSB7Ci0gICAgICAgICAgICAgICAgYXV0byB0aHJlYWRHcm91cExvY2tlciA9IGhvbGRMb2Nr
KHRocmVhZEdyb3VwLT5nZXRMb2NrKCkpOwotICAgICAgICAgICAgICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2sobV9tdXRleCk7CisgICAgICAgICAgICAgICAgTG9ja2VyIHRocmVhZEdyb3VwTG9j
a2VyIHsgdGhyZWFkR3JvdXAtPmdldExvY2soKSB9OworICAgICAgICAgICAgICAgIExvY2tlciBs
b2NrZXIgeyBtX211dGV4IH07CiAgICAgICAgICAgICAgICAgdGhyZWFkR3JvdXAtPm1fdGhyZWFk
cy5yZW1vdmUoKnRoaXMpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgLy8g
V2Ugd291bGQgbGlrZSB0byBzYXkgInRocmVhZCBpcyBleGl0ZWQiIGFmdGVyIHVucmVnaXN0ZXJp
bmcgdGhyZWFkcyBmcm9tIHRocmVhZCBncm91cHMuCiAgICAgICAgIC8vIFNvIHdlIG5lZWQgdG8g
c2VwYXJhdGUgbV9pc1NodXR0aW5nRG93biBmcm9tIG1fZGlkRXhpdC4KLSAgICAgICAgYXV0byBs
b2NrZXIgPSBob2xkTG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbXV0
ZXggfTsKICAgICAgICAgbV9kaWRFeGl0ID0gdHJ1ZTsKICAgICB9CiB9CkBAIC0yODAsNyArMjgw
LDcgQEAgdm9pZCBUaHJlYWQ6OmRpZEV4aXQoKQogVGhyZWFkR3JvdXBBZGRSZXN1bHQgVGhyZWFk
OjphZGRUb1RocmVhZEdyb3VwKGNvbnN0IEFic3RyYWN0TG9ja2VyJiB0aHJlYWRHcm91cExvY2tl
ciwgVGhyZWFkR3JvdXAmIHRocmVhZEdyb3VwKQogewogICAgIFVOVVNFRF9QQVJBTSh0aHJlYWRH
cm91cExvY2tlcik7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX211dGV4KTsKKyAgICBM
b2NrZXIgbG9ja2VyIHsgbV9tdXRleCB9OwogICAgIGlmIChtX2lzU2h1dHRpbmdEb3duKQogICAg
ICAgICByZXR1cm4gVGhyZWFkR3JvdXBBZGRSZXN1bHQ6Ok5vdEFkZGVkOwogICAgIGlmICh0aHJl
YWRHcm91cC5tX3RocmVhZHMuYWRkKCp0aGlzKS5pc05ld0VudHJ5KSB7CkBAIC0yOTMsNyArMjkz
LDcgQEAgVGhyZWFkR3JvdXBBZGRSZXN1bHQgVGhyZWFkOjphZGRUb1RocmVhZEdyb3VwKGNvbnN0
IEFic3RyYWN0TG9ja2VyJiB0aHJlYWRHcm91cEwKIHZvaWQgVGhyZWFkOjpyZW1vdmVGcm9tVGhy
ZWFkR3JvdXAoY29uc3QgQWJzdHJhY3RMb2NrZXImIHRocmVhZEdyb3VwTG9ja2VyLCBUaHJlYWRH
cm91cCYgdGhyZWFkR3JvdXApCiB7CiAgICAgVU5VU0VEX1BBUkFNKHRocmVhZEdyb3VwTG9ja2Vy
KTsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbXV0ZXgpOworICAgIExvY2tlciBsb2Nr
ZXIgeyBtX211dGV4IH07CiAgICAgaWYgKG1faXNTaHV0dGluZ0Rvd24pCiAgICAgICAgIHJldHVy
bjsKICAgICBtX3RocmVhZEdyb3VwTWFwLnJlbW92ZSgmdGhyZWFkR3JvdXApOwpAQCAtMzAxLDcg
KzMwMSw3IEBAIHZvaWQgVGhyZWFkOjpyZW1vdmVGcm9tVGhyZWFkR3JvdXAoY29uc3QgQWJzdHJh
Y3RMb2NrZXImIHRocmVhZEdyb3VwTG9ja2VyLCBUaHJlCiAKIHVuc2lnbmVkIFRocmVhZDo6bnVt
YmVyT2ZUaHJlYWRHcm91cHMoKQogewotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9tdXRl
eCk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbXV0ZXggfTsKICAgICByZXR1cm4gbV90aHJlYWRH
cm91cE1hcC5zaXplKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RpbWluZ1Nj
b3BlLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RpbWluZ1Njb3BlLmNwcAppbmRleCAwMGY2OGQ4MWIz
MmEwZjdkZWU0OTRhNjkyYWMwMjM3OGE1ZDQ2ZDFlLi5lMmIwMmM2MDM3NDQ0Y2E2MGY3ODgyM2Ey
MTgyMDY5Njg2OWY3ZDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaW1pbmdTY29wZS5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvVGltaW5nU2NvcGUuY3BwCkBAIC01MCw3ICs1MCw3IEBA
IHB1YmxpYzoKICAgICAKICAgICBjb25zdCBDYWxsRGF0YSYgYWRkVG9Ub3RhbChjb25zdCBjaGFy
KiBuYW1lLCBTZWNvbmRzIGR1cmF0aW9uKQogICAgIHsKLSAgICAgICAgYXV0byBsb2NrZXIgPSBo
b2xkTG9jayhsb2NrKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IGxvY2sgfTsKICAgICAgICAg
YXV0byYgcmVzdWx0ID0gdG90YWxzLmFkZChuYW1lLCBDYWxsRGF0YSgpKS5pdGVyYXRvci0+dmFs
dWU7CiAgICAgICAgICsrcmVzdWx0LmNhbGxDb3VudDsKICAgICAgICAgcmVzdWx0Lm1heER1cmF0
aW9uID0gc3RkOjptYXgocmVzdWx0Lm1heER1cmF0aW9uLCBkdXJhdGlvbik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9XVEZDb25maWcuY3BwIGIvU291cmNlL1dURi93dGYvV1RGQ29uZmln
LmNwcAppbmRleCBmYWI0MGMxMTcwMWU0N2M1ZmFkZWU1ZDExMjQyNjcyNGRiMTIzMmIxLi44N2I5
NDIxMjQxZDcyMWM0YmJjOWYwZTIyNTI2Y2ExMDY2NjM1ZGM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9XVEZDb25maWcuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1dURkNvbmZpZy5jcHAK
QEAgLTkzLDcgKzkzLDcgQEAgdm9pZCBzZXRQZXJtaXNzaW9uc09mQ29uZmlnUGFnZSgpCiB2b2lk
IENvbmZpZzo6cGVybWFuZW50bHlGcmVlemUoKQogewogICAgIHN0YXRpYyBMb2NrIGNvbmZpZ0xv
Y2s7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhjb25maWdMb2NrKTsKKyAgICBMb2NrZXIg
bG9ja2VyIHsgY29uZmlnTG9jayB9OwogCiAgICAgUkVMRUFTRV9BU1NFUlQocm91bmRVcFRvTXVs
dGlwbGVPZihwYWdlU2l6ZSgpLCBDb25maWdTaXplVG9Qcm90ZWN0KSA9PSBDb25maWdTaXplVG9Q
cm90ZWN0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV1RGU2VtYXBob3JlLmggYi9T
b3VyY2UvV1RGL3d0Zi9XVEZTZW1hcGhvcmUuaAppbmRleCA4ZWE1YmVmZjllZjQ4MmY2Y2Q2NTkx
MGM1MmFjNjQxYjViYTIyYzc1Li45NWQ4ZDQwNTFmNzQ3MTJmZGZjZmEwYTllOWExYzZjY2NkMGM3
YWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9XVEZTZW1hcGhvcmUuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9XVEZTZW1hcGhvcmUuaApAQCAtNDIsMTQgKzQyLDE0IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgc2lnbmFsKCkKICAgICB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
bV9sb2NrKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICBtX3Zh
bHVlKys7CiAgICAgICAgIG1fY29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgIH0KIAogICAgIGJv
b2wgd2FpdFVudGlsKGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYgdGltZW91dCkKICAg
ICB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9sb2NrKTsKKyAgICAgICAgTG9j
a2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICBib29sIHNhdGlzZmllZCA9IG1fY29uZGl0
aW9uLndhaXRVbnRpbChtX2xvY2ssIHRpbWVvdXQsCiAgICAgICAgICAgICBbJl0gewogICAgICAg
ICAgICAgICAgIHJldHVybiBtX3ZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvcG9z
aXgvVGhyZWFkaW5nUE9TSVguY3BwIGIvU291cmNlL1dURi93dGYvcG9zaXgvVGhyZWFkaW5nUE9T
SVguY3BwCmluZGV4IGJlZmRmYzJlN2Q4ZjNkMGY2OGJmYTJjYjMxOTgwMzU0YmE0MzhjNjkuLjM0
ODEyN2RiNjg0YmJiYWIzNDQyYTkxN2EwOGIzMTZlZTk3ZTE2MDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL3Bvc2l4L1RocmVhZGluZ1BPU0lYLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9w
b3NpeC9UaHJlYWRpbmdQT1NJWC5jcHAKQEAgLTI5Nyw3ICsyOTcsNyBAQCB2b2lkIFRocmVhZDo6
aW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbChjb25zdCBjaGFyKiB0aHJlYWROYW1lKQog
dm9pZCBUaHJlYWQ6OmNoYW5nZVByaW9yaXR5KGludCBkZWx0YSkKIHsKICNpZiBIQVZFKFBUSFJF
QURfU0VUU0NIRURQQVJBTSkKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbXV0ZXgpOwor
ICAgIExvY2tlciBsb2NrZXIgeyBtX211dGV4IH07CiAKICAgICBpbnQgcG9saWN5OwogICAgIHN0
cnVjdCBzY2hlZF9wYXJhbSBwYXJhbTsKQEAgLTMxNSw3ICszMTUsNyBAQCBpbnQgVGhyZWFkOjp3
YWl0Rm9yQ29tcGxldGlvbigpCiB7CiAgICAgcHRocmVhZF90IGhhbmRsZTsKICAgICB7Ci0gICAg
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tlciBsb2Nr
ZXIgeyBtX211dGV4IH07CiAgICAgICAgIGhhbmRsZSA9IG1faGFuZGxlOwogICAgIH0KIApAQCAt
MzI2LDcgKzMyNiw3IEBAIGludCBUaHJlYWQ6OndhaXRGb3JDb21wbGV0aW9uKCkKICAgICBlbHNl
IGlmIChqb2luUmVzdWx0KQogICAgICAgICBMT0dfRVJST1IoIlRocmVhZCAlcCB3YXMgdW5hYmxl
IHRvIGJlIGpvaW5lZC5cbiIsIHRoaXMpOwogCi0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayht
X211dGV4KTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9tdXRleCB9OwogICAgIEFTU0VSVChqb2lu
YWJsZVN0YXRlKCkgPT0gSm9pbmFibGUpOwogCiAgICAgLy8gSWYgdGhlIHRocmVhZCBoYXMgYWxy
ZWFkeSBleGl0ZWQsIHRoZW4gZG8gbm90aGluZy4gSWYgdGhlIHRocmVhZCBoYXNuJ3QgZXhpdGVk
IHlldCwgdGhlbiBqdXN0IHNpZ25hbCB0aGF0IHdlJ3ZlIGFscmVhZHkgam9pbmVkIG9uIGl0LgpA
QCAtMzM5LDcgKzMzOSw3IEBAIGludCBUaHJlYWQ6OndhaXRGb3JDb21wbGV0aW9uKCkKIAogdm9p
ZCBUaHJlYWQ6OmRldGFjaCgpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX211dGV4
KTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9tdXRleCB9OwogICAgIGludCBkZXRhY2hSZXN1bHQg
PSBwdGhyZWFkX2RldGFjaChtX2hhbmRsZSk7CiAgICAgaWYgKGRldGFjaFJlc3VsdCkKICAgICAg
ICAgTE9HX0VSUk9SKCJUaHJlYWQgJXAgd2FzIHVuYWJsZSB0byBiZSBkZXRhY2hlZFxuIiwgdGhp
cyk7CkBAIC0zNjIsNyArMzYyLDcgQEAgVGhyZWFkJiBUaHJlYWQ6OmluaXRpYWxpemVDdXJyZW50
VExTKCkKIAogYm9vbCBUaHJlYWQ6OnNpZ25hbChpbnQgc2lnbmFsTnVtYmVyKQogewotICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2sobV9tdXRleCk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbXV0
ZXggfTsKICAgICBpZiAoaGFzRXhpdGVkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBp
bnQgZXJyTm8gPSBwdGhyZWFkX2tpbGwobV9oYW5kbGUsIHNpZ25hbE51bWJlcik7CkBAIC00OTEs
NyArNDkxLDcgQEAgc2l6ZV90IFRocmVhZDo6Z2V0UmVnaXN0ZXJzKFBsYXRmb3JtUmVnaXN0ZXJz
JiByZWdpc3RlcnMpCiAKIHZvaWQgVGhyZWFkOjplc3RhYmxpc2hQbGF0Zm9ybVNwZWNpZmljSGFu
ZGxlKHB0aHJlYWRfdCBoYW5kbGUpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX211
dGV4KTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9tdXRleCB9OwogICAgIG1faGFuZGxlID0gaGFu
ZGxlOwogI2lmIE9TKERBUldJTikKICAgICBtX3BsYXRmb3JtVGhyZWFkID0gcHRocmVhZF9tYWNo
X3RocmVhZF9ucChoYW5kbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGhyZWFkcy9C
aW5hcnlTZW1hcGhvcmUuY3BwIGIvU291cmNlL1dURi93dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhv
cmUuY3BwCmluZGV4IGYzZjViZTY5NzQ3YWRlNjRkMDE1Njk1NTBhMzdiOWQzMzU0YWZlM2UuLjc4
YmYzNGM5NjY2OTk2MGYxM2M0MmFhNDdlMDc0ZThjMDc5N2MyOWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5jcHAKQEAgLTMwLDE0ICszMCwxNCBAQCBuYW1lc3Bh
Y2UgV1RGIHsKIAogdm9pZCBCaW5hcnlTZW1hcGhvcmU6OnNpZ25hbCgpCiB7Ci0gICAgYXV0byBs
b2NrZXIgPSBob2xkTG9jayhtX2xvY2spOworICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsK
ICAgICBtX2lzU2V0ID0gdHJ1ZTsKICAgICBtX2NvbmRpdGlvbi5ub3RpZnlPbmUoKTsKIH0KIAog
Ym9vbCBCaW5hcnlTZW1hcGhvcmU6OndhaXRVbnRpbChjb25zdCBUaW1lV2l0aER5bmFtaWNDbG9j
a1R5cGUmIGFic29sdXRlVGltZSkKIHsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbG9j
ayk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIGJvb2wgc2F0aXNmaWVkID0g
bV9jb25kaXRpb24ud2FpdFVudGlsKG1fbG9jaywgYWJzb2x1dGVUaW1lLCBbJl0geyByZXR1cm4g
bV9pc1NldDsgfSk7CiAgICAgaWYgKHNhdGlzZmllZCkKICAgICAgICAgbV9pc1NldCA9IGZhbHNl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGhyZWFkcy9TaWduYWxzLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL3RocmVhZHMvU2lnbmFscy5jcHAKaW5kZXggM2M1ZjVhMGQxZDU1ODFjYjYzZTk4
MGI2ZjY1ODdmY2Q3NDUzOGUyMi4uZWNiMWU0OWFjY2FjMWMxNmEzZGI0OWUxMTMwZGYxYTIzMDFj
OWE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGhyZWFkcy9TaWduYWxzLmNwcAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRzL1NpZ25hbHMuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHZv
aWQgU2lnbmFsSGFuZGxlcnM6OmFkZChTaWduYWwgc2lnbmFsLCBTaWduYWxIYW5kbGVyJiYgaGFu
ZGxlcikKIHsKICAgICBDb25maWc6OkFzc2VydE5vdEZyb3plblNjb3BlIGFzc2VydFNjb3BlOwog
ICAgIHN0YXRpYyBMb2NrIGxvY2s7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhsb2NrKTsK
KyAgICBMb2NrZXIgbG9ja2VyIHsgbG9jayB9OwogCiAgICAgc2l6ZV90IHNpZ25hbEluZGV4ID0g
c3RhdGljX2Nhc3Q8c2l6ZV90PihzaWduYWwpOwogICAgIHNpemVfdCBuZXh0RnJlZSA9IG51bWJl
ck9mSGFuZGxlcnNbc2lnbmFsSW5kZXhdOwpAQCAtMjk5LDcgKzI5OSw3IEBAIHN0YXRpYyBUaHJl
YWRHcm91cCYgYWN0aXZlVGhyZWFkcygpCiAKIHZvaWQgcmVnaXN0ZXJUaHJlYWRGb3JNYWNoRXhj
ZXB0aW9uSGFuZGxpbmcoVGhyZWFkJiB0aHJlYWQpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xk
TG9jayhhY3RpdmVUaHJlYWRzKCkuZ2V0TG9jaygpKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgYWN0
aXZlVGhyZWFkcygpLmdldExvY2soKSB9OwogICAgIGlmIChhY3RpdmVUaHJlYWRzKCkuYWRkKGxv
Y2tlciwgdGhyZWFkKSA9PSBUaHJlYWRHcm91cEFkZFJlc3VsdDo6TmV3bHlBZGRlZCkKICAgICAg
ICAgc2V0RXhjZXB0aW9uUG9ydHMobG9ja2VyLCB0aHJlYWQpOwogfQpAQCAtMzU4LDcgKzM1OCw3
IEBAIHZvaWQgYWN0aXZhdGVTaWduYWxIYW5kbGVyc0ZvcihTaWduYWwgc2lnbmFsKQogICAgIEFT
U0VSVChzaWduYWwgPCBTaWduYWw6OlVua25vd24pOwogICAgIEFTU0VSVCghaGFuZGxlcnMudXNl
TWFjaCB8fCBzaWduYWwgIT0gU2lnbmFsOjpVc3IpOwogCi0gICAgYXV0byBsb2NrZXIgPSBob2xk
TG9jayhhY3RpdmVUaHJlYWRzKCkuZ2V0TG9jaygpKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgYWN0
aXZlVGhyZWFkcygpLmdldExvY2soKSB9OwogICAgIGlmIChoYW5kbGVycy51c2VNYWNoKSB7CiAg
ICAgICAgIGFjdGl2ZUV4Y2VwdGlvbnMgfD0gdG9NYWNoTWFzayhzaWduYWwpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwIGIvU291cmNlL1dURi93dGYv
d2luL0xhbmd1YWdlV2luLmNwcAppbmRleCA5ZTdiZmYxMDk3OThjNjY3YWU3NTJhZjJhZmQ4ZjRm
YTNkOWRjMjYzLi42YjUyYzljMjBkMTVjYmE3ZTM5ZDU0MjAxMWI0MzhhMzgzNThjMmIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgc3RhdGljIFN0cmlu
ZyBsb2NhbGVJbmZvKExDVFlQRSBsb2NhbGVUeXBlLCBjb25zdCBTdHJpbmcmIGZhbGxiYWNrKQog
CiBzdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQogewotICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2socGxhdGZvcm1MYW5ndWFnZU11dGV4KTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgcGxh
dGZvcm1MYW5ndWFnZU11dGV4IH07CiAKICAgICBzdGF0aWMgU3RyaW5nIGNvbXB1dGVkRGVmYXVs
dExhbmd1YWdlOwogICAgIGlmICghY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2UuaXNFbXB0eSgpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvd2luL1RocmVhZGluZ1dpbi5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi93aW4vVGhyZWFkaW5nV2luLmNwcAppbmRleCAyZTZhNTI0ZmM0YjE5NjkwOWVjNjEw
ZDViZmRlNTJkZjA0MTI2M2ViLi42Njc4YWViZWY3MDlmYzQwYjNhZTUxM2NmZGU3NjQxYzAyZWFl
ODRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vVGhyZWFkaW5nV2luLmNwcAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi93aW4vVGhyZWFkaW5nV2luLmNwcApAQCAtMTY4LDcgKzE2OCw3IEBA
IGJvb2wgVGhyZWFkOjplc3RhYmxpc2hIYW5kbGUoTmV3VGhyZWFkQ29udGV4dCogZGF0YSwgT3B0
aW9uYWw8c2l6ZV90PiBzdGFja1NpemUsCiAKIHZvaWQgVGhyZWFkOjpjaGFuZ2VQcmlvcml0eShp
bnQgZGVsdGEpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX211dGV4KTsKKyAgICBM
b2NrZXIgbG9ja2VyIHsgbV9tdXRleCB9OwogICAgIFNldFRocmVhZFByaW9yaXR5KG1faGFuZGxl
LCBUSFJFQURfUFJJT1JJVFlfTk9STUFMICsgZGVsdGEpOwogfQogCkBAIC0xNzYsNyArMTc2LDcg
QEAgaW50IFRocmVhZDo6d2FpdEZvckNvbXBsZXRpb24oKQogewogICAgIEhBTkRMRSBoYW5kbGU7
CiAgICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbXV0ZXgpOworICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgbV9tdXRleCB9OwogICAgICAgICBoYW5kbGUgPSBtX2hhbmRsZTsK
ICAgICB9CiAKQEAgLTE4NCw3ICsxODQsNyBAQCBpbnQgVGhyZWFkOjp3YWl0Rm9yQ29tcGxldGlv
bigpCiAgICAgaWYgKGpvaW5SZXN1bHQgPT0gV0FJVF9GQUlMRUQpCiAgICAgICAgIExPR19FUlJP
UigiVGhyZWFkICVwIHdhcyBmb3VuZCB0byBiZSBkZWFkbG9ja2VkIHRyeWluZyB0byBxdWl0Iiwg
dGhpcyk7CiAKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbXV0ZXgpOworICAgIExvY2tl
ciBsb2NrZXIgeyBtX211dGV4IH07CiAgICAgQVNTRVJUKGpvaW5hYmxlU3RhdGUoKSA9PSBKb2lu
YWJsZSk7CiAKICAgICAvLyBUaGUgdGhyZWFkIGhhcyBhbHJlYWR5IGV4aXRlZCwgZG8gbm90aGlu
Zy4KQEAgLTIwNiw3ICsyMDYsNyBAQCB2b2lkIFRocmVhZDo6ZGV0YWNoKCkKICAgICAvLyBGbHND
YWxsYmFjayBhdXRvbWF0aWNhbGx5LiBGbHNDYWxsYmFjayB3aWxsIGNhbGwgQ2xvc2VIYW5kbGUg
dG8gY2xlYW4gdXAKICAgICAvLyByZXNvdXJjZS4gU28gaW4gdGhpcyBmdW5jdGlvbiwgd2UganVz
dCBtYXJrIHRoZSB0aHJlYWQgYXMgZGV0YWNoZWQgdG8KICAgICAvLyBhdm9pZCBjYWxsaW5nIHdh
aXRGb3JDb21wbGV0aW9uIGZvciB0aGlzIHRocmVhZC4KLSAgICBhdXRvIGxvY2tlciA9IGhvbGRM
b2NrKG1fbXV0ZXgpOworICAgIExvY2tlciBsb2NrZXIgeyBtX211dGV4IH07CiAgICAgaWYgKCFo
YXNFeGl0ZWQoKSkKICAgICAgICAgZGlkQmVjb21lRGV0YWNoZWQoKTsKIH0KQEAgLTI2MCw3ICsy
NjAsNyBAQCBUaHJlYWRJZGVudGlmaWVyIFRocmVhZDo6Y3VycmVudElEKCkKIAogdm9pZCBUaHJl
YWQ6OmVzdGFibGlzaFBsYXRmb3JtU3BlY2lmaWNIYW5kbGUoSEFORExFIGhhbmRsZSwgVGhyZWFk
SWRlbnRpZmllciB0aHJlYWRJRCkKIHsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbXV0
ZXgpOworICAgIExvY2tlciBsb2NrZXIgeyBtX211dGV4IH07CiAgICAgbV9oYW5kbGUgPSBoYW5k
bGU7CiAgICAgbV9pZCA9IHRocmVhZElEOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>