<?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>231741</bug_id>
          
          <creation_ts>2021-10-14 07:38:36 -0700</creation_ts>
          <short_desc>Selection changes on modal &lt;dialog&gt; text nodes do not work with the mouse</short_desc>
          <delta_ts>2021-10-19 09:49:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</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=231962</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>
          
          <blocked>84635</blocked>
    
    <blocked>165279</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Nguyen (:ntim)">ntim</reporter>
          <assigned_to name="Tim Nguyen (:ntim)">ntim</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1804270</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-10-14 07:38:36 -0700</bug_when>
    <thetext>I suspect there&apos;s a bug with how text selection on inert is implemented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805366</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-17 02:44:42 -0700</bug_when>
    <thetext>&lt;rdar://problem/84342457&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805497</commentid>
    <comment_count>2</comment_count>
      <attachid>441575</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-10-18 02:36:01 -0700</bug_when>
    <thetext>Created attachment 441575
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805529</commentid>
    <comment_count>3</comment_count>
      <attachid>441575</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-18 04:32:32 -0700</bug_when>
    <thetext>Comment on attachment 441575
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=441575&amp;action=review

&gt; Source/WebCore/rendering/style/RenderStyle.h:613
&gt; +    UserSelect effectiveUserSelect() const { return effectiveInert() ? UserSelect::None : userSelect(); }

It is confusing since &quot;effectiveUserSelect&quot; sounds like a property but this is just a helper.

Perhaps

bool allowsSelections() const;

or similar. It would also be good to start moving helpers out of RenderStyle

inline bool allowsSelections(const RenderStyle&amp;)

would be another option.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805534</commentid>
    <comment_count>4</comment_count>
      <attachid>441575</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-18 05:03:12 -0700</bug_when>
    <thetext>Comment on attachment 441575
Patch

r=me but please find a better name</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805540</commentid>
    <comment_count>5</comment_count>
      <attachid>441591</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-10-18 05:24:40 -0700</bug_when>
    <thetext>Created attachment 441591
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805542</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-10-18 05:26:51 -0700</bug_when>
    <thetext>Committed r284366 (243151@main): &lt;https://commits.webkit.org/243151@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441575</attachid>
            <date>2021-10-18 02:36:01 -0700</date>
            <delta_ts>2021-10-18 05:03:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231741-20211018113559.patch</filename>
            <type>text/plain</type>
            <size>24226</size>
            <attacher name="Tim Nguyen (:ntim)">ntim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2NlMTNjNmFkOGMzZmMz
MzVmNjYzOTljYTU3NmIwZmVjOTUzYTE4YS4uZmRjMGVmOGViMjA3NmNkNWU2M2Q0MDdhNTYxYTdm
M2UzNjE1ZWExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIxLTEwLTE4ICBUaW0g
Tmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IG1vdXNlIHNlbGVjdGlvbiBv
biBtb2RhbCA8ZGlhbG9nPiB0ZXh0IG5vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE3NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUZXN0czoKKyAgICAgICAgLSBlZGl0aW5nL3NlbGVjdGlvbi9t
b2RhbC1kaWFsb2ctc2VsZWN0LXBhcmFncmFwaC5odG1sICh0ZXN0cyB0aGlzIGJ1ZykKKyAgICAg
ICAgLSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMt
dW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS5odG1sICh0ZXN0cyB3aGF0CisgICAgICAgIHRoZSBjYW5T
dGFydFNlbGVjdGlvbiBjaGVjayB3YXMgc3VwcG9zZWQgdG8gZml4KQorCisgICAgICAgIFRoZSBp
bmVydCBjaGVjayBpbiBOb2RlOjpjYW5TdGFydFNlbGVjdGlvbigpIHdhcyB0b28gcmVzdHJpY3Rp
dmUsIHdoaWNoIGNhdXNlZCB0aGlzIGJ1ZyB0byBoYXBwZW4gYmVjYXVzZQorICAgICAgICB3ZSBz
ZXQgdGhlIHJvb3Qgbm9kZSBhcyBpbmVydCBhbmQgdGhlbiByZXNldCBpdCBmb3IgdGhlIG1vZGFs
IDxkaWFsb2c+IGl0c2VsZiwgY2F1c2luZyB0aGUgdGV4dCBpbiB0aGUKKyAgICAgICAgPGRpYWxv
Zz4gdG8gYmUgdW5zZWxlY3RhYmxlLiBJbnN0ZWFkLCBqdXN0IG1pcnJvciBob3cgLXdlYmtpdC11
c2VyLXNlbGVjdDogbm9uZTsgaXMgaW1wbGVtZW50ZWQgYnkgaW50cm9kdWNpbmcgUmVuZGVyU3R5
bGU6OmVmZmVjdGl2ZVVzZXJTZWxlY3QoKS4KKworICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbXB1dGVFZGl0YWJpbGl0eUZyb21Db21wdXRlZFN0eWxlKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGU6OmNhblN0YXJ0U2VsZWN0aW9uIGNvbnN0KToKKyAgICAgICAg
KiBkb20vUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246Om5vZGVJc1Vz
ZXJTZWxlY3ROb25lKToKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpub2RlSXNVc2VyU2Vs
ZWN0QWxsKToKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjppc0NhbmRpZGF0ZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6bm9kZUlzSW5lcnRPclVzZXJTZWxlY3ROb25l
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vUG9zaXRpb24uaDoKKyAgICAgICAgKiBkb20vUG9z
aXRpb25JdGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbkl0ZXJhdG9yOjpp
c0NhbmRpZGF0ZSBjb25zdCk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp1cGRhdGVTZWxlY3Rpb25Gb3JNb3VzZURvd25E
aXNwYXRjaGluZ1NlbGVjdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
Y2FuTW91c2VEb3duU3RhcnRTZWxlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
OjpzZWxlY3RDdXJzb3IpOgorICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWU6OnJhbmdlRm9yUG9pbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnNlbGVjdGlvbkNv
bG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMgY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0Ojpjb2xsZWN0U2VsZWN0aW9uR2VvbWV0cmllc0ludGVybmFsKToK
KyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclN0eWxlOjplZmZlY3RpdmVVc2VyU2VsZWN0IGNvbnN0KToKKwogMjAyMS0xMC0x
NiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtl
IHN1cmUgY2hpbGQgbGF5ZXJzIG9mIHRvcCBsYXllciBlbGVtZW50cyBhcmUgcmVuZGVyZWQgYW5k
IGNvcnJlY3RseSB6LW9yZGVyZWQgKHRvcC1sYXllci1zdGFja2luZy5odG1sIGZhaWxzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCA1YWMyM2Y5Y2Q4MDZlNzBkNmQ4OTIzMzJiZDEwYjAyMDhhODk1YzAyLi5kYTQ3NDYw
YTYwZTllMTE1MzUzOWVkNzRmYzkxNDRjNTZjNTU1NjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDIxLTEwLTE4ICBUaW0gTmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CisKKyAgICAgICAg
Rml4IG1vdXNlIHNlbGVjdGlvbiBvbiBtb2RhbCA8ZGlhbG9nPiB0ZXh0IG5vZGVzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE3NDEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czoKKyAgICAgICAg
LSBlZGl0aW5nL3NlbGVjdGlvbi9tb2RhbC1kaWFsb2ctc2VsZWN0LXBhcmFncmFwaC5odG1sICh0
ZXN0cyB0aGlzIGJ1ZykKKyAgICAgICAgLSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2luZXJ0L2luZXJ0LW5vZGUtaXMtdW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS5odG1sICh0ZXN0cyB3
aGF0CisgICAgICAgIHRoZSBjYW5TdGFydFNlbGVjdGlvbiBjaGVjayB3YXMgc3VwcG9zZWQgdG8g
Zml4KQorCisgICAgICAgIFRoZSBpbmVydCBjaGVjayBpbiBOb2RlOjpjYW5TdGFydFNlbGVjdGlv
bigpIHdhcyB0b28gcmVzdHJpY3RpdmUsIHdoaWNoIGNhdXNlZCB0aGlzIGJ1ZyB0byBoYXBwZW4g
YmVjYXVzZQorICAgICAgICB3ZSBzZXQgdGhlIHJvb3Qgbm9kZSBhcyBpbmVydCBhbmQgdGhlbiBy
ZXNldCBpdCBmb3IgdGhlIG1vZGFsIDxkaWFsb2c+IGl0c2VsZiwgY2F1c2luZyB0aGUgdGV4dCBp
biB0aGUKKyAgICAgICAgPGRpYWxvZz4gdG8gYmUgdW5zZWxlY3RhYmxlLiBJbnN0ZWFkLCBqdXN0
IG1pcnJvciBob3cgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgaXMgaW1wbGVtZW50ZWQgYnkg
aW50cm9kdWNpbmcgUmVuZGVyU3R5bGU6OmVmZmVjdGl2ZVVzZXJTZWxlY3QoKS4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRs
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6aXNTZWxl
Y3RhYmxlVGV4dE5vZGUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6c2VsZWN0aW9uUG9zaXRpb25JbmZvcm1h
dGlvbik6CisKIDIwMjEtMTAtMTYgIExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0dUSzRdIFVwZGF0ZSBzaWduYWwgbmFtZSB0byBtb25pdG9yIHdpbmRvdyByZXNp
emUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmNwcAppbmRleCBiZjJiZjdjNzk1YmYxOGU1MjNmYmFmNWJmNDY3ZjllMmM5
MGY5YjI4Li5kZTAyMWE0YTM1NWJjMmU4MTdiOWM0ZDg2MjNmNjllMmU2MDJiZDEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuY3BwCkBAIC03NjQsNyArNzY0LDcgQEAgc3RhdGljIE5vZGU6OkVkaXRhYmlsaXR5IGNv
bXB1dGVFZGl0YWJpbGl0eUZyb21Db21wdXRlZFN0eWxlKGNvbnN0IE5vZGUmIHN0YXJ0Tm8KICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAvLyBFbGVtZW50cyB3aXRoIHVzZXItc2VsZWN0
OiBhbGwgc3R5bGUgYXJlIGNvbnNpZGVyZWQgYXRvbWljCiAgICAgICAgIC8vIHRoZXJlZm9yZSBu
b24gZWRpdGFibGUuCi0gICAgICAgIGlmICh0cmVhdG1lbnQgPT0gTm9kZTo6VXNlclNlbGVjdEFs
bElzQWx3YXlzTm9uRWRpdGFibGUgJiYgc3R5bGUtPnVzZXJTZWxlY3QoKSA9PSBVc2VyU2VsZWN0
OjpBbGwpCisgICAgICAgIGlmICh0cmVhdG1lbnQgPT0gTm9kZTo6VXNlclNlbGVjdEFsbElzQWx3
YXlzTm9uRWRpdGFibGUgJiYgc3R5bGUtPmVmZmVjdGl2ZVVzZXJTZWxlY3QoKSA9PSBVc2VyU2Vs
ZWN0OjpBbGwpCiAgICAgICAgICAgICByZXR1cm4gTm9kZTo6RWRpdGFiaWxpdHk6OlJlYWRPbmx5
OwogICAgICAgICBzd2l0Y2ggKHN0eWxlLT51c2VyTW9kaWZ5KCkpIHsKICAgICAgICAgY2FzZSBV
c2VyTW9kaWZ5OjpSZWFkT25seToKQEAgLTExMzAsMTIgKzExMzAsMTAgQEAgYm9vbCBOb2RlOjpj
YW5TdGFydFNlbGVjdGlvbigpIGNvbnN0CiAKICAgICBpZiAocmVuZGVyZXIoKSkgewogICAgICAg
ICBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUgPSByZW5kZXJlcigpLT5zdHlsZSgpOwotICAgICAg
ICBpZiAoc3R5bGUuZWZmZWN0aXZlSW5lcnQoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgICAgICAvLyBXZSBhbGxvdyBzZWxlY3Rpb25zIHRvIGJlZ2luIHdpdGhpbiBhbiBlbGVt
ZW50IHRoYXQgaGFzIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUgc2V0LAogICAgICAgICAvLyBi
dXQgaWYgdGhlIGVsZW1lbnQgaXMgZHJhZ2dhYmxlIHRoZW4gZHJhZ2dpbmcgc2hvdWxkIHRha2Ug
cHJpb3JpdHkgb3ZlciBzZWxlY3Rpb24uCi0gICAgICAgIGlmIChzdHlsZS51c2VyRHJhZygpID09
IFVzZXJEcmFnOjpFbGVtZW50ICYmIHN0eWxlLnVzZXJTZWxlY3QoKSA9PSBVc2VyU2VsZWN0OjpO
b25lKQorICAgICAgICBpZiAoc3R5bGUudXNlckRyYWcoKSA9PSBVc2VyRHJhZzo6RWxlbWVudCAm
JiBzdHlsZS5lZmZlY3RpdmVVc2VyU2VsZWN0KCkgPT0gVXNlclNlbGVjdDo6Tm9uZSkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgcmV0dXJuIHBhcmVudE9yU2hhZG93SG9z
dE5vZGUoKSA/IHBhcmVudE9yU2hhZG93SG9zdE5vZGUoKS0+Y2FuU3RhcnRTZWxlY3Rpb24oKSA6
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAppbmRleCAyYzMwZGMzMjY3ZjNkZjc3Mjk1MTQy
NDYzOWVjMzM1ZWU2NmFkZjUxLi41YmQ1YjJjZjA4NmUwOTFkMjE2ZDdkZGExYmJjYzkwMzkzNTdm
NzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKQEAgLTkzNywxOCArOTM3LDE4IEBAIGJvb2wg
UG9zaXRpb246Omhhc1JlbmRlcmVkTm9uQW5vbnltb3VzRGVzY2VuZGFudHNXaXRoSGVpZ2h0KGNv
bnN0IFJlbmRlckVsZW1lbnQmCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFBvc2l0aW9u
Ojpub2RlSXNJbmVydE9yVXNlclNlbGVjdE5vbmUoTm9kZSogbm9kZSkKK2Jvb2wgUG9zaXRpb246
Om5vZGVJc1VzZXJTZWxlY3ROb25lKE5vZGUqIG5vZGUpCiB7CiAgICAgaWYgKCFub2RlKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIG5vZGUtPnJlbmRlcmVyKCkgJiYgKG5vZGUt
PnJlbmRlcmVyKCktPnN0eWxlKCkudXNlclNlbGVjdCgpID09IFVzZXJTZWxlY3Q6Ok5vbmUgfHwg
bm9kZS0+cmVuZGVyZXIoKS0+c3R5bGUoKS5lZmZlY3RpdmVJbmVydCgpKTsKKyAgICByZXR1cm4g
bm9kZS0+cmVuZGVyZXIoKSAmJiAobm9kZS0+cmVuZGVyZXIoKS0+c3R5bGUoKS5lZmZlY3RpdmVV
c2VyU2VsZWN0KCkgPT0gVXNlclNlbGVjdDo6Tm9uZSk7CiB9CiAKIGJvb2wgUG9zaXRpb246Om5v
ZGVJc1VzZXJTZWxlY3RBbGwoY29uc3QgTm9kZSogbm9kZSkKIHsKICAgICBpZiAoIW5vZGUpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gbm9kZS0+cmVuZGVyZXIoKSAmJiAobm9k
ZS0+cmVuZGVyZXIoKS0+c3R5bGUoKS51c2VyU2VsZWN0KCkgPT0gVXNlclNlbGVjdDo6QWxsICYm
ICFub2RlLT5yZW5kZXJlcigpLT5zdHlsZSgpLmVmZmVjdGl2ZUluZXJ0KCkpOworICAgIHJldHVy
biBub2RlLT5yZW5kZXJlcigpICYmIChub2RlLT5yZW5kZXJlcigpLT5zdHlsZSgpLmVmZmVjdGl2
ZVVzZXJTZWxlY3QoKSA9PSBVc2VyU2VsZWN0OjpBbGwpOwogfQogCiBOb2RlKiBQb3NpdGlvbjo6
cm9vdFVzZXJTZWxlY3RBbGxGb3JOb2RlKE5vZGUqIG5vZGUpCkBAIC05ODgsMTYgKzk4OCwxNiBA
QCBib29sIFBvc2l0aW9uOjppc0NhbmRpZGF0ZSgpIGNvbnN0CiAKICAgICBpZiAocmVuZGVyZXIt
PmlzQlIoKSkgewogICAgICAgICAvLyBGSVhNRTogVGhlIGNvbmRpdGlvbiBzaG91bGQgYmUgbV9h
bmNob3JUeXBlID09IFBvc2l0aW9uSXNCZWZvcmVBbmNob3IsIGJ1dCBmb3Igbm93IHdlIHN0aWxs
IG5lZWQgdG8gc3VwcG9ydCBsZWdhY3kgcG9zaXRpb25zLgotICAgICAgICByZXR1cm4gIW1fb2Zm
c2V0ICYmIG1fYW5jaG9yVHlwZSAhPSBQb3NpdGlvbklzQWZ0ZXJBbmNob3IgJiYgIW5vZGVJc0lu
ZXJ0T3JVc2VyU2VsZWN0Tm9uZShkZXByZWNhdGVkTm9kZSgpLT5wYXJlbnROb2RlKCkpOworICAg
ICAgICByZXR1cm4gIW1fb2Zmc2V0ICYmIG1fYW5jaG9yVHlwZSAhPSBQb3NpdGlvbklzQWZ0ZXJB
bmNob3IgJiYgIW5vZGVJc1VzZXJTZWxlY3ROb25lKGRlcHJlY2F0ZWROb2RlKCktPnBhcmVudE5v
ZGUoKSk7CiAgICAgfQogCiAgICAgaWYgKGlzPFJlbmRlclRleHQ+KCpyZW5kZXJlcikpCi0gICAg
ICAgIHJldHVybiAhbm9kZUlzSW5lcnRPclVzZXJTZWxlY3ROb25lKGRlcHJlY2F0ZWROb2RlKCkp
ICYmIGRvd25jYXN0PFJlbmRlclRleHQ+KCpyZW5kZXJlcikuY29udGFpbnNDYXJldE9mZnNldCht
X29mZnNldCk7CisgICAgICAgIHJldHVybiAhbm9kZUlzVXNlclNlbGVjdE5vbmUoZGVwcmVjYXRl
ZE5vZGUoKSkgJiYgZG93bmNhc3Q8UmVuZGVyVGV4dD4oKnJlbmRlcmVyKS5jb250YWluc0NhcmV0
T2Zmc2V0KG1fb2Zmc2V0KTsKIAogICAgIGlmIChwb3NpdGlvbkJlZm9yZU9yQWZ0ZXJOb2RlSXND
YW5kaWRhdGUoKmRlcHJlY2F0ZWROb2RlKCkpKSB7CiAgICAgICAgIHJldHVybiAoKGF0Rmlyc3RF
ZGl0aW5nUG9zaXRpb25Gb3JOb2RlKCkgJiYgbV9hbmNob3JUeXBlID09IFBvc2l0aW9uSXNCZWZv
cmVBbmNob3IpCiAgICAgICAgICAgICB8fCAoYXRMYXN0RWRpdGluZ1Bvc2l0aW9uRm9yTm9kZSgp
ICYmIG1fYW5jaG9yVHlwZSA9PSBQb3NpdGlvbklzQWZ0ZXJBbmNob3IpKQotICAgICAgICAgICAg
JiYgIW5vZGVJc0luZXJ0T3JVc2VyU2VsZWN0Tm9uZShkZXByZWNhdGVkTm9kZSgpLT5wYXJlbnRO
b2RlKCkpOworICAgICAgICAgICAgJiYgIW5vZGVJc1VzZXJTZWxlY3ROb25lKGRlcHJlY2F0ZWRO
b2RlKCktPnBhcmVudE5vZGUoKSk7CiAgICAgfQogCiAgICAgaWYgKGlzPEhUTUxIdG1sRWxlbWVu
dD4oKm1fYW5jaG9yTm9kZSkpCkBAIC0xMDA3LDEzICsxMDA3LDEzIEBAIGJvb2wgUG9zaXRpb246
OmlzQ2FuZGlkYXRlKCkgY29uc3QKICAgICAgICAgYXV0byYgYmxvY2sgPSBkb3duY2FzdDxSZW5k
ZXJCbG9jaz4oKnJlbmRlcmVyKTsKICAgICAgICAgaWYgKGJsb2NrLmxvZ2ljYWxIZWlnaHQoKSB8
fCBpczxIVE1MQm9keUVsZW1lbnQ+KCptX2FuY2hvck5vZGUpIHx8IG1fYW5jaG9yTm9kZS0+aXNS
b290RWRpdGFibGVFbGVtZW50KCkpIHsKICAgICAgICAgICAgIGlmICghUG9zaXRpb246Omhhc1Jl
bmRlcmVkTm9uQW5vbnltb3VzRGVzY2VuZGFudHNXaXRoSGVpZ2h0KGJsb2NrKSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gYXRGaXJzdEVkaXRpbmdQb3NpdGlvbkZvck5vZGUoKSAmJiAhUG9zaXRp
b246Om5vZGVJc0luZXJ0T3JVc2VyU2VsZWN0Tm9uZShkZXByZWNhdGVkTm9kZSgpKTsKLSAgICAg
ICAgICAgIHJldHVybiBtX2FuY2hvck5vZGUtPmhhc0VkaXRhYmxlU3R5bGUoKSAmJiAhUG9zaXRp
b246Om5vZGVJc0luZXJ0T3JVc2VyU2VsZWN0Tm9uZShkZXByZWNhdGVkTm9kZSgpKSAmJiBhdEVk
aXRpbmdCb3VuZGFyeSgpOworICAgICAgICAgICAgICAgIHJldHVybiBhdEZpcnN0RWRpdGluZ1Bv
c2l0aW9uRm9yTm9kZSgpICYmICFQb3NpdGlvbjo6bm9kZUlzVXNlclNlbGVjdE5vbmUoZGVwcmVj
YXRlZE5vZGUoKSk7CisgICAgICAgICAgICByZXR1cm4gbV9hbmNob3JOb2RlLT5oYXNFZGl0YWJs
ZVN0eWxlKCkgJiYgIVBvc2l0aW9uOjpub2RlSXNVc2VyU2VsZWN0Tm9uZShkZXByZWNhdGVkTm9k
ZSgpKSAmJiBhdEVkaXRpbmdCb3VuZGFyeSgpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKLSAgICByZXR1cm4gbV9hbmNob3JOb2RlLT5oYXNFZGl0YWJsZVN0eWxl
KCkgJiYgIVBvc2l0aW9uOjpub2RlSXNJbmVydE9yVXNlclNlbGVjdE5vbmUoZGVwcmVjYXRlZE5v
ZGUoKSkgJiYgYXRFZGl0aW5nQm91bmRhcnkoKTsKKyAgICByZXR1cm4gbV9hbmNob3JOb2RlLT5o
YXNFZGl0YWJsZVN0eWxlKCkgJiYgIVBvc2l0aW9uOjpub2RlSXNVc2VyU2VsZWN0Tm9uZShkZXBy
ZWNhdGVkTm9kZSgpKSAmJiBhdEVkaXRpbmdCb3VuZGFyeSgpOwogfQogCiBib29sIFBvc2l0aW9u
Ojppc1JlbmRlcmVkQ2hhcmFjdGVyKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Qb3NpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmgKaW5kZXggOTE0
MTgwZDNmYzY2ZTIxYTBiMDg4YTI3NTRjMDYyZGE5YjAyODM3Ny4uOWM5OTRjMDk3OGM2YTQ4N2Q3
ZTIyYmEwYmQ2ZTBhNDg4YzU0YmMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Bv
c2l0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmgKQEAgLTE3OSw3ICsx
NzksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHVuc2lnbmVkIHBvc2l0aW9uQ291bnRCZXR3ZWVu
UG9zaXRpb25zKGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgUG9zaXRpb24mKTsKIAogICAgIHN0YXRp
YyBib29sIGhhc1JlbmRlcmVkTm9uQW5vbnltb3VzRGVzY2VuZGFudHNXaXRoSGVpZ2h0KGNvbnN0
IFJlbmRlckVsZW1lbnQmKTsKLSAgICBzdGF0aWMgYm9vbCBub2RlSXNJbmVydE9yVXNlclNlbGVj
dE5vbmUoTm9kZSopOworICAgIHN0YXRpYyBib29sIG5vZGVJc1VzZXJTZWxlY3ROb25lKE5vZGUq
KTsKICAgICBzdGF0aWMgYm9vbCBub2RlSXNVc2VyU2VsZWN0QWxsKGNvbnN0IE5vZGUqKTsKICAg
ICBzdGF0aWMgTm9kZSogcm9vdFVzZXJTZWxlY3RBbGxGb3JOb2RlKE5vZGUqKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwCmluZGV4IGY0MGE1YjUxYjFjMGM3NGI3YTJl
ODkyNGFjOTRhYTA4NjZjNWE0ZGUuLjdhYzEyMjZkMDY3M2Y2N2Y2ZGJhYTE0Njc4ZTI5NzQ0MjVj
Y2IxOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAKQEAgLTE2Miwx
MCArMTYyLDEwIEBAIGJvb2wgUG9zaXRpb25JdGVyYXRvcjo6aXNDYW5kaWRhdGUoKSBjb25zdAog
ICAgICAgICByZXR1cm4gUG9zaXRpb24oKnRoaXMpLmlzQ2FuZGlkYXRlKCk7CiAKICAgICBpZiAo
aXM8UmVuZGVyVGV4dD4oKnJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuICFQb3NpdGlvbjo6bm9k
ZUlzSW5lcnRPclVzZXJTZWxlY3ROb25lKG1fYW5jaG9yTm9kZSkgJiYgZG93bmNhc3Q8UmVuZGVy
VGV4dD4oKnJlbmRlcmVyKS5jb250YWluc0NhcmV0T2Zmc2V0KG1fb2Zmc2V0SW5BbmNob3IpOwor
ICAgICAgICByZXR1cm4gIVBvc2l0aW9uOjpub2RlSXNVc2VyU2VsZWN0Tm9uZShtX2FuY2hvck5v
ZGUpICYmIGRvd25jYXN0PFJlbmRlclRleHQ+KCpyZW5kZXJlcikuY29udGFpbnNDYXJldE9mZnNl
dChtX29mZnNldEluQW5jaG9yKTsKIAogICAgIGlmIChwb3NpdGlvbkJlZm9yZU9yQWZ0ZXJOb2Rl
SXNDYW5kaWRhdGUoKm1fYW5jaG9yTm9kZSkpCi0gICAgICAgIHJldHVybiAoYXRTdGFydE9mTm9k
ZSgpIHx8IGF0RW5kT2ZOb2RlKCkpICYmICFQb3NpdGlvbjo6bm9kZUlzSW5lcnRPclVzZXJTZWxl
Y3ROb25lKG1fYW5jaG9yTm9kZS0+cGFyZW50Tm9kZSgpKTsKKyAgICAgICAgcmV0dXJuIChhdFN0
YXJ0T2ZOb2RlKCkgfHwgYXRFbmRPZk5vZGUoKSkgJiYgIVBvc2l0aW9uOjpub2RlSXNVc2VyU2Vs
ZWN0Tm9uZShtX2FuY2hvck5vZGUtPnBhcmVudE5vZGUoKSk7CiAKICAgICBpZiAoaXM8SFRNTEh0
bWxFbGVtZW50PigqbV9hbmNob3JOb2RlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTc0
LDEzICsxNzQsMTMgQEAgYm9vbCBQb3NpdGlvbkl0ZXJhdG9yOjppc0NhbmRpZGF0ZSgpIGNvbnN0
CiAgICAgICAgIGF1dG8mIGJsb2NrID0gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpyZW5kZXJlcik7
CiAgICAgICAgIGlmIChibG9jay5sb2dpY2FsSGVpZ2h0KCkgfHwgaXM8SFRNTEJvZHlFbGVtZW50
PigqbV9hbmNob3JOb2RlKSB8fCBtX2FuY2hvck5vZGUtPmlzUm9vdEVkaXRhYmxlRWxlbWVudCgp
KSB7CiAgICAgICAgICAgICBpZiAoIVBvc2l0aW9uOjpoYXNSZW5kZXJlZE5vbkFub255bW91c0Rl
c2NlbmRhbnRzV2l0aEhlaWdodChibG9jaykpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGF0U3Rh
cnRPZk5vZGUoKSAmJiAhUG9zaXRpb246Om5vZGVJc0luZXJ0T3JVc2VyU2VsZWN0Tm9uZShtX2Fu
Y2hvck5vZGUpOwotICAgICAgICAgICAgcmV0dXJuIG1fYW5jaG9yTm9kZS0+aGFzRWRpdGFibGVT
dHlsZSgpICYmICFQb3NpdGlvbjo6bm9kZUlzSW5lcnRPclVzZXJTZWxlY3ROb25lKG1fYW5jaG9y
Tm9kZSkgJiYgUG9zaXRpb24oKnRoaXMpLmF0RWRpdGluZ0JvdW5kYXJ5KCk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIGF0U3RhcnRPZk5vZGUoKSAmJiAhUG9zaXRpb246Om5vZGVJc1VzZXJTZWxl
Y3ROb25lKG1fYW5jaG9yTm9kZSk7CisgICAgICAgICAgICByZXR1cm4gbV9hbmNob3JOb2RlLT5o
YXNFZGl0YWJsZVN0eWxlKCkgJiYgIVBvc2l0aW9uOjpub2RlSXNVc2VyU2VsZWN0Tm9uZShtX2Fu
Y2hvck5vZGUpICYmIFBvc2l0aW9uKCp0aGlzKS5hdEVkaXRpbmdCb3VuZGFyeSgpOwogICAgICAg
ICB9CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICByZXR1cm4gbV9hbmNob3JO
b2RlLT5oYXNFZGl0YWJsZVN0eWxlKCkgJiYgIVBvc2l0aW9uOjpub2RlSXNJbmVydE9yVXNlclNl
bGVjdE5vbmUobV9hbmNob3JOb2RlKSAmJiBQb3NpdGlvbigqdGhpcykuYXRFZGl0aW5nQm91bmRh
cnkoKTsKKyAgICByZXR1cm4gbV9hbmNob3JOb2RlLT5oYXNFZGl0YWJsZVN0eWxlKCkgJiYgIVBv
c2l0aW9uOjpub2RlSXNVc2VyU2VsZWN0Tm9uZShtX2FuY2hvck5vZGUpICYmIFBvc2l0aW9uKCp0
aGlzKS5hdEVkaXRpbmdCb3VuZGFyeSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNjE5MzViMzQxM2IzMjJmMmNhN2Q0
NTgyYjRhNDYzYmMyZGI4YjgyMC4uYmEyYWU2YTJkNmZhMzFkYjY1NTdlYjA5MjgyNjY3YTY4NmYz
Njk3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNDc1LDcgKzQ3NSw3
IEBAIHN0YXRpYyBWaXNpYmxlU2VsZWN0aW9uIGV4cGFuZFNlbGVjdGlvblRvUmVzcGVjdFNlbGVj
dE9uTW91c2VEb3duKE5vZGUmIHRhcmdldE5vCiAKIGJvb2wgRXZlbnRIYW5kbGVyOjp1cGRhdGVT
ZWxlY3Rpb25Gb3JNb3VzZURvd25EaXNwYXRjaGluZ1NlbGVjdFN0YXJ0KE5vZGUqIHRhcmdldE5v
ZGUsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5KQogewotICAgIGlmIChQb3NpdGlvbjo6bm9kZUlzSW5lcnRPclVzZXJTZWxlY3RO
b25lKHRhcmdldE5vZGUpKQorICAgIGlmIChQb3NpdGlvbjo6bm9kZUlzVXNlclNlbGVjdE5vbmUo
dGFyZ2V0Tm9kZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghZGlzcGF0Y2hT
ZWxlY3RTdGFydCh0YXJnZXROb2RlKSkgewpAQCAtNzE1LDEyICs3MTUsMTIgQEAgYm9vbCBFdmVu
dEhhbmRsZXI6OmNhbk1vdXNlRG93blN0YXJ0U2VsZWN0KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0
VGVzdFJlc3VsdHMmIGUKICAgICAgICAgaWYgKCFwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5zaG91
bGRVc2VNb3VzZUV2ZW50Rm9yU2VsZWN0aW9uKGV2ZW50LmV2ZW50KCkpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICAKKwogICAgIGlmICghbm9kZSB8fCAhbm9kZS0+cmVu
ZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBpZiAoSFRNTEVsZW1lbnQ6Omlz
SW1hZ2VPdmVybGF5VGV4dCgqbm9kZSkpCi0gICAgICAgIHJldHVybiBub2RlLT5yZW5kZXJlcigp
LT5zdHlsZSgpLnVzZXJTZWxlY3QoKSAhPSBVc2VyU2VsZWN0OjpOb25lOworICAgICAgICByZXR1
cm4gbm9kZS0+cmVuZGVyZXIoKS0+c3R5bGUoKS5lZmZlY3RpdmVVc2VyU2VsZWN0KCkgIT0gVXNl
clNlbGVjdDo6Tm9uZTsKIAogICAgIHJldHVybiBub2RlLT5jYW5TdGFydFNlbGVjdGlvbigpIHx8
IFBvc2l0aW9uOjpub2RlSXNVc2VyU2VsZWN0QWxsKG5vZGUuZ2V0KCkpOwogfQpAQCAtMTUyMiw3
ICsxNTIyLDcgQEAgc3RkOjpvcHRpb25hbDxDdXJzb3I+IEV2ZW50SGFuZGxlcjo6c2VsZWN0Q3Vy
c29yKGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgYm8KICAgICBjYXNlIEN1cnNvclR5cGU6
OkF1dG86IHsKICAgICAgICAgaWYgKEhUTUxFbGVtZW50Ojppc0ltYWdlT3ZlcmxheVRleHQobm9k
ZS5nZXQoKSkpIHsKICAgICAgICAgICAgIGF1dG8qIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIo
KTsKLSAgICAgICAgICAgIGlmIChyZW5kZXJlciAmJiByZW5kZXJlci0+c3R5bGUoKS51c2VyU2Vs
ZWN0KCkgIT0gVXNlclNlbGVjdDo6Tm9uZSkKKyAgICAgICAgICAgIGlmIChyZW5kZXJlciAmJiBy
ZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVVc2VyU2VsZWN0KCkgIT0gVXNlclNlbGVjdDo6Tm9u
ZSkKICAgICAgICAgICAgICAgICByZXR1cm4gaUJlYW07CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcAppbmRleCA4ZTBhMTlhNjY0ZTYyYjdjM2VlNGRjZjg4YmU3N2FiNWJhMjczN2VkLi4w
NTIxYjg2YzIzMjZmMTg4YTUzMzk5NmE5ODk4MWFlNDBjNTczMjhlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
LmNwcApAQCAtODYzLDcgKzg2Myw3IEBAIHN0ZDo6b3B0aW9uYWw8U2ltcGxlUmFuZ2U+IEZyYW1l
OjpyYW5nZUZvclBvaW50KGNvbnN0IEludFBvaW50JiBmcmFtZVBvaW50KQogICAgIGF1dG8gcG9z
aXRpb24gPSB2aXNpYmxlUG9zaXRpb25Gb3JQb2ludChmcmFtZVBvaW50KTsKIAogICAgIGF1dG8g
Y29udGFpbmVyVGV4dCA9IHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuY29udGFpbmVyVGV4dCgp
OwotICAgIGlmICghY29udGFpbmVyVGV4dCB8fCAhY29udGFpbmVyVGV4dC0+cmVuZGVyZXIoKSB8
fCBjb250YWluZXJUZXh0LT5yZW5kZXJlcigpLT5zdHlsZSgpLnVzZXJTZWxlY3QoKSA9PSBVc2Vy
U2VsZWN0OjpOb25lKQorICAgIGlmICghY29udGFpbmVyVGV4dCB8fCAhY29udGFpbmVyVGV4dC0+
cmVuZGVyZXIoKSB8fCBjb250YWluZXJUZXh0LT5yZW5kZXJlcigpLT5zdHlsZSgpLmVmZmVjdGl2
ZVVzZXJTZWxlY3QoKSA9PSBVc2VyU2VsZWN0OjpOb25lKQogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogCiAgICAgaWYgKGF1dG8gcHJldmlvdXNDaGFyYWN0ZXJSYW5nZSA9IG1ha2VTaW1w
bGVSYW5nZShwb3NpdGlvbi5wcmV2aW91cygpLCBwb3NpdGlvbikpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCBhNGQyZGU2Y2NjZGNkODBjNGVjODIy
NzNhZGI3NDE3NWQ1ZmE3ZDk5Li45MzEzOWRhMzU1YTc1ZDI2ODYxNWQ1N2MzZDY3MTAzMTcwNWJj
MjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCkBAIC0x
NTQzLDcgKzE1NDMsNyBAQCBDb2xvciBSZW5kZXJFbGVtZW50OjpzZWxlY3Rpb25Db2xvcihDU1NQ
cm9wZXJ0eUlEIGNvbG9yUHJvcGVydHkpIGNvbnN0CiB7CiAgICAgLy8gSWYgdGhlIGVsZW1lbnQg
aXMgdW5zZWxlY3RhYmxlLCBvciB3ZSBhcmUgb25seSBwYWludGluZyB0aGUgc2VsZWN0aW9uLAog
ICAgIC8vIGRvbid0IG92ZXJyaWRlIHRoZSBmb3JlZ3JvdW5kIGNvbG9yIHdpdGggdGhlIHNlbGVj
dGlvbiBmb3JlZ3JvdW5kIGNvbG9yLgotICAgIGlmIChzdHlsZSgpLnVzZXJTZWxlY3QoKSA9PSBV
c2VyU2VsZWN0OjpOb25lCisgICAgaWYgKHN0eWxlKCkuZWZmZWN0aXZlVXNlclNlbGVjdCgpID09
IFVzZXJTZWxlY3Q6Ok5vbmUKICAgICAgICAgfHwgKHZpZXcoKS5mcmFtZVZpZXcoKS5wYWludEJl
aGF2aW9yKCkuY29udGFpbnNBbnkoeyBQYWludEJlaGF2aW9yOjpTZWxlY3Rpb25Pbmx5LCBQYWlu
dEJlaGF2aW9yOjpTZWxlY3Rpb25BbmRCYWNrZ3JvdW5kc09ubHkgfSkpKQogICAgICAgICByZXR1
cm4gQ29sb3IoKTsKIApAQCAtMTU5OCw3ICsxNTk4LDcgQEAgQ29sb3IgUmVuZGVyRWxlbWVudDo6
c2VsZWN0aW9uRW1waGFzaXNNYXJrQ29sb3IoKSBjb25zdAogCiBDb2xvciBSZW5kZXJFbGVtZW50
OjpzZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogewotICAgIGlmIChzdHlsZSgpLnVz
ZXJTZWxlY3QoKSA9PSBVc2VyU2VsZWN0OjpOb25lKQorICAgIGlmIChzdHlsZSgpLmVmZmVjdGl2
ZVVzZXJTZWxlY3QoKSA9PSBVc2VyU2VsZWN0OjpOb25lKQogICAgICAgICByZXR1cm4gQ29sb3Io
KTsKIAogICAgIGlmIChmcmFtZSgpLnNlbGVjdGlvbigpLnNob3VsZFNob3dCbG9ja0N1cnNvcigp
ICYmIGZyYW1lKCkuc2VsZWN0aW9uKCkuaXNDYXJldCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKaW5kZXggMDJjNWMxNWNmNjg3ODE5MGM1YTJlMjIyODIyOTNjNGZl
Y2Q4YTgwYy4uYjE3YTkwZGViMGEwOWNkNGIwMjI1MzEyZTcwZjA0ZDRhYzM3OTUzMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC01MjQwLDcgKzUyNDAsNyBA
QCBzdGF0aWMgdm9pZCBkZXRlcm1pbmVOb25MYXllckRlc2NlbmRhbnRzUGFpbnRlZENvbnRlbnQo
Y29uc3QgUmVuZGVyRWxlbWVudCYgcmVuZAogICAgICAgICAgICAgaWYgKCFyZW5kZXJUZXh0Lmhh
c1JlbmRlcmVkVGV4dCgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAg
ICBpZiAocmVuZGVyZXIuc3R5bGUoKS51c2VyU2VsZWN0KCkgIT0gVXNlclNlbGVjdDo6Tm9uZSkK
KyAgICAgICAgICAgIGlmIChyZW5kZXJlci5zdHlsZSgpLmVmZmVjdGl2ZVVzZXJTZWxlY3QoKSAh
PSBVc2VyU2VsZWN0OjpOb25lKQogICAgICAgICAgICAgICAgIHJlcXVlc3Quc2V0SGFzUGFpbnRl
ZENvbnRlbnQoKTsKIAogICAgICAgICAgICAgaWYgKCFyZW5kZXJUZXh0LnRleHQoKS5pc0FsbFNw
ZWNpYWxDaGFyYWN0ZXJzPGlzSFRNTFNwYWNlPigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDI2Y2FiYzg3ODA4YjdlMTUyNmE4YzY0MzQzYTgzZDJh
Njk5MDRjM2QuLjhiNzE3YjdmYzY2ZmYzMmFiNDhmNDA3NmQwNmZiMGI2ODcxNzQ5YjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0yMTgxLDcgKzIxODEs
NyBAQCBhdXRvIFJlbmRlck9iamVjdDo6Y29sbGVjdFNlbGVjdGlvbkdlb21ldHJpZXNJbnRlcm5h
bChjb25zdCBTaW1wbGVSYW5nZSYgcmFuZ2UpCiAgICAgZm9yIChhdXRvJiBub2RlIDogaW50ZXJz
ZWN0aW5nTm9kZXNXaXRoRGVwcmVjYXRlZFplcm9PZmZzZXRTdGFydFF1aXJrKHJhbmdlKSkgewog
ICAgICAgICBhdXRvIHJlbmRlcmVyID0gbm9kZS5yZW5kZXJlcigpOwogICAgICAgICAvLyBPbmx5
IGFzayBsZWFmIHJlbmRlciBvYmplY3RzIGZvciB0aGVpciBsaW5lIGJveCByZWN0cy4KLSAgICAg
ICAgaWYgKHJlbmRlcmVyICYmICFyZW5kZXJlci0+Zmlyc3RDaGlsZFNsb3coKSAmJiByZW5kZXJl
ci0+c3R5bGUoKS51c2VyU2VsZWN0KCkgIT0gVXNlclNlbGVjdDo6Tm9uZSAmJiAhcmVuZGVyZXIt
PnN0eWxlKCkuZWZmZWN0aXZlSW5lcnQoKSkgeworICAgICAgICBpZiAocmVuZGVyZXIgJiYgIXJl
bmRlcmVyLT5maXJzdENoaWxkU2xvdygpICYmIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVVz
ZXJTZWxlY3QoKSAhPSBVc2VyU2VsZWN0OjpOb25lKSB7CiAgICAgICAgICAgICBib29sIGlzU3Rh
cnROb2RlID0gcmVuZGVyZXItPm5vZGUoKSA9PSByYW5nZS5zdGFydC5jb250YWluZXIucHRyKCk7
CiAgICAgICAgICAgICBib29sIGlzRW5kTm9kZSA9IHJlbmRlcmVyLT5ub2RlKCkgPT0gcmFuZ2Uu
ZW5kLmNvbnRhaW5lci5wdHIoKTsKICAgICAgICAgICAgIGlmIChoYXNGbGlwcGVkV3JpdGluZ01v
ZGUgIT0gcmVuZGVyZXItPnN0eWxlKCkuaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggMjQ3OTdm
NTNiMTdhNTc3M2QzMTE3N2VhYmZhOGVjMTc3ZDI4MmU0Yy4uYjliZDUyYzIwNTBjMDgzNTI3MjZh
NDU1MWM3NWMwNDdiYjlkN2YyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmgKQEAgLTYxMCw2ICs2MTAsNyBAQCBwdWJsaWM6CiAgICAgTWFycXVlZURp
cmVjdGlvbiBtYXJxdWVlRGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8TWFy
cXVlZURpcmVjdGlvbj4obV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bWFycXVlZS0+ZGlyZWN0aW9u
KTsgfQogICAgIFVzZXJNb2RpZnkgdXNlck1vZGlmeSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19j
YXN0PFVzZXJNb2RpZnk+KG1fcmFyZUluaGVyaXRlZERhdGEtPnVzZXJNb2RpZnkpOyB9CiAgICAg
VXNlckRyYWcgdXNlckRyYWcoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxVc2VyRHJhZz4o
bV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+dXNlckRyYWcpOyB9CisgICAgVXNlclNlbGVjdCBlZmZl
Y3RpdmVVc2VyU2VsZWN0KCkgY29uc3QgeyByZXR1cm4gZWZmZWN0aXZlSW5lcnQoKSA/IFVzZXJT
ZWxlY3Q6Ok5vbmUgOiB1c2VyU2VsZWN0KCk7IH0KICAgICBVc2VyU2VsZWN0IHVzZXJTZWxlY3Qo
KSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxVc2VyU2VsZWN0PihtX3JhcmVJbmhlcml0ZWRE
YXRhLT51c2VyU2VsZWN0KTsgfQogICAgIFRleHRPdmVyZmxvdyB0ZXh0T3ZlcmZsb3coKSBjb25z
dCB7IHJldHVybiBzdGF0aWNfY2FzdDxUZXh0T3ZlcmZsb3c+KG1fcmFyZU5vbkluaGVyaXRlZERh
dGEtPnRleHRPdmVyZmxvdyk7IH0KICAgICBNYXJnaW5Db2xsYXBzZSBtYXJnaW5CZWZvcmVDb2xs
YXBzZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PE1hcmdpbkNvbGxhcHNlPihtX3JhcmVO
b25Jbmhlcml0ZWREYXRhLT5tYXJnaW5CZWZvcmVDb2xsYXBzZSk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVO
b2RlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9E
T00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcAppbmRleCBjODkwYzU3YWFmNDBkMjc0ZDli
ZGVlNjI3NzI3OTI3MjI5NWIzNWFiLi5kOTI4MmNiZDAxYjNkNWRmNGQwZWI0YjA2MGMxYzU0MmFl
YTg1Mjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3Bw
CkBAIC0zODIsNyArMzgyLDcgQEAgYm9vbCBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6OmlzU2Vs
ZWN0YWJsZVRleHROb2RlKCkgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYXV0
byByZW5kZXJlciA9IG1fbm9kZS0+cmVuZGVyZXIoKTsKLSAgICByZXR1cm4gcmVuZGVyZXIgJiYg
cmVuZGVyZXItPnN0eWxlKCkudXNlclNlbGVjdCgpICE9IFVzZXJTZWxlY3Q6Ok5vbmU7CisgICAg
cmV0dXJuIHJlbmRlcmVyICYmIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVVzZXJTZWxlY3Qo
KSAhPSBVc2VyU2VsZWN0OjpOb25lOwogfQogCiBSZWZQdHI8SW5qZWN0ZWRCdW5kbGVOb2RlSGFu
ZGxlPiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6Omh0bWxUYWJsZUNlbGxFbGVtZW50Q2VsbEFi
b3ZlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KaW5kZXggN2YxNjgyNWEyYjhiYmFmMTFlNDlhNzgwNTBmNmE3ODUwOTg1YzFmZC4u
ZjdiYjk0YjcxODAyYzI5MGY2NGQ3NmJjNWY4ZmM2ZDYyNTk4YzMyMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTI5MDYs
NyArMjkwNiw3IEBAIHN0YXRpYyB2b2lkIHNlbGVjdGlvblBvc2l0aW9uSW5mb3JtYXRpb24oV2Vi
UGFnZSYgcGFnZSwgY29uc3QgSW50ZXJhY3Rpb25JbmZvcm1hCiAgICAgICAgIGlmIChhdHRhY2ht
ZW50LmZpbGUoKSkKICAgICAgICAgICAgIGluZm8udXJsID0gVVJMOjpmaWxlVVJMV2l0aEZpbGVT
eXN0ZW1QYXRoKGRvd25jYXN0PEhUTUxBdHRhY2htZW50RWxlbWVudD4oKmhpdE5vZGUpLmZpbGUo
KS0+cGF0aCgpKTsKICAgICB9IGVsc2UgewotICAgICAgICBpbmZvLmlzU2VsZWN0YWJsZSA9IHJl
bmRlcmVyLT5zdHlsZSgpLnVzZXJTZWxlY3QoKSAhPSBVc2VyU2VsZWN0OjpOb25lICYmICFyZW5k
ZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVJbmVydCgpOworICAgICAgICBpbmZvLmlzU2VsZWN0YWJs
ZSA9IHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVVzZXJTZWxlY3QoKSAhPSBVc2VyU2VsZWN0
OjpOb25lOwogICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIHNlbGVjdCBibG9ja3MgdGhhdCBh
cmUgbGFyZ2VyIHRoYW4gOTclIG9mIHRoZSB2aXNpYmxlIGFyZWEgb2YgdGhlIGRvY3VtZW50Lgog
ICAgICAgICAvLyBGSVhNRTogSXMgdGhpcyBoZXVyaXN0aWMgc3RpbGwgbmVlZGVkLCBub3cgdGhh
dCBibG9jayBzZWxlY3Rpb24gaGFzIGJlZW4gcmVtb3ZlZD8KICAgICAgICAgaWYgKGluZm8uaXNT
ZWxlY3RhYmxlICYmICFoaXROb2RlLT5pc1RleHROb2RlKCkpCkBAIC0yOTE4LDcgKzI5MTgsNyBA
QCBzdGF0aWMgdm9pZCBzZWxlY3Rpb25Qb3NpdGlvbkluZm9ybWF0aW9uKFdlYlBhZ2UmIHBhZ2Us
IGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAg
ICAgYXV0byYgc3R5bGUgPSByZW5kZXJlci0+c3R5bGUoKTsKLSAgICAgICAgaWYgKHN0eWxlLnVz
ZXJTZWxlY3QoKSA9PSBVc2VyU2VsZWN0OjpOb25lICYmIHN0eWxlLnVzZXJEcmFnKCkgPT0gVXNl
ckRyYWc6OkVsZW1lbnQpIHsKKyAgICAgICAgaWYgKHN0eWxlLmVmZmVjdGl2ZVVzZXJTZWxlY3Qo
KSA9PSBVc2VyU2VsZWN0OjpOb25lICYmIHN0eWxlLnVzZXJEcmFnKCkgPT0gVXNlckRyYWc6OkVs
ZW1lbnQpIHsKICAgICAgICAgICAgIGluZm8ucHJlZmVyc0RyYWdnaW5nT3ZlclRleHRTZWxlY3Rp
b24gPSB0cnVlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlZTVmYmEy
ZTgxNmJkODEyZTY2MGZkZjFhN2I4NzE1YzEyMmYwNWE4Li44NmRmZmI2NWUyYWMyODZiZDk2OTRl
M2EzMzQ1MzgxNTY3MDdjNWQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMTAtMTggIFRp
bSBOZ3V5ZW4gIDxudGltQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggbW91c2Ugc2VsZWN0aW9u
IG9uIG1vZGFsIDxkaWFsb2c+IHRleHQgbm9kZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTc0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOgorICAgICAgICAtIGVkaXRpbmcvc2VsZWN0aW9u
L21vZGFsLWRpYWxvZy1zZWxlY3QtcGFyYWdyYXBoLmh0bWwgKHRlc3RzIHRoaXMgYnVnKQorICAg
ICAgICAtIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1p
cy11bnNlbGVjdGFibGUudGVudGF0aXZlLmh0bWwgKHRlc3RzIHdoYXQKKyAgICAgICAgdGhlIGNh
blN0YXJ0U2VsZWN0aW9uIGNoZWNrIHdhcyBzdXBwb3NlZCB0byBmaXgpCisKKyAgICAgICAgVGhl
IGluZXJ0IGNoZWNrIGluIE5vZGU6OmNhblN0YXJ0U2VsZWN0aW9uKCkgd2FzIHRvbyByZXN0cmlj
dGl2ZSwgd2hpY2ggY2F1c2VkIHRoaXMgYnVnIHRvIGhhcHBlbiBiZWNhdXNlCisgICAgICAgIHdl
IHNldCB0aGUgcm9vdCBub2RlIGFzIGluZXJ0IGFuZCB0aGVuIHJlc2V0IGl0IGZvciB0aGUgbW9k
YWwgPGRpYWxvZz4gaXRzZWxmLCBjYXVzaW5nIHRoZSB0ZXh0IGluIHRoZQorICAgICAgICA8ZGlh
bG9nPiB0byBiZSB1bnNlbGVjdGFibGUuIEluc3RlYWQsIGp1c3QgbWlycm9yIGhvdyAtd2Via2l0
LXVzZXItc2VsZWN0OiBub25lOyBpcyBpbXBsZW1lbnRlZCBieSBpbnRyb2R1Y2luZyBSZW5kZXJT
dHlsZTo6ZWZmZWN0aXZlVXNlclNlbGVjdCgpLgorCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rp
b24vbW9kYWwtZGlhbG9nLXNlbGVjdC1wYXJhZ3JhcGgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9tb2RhbC1kaWFsb2ctc2VsZWN0LXBhcmFncmFwaC5o
dG1sOiBBZGRlZC4KKwogMjAyMS0xMC0xNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFw
cGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1cmUgY2hpbGQgbGF5ZXJzIG9mIHRvcCBsYXllciBl
bGVtZW50cyBhcmUgcmVuZGVyZWQgYW5kIGNvcnJlY3RseSB6LW9yZGVyZWQgKHRvcC1sYXllci1z
dGFja2luZy5odG1sIGZhaWxzKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vbW9kYWwtZGlhbG9nLXNlbGVjdC1wYXJhZ3JhcGgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW9kYWwtZGlhbG9nLXNlbGVjdC1wYXJhZ3JhcGgtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlY2Q2MTgwNjUzNDU4OGVjMzQ2MjMxODA5NWIzOWQ5MjVl
OGY3ODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9t
b2RhbC1kaWFsb2ctc2VsZWN0LXBhcmFncmFwaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CitUaGlzIHRleHQgc2hvdWxkIGJlIHNlbGVjdGFibGUgd2l0aCB0aGUgbW91c2UuCisKK1BBU1M6
IGFsbCBkaWFsb2cgdGV4dCBpcyBzZWxlY3RlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vbW9kYWwtZGlhbG9nLXNlbGVjdC1wYXJhZ3JhcGguaHRtbCBiL0xheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vZGFsLWRpYWxvZy1zZWxlY3QtcGFyYWdyYXBoLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZWM4ZDIwY2VjYzY1NWRjZTkxZTFhYmVlMDA1MzA2YmQxZTU0NjM1Ywot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vZGFsLWRp
YWxvZy1zZWxlY3QtcGFyYWdyYXBoLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPGRpYWxvZz48cD5U
aGlzIHRleHQgc2hvdWxkIGJlIHNlbGVjdGFibGUgd2l0aCB0aGUgbW91c2UuPC9wPjwvZGlhbG9n
PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+Citkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCJkaWFsb2ciKS5zaG93TW9kYWwoKTsKKworZnVuY3Rpb24gc2VsZWN0UGFyYWdyYXBoV2l0aE1v
dXNlKHApIHsKKyAgICBjb25zdCByZWN0ID0gcC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAg
ICBjb25zdCB4ID0gcmVjdC5sZWZ0OworICAgIGNvbnN0IHkgPSByZWN0LnRvcCArIHJlY3QuaGVp
Z2h0IC8gMjsKKyAgICBjb25zdCB0ZXh0TGVuZ3RoID0gcC50ZXh0Q29udGVudC5sZW5ndGg7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VE
b3duKCk7CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMjAwKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZU1vdmVUbyh4ICsgcmVjdC53aWR0aCwgeSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VV
cCgpOworfQorCitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CisKKyAgICBjb25zdCBwID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigicCIpOwor
ICAgIHNlbGVjdFBhcmFncmFwaFdpdGhNb3VzZShwKTsKKworICAgIGNvbnN0IHNlbGVjdGlvbiA9
IGdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7CisgICAgaWYgKHNlbGVjdGlvbiA9PSBwLnRleHRD
b250ZW50KQorICAgICAgICBsb2cudGV4dENvbnRlbnQgPSAiUEFTUzogYWxsIGRpYWxvZyB0ZXh0
IGlzIHNlbGVjdGVkIjsKKyAgICBlbHNlCisgICAgICAgIGxvZy50ZXh0Q29udGVudCA9ICJGQUlM
OiB1bmV4cGVjdGVkIHNlbGVjdGlvbiwgZ290OiAiICsgc2VsZWN0aW9uOworfQorPC9zY3JpcHQ+
Cg==
</data>
<flag name="review"
          id="465888"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441591</attachid>
            <date>2021-10-18 05:24:40 -0700</date>
            <delta_ts>2021-10-18 05:24:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231741-20211018142439.patch</filename>
            <type>text/plain</type>
            <size>24290</size>
            <attacher name="Tim Nguyen (:ntim)">ntim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODI1N2I2MWZmMTk1NzUx
YTlmZGE3NTZjYjZiMTUyNGJmMmI0NmZhOS4uMzA5MTkzMzllZDViOGRmY2JlOTI0OWQ1MmFlMDM1
YTVlYjc3OTZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIxLTEwLTE4ICBUaW0g
Tmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IG1vdXNlIHNlbGVjdGlvbiBv
biBtb2RhbCA8ZGlhbG9nPiB0ZXh0IG5vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE3NDEKKworICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBL
b2l2aXN0by4KKworICAgICAgICBUZXN0czoKKyAgICAgICAgLSBlZGl0aW5nL3NlbGVjdGlvbi9t
b2RhbC1kaWFsb2ctc2VsZWN0LXBhcmFncmFwaC5odG1sICh0ZXN0cyB0aGlzIGJ1ZykKKyAgICAg
ICAgLSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5vZGUtaXMt
dW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS5odG1sICh0ZXN0cyB3aGF0CisgICAgICAgIHRoZSBjYW5T
dGFydFNlbGVjdGlvbiBjaGVjayB3YXMgc3VwcG9zZWQgdG8gZml4KQorCisgICAgICAgIFRoZSBp
bmVydCBjaGVjayBpbiBOb2RlOjpjYW5TdGFydFNlbGVjdGlvbigpIHdhcyB0b28gcmVzdHJpY3Rp
dmUsIHdoaWNoIGNhdXNlZCB0aGlzIGJ1ZyB0byBoYXBwZW4gYmVjYXVzZQorICAgICAgICB3ZSBz
ZXQgdGhlIHJvb3Qgbm9kZSBhcyBpbmVydCBhbmQgdGhlbiByZXNldCBpdCBmb3IgdGhlIG1vZGFs
IDxkaWFsb2c+IGl0c2VsZiwgY2F1c2luZyB0aGUgdGV4dCBpbiB0aGUKKyAgICAgICAgPGRpYWxv
Zz4gdG8gYmUgdW5zZWxlY3RhYmxlLiBJbnN0ZWFkLCBqdXN0IG1pcnJvciBob3cgLXdlYmtpdC11
c2VyLXNlbGVjdDogbm9uZTsgaXMgaW1wbGVtZW50ZWQgYnkKKyAgICAgICAgaW50cm9kdWNpbmcg
UmVuZGVyU3R5bGU6OnVzZXJTZWxlY3RJbmNsdWRpbmdJbmVydCgpLgorCisgICAgICAgICogZG9t
L05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZUVkaXRhYmlsaXR5RnJvbUNvbXB1
dGVkU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6Y2FuU3RhcnRTZWxlY3Rpb24gY29u
c3QpOgorICAgICAgICAqIGRvbS9Qb3NpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3Np
dGlvbjo6bm9kZUlzVXNlclNlbGVjdE5vbmUpOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246
Om5vZGVJc1VzZXJTZWxlY3RBbGwpOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmlzQ2Fu
ZGlkYXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpub2RlSXNJbmVydE9y
VXNlclNlbGVjdE5vbmUpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Qb3NpdGlvbi5oOgorICAg
ICAgICAqIGRvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0
aW9uSXRlcmF0b3I6OmlzQ2FuZGlkYXRlIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFu
ZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZVNlbGVjdGlv
bkZvck1vdXNlRG93bkRpc3BhdGNoaW5nU2VsZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpjYW5Nb3VzZURvd25TdGFydFNlbGVjdCk6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudEhhbmRsZXI6OnNlbGVjdEN1cnNvcik6CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6cmFuZ2VGb3JQb2ludCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVu
dDo6c2VsZWN0aW9uQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVu
dDo6c2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNhbGN1bGF0
ZUNsaXBSZWN0cyBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmNvbGxlY3RTZWxlY3Rpb25HZW9tZXRy
aWVzSW50ZXJuYWwpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnVzZXJTZWxlY3RJbmNsdWRpbmdJbmVydCBj
b25zdCk6CisKIDIwMjEtMTAtMTggIEtpZXQgSG8gIDx0aG8yMkBhcHBsZS5jb20+CiAKICAgICAg
ICAgSW1wbGVtZW50IHBhcnNpbmcgYW5kIGFuaW1hdGlvbiBzdXBwb3J0IGZvciBvZmZzZXQtZGlz
dGFuY2UsIG9mZnNldC1wb3NpdGlvbiwgb2Zmc2V0LWFuY2hvcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxMzFlM2Ew
OTAzNTMxNzAxN2U0NmQ4NGI2MWQ4ZWE0ZjFlMmYyZmY2Li5hMjRlMTdhMDYxNWJmZDkxNDZmOTBi
MDRhMDViZjQ5YjE3ODlhMTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTEwLTE4
ICBUaW0gTmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IG1vdXNlIHNlbGVj
dGlvbiBvbiBtb2RhbCA8ZGlhbG9nPiB0ZXh0IG5vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE3NDEKKworICAgICAgICBSZXZpZXdlZCBieSBB
bnR0aSBLb2l2aXN0by4KKworICAgICAgICBUZXN0czoKKyAgICAgICAgLSBlZGl0aW5nL3NlbGVj
dGlvbi9tb2RhbC1kaWFsb2ctc2VsZWN0LXBhcmFncmFwaC5odG1sICh0ZXN0cyB0aGlzIGJ1ZykK
KyAgICAgICAgLSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZXJ0L2luZXJ0LW5v
ZGUtaXMtdW5zZWxlY3RhYmxlLnRlbnRhdGl2ZS5odG1sICh0ZXN0cyB3aGF0CisgICAgICAgIHRo
ZSBjYW5TdGFydFNlbGVjdGlvbiBjaGVjayB3YXMgc3VwcG9zZWQgdG8gZml4KQorCisgICAgICAg
IFRoZSBpbmVydCBjaGVjayBpbiBOb2RlOjpjYW5TdGFydFNlbGVjdGlvbigpIHdhcyB0b28gcmVz
dHJpY3RpdmUsIHdoaWNoIGNhdXNlZCB0aGlzIGJ1ZyB0byBoYXBwZW4gYmVjYXVzZQorICAgICAg
ICB3ZSBzZXQgdGhlIHJvb3Qgbm9kZSBhcyBpbmVydCBhbmQgdGhlbiByZXNldCBpdCBmb3IgdGhl
IG1vZGFsIDxkaWFsb2c+IGl0c2VsZiwgY2F1c2luZyB0aGUgdGV4dCBpbiB0aGUKKyAgICAgICAg
PGRpYWxvZz4gdG8gYmUgdW5zZWxlY3RhYmxlLiBJbnN0ZWFkLCBqdXN0IG1pcnJvciBob3cgLXdl
YmtpdC11c2VyLXNlbGVjdDogbm9uZTsgaXMgaW1wbGVtZW50ZWQgYnkKKyAgICAgICAgaW50cm9k
dWNpbmcgUmVuZGVyU3R5bGU6OnVzZXJTZWxlY3RJbmNsdWRpbmdJbmVydCgpLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjppc1NlbGVj
dGFibGVUZXh0Tm9kZSBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpzZWxlY3Rpb25Qb3NpdGlvbkluZm9ybWF0
aW9uKToKKwogMjAyMS0xMC0xOCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFVzZS1hZnRlci1tb3ZlIG9mIG1fc29ja2V0cyBpbiBOZXR3b3JrUlRDUHJvdmlk
ZXI6OmNsb3NlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCBiZjJiZjdjNzk1YmYxOGU1MjNmYmFmNWJm
NDY3ZjllMmM5MGY5YjI4Li4yYjE1MTY3YTY0Zjc0NGNkMWRlNjMxZGI0ZTgzZmQxZDE4MzAwNmMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwCkBAIC03NjQsNyArNzY0LDcgQEAgc3RhdGljIE5vZGU6OkVkaXRh
YmlsaXR5IGNvbXB1dGVFZGl0YWJpbGl0eUZyb21Db21wdXRlZFN0eWxlKGNvbnN0IE5vZGUmIHN0
YXJ0Tm8KICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAvLyBFbGVtZW50cyB3aXRoIHVz
ZXItc2VsZWN0OiBhbGwgc3R5bGUgYXJlIGNvbnNpZGVyZWQgYXRvbWljCiAgICAgICAgIC8vIHRo
ZXJlZm9yZSBub24gZWRpdGFibGUuCi0gICAgICAgIGlmICh0cmVhdG1lbnQgPT0gTm9kZTo6VXNl
clNlbGVjdEFsbElzQWx3YXlzTm9uRWRpdGFibGUgJiYgc3R5bGUtPnVzZXJTZWxlY3QoKSA9PSBV
c2VyU2VsZWN0OjpBbGwpCisgICAgICAgIGlmICh0cmVhdG1lbnQgPT0gTm9kZTo6VXNlclNlbGVj
dEFsbElzQWx3YXlzTm9uRWRpdGFibGUgJiYgc3R5bGUtPnVzZXJTZWxlY3RJbmNsdWRpbmdJbmVy
dCgpID09IFVzZXJTZWxlY3Q6OkFsbCkKICAgICAgICAgICAgIHJldHVybiBOb2RlOjpFZGl0YWJp
bGl0eTo6UmVhZE9ubHk7CiAgICAgICAgIHN3aXRjaCAoc3R5bGUtPnVzZXJNb2RpZnkoKSkgewog
ICAgICAgICBjYXNlIFVzZXJNb2RpZnk6OlJlYWRPbmx5OgpAQCAtMTEzMCwxMiArMTEzMCwxMCBA
QCBib29sIE5vZGU6OmNhblN0YXJ0U2VsZWN0aW9uKCkgY29uc3QKIAogICAgIGlmIChyZW5kZXJl
cigpKSB7CiAgICAgICAgIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSA9IHJlbmRlcmVyKCktPnN0
eWxlKCk7Ci0gICAgICAgIGlmIChzdHlsZS5lZmZlY3RpdmVJbmVydCgpKQotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgICAgIC8vIFdlIGFsbG93IHNlbGVjdGlvbnMgdG8gYmVnaW4g
d2l0aGluIGFuIGVsZW1lbnQgdGhhdCBoYXMgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZSBzZXQs
CiAgICAgICAgIC8vIGJ1dCBpZiB0aGUgZWxlbWVudCBpcyBkcmFnZ2FibGUgdGhlbiBkcmFnZ2lu
ZyBzaG91bGQgdGFrZSBwcmlvcml0eSBvdmVyIHNlbGVjdGlvbi4KLSAgICAgICAgaWYgKHN0eWxl
LnVzZXJEcmFnKCkgPT0gVXNlckRyYWc6OkVsZW1lbnQgJiYgc3R5bGUudXNlclNlbGVjdCgpID09
IFVzZXJTZWxlY3Q6Ok5vbmUpCisgICAgICAgIGlmIChzdHlsZS51c2VyRHJhZygpID09IFVzZXJE
cmFnOjpFbGVtZW50ICYmIHN0eWxlLnVzZXJTZWxlY3RJbmNsdWRpbmdJbmVydCgpID09IFVzZXJT
ZWxlY3Q6Ok5vbmUpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIHJldHVy
biBwYXJlbnRPclNoYWRvd0hvc3ROb2RlKCkgPyBwYXJlbnRPclNoYWRvd0hvc3ROb2RlKCktPmNh
blN0YXJ0U2VsZWN0aW9uKCkgOiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1Bvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKaW5kZXggMmMz
MGRjMzI2N2YzZGY3NzI5NTE0MjQ2MzllYzMzNWVlNjZhZGY1MS4uOWE1MTJlZmU3YzljMDFlZjgy
MDEyY2I0M2Y5YjYxMTU1ODk2N2EyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Bv
c2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCkBAIC05Mzcs
MTggKzkzNywxOCBAQCBib29sIFBvc2l0aW9uOjpoYXNSZW5kZXJlZE5vbkFub255bW91c0Rlc2Nl
bmRhbnRzV2l0aEhlaWdodChjb25zdCBSZW5kZXJFbGVtZW50JgogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotYm9vbCBQb3NpdGlvbjo6bm9kZUlzSW5lcnRPclVzZXJTZWxlY3ROb25lKE5vZGUqIG5v
ZGUpCitib29sIFBvc2l0aW9uOjpub2RlSXNVc2VyU2VsZWN0Tm9uZShOb2RlKiBub2RlKQogewog
ICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBub2RlLT5y
ZW5kZXJlcigpICYmIChub2RlLT5yZW5kZXJlcigpLT5zdHlsZSgpLnVzZXJTZWxlY3QoKSA9PSBV
c2VyU2VsZWN0OjpOb25lIHx8IG5vZGUtPnJlbmRlcmVyKCktPnN0eWxlKCkuZWZmZWN0aXZlSW5l
cnQoKSk7CisgICAgcmV0dXJuIG5vZGUtPnJlbmRlcmVyKCkgJiYgKG5vZGUtPnJlbmRlcmVyKCkt
PnN0eWxlKCkudXNlclNlbGVjdEluY2x1ZGluZ0luZXJ0KCkgPT0gVXNlclNlbGVjdDo6Tm9uZSk7
CiB9CiAKIGJvb2wgUG9zaXRpb246Om5vZGVJc1VzZXJTZWxlY3RBbGwoY29uc3QgTm9kZSogbm9k
ZSkKIHsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4g
bm9kZS0+cmVuZGVyZXIoKSAmJiAobm9kZS0+cmVuZGVyZXIoKS0+c3R5bGUoKS51c2VyU2VsZWN0
KCkgPT0gVXNlclNlbGVjdDo6QWxsICYmICFub2RlLT5yZW5kZXJlcigpLT5zdHlsZSgpLmVmZmVj
dGl2ZUluZXJ0KCkpOworICAgIHJldHVybiBub2RlLT5yZW5kZXJlcigpICYmIChub2RlLT5yZW5k
ZXJlcigpLT5zdHlsZSgpLnVzZXJTZWxlY3RJbmNsdWRpbmdJbmVydCgpID09IFVzZXJTZWxlY3Q6
OkFsbCk7CiB9CiAKIE5vZGUqIFBvc2l0aW9uOjpyb290VXNlclNlbGVjdEFsbEZvck5vZGUoTm9k
ZSogbm9kZSkKQEAgLTk4OCwxNiArOTg4LDE2IEBAIGJvb2wgUG9zaXRpb246OmlzQ2FuZGlkYXRl
KCkgY29uc3QKIAogICAgIGlmIChyZW5kZXJlci0+aXNCUigpKSB7CiAgICAgICAgIC8vIEZJWE1F
OiBUaGUgY29uZGl0aW9uIHNob3VsZCBiZSBtX2FuY2hvclR5cGUgPT0gUG9zaXRpb25Jc0JlZm9y
ZUFuY2hvciwgYnV0IGZvciBub3cgd2Ugc3RpbGwgbmVlZCB0byBzdXBwb3J0IGxlZ2FjeSBwb3Np
dGlvbnMuCi0gICAgICAgIHJldHVybiAhbV9vZmZzZXQgJiYgbV9hbmNob3JUeXBlICE9IFBvc2l0
aW9uSXNBZnRlckFuY2hvciAmJiAhbm9kZUlzSW5lcnRPclVzZXJTZWxlY3ROb25lKGRlcHJlY2F0
ZWROb2RlKCktPnBhcmVudE5vZGUoKSk7CisgICAgICAgIHJldHVybiAhbV9vZmZzZXQgJiYgbV9h
bmNob3JUeXBlICE9IFBvc2l0aW9uSXNBZnRlckFuY2hvciAmJiAhbm9kZUlzVXNlclNlbGVjdE5v
bmUoZGVwcmVjYXRlZE5vZGUoKS0+cGFyZW50Tm9kZSgpKTsKICAgICB9CiAKICAgICBpZiAoaXM8
UmVuZGVyVGV4dD4oKnJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuICFub2RlSXNJbmVydE9yVXNl
clNlbGVjdE5vbmUoZGVwcmVjYXRlZE5vZGUoKSkgJiYgZG93bmNhc3Q8UmVuZGVyVGV4dD4oKnJl
bmRlcmVyKS5jb250YWluc0NhcmV0T2Zmc2V0KG1fb2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuICFu
b2RlSXNVc2VyU2VsZWN0Tm9uZShkZXByZWNhdGVkTm9kZSgpKSAmJiBkb3duY2FzdDxSZW5kZXJU
ZXh0PigqcmVuZGVyZXIpLmNvbnRhaW5zQ2FyZXRPZmZzZXQobV9vZmZzZXQpOwogCiAgICAgaWYg
KHBvc2l0aW9uQmVmb3JlT3JBZnRlck5vZGVJc0NhbmRpZGF0ZSgqZGVwcmVjYXRlZE5vZGUoKSkp
IHsKICAgICAgICAgcmV0dXJuICgoYXRGaXJzdEVkaXRpbmdQb3NpdGlvbkZvck5vZGUoKSAmJiBt
X2FuY2hvclR5cGUgPT0gUG9zaXRpb25Jc0JlZm9yZUFuY2hvcikKICAgICAgICAgICAgIHx8IChh
dExhc3RFZGl0aW5nUG9zaXRpb25Gb3JOb2RlKCkgJiYgbV9hbmNob3JUeXBlID09IFBvc2l0aW9u
SXNBZnRlckFuY2hvcikpCi0gICAgICAgICAgICAmJiAhbm9kZUlzSW5lcnRPclVzZXJTZWxlY3RO
b25lKGRlcHJlY2F0ZWROb2RlKCktPnBhcmVudE5vZGUoKSk7CisgICAgICAgICAgICAmJiAhbm9k
ZUlzVXNlclNlbGVjdE5vbmUoZGVwcmVjYXRlZE5vZGUoKS0+cGFyZW50Tm9kZSgpKTsKICAgICB9
CiAKICAgICBpZiAoaXM8SFRNTEh0bWxFbGVtZW50PigqbV9hbmNob3JOb2RlKSkKQEAgLTEwMDcs
MTMgKzEwMDcsMTMgQEAgYm9vbCBQb3NpdGlvbjo6aXNDYW5kaWRhdGUoKSBjb25zdAogICAgICAg
ICBhdXRvJiBibG9jayA9IGRvd25jYXN0PFJlbmRlckJsb2NrPigqcmVuZGVyZXIpOwogICAgICAg
ICBpZiAoYmxvY2subG9naWNhbEhlaWdodCgpIHx8IGlzPEhUTUxCb2R5RWxlbWVudD4oKm1fYW5j
aG9yTm9kZSkgfHwgbV9hbmNob3JOb2RlLT5pc1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSkgewogICAg
ICAgICAgICAgaWYgKCFQb3NpdGlvbjo6aGFzUmVuZGVyZWROb25Bbm9ueW1vdXNEZXNjZW5kYW50
c1dpdGhIZWlnaHQoYmxvY2spKQotICAgICAgICAgICAgICAgIHJldHVybiBhdEZpcnN0RWRpdGlu
Z1Bvc2l0aW9uRm9yTm9kZSgpICYmICFQb3NpdGlvbjo6bm9kZUlzSW5lcnRPclVzZXJTZWxlY3RO
b25lKGRlcHJlY2F0ZWROb2RlKCkpOwotICAgICAgICAgICAgcmV0dXJuIG1fYW5jaG9yTm9kZS0+
aGFzRWRpdGFibGVTdHlsZSgpICYmICFQb3NpdGlvbjo6bm9kZUlzSW5lcnRPclVzZXJTZWxlY3RO
b25lKGRlcHJlY2F0ZWROb2RlKCkpICYmIGF0RWRpdGluZ0JvdW5kYXJ5KCk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIGF0Rmlyc3RFZGl0aW5nUG9zaXRpb25Gb3JOb2RlKCkgJiYgIVBvc2l0aW9u
Ojpub2RlSXNVc2VyU2VsZWN0Tm9uZShkZXByZWNhdGVkTm9kZSgpKTsKKyAgICAgICAgICAgIHJl
dHVybiBtX2FuY2hvck5vZGUtPmhhc0VkaXRhYmxlU3R5bGUoKSAmJiAhUG9zaXRpb246Om5vZGVJ
c1VzZXJTZWxlY3ROb25lKGRlcHJlY2F0ZWROb2RlKCkpICYmIGF0RWRpdGluZ0JvdW5kYXJ5KCk7
CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIHJldHVybiBt
X2FuY2hvck5vZGUtPmhhc0VkaXRhYmxlU3R5bGUoKSAmJiAhUG9zaXRpb246Om5vZGVJc0luZXJ0
T3JVc2VyU2VsZWN0Tm9uZShkZXByZWNhdGVkTm9kZSgpKSAmJiBhdEVkaXRpbmdCb3VuZGFyeSgp
OworICAgIHJldHVybiBtX2FuY2hvck5vZGUtPmhhc0VkaXRhYmxlU3R5bGUoKSAmJiAhUG9zaXRp
b246Om5vZGVJc1VzZXJTZWxlY3ROb25lKGRlcHJlY2F0ZWROb2RlKCkpICYmIGF0RWRpdGluZ0Jv
dW5kYXJ5KCk7CiB9CiAKIGJvb2wgUG9zaXRpb246OmlzUmVuZGVyZWRDaGFyYWN0ZXIoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vUG9zaXRpb24uaAppbmRleCA5MTQxODBkM2ZjNjZlMjFhMGIwODhhMjc1NGMwNjJk
YTliMDI4Mzc3Li45Yzk5NGMwOTc4YzZhNDg3ZDdlMjJiYTBiZDZlMGE0ODhjNTRiYzFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vUG9zaXRpb24uaApAQCAtMTc5LDcgKzE3OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
dW5zaWduZWQgcG9zaXRpb25Db3VudEJldHdlZW5Qb3NpdGlvbnMoY29uc3QgUG9zaXRpb24mLCBj
b25zdCBQb3NpdGlvbiYpOwogCiAgICAgc3RhdGljIGJvb2wgaGFzUmVuZGVyZWROb25Bbm9ueW1v
dXNEZXNjZW5kYW50c1dpdGhIZWlnaHQoY29uc3QgUmVuZGVyRWxlbWVudCYpOwotICAgIHN0YXRp
YyBib29sIG5vZGVJc0luZXJ0T3JVc2VyU2VsZWN0Tm9uZShOb2RlKik7CisgICAgc3RhdGljIGJv
b2wgbm9kZUlzVXNlclNlbGVjdE5vbmUoTm9kZSopOwogICAgIHN0YXRpYyBib29sIG5vZGVJc1Vz
ZXJTZWxlY3RBbGwoY29uc3QgTm9kZSopOwogICAgIHN0YXRpYyBOb2RlKiByb290VXNlclNlbGVj
dEFsbEZvck5vZGUoTm9kZSopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9z
aXRpb25JdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5j
cHAKaW5kZXggZjQwYTViNTFiMWMwYzc0YjdhMmU4OTI0YWM5NGFhMDg2NmM1YTRkZS4uN2FjMTIy
NmQwNjczZjY3ZjZkYmFhMTQ2NzhlMjk3NDQyNWNjYjE4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
b3NpdGlvbkl0ZXJhdG9yLmNwcApAQCAtMTYyLDEwICsxNjIsMTAgQEAgYm9vbCBQb3NpdGlvbkl0
ZXJhdG9yOjppc0NhbmRpZGF0ZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiBQb3NpdGlvbigqdGhp
cykuaXNDYW5kaWRhdGUoKTsKIAogICAgIGlmIChpczxSZW5kZXJUZXh0PigqcmVuZGVyZXIpKQot
ICAgICAgICByZXR1cm4gIVBvc2l0aW9uOjpub2RlSXNJbmVydE9yVXNlclNlbGVjdE5vbmUobV9h
bmNob3JOb2RlKSAmJiBkb3duY2FzdDxSZW5kZXJUZXh0PigqcmVuZGVyZXIpLmNvbnRhaW5zQ2Fy
ZXRPZmZzZXQobV9vZmZzZXRJbkFuY2hvcik7CisgICAgICAgIHJldHVybiAhUG9zaXRpb246Om5v
ZGVJc1VzZXJTZWxlY3ROb25lKG1fYW5jaG9yTm9kZSkgJiYgZG93bmNhc3Q8UmVuZGVyVGV4dD4o
KnJlbmRlcmVyKS5jb250YWluc0NhcmV0T2Zmc2V0KG1fb2Zmc2V0SW5BbmNob3IpOwogCiAgICAg
aWYgKHBvc2l0aW9uQmVmb3JlT3JBZnRlck5vZGVJc0NhbmRpZGF0ZSgqbV9hbmNob3JOb2RlKSkK
LSAgICAgICAgcmV0dXJuIChhdFN0YXJ0T2ZOb2RlKCkgfHwgYXRFbmRPZk5vZGUoKSkgJiYgIVBv
c2l0aW9uOjpub2RlSXNJbmVydE9yVXNlclNlbGVjdE5vbmUobV9hbmNob3JOb2RlLT5wYXJlbnRO
b2RlKCkpOworICAgICAgICByZXR1cm4gKGF0U3RhcnRPZk5vZGUoKSB8fCBhdEVuZE9mTm9kZSgp
KSAmJiAhUG9zaXRpb246Om5vZGVJc1VzZXJTZWxlY3ROb25lKG1fYW5jaG9yTm9kZS0+cGFyZW50
Tm9kZSgpKTsKIAogICAgIGlmIChpczxIVE1MSHRtbEVsZW1lbnQ+KCptX2FuY2hvck5vZGUpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNzQsMTMgKzE3NCwxMyBAQCBib29sIFBvc2l0aW9u
SXRlcmF0b3I6OmlzQ2FuZGlkYXRlKCkgY29uc3QKICAgICAgICAgYXV0byYgYmxvY2sgPSBkb3du
Y2FzdDxSZW5kZXJCbG9jaz4oKnJlbmRlcmVyKTsKICAgICAgICAgaWYgKGJsb2NrLmxvZ2ljYWxI
ZWlnaHQoKSB8fCBpczxIVE1MQm9keUVsZW1lbnQ+KCptX2FuY2hvck5vZGUpIHx8IG1fYW5jaG9y
Tm9kZS0+aXNSb290RWRpdGFibGVFbGVtZW50KCkpIHsKICAgICAgICAgICAgIGlmICghUG9zaXRp
b246Omhhc1JlbmRlcmVkTm9uQW5vbnltb3VzRGVzY2VuZGFudHNXaXRoSGVpZ2h0KGJsb2NrKSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gYXRTdGFydE9mTm9kZSgpICYmICFQb3NpdGlvbjo6bm9k
ZUlzSW5lcnRPclVzZXJTZWxlY3ROb25lKG1fYW5jaG9yTm9kZSk7Ci0gICAgICAgICAgICByZXR1
cm4gbV9hbmNob3JOb2RlLT5oYXNFZGl0YWJsZVN0eWxlKCkgJiYgIVBvc2l0aW9uOjpub2RlSXNJ
bmVydE9yVXNlclNlbGVjdE5vbmUobV9hbmNob3JOb2RlKSAmJiBQb3NpdGlvbigqdGhpcykuYXRF
ZGl0aW5nQm91bmRhcnkoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYXRTdGFydE9mTm9kZSgp
ICYmICFQb3NpdGlvbjo6bm9kZUlzVXNlclNlbGVjdE5vbmUobV9hbmNob3JOb2RlKTsKKyAgICAg
ICAgICAgIHJldHVybiBtX2FuY2hvck5vZGUtPmhhc0VkaXRhYmxlU3R5bGUoKSAmJiAhUG9zaXRp
b246Om5vZGVJc1VzZXJTZWxlY3ROb25lKG1fYW5jaG9yTm9kZSkgJiYgUG9zaXRpb24oKnRoaXMp
LmF0RWRpdGluZ0JvdW5kYXJ5KCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIAotICAgIHJldHVybiBtX2FuY2hvck5vZGUtPmhhc0VkaXRhYmxlU3R5bGUoKSAmJiAh
UG9zaXRpb246Om5vZGVJc0luZXJ0T3JVc2VyU2VsZWN0Tm9uZShtX2FuY2hvck5vZGUpICYmIFBv
c2l0aW9uKCp0aGlzKS5hdEVkaXRpbmdCb3VuZGFyeSgpOworICAgIHJldHVybiBtX2FuY2hvck5v
ZGUtPmhhc0VkaXRhYmxlU3R5bGUoKSAmJiAhUG9zaXRpb246Om5vZGVJc1VzZXJTZWxlY3ROb25l
KG1fYW5jaG9yTm9kZSkgJiYgUG9zaXRpb24oKnRoaXMpLmF0RWRpdGluZ0JvdW5kYXJ5KCk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cAppbmRleCA2MTkzNWIzNDEzYjMyMmYyY2E3ZDQ1ODJiNGE0NjNiYzJkYjhiODIwLi5kM2M3YmUy
ZjE2MjQwZTAxODMwMWIwMzFmMGRhY2U0ZTY3MjQyYTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCkBAIC00NzUsNyArNDc1LDcgQEAgc3RhdGljIFZpc2libGVTZWxlY3Rpb24g
ZXhwYW5kU2VsZWN0aW9uVG9SZXNwZWN0U2VsZWN0T25Nb3VzZURvd24oTm9kZSYgdGFyZ2V0Tm8K
IAogYm9vbCBFdmVudEhhbmRsZXI6OnVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRG93bkRpc3BhdGNo
aW5nU2VsZWN0U3RhcnQoTm9kZSogdGFyZ2V0Tm9kZSwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
c2VsZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7Ci0gICAgaWYgKFBvc2l0
aW9uOjpub2RlSXNJbmVydE9yVXNlclNlbGVjdE5vbmUodGFyZ2V0Tm9kZSkpCisgICAgaWYgKFBv
c2l0aW9uOjpub2RlSXNVc2VyU2VsZWN0Tm9uZSh0YXJnZXROb2RlKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgaWYgKCFkaXNwYXRjaFNlbGVjdFN0YXJ0KHRhcmdldE5vZGUpKSB7CkBA
IC03MTUsMTIgKzcxNSwxMiBAQCBib29sIEV2ZW50SGFuZGxlcjo6Y2FuTW91c2VEb3duU3RhcnRT
ZWxlY3QoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgZQogICAgICAgICBpZiAo
IXBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnNob3VsZFVzZU1vdXNlRXZlbnRGb3JTZWxlY3Rpb24o
ZXZlbnQuZXZlbnQoKSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIAor
CiAgICAgaWYgKCFub2RlIHx8ICFub2RlLT5yZW5kZXJlcigpKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKIAogICAgIGlmIChIVE1MRWxlbWVudDo6aXNJbWFnZU92ZXJsYXlUZXh0KCpub2RlKSkKLSAg
ICAgICAgcmV0dXJuIG5vZGUtPnJlbmRlcmVyKCktPnN0eWxlKCkudXNlclNlbGVjdCgpICE9IFVz
ZXJTZWxlY3Q6Ok5vbmU7CisgICAgICAgIHJldHVybiBub2RlLT5yZW5kZXJlcigpLT5zdHlsZSgp
LnVzZXJTZWxlY3RJbmNsdWRpbmdJbmVydCgpICE9IFVzZXJTZWxlY3Q6Ok5vbmU7CiAKICAgICBy
ZXR1cm4gbm9kZS0+Y2FuU3RhcnRTZWxlY3Rpb24oKSB8fCBQb3NpdGlvbjo6bm9kZUlzVXNlclNl
bGVjdEFsbChub2RlLmdldCgpKTsKIH0KQEAgLTE1MjIsNyArMTUyMiw3IEBAIHN0ZDo6b3B0aW9u
YWw8Q3Vyc29yPiBFdmVudEhhbmRsZXI6OnNlbGVjdEN1cnNvcihjb25zdCBIaXRUZXN0UmVzdWx0
JiByZXN1bHQsIGJvCiAgICAgY2FzZSBDdXJzb3JUeXBlOjpBdXRvOiB7CiAgICAgICAgIGlmIChI
VE1MRWxlbWVudDo6aXNJbWFnZU92ZXJsYXlUZXh0KG5vZGUuZ2V0KCkpKSB7CiAgICAgICAgICAg
ICBhdXRvKiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7Ci0gICAgICAgICAgICBpZiAocmVu
ZGVyZXIgJiYgcmVuZGVyZXItPnN0eWxlKCkudXNlclNlbGVjdCgpICE9IFVzZXJTZWxlY3Q6Ok5v
bmUpCisgICAgICAgICAgICBpZiAocmVuZGVyZXIgJiYgcmVuZGVyZXItPnN0eWxlKCkudXNlclNl
bGVjdEluY2x1ZGluZ0luZXJ0KCkgIT0gVXNlclNlbGVjdDo6Tm9uZSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gaUJlYW07CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCA4ZTBh
MTlhNjY0ZTYyYjdjM2VlNGRjZjg4YmU3N2FiNWJhMjczN2VkLi43ZThhYzA1MjQwYTVlMTAzYzg1
NGMwYzQ1NzNkZGIyYzViN2Q3YTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtODYzLDcgKzg2
Myw3IEBAIHN0ZDo6b3B0aW9uYWw8U2ltcGxlUmFuZ2U+IEZyYW1lOjpyYW5nZUZvclBvaW50KGNv
bnN0IEludFBvaW50JiBmcmFtZVBvaW50KQogICAgIGF1dG8gcG9zaXRpb24gPSB2aXNpYmxlUG9z
aXRpb25Gb3JQb2ludChmcmFtZVBvaW50KTsKIAogICAgIGF1dG8gY29udGFpbmVyVGV4dCA9IHBv
c2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuY29udGFpbmVyVGV4dCgpOwotICAgIGlmICghY29udGFp
bmVyVGV4dCB8fCAhY29udGFpbmVyVGV4dC0+cmVuZGVyZXIoKSB8fCBjb250YWluZXJUZXh0LT5y
ZW5kZXJlcigpLT5zdHlsZSgpLnVzZXJTZWxlY3QoKSA9PSBVc2VyU2VsZWN0OjpOb25lKQorICAg
IGlmICghY29udGFpbmVyVGV4dCB8fCAhY29udGFpbmVyVGV4dC0+cmVuZGVyZXIoKSB8fCBjb250
YWluZXJUZXh0LT5yZW5kZXJlcigpLT5zdHlsZSgpLnVzZXJTZWxlY3RJbmNsdWRpbmdJbmVydCgp
ID09IFVzZXJTZWxlY3Q6Ok5vbmUpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAg
ICBpZiAoYXV0byBwcmV2aW91c0NoYXJhY3RlclJhbmdlID0gbWFrZVNpbXBsZVJhbmdlKHBvc2l0
aW9uLnByZXZpb3VzKCksIHBvc2l0aW9uKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVsZW1lbnQuY3BwCmluZGV4IGE0ZDJkZTZjY2NkY2Q4MGM0ZWM4MjI3M2FkYjc0MTc1ZDVm
YTdkOTkuLjY5YWI0NjM0YWNiNDYxMmE1MDIyOGU5NjExMjM5MGQxNzFjNThiM2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTE1NDMsNyArMTU0Myw3
IEBAIENvbG9yIFJlbmRlckVsZW1lbnQ6OnNlbGVjdGlvbkNvbG9yKENTU1Byb3BlcnR5SUQgY29s
b3JQcm9wZXJ0eSkgY29uc3QKIHsKICAgICAvLyBJZiB0aGUgZWxlbWVudCBpcyB1bnNlbGVjdGFi
bGUsIG9yIHdlIGFyZSBvbmx5IHBhaW50aW5nIHRoZSBzZWxlY3Rpb24sCiAgICAgLy8gZG9uJ3Qg
b3ZlcnJpZGUgdGhlIGZvcmVncm91bmQgY29sb3Igd2l0aCB0aGUgc2VsZWN0aW9uIGZvcmVncm91
bmQgY29sb3IuCi0gICAgaWYgKHN0eWxlKCkudXNlclNlbGVjdCgpID09IFVzZXJTZWxlY3Q6Ok5v
bmUKKyAgICBpZiAoc3R5bGUoKS51c2VyU2VsZWN0SW5jbHVkaW5nSW5lcnQoKSA9PSBVc2VyU2Vs
ZWN0OjpOb25lCiAgICAgICAgIHx8ICh2aWV3KCkuZnJhbWVWaWV3KCkucGFpbnRCZWhhdmlvcigp
LmNvbnRhaW5zQW55KHsgUGFpbnRCZWhhdmlvcjo6U2VsZWN0aW9uT25seSwgUGFpbnRCZWhhdmlv
cjo6U2VsZWN0aW9uQW5kQmFja2dyb3VuZHNPbmx5IH0pKSkKICAgICAgICAgcmV0dXJuIENvbG9y
KCk7CiAKQEAgLTE1OTgsNyArMTU5OCw3IEBAIENvbG9yIFJlbmRlckVsZW1lbnQ6OnNlbGVjdGlv
bkVtcGhhc2lzTWFya0NvbG9yKCkgY29uc3QKIAogQ29sb3IgUmVuZGVyRWxlbWVudDo6c2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3QKIHsKLSAgICBpZiAoc3R5bGUoKS51c2VyU2VsZWN0
KCkgPT0gVXNlclNlbGVjdDo6Tm9uZSkKKyAgICBpZiAoc3R5bGUoKS51c2VyU2VsZWN0SW5jbHVk
aW5nSW5lcnQoKSA9PSBVc2VyU2VsZWN0OjpOb25lKQogICAgICAgICByZXR1cm4gQ29sb3IoKTsK
IAogICAgIGlmIChmcmFtZSgpLnNlbGVjdGlvbigpLnNob3VsZFNob3dCbG9ja0N1cnNvcigpICYm
IGZyYW1lKCkuc2VsZWN0aW9uKCkuaXNDYXJldCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKaW5kZXggNmVmYWUzOTRhZTgwYmRmYmFhNDhjYTE5MjcwNDJlMTM4NmQ5
NjkxNy4uNzUzNjcyNWQ2YjMxMTVlMjVhY2E4MmZkZGQ5MGM4YjYxZmRjNjQ1NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC01MjQ4LDcgKzUyNDgsNyBAQCBz
dGF0aWMgdm9pZCBkZXRlcm1pbmVOb25MYXllckRlc2NlbmRhbnRzUGFpbnRlZENvbnRlbnQoY29u
c3QgUmVuZGVyRWxlbWVudCYgcmVuZAogICAgICAgICAgICAgaWYgKCFyZW5kZXJUZXh0Lmhhc1Jl
bmRlcmVkVGV4dCgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBp
ZiAocmVuZGVyZXIuc3R5bGUoKS51c2VyU2VsZWN0KCkgIT0gVXNlclNlbGVjdDo6Tm9uZSkKKyAg
ICAgICAgICAgIGlmIChyZW5kZXJlci5zdHlsZSgpLnVzZXJTZWxlY3RJbmNsdWRpbmdJbmVydCgp
ICE9IFVzZXJTZWxlY3Q6Ok5vbmUpCiAgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRIYXNQYWlu
dGVkQ29udGVudCgpOwogCiAgICAgICAgICAgICBpZiAoIXJlbmRlclRleHQudGV4dCgpLmlzQWxs
U3BlY2lhbENoYXJhY3RlcnM8aXNIVE1MU3BhY2U+KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggMjZjYWJjODc4MDhiN2UxNTI2YThjNjQzNDNhODNk
MmE2OTkwNGMzZC4uZTdkYWIyYTlmMDQ2N2I1YTRkZWQxNGQxM2E2NTBkM2U5OWJmNzQwMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTIxODEsNyArMjE4
MSw3IEBAIGF1dG8gUmVuZGVyT2JqZWN0Ojpjb2xsZWN0U2VsZWN0aW9uR2VvbWV0cmllc0ludGVy
bmFsKGNvbnN0IFNpbXBsZVJhbmdlJiByYW5nZSkKICAgICBmb3IgKGF1dG8mIG5vZGUgOiBpbnRl
cnNlY3RpbmdOb2Rlc1dpdGhEZXByZWNhdGVkWmVyb09mZnNldFN0YXJ0UXVpcmsocmFuZ2UpKSB7
CiAgICAgICAgIGF1dG8gcmVuZGVyZXIgPSBub2RlLnJlbmRlcmVyKCk7CiAgICAgICAgIC8vIE9u
bHkgYXNrIGxlYWYgcmVuZGVyIG9iamVjdHMgZm9yIHRoZWlyIGxpbmUgYm94IHJlY3RzLgotICAg
ICAgICBpZiAocmVuZGVyZXIgJiYgIXJlbmRlcmVyLT5maXJzdENoaWxkU2xvdygpICYmIHJlbmRl
cmVyLT5zdHlsZSgpLnVzZXJTZWxlY3QoKSAhPSBVc2VyU2VsZWN0OjpOb25lICYmICFyZW5kZXJl
ci0+c3R5bGUoKS5lZmZlY3RpdmVJbmVydCgpKSB7CisgICAgICAgIGlmIChyZW5kZXJlciAmJiAh
cmVuZGVyZXItPmZpcnN0Q2hpbGRTbG93KCkgJiYgcmVuZGVyZXItPnN0eWxlKCkudXNlclNlbGVj
dEluY2x1ZGluZ0luZXJ0KCkgIT0gVXNlclNlbGVjdDo6Tm9uZSkgewogICAgICAgICAgICAgYm9v
bCBpc1N0YXJ0Tm9kZSA9IHJlbmRlcmVyLT5ub2RlKCkgPT0gcmFuZ2Uuc3RhcnQuY29udGFpbmVy
LnB0cigpOwogICAgICAgICAgICAgYm9vbCBpc0VuZE5vZGUgPSByZW5kZXJlci0+bm9kZSgpID09
IHJhbmdlLmVuZC5jb250YWluZXIucHRyKCk7CiAgICAgICAgICAgICBpZiAoaGFzRmxpcHBlZFdy
aXRpbmdNb2RlICE9IHJlbmRlcmVyLT5zdHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2Rl
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4
IGJlNmIwODdjMWFmNzUzOWRjNDI2NzJkN2E5MTM4NTZjMDM4ZGU0ZDUuLjdlY2I0YjNkMjVkZGFm
N2Y3Mjc3NmU3YWQ0MGRkNmJkNjU4ZTBjYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC02MTAsNiArNjEwLDcgQEAgcHVibGljOgogICAgIE1h
cnF1ZWVEaXJlY3Rpb24gbWFycXVlZURpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19j
YXN0PE1hcnF1ZWVEaXJlY3Rpb24+KG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPm1hcnF1ZWUtPmRp
cmVjdGlvbik7IH0KICAgICBVc2VyTW9kaWZ5IHVzZXJNb2RpZnkoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxVc2VyTW9kaWZ5PihtX3JhcmVJbmhlcml0ZWREYXRhLT51c2VyTW9kaWZ5KTsg
fQogICAgIFVzZXJEcmFnIHVzZXJEcmFnKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VXNl
ckRyYWc+KG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPnVzZXJEcmFnKTsgfQorICAgIFVzZXJTZWxl
Y3QgdXNlclNlbGVjdEluY2x1ZGluZ0luZXJ0KCkgY29uc3QgeyByZXR1cm4gZWZmZWN0aXZlSW5l
cnQoKSA/IFVzZXJTZWxlY3Q6Ok5vbmUgOiB1c2VyU2VsZWN0KCk7IH0KICAgICBVc2VyU2VsZWN0
IHVzZXJTZWxlY3QoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxVc2VyU2VsZWN0PihtX3Jh
cmVJbmhlcml0ZWREYXRhLT51c2VyU2VsZWN0KTsgfQogICAgIFRleHRPdmVyZmxvdyB0ZXh0T3Zl
cmZsb3coKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxUZXh0T3ZlcmZsb3c+KG1fcmFyZU5v
bkluaGVyaXRlZERhdGEtPnRleHRPdmVyZmxvdyk7IH0KICAgICBNYXJnaW5Db2xsYXBzZSBtYXJn
aW5CZWZvcmVDb2xsYXBzZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PE1hcmdpbkNvbGxh
cHNlPihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5tYXJnaW5CZWZvcmVDb2xsYXBzZSk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5q
ZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcAppbmRleCBjODkwYzU3
YWFmNDBkMjc0ZDliZGVlNjI3NzI3OTI3MjI5NWIzNWFiLi5jMmMzMTY1YjNmZmU2YjZlNzBiYTRk
OGRlYjVhMDI1OGI4MWJmOWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5v
ZGVIYW5kbGUuY3BwCkBAIC0zODIsNyArMzgyLDcgQEAgYm9vbCBJbmplY3RlZEJ1bmRsZU5vZGVI
YW5kbGU6OmlzU2VsZWN0YWJsZVRleHROb2RlKCkgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgYXV0byByZW5kZXJlciA9IG1fbm9kZS0+cmVuZGVyZXIoKTsKLSAgICByZXR1cm4g
cmVuZGVyZXIgJiYgcmVuZGVyZXItPnN0eWxlKCkudXNlclNlbGVjdCgpICE9IFVzZXJTZWxlY3Q6
Ok5vbmU7CisgICAgcmV0dXJuIHJlbmRlcmVyICYmIHJlbmRlcmVyLT5zdHlsZSgpLnVzZXJTZWxl
Y3RJbmNsdWRpbmdJbmVydCgpICE9IFVzZXJTZWxlY3Q6Ok5vbmU7CiB9CiAKIFJlZlB0cjxJbmpl
Y3RlZEJ1bmRsZU5vZGVIYW5kbGU+IEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6aHRtbFRhYmxl
Q2VsbEVsZW1lbnRDZWxsQWJvdmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA3ZjE2ODI1YTJiOGJiYWYxMWU0OWE3ODA1
MGY2YTc4NTA5ODVjMWZkLi5lN2U2MmYzNGQxMDJiMjkwYzE0OThiMDdmYjViNGFjZDBiNjUyYTkx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbQpAQCAtMjkwNiw3ICsyOTA2LDcgQEAgc3RhdGljIHZvaWQgc2VsZWN0aW9uUG9zaXRp
b25JbmZvcm1hdGlvbihXZWJQYWdlJiBwYWdlLCBjb25zdCBJbnRlcmFjdGlvbkluZm9ybWEKICAg
ICAgICAgaWYgKGF0dGFjaG1lbnQuZmlsZSgpKQogICAgICAgICAgICAgaW5mby51cmwgPSBVUkw6
OmZpbGVVUkxXaXRoRmlsZVN5c3RlbVBhdGgoZG93bmNhc3Q8SFRNTEF0dGFjaG1lbnRFbGVtZW50
PigqaGl0Tm9kZSkuZmlsZSgpLT5wYXRoKCkpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGluZm8u
aXNTZWxlY3RhYmxlID0gcmVuZGVyZXItPnN0eWxlKCkudXNlclNlbGVjdCgpICE9IFVzZXJTZWxl
Y3Q6Ok5vbmUgJiYgIXJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZUluZXJ0KCk7CisgICAgICAg
IGluZm8uaXNTZWxlY3RhYmxlID0gcmVuZGVyZXItPnN0eWxlKCkudXNlclNlbGVjdEluY2x1ZGlu
Z0luZXJ0KCkgIT0gVXNlclNlbGVjdDo6Tm9uZTsKICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0
byBzZWxlY3QgYmxvY2tzIHRoYXQgYXJlIGxhcmdlciB0aGFuIDk3JSBvZiB0aGUgdmlzaWJsZSBh
cmVhIG9mIHRoZSBkb2N1bWVudC4KICAgICAgICAgLy8gRklYTUU6IElzIHRoaXMgaGV1cmlzdGlj
IHN0aWxsIG5lZWRlZCwgbm93IHRoYXQgYmxvY2sgc2VsZWN0aW9uIGhhcyBiZWVuIHJlbW92ZWQ/
CiAgICAgICAgIGlmIChpbmZvLmlzU2VsZWN0YWJsZSAmJiAhaGl0Tm9kZS0+aXNUZXh0Tm9kZSgp
KQpAQCAtMjkxOCw3ICsyOTE4LDcgQEAgc3RhdGljIHZvaWQgc2VsZWN0aW9uUG9zaXRpb25JbmZv
cm1hdGlvbihXZWJQYWdlJiBwYWdlLCBjb25zdCBJbnRlcmFjdGlvbkluZm9ybWEKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGF1dG8mIHN0eWxlID0gcmVuZGVyZXItPnN0eWxlKCk7
Ci0gICAgICAgIGlmIChzdHlsZS51c2VyU2VsZWN0KCkgPT0gVXNlclNlbGVjdDo6Tm9uZSAmJiBz
dHlsZS51c2VyRHJhZygpID09IFVzZXJEcmFnOjpFbGVtZW50KSB7CisgICAgICAgIGlmIChzdHls
ZS51c2VyU2VsZWN0SW5jbHVkaW5nSW5lcnQoKSA9PSBVc2VyU2VsZWN0OjpOb25lICYmIHN0eWxl
LnVzZXJEcmFnKCkgPT0gVXNlckRyYWc6OkVsZW1lbnQpIHsKICAgICAgICAgICAgIGluZm8ucHJl
ZmVyc0RyYWdnaW5nT3ZlclRleHRTZWxlY3Rpb24gPSB0cnVlOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA1YTZiNjA1OGFmM2VhYTJlY2FlNGZmNjk3MjQ3NjlkMGY1YTY2
OWI1Li5mMDdmY2Q0OWNiNmM2NzlmYmUwNmEzYmE2Yjg0MmM5YjI4Yjk1Y2ExIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjMgQEAKKzIwMjEtMTAtMTggIFRpbSBOZ3V5ZW4gIDxudGltQGFwcGxlLmNvbT4KKwor
ICAgICAgICBGaXggbW91c2Ugc2VsZWN0aW9uIG9uIG1vZGFsIDxkaWFsb2c+IHRleHQgbm9kZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTc0MQor
CisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIFRlc3RzOgor
ICAgICAgICAtIGVkaXRpbmcvc2VsZWN0aW9uL21vZGFsLWRpYWxvZy1zZWxlY3QtcGFyYWdyYXBo
Lmh0bWwgKHRlc3RzIHRoaXMgYnVnKQorICAgICAgICAtIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaW5lcnQvaW5lcnQtbm9kZS1pcy11bnNlbGVjdGFibGUudGVudGF0aXZlLmh0bWwg
KHRlc3RzIHdoYXQKKyAgICAgICAgdGhlIGNhblN0YXJ0U2VsZWN0aW9uIGNoZWNrIHdhcyBzdXBw
b3NlZCB0byBmaXgpCisKKyAgICAgICAgVGhlIGluZXJ0IGNoZWNrIGluIE5vZGU6OmNhblN0YXJ0
U2VsZWN0aW9uKCkgd2FzIHRvbyByZXN0cmljdGl2ZSwgd2hpY2ggY2F1c2VkIHRoaXMgYnVnIHRv
IGhhcHBlbiBiZWNhdXNlCisgICAgICAgIHdlIHNldCB0aGUgcm9vdCBub2RlIGFzIGluZXJ0IGFu
ZCB0aGVuIHJlc2V0IGl0IGZvciB0aGUgbW9kYWwgPGRpYWxvZz4gaXRzZWxmLCBjYXVzaW5nIHRo
ZSB0ZXh0IGluIHRoZQorICAgICAgICA8ZGlhbG9nPiB0byBiZSB1bnNlbGVjdGFibGUuIEluc3Rl
YWQsIGp1c3QgbWlycm9yIGhvdyAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyBpcyBpbXBsZW1l
bnRlZCBieQorICAgICAgICBpbnRyb2R1Y2luZyBSZW5kZXJTdHlsZTo6dXNlclNlbGVjdEluY2x1
ZGluZ0luZXJ0KCkuCisKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9tb2RhbC1kaWFsb2ct
c2VsZWN0LXBhcmFncmFwaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcv
c2VsZWN0aW9uL21vZGFsLWRpYWxvZy1zZWxlY3QtcGFyYWdyYXBoLmh0bWw6IEFkZGVkLgorCiAy
MDIxLTEwLTE4ICBLaWV0IEhvICA8dGhvMjJAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVu
dCBwYXJzaW5nIGFuZCBhbmltYXRpb24gc3VwcG9ydCBmb3Igb2Zmc2V0LWRpc3RhbmNlLCBvZmZz
ZXQtcG9zaXRpb24sIG9mZnNldC1hbmNob3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL21vZGFsLWRpYWxvZy1zZWxlY3QtcGFyYWdyYXBoLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vZGFsLWRpYWxvZy1zZWxlY3QtcGFyYWdy
YXBoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZWNkNjE4MDY1MzQ1ODhlYzM0NjIzMTgwOTVi
MzlkOTI1ZThmNzgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vbW9kYWwtZGlhbG9nLXNlbGVjdC1wYXJhZ3JhcGgtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorVGhpcyB0ZXh0IHNob3VsZCBiZSBzZWxlY3RhYmxlIHdpdGggdGhlIG1vdXNlLgor
CitQQVNTOiBhbGwgZGlhbG9nIHRleHQgaXMgc2VsZWN0ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vZGFsLWRpYWxvZy1zZWxlY3QtcGFyYWdyYXBoLmh0bWwg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb2RhbC1kaWFsb2ctc2VsZWN0LXBhcmFn
cmFwaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjOGQyMGNlY2M2NTVkY2U5MWUxYWJlZTAwNTMwNmJkMWU1
NDYzNWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9t
b2RhbC1kaWFsb2ctc2VsZWN0LXBhcmFncmFwaC5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzxkaWFs
b2c+PHA+VGhpcyB0ZXh0IHNob3VsZCBiZSBzZWxlY3RhYmxlIHdpdGggdGhlIG1vdXNlLjwvcD48
L2RpYWxvZz4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigiZGlhbG9nIikuc2hvd01vZGFsKCk7CisKK2Z1bmN0aW9uIHNlbGVjdFBhcmFncmFw
aFdpdGhNb3VzZShwKSB7CisgICAgY29uc3QgcmVjdCA9IHAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCk7CisgICAgY29uc3QgeCA9IHJlY3QubGVmdDsKKyAgICBjb25zdCB5ID0gcmVjdC50b3AgKyBy
ZWN0LmhlaWdodCAvIDI7CisgICAgY29uc3QgdGV4dExlbmd0aCA9IHAudGV4dENvbnRlbnQubGVu
Z3RoOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7CisgICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8oeCArIHJlY3Qud2lkdGgsIHkpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlVXAoKTsKK30KKworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworCisgICAgY29uc3QgcCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
InAiKTsKKyAgICBzZWxlY3RQYXJhZ3JhcGhXaXRoTW91c2UocCk7CisKKyAgICBjb25zdCBzZWxl
Y3Rpb24gPSBnZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOworICAgIGlmIChzZWxlY3Rpb24gPT0g
cC50ZXh0Q29udGVudCkKKyAgICAgICAgbG9nLnRleHRDb250ZW50ID0gIlBBU1M6IGFsbCBkaWFs
b2cgdGV4dCBpcyBzZWxlY3RlZCI7CisgICAgZWxzZQorICAgICAgICBsb2cudGV4dENvbnRlbnQg
PSAiRkFJTDogdW5leHBlY3RlZCBzZWxlY3Rpb24sIGdvdDogIiArIHNlbGVjdGlvbjsKK30KKzwv
c2NyaXB0Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>