<?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>208358</bug_id>
          
          <creation_ts>2020-02-27 17:21:48 -0800</creation_ts>
          <short_desc>Stop using -[CALayer setValue:forKey:] to store back pointers to PlatformCALayer*</short_desc>
          <delta_ts>2020-02-29 09:25:05 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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=208416</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>dino</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1623788</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-27 17:21:48 -0800</bug_when>
    <thetext>Stop using -[CALayer setValue:forKey:] to store back pointers to PlatformCALayer*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623790</commentid>
    <comment_count>1</comment_count>
      <attachid>391945</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-27 17:25:43 -0800</bug_when>
    <thetext>Created attachment 391945
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623879</commentid>
    <comment_count>2</comment_count>
      <attachid>391961</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-27 22:03:59 -0800</bug_when>
    <thetext>Created attachment 391961
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623890</commentid>
    <comment_count>3</comment_count>
      <attachid>391964</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-27 23:10:29 -0800</bug_when>
    <thetext>Created attachment 391964
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623892</commentid>
    <comment_count>4</comment_count>
      <attachid>391965</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-27 23:38:04 -0800</bug_when>
    <thetext>Created attachment 391965
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623961</commentid>
    <comment_count>5</comment_count>
      <attachid>391981</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-28 08:08:17 -0800</bug_when>
    <thetext>Created attachment 391981
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624039</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-28 11:24:04 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/257645/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624040</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-28 11:25:36 -0800</bug_when>
    <thetext>&lt;rdar://problem/59895819&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624295</commentid>
    <comment_count>8</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-02-29 09:25:05 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #6)
&gt; https://trac.webkit.org/changeset/257645/webkit
This seems to have broken Windows build. Tracked in https://bugs.webkit.org/show_bug.cgi?id=208416

EWS also indicated this failure: https://ews-build.webkit.org/#/builders/10/builds/8585</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391945</attachid>
            <date>2020-02-27 17:25:43 -0800</date>
            <delta_ts>2020-02-27 17:29:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208358-20200227172542.patch</filename>
            <type>text/plain</type>
            <size>12830</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjA0MDE3ZmMyYjAwNTNl
OGI0MmQzMjQwMGY2NTJjZTBiM2M2YzljNi4uM2ZkMmU5Mjk3ZGJiNmU5MDEzYzRjOGZhODcyNTNk
MGY4NGIzZDMzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTAyLTI3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3AgdXNpbmcg
LVtDQUxheWVyIHNldFZhbHVlOmZvcktleTpdIHRvIHN0b3JlIGJhY2sgcG9pbnRlcnMgdG8gUGxh
dGZvcm1DQUxheWVyKgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA4MzU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2UgdXNlZCAtW0NBbGF5ZXIgc2V0VmFsdWU6Zm9yS2V5OkAiV0tQbGF0Zm9ybUNBTGF5
ZXIiXSB0byBzdG9yZSBhc3NvY2lhdGUgUGxhdGZvcm1DQUxheWVyKgorICAgICAgICB3aXRoIENB
TGF5ZXJzLiBIb3dldmVyLCB0aGlzIGhhcyBzb21lIHBlcmZvcm1hbmNlIGNvc3QsIGFuZCB3b24n
dCB3b3JrIGZvciBhIG5lYXItZnV0dXJlIHdvcmxkCisgICAgICAgIHdoZXJlIHRoZSBzY3JvbGxp
bmcgdGhyZWFkIG5lZWRzIHRvIGdldCBhdCBQbGF0Zm9ybUNBTGF5ZXJzLgorCisgICAgICAgIFJl
cGxhY2Ugd2l0aCBhIHN0YXRpYyBIYXNoTWFwPD4gb2YgQ0FMYXllciogdG8gUGxhdGZvcm1DQUxh
eWVyKi4gQWxzbyByZW5hbWUgcGxhdGZvcm1DQUxheWVyKCkKKyAgICAgICAgdG8gcGxhdGZvcm1D
QUxheWVyRm9yTGF5ZXIoKSBzbyBpdCdzIGVhc2llciB0byBmaW5kLgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXllckNvY29hLm1tOgorICAgICAgICAo
V2ViQ29yZTo6bGF5ZXJUb1BsYXRmb3JtTGF5ZXJNYXApOgorICAgICAgICAoV2ViQ29yZTo6UGxh
dGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcik6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtQ0FMYXllckNvY29hOjpjb21tb25Jbml0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
Q0FMYXllckNvY29hOjp+UGxhdGZvcm1DQUxheWVyQ29jb2EpOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1DQUxheWVyQ29jb2E6OnN1cGVybGF5ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIpOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW06CisgICAgICAgICgtW1dlYkdM
TGF5ZXIgZGlzcGxheV0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXll
ci5tbToKKyAgICAgICAgKC1bV2ViTGF5ZXIgZHJhd0luQ29udGV4dDpdKToKKyAgICAgICAgKC1b
V2ViU2ltcGxlTGF5ZXIgc2V0TmVlZHNEaXNwbGF5XSk6CisgICAgICAgICgtW1dlYlNpbXBsZUxh
eWVyIHNldE5lZWRzRGlzcGxheUluUmVjdDpdKToKKyAgICAgICAgKC1bV2ViU2ltcGxlTGF5ZXIg
ZGlzcGxheV0pOgorICAgICAgICAoLVtXZWJTaW1wbGVMYXllciBkcmF3SW5Db250ZXh0Ol0pOgor
CiAyMDIwLTAyLTI3ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgQWRk
IHJlZmVycmVycG9saWN5IGF0dHJpYnV0ZSBzdXBwb3J0IGZvciBpbWFnZXMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3Bw
CmluZGV4IDcwNWU4YjE4MDk2OTFjOTAyZjVlNzVhNzVjYmQwMGVlMzFkNmUxMTkuLjBhZGE3ZmVm
ZTc3ZjE5M2Q4NzQ2YWM5NDA1YzVjZjQyYTBkYmZkYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtMTIx
Niw4ICsxMjE2LDE1IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRDb250ZW50c1RvUGxhdGZv
cm1MYXllcihQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyLCBDCiAgICAgLy8gUGxhdGZvcm1D
QUxheWVyIGlzIHVzaW5nIGEgdXNlciBkYXRhIHBvaW50ZXIgaW4gdGhlIHJhdyBsYXllciwgYW5k
CiAgICAgLy8gdGhlIGNyZWF0b3Igb2YgdGhlIHJhdyBsYXllciBpcyB1c2luZyBpdCBmb3Igc29t
ZSBvdGhlciBwdXJwb3NlLgogICAgIC8vIEZvciBub3cgd2UgZG9uJ3Qgc3VwcG9ydCBzdWNoIGEg
Y2FzZS4KLSAgICBQbGF0Zm9ybUNBTGF5ZXIqIHBsYXRmb3JtQ0FMYXllciA9IFBsYXRmb3JtQ0FM
YXllcjo6cGxhdGZvcm1DQUxheWVyKHBsYXRmb3JtTGF5ZXIpOwotICAgIG1fY29udGVudHNMYXll
ciA9IHBsYXRmb3JtTGF5ZXIgPyAocGxhdGZvcm1DQUxheWVyID8gcGxhdGZvcm1DQUxheWVyIDog
Y3JlYXRlUGxhdGZvcm1DQUxheWVyKHBsYXRmb3JtTGF5ZXIsIHRoaXMpLnB0cigpKSA6IG51bGxw
dHI7CisgICAgaWYgKHBsYXRmb3JtTGF5ZXIpIHsKKyAgICAgICAgYXV0byBwbGF0Zm9ybUNBTGF5
ZXIgPSBQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllckZvckxheWVyKHBsYXRmb3JtTGF5
ZXIpOworICAgICAgICBpZiAocGxhdGZvcm1DQUxheWVyKQorICAgICAgICAgICAgbV9jb250ZW50
c0xheWVyID0gV1RGTW92ZShwbGF0Zm9ybUNBTGF5ZXIpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBtX2NvbnRlbnRzTGF5ZXIgPSBjcmVhdGVQbGF0Zm9ybUNBTGF5ZXIocGxhdGZvcm1MYXll
ciwgdGhpcyk7CisgICAgfSBlbHNlCisgICAgICAgIG1fY29udGVudHNMYXllciA9IG51bGxwdHI7
CisKICAgICBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlID0gcGxhdGZvcm1MYXllciA/IHB1cnBvc2Ug
OiBDb250ZW50c0xheWVyUHVycG9zZTo6Tm9uZTsKIAogICAgIGlmIChtX2NvbnRlbnRzQ2xpcHBp
bmdMYXllciAmJiBtX2NvbnRlbnRzTGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCmluZGV4IDQwMTE3MmM0MTJlZjhi
MGI3OTZmMWJhOWM1YWEwNTcxMDBhNTFkMjQuLjRjM2Q5ZDQ4YTQyMjQ1ZDVlYjVlMWVjOTAzYTkw
ZWVkNDExMjQ0NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL1BsYXRmb3JtQ0FMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCkBAIC05Miw3ICs5Miw3IEBAIHB1YmxpYzoKIAogICAg
IC8vIFRoaXMgZnVuY3Rpb24gcGFzc2VzIHRoZSBsYXllciBhcyBhIHZvaWQqIHJhdGhlciB0aGFu
IGEgUGxhdGZvcm1MYXllciBiZWNhdXNlIFBsYXRmb3JtTGF5ZXIKICAgICAvLyBpcyBkZWZpbmVk
IGRpZmZlcmVudGx5IGZvciBPYmogQyBhbmQgQysrLiBUaGlzIGFsbG93cyBjYWxsZXJzIGZyb20g
Ym90aCBsYW5ndWFnZXMuCi0gICAgc3RhdGljIFBsYXRmb3JtQ0FMYXllciogcGxhdGZvcm1DQUxh
eWVyKHZvaWQqIHBsYXRmb3JtTGF5ZXIpOworICAgIHN0YXRpYyBSZWZQdHI8UGxhdGZvcm1DQUxh
eWVyPiBwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcih2b2lkKiBwbGF0Zm9ybUxheWVyKTsKIAogICAg
IHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IHsgcmV0dXJuIG1f
bGF5ZXIuZ2V0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5tbQppbmRleCA2
NTI2MGNhYzAxMjhjZGE5NjBiYWRlMTI1MmU2ZjZjYTc3MThkYjJmLi5hYzk3YWFmYWM4ZWI2MWZk
ZWQyNmU5ZDk1Mzg3MWUzNjY0ZTZkOWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2Nv
YS5tbQpAQCAtNjksMjggKzY5LDMwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPFBs
YXRmb3JtQ0FMYXllckNvY29hPiBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6Y3JlYXRlKExheWVyVHlw
ZSBsYXllclR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIpCi17Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgUGxhdGZvcm1DQUxheWVyQ29jb2EobGF5ZXJUeXBlLCBvd25lcikpOwot
fQordXNpbmcgTGF5ZXJUb1BsYXRmb3JtQ0FMYXllck1hcCA9IEhhc2hNYXA8dm9pZCosIFBsYXRm
b3JtQ0FMYXllcio+OwogCi1SZWY8UGxhdGZvcm1DQUxheWVyQ29jb2E+IFBsYXRmb3JtQ0FMYXll
ckNvY29hOjpjcmVhdGUodm9pZCogcGxhdGZvcm1MYXllciwgUGxhdGZvcm1DQUxheWVyQ2xpZW50
KiBvd25lcikKK3N0YXRpYyBMYXllclRvUGxhdGZvcm1DQUxheWVyTWFwJiBsYXllclRvUGxhdGZv
cm1MYXllck1hcCgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGxhdGZvcm1DQUxheWVy
Q29jb2EoKF9fYnJpZGdlIENBTGF5ZXIgKilwbGF0Zm9ybUxheWVyLCBvd25lcikpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxMYXllclRvUGxhdGZvcm1DQUxheWVyTWFwPiBsYXllck1hcDsK
KyAgICByZXR1cm4gbGF5ZXJNYXA7CiB9CiAKLXN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IHBsYXRm
b3JtQ0FMYXllclBvaW50ZXIgPSBAIldLUGxhdGZvcm1DQUxheWVyIjsKLVBsYXRmb3JtQ0FMYXll
ciogUGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIodm9pZCogcGxhdGZvcm1MYXllcikK
K1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVy
Rm9yTGF5ZXIodm9pZCogcGxhdGZvcm1MYXllcikKIHsKICAgICBpZiAoIXBsYXRmb3JtTGF5ZXIp
CiAgICAgICAgIHJldHVybiAwOwogCi0gICAgLy8gUG9pbnRlciB0byBQbGF0Zm9ybUNBTGF5ZXIg
aXMga2VwdCBpbiBhIGtleSBvZiB0aGUgQ0FMYXllcgotICAgIFBsYXRmb3JtQ0FMYXllciogcGxh
dGZvcm1DQUxheWVyID0gbmlsOwotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAg
IHBsYXRmb3JtQ0FMYXllciA9IHN0YXRpY19jYXN0PFBsYXRmb3JtQ0FMYXllcio+KFtbKF9fYnJp
ZGdlIENBTGF5ZXIgKilwbGF0Zm9ybUxheWVyIHZhbHVlRm9yS2V5OnBsYXRmb3JtQ0FMYXllclBv
aW50ZXJdIHBvaW50ZXJWYWx1ZV0pOwotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAg
ICByZXR1cm4gcGxhdGZvcm1DQUxheWVyOworICAgIHJldHVybiBsYXllclRvUGxhdGZvcm1MYXll
ck1hcCgpLmdldChwbGF0Zm9ybUxheWVyKTsKK30KKworUmVmPFBsYXRmb3JtQ0FMYXllckNvY29h
PiBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6Y3JlYXRlKExheWVyVHlwZSBsYXllclR5cGUsIFBsYXRm
b3JtQ0FMYXllckNsaWVudCogb3duZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGxh
dGZvcm1DQUxheWVyQ29jb2EobGF5ZXJUeXBlLCBvd25lcikpOworfQorCitSZWY8UGxhdGZvcm1D
QUxheWVyQ29jb2E+IFBsYXRmb3JtQ0FMYXllckNvY29hOjpjcmVhdGUodm9pZCogcGxhdGZvcm1M
YXllciwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcikKK3sKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBQbGF0Zm9ybUNBTGF5ZXJDb2NvYSgoX19icmlkZ2UgQ0FMYXllciAqKXBsYXRmb3Jt
TGF5ZXIsIG93bmVyKSk7CiB9CiAKIHN0YXRpYyBNb25vdG9uaWNUaW1lIG1lZGlhVGltZVRvQ3Vy
cmVudFRpbWUoQ0ZUaW1lSW50ZXJ2YWwgdCkKQEAgLTI5Nyw4ICsyOTksOCBAQCBQbGF0Zm9ybUNB
TGF5ZXJDb2NvYTo6UGxhdGZvcm1DQUxheWVyQ29jb2EoUGxhdGZvcm1MYXllciogbGF5ZXIsIFBs
YXRmb3JtQ0FMYXllcgogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6Y29tbW9uSW5pdCgpCiB7
CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgLy8gU2F2ZSBhIHBvaW50ZXIg
dG8gJ3RoaXMnIGluIHRoZSBDQUxheWVyCi0gICAgW21fbGF5ZXIgc2V0VmFsdWU6W05TVmFsdWUg
dmFsdWVXaXRoUG9pbnRlcjp0aGlzXSBmb3JLZXk6cGxhdGZvcm1DQUxheWVyUG9pbnRlcl07CisK
KyAgICBsYXllclRvUGxhdGZvcm1MYXllck1hcCgpLmFkZChtX2xheWVyLmdldCgpLCB0aGlzKTsK
ICAgICAKICAgICAvLyBDbGVhciBhbGwgdGhlIGltcGxpY2l0IGFuaW1hdGlvbnMgb24gdGhlIENB
TGF5ZXIKICAgICBpZiAobV9sYXllclR5cGUgPT0gTGF5ZXJUeXBlQVZQbGF5ZXJMYXllciB8fCBt
X2xheWVyVHlwZSA9PSBMYXllclR5cGVDb250ZW50c1Byb3ZpZGVkTGF5ZXIgfHwgbV9sYXllclR5
cGUgPT0gTGF5ZXJUeXBlU2Nyb2xsQ29udGFpbmVyTGF5ZXIgfHwgbV9sYXllclR5cGUgPT0gTGF5
ZXJUeXBlQ3VzdG9tKQpAQCAtMzc4LDcgKzM4MCw3IEBAIFJlZjxQbGF0Zm9ybUNBTGF5ZXI+IFBs
YXRmb3JtQ0FMYXllckNvY29hOjpjbG9uZShQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyKSBj
CiAKIFBsYXRmb3JtQ0FMYXllckNvY29hOjp+UGxhdGZvcm1DQUxheWVyQ29jb2EoKQogewotICAg
IFttX2xheWVyIHNldFZhbHVlOm5pbCBmb3JLZXk6cGxhdGZvcm1DQUxheWVyUG9pbnRlcl07Cisg
ICAgbGF5ZXJUb1BsYXRmb3JtTGF5ZXJNYXAoKS5yZW1vdmUobV9sYXllci5nZXQoKSk7CiAgICAg
CiAgICAgLy8gUmVtb3ZlIHRoZSBvd25lciBwb2ludGVyIGZyb20gdGhlIGRlbGVnYXRlIGluIGNh
c2UgdGhlcmUgaXMgYSBwZW5kaW5nIGFuaW1hdGlvblN0YXJ0ZWQgZXZlbnQuCiAgICAgW3N0YXRp
Y19jYXN0PFdlYkFuaW1hdGlvbkRlbGVnYXRlKj4obV9kZWxlZ2F0ZS5nZXQoKSkgc2V0T3duZXI6
bmlsXTsKQEAgLTQzMiw3ICs0MzQsNyBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllckNvY29hOjpjb3B5
Q29udGVudHNGcm9tTGF5ZXIoUGxhdGZvcm1DQUxheWVyKiBsYXllcikKIAogUGxhdGZvcm1DQUxh
eWVyKiBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6c3VwZXJsYXllcigpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIHBsYXRmb3JtQ0FMYXllcigoX19icmlkZ2Ugdm9pZCopW21fbGF5ZXIgc3VwZXJsYXllcl0p
OworICAgIHJldHVybiBwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcigoX19icmlkZ2Ugdm9pZCopW21f
bGF5ZXIgc3VwZXJsYXllcl0pLmdldCgpOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllckNvY29h
OjpyZW1vdmVGcm9tU3VwZXJsYXllcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbQppbmRleCA2OGI1MjU4MDIwYjUwNGJhZTY2
YmZhMTgxNDU2MmUzMGFmODRkMDM1Li43NzkxMWU1MzQ1MTNiMDhmZGE5NjY1NDE5Mjc3ZjdlNzQw
OGVhZTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9XZWJHTExheWVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1dlYkdMTGF5ZXIubW0KQEAgLTE3OSw5ICsxNzksOSBAQCAtICh2b2lkKWRpc3BsYXkKICNl
bmRpZgogCiAgICAgX2NvbnRleHQtPm1hcmtMYXllckNvbXBvc2l0ZWQoKTsKLSAgICBXZWJDb3Jl
OjpQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyID0gV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpwbGF0
Zm9ybUNBTGF5ZXIoKF9fYnJpZGdlIHZvaWQqKXNlbGYpOworICAgIGF1dG8gbGF5ZXIgPSBXZWJD
b3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllckZvckxheWVyKChfX2JyaWRnZSB2
b2lkKilzZWxmKTsKICAgICBpZiAobGF5ZXIgJiYgbGF5ZXItPm93bmVyKCkpCi0gICAgICAgIGxh
eWVyLT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJMYXllckRpZERpc3BsYXkobGF5ZXIpOworICAg
ICAgICBsYXllci0+b3duZXIoKS0+cGxhdGZvcm1DQUxheWVyTGF5ZXJEaWREaXNwbGF5KGxheWVy
LmdldCgpKTsKIH0KIAogI2lmIFVTRShBTkdMRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5tbQppbmRleCA2NWU4NzgyMDYzZWI5MDU0OWY4MGNh
ZmI1YmI5MTIzM2FiNjIzYzkzLi43ZjlkOGUxOWJlODllYjQ0Mjg0MDVlYzYyODE0ZDMwYTlmYmUy
Mzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2Vi
TGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkxh
eWVyLm1tCkBAIC00OSwxMSArNDksMTEgQEAgQGltcGxlbWVudGF0aW9uIFdlYkxheWVyCiAKIC0g
KHZvaWQpZHJhd0luQ29udGV4dDooQ0dDb250ZXh0UmVmKWNvbnRleHQKIHsKLSAgICBXZWJDb3Jl
OjpQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyID0gV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpwbGF0
Zm9ybUNBTGF5ZXIoKF9fYnJpZGdlIHZvaWQqKXNlbGYpOworICAgIGF1dG8gbGF5ZXIgPSBXZWJD
b3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllckZvckxheWVyKChfX2JyaWRnZSB2
b2lkKilzZWxmKTsKICAgICBpZiAobGF5ZXIpIHsKICAgICAgICAgV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0IGdyYXBoaWNzQ29udGV4dChjb250ZXh0KTsKLSAgICAgICAgV2ViQ29yZTo6UGxhdGZv
cm1DQUxheWVyOjpSZXBhaW50UmVjdExpc3QgcmVjdHNUb1BhaW50ID0gV2ViQ29yZTo6UGxhdGZv
cm1DQUxheWVyOjpjb2xsZWN0UmVjdHNUb1BhaW50KGdyYXBoaWNzQ29udGV4dCwgbGF5ZXIpOwot
ICAgICAgICBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OmRyYXdMYXllckNvbnRlbnRzKGdyYXBo
aWNzQ29udGV4dCwgbGF5ZXIsIHJlY3RzVG9QYWludCwgc2VsZi5pc1JlbmRlcmluZ0luQ29udGV4
dCA/IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludFNuYXBzaG90dGluZyA6IFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJQYWludE5vcm1hbCk7CisgICAgICAgIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXll
cjo6UmVwYWludFJlY3RMaXN0IHJlY3RzVG9QYWludCA9IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXll
cjo6Y29sbGVjdFJlY3RzVG9QYWludChncmFwaGljc0NvbnRleHQsIGxheWVyLmdldCgpKTsKKyAg
ICAgICAgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpkcmF3TGF5ZXJDb250ZW50cyhncmFwaGlj
c0NvbnRleHQsIGxheWVyLmdldCgpLCByZWN0c1RvUGFpbnQsIHNlbGYuaXNSZW5kZXJpbmdJbkNv
bnRleHQgPyBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRTbmFwc2hvdHRpbmcgOiBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyUGFpbnROb3JtYWwpOwogICAgIH0KIH0KIApAQCAtODAsMTQgKzgwLDE0
IEBAIC0gKGlkPENBQWN0aW9uPilhY3Rpb25Gb3JLZXk6KE5TU3RyaW5nICopa2V5CiAKIC0gKHZv
aWQpc2V0TmVlZHNEaXNwbGF5CiB7Ci0gICAgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyKiBsYXll
ciA9IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyKChfX2JyaWRnZSB2
b2lkKilzZWxmKTsKKyAgICBhdXRvIGxheWVyID0gV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpw
bGF0Zm9ybUNBTGF5ZXJGb3JMYXllcigoX19icmlkZ2Ugdm9pZCopc2VsZik7CiAgICAgaWYgKGxh
eWVyICYmIGxheWVyLT5vd25lcigpICYmIGxheWVyLT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJE
cmF3c0NvbnRlbnQoKSkKICAgICAgICAgW3N1cGVyIHNldE5lZWRzRGlzcGxheV07CiB9CiAKIC0g
KHZvaWQpc2V0TmVlZHNEaXNwbGF5SW5SZWN0OihDR1JlY3QpZGlydHlSZWN0CiB7Ci0gICAgV2Vi
Q29yZTo6UGxhdGZvcm1DQUxheWVyKiBwbGF0Zm9ybUxheWVyID0gV2ViQ29yZTo6UGxhdGZvcm1D
QUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIoKF9fYnJpZGdlIHZvaWQqKXNlbGYpOworICAgIGF1dG8g
cGxhdGZvcm1MYXllciA9IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVy
Rm9yTGF5ZXIoKF9fYnJpZGdlIHZvaWQqKXNlbGYpOwogICAgIGlmICghcGxhdGZvcm1MYXllcikg
ewogICAgICAgICBbc3VwZXIgc2V0TmVlZHNEaXNwbGF5SW5SZWN0OmRpcnR5UmVjdF07CiAgICAg
ICAgIHJldHVybjsKQEAgLTk3LDcgKzk3LDcgQEAgLSAodm9pZClzZXROZWVkc0Rpc3BsYXlJblJl
Y3Q6KENHUmVjdClkaXJ0eVJlY3QKICAgICAgICAgaWYgKGxheWVyT3duZXItPnBsYXRmb3JtQ0FM
YXllckRyYXdzQ29udGVudCgpKSB7CiAgICAgICAgICAgICBbc3VwZXIgc2V0TmVlZHNEaXNwbGF5
SW5SZWN0OmRpcnR5UmVjdF07CiAKLSAgICAgICAgICAgIGlmIChsYXllck93bmVyLT5wbGF0Zm9y
bUNBTGF5ZXJTaG93UmVwYWludENvdW50ZXIocGxhdGZvcm1MYXllcikpIHsKKyAgICAgICAgICAg
IGlmIChsYXllck93bmVyLT5wbGF0Zm9ybUNBTGF5ZXJTaG93UmVwYWludENvdW50ZXIocGxhdGZv
cm1MYXllci5nZXQoKSkpIHsKICAgICAgICAgICAgICAgICBDR1JlY3QgYm91bmRzID0gW3NlbGYg
Ym91bmRzXTsKICAgICAgICAgICAgICAgICBDR1JlY3QgaW5kaWNhdG9yUmVjdCA9IENHUmVjdE1h
a2UoYm91bmRzLm9yaWdpbi54LCBib3VuZHMub3JpZ2luLnksIDUyLCAyNyk7CiAgICAgICAgICAg
ICAgICAgW3N1cGVyIHNldE5lZWRzRGlzcGxheUluUmVjdDppbmRpY2F0b3JSZWN0XTsKQEAgLTEx
NCw5ICsxMTQsOSBAQCAtICh2b2lkKWRpc3BsYXkKICNlbmRpZgogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CiAgICAgW3N1cGVyIGRpc3BsYXldOwotICAgIFdlYkNvcmU6OlBsYXRmb3JtQ0FM
YXllciogbGF5ZXIgPSBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllcigo
X19icmlkZ2Ugdm9pZCopc2VsZik7CisgICAgYXV0byBsYXllciA9IFdlYkNvcmU6OlBsYXRmb3Jt
Q0FMYXllcjo6cGxhdGZvcm1DQUxheWVyRm9yTGF5ZXIoKF9fYnJpZGdlIHZvaWQqKXNlbGYpOwog
ICAgIGlmIChsYXllciAmJiBsYXllci0+b3duZXIoKSkKLSAgICAgICAgbGF5ZXItPm93bmVyKCkt
PnBsYXRmb3JtQ0FMYXllckxheWVyRGlkRGlzcGxheShsYXllcik7CisgICAgICAgIGxheWVyLT5v
d25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJMYXllckRpZERpc3BsYXkobGF5ZXIuZ2V0KCkpOwogfQog
CiAtICh2b2lkKWRyYXdJbkNvbnRleHQ6KENHQ29udGV4dFJlZiljb250ZXh0CkBAIC0xMjYsMTQg
KzEyNiwxNCBAQCAtICh2b2lkKWRyYXdJbkNvbnRleHQ6KENHQ29udGV4dFJlZiljb250ZXh0CiAg
ICAgICAgIFdlYlRocmVhZExvY2soKTsKICNlbmRpZgogICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7Ci0gICAgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyKiBsYXllciA9IFdlYkNvcmU6OlBsYXRm
b3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyKChfX2JyaWRnZSB2b2lkKilzZWxmKTsKKyAgICBh
dXRvIGxheWVyID0gV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXJGb3JM
YXllcigoX19icmlkZ2Ugdm9pZCopc2VsZik7CiAgICAgaWYgKGxheWVyICYmIGxheWVyLT5vd25l
cigpKSB7CiAgICAgICAgIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCBncmFwaGljc0NvbnRleHQo
Y29udGV4dCk7CiAgICAgICAgIGdyYXBoaWNzQ29udGV4dC5zZXRJc0NBTGF5ZXJDb250ZXh0KHRy
dWUpOwogICAgICAgICBncmFwaGljc0NvbnRleHQuc2V0SXNBY2NlbGVyYXRlZENvbnRleHQobGF5
ZXItPmFjY2VsZXJhdGVzRHJhd2luZygpKTsKIAogICAgICAgICBXZWJDb3JlOjpGbG9hdFJlY3Qg
Y2xpcEJvdW5kcyA9IENHQ29udGV4dEdldENsaXBCb3VuZGluZ0JveChjb250ZXh0KTsKLSAgICAg
ICAgbGF5ZXItPm93bmVyKCktPnBsYXRmb3JtQ0FMYXllclBhaW50Q29udGVudHMobGF5ZXIsIGdy
YXBoaWNzQ29udGV4dCwgY2xpcEJvdW5kcywgc2VsZi5pc1JlbmRlcmluZ0luQ29udGV4dCA/IFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludFNuYXBzaG90dGluZyA6IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJQYWludE5vcm1hbCk7CisgICAgICAgIGxheWVyLT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5
ZXJQYWludENvbnRlbnRzKGxheWVyLmdldCgpLCBncmFwaGljc0NvbnRleHQsIGNsaXBCb3VuZHMs
IHNlbGYuaXNSZW5kZXJpbmdJbkNvbnRleHQgPyBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRT
bmFwc2hvdHRpbmcgOiBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnROb3JtYWwpOwogICAgIH0K
IH0KIAo=
</data>
<flag name="review"
          id="407437"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391961</attachid>
            <date>2020-02-27 22:03:59 -0800</date>
            <delta_ts>2020-02-27 23:11:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208358-20200227220358.patch</filename>
            <type>text/plain</type>
            <size>15499</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTJjNWQ1NDhkYWE3YmQz
YzZhMDAzMjIyY2E1MzdhNWI3NjY1ZDNmMC4uYzc2OGM2ZmM3ZmY1ODgwMjQ2MDkzNTFmY2NiMjIy
YzYzZjZkOWY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTAyLTI3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3AgdXNpbmcg
LVtDQUxheWVyIHNldFZhbHVlOmZvcktleTpdIHRvIHN0b3JlIGJhY2sgcG9pbnRlcnMgdG8gUGxh
dGZvcm1DQUxheWVyKgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA4MzU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAg
ICBXZSB1c2VkIC1bQ0FsYXllciBzZXRWYWx1ZTpmb3JLZXk6QCJXS1BsYXRmb3JtQ0FMYXllciJd
IHRvIHN0b3JlIGFzc29jaWF0ZSBQbGF0Zm9ybUNBTGF5ZXIqCisgICAgICAgIHdpdGggQ0FMYXll
cnMuIEhvd2V2ZXIsIHRoaXMgaGFzIHNvbWUgcGVyZm9ybWFuY2UgY29zdCwgYW5kIHdvbid0IHdv
cmsgZm9yIGEgbmVhci1mdXR1cmUgd29ybGQKKyAgICAgICAgd2hlcmUgdGhlIHNjcm9sbGluZyB0
aHJlYWQgbmVlZHMgdG8gZ2V0IGF0IFBsYXRmb3JtQ0FMYXllcnMuCisKKyAgICAgICAgUmVwbGFj
ZSB3aXRoIGEgc3RhdGljIEhhc2hNYXA8PiBvZiBDQUxheWVyKiB0byBQbGF0Zm9ybUNBTGF5ZXIq
LiBBbHNvIHJlbmFtZSBwbGF0Zm9ybUNBTGF5ZXIoKQorICAgICAgICB0byBwbGF0Zm9ybUNBTGF5
ZXJGb3JMYXllcigpIHNvIGl0J3MgZWFzaWVyIHRvIGZpbmQuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllckNBOjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjpsYXllclRvUGxhdGZvcm1MYXllck1hcCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9y
bUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllckZvckxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBs
YXRmb3JtQ0FMYXllckNvY29hOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1D
QUxheWVyQ29jb2E6OmNvbW1vbkluaXQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1DQUxh
eWVyQ29jb2E6On5QbGF0Zm9ybUNBTGF5ZXJDb2NvYSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybUNBTGF5ZXJDb2NvYTo6c3VwZXJsYXllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQ
bGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllcik6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2ViR0xMYXll
ciBkaXNwbGF5XSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkxheWVyLm1t
OgorICAgICAgICAoLVtXZWJMYXllciBkcmF3SW5Db250ZXh0Ol0pOgorICAgICAgICAoLVtXZWJT
aW1wbGVMYXllciBzZXROZWVkc0Rpc3BsYXldKToKKyAgICAgICAgKC1bV2ViU2ltcGxlTGF5ZXIg
c2V0TmVlZHNEaXNwbGF5SW5SZWN0Ol0pOgorICAgICAgICAoLVtXZWJTaW1wbGVMYXllciBkaXNw
bGF5XSk6CisgICAgICAgICgtW1dlYlNpbXBsZUxheWVyIGRyYXdJbkNvbnRleHQ6XSk6CisKIDIw
MjAtMDItMjcgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIE1lbW9y
eVJlbGVhc2UgbG9nZ2luZyB1c2VzIGEgdW5pcXVlX3B0ciB3aXRoIHVuY2xlYXIgbGlmZXRpbWUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGlj
c0xheWVyQ0EuY3BwCmluZGV4IDcwNWU4YjE4MDk2OTFjOTAyZjVlNzVhNzVjYmQwMGVlMzFkNmUx
MTkuLjBhZGE3ZmVmZTc3ZjE5M2Q4NzQ2YWM5NDA1YzVjZjQyYTBkYmZkYzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmNwcApAQCAtMTIxNiw4ICsxMjE2LDE1IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRDb250
ZW50c1RvUGxhdGZvcm1MYXllcihQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyLCBDCiAgICAg
Ly8gUGxhdGZvcm1DQUxheWVyIGlzIHVzaW5nIGEgdXNlciBkYXRhIHBvaW50ZXIgaW4gdGhlIHJh
dyBsYXllciwgYW5kCiAgICAgLy8gdGhlIGNyZWF0b3Igb2YgdGhlIHJhdyBsYXllciBpcyB1c2lu
ZyBpdCBmb3Igc29tZSBvdGhlciBwdXJwb3NlLgogICAgIC8vIEZvciBub3cgd2UgZG9uJ3Qgc3Vw
cG9ydCBzdWNoIGEgY2FzZS4KLSAgICBQbGF0Zm9ybUNBTGF5ZXIqIHBsYXRmb3JtQ0FMYXllciA9
IFBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyKHBsYXRmb3JtTGF5ZXIpOwotICAgIG1f
Y29udGVudHNMYXllciA9IHBsYXRmb3JtTGF5ZXIgPyAocGxhdGZvcm1DQUxheWVyID8gcGxhdGZv
cm1DQUxheWVyIDogY3JlYXRlUGxhdGZvcm1DQUxheWVyKHBsYXRmb3JtTGF5ZXIsIHRoaXMpLnB0
cigpKSA6IG51bGxwdHI7CisgICAgaWYgKHBsYXRmb3JtTGF5ZXIpIHsKKyAgICAgICAgYXV0byBw
bGF0Zm9ybUNBTGF5ZXIgPSBQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllckZvckxheWVy
KHBsYXRmb3JtTGF5ZXIpOworICAgICAgICBpZiAocGxhdGZvcm1DQUxheWVyKQorICAgICAgICAg
ICAgbV9jb250ZW50c0xheWVyID0gV1RGTW92ZShwbGF0Zm9ybUNBTGF5ZXIpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBtX2NvbnRlbnRzTGF5ZXIgPSBjcmVhdGVQbGF0Zm9ybUNBTGF5ZXIo
cGxhdGZvcm1MYXllciwgdGhpcyk7CisgICAgfSBlbHNlCisgICAgICAgIG1fY29udGVudHNMYXll
ciA9IG51bGxwdHI7CisKICAgICBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlID0gcGxhdGZvcm1MYXll
ciA/IHB1cnBvc2UgOiBDb250ZW50c0xheWVyUHVycG9zZTo6Tm9uZTsKIAogICAgIGlmIChtX2Nv
bnRlbnRzQ2xpcHBpbmdMYXllciAmJiBtX2NvbnRlbnRzTGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCmluZGV4IDQw
MTE3MmM0MTJlZjhiMGI3OTZmMWJhOWM1YWEwNTcxMDBhNTFkMjQuLjRjM2Q5ZDQ4YTQyMjQ1ZDVl
YjVlMWVjOTAzYTkwZWVkNDExMjQ0NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCkBAIC05Miw3ICs5Miw3IEBAIHB1
YmxpYzoKIAogICAgIC8vIFRoaXMgZnVuY3Rpb24gcGFzc2VzIHRoZSBsYXllciBhcyBhIHZvaWQq
IHJhdGhlciB0aGFuIGEgUGxhdGZvcm1MYXllciBiZWNhdXNlIFBsYXRmb3JtTGF5ZXIKICAgICAv
LyBpcyBkZWZpbmVkIGRpZmZlcmVudGx5IGZvciBPYmogQyBhbmQgQysrLiBUaGlzIGFsbG93cyBj
YWxsZXJzIGZyb20gYm90aCBsYW5ndWFnZXMuCi0gICAgc3RhdGljIFBsYXRmb3JtQ0FMYXllciog
cGxhdGZvcm1DQUxheWVyKHZvaWQqIHBsYXRmb3JtTGF5ZXIpOworICAgIHN0YXRpYyBSZWZQdHI8
UGxhdGZvcm1DQUxheWVyPiBwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcih2b2lkKiBwbGF0Zm9ybUxh
eWVyKTsKIAogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0
IHsgcmV0dXJuIG1fbGF5ZXIuZ2V0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2Nv
YS5tbQppbmRleCA2NTI2MGNhYzAxMjhjZGE5NjBiYWRlMTI1MmU2ZjZjYTc3MThkYjJmLi5hYzk3
YWFmYWM4ZWI2MWZkZWQyNmU5ZDk1Mzg3MWUzNjY0ZTZkOWI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9y
bUNBTGF5ZXJDb2NvYS5tbQpAQCAtNjksMjggKzY5LDMwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotUmVmPFBsYXRmb3JtQ0FMYXllckNvY29hPiBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6Y3Jl
YXRlKExheWVyVHlwZSBsYXllclR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIpCi17
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGxhdGZvcm1DQUxheWVyQ29jb2EobGF5ZXJUeXBl
LCBvd25lcikpOwotfQordXNpbmcgTGF5ZXJUb1BsYXRmb3JtQ0FMYXllck1hcCA9IEhhc2hNYXA8
dm9pZCosIFBsYXRmb3JtQ0FMYXllcio+OwogCi1SZWY8UGxhdGZvcm1DQUxheWVyQ29jb2E+IFBs
YXRmb3JtQ0FMYXllckNvY29hOjpjcmVhdGUodm9pZCogcGxhdGZvcm1MYXllciwgUGxhdGZvcm1D
QUxheWVyQ2xpZW50KiBvd25lcikKK3N0YXRpYyBMYXllclRvUGxhdGZvcm1DQUxheWVyTWFwJiBs
YXllclRvUGxhdGZvcm1MYXllck1hcCgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGxh
dGZvcm1DQUxheWVyQ29jb2EoKF9fYnJpZGdlIENBTGF5ZXIgKilwbGF0Zm9ybUxheWVyLCBvd25l
cikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMYXllclRvUGxhdGZvcm1DQUxheWVyTWFw
PiBsYXllck1hcDsKKyAgICByZXR1cm4gbGF5ZXJNYXA7CiB9CiAKLXN0YXRpYyBOU1N0cmluZyAq
IGNvbnN0IHBsYXRmb3JtQ0FMYXllclBvaW50ZXIgPSBAIldLUGxhdGZvcm1DQUxheWVyIjsKLVBs
YXRmb3JtQ0FMYXllciogUGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIodm9pZCogcGxh
dGZvcm1MYXllcikKK1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllcjo6cGxh
dGZvcm1DQUxheWVyRm9yTGF5ZXIodm9pZCogcGxhdGZvcm1MYXllcikKIHsKICAgICBpZiAoIXBs
YXRmb3JtTGF5ZXIpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgLy8gUG9pbnRlciB0byBQbGF0
Zm9ybUNBTGF5ZXIgaXMga2VwdCBpbiBhIGtleSBvZiB0aGUgQ0FMYXllcgotICAgIFBsYXRmb3Jt
Q0FMYXllciogcGxhdGZvcm1DQUxheWVyID0gbmlsOwotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUwotICAgIHBsYXRmb3JtQ0FMYXllciA9IHN0YXRpY19jYXN0PFBsYXRmb3JtQ0FMYXll
cio+KFtbKF9fYnJpZGdlIENBTGF5ZXIgKilwbGF0Zm9ybUxheWVyIHZhbHVlRm9yS2V5OnBsYXRm
b3JtQ0FMYXllclBvaW50ZXJdIHBvaW50ZXJWYWx1ZV0pOwotICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKLSAgICByZXR1cm4gcGxhdGZvcm1DQUxheWVyOworICAgIHJldHVybiBsYXllclRv
UGxhdGZvcm1MYXllck1hcCgpLmdldChwbGF0Zm9ybUxheWVyKTsKK30KKworUmVmPFBsYXRmb3Jt
Q0FMYXllckNvY29hPiBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6Y3JlYXRlKExheWVyVHlwZSBsYXll
clR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIpCit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUGxhdGZvcm1DQUxheWVyQ29jb2EobGF5ZXJUeXBlLCBvd25lcikpOworfQorCitS
ZWY8UGxhdGZvcm1DQUxheWVyQ29jb2E+IFBsYXRmb3JtQ0FMYXllckNvY29hOjpjcmVhdGUodm9p
ZCogcGxhdGZvcm1MYXllciwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcikKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBQbGF0Zm9ybUNBTGF5ZXJDb2NvYSgoX19icmlkZ2UgQ0FMYXll
ciAqKXBsYXRmb3JtTGF5ZXIsIG93bmVyKSk7CiB9CiAKIHN0YXRpYyBNb25vdG9uaWNUaW1lIG1l
ZGlhVGltZVRvQ3VycmVudFRpbWUoQ0ZUaW1lSW50ZXJ2YWwgdCkKQEAgLTI5Nyw4ICsyOTksOCBA
QCBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6UGxhdGZvcm1DQUxheWVyQ29jb2EoUGxhdGZvcm1MYXll
ciogbGF5ZXIsIFBsYXRmb3JtQ0FMYXllcgogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6Y29t
bW9uSW5pdCgpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgLy8gU2F2
ZSBhIHBvaW50ZXIgdG8gJ3RoaXMnIGluIHRoZSBDQUxheWVyCi0gICAgW21fbGF5ZXIgc2V0VmFs
dWU6W05TVmFsdWUgdmFsdWVXaXRoUG9pbnRlcjp0aGlzXSBmb3JLZXk6cGxhdGZvcm1DQUxheWVy
UG9pbnRlcl07CisKKyAgICBsYXllclRvUGxhdGZvcm1MYXllck1hcCgpLmFkZChtX2xheWVyLmdl
dCgpLCB0aGlzKTsKICAgICAKICAgICAvLyBDbGVhciBhbGwgdGhlIGltcGxpY2l0IGFuaW1hdGlv
bnMgb24gdGhlIENBTGF5ZXIKICAgICBpZiAobV9sYXllclR5cGUgPT0gTGF5ZXJUeXBlQVZQbGF5
ZXJMYXllciB8fCBtX2xheWVyVHlwZSA9PSBMYXllclR5cGVDb250ZW50c1Byb3ZpZGVkTGF5ZXIg
fHwgbV9sYXllclR5cGUgPT0gTGF5ZXJUeXBlU2Nyb2xsQ29udGFpbmVyTGF5ZXIgfHwgbV9sYXll
clR5cGUgPT0gTGF5ZXJUeXBlQ3VzdG9tKQpAQCAtMzc4LDcgKzM4MCw3IEBAIFJlZjxQbGF0Zm9y
bUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllckNvY29hOjpjbG9uZShQbGF0Zm9ybUNBTGF5ZXJDbGll
bnQqIG93bmVyKSBjCiAKIFBsYXRmb3JtQ0FMYXllckNvY29hOjp+UGxhdGZvcm1DQUxheWVyQ29j
b2EoKQogewotICAgIFttX2xheWVyIHNldFZhbHVlOm5pbCBmb3JLZXk6cGxhdGZvcm1DQUxheWVy
UG9pbnRlcl07CisgICAgbGF5ZXJUb1BsYXRmb3JtTGF5ZXJNYXAoKS5yZW1vdmUobV9sYXllci5n
ZXQoKSk7CiAgICAgCiAgICAgLy8gUmVtb3ZlIHRoZSBvd25lciBwb2ludGVyIGZyb20gdGhlIGRl
bGVnYXRlIGluIGNhc2UgdGhlcmUgaXMgYSBwZW5kaW5nIGFuaW1hdGlvblN0YXJ0ZWQgZXZlbnQu
CiAgICAgW3N0YXRpY19jYXN0PFdlYkFuaW1hdGlvbkRlbGVnYXRlKj4obV9kZWxlZ2F0ZS5nZXQo
KSkgc2V0T3duZXI6bmlsXTsKQEAgLTQzMiw3ICs0MzQsNyBAQCB2b2lkIFBsYXRmb3JtQ0FMYXll
ckNvY29hOjpjb3B5Q29udGVudHNGcm9tTGF5ZXIoUGxhdGZvcm1DQUxheWVyKiBsYXllcikKIAog
UGxhdGZvcm1DQUxheWVyKiBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6c3VwZXJsYXllcigpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIHBsYXRmb3JtQ0FMYXllcigoX19icmlkZ2Ugdm9pZCopW21fbGF5ZXIg
c3VwZXJsYXllcl0pOworICAgIHJldHVybiBwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcigoX19icmlk
Z2Ugdm9pZCopW21fbGF5ZXIgc3VwZXJsYXllcl0pLmdldCgpOwogfQogCiB2b2lkIFBsYXRmb3Jt
Q0FMYXllckNvY29hOjpyZW1vdmVGcm9tU3VwZXJsYXllcigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJX
aW4uY3BwCmluZGV4IDYzNmQyMGQ5N2YwYTY4ZDY0N2UyNWU2YTQ4NTg0YTkxMDRiOTI5NjkuLmUy
Mzk5YjdhZTRkNTkwYjMzNTg0YWMxMGQ3NjdjMzA3YjQwYzVjZTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNB
TGF5ZXJXaW4uY3BwCkBAIC05Miw3ICs5Miw3IEBAIHN0YXRpYyBQbGF0Zm9ybUNBTGF5ZXJXaW5J
bnRlcm5hbCogaW50ZXJuKHZvaWQqIGxheWVyKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxQbGF0
Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbCo+KENBQ0ZMYXllckdldFVzZXJEYXRhKHN0YXRpY19jYXN0
PENBQ0ZMYXllclJlZj4obGF5ZXIpKSk7CiB9CiAKLVBsYXRmb3JtQ0FMYXllciogUGxhdGZvcm1D
QUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIodm9pZCogcGxhdGZvcm1MYXllcikKK1BsYXRmb3JtQ0FM
YXllciogUGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcih2b2lkKiBwbGF0
Zm9ybUxheWVyKQogewogICAgIGlmICghcGxhdGZvcm1MYXllcikKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CkBAIC0xMjcsNyArMTI3LDcgQEAgc3RhdGljIHZvaWQgZGlzcGxheUNhbGxiYWNrKENB
Q0ZMYXllclJlZiBjYUxheWVyLCBDR0NvbnRleHRSZWYgY29udGV4dCkKIAogc3RhdGljIHZvaWQg
bGF5b3V0U3VibGF5ZXJzUHJvYyhDQUNGTGF5ZXJSZWYgY2FMYXllcikgCiB7Ci0gICAgUGxhdGZv
cm1DQUxheWVyKiBsYXllciA9IFBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyKGNhTGF5
ZXIpOworICAgIFBsYXRmb3JtQ0FMYXllciogbGF5ZXIgPSBQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRm
b3JtQ0FMYXllckZvckxheWVyKGNhTGF5ZXIpOwogICAgIGlmIChsYXllciAmJiBsYXllci0+b3du
ZXIoKSkKICAgICAgICAgbGF5ZXItPm93bmVyKCktPnBsYXRmb3JtQ0FMYXllckxheW91dFN1Ymxh
eWVyc09mTGF5ZXIobGF5ZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbkludGVybmFsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW5JbnRl
cm5hbC5jcHAKaW5kZXggNWUwNGMyYjQyMzI4OTU4Y2ZiNDBhYWUzYjQ0MGI3OGRhNDFhYzM1NS4u
Y2YxOTVmMjM1NWU1MzY0Y2ZhMmM4NWNmNzIxN2UyMTgxMDA0MGYzNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbklu
dGVybmFsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4v
UGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWwuY3BwCkBAIC0yMDcsNyArMjA3LDcgQEAgdm9pZCBQ
bGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbDo6Z2V0U3VibGF5ZXJzKFBsYXRmb3JtQ0FMYXllckxp
c3QmIGxpc3QpIGNvbnN0CiAKICAgICBsaXN0LnJlc2l6ZShjb3VudCk7CiAgICAgZm9yIChzaXpl
X3QgYXJyYXlJbmRleCA9IDA7IGFycmF5SW5kZXggPCBjb3VudDsgKythcnJheUluZGV4KQotICAg
ICAgICBsaXN0W2FycmF5SW5kZXhdID0gUGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIo
Y29uc3RfY2FzdDx2b2lkKj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChzdWJsYXllcnMsIGFycmF5
SW5kZXgpKSk7CisgICAgICAgIGxpc3RbYXJyYXlJbmRleF0gPSBQbGF0Zm9ybUNBTGF5ZXI6OnBs
YXRmb3JtQ0FMYXllckZvckxheWVyKGNvbnN0X2Nhc3Q8dm9pZCo+KENGQXJyYXlHZXRWYWx1ZUF0
SW5kZXgoc3VibGF5ZXJzLCBhcnJheUluZGV4KSkpOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXll
cldpbkludGVybmFsOjpyZW1vdmVBbGxTdWJsYXllcnMoKQpAQCAtMjU3LDcgKzI1Nyw3IEBAIFBs
YXRmb3JtQ0FMYXllciogUGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWw6OnN1YmxheWVyQXRJbmRl
eChpbnQgaW5kZXgpIGNvbnN0CiAgICAgaWYgKCFzdWJsYXllcnMgfHwgaW5kZXggPCAwIHx8IENG
QXJyYXlHZXRDb3VudChzdWJsYXllcnMpIDw9IGluZGV4KQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICAKLSAgICByZXR1cm4gUGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIoc3Rh
dGljX2Nhc3Q8Q0FDRkxheWVyUmVmPihjb25zdF9jYXN0PHZvaWQqPihDRkFycmF5R2V0VmFsdWVB
dEluZGV4KHN1YmxheWVycywgaW5kZXgpKSkpOworICAgIHJldHVybiBQbGF0Zm9ybUNBTGF5ZXI6
OnBsYXRmb3JtQ0FMYXllckZvckxheWVyKHN0YXRpY19jYXN0PENBQ0ZMYXllclJlZj4oY29uc3Rf
Y2FzdDx2b2lkKj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChzdWJsYXllcnMsIGluZGV4KSkpKTsK
IH0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbDo6c2V0Qm91bmRzKGNvbnN0IEZs
b2F0UmVjdCYgcmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1dlYkdMTGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJHTExheWVyLm1tCmluZGV4IDY4YjUyNTgwMjBiNTA0YmFlNjZiZmExODE0NTYy
ZTMwYWY4NGQwMzUuLjc3OTExZTUzNDUxM2IwOGZkYTk2NjU0MTkyNzdmN2U3NDA4ZWFlM2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5
ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xM
YXllci5tbQpAQCAtMTc5LDkgKzE3OSw5IEBAIC0gKHZvaWQpZGlzcGxheQogI2VuZGlmCiAKICAg
ICBfY29udGV4dC0+bWFya0xheWVyQ29tcG9zaXRlZCgpOwotICAgIFdlYkNvcmU6OlBsYXRmb3Jt
Q0FMYXllciogbGF5ZXIgPSBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXll
cigoX19icmlkZ2Ugdm9pZCopc2VsZik7CisgICAgYXV0byBsYXllciA9IFdlYkNvcmU6OlBsYXRm
b3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyRm9yTGF5ZXIoKF9fYnJpZGdlIHZvaWQqKXNlbGYp
OwogICAgIGlmIChsYXllciAmJiBsYXllci0+b3duZXIoKSkKLSAgICAgICAgbGF5ZXItPm93bmVy
KCktPnBsYXRmb3JtQ0FMYXllckxheWVyRGlkRGlzcGxheShsYXllcik7CisgICAgICAgIGxheWVy
LT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJMYXllckRpZERpc3BsYXkobGF5ZXIuZ2V0KCkpOwog
fQogCiAjaWYgVVNFKEFOR0xFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL1dlYkxheWVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL1dlYkxheWVyLm1tCmluZGV4IDY1ZTg3ODIwNjNlYjkwNTQ5ZjgwY2FmYjViYjkxMjMz
YWI2MjNjOTMuLjdmOWQ4ZTE5YmU4OWViNDQyODQwNWVjNjI4MTRkMzBhOWZiZTIzNzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIubW0KQEAg
LTQ5LDExICs0OSwxMSBAQCBAaW1wbGVtZW50YXRpb24gV2ViTGF5ZXIKIAogLSAodm9pZClkcmF3
SW5Db250ZXh0OihDR0NvbnRleHRSZWYpY29udGV4dAogewotICAgIFdlYkNvcmU6OlBsYXRmb3Jt
Q0FMYXllciogbGF5ZXIgPSBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXll
cigoX19icmlkZ2Ugdm9pZCopc2VsZik7CisgICAgYXV0byBsYXllciA9IFdlYkNvcmU6OlBsYXRm
b3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyRm9yTGF5ZXIoKF9fYnJpZGdlIHZvaWQqKXNlbGYp
OwogICAgIGlmIChsYXllcikgewogICAgICAgICBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQgZ3Jh
cGhpY3NDb250ZXh0KGNvbnRleHQpOwotICAgICAgICBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6
OlJlcGFpbnRSZWN0TGlzdCByZWN0c1RvUGFpbnQgPSBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6
OmNvbGxlY3RSZWN0c1RvUGFpbnQoZ3JhcGhpY3NDb250ZXh0LCBsYXllcik7Ci0gICAgICAgIFdl
YkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6ZHJhd0xheWVyQ29udGVudHMoZ3JhcGhpY3NDb250ZXh0
LCBsYXllciwgcmVjdHNUb1BhaW50LCBzZWxmLmlzUmVuZGVyaW5nSW5Db250ZXh0ID8gV2ViQ29y
ZTo6R3JhcGhpY3NMYXllclBhaW50U25hcHNob3R0aW5nIDogV2ViQ29yZTo6R3JhcGhpY3NMYXll
clBhaW50Tm9ybWFsKTsKKyAgICAgICAgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpSZXBhaW50
UmVjdExpc3QgcmVjdHNUb1BhaW50ID0gV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpjb2xsZWN0
UmVjdHNUb1BhaW50KGdyYXBoaWNzQ29udGV4dCwgbGF5ZXIuZ2V0KCkpOworICAgICAgICBXZWJD
b3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OmRyYXdMYXllckNvbnRlbnRzKGdyYXBoaWNzQ29udGV4dCwg
bGF5ZXIuZ2V0KCksIHJlY3RzVG9QYWludCwgc2VsZi5pc1JlbmRlcmluZ0luQ29udGV4dCA/IFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludFNuYXBzaG90dGluZyA6IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJQYWludE5vcm1hbCk7CiAgICAgfQogfQogCkBAIC04MCwxNCArODAsMTQgQEAgLSAoaWQ8
Q0FBY3Rpb24+KWFjdGlvbkZvcktleTooTlNTdHJpbmcgKilrZXkKIAogLSAodm9pZClzZXROZWVk
c0Rpc3BsYXkKIHsKLSAgICBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyID0gV2ViQ29y
ZTo6UGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIoKF9fYnJpZGdlIHZvaWQqKXNlbGYp
OworICAgIGF1dG8gbGF5ZXIgPSBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FM
YXllckZvckxheWVyKChfX2JyaWRnZSB2b2lkKilzZWxmKTsKICAgICBpZiAobGF5ZXIgJiYgbGF5
ZXItPm93bmVyKCkgJiYgbGF5ZXItPm93bmVyKCktPnBsYXRmb3JtQ0FMYXllckRyYXdzQ29udGVu
dCgpKQogICAgICAgICBbc3VwZXIgc2V0TmVlZHNEaXNwbGF5XTsKIH0KIAogLSAodm9pZClzZXRO
ZWVkc0Rpc3BsYXlJblJlY3Q6KENHUmVjdClkaXJ0eVJlY3QKIHsKLSAgICBXZWJDb3JlOjpQbGF0
Zm9ybUNBTGF5ZXIqIHBsYXRmb3JtTGF5ZXIgPSBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OnBs
YXRmb3JtQ0FMYXllcigoX19icmlkZ2Ugdm9pZCopc2VsZik7CisgICAgYXV0byBwbGF0Zm9ybUxh
eWVyID0gV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcigo
X19icmlkZ2Ugdm9pZCopc2VsZik7CiAgICAgaWYgKCFwbGF0Zm9ybUxheWVyKSB7CiAgICAgICAg
IFtzdXBlciBzZXROZWVkc0Rpc3BsYXlJblJlY3Q6ZGlydHlSZWN0XTsKICAgICAgICAgcmV0dXJu
OwpAQCAtOTcsNyArOTcsNyBAQCAtICh2b2lkKXNldE5lZWRzRGlzcGxheUluUmVjdDooQ0dSZWN0
KWRpcnR5UmVjdAogICAgICAgICBpZiAobGF5ZXJPd25lci0+cGxhdGZvcm1DQUxheWVyRHJhd3ND
b250ZW50KCkpIHsKICAgICAgICAgICAgIFtzdXBlciBzZXROZWVkc0Rpc3BsYXlJblJlY3Q6ZGly
dHlSZWN0XTsKIAotICAgICAgICAgICAgaWYgKGxheWVyT3duZXItPnBsYXRmb3JtQ0FMYXllclNo
b3dSZXBhaW50Q291bnRlcihwbGF0Zm9ybUxheWVyKSkgeworICAgICAgICAgICAgaWYgKGxheWVy
T3duZXItPnBsYXRmb3JtQ0FMYXllclNob3dSZXBhaW50Q291bnRlcihwbGF0Zm9ybUxheWVyLmdl
dCgpKSkgewogICAgICAgICAgICAgICAgIENHUmVjdCBib3VuZHMgPSBbc2VsZiBib3VuZHNdOwog
ICAgICAgICAgICAgICAgIENHUmVjdCBpbmRpY2F0b3JSZWN0ID0gQ0dSZWN0TWFrZShib3VuZHMu
b3JpZ2luLngsIGJvdW5kcy5vcmlnaW4ueSwgNTIsIDI3KTsKICAgICAgICAgICAgICAgICBbc3Vw
ZXIgc2V0TmVlZHNEaXNwbGF5SW5SZWN0OmluZGljYXRvclJlY3RdOwpAQCAtMTE0LDkgKzExNCw5
IEBAIC0gKHZvaWQpZGlzcGxheQogI2VuZGlmCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
ICAgICBbc3VwZXIgZGlzcGxheV07Ci0gICAgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyKiBsYXll
ciA9IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyKChfX2JyaWRnZSB2
b2lkKilzZWxmKTsKKyAgICBhdXRvIGxheWVyID0gV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpw
bGF0Zm9ybUNBTGF5ZXJGb3JMYXllcigoX19icmlkZ2Ugdm9pZCopc2VsZik7CiAgICAgaWYgKGxh
eWVyICYmIGxheWVyLT5vd25lcigpKQotICAgICAgICBsYXllci0+b3duZXIoKS0+cGxhdGZvcm1D
QUxheWVyTGF5ZXJEaWREaXNwbGF5KGxheWVyKTsKKyAgICAgICAgbGF5ZXItPm93bmVyKCktPnBs
YXRmb3JtQ0FMYXllckxheWVyRGlkRGlzcGxheShsYXllci5nZXQoKSk7CiB9CiAKIC0gKHZvaWQp
ZHJhd0luQ29udGV4dDooQ0dDb250ZXh0UmVmKWNvbnRleHQKQEAgLTEyNiwxNCArMTI2LDE0IEBA
IC0gKHZvaWQpZHJhd0luQ29udGV4dDooQ0dDb250ZXh0UmVmKWNvbnRleHQKICAgICAgICAgV2Vi
VGhyZWFkTG9jaygpOwogI2VuZGlmCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBX
ZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyID0gV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVy
OjpwbGF0Zm9ybUNBTGF5ZXIoKF9fYnJpZGdlIHZvaWQqKXNlbGYpOworICAgIGF1dG8gbGF5ZXIg
PSBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllckZvckxheWVyKChfX2Jy
aWRnZSB2b2lkKilzZWxmKTsKICAgICBpZiAobGF5ZXIgJiYgbGF5ZXItPm93bmVyKCkpIHsKICAg
ICAgICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dChjb250ZXh0KTsK
ICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LnNldElzQ0FMYXllckNvbnRleHQodHJ1ZSk7CiAgICAg
ICAgIGdyYXBoaWNzQ29udGV4dC5zZXRJc0FjY2VsZXJhdGVkQ29udGV4dChsYXllci0+YWNjZWxl
cmF0ZXNEcmF3aW5nKCkpOwogCiAgICAgICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBjbGlwQm91bmRz
ID0gQ0dDb250ZXh0R2V0Q2xpcEJvdW5kaW5nQm94KGNvbnRleHQpOwotICAgICAgICBsYXllci0+
b3duZXIoKS0+cGxhdGZvcm1DQUxheWVyUGFpbnRDb250ZW50cyhsYXllciwgZ3JhcGhpY3NDb250
ZXh0LCBjbGlwQm91bmRzLCBzZWxmLmlzUmVuZGVyaW5nSW5Db250ZXh0ID8gV2ViQ29yZTo6R3Jh
cGhpY3NMYXllclBhaW50U25hcHNob3R0aW5nIDogV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50
Tm9ybWFsKTsKKyAgICAgICAgbGF5ZXItPm93bmVyKCktPnBsYXRmb3JtQ0FMYXllclBhaW50Q29u
dGVudHMobGF5ZXIuZ2V0KCksIGdyYXBoaWNzQ29udGV4dCwgY2xpcEJvdW5kcywgc2VsZi5pc1Jl
bmRlcmluZ0luQ29udGV4dCA/IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludFNuYXBzaG90dGlu
ZyA6IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludE5vcm1hbCk7CiAgICAgfQogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391964</attachid>
            <date>2020-02-27 23:10:29 -0800</date>
            <delta_ts>2020-02-27 23:38:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208358-20200227231028.patch</filename>
            <type>text/plain</type>
            <size>15701</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTJjNWQ1NDhkYWE3YmQz
YzZhMDAzMjIyY2E1MzdhNWI3NjY1ZDNmMC4uYzc2OGM2ZmM3ZmY1ODgwMjQ2MDkzNTFmY2NiMjIy
YzYzZjZkOWY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTAyLTI3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3AgdXNpbmcg
LVtDQUxheWVyIHNldFZhbHVlOmZvcktleTpdIHRvIHN0b3JlIGJhY2sgcG9pbnRlcnMgdG8gUGxh
dGZvcm1DQUxheWVyKgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA4MzU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAg
ICBXZSB1c2VkIC1bQ0FsYXllciBzZXRWYWx1ZTpmb3JLZXk6QCJXS1BsYXRmb3JtQ0FMYXllciJd
IHRvIHN0b3JlIGFzc29jaWF0ZSBQbGF0Zm9ybUNBTGF5ZXIqCisgICAgICAgIHdpdGggQ0FMYXll
cnMuIEhvd2V2ZXIsIHRoaXMgaGFzIHNvbWUgcGVyZm9ybWFuY2UgY29zdCwgYW5kIHdvbid0IHdv
cmsgZm9yIGEgbmVhci1mdXR1cmUgd29ybGQKKyAgICAgICAgd2hlcmUgdGhlIHNjcm9sbGluZyB0
aHJlYWQgbmVlZHMgdG8gZ2V0IGF0IFBsYXRmb3JtQ0FMYXllcnMuCisKKyAgICAgICAgUmVwbGFj
ZSB3aXRoIGEgc3RhdGljIEhhc2hNYXA8PiBvZiBDQUxheWVyKiB0byBQbGF0Zm9ybUNBTGF5ZXIq
LiBBbHNvIHJlbmFtZSBwbGF0Zm9ybUNBTGF5ZXIoKQorICAgICAgICB0byBwbGF0Zm9ybUNBTGF5
ZXJGb3JMYXllcigpIHNvIGl0J3MgZWFzaWVyIHRvIGZpbmQuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllckNBOjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjpsYXllclRvUGxhdGZvcm1MYXllck1hcCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9y
bUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllckZvckxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBs
YXRmb3JtQ0FMYXllckNvY29hOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1D
QUxheWVyQ29jb2E6OmNvbW1vbkluaXQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1DQUxh
eWVyQ29jb2E6On5QbGF0Zm9ybUNBTGF5ZXJDb2NvYSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybUNBTGF5ZXJDb2NvYTo6c3VwZXJsYXllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQ
bGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllcik6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2ViR0xMYXll
ciBkaXNwbGF5XSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkxheWVyLm1t
OgorICAgICAgICAoLVtXZWJMYXllciBkcmF3SW5Db250ZXh0Ol0pOgorICAgICAgICAoLVtXZWJT
aW1wbGVMYXllciBzZXROZWVkc0Rpc3BsYXldKToKKyAgICAgICAgKC1bV2ViU2ltcGxlTGF5ZXIg
c2V0TmVlZHNEaXNwbGF5SW5SZWN0Ol0pOgorICAgICAgICAoLVtXZWJTaW1wbGVMYXllciBkaXNw
bGF5XSk6CisgICAgICAgICgtW1dlYlNpbXBsZUxheWVyIGRyYXdJbkNvbnRleHQ6XSk6CisKIDIw
MjAtMDItMjcgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIE1lbW9y
eVJlbGVhc2UgbG9nZ2luZyB1c2VzIGEgdW5pcXVlX3B0ciB3aXRoIHVuY2xlYXIgbGlmZXRpbWUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGlj
c0xheWVyQ0EuY3BwCmluZGV4IDcwNWU4YjE4MDk2OTFjOTAyZjVlNzVhNzVjYmQwMGVlMzFkNmUx
MTkuLjBhZGE3ZmVmZTc3ZjE5M2Q4NzQ2YWM5NDA1YzVjZjQyYTBkYmZkYzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmNwcApAQCAtMTIxNiw4ICsxMjE2LDE1IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRDb250
ZW50c1RvUGxhdGZvcm1MYXllcihQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyLCBDCiAgICAg
Ly8gUGxhdGZvcm1DQUxheWVyIGlzIHVzaW5nIGEgdXNlciBkYXRhIHBvaW50ZXIgaW4gdGhlIHJh
dyBsYXllciwgYW5kCiAgICAgLy8gdGhlIGNyZWF0b3Igb2YgdGhlIHJhdyBsYXllciBpcyB1c2lu
ZyBpdCBmb3Igc29tZSBvdGhlciBwdXJwb3NlLgogICAgIC8vIEZvciBub3cgd2UgZG9uJ3Qgc3Vw
cG9ydCBzdWNoIGEgY2FzZS4KLSAgICBQbGF0Zm9ybUNBTGF5ZXIqIHBsYXRmb3JtQ0FMYXllciA9
IFBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyKHBsYXRmb3JtTGF5ZXIpOwotICAgIG1f
Y29udGVudHNMYXllciA9IHBsYXRmb3JtTGF5ZXIgPyAocGxhdGZvcm1DQUxheWVyID8gcGxhdGZv
cm1DQUxheWVyIDogY3JlYXRlUGxhdGZvcm1DQUxheWVyKHBsYXRmb3JtTGF5ZXIsIHRoaXMpLnB0
cigpKSA6IG51bGxwdHI7CisgICAgaWYgKHBsYXRmb3JtTGF5ZXIpIHsKKyAgICAgICAgYXV0byBw
bGF0Zm9ybUNBTGF5ZXIgPSBQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllckZvckxheWVy
KHBsYXRmb3JtTGF5ZXIpOworICAgICAgICBpZiAocGxhdGZvcm1DQUxheWVyKQorICAgICAgICAg
ICAgbV9jb250ZW50c0xheWVyID0gV1RGTW92ZShwbGF0Zm9ybUNBTGF5ZXIpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBtX2NvbnRlbnRzTGF5ZXIgPSBjcmVhdGVQbGF0Zm9ybUNBTGF5ZXIo
cGxhdGZvcm1MYXllciwgdGhpcyk7CisgICAgfSBlbHNlCisgICAgICAgIG1fY29udGVudHNMYXll
ciA9IG51bGxwdHI7CisKICAgICBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlID0gcGxhdGZvcm1MYXll
ciA/IHB1cnBvc2UgOiBDb250ZW50c0xheWVyUHVycG9zZTo6Tm9uZTsKIAogICAgIGlmIChtX2Nv
bnRlbnRzQ2xpcHBpbmdMYXllciAmJiBtX2NvbnRlbnRzTGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCmluZGV4IDQw
MTE3MmM0MTJlZjhiMGI3OTZmMWJhOWM1YWEwNTcxMDBhNTFkMjQuLjRjM2Q5ZDQ4YTQyMjQ1ZDVl
YjVlMWVjOTAzYTkwZWVkNDExMjQ0NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCkBAIC05Miw3ICs5Miw3IEBAIHB1
YmxpYzoKIAogICAgIC8vIFRoaXMgZnVuY3Rpb24gcGFzc2VzIHRoZSBsYXllciBhcyBhIHZvaWQq
IHJhdGhlciB0aGFuIGEgUGxhdGZvcm1MYXllciBiZWNhdXNlIFBsYXRmb3JtTGF5ZXIKICAgICAv
LyBpcyBkZWZpbmVkIGRpZmZlcmVudGx5IGZvciBPYmogQyBhbmQgQysrLiBUaGlzIGFsbG93cyBj
YWxsZXJzIGZyb20gYm90aCBsYW5ndWFnZXMuCi0gICAgc3RhdGljIFBsYXRmb3JtQ0FMYXllciog
cGxhdGZvcm1DQUxheWVyKHZvaWQqIHBsYXRmb3JtTGF5ZXIpOworICAgIHN0YXRpYyBSZWZQdHI8
UGxhdGZvcm1DQUxheWVyPiBwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcih2b2lkKiBwbGF0Zm9ybUxh
eWVyKTsKIAogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0
IHsgcmV0dXJuIG1fbGF5ZXIuZ2V0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2Nv
YS5tbQppbmRleCA2NTI2MGNhYzAxMjhjZGE5NjBiYWRlMTI1MmU2ZjZjYTc3MThkYjJmLi5hYzk3
YWFmYWM4ZWI2MWZkZWQyNmU5ZDk1Mzg3MWUzNjY0ZTZkOWI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9y
bUNBTGF5ZXJDb2NvYS5tbQpAQCAtNjksMjggKzY5LDMwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotUmVmPFBsYXRmb3JtQ0FMYXllckNvY29hPiBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6Y3Jl
YXRlKExheWVyVHlwZSBsYXllclR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIpCi17
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGxhdGZvcm1DQUxheWVyQ29jb2EobGF5ZXJUeXBl
LCBvd25lcikpOwotfQordXNpbmcgTGF5ZXJUb1BsYXRmb3JtQ0FMYXllck1hcCA9IEhhc2hNYXA8
dm9pZCosIFBsYXRmb3JtQ0FMYXllcio+OwogCi1SZWY8UGxhdGZvcm1DQUxheWVyQ29jb2E+IFBs
YXRmb3JtQ0FMYXllckNvY29hOjpjcmVhdGUodm9pZCogcGxhdGZvcm1MYXllciwgUGxhdGZvcm1D
QUxheWVyQ2xpZW50KiBvd25lcikKK3N0YXRpYyBMYXllclRvUGxhdGZvcm1DQUxheWVyTWFwJiBs
YXllclRvUGxhdGZvcm1MYXllck1hcCgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGxh
dGZvcm1DQUxheWVyQ29jb2EoKF9fYnJpZGdlIENBTGF5ZXIgKilwbGF0Zm9ybUxheWVyLCBvd25l
cikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMYXllclRvUGxhdGZvcm1DQUxheWVyTWFw
PiBsYXllck1hcDsKKyAgICByZXR1cm4gbGF5ZXJNYXA7CiB9CiAKLXN0YXRpYyBOU1N0cmluZyAq
IGNvbnN0IHBsYXRmb3JtQ0FMYXllclBvaW50ZXIgPSBAIldLUGxhdGZvcm1DQUxheWVyIjsKLVBs
YXRmb3JtQ0FMYXllciogUGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIodm9pZCogcGxh
dGZvcm1MYXllcikKK1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllcjo6cGxh
dGZvcm1DQUxheWVyRm9yTGF5ZXIodm9pZCogcGxhdGZvcm1MYXllcikKIHsKICAgICBpZiAoIXBs
YXRmb3JtTGF5ZXIpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgLy8gUG9pbnRlciB0byBQbGF0
Zm9ybUNBTGF5ZXIgaXMga2VwdCBpbiBhIGtleSBvZiB0aGUgQ0FMYXllcgotICAgIFBsYXRmb3Jt
Q0FMYXllciogcGxhdGZvcm1DQUxheWVyID0gbmlsOwotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUwotICAgIHBsYXRmb3JtQ0FMYXllciA9IHN0YXRpY19jYXN0PFBsYXRmb3JtQ0FMYXll
cio+KFtbKF9fYnJpZGdlIENBTGF5ZXIgKilwbGF0Zm9ybUxheWVyIHZhbHVlRm9yS2V5OnBsYXRm
b3JtQ0FMYXllclBvaW50ZXJdIHBvaW50ZXJWYWx1ZV0pOwotICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKLSAgICByZXR1cm4gcGxhdGZvcm1DQUxheWVyOworICAgIHJldHVybiBsYXllclRv
UGxhdGZvcm1MYXllck1hcCgpLmdldChwbGF0Zm9ybUxheWVyKTsKK30KKworUmVmPFBsYXRmb3Jt
Q0FMYXllckNvY29hPiBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6Y3JlYXRlKExheWVyVHlwZSBsYXll
clR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIpCit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUGxhdGZvcm1DQUxheWVyQ29jb2EobGF5ZXJUeXBlLCBvd25lcikpOworfQorCitS
ZWY8UGxhdGZvcm1DQUxheWVyQ29jb2E+IFBsYXRmb3JtQ0FMYXllckNvY29hOjpjcmVhdGUodm9p
ZCogcGxhdGZvcm1MYXllciwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcikKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBQbGF0Zm9ybUNBTGF5ZXJDb2NvYSgoX19icmlkZ2UgQ0FMYXll
ciAqKXBsYXRmb3JtTGF5ZXIsIG93bmVyKSk7CiB9CiAKIHN0YXRpYyBNb25vdG9uaWNUaW1lIG1l
ZGlhVGltZVRvQ3VycmVudFRpbWUoQ0ZUaW1lSW50ZXJ2YWwgdCkKQEAgLTI5Nyw4ICsyOTksOCBA
QCBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6UGxhdGZvcm1DQUxheWVyQ29jb2EoUGxhdGZvcm1MYXll
ciogbGF5ZXIsIFBsYXRmb3JtQ0FMYXllcgogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6Y29t
bW9uSW5pdCgpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgLy8gU2F2
ZSBhIHBvaW50ZXIgdG8gJ3RoaXMnIGluIHRoZSBDQUxheWVyCi0gICAgW21fbGF5ZXIgc2V0VmFs
dWU6W05TVmFsdWUgdmFsdWVXaXRoUG9pbnRlcjp0aGlzXSBmb3JLZXk6cGxhdGZvcm1DQUxheWVy
UG9pbnRlcl07CisKKyAgICBsYXllclRvUGxhdGZvcm1MYXllck1hcCgpLmFkZChtX2xheWVyLmdl
dCgpLCB0aGlzKTsKICAgICAKICAgICAvLyBDbGVhciBhbGwgdGhlIGltcGxpY2l0IGFuaW1hdGlv
bnMgb24gdGhlIENBTGF5ZXIKICAgICBpZiAobV9sYXllclR5cGUgPT0gTGF5ZXJUeXBlQVZQbGF5
ZXJMYXllciB8fCBtX2xheWVyVHlwZSA9PSBMYXllclR5cGVDb250ZW50c1Byb3ZpZGVkTGF5ZXIg
fHwgbV9sYXllclR5cGUgPT0gTGF5ZXJUeXBlU2Nyb2xsQ29udGFpbmVyTGF5ZXIgfHwgbV9sYXll
clR5cGUgPT0gTGF5ZXJUeXBlQ3VzdG9tKQpAQCAtMzc4LDcgKzM4MCw3IEBAIFJlZjxQbGF0Zm9y
bUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllckNvY29hOjpjbG9uZShQbGF0Zm9ybUNBTGF5ZXJDbGll
bnQqIG93bmVyKSBjCiAKIFBsYXRmb3JtQ0FMYXllckNvY29hOjp+UGxhdGZvcm1DQUxheWVyQ29j
b2EoKQogewotICAgIFttX2xheWVyIHNldFZhbHVlOm5pbCBmb3JLZXk6cGxhdGZvcm1DQUxheWVy
UG9pbnRlcl07CisgICAgbGF5ZXJUb1BsYXRmb3JtTGF5ZXJNYXAoKS5yZW1vdmUobV9sYXllci5n
ZXQoKSk7CiAgICAgCiAgICAgLy8gUmVtb3ZlIHRoZSBvd25lciBwb2ludGVyIGZyb20gdGhlIGRl
bGVnYXRlIGluIGNhc2UgdGhlcmUgaXMgYSBwZW5kaW5nIGFuaW1hdGlvblN0YXJ0ZWQgZXZlbnQu
CiAgICAgW3N0YXRpY19jYXN0PFdlYkFuaW1hdGlvbkRlbGVnYXRlKj4obV9kZWxlZ2F0ZS5nZXQo
KSkgc2V0T3duZXI6bmlsXTsKQEAgLTQzMiw3ICs0MzQsNyBAQCB2b2lkIFBsYXRmb3JtQ0FMYXll
ckNvY29hOjpjb3B5Q29udGVudHNGcm9tTGF5ZXIoUGxhdGZvcm1DQUxheWVyKiBsYXllcikKIAog
UGxhdGZvcm1DQUxheWVyKiBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6c3VwZXJsYXllcigpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIHBsYXRmb3JtQ0FMYXllcigoX19icmlkZ2Ugdm9pZCopW21fbGF5ZXIg
c3VwZXJsYXllcl0pOworICAgIHJldHVybiBwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcigoX19icmlk
Z2Ugdm9pZCopW21fbGF5ZXIgc3VwZXJsYXllcl0pLmdldCgpOwogfQogCiB2b2lkIFBsYXRmb3Jt
Q0FMYXllckNvY29hOjpyZW1vdmVGcm9tU3VwZXJsYXllcigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJX
aW4uY3BwCmluZGV4IDYzNmQyMGQ5N2YwYTY4ZDY0N2UyNWU2YTQ4NTg0YTkxMDRiOTI5NjkuLmJk
M2ZlMDZkZjU4NTIyMDFjZGZkOTZhZTQyYWY1MzA5ZTk3ZWJmNmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNB
TGF5ZXJXaW4uY3BwCkBAIC05Miw3ICs5Miw3IEBAIHN0YXRpYyBQbGF0Zm9ybUNBTGF5ZXJXaW5J
bnRlcm5hbCogaW50ZXJuKHZvaWQqIGxheWVyKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxQbGF0
Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbCo+KENBQ0ZMYXllckdldFVzZXJEYXRhKHN0YXRpY19jYXN0
PENBQ0ZMYXllclJlZj4obGF5ZXIpKSk7CiB9CiAKLVBsYXRmb3JtQ0FMYXllciogUGxhdGZvcm1D
QUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIodm9pZCogcGxhdGZvcm1MYXllcikKK1JlZlB0cjxQbGF0
Zm9ybUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyRm9yTGF5ZXIodm9p
ZCogcGxhdGZvcm1MYXllcikKIHsKICAgICBpZiAoIXBsYXRmb3JtTGF5ZXIpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwpAQCAtMTI3LDkgKzEyNyw5IEBAIHN0YXRpYyB2b2lkIGRpc3BsYXlDYWxs
YmFjayhDQUNGTGF5ZXJSZWYgY2FMYXllciwgQ0dDb250ZXh0UmVmIGNvbnRleHQpCiAKIHN0YXRp
YyB2b2lkIGxheW91dFN1YmxheWVyc1Byb2MoQ0FDRkxheWVyUmVmIGNhTGF5ZXIpIAogewotICAg
IFBsYXRmb3JtQ0FMYXllciogbGF5ZXIgPSBQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXll
cihjYUxheWVyKTsKKyAgICBhdXRvIGxheWVyID0gUGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNB
TGF5ZXJGb3JMYXllcihjYUxheWVyKTsKICAgICBpZiAobGF5ZXIgJiYgbGF5ZXItPm93bmVyKCkp
Ci0gICAgICAgIGxheWVyLT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJMYXlvdXRTdWJsYXllcnNP
ZkxheWVyKGxheWVyKTsKKyAgICAgICAgbGF5ZXItPm93bmVyKCktPnBsYXRmb3JtQ0FMYXllckxh
eW91dFN1YmxheWVyc09mTGF5ZXIobGF5ZXIuZ2V0KCkpOwogfQogCiBQbGF0Zm9ybUNBTGF5ZXJX
aW46OlBsYXRmb3JtQ0FMYXllcldpbihMYXllclR5cGUgbGF5ZXJUeXBlLCBQbGF0Zm9ybUxheWVy
KiBsYXllciwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW5JbnRl
cm5hbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZv
cm1DQUxheWVyV2luSW50ZXJuYWwuY3BwCmluZGV4IDVlMDRjMmI0MjMyODk1OGNmYjQwYWFlM2I0
NDBiNzhkYTQxYWMzNTUuLmU1ZDRmOTViNzUzYjc4YmQ2NmU5ZmZiNDNmNGQ2MGJkOTI5YjcxNGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0
Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbkludGVybmFsLmNwcApAQCAtMjA3LDcg
KzIwNyw3IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWw6OmdldFN1YmxheWVycyhQ
bGF0Zm9ybUNBTGF5ZXJMaXN0JiBsaXN0KSBjb25zdAogCiAgICAgbGlzdC5yZXNpemUoY291bnQp
OwogICAgIGZvciAoc2l6ZV90IGFycmF5SW5kZXggPSAwOyBhcnJheUluZGV4IDwgY291bnQ7ICsr
YXJyYXlJbmRleCkKLSAgICAgICAgbGlzdFthcnJheUluZGV4XSA9IFBsYXRmb3JtQ0FMYXllcjo6
cGxhdGZvcm1DQUxheWVyKGNvbnN0X2Nhc3Q8dm9pZCo+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgo
c3VibGF5ZXJzLCBhcnJheUluZGV4KSkpOworICAgICAgICBsaXN0W2FycmF5SW5kZXhdID0gV1RG
TW92ZShQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllckZvckxheWVyKGNvbnN0X2Nhc3Q8
dm9pZCo+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoc3VibGF5ZXJzLCBhcnJheUluZGV4KSkpKTsK
IH0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbDo6cmVtb3ZlQWxsU3VibGF5ZXJz
KCkKQEAgLTI1Nyw3ICsyNTcsNyBAQCBQbGF0Zm9ybUNBTGF5ZXIqIFBsYXRmb3JtQ0FMYXllcldp
bkludGVybmFsOjpzdWJsYXllckF0SW5kZXgoaW50IGluZGV4KSBjb25zdAogICAgIGlmICghc3Vi
bGF5ZXJzIHx8IGluZGV4IDwgMCB8fCBDRkFycmF5R2V0Q291bnQoc3VibGF5ZXJzKSA8PSBpbmRl
eCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCi0gICAgcmV0dXJuIFBsYXRmb3JtQ0FM
YXllcjo6cGxhdGZvcm1DQUxheWVyKHN0YXRpY19jYXN0PENBQ0ZMYXllclJlZj4oY29uc3RfY2Fz
dDx2b2lkKj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChzdWJsYXllcnMsIGluZGV4KSkpKTsKKyAg
ICByZXR1cm4gUGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcihzdGF0aWNf
Y2FzdDxDQUNGTGF5ZXJSZWY+KGNvbnN0X2Nhc3Q8dm9pZCo+KENGQXJyYXlHZXRWYWx1ZUF0SW5k
ZXgoc3VibGF5ZXJzLCBpbmRleCkpKSkuZ2V0KCk7CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVy
V2luSW50ZXJuYWw6OnNldEJvdW5kcyhjb25zdCBGbG9hdFJlY3QmIHJlY3QpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbQppbmRl
eCA2OGI1MjU4MDIwYjUwNGJhZTY2YmZhMTgxNDU2MmUzMGFmODRkMDM1Li43NzkxMWU1MzQ1MTNi
MDhmZGE5NjY1NDE5Mjc3ZjdlNzQwOGVhZTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KQEAgLTE3OSw5ICsxNzksOSBA
QCAtICh2b2lkKWRpc3BsYXkKICNlbmRpZgogCiAgICAgX2NvbnRleHQtPm1hcmtMYXllckNvbXBv
c2l0ZWQoKTsKLSAgICBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyID0gV2ViQ29yZTo6
UGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIoKF9fYnJpZGdlIHZvaWQqKXNlbGYpOwor
ICAgIGF1dG8gbGF5ZXIgPSBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXll
ckZvckxheWVyKChfX2JyaWRnZSB2b2lkKilzZWxmKTsKICAgICBpZiAobGF5ZXIgJiYgbGF5ZXIt
Pm93bmVyKCkpCi0gICAgICAgIGxheWVyLT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJMYXllckRp
ZERpc3BsYXkobGF5ZXIpOworICAgICAgICBsYXllci0+b3duZXIoKS0+cGxhdGZvcm1DQUxheWVy
TGF5ZXJEaWREaXNwbGF5KGxheWVyLmdldCgpKTsKIH0KIAogI2lmIFVTRShBTkdMRSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5tbQppbmRleCA2
NWU4NzgyMDYzZWI5MDU0OWY4MGNhZmI1YmI5MTIzM2FiNjIzYzkzLi43ZjlkOGUxOWJlODllYjQ0
Mjg0MDVlYzYyODE0ZDMwYTlmYmUyMzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL1dlYkxheWVyLm1tCkBAIC00OSwxMSArNDksMTEgQEAgQGltcGxlbWVu
dGF0aW9uIFdlYkxheWVyCiAKIC0gKHZvaWQpZHJhd0luQ29udGV4dDooQ0dDb250ZXh0UmVmKWNv
bnRleHQKIHsKLSAgICBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyID0gV2ViQ29yZTo6
UGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIoKF9fYnJpZGdlIHZvaWQqKXNlbGYpOwor
ICAgIGF1dG8gbGF5ZXIgPSBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXll
ckZvckxheWVyKChfX2JyaWRnZSB2b2lkKilzZWxmKTsKICAgICBpZiAobGF5ZXIpIHsKICAgICAg
ICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dChjb250ZXh0KTsKLSAg
ICAgICAgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpSZXBhaW50UmVjdExpc3QgcmVjdHNUb1Bh
aW50ID0gV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpjb2xsZWN0UmVjdHNUb1BhaW50KGdyYXBo
aWNzQ29udGV4dCwgbGF5ZXIpOwotICAgICAgICBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OmRy
YXdMYXllckNvbnRlbnRzKGdyYXBoaWNzQ29udGV4dCwgbGF5ZXIsIHJlY3RzVG9QYWludCwgc2Vs
Zi5pc1JlbmRlcmluZ0luQ29udGV4dCA/IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludFNuYXBz
aG90dGluZyA6IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludE5vcm1hbCk7CisgICAgICAgIFdl
YkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6UmVwYWludFJlY3RMaXN0IHJlY3RzVG9QYWludCA9IFdl
YkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6Y29sbGVjdFJlY3RzVG9QYWludChncmFwaGljc0NvbnRl
eHQsIGxheWVyLmdldCgpKTsKKyAgICAgICAgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpkcmF3
TGF5ZXJDb250ZW50cyhncmFwaGljc0NvbnRleHQsIGxheWVyLmdldCgpLCByZWN0c1RvUGFpbnQs
IHNlbGYuaXNSZW5kZXJpbmdJbkNvbnRleHQgPyBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRT
bmFwc2hvdHRpbmcgOiBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnROb3JtYWwpOwogICAgIH0K
IH0KIApAQCAtODAsMTQgKzgwLDE0IEBAIC0gKGlkPENBQWN0aW9uPilhY3Rpb25Gb3JLZXk6KE5T
U3RyaW5nICopa2V5CiAKIC0gKHZvaWQpc2V0TmVlZHNEaXNwbGF5CiB7Ci0gICAgV2ViQ29yZTo6
UGxhdGZvcm1DQUxheWVyKiBsYXllciA9IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6cGxhdGZv
cm1DQUxheWVyKChfX2JyaWRnZSB2b2lkKilzZWxmKTsKKyAgICBhdXRvIGxheWVyID0gV2ViQ29y
ZTo6UGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcigoX19icmlkZ2Ugdm9p
ZCopc2VsZik7CiAgICAgaWYgKGxheWVyICYmIGxheWVyLT5vd25lcigpICYmIGxheWVyLT5vd25l
cigpLT5wbGF0Zm9ybUNBTGF5ZXJEcmF3c0NvbnRlbnQoKSkKICAgICAgICAgW3N1cGVyIHNldE5l
ZWRzRGlzcGxheV07CiB9CiAKIC0gKHZvaWQpc2V0TmVlZHNEaXNwbGF5SW5SZWN0OihDR1JlY3Qp
ZGlydHlSZWN0CiB7Ci0gICAgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyKiBwbGF0Zm9ybUxheWVy
ID0gV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIoKF9fYnJpZGdlIHZv
aWQqKXNlbGYpOworICAgIGF1dG8gcGxhdGZvcm1MYXllciA9IFdlYkNvcmU6OlBsYXRmb3JtQ0FM
YXllcjo6cGxhdGZvcm1DQUxheWVyRm9yTGF5ZXIoKF9fYnJpZGdlIHZvaWQqKXNlbGYpOwogICAg
IGlmICghcGxhdGZvcm1MYXllcikgewogICAgICAgICBbc3VwZXIgc2V0TmVlZHNEaXNwbGF5SW5S
ZWN0OmRpcnR5UmVjdF07CiAgICAgICAgIHJldHVybjsKQEAgLTk3LDcgKzk3LDcgQEAgLSAodm9p
ZClzZXROZWVkc0Rpc3BsYXlJblJlY3Q6KENHUmVjdClkaXJ0eVJlY3QKICAgICAgICAgaWYgKGxh
eWVyT3duZXItPnBsYXRmb3JtQ0FMYXllckRyYXdzQ29udGVudCgpKSB7CiAgICAgICAgICAgICBb
c3VwZXIgc2V0TmVlZHNEaXNwbGF5SW5SZWN0OmRpcnR5UmVjdF07CiAKLSAgICAgICAgICAgIGlm
IChsYXllck93bmVyLT5wbGF0Zm9ybUNBTGF5ZXJTaG93UmVwYWludENvdW50ZXIocGxhdGZvcm1M
YXllcikpIHsKKyAgICAgICAgICAgIGlmIChsYXllck93bmVyLT5wbGF0Zm9ybUNBTGF5ZXJTaG93
UmVwYWludENvdW50ZXIocGxhdGZvcm1MYXllci5nZXQoKSkpIHsKICAgICAgICAgICAgICAgICBD
R1JlY3QgYm91bmRzID0gW3NlbGYgYm91bmRzXTsKICAgICAgICAgICAgICAgICBDR1JlY3QgaW5k
aWNhdG9yUmVjdCA9IENHUmVjdE1ha2UoYm91bmRzLm9yaWdpbi54LCBib3VuZHMub3JpZ2luLnks
IDUyLCAyNyk7CiAgICAgICAgICAgICAgICAgW3N1cGVyIHNldE5lZWRzRGlzcGxheUluUmVjdDpp
bmRpY2F0b3JSZWN0XTsKQEAgLTExNCw5ICsxMTQsOSBAQCAtICh2b2lkKWRpc3BsYXkKICNlbmRp
ZgogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgW3N1cGVyIGRpc3BsYXldOwotICAg
IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllciogbGF5ZXIgPSBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5
ZXI6OnBsYXRmb3JtQ0FMYXllcigoX19icmlkZ2Ugdm9pZCopc2VsZik7CisgICAgYXV0byBsYXll
ciA9IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyRm9yTGF5ZXIoKF9f
YnJpZGdlIHZvaWQqKXNlbGYpOwogICAgIGlmIChsYXllciAmJiBsYXllci0+b3duZXIoKSkKLSAg
ICAgICAgbGF5ZXItPm93bmVyKCktPnBsYXRmb3JtQ0FMYXllckxheWVyRGlkRGlzcGxheShsYXll
cik7CisgICAgICAgIGxheWVyLT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJMYXllckRpZERpc3Bs
YXkobGF5ZXIuZ2V0KCkpOwogfQogCiAtICh2b2lkKWRyYXdJbkNvbnRleHQ6KENHQ29udGV4dFJl
Ziljb250ZXh0CkBAIC0xMjYsMTQgKzEyNiwxNCBAQCAtICh2b2lkKWRyYXdJbkNvbnRleHQ6KENH
Q29udGV4dFJlZiljb250ZXh0CiAgICAgICAgIFdlYlRocmVhZExvY2soKTsKICNlbmRpZgogICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyKiBs
YXllciA9IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyKChfX2JyaWRn
ZSB2b2lkKilzZWxmKTsKKyAgICBhdXRvIGxheWVyID0gV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVy
OjpwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcigoX19icmlkZ2Ugdm9pZCopc2VsZik7CiAgICAgaWYg
KGxheWVyICYmIGxheWVyLT5vd25lcigpKSB7CiAgICAgICAgIFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dCBncmFwaGljc0NvbnRleHQoY29udGV4dCk7CiAgICAgICAgIGdyYXBoaWNzQ29udGV4dC5z
ZXRJc0NBTGF5ZXJDb250ZXh0KHRydWUpOwogICAgICAgICBncmFwaGljc0NvbnRleHQuc2V0SXNB
Y2NlbGVyYXRlZENvbnRleHQobGF5ZXItPmFjY2VsZXJhdGVzRHJhd2luZygpKTsKIAogICAgICAg
ICBXZWJDb3JlOjpGbG9hdFJlY3QgY2xpcEJvdW5kcyA9IENHQ29udGV4dEdldENsaXBCb3VuZGlu
Z0JveChjb250ZXh0KTsKLSAgICAgICAgbGF5ZXItPm93bmVyKCktPnBsYXRmb3JtQ0FMYXllclBh
aW50Q29udGVudHMobGF5ZXIsIGdyYXBoaWNzQ29udGV4dCwgY2xpcEJvdW5kcywgc2VsZi5pc1Jl
bmRlcmluZ0luQ29udGV4dCA/IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludFNuYXBzaG90dGlu
ZyA6IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludE5vcm1hbCk7CisgICAgICAgIGxheWVyLT5v
d25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJQYWludENvbnRlbnRzKGxheWVyLmdldCgpLCBncmFwaGlj
c0NvbnRleHQsIGNsaXBCb3VuZHMsIHNlbGYuaXNSZW5kZXJpbmdJbkNvbnRleHQgPyBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyUGFpbnRTbmFwc2hvdHRpbmcgOiBXZWJDb3JlOjpHcmFwaGljc0xheWVy
UGFpbnROb3JtYWwpOwogICAgIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391965</attachid>
            <date>2020-02-27 23:38:04 -0800</date>
            <delta_ts>2020-02-28 08:08:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208358-20200227233803.patch</filename>
            <type>text/plain</type>
            <size>15692</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTJjNWQ1NDhkYWE3YmQz
YzZhMDAzMjIyY2E1MzdhNWI3NjY1ZDNmMC4uYzc2OGM2ZmM3ZmY1ODgwMjQ2MDkzNTFmY2NiMjIy
YzYzZjZkOWY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTAyLTI3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3AgdXNpbmcg
LVtDQUxheWVyIHNldFZhbHVlOmZvcktleTpdIHRvIHN0b3JlIGJhY2sgcG9pbnRlcnMgdG8gUGxh
dGZvcm1DQUxheWVyKgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA4MzU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAg
ICBXZSB1c2VkIC1bQ0FsYXllciBzZXRWYWx1ZTpmb3JLZXk6QCJXS1BsYXRmb3JtQ0FMYXllciJd
IHRvIHN0b3JlIGFzc29jaWF0ZSBQbGF0Zm9ybUNBTGF5ZXIqCisgICAgICAgIHdpdGggQ0FMYXll
cnMuIEhvd2V2ZXIsIHRoaXMgaGFzIHNvbWUgcGVyZm9ybWFuY2UgY29zdCwgYW5kIHdvbid0IHdv
cmsgZm9yIGEgbmVhci1mdXR1cmUgd29ybGQKKyAgICAgICAgd2hlcmUgdGhlIHNjcm9sbGluZyB0
aHJlYWQgbmVlZHMgdG8gZ2V0IGF0IFBsYXRmb3JtQ0FMYXllcnMuCisKKyAgICAgICAgUmVwbGFj
ZSB3aXRoIGEgc3RhdGljIEhhc2hNYXA8PiBvZiBDQUxheWVyKiB0byBQbGF0Zm9ybUNBTGF5ZXIq
LiBBbHNvIHJlbmFtZSBwbGF0Zm9ybUNBTGF5ZXIoKQorICAgICAgICB0byBwbGF0Zm9ybUNBTGF5
ZXJGb3JMYXllcigpIHNvIGl0J3MgZWFzaWVyIHRvIGZpbmQuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllckNBOjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjpsYXllclRvUGxhdGZvcm1MYXllck1hcCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9y
bUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllckZvckxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBs
YXRmb3JtQ0FMYXllckNvY29hOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1D
QUxheWVyQ29jb2E6OmNvbW1vbkluaXQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1DQUxh
eWVyQ29jb2E6On5QbGF0Zm9ybUNBTGF5ZXJDb2NvYSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybUNBTGF5ZXJDb2NvYTo6c3VwZXJsYXllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQ
bGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllcik6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2ViR0xMYXll
ciBkaXNwbGF5XSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkxheWVyLm1t
OgorICAgICAgICAoLVtXZWJMYXllciBkcmF3SW5Db250ZXh0Ol0pOgorICAgICAgICAoLVtXZWJT
aW1wbGVMYXllciBzZXROZWVkc0Rpc3BsYXldKToKKyAgICAgICAgKC1bV2ViU2ltcGxlTGF5ZXIg
c2V0TmVlZHNEaXNwbGF5SW5SZWN0Ol0pOgorICAgICAgICAoLVtXZWJTaW1wbGVMYXllciBkaXNw
bGF5XSk6CisgICAgICAgICgtW1dlYlNpbXBsZUxheWVyIGRyYXdJbkNvbnRleHQ6XSk6CisKIDIw
MjAtMDItMjcgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIE1lbW9y
eVJlbGVhc2UgbG9nZ2luZyB1c2VzIGEgdW5pcXVlX3B0ciB3aXRoIHVuY2xlYXIgbGlmZXRpbWUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGlj
c0xheWVyQ0EuY3BwCmluZGV4IDcwNWU4YjE4MDk2OTFjOTAyZjVlNzVhNzVjYmQwMGVlMzFkNmUx
MTkuLjBhZGE3ZmVmZTc3ZjE5M2Q4NzQ2YWM5NDA1YzVjZjQyYTBkYmZkYzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmNwcApAQCAtMTIxNiw4ICsxMjE2LDE1IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRDb250
ZW50c1RvUGxhdGZvcm1MYXllcihQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyLCBDCiAgICAg
Ly8gUGxhdGZvcm1DQUxheWVyIGlzIHVzaW5nIGEgdXNlciBkYXRhIHBvaW50ZXIgaW4gdGhlIHJh
dyBsYXllciwgYW5kCiAgICAgLy8gdGhlIGNyZWF0b3Igb2YgdGhlIHJhdyBsYXllciBpcyB1c2lu
ZyBpdCBmb3Igc29tZSBvdGhlciBwdXJwb3NlLgogICAgIC8vIEZvciBub3cgd2UgZG9uJ3Qgc3Vw
cG9ydCBzdWNoIGEgY2FzZS4KLSAgICBQbGF0Zm9ybUNBTGF5ZXIqIHBsYXRmb3JtQ0FMYXllciA9
IFBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyKHBsYXRmb3JtTGF5ZXIpOwotICAgIG1f
Y29udGVudHNMYXllciA9IHBsYXRmb3JtTGF5ZXIgPyAocGxhdGZvcm1DQUxheWVyID8gcGxhdGZv
cm1DQUxheWVyIDogY3JlYXRlUGxhdGZvcm1DQUxheWVyKHBsYXRmb3JtTGF5ZXIsIHRoaXMpLnB0
cigpKSA6IG51bGxwdHI7CisgICAgaWYgKHBsYXRmb3JtTGF5ZXIpIHsKKyAgICAgICAgYXV0byBw
bGF0Zm9ybUNBTGF5ZXIgPSBQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllckZvckxheWVy
KHBsYXRmb3JtTGF5ZXIpOworICAgICAgICBpZiAocGxhdGZvcm1DQUxheWVyKQorICAgICAgICAg
ICAgbV9jb250ZW50c0xheWVyID0gV1RGTW92ZShwbGF0Zm9ybUNBTGF5ZXIpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBtX2NvbnRlbnRzTGF5ZXIgPSBjcmVhdGVQbGF0Zm9ybUNBTGF5ZXIo
cGxhdGZvcm1MYXllciwgdGhpcyk7CisgICAgfSBlbHNlCisgICAgICAgIG1fY29udGVudHNMYXll
ciA9IG51bGxwdHI7CisKICAgICBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlID0gcGxhdGZvcm1MYXll
ciA/IHB1cnBvc2UgOiBDb250ZW50c0xheWVyUHVycG9zZTo6Tm9uZTsKIAogICAgIGlmIChtX2Nv
bnRlbnRzQ2xpcHBpbmdMYXllciAmJiBtX2NvbnRlbnRzTGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCmluZGV4IDQw
MTE3MmM0MTJlZjhiMGI3OTZmMWJhOWM1YWEwNTcxMDBhNTFkMjQuLjRjM2Q5ZDQ4YTQyMjQ1ZDVl
YjVlMWVjOTAzYTkwZWVkNDExMjQ0NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCkBAIC05Miw3ICs5Miw3IEBAIHB1
YmxpYzoKIAogICAgIC8vIFRoaXMgZnVuY3Rpb24gcGFzc2VzIHRoZSBsYXllciBhcyBhIHZvaWQq
IHJhdGhlciB0aGFuIGEgUGxhdGZvcm1MYXllciBiZWNhdXNlIFBsYXRmb3JtTGF5ZXIKICAgICAv
LyBpcyBkZWZpbmVkIGRpZmZlcmVudGx5IGZvciBPYmogQyBhbmQgQysrLiBUaGlzIGFsbG93cyBj
YWxsZXJzIGZyb20gYm90aCBsYW5ndWFnZXMuCi0gICAgc3RhdGljIFBsYXRmb3JtQ0FMYXllciog
cGxhdGZvcm1DQUxheWVyKHZvaWQqIHBsYXRmb3JtTGF5ZXIpOworICAgIHN0YXRpYyBSZWZQdHI8
UGxhdGZvcm1DQUxheWVyPiBwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcih2b2lkKiBwbGF0Zm9ybUxh
eWVyKTsKIAogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0
IHsgcmV0dXJuIG1fbGF5ZXIuZ2V0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2Nv
YS5tbQppbmRleCA2NTI2MGNhYzAxMjhjZGE5NjBiYWRlMTI1MmU2ZjZjYTc3MThkYjJmLi5hYzk3
YWFmYWM4ZWI2MWZkZWQyNmU5ZDk1Mzg3MWUzNjY0ZTZkOWI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9y
bUNBTGF5ZXJDb2NvYS5tbQpAQCAtNjksMjggKzY5LDMwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotUmVmPFBsYXRmb3JtQ0FMYXllckNvY29hPiBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6Y3Jl
YXRlKExheWVyVHlwZSBsYXllclR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIpCi17
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGxhdGZvcm1DQUxheWVyQ29jb2EobGF5ZXJUeXBl
LCBvd25lcikpOwotfQordXNpbmcgTGF5ZXJUb1BsYXRmb3JtQ0FMYXllck1hcCA9IEhhc2hNYXA8
dm9pZCosIFBsYXRmb3JtQ0FMYXllcio+OwogCi1SZWY8UGxhdGZvcm1DQUxheWVyQ29jb2E+IFBs
YXRmb3JtQ0FMYXllckNvY29hOjpjcmVhdGUodm9pZCogcGxhdGZvcm1MYXllciwgUGxhdGZvcm1D
QUxheWVyQ2xpZW50KiBvd25lcikKK3N0YXRpYyBMYXllclRvUGxhdGZvcm1DQUxheWVyTWFwJiBs
YXllclRvUGxhdGZvcm1MYXllck1hcCgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGxh
dGZvcm1DQUxheWVyQ29jb2EoKF9fYnJpZGdlIENBTGF5ZXIgKilwbGF0Zm9ybUxheWVyLCBvd25l
cikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMYXllclRvUGxhdGZvcm1DQUxheWVyTWFw
PiBsYXllck1hcDsKKyAgICByZXR1cm4gbGF5ZXJNYXA7CiB9CiAKLXN0YXRpYyBOU1N0cmluZyAq
IGNvbnN0IHBsYXRmb3JtQ0FMYXllclBvaW50ZXIgPSBAIldLUGxhdGZvcm1DQUxheWVyIjsKLVBs
YXRmb3JtQ0FMYXllciogUGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIodm9pZCogcGxh
dGZvcm1MYXllcikKK1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllcjo6cGxh
dGZvcm1DQUxheWVyRm9yTGF5ZXIodm9pZCogcGxhdGZvcm1MYXllcikKIHsKICAgICBpZiAoIXBs
YXRmb3JtTGF5ZXIpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgLy8gUG9pbnRlciB0byBQbGF0
Zm9ybUNBTGF5ZXIgaXMga2VwdCBpbiBhIGtleSBvZiB0aGUgQ0FMYXllcgotICAgIFBsYXRmb3Jt
Q0FMYXllciogcGxhdGZvcm1DQUxheWVyID0gbmlsOwotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUwotICAgIHBsYXRmb3JtQ0FMYXllciA9IHN0YXRpY19jYXN0PFBsYXRmb3JtQ0FMYXll
cio+KFtbKF9fYnJpZGdlIENBTGF5ZXIgKilwbGF0Zm9ybUxheWVyIHZhbHVlRm9yS2V5OnBsYXRm
b3JtQ0FMYXllclBvaW50ZXJdIHBvaW50ZXJWYWx1ZV0pOwotICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKLSAgICByZXR1cm4gcGxhdGZvcm1DQUxheWVyOworICAgIHJldHVybiBsYXllclRv
UGxhdGZvcm1MYXllck1hcCgpLmdldChwbGF0Zm9ybUxheWVyKTsKK30KKworUmVmPFBsYXRmb3Jt
Q0FMYXllckNvY29hPiBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6Y3JlYXRlKExheWVyVHlwZSBsYXll
clR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIpCit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUGxhdGZvcm1DQUxheWVyQ29jb2EobGF5ZXJUeXBlLCBvd25lcikpOworfQorCitS
ZWY8UGxhdGZvcm1DQUxheWVyQ29jb2E+IFBsYXRmb3JtQ0FMYXllckNvY29hOjpjcmVhdGUodm9p
ZCogcGxhdGZvcm1MYXllciwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcikKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBQbGF0Zm9ybUNBTGF5ZXJDb2NvYSgoX19icmlkZ2UgQ0FMYXll
ciAqKXBsYXRmb3JtTGF5ZXIsIG93bmVyKSk7CiB9CiAKIHN0YXRpYyBNb25vdG9uaWNUaW1lIG1l
ZGlhVGltZVRvQ3VycmVudFRpbWUoQ0ZUaW1lSW50ZXJ2YWwgdCkKQEAgLTI5Nyw4ICsyOTksOCBA
QCBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6UGxhdGZvcm1DQUxheWVyQ29jb2EoUGxhdGZvcm1MYXll
ciogbGF5ZXIsIFBsYXRmb3JtQ0FMYXllcgogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6Y29t
bW9uSW5pdCgpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgLy8gU2F2
ZSBhIHBvaW50ZXIgdG8gJ3RoaXMnIGluIHRoZSBDQUxheWVyCi0gICAgW21fbGF5ZXIgc2V0VmFs
dWU6W05TVmFsdWUgdmFsdWVXaXRoUG9pbnRlcjp0aGlzXSBmb3JLZXk6cGxhdGZvcm1DQUxheWVy
UG9pbnRlcl07CisKKyAgICBsYXllclRvUGxhdGZvcm1MYXllck1hcCgpLmFkZChtX2xheWVyLmdl
dCgpLCB0aGlzKTsKICAgICAKICAgICAvLyBDbGVhciBhbGwgdGhlIGltcGxpY2l0IGFuaW1hdGlv
bnMgb24gdGhlIENBTGF5ZXIKICAgICBpZiAobV9sYXllclR5cGUgPT0gTGF5ZXJUeXBlQVZQbGF5
ZXJMYXllciB8fCBtX2xheWVyVHlwZSA9PSBMYXllclR5cGVDb250ZW50c1Byb3ZpZGVkTGF5ZXIg
fHwgbV9sYXllclR5cGUgPT0gTGF5ZXJUeXBlU2Nyb2xsQ29udGFpbmVyTGF5ZXIgfHwgbV9sYXll
clR5cGUgPT0gTGF5ZXJUeXBlQ3VzdG9tKQpAQCAtMzc4LDcgKzM4MCw3IEBAIFJlZjxQbGF0Zm9y
bUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllckNvY29hOjpjbG9uZShQbGF0Zm9ybUNBTGF5ZXJDbGll
bnQqIG93bmVyKSBjCiAKIFBsYXRmb3JtQ0FMYXllckNvY29hOjp+UGxhdGZvcm1DQUxheWVyQ29j
b2EoKQogewotICAgIFttX2xheWVyIHNldFZhbHVlOm5pbCBmb3JLZXk6cGxhdGZvcm1DQUxheWVy
UG9pbnRlcl07CisgICAgbGF5ZXJUb1BsYXRmb3JtTGF5ZXJNYXAoKS5yZW1vdmUobV9sYXllci5n
ZXQoKSk7CiAgICAgCiAgICAgLy8gUmVtb3ZlIHRoZSBvd25lciBwb2ludGVyIGZyb20gdGhlIGRl
bGVnYXRlIGluIGNhc2UgdGhlcmUgaXMgYSBwZW5kaW5nIGFuaW1hdGlvblN0YXJ0ZWQgZXZlbnQu
CiAgICAgW3N0YXRpY19jYXN0PFdlYkFuaW1hdGlvbkRlbGVnYXRlKj4obV9kZWxlZ2F0ZS5nZXQo
KSkgc2V0T3duZXI6bmlsXTsKQEAgLTQzMiw3ICs0MzQsNyBAQCB2b2lkIFBsYXRmb3JtQ0FMYXll
ckNvY29hOjpjb3B5Q29udGVudHNGcm9tTGF5ZXIoUGxhdGZvcm1DQUxheWVyKiBsYXllcikKIAog
UGxhdGZvcm1DQUxheWVyKiBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6c3VwZXJsYXllcigpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIHBsYXRmb3JtQ0FMYXllcigoX19icmlkZ2Ugdm9pZCopW21fbGF5ZXIg
c3VwZXJsYXllcl0pOworICAgIHJldHVybiBwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcigoX19icmlk
Z2Ugdm9pZCopW21fbGF5ZXIgc3VwZXJsYXllcl0pLmdldCgpOwogfQogCiB2b2lkIFBsYXRmb3Jt
Q0FMYXllckNvY29hOjpyZW1vdmVGcm9tU3VwZXJsYXllcigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJX
aW4uY3BwCmluZGV4IDYzNmQyMGQ5N2YwYTY4ZDY0N2UyNWU2YTQ4NTg0YTkxMDRiOTI5NjkuLmJk
M2ZlMDZkZjU4NTIyMDFjZGZkOTZhZTQyYWY1MzA5ZTk3ZWJmNmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNB
TGF5ZXJXaW4uY3BwCkBAIC05Miw3ICs5Miw3IEBAIHN0YXRpYyBQbGF0Zm9ybUNBTGF5ZXJXaW5J
bnRlcm5hbCogaW50ZXJuKHZvaWQqIGxheWVyKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxQbGF0
Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbCo+KENBQ0ZMYXllckdldFVzZXJEYXRhKHN0YXRpY19jYXN0
PENBQ0ZMYXllclJlZj4obGF5ZXIpKSk7CiB9CiAKLVBsYXRmb3JtQ0FMYXllciogUGxhdGZvcm1D
QUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIodm9pZCogcGxhdGZvcm1MYXllcikKK1JlZlB0cjxQbGF0
Zm9ybUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyRm9yTGF5ZXIodm9p
ZCogcGxhdGZvcm1MYXllcikKIHsKICAgICBpZiAoIXBsYXRmb3JtTGF5ZXIpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwpAQCAtMTI3LDkgKzEyNyw5IEBAIHN0YXRpYyB2b2lkIGRpc3BsYXlDYWxs
YmFjayhDQUNGTGF5ZXJSZWYgY2FMYXllciwgQ0dDb250ZXh0UmVmIGNvbnRleHQpCiAKIHN0YXRp
YyB2b2lkIGxheW91dFN1YmxheWVyc1Byb2MoQ0FDRkxheWVyUmVmIGNhTGF5ZXIpIAogewotICAg
IFBsYXRmb3JtQ0FMYXllciogbGF5ZXIgPSBQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXll
cihjYUxheWVyKTsKKyAgICBhdXRvIGxheWVyID0gUGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNB
TGF5ZXJGb3JMYXllcihjYUxheWVyKTsKICAgICBpZiAobGF5ZXIgJiYgbGF5ZXItPm93bmVyKCkp
Ci0gICAgICAgIGxheWVyLT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJMYXlvdXRTdWJsYXllcnNP
ZkxheWVyKGxheWVyKTsKKyAgICAgICAgbGF5ZXItPm93bmVyKCktPnBsYXRmb3JtQ0FMYXllckxh
eW91dFN1YmxheWVyc09mTGF5ZXIobGF5ZXIuZ2V0KCkpOwogfQogCiBQbGF0Zm9ybUNBTGF5ZXJX
aW46OlBsYXRmb3JtQ0FMYXllcldpbihMYXllclR5cGUgbGF5ZXJUeXBlLCBQbGF0Zm9ybUxheWVy
KiBsYXllciwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW5JbnRl
cm5hbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZv
cm1DQUxheWVyV2luSW50ZXJuYWwuY3BwCmluZGV4IDVlMDRjMmI0MjMyODk1OGNmYjQwYWFlM2I0
NDBiNzhkYTQxYWMzNTUuLjdiZGJlZWIyOTZiYTFmZGExZGM4NTFiZTJkZTkxZjc1MDQ3ZTAwMTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0
Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbkludGVybmFsLmNwcApAQCAtMjA3LDcg
KzIwNyw3IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWw6OmdldFN1YmxheWVycyhQ
bGF0Zm9ybUNBTGF5ZXJMaXN0JiBsaXN0KSBjb25zdAogCiAgICAgbGlzdC5yZXNpemUoY291bnQp
OwogICAgIGZvciAoc2l6ZV90IGFycmF5SW5kZXggPSAwOyBhcnJheUluZGV4IDwgY291bnQ7ICsr
YXJyYXlJbmRleCkKLSAgICAgICAgbGlzdFthcnJheUluZGV4XSA9IFBsYXRmb3JtQ0FMYXllcjo6
cGxhdGZvcm1DQUxheWVyKGNvbnN0X2Nhc3Q8dm9pZCo+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgo
c3VibGF5ZXJzLCBhcnJheUluZGV4KSkpOworICAgICAgICBsaXN0W2FycmF5SW5kZXhdID0gUGxh
dGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcihjb25zdF9jYXN0PHZvaWQqPihD
RkFycmF5R2V0VmFsdWVBdEluZGV4KHN1YmxheWVycywgYXJyYXlJbmRleCkpKTsKIH0KIAogdm9p
ZCBQbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbDo6cmVtb3ZlQWxsU3VibGF5ZXJzKCkKQEAgLTI1
Nyw3ICsyNTcsNyBAQCBQbGF0Zm9ybUNBTGF5ZXIqIFBsYXRmb3JtQ0FMYXllcldpbkludGVybmFs
OjpzdWJsYXllckF0SW5kZXgoaW50IGluZGV4KSBjb25zdAogICAgIGlmICghc3VibGF5ZXJzIHx8
IGluZGV4IDwgMCB8fCBDRkFycmF5R2V0Q291bnQoc3VibGF5ZXJzKSA8PSBpbmRleCkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCi0gICAgcmV0dXJuIFBsYXRmb3JtQ0FMYXllcjo6cGxh
dGZvcm1DQUxheWVyKHN0YXRpY19jYXN0PENBQ0ZMYXllclJlZj4oY29uc3RfY2FzdDx2b2lkKj4o
Q0ZBcnJheUdldFZhbHVlQXRJbmRleChzdWJsYXllcnMsIGluZGV4KSkpKTsKKyAgICByZXR1cm4g
UGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcihzdGF0aWNfY2FzdDxDQUNG
TGF5ZXJSZWY+KGNvbnN0X2Nhc3Q8dm9pZCo+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoc3VibGF5
ZXJzLCBpbmRleCkpKSkuZ2V0KCk7CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyV2luSW50ZXJu
YWw6OnNldEJvdW5kcyhjb25zdCBGbG9hdFJlY3QmIHJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbQppbmRleCA2OGI1MjU4
MDIwYjUwNGJhZTY2YmZhMTgxNDU2MmUzMGFmODRkMDM1Li43NzkxMWU1MzQ1MTNiMDhmZGE5NjY1
NDE5Mjc3ZjdlNzQwOGVhZTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KQEAgLTE3OSw5ICsxNzksOSBAQCAtICh2b2lk
KWRpc3BsYXkKICNlbmRpZgogCiAgICAgX2NvbnRleHQtPm1hcmtMYXllckNvbXBvc2l0ZWQoKTsK
LSAgICBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyID0gV2ViQ29yZTo6UGxhdGZvcm1D
QUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIoKF9fYnJpZGdlIHZvaWQqKXNlbGYpOworICAgIGF1dG8g
bGF5ZXIgPSBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllckZvckxheWVy
KChfX2JyaWRnZSB2b2lkKilzZWxmKTsKICAgICBpZiAobGF5ZXIgJiYgbGF5ZXItPm93bmVyKCkp
Ci0gICAgICAgIGxheWVyLT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJMYXllckRpZERpc3BsYXko
bGF5ZXIpOworICAgICAgICBsYXllci0+b3duZXIoKS0+cGxhdGZvcm1DQUxheWVyTGF5ZXJEaWRE
aXNwbGF5KGxheWVyLmdldCgpKTsKIH0KIAogI2lmIFVTRShBTkdMRSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5tbQppbmRleCA2NWU4NzgyMDYz
ZWI5MDU0OWY4MGNhZmI1YmI5MTIzM2FiNjIzYzkzLi43ZjlkOGUxOWJlODllYjQ0Mjg0MDVlYzYy
ODE0ZDMwYTlmYmUyMzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvV2ViTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL1dlYkxheWVyLm1tCkBAIC00OSwxMSArNDksMTEgQEAgQGltcGxlbWVudGF0aW9uIFdl
YkxheWVyCiAKIC0gKHZvaWQpZHJhd0luQ29udGV4dDooQ0dDb250ZXh0UmVmKWNvbnRleHQKIHsK
LSAgICBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyID0gV2ViQ29yZTo6UGxhdGZvcm1D
QUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIoKF9fYnJpZGdlIHZvaWQqKXNlbGYpOworICAgIGF1dG8g
bGF5ZXIgPSBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllckZvckxheWVy
KChfX2JyaWRnZSB2b2lkKilzZWxmKTsKICAgICBpZiAobGF5ZXIpIHsKICAgICAgICAgV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dChjb250ZXh0KTsKLSAgICAgICAgV2Vi
Q29yZTo6UGxhdGZvcm1DQUxheWVyOjpSZXBhaW50UmVjdExpc3QgcmVjdHNUb1BhaW50ID0gV2Vi
Q29yZTo6UGxhdGZvcm1DQUxheWVyOjpjb2xsZWN0UmVjdHNUb1BhaW50KGdyYXBoaWNzQ29udGV4
dCwgbGF5ZXIpOwotICAgICAgICBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OmRyYXdMYXllckNv
bnRlbnRzKGdyYXBoaWNzQ29udGV4dCwgbGF5ZXIsIHJlY3RzVG9QYWludCwgc2VsZi5pc1JlbmRl
cmluZ0luQ29udGV4dCA/IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludFNuYXBzaG90dGluZyA6
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludE5vcm1hbCk7CisgICAgICAgIFdlYkNvcmU6OlBs
YXRmb3JtQ0FMYXllcjo6UmVwYWludFJlY3RMaXN0IHJlY3RzVG9QYWludCA9IFdlYkNvcmU6OlBs
YXRmb3JtQ0FMYXllcjo6Y29sbGVjdFJlY3RzVG9QYWludChncmFwaGljc0NvbnRleHQsIGxheWVy
LmdldCgpKTsKKyAgICAgICAgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpkcmF3TGF5ZXJDb250
ZW50cyhncmFwaGljc0NvbnRleHQsIGxheWVyLmdldCgpLCByZWN0c1RvUGFpbnQsIHNlbGYuaXNS
ZW5kZXJpbmdJbkNvbnRleHQgPyBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRTbmFwc2hvdHRp
bmcgOiBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnROb3JtYWwpOwogICAgIH0KIH0KIApAQCAt
ODAsMTQgKzgwLDE0IEBAIC0gKGlkPENBQWN0aW9uPilhY3Rpb25Gb3JLZXk6KE5TU3RyaW5nICop
a2V5CiAKIC0gKHZvaWQpc2V0TmVlZHNEaXNwbGF5CiB7Ci0gICAgV2ViQ29yZTo6UGxhdGZvcm1D
QUxheWVyKiBsYXllciA9IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVy
KChfX2JyaWRnZSB2b2lkKilzZWxmKTsKKyAgICBhdXRvIGxheWVyID0gV2ViQ29yZTo6UGxhdGZv
cm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcigoX19icmlkZ2Ugdm9pZCopc2VsZik7
CiAgICAgaWYgKGxheWVyICYmIGxheWVyLT5vd25lcigpICYmIGxheWVyLT5vd25lcigpLT5wbGF0
Zm9ybUNBTGF5ZXJEcmF3c0NvbnRlbnQoKSkKICAgICAgICAgW3N1cGVyIHNldE5lZWRzRGlzcGxh
eV07CiB9CiAKIC0gKHZvaWQpc2V0TmVlZHNEaXNwbGF5SW5SZWN0OihDR1JlY3QpZGlydHlSZWN0
CiB7Ci0gICAgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyKiBwbGF0Zm9ybUxheWVyID0gV2ViQ29y
ZTo6UGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIoKF9fYnJpZGdlIHZvaWQqKXNlbGYp
OworICAgIGF1dG8gcGxhdGZvcm1MYXllciA9IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6cGxh
dGZvcm1DQUxheWVyRm9yTGF5ZXIoKF9fYnJpZGdlIHZvaWQqKXNlbGYpOwogICAgIGlmICghcGxh
dGZvcm1MYXllcikgewogICAgICAgICBbc3VwZXIgc2V0TmVlZHNEaXNwbGF5SW5SZWN0OmRpcnR5
UmVjdF07CiAgICAgICAgIHJldHVybjsKQEAgLTk3LDcgKzk3LDcgQEAgLSAodm9pZClzZXROZWVk
c0Rpc3BsYXlJblJlY3Q6KENHUmVjdClkaXJ0eVJlY3QKICAgICAgICAgaWYgKGxheWVyT3duZXIt
PnBsYXRmb3JtQ0FMYXllckRyYXdzQ29udGVudCgpKSB7CiAgICAgICAgICAgICBbc3VwZXIgc2V0
TmVlZHNEaXNwbGF5SW5SZWN0OmRpcnR5UmVjdF07CiAKLSAgICAgICAgICAgIGlmIChsYXllck93
bmVyLT5wbGF0Zm9ybUNBTGF5ZXJTaG93UmVwYWludENvdW50ZXIocGxhdGZvcm1MYXllcikpIHsK
KyAgICAgICAgICAgIGlmIChsYXllck93bmVyLT5wbGF0Zm9ybUNBTGF5ZXJTaG93UmVwYWludENv
dW50ZXIocGxhdGZvcm1MYXllci5nZXQoKSkpIHsKICAgICAgICAgICAgICAgICBDR1JlY3QgYm91
bmRzID0gW3NlbGYgYm91bmRzXTsKICAgICAgICAgICAgICAgICBDR1JlY3QgaW5kaWNhdG9yUmVj
dCA9IENHUmVjdE1ha2UoYm91bmRzLm9yaWdpbi54LCBib3VuZHMub3JpZ2luLnksIDUyLCAyNyk7
CiAgICAgICAgICAgICAgICAgW3N1cGVyIHNldE5lZWRzRGlzcGxheUluUmVjdDppbmRpY2F0b3JS
ZWN0XTsKQEAgLTExNCw5ICsxMTQsOSBAQCAtICh2b2lkKWRpc3BsYXkKICNlbmRpZgogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgW3N1cGVyIGRpc3BsYXldOwotICAgIFdlYkNvcmU6
OlBsYXRmb3JtQ0FMYXllciogbGF5ZXIgPSBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRm
b3JtQ0FMYXllcigoX19icmlkZ2Ugdm9pZCopc2VsZik7CisgICAgYXV0byBsYXllciA9IFdlYkNv
cmU6OlBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyRm9yTGF5ZXIoKF9fYnJpZGdlIHZv
aWQqKXNlbGYpOwogICAgIGlmIChsYXllciAmJiBsYXllci0+b3duZXIoKSkKLSAgICAgICAgbGF5
ZXItPm93bmVyKCktPnBsYXRmb3JtQ0FMYXllckxheWVyRGlkRGlzcGxheShsYXllcik7CisgICAg
ICAgIGxheWVyLT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJMYXllckRpZERpc3BsYXkobGF5ZXIu
Z2V0KCkpOwogfQogCiAtICh2b2lkKWRyYXdJbkNvbnRleHQ6KENHQ29udGV4dFJlZiljb250ZXh0
CkBAIC0xMjYsMTQgKzEyNiwxNCBAQCAtICh2b2lkKWRyYXdJbkNvbnRleHQ6KENHQ29udGV4dFJl
Ziljb250ZXh0CiAgICAgICAgIFdlYlRocmVhZExvY2soKTsKICNlbmRpZgogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0gICAgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyKiBsYXllciA9IFdl
YkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyKChfX2JyaWRnZSB2b2lkKilz
ZWxmKTsKKyAgICBhdXRvIGxheWVyID0gV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9y
bUNBTGF5ZXJGb3JMYXllcigoX19icmlkZ2Ugdm9pZCopc2VsZik7CiAgICAgaWYgKGxheWVyICYm
IGxheWVyLT5vd25lcigpKSB7CiAgICAgICAgIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCBncmFw
aGljc0NvbnRleHQoY29udGV4dCk7CiAgICAgICAgIGdyYXBoaWNzQ29udGV4dC5zZXRJc0NBTGF5
ZXJDb250ZXh0KHRydWUpOwogICAgICAgICBncmFwaGljc0NvbnRleHQuc2V0SXNBY2NlbGVyYXRl
ZENvbnRleHQobGF5ZXItPmFjY2VsZXJhdGVzRHJhd2luZygpKTsKIAogICAgICAgICBXZWJDb3Jl
OjpGbG9hdFJlY3QgY2xpcEJvdW5kcyA9IENHQ29udGV4dEdldENsaXBCb3VuZGluZ0JveChjb250
ZXh0KTsKLSAgICAgICAgbGF5ZXItPm93bmVyKCktPnBsYXRmb3JtQ0FMYXllclBhaW50Q29udGVu
dHMobGF5ZXIsIGdyYXBoaWNzQ29udGV4dCwgY2xpcEJvdW5kcywgc2VsZi5pc1JlbmRlcmluZ0lu
Q29udGV4dCA/IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludFNuYXBzaG90dGluZyA6IFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXJQYWludE5vcm1hbCk7CisgICAgICAgIGxheWVyLT5vd25lcigpLT5w
bGF0Zm9ybUNBTGF5ZXJQYWludENvbnRlbnRzKGxheWVyLmdldCgpLCBncmFwaGljc0NvbnRleHQs
IGNsaXBCb3VuZHMsIHNlbGYuaXNSZW5kZXJpbmdJbkNvbnRleHQgPyBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyUGFpbnRTbmFwc2hvdHRpbmcgOiBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnROb3Jt
YWwpOwogICAgIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391981</attachid>
            <date>2020-02-28 08:08:17 -0800</date>
            <delta_ts>2020-02-28 08:08:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208358-20200228080816.patch</filename>
            <type>text/plain</type>
            <size>16020</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTJjNWQ1NDhkYWE3YmQz
YzZhMDAzMjIyY2E1MzdhNWI3NjY1ZDNmMC4uYzc2OGM2ZmM3ZmY1ODgwMjQ2MDkzNTFmY2NiMjIy
YzYzZjZkOWY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTAyLTI3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3AgdXNpbmcg
LVtDQUxheWVyIHNldFZhbHVlOmZvcktleTpdIHRvIHN0b3JlIGJhY2sgcG9pbnRlcnMgdG8gUGxh
dGZvcm1DQUxheWVyKgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA4MzU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAg
ICBXZSB1c2VkIC1bQ0FsYXllciBzZXRWYWx1ZTpmb3JLZXk6QCJXS1BsYXRmb3JtQ0FMYXllciJd
IHRvIHN0b3JlIGFzc29jaWF0ZSBQbGF0Zm9ybUNBTGF5ZXIqCisgICAgICAgIHdpdGggQ0FMYXll
cnMuIEhvd2V2ZXIsIHRoaXMgaGFzIHNvbWUgcGVyZm9ybWFuY2UgY29zdCwgYW5kIHdvbid0IHdv
cmsgZm9yIGEgbmVhci1mdXR1cmUgd29ybGQKKyAgICAgICAgd2hlcmUgdGhlIHNjcm9sbGluZyB0
aHJlYWQgbmVlZHMgdG8gZ2V0IGF0IFBsYXRmb3JtQ0FMYXllcnMuCisKKyAgICAgICAgUmVwbGFj
ZSB3aXRoIGEgc3RhdGljIEhhc2hNYXA8PiBvZiBDQUxheWVyKiB0byBQbGF0Zm9ybUNBTGF5ZXIq
LiBBbHNvIHJlbmFtZSBwbGF0Zm9ybUNBTGF5ZXIoKQorICAgICAgICB0byBwbGF0Zm9ybUNBTGF5
ZXJGb3JMYXllcigpIHNvIGl0J3MgZWFzaWVyIHRvIGZpbmQuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllckNBOjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjpsYXllclRvUGxhdGZvcm1MYXllck1hcCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9y
bUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllckZvckxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBs
YXRmb3JtQ0FMYXllckNvY29hOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1D
QUxheWVyQ29jb2E6OmNvbW1vbkluaXQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1DQUxh
eWVyQ29jb2E6On5QbGF0Zm9ybUNBTGF5ZXJDb2NvYSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybUNBTGF5ZXJDb2NvYTo6c3VwZXJsYXllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQ
bGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllcik6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2ViR0xMYXll
ciBkaXNwbGF5XSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkxheWVyLm1t
OgorICAgICAgICAoLVtXZWJMYXllciBkcmF3SW5Db250ZXh0Ol0pOgorICAgICAgICAoLVtXZWJT
aW1wbGVMYXllciBzZXROZWVkc0Rpc3BsYXldKToKKyAgICAgICAgKC1bV2ViU2ltcGxlTGF5ZXIg
c2V0TmVlZHNEaXNwbGF5SW5SZWN0Ol0pOgorICAgICAgICAoLVtXZWJTaW1wbGVMYXllciBkaXNw
bGF5XSk6CisgICAgICAgICgtW1dlYlNpbXBsZUxheWVyIGRyYXdJbkNvbnRleHQ6XSk6CisKIDIw
MjAtMDItMjcgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIE1lbW9y
eVJlbGVhc2UgbG9nZ2luZyB1c2VzIGEgdW5pcXVlX3B0ciB3aXRoIHVuY2xlYXIgbGlmZXRpbWUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGlj
c0xheWVyQ0EuY3BwCmluZGV4IDcwNWU4YjE4MDk2OTFjOTAyZjVlNzVhNzVjYmQwMGVlMzFkNmUx
MTkuLjBhZGE3ZmVmZTc3ZjE5M2Q4NzQ2YWM5NDA1YzVjZjQyYTBkYmZkYzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmNwcApAQCAtMTIxNiw4ICsxMjE2LDE1IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRDb250
ZW50c1RvUGxhdGZvcm1MYXllcihQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyLCBDCiAgICAg
Ly8gUGxhdGZvcm1DQUxheWVyIGlzIHVzaW5nIGEgdXNlciBkYXRhIHBvaW50ZXIgaW4gdGhlIHJh
dyBsYXllciwgYW5kCiAgICAgLy8gdGhlIGNyZWF0b3Igb2YgdGhlIHJhdyBsYXllciBpcyB1c2lu
ZyBpdCBmb3Igc29tZSBvdGhlciBwdXJwb3NlLgogICAgIC8vIEZvciBub3cgd2UgZG9uJ3Qgc3Vw
cG9ydCBzdWNoIGEgY2FzZS4KLSAgICBQbGF0Zm9ybUNBTGF5ZXIqIHBsYXRmb3JtQ0FMYXllciA9
IFBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyKHBsYXRmb3JtTGF5ZXIpOwotICAgIG1f
Y29udGVudHNMYXllciA9IHBsYXRmb3JtTGF5ZXIgPyAocGxhdGZvcm1DQUxheWVyID8gcGxhdGZv
cm1DQUxheWVyIDogY3JlYXRlUGxhdGZvcm1DQUxheWVyKHBsYXRmb3JtTGF5ZXIsIHRoaXMpLnB0
cigpKSA6IG51bGxwdHI7CisgICAgaWYgKHBsYXRmb3JtTGF5ZXIpIHsKKyAgICAgICAgYXV0byBw
bGF0Zm9ybUNBTGF5ZXIgPSBQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllckZvckxheWVy
KHBsYXRmb3JtTGF5ZXIpOworICAgICAgICBpZiAocGxhdGZvcm1DQUxheWVyKQorICAgICAgICAg
ICAgbV9jb250ZW50c0xheWVyID0gV1RGTW92ZShwbGF0Zm9ybUNBTGF5ZXIpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBtX2NvbnRlbnRzTGF5ZXIgPSBjcmVhdGVQbGF0Zm9ybUNBTGF5ZXIo
cGxhdGZvcm1MYXllciwgdGhpcyk7CisgICAgfSBlbHNlCisgICAgICAgIG1fY29udGVudHNMYXll
ciA9IG51bGxwdHI7CisKICAgICBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlID0gcGxhdGZvcm1MYXll
ciA/IHB1cnBvc2UgOiBDb250ZW50c0xheWVyUHVycG9zZTo6Tm9uZTsKIAogICAgIGlmIChtX2Nv
bnRlbnRzQ2xpcHBpbmdMYXllciAmJiBtX2NvbnRlbnRzTGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCmluZGV4IDQw
MTE3MmM0MTJlZjhiMGI3OTZmMWJhOWM1YWEwNTcxMDBhNTFkMjQuLjRjM2Q5ZDQ4YTQyMjQ1ZDVl
YjVlMWVjOTAzYTkwZWVkNDExMjQ0NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCkBAIC05Miw3ICs5Miw3IEBAIHB1
YmxpYzoKIAogICAgIC8vIFRoaXMgZnVuY3Rpb24gcGFzc2VzIHRoZSBsYXllciBhcyBhIHZvaWQq
IHJhdGhlciB0aGFuIGEgUGxhdGZvcm1MYXllciBiZWNhdXNlIFBsYXRmb3JtTGF5ZXIKICAgICAv
LyBpcyBkZWZpbmVkIGRpZmZlcmVudGx5IGZvciBPYmogQyBhbmQgQysrLiBUaGlzIGFsbG93cyBj
YWxsZXJzIGZyb20gYm90aCBsYW5ndWFnZXMuCi0gICAgc3RhdGljIFBsYXRmb3JtQ0FMYXllciog
cGxhdGZvcm1DQUxheWVyKHZvaWQqIHBsYXRmb3JtTGF5ZXIpOworICAgIHN0YXRpYyBSZWZQdHI8
UGxhdGZvcm1DQUxheWVyPiBwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcih2b2lkKiBwbGF0Zm9ybUxh
eWVyKTsKIAogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0
IHsgcmV0dXJuIG1fbGF5ZXIuZ2V0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2Nv
YS5tbQppbmRleCA2NTI2MGNhYzAxMjhjZGE5NjBiYWRlMTI1MmU2ZjZjYTc3MThkYjJmLi5hYzk3
YWFmYWM4ZWI2MWZkZWQyNmU5ZDk1Mzg3MWUzNjY0ZTZkOWI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9y
bUNBTGF5ZXJDb2NvYS5tbQpAQCAtNjksMjggKzY5LDMwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotUmVmPFBsYXRmb3JtQ0FMYXllckNvY29hPiBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6Y3Jl
YXRlKExheWVyVHlwZSBsYXllclR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIpCi17
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGxhdGZvcm1DQUxheWVyQ29jb2EobGF5ZXJUeXBl
LCBvd25lcikpOwotfQordXNpbmcgTGF5ZXJUb1BsYXRmb3JtQ0FMYXllck1hcCA9IEhhc2hNYXA8
dm9pZCosIFBsYXRmb3JtQ0FMYXllcio+OwogCi1SZWY8UGxhdGZvcm1DQUxheWVyQ29jb2E+IFBs
YXRmb3JtQ0FMYXllckNvY29hOjpjcmVhdGUodm9pZCogcGxhdGZvcm1MYXllciwgUGxhdGZvcm1D
QUxheWVyQ2xpZW50KiBvd25lcikKK3N0YXRpYyBMYXllclRvUGxhdGZvcm1DQUxheWVyTWFwJiBs
YXllclRvUGxhdGZvcm1MYXllck1hcCgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGxh
dGZvcm1DQUxheWVyQ29jb2EoKF9fYnJpZGdlIENBTGF5ZXIgKilwbGF0Zm9ybUxheWVyLCBvd25l
cikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMYXllclRvUGxhdGZvcm1DQUxheWVyTWFw
PiBsYXllck1hcDsKKyAgICByZXR1cm4gbGF5ZXJNYXA7CiB9CiAKLXN0YXRpYyBOU1N0cmluZyAq
IGNvbnN0IHBsYXRmb3JtQ0FMYXllclBvaW50ZXIgPSBAIldLUGxhdGZvcm1DQUxheWVyIjsKLVBs
YXRmb3JtQ0FMYXllciogUGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIodm9pZCogcGxh
dGZvcm1MYXllcikKK1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllcjo6cGxh
dGZvcm1DQUxheWVyRm9yTGF5ZXIodm9pZCogcGxhdGZvcm1MYXllcikKIHsKICAgICBpZiAoIXBs
YXRmb3JtTGF5ZXIpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgLy8gUG9pbnRlciB0byBQbGF0
Zm9ybUNBTGF5ZXIgaXMga2VwdCBpbiBhIGtleSBvZiB0aGUgQ0FMYXllcgotICAgIFBsYXRmb3Jt
Q0FMYXllciogcGxhdGZvcm1DQUxheWVyID0gbmlsOwotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUwotICAgIHBsYXRmb3JtQ0FMYXllciA9IHN0YXRpY19jYXN0PFBsYXRmb3JtQ0FMYXll
cio+KFtbKF9fYnJpZGdlIENBTGF5ZXIgKilwbGF0Zm9ybUxheWVyIHZhbHVlRm9yS2V5OnBsYXRm
b3JtQ0FMYXllclBvaW50ZXJdIHBvaW50ZXJWYWx1ZV0pOwotICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKLSAgICByZXR1cm4gcGxhdGZvcm1DQUxheWVyOworICAgIHJldHVybiBsYXllclRv
UGxhdGZvcm1MYXllck1hcCgpLmdldChwbGF0Zm9ybUxheWVyKTsKK30KKworUmVmPFBsYXRmb3Jt
Q0FMYXllckNvY29hPiBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6Y3JlYXRlKExheWVyVHlwZSBsYXll
clR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIpCit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUGxhdGZvcm1DQUxheWVyQ29jb2EobGF5ZXJUeXBlLCBvd25lcikpOworfQorCitS
ZWY8UGxhdGZvcm1DQUxheWVyQ29jb2E+IFBsYXRmb3JtQ0FMYXllckNvY29hOjpjcmVhdGUodm9p
ZCogcGxhdGZvcm1MYXllciwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcikKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBQbGF0Zm9ybUNBTGF5ZXJDb2NvYSgoX19icmlkZ2UgQ0FMYXll
ciAqKXBsYXRmb3JtTGF5ZXIsIG93bmVyKSk7CiB9CiAKIHN0YXRpYyBNb25vdG9uaWNUaW1lIG1l
ZGlhVGltZVRvQ3VycmVudFRpbWUoQ0ZUaW1lSW50ZXJ2YWwgdCkKQEAgLTI5Nyw4ICsyOTksOCBA
QCBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6UGxhdGZvcm1DQUxheWVyQ29jb2EoUGxhdGZvcm1MYXll
ciogbGF5ZXIsIFBsYXRmb3JtQ0FMYXllcgogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6Y29t
bW9uSW5pdCgpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgLy8gU2F2
ZSBhIHBvaW50ZXIgdG8gJ3RoaXMnIGluIHRoZSBDQUxheWVyCi0gICAgW21fbGF5ZXIgc2V0VmFs
dWU6W05TVmFsdWUgdmFsdWVXaXRoUG9pbnRlcjp0aGlzXSBmb3JLZXk6cGxhdGZvcm1DQUxheWVy
UG9pbnRlcl07CisKKyAgICBsYXllclRvUGxhdGZvcm1MYXllck1hcCgpLmFkZChtX2xheWVyLmdl
dCgpLCB0aGlzKTsKICAgICAKICAgICAvLyBDbGVhciBhbGwgdGhlIGltcGxpY2l0IGFuaW1hdGlv
bnMgb24gdGhlIENBTGF5ZXIKICAgICBpZiAobV9sYXllclR5cGUgPT0gTGF5ZXJUeXBlQVZQbGF5
ZXJMYXllciB8fCBtX2xheWVyVHlwZSA9PSBMYXllclR5cGVDb250ZW50c1Byb3ZpZGVkTGF5ZXIg
fHwgbV9sYXllclR5cGUgPT0gTGF5ZXJUeXBlU2Nyb2xsQ29udGFpbmVyTGF5ZXIgfHwgbV9sYXll
clR5cGUgPT0gTGF5ZXJUeXBlQ3VzdG9tKQpAQCAtMzc4LDcgKzM4MCw3IEBAIFJlZjxQbGF0Zm9y
bUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllckNvY29hOjpjbG9uZShQbGF0Zm9ybUNBTGF5ZXJDbGll
bnQqIG93bmVyKSBjCiAKIFBsYXRmb3JtQ0FMYXllckNvY29hOjp+UGxhdGZvcm1DQUxheWVyQ29j
b2EoKQogewotICAgIFttX2xheWVyIHNldFZhbHVlOm5pbCBmb3JLZXk6cGxhdGZvcm1DQUxheWVy
UG9pbnRlcl07CisgICAgbGF5ZXJUb1BsYXRmb3JtTGF5ZXJNYXAoKS5yZW1vdmUobV9sYXllci5n
ZXQoKSk7CiAgICAgCiAgICAgLy8gUmVtb3ZlIHRoZSBvd25lciBwb2ludGVyIGZyb20gdGhlIGRl
bGVnYXRlIGluIGNhc2UgdGhlcmUgaXMgYSBwZW5kaW5nIGFuaW1hdGlvblN0YXJ0ZWQgZXZlbnQu
CiAgICAgW3N0YXRpY19jYXN0PFdlYkFuaW1hdGlvbkRlbGVnYXRlKj4obV9kZWxlZ2F0ZS5nZXQo
KSkgc2V0T3duZXI6bmlsXTsKQEAgLTQzMiw3ICs0MzQsNyBAQCB2b2lkIFBsYXRmb3JtQ0FMYXll
ckNvY29hOjpjb3B5Q29udGVudHNGcm9tTGF5ZXIoUGxhdGZvcm1DQUxheWVyKiBsYXllcikKIAog
UGxhdGZvcm1DQUxheWVyKiBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6c3VwZXJsYXllcigpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIHBsYXRmb3JtQ0FMYXllcigoX19icmlkZ2Ugdm9pZCopW21fbGF5ZXIg
c3VwZXJsYXllcl0pOworICAgIHJldHVybiBwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcigoX19icmlk
Z2Ugdm9pZCopW21fbGF5ZXIgc3VwZXJsYXllcl0pLmdldCgpOwogfQogCiB2b2lkIFBsYXRmb3Jt
Q0FMYXllckNvY29hOjpyZW1vdmVGcm9tU3VwZXJsYXllcigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJX
aW4uY3BwCmluZGV4IDYzNmQyMGQ5N2YwYTY4ZDY0N2UyNWU2YTQ4NTg0YTkxMDRiOTI5NjkuLjdh
NjUyZjFiZmJhMGY3OTFhZmVlMWNiOWM1MWI4Y2M1ZmQzOGQwOGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNB
TGF5ZXJXaW4uY3BwCkBAIC05Miw3ICs5Miw3IEBAIHN0YXRpYyBQbGF0Zm9ybUNBTGF5ZXJXaW5J
bnRlcm5hbCogaW50ZXJuKHZvaWQqIGxheWVyKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxQbGF0
Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbCo+KENBQ0ZMYXllckdldFVzZXJEYXRhKHN0YXRpY19jYXN0
PENBQ0ZMYXllclJlZj4obGF5ZXIpKSk7CiB9CiAKLVBsYXRmb3JtQ0FMYXllciogUGxhdGZvcm1D
QUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIodm9pZCogcGxhdGZvcm1MYXllcikKK1JlZlB0cjxQbGF0
Zm9ybUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyRm9yTGF5ZXIodm9p
ZCogcGxhdGZvcm1MYXllcikKIHsKICAgICBpZiAoIXBsYXRmb3JtTGF5ZXIpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwpAQCAtMTI3LDkgKzEyNyw5IEBAIHN0YXRpYyB2b2lkIGRpc3BsYXlDYWxs
YmFjayhDQUNGTGF5ZXJSZWYgY2FMYXllciwgQ0dDb250ZXh0UmVmIGNvbnRleHQpCiAKIHN0YXRp
YyB2b2lkIGxheW91dFN1YmxheWVyc1Byb2MoQ0FDRkxheWVyUmVmIGNhTGF5ZXIpIAogewotICAg
IFBsYXRmb3JtQ0FMYXllciogbGF5ZXIgPSBQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXll
cihjYUxheWVyKTsKKyAgICBhdXRvIGxheWVyID0gUGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNB
TGF5ZXJGb3JMYXllcihjYUxheWVyKTsKICAgICBpZiAobGF5ZXIgJiYgbGF5ZXItPm93bmVyKCkp
Ci0gICAgICAgIGxheWVyLT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJMYXlvdXRTdWJsYXllcnNP
ZkxheWVyKGxheWVyKTsKKyAgICAgICAgbGF5ZXItPm93bmVyKCktPnBsYXRmb3JtQ0FMYXllckxh
eW91dFN1YmxheWVyc09mTGF5ZXIobGF5ZXIuZ2V0KCkpOwogfQogCiBQbGF0Zm9ybUNBTGF5ZXJX
aW46OlBsYXRmb3JtQ0FMYXllcldpbihMYXllclR5cGUgbGF5ZXJUeXBlLCBQbGF0Zm9ybUxheWVy
KiBsYXllciwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcikKQEAgLTI2Niw3ICsyNjYsNyBA
QCB2b2lkIFBsYXRmb3JtQ0FMYXllcldpbjo6c2V0TmVlZHNMYXlvdXQoKQogCiBQbGF0Zm9ybUNB
TGF5ZXIqIFBsYXRmb3JtQ0FMYXllcldpbjo6c3VwZXJsYXllcigpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIHBsYXRmb3JtQ0FMYXllcihDQUNGTGF5ZXJHZXRTdXBlcmxheWVyKG1fbGF5ZXIuZ2V0KCkp
KTsKKyAgICByZXR1cm4gcGxhdGZvcm1DQUxheWVyRm9yTGF5ZXIoQ0FDRkxheWVyR2V0U3VwZXJs
YXllcihtX2xheWVyLmdldCgpKSkuZ2V0KCk7CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyV2lu
OjpyZW1vdmVGcm9tU3VwZXJsYXllcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWwuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbklu
dGVybmFsLmNwcAppbmRleCA1ZTA0YzJiNDIzMjg5NThjZmI0MGFhZTNiNDQwYjc4ZGE0MWFjMzU1
Li43YmRiZWViMjk2YmExZmRhMWRjODUxYmUyZGU5MWY3NTA0N2UwMDE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2lu
SW50ZXJuYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dp
bi9QbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbC5jcHAKQEAgLTIwNyw3ICsyMDcsNyBAQCB2b2lk
IFBsYXRmb3JtQ0FMYXllcldpbkludGVybmFsOjpnZXRTdWJsYXllcnMoUGxhdGZvcm1DQUxheWVy
TGlzdCYgbGlzdCkgY29uc3QKIAogICAgIGxpc3QucmVzaXplKGNvdW50KTsKICAgICBmb3IgKHNp
emVfdCBhcnJheUluZGV4ID0gMDsgYXJyYXlJbmRleCA8IGNvdW50OyArK2FycmF5SW5kZXgpCi0g
ICAgICAgIGxpc3RbYXJyYXlJbmRleF0gPSBQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXll
cihjb25zdF9jYXN0PHZvaWQqPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KHN1YmxheWVycywgYXJy
YXlJbmRleCkpKTsKKyAgICAgICAgbGlzdFthcnJheUluZGV4XSA9IFBsYXRmb3JtQ0FMYXllcjo6
cGxhdGZvcm1DQUxheWVyRm9yTGF5ZXIoY29uc3RfY2FzdDx2b2lkKj4oQ0ZBcnJheUdldFZhbHVl
QXRJbmRleChzdWJsYXllcnMsIGFycmF5SW5kZXgpKSk7CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxh
eWVyV2luSW50ZXJuYWw6OnJlbW92ZUFsbFN1YmxheWVycygpCkBAIC0yNTcsNyArMjU3LDcgQEAg
UGxhdGZvcm1DQUxheWVyKiBQbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbDo6c3VibGF5ZXJBdElu
ZGV4KGludCBpbmRleCkgY29uc3QKICAgICBpZiAoIXN1YmxheWVycyB8fCBpbmRleCA8IDAgfHwg
Q0ZBcnJheUdldENvdW50KHN1YmxheWVycykgPD0gaW5kZXgpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIAotICAgIHJldHVybiBQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllcihz
dGF0aWNfY2FzdDxDQUNGTGF5ZXJSZWY+KGNvbnN0X2Nhc3Q8dm9pZCo+KENGQXJyYXlHZXRWYWx1
ZUF0SW5kZXgoc3VibGF5ZXJzLCBpbmRleCkpKSk7CisgICAgcmV0dXJuIFBsYXRmb3JtQ0FMYXll
cjo6cGxhdGZvcm1DQUxheWVyRm9yTGF5ZXIoc3RhdGljX2Nhc3Q8Q0FDRkxheWVyUmVmPihjb25z
dF9jYXN0PHZvaWQqPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KHN1YmxheWVycywgaW5kZXgpKSkp
LmdldCgpOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllcldpbkludGVybmFsOjpzZXRCb3VuZHMo
Y29uc3QgRmxvYXRSZWN0JiByZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KaW5kZXggNjhiNTI1ODAyMGI1MDRiYWU2NmJm
YTE4MTQ1NjJlMzBhZjg0ZDAzNS4uNzc5MTFlNTM0NTEzYjA4ZmRhOTY2NTQxOTI3N2Y3ZTc0MDhl
YWUzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
V2ViR0xMYXllci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9XZWJHTExheWVyLm1tCkBAIC0xNzksOSArMTc5LDkgQEAgLSAodm9pZClkaXNwbGF5CiAjZW5k
aWYKIAogICAgIF9jb250ZXh0LT5tYXJrTGF5ZXJDb21wb3NpdGVkKCk7Ci0gICAgV2ViQ29yZTo6
UGxhdGZvcm1DQUxheWVyKiBsYXllciA9IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6cGxhdGZv
cm1DQUxheWVyKChfX2JyaWRnZSB2b2lkKilzZWxmKTsKKyAgICBhdXRvIGxheWVyID0gV2ViQ29y
ZTo6UGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcigoX19icmlkZ2Ugdm9p
ZCopc2VsZik7CiAgICAgaWYgKGxheWVyICYmIGxheWVyLT5vd25lcigpKQotICAgICAgICBsYXll
ci0+b3duZXIoKS0+cGxhdGZvcm1DQUxheWVyTGF5ZXJEaWREaXNwbGF5KGxheWVyKTsKKyAgICAg
ICAgbGF5ZXItPm93bmVyKCktPnBsYXRmb3JtQ0FMYXllckxheWVyRGlkRGlzcGxheShsYXllci5n
ZXQoKSk7CiB9CiAKICNpZiBVU0UoQU5HTEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIubW0KaW5kZXggNjVlODc4MjA2M2ViOTA1NDlmODBjYWZi
NWJiOTEyMzNhYjYyM2M5My4uN2Y5ZDhlMTliZTg5ZWI0NDI4NDA1ZWM2MjgxNGQzMGE5ZmJlMjM3
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkxh
eWVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXll
ci5tbQpAQCAtNDksMTEgKzQ5LDExIEBAIEBpbXBsZW1lbnRhdGlvbiBXZWJMYXllcgogCiAtICh2
b2lkKWRyYXdJbkNvbnRleHQ6KENHQ29udGV4dFJlZiljb250ZXh0CiB7Ci0gICAgV2ViQ29yZTo6
UGxhdGZvcm1DQUxheWVyKiBsYXllciA9IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6cGxhdGZv
cm1DQUxheWVyKChfX2JyaWRnZSB2b2lkKilzZWxmKTsKKyAgICBhdXRvIGxheWVyID0gV2ViQ29y
ZTo6UGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcigoX19icmlkZ2Ugdm9p
ZCopc2VsZik7CiAgICAgaWYgKGxheWVyKSB7CiAgICAgICAgIFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dCBncmFwaGljc0NvbnRleHQoY29udGV4dCk7Ci0gICAgICAgIFdlYkNvcmU6OlBsYXRmb3Jt
Q0FMYXllcjo6UmVwYWludFJlY3RMaXN0IHJlY3RzVG9QYWludCA9IFdlYkNvcmU6OlBsYXRmb3Jt
Q0FMYXllcjo6Y29sbGVjdFJlY3RzVG9QYWludChncmFwaGljc0NvbnRleHQsIGxheWVyKTsKLSAg
ICAgICAgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpkcmF3TGF5ZXJDb250ZW50cyhncmFwaGlj
c0NvbnRleHQsIGxheWVyLCByZWN0c1RvUGFpbnQsIHNlbGYuaXNSZW5kZXJpbmdJbkNvbnRleHQg
PyBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRTbmFwc2hvdHRpbmcgOiBXZWJDb3JlOjpHcmFw
aGljc0xheWVyUGFpbnROb3JtYWwpOworICAgICAgICBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6
OlJlcGFpbnRSZWN0TGlzdCByZWN0c1RvUGFpbnQgPSBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6
OmNvbGxlY3RSZWN0c1RvUGFpbnQoZ3JhcGhpY3NDb250ZXh0LCBsYXllci5nZXQoKSk7CisgICAg
ICAgIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6ZHJhd0xheWVyQ29udGVudHMoZ3JhcGhpY3ND
b250ZXh0LCBsYXllci5nZXQoKSwgcmVjdHNUb1BhaW50LCBzZWxmLmlzUmVuZGVyaW5nSW5Db250
ZXh0ID8gV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50U25hcHNob3R0aW5nIDogV2ViQ29yZTo6
R3JhcGhpY3NMYXllclBhaW50Tm9ybWFsKTsKICAgICB9CiB9CiAKQEAgLTgwLDE0ICs4MCwxNCBA
QCAtIChpZDxDQUFjdGlvbj4pYWN0aW9uRm9yS2V5OihOU1N0cmluZyAqKWtleQogCiAtICh2b2lk
KXNldE5lZWRzRGlzcGxheQogewotICAgIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllciogbGF5ZXIg
PSBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllcigoX19icmlkZ2Ugdm9p
ZCopc2VsZik7CisgICAgYXV0byBsYXllciA9IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6cGxh
dGZvcm1DQUxheWVyRm9yTGF5ZXIoKF9fYnJpZGdlIHZvaWQqKXNlbGYpOwogICAgIGlmIChsYXll
ciAmJiBsYXllci0+b3duZXIoKSAmJiBsYXllci0+b3duZXIoKS0+cGxhdGZvcm1DQUxheWVyRHJh
d3NDb250ZW50KCkpCiAgICAgICAgIFtzdXBlciBzZXROZWVkc0Rpc3BsYXldOwogfQogCiAtICh2
b2lkKXNldE5lZWRzRGlzcGxheUluUmVjdDooQ0dSZWN0KWRpcnR5UmVjdAogewotICAgIFdlYkNv
cmU6OlBsYXRmb3JtQ0FMYXllciogcGxhdGZvcm1MYXllciA9IFdlYkNvcmU6OlBsYXRmb3JtQ0FM
YXllcjo6cGxhdGZvcm1DQUxheWVyKChfX2JyaWRnZSB2b2lkKilzZWxmKTsKKyAgICBhdXRvIHBs
YXRmb3JtTGF5ZXIgPSBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllckZv
ckxheWVyKChfX2JyaWRnZSB2b2lkKilzZWxmKTsKICAgICBpZiAoIXBsYXRmb3JtTGF5ZXIpIHsK
ICAgICAgICAgW3N1cGVyIHNldE5lZWRzRGlzcGxheUluUmVjdDpkaXJ0eVJlY3RdOwogICAgICAg
ICByZXR1cm47CkBAIC05Nyw3ICs5Nyw3IEBAIC0gKHZvaWQpc2V0TmVlZHNEaXNwbGF5SW5SZWN0
OihDR1JlY3QpZGlydHlSZWN0CiAgICAgICAgIGlmIChsYXllck93bmVyLT5wbGF0Zm9ybUNBTGF5
ZXJEcmF3c0NvbnRlbnQoKSkgewogICAgICAgICAgICAgW3N1cGVyIHNldE5lZWRzRGlzcGxheUlu
UmVjdDpkaXJ0eVJlY3RdOwogCi0gICAgICAgICAgICBpZiAobGF5ZXJPd25lci0+cGxhdGZvcm1D
QUxheWVyU2hvd1JlcGFpbnRDb3VudGVyKHBsYXRmb3JtTGF5ZXIpKSB7CisgICAgICAgICAgICBp
ZiAobGF5ZXJPd25lci0+cGxhdGZvcm1DQUxheWVyU2hvd1JlcGFpbnRDb3VudGVyKHBsYXRmb3Jt
TGF5ZXIuZ2V0KCkpKSB7CiAgICAgICAgICAgICAgICAgQ0dSZWN0IGJvdW5kcyA9IFtzZWxmIGJv
dW5kc107CiAgICAgICAgICAgICAgICAgQ0dSZWN0IGluZGljYXRvclJlY3QgPSBDR1JlY3RNYWtl
KGJvdW5kcy5vcmlnaW4ueCwgYm91bmRzLm9yaWdpbi55LCA1MiwgMjcpOwogICAgICAgICAgICAg
ICAgIFtzdXBlciBzZXROZWVkc0Rpc3BsYXlJblJlY3Q6aW5kaWNhdG9yUmVjdF07CkBAIC0xMTQs
OSArMTE0LDkgQEAgLSAodm9pZClkaXNwbGF5CiAjZW5kaWYKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogICAgIFtzdXBlciBkaXNwbGF5XTsKLSAgICBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5
ZXIqIGxheWVyID0gV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIoKF9f
YnJpZGdlIHZvaWQqKXNlbGYpOworICAgIGF1dG8gbGF5ZXIgPSBXZWJDb3JlOjpQbGF0Zm9ybUNB
TGF5ZXI6OnBsYXRmb3JtQ0FMYXllckZvckxheWVyKChfX2JyaWRnZSB2b2lkKilzZWxmKTsKICAg
ICBpZiAobGF5ZXIgJiYgbGF5ZXItPm93bmVyKCkpCi0gICAgICAgIGxheWVyLT5vd25lcigpLT5w
bGF0Zm9ybUNBTGF5ZXJMYXllckRpZERpc3BsYXkobGF5ZXIpOworICAgICAgICBsYXllci0+b3du
ZXIoKS0+cGxhdGZvcm1DQUxheWVyTGF5ZXJEaWREaXNwbGF5KGxheWVyLmdldCgpKTsKIH0KIAog
LSAodm9pZClkcmF3SW5Db250ZXh0OihDR0NvbnRleHRSZWYpY29udGV4dApAQCAtMTI2LDE0ICsx
MjYsMTQgQEAgLSAodm9pZClkcmF3SW5Db250ZXh0OihDR0NvbnRleHRSZWYpY29udGV4dAogICAg
ICAgICBXZWJUaHJlYWRMb2NrKCk7CiAjZW5kaWYKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwotICAgIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllciogbGF5ZXIgPSBXZWJDb3JlOjpQbGF0Zm9y
bUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllcigoX19icmlkZ2Ugdm9pZCopc2VsZik7CisgICAgYXV0
byBsYXllciA9IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyRm9yTGF5
ZXIoKF9fYnJpZGdlIHZvaWQqKXNlbGYpOwogICAgIGlmIChsYXllciAmJiBsYXllci0+b3duZXIo
KSkgewogICAgICAgICBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0KGNv
bnRleHQpOwogICAgICAgICBncmFwaGljc0NvbnRleHQuc2V0SXNDQUxheWVyQ29udGV4dCh0cnVl
KTsKICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LnNldElzQWNjZWxlcmF0ZWRDb250ZXh0KGxheWVy
LT5hY2NlbGVyYXRlc0RyYXdpbmcoKSk7CiAKICAgICAgICAgV2ViQ29yZTo6RmxvYXRSZWN0IGNs
aXBCb3VuZHMgPSBDR0NvbnRleHRHZXRDbGlwQm91bmRpbmdCb3goY29udGV4dCk7Ci0gICAgICAg
IGxheWVyLT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJQYWludENvbnRlbnRzKGxheWVyLCBncmFw
aGljc0NvbnRleHQsIGNsaXBCb3VuZHMsIHNlbGYuaXNSZW5kZXJpbmdJbkNvbnRleHQgPyBXZWJD
b3JlOjpHcmFwaGljc0xheWVyUGFpbnRTbmFwc2hvdHRpbmcgOiBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyUGFpbnROb3JtYWwpOworICAgICAgICBsYXllci0+b3duZXIoKS0+cGxhdGZvcm1DQUxheWVy
UGFpbnRDb250ZW50cyhsYXllci5nZXQoKSwgZ3JhcGhpY3NDb250ZXh0LCBjbGlwQm91bmRzLCBz
ZWxmLmlzUmVuZGVyaW5nSW5Db250ZXh0ID8gV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50U25h
cHNob3R0aW5nIDogV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50Tm9ybWFsKTsKICAgICB9CiB9
CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>