<?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>228199</bug_id>
          
          <creation_ts>2021-07-22 14:32:16 -0700</creation_ts>
          <short_desc>Simplify SegmentedString</short_desc>
          <delta_ts>2021-11-29 12:47: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>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1778835</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-07-22 14:32:16 -0700</bug_when>
    <thetext>Simplify SegmentedString</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778836</commentid>
    <comment_count>1</comment_count>
      <attachid>434037</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-07-22 14:32:35 -0700</bug_when>
    <thetext>Created attachment 434037
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780574</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-29 14:34:38 -0700</bug_when>
    <thetext>&lt;rdar://problem/81291298&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818356</commentid>
    <comment_count>3</comment_count>
      <attachid>445311</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-29 11:40:33 -0800</bug_when>
    <thetext>Created attachment 445311
Patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434037</attachid>
            <date>2021-07-22 14:32:35 -0700</date>
            <delta_ts>2021-11-29 11:40:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228199-20210722143234.patch</filename>
            <type>text/plain</type>
            <size>20706</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQ5YmNmZmJjOTc0OThi
Yjg5ZGZlNWNlNmNjNzA0OTUwMzdmMTY2ZS4uMjZkZDRlMWYzYzRmNjM1YzhkMDM5ZDkzODQxOTA0
NTdhZGFjNmM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIxLTA3LTIyICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2ltcGxpZnkgU2VnbWVu
dGVkU3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjgxOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHBsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNlZ21lbnRlZFN0cmluZzo6U3Vic3RyaW5nOjphcHBlbmRUbyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6Omxlbmd0aCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWdtZW50ZWRTdHJpbmc6OnNldEV4Y2x1ZGVMaW5lTnVtYmVycyk6CisgICAgICAgIChXZWJD
b3JlOjpTZWdtZW50ZWRTdHJpbmc6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRl
ZFN0cmluZzo6YXBwZW5kU3Vic3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0
cmluZzo6cHVzaEJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U2VnbWVudGVkU3RyaW5nOjphZHZh
bmNlV2l0aG91dFVwZGF0aW5nTGluZU51bWJlcjE2KToKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21l
bnRlZFN0cmluZzo6YWR2YW5jZUFuZFVwZGF0ZUxpbmVOdW1iZXIxNik6CisgICAgICAgIChXZWJD
b3JlOjpTZWdtZW50ZWRTdHJpbmc6OmFkdmFuY2VQYXN0U2luZ2xlQ2hhcmFjdGVyU3Vic3RyaW5n
V2l0aG91dFVwZGF0aW5nTGluZU51bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRT
dHJpbmc6OmFkdmFuY2VQYXN0U2luZ2xlQ2hhcmFjdGVyU3Vic3RyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZUVtcHR5KToKKyAgICAgICAgKFdlYkNvcmU6
OlNlZ21lbnRlZFN0cmluZzo6dXBkYXRlQWR2YW5jZUZ1bmN0aW9uUG9pbnRlcnNGb3JTaW5nbGVD
aGFyYWN0ZXJTdWJzdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2VnbWVudGVkU3RyaW5nOjp1
cGRhdGVBZHZhbmNlRnVuY3Rpb25Qb2ludGVyc0ZvckVtcHR5U3RyaW5nKToKKyAgICAgICAgKiBw
bGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5oOgorICAgICAgICAoV2ViQ29yZTo6U2VnbWVu
dGVkU3RyaW5nOjppc0VtcHR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0
cmluZzo6U3Vic3RyaW5nOjpsZW5ndGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VnbWVu
dGVkU3RyaW5nOjpTdWJzdHJpbmc6OmNhbkFkdmFuY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VnbWVudGVkU3RyaW5nOjpTdWJzdHJpbmc6OmNvbnN1bWVBbGwpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VnbWVudGVkU3RyaW5nOjpTdWJzdHJpbmc6Omhhc09uZUNoYXJhY3RlckxlZnQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VnbWVudGVkU3RyaW5nOjpTdWJzdHJpbmc6OmN1cnJl
bnRDaGFyYWN0ZXI4KToKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6U3Vic3Ry
aW5nOjpjdXJyZW50Q2hhcmFjdGVyOCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWdtZW50
ZWRTdHJpbmc6OlN1YnN0cmluZzo6Y3VycmVudENoYXJhY3RlcjE2KToKKyAgICAgICAgKFdlYkNv
cmU6OlNlZ21lbnRlZFN0cmluZzo6U3Vic3RyaW5nOjpjdXJyZW50Q2hhcmFjdGVyMTYgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U2VnbWVudGVkU3RyaW5nOjpTdWJzdHJpbmc6OlN1YnN0cmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6OlN1YnN0cmluZzo6bnVtYmVy
T2ZDaGFyYWN0ZXJzQ29uc3VtZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VnbWVudGVk
U3RyaW5nOjpTdWJzdHJpbmc6OmN1cnJlbnRDaGFyYWN0ZXIgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VnbWVudGVkU3RyaW5nOjpTZWdtZW50ZWRTdHJpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VnbWVudGVkU3RyaW5nOjphZHZhbmNlV2l0aG91dFVwZGF0aW5nTGluZU51bWJlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6OmFkdmFuY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VnbWVudGVkU3RyaW5nOjphZHZhbmNlUGFzdE5ld2xpbmUpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VnbWVudGVkU3RyaW5nOjphZHZhbmNlUGFzdCk6CisgICAgICAgIChXZWJDb3JlOjpT
ZWdtZW50ZWRTdHJpbmc6OnVwZGF0ZUFkdmFuY2VGdW5jdGlvblBvaW50ZXJzKToKKyAgICAgICAg
KFdlYkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6U3Vic3RyaW5nOjpjdXJyZW50Q2hhcmFjdGVyUHJl
SW5jcmVtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6
ZGVjcmVtZW50QW5kQ2hlY2tMZW5ndGgpOiBEZWxldGVkLgorCiAyMDIxLTA3LTIyICBZdXN1a2Ug
U3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgTWljcm8tb3B0aW1pemUgaW5u
ZXJIVE1MCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1NlZ21lbnRl
ZFN0cmluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmlu
Zy5jcHAKaW5kZXggYzA4M2VhN2FmNzRjMjZjM2U0MTVjZTQ1ODYwYWI3ZThkMWRkZTg5ZS4uOGU3
N2I1YWE5NGVhYmVmMzI2OWZiMDk4ODk3ODcxZDcxODAwNTU1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcApAQCAtMjUsOSArMjUsMTEg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjb25zdCBjaGFyKiBjb25zdCBlbXB0eVN0cmlu
Z1BvaW50ZXIgPSAiIjsKKwogaW5saW5lIHZvaWQgU2VnbWVudGVkU3RyaW5nOjpTdWJzdHJpbmc6
OmFwcGVuZFRvKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIpIGNvbnN0CiB7Ci0gICAgYnVpbGRlci5h
cHBlbmRTdWJzdHJpbmcoc3RyaW5nLCBzdHJpbmcubGVuZ3RoKCkgLSBsZW5ndGgsIGxlbmd0aCk7
CisgICAgYnVpbGRlci5hcHBlbmRTdWJzdHJpbmcobV9zdHJpbmcsIG1fc3RyaW5nLmxlbmd0aCgp
IC0gbGVuZ3RoKCksIGxlbmd0aCgpKTsKIH0KIAogU2VnbWVudGVkU3RyaW5nJiBTZWdtZW50ZWRT
dHJpbmc6Om9wZXJhdG9yPShTZWdtZW50ZWRTdHJpbmcmJiBvdGhlcikKQEAgLTU0LDI1ICs1Niwy
NSBAQCBTZWdtZW50ZWRTdHJpbmcmIFNlZ21lbnRlZFN0cmluZzo6b3BlcmF0b3I9KFNlZ21lbnRl
ZFN0cmluZyYmIG90aGVyKQogCiB1bnNpZ25lZCBTZWdtZW50ZWRTdHJpbmc6Omxlbmd0aCgpIGNv
bnN0CiB7Ci0gICAgdW5zaWduZWQgbGVuZ3RoID0gbV9jdXJyZW50U3Vic3RyaW5nLmxlbmd0aDsK
KyAgICB1bnNpZ25lZCBsZW5ndGggPSBtX2N1cnJlbnRTdWJzdHJpbmcubGVuZ3RoKCk7CiAgICAg
Zm9yIChhdXRvJiBzdWJzdHJpbmcgOiBtX290aGVyU3Vic3RyaW5ncykKLSAgICAgICAgbGVuZ3Ro
ICs9IHN1YnN0cmluZy5sZW5ndGg7CisgICAgICAgIGxlbmd0aCArPSBzdWJzdHJpbmcubGVuZ3Ro
KCk7CiAgICAgcmV0dXJuIGxlbmd0aDsKIH0KIAogdm9pZCBTZWdtZW50ZWRTdHJpbmc6OnNldEV4
Y2x1ZGVMaW5lTnVtYmVycygpCiB7Ci0gICAgaWYgKCFtX2N1cnJlbnRTdWJzdHJpbmcuZG9Ob3RF
eGNsdWRlTGluZU51bWJlcnMpCisgICAgaWYgKCFtX2N1cnJlbnRTdWJzdHJpbmcubV9kb05vdEV4
Y2x1ZGVMaW5lTnVtYmVycykKICAgICAgICAgcmV0dXJuOwotICAgIG1fY3VycmVudFN1YnN0cmlu
Zy5kb05vdEV4Y2x1ZGVMaW5lTnVtYmVycyA9IGZhbHNlOworICAgIG1fY3VycmVudFN1YnN0cmlu
Zy5tX2RvTm90RXhjbHVkZUxpbmVOdW1iZXJzID0gZmFsc2U7CiAgICAgZm9yIChhdXRvJiBzdWJz
dHJpbmcgOiBtX290aGVyU3Vic3RyaW5ncykKLSAgICAgICAgc3Vic3RyaW5nLmRvTm90RXhjbHVk
ZUxpbmVOdW1iZXJzID0gZmFsc2U7CisgICAgICAgIHN1YnN0cmluZy5tX2RvTm90RXhjbHVkZUxp
bmVOdW1iZXJzID0gZmFsc2U7CiAgICAgdXBkYXRlQWR2YW5jZUZ1bmN0aW9uUG9pbnRlcnMoKTsK
IH0KIAogdm9pZCBTZWdtZW50ZWRTdHJpbmc6OmNsZWFyKCkKIHsKLSAgICBtX2N1cnJlbnRTdWJz
dHJpbmcubGVuZ3RoID0gMDsKKyAgICBtX2N1cnJlbnRTdWJzdHJpbmcuY29uc3VtZUFsbCgpOwog
ICAgIG1fb3RoZXJTdWJzdHJpbmdzLmNsZWFyKCk7CiAKICAgICBtX2lzQ2xvc2VkID0gZmFsc2U7
CkBAIC04OSw5ICs5MSw5IEBAIHZvaWQgU2VnbWVudGVkU3RyaW5nOjpjbGVhcigpCiBpbmxpbmUg
dm9pZCBTZWdtZW50ZWRTdHJpbmc6OmFwcGVuZFN1YnN0cmluZyhTdWJzdHJpbmcmJiBzdWJzdHJp
bmcpCiB7CiAgICAgQVNTRVJUKCFtX2lzQ2xvc2VkKTsKLSAgICBpZiAoIXN1YnN0cmluZy5sZW5n
dGgpCisgICAgaWYgKCFzdWJzdHJpbmcubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBp
ZiAobV9jdXJyZW50U3Vic3RyaW5nLmxlbmd0aCkKKyAgICBpZiAobV9jdXJyZW50U3Vic3RyaW5n
Lmxlbmd0aCgpKQogICAgICAgICBtX290aGVyU3Vic3RyaW5ncy5hcHBlbmQoV1RGTW92ZShzdWJz
dHJpbmcpKTsKICAgICBlbHNlIHsKICAgICAgICAgbV9udW1iZXJPZkNoYXJhY3RlcnNDb25zdW1l
ZFByaW9yVG9DdXJyZW50U3Vic3RyaW5nICs9IG1fY3VycmVudFN1YnN0cmluZy5udW1iZXJPZkNo
YXJhY3RlcnNDb25zdW1lZCgpOwpAQCAtMTE1LDEwICsxMTcsMTAgQEAgdm9pZCBTZWdtZW50ZWRT
dHJpbmc6OnB1c2hCYWNrKFN0cmluZyYmIHN0cmluZykKICAgICBBU1NFUlQoc3RyaW5nLmxlbmd0
aCgpIDw9IG51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCkpOwogCiAgICAgbV9udW1iZXJPZkNo
YXJhY3RlcnNDb25zdW1lZFByaW9yVG9DdXJyZW50U3Vic3RyaW5nICs9IG1fY3VycmVudFN1YnN0
cmluZy5udW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZCgpOwotICAgIGlmIChtX2N1cnJlbnRTdWJz
dHJpbmcubGVuZ3RoKQorICAgIGlmIChtX2N1cnJlbnRTdWJzdHJpbmcubGVuZ3RoKCkpCiAgICAg
ICAgIG1fb3RoZXJTdWJzdHJpbmdzLnByZXBlbmQoV1RGTW92ZShtX2N1cnJlbnRTdWJzdHJpbmcp
KTsKICAgICBtX2N1cnJlbnRTdWJzdHJpbmcgPSBXVEZNb3ZlKHN0cmluZyk7Ci0gICAgbV9udW1i
ZXJPZkNoYXJhY3RlcnNDb25zdW1lZFByaW9yVG9DdXJyZW50U3Vic3RyaW5nIC09IG1fY3VycmVu
dFN1YnN0cmluZy5sZW5ndGg7CisgICAgbV9udW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZFByaW9y
VG9DdXJyZW50U3Vic3RyaW5nIC09IG1fY3VycmVudFN1YnN0cmluZy5sZW5ndGgoKTsKICAgICBt
X2N1cnJlbnRDaGFyYWN0ZXIgPSBtX2N1cnJlbnRTdWJzdHJpbmcuY3VycmVudENoYXJhY3Rlcigp
OwogICAgIHVwZGF0ZUFkdmFuY2VGdW5jdGlvblBvaW50ZXJzKCk7CiB9CkBAIC0xNjQsMjMgKzE2
NiwyNSBAQCBTdHJpbmcgU2VnbWVudGVkU3RyaW5nOjp0b1N0cmluZygpIGNvbnN0CiAKIHZvaWQg
U2VnbWVudGVkU3RyaW5nOjphZHZhbmNlV2l0aG91dFVwZGF0aW5nTGluZU51bWJlcjE2KCkKIHsK
LSAgICBtX2N1cnJlbnRDaGFyYWN0ZXIgPSAqKyttX2N1cnJlbnRTdWJzdHJpbmcuY3VycmVudENo
YXJhY3RlcjE2OwotICAgIGRlY3JlbWVudEFuZENoZWNrTGVuZ3RoKCk7CisgICAgbV9jdXJyZW50
Q2hhcmFjdGVyID0gKisrbV9jdXJyZW50U3Vic3RyaW5nLmN1cnJlbnRDaGFyYWN0ZXIxNigpOwor
ICAgIGlmIChVTkxJS0VMWShtX2N1cnJlbnRTdWJzdHJpbmcuaGFzT25lQ2hhcmFjdGVyTGVmdCgp
KSkKKyAgICAgICAgdXBkYXRlQWR2YW5jZUZ1bmN0aW9uUG9pbnRlcnNGb3JTaW5nbGVDaGFyYWN0
ZXJTdWJzdHJpbmcoKTsKIH0KIAogdm9pZCBTZWdtZW50ZWRTdHJpbmc6OmFkdmFuY2VBbmRVcGRh
dGVMaW5lTnVtYmVyMTYoKQogewotICAgIEFTU0VSVChtX2N1cnJlbnRTdWJzdHJpbmcuZG9Ob3RF
eGNsdWRlTGluZU51bWJlcnMpOworICAgIEFTU0VSVChtX2N1cnJlbnRTdWJzdHJpbmcubV9kb05v
dEV4Y2x1ZGVMaW5lTnVtYmVycyk7CiAgICAgcHJvY2Vzc1Bvc3NpYmxlTmV3bGluZSgpOwotICAg
IG1fY3VycmVudENoYXJhY3RlciA9ICorK21fY3VycmVudFN1YnN0cmluZy5jdXJyZW50Q2hhcmFj
dGVyMTY7Ci0gICAgZGVjcmVtZW50QW5kQ2hlY2tMZW5ndGgoKTsKKyAgICBtX2N1cnJlbnRDaGFy
YWN0ZXIgPSAqKyttX2N1cnJlbnRTdWJzdHJpbmcuY3VycmVudENoYXJhY3RlcjE2KCk7CisgICAg
aWYgKFVOTElLRUxZKG1fY3VycmVudFN1YnN0cmluZy5oYXNPbmVDaGFyYWN0ZXJMZWZ0KCkpKQor
ICAgICAgICB1cGRhdGVBZHZhbmNlRnVuY3Rpb25Qb2ludGVyc0ZvclNpbmdsZUNoYXJhY3RlclN1
YnN0cmluZygpOwogfQogCiBpbmxpbmUgdm9pZCBTZWdtZW50ZWRTdHJpbmc6OmFkdmFuY2VQYXN0
U2luZ2xlQ2hhcmFjdGVyU3Vic3RyaW5nV2l0aG91dFVwZGF0aW5nTGluZU51bWJlcigpCiB7Ci0g
ICAgQVNTRVJUKG1fY3VycmVudFN1YnN0cmluZy5sZW5ndGggPT0gMSk7CisgICAgQVNTRVJUKG1f
Y3VycmVudFN1YnN0cmluZy5oYXNPbmVDaGFyYWN0ZXJMZWZ0KCkpOwogICAgIGlmIChtX290aGVy
U3Vic3RyaW5ncy5pc0VtcHR5KCkpIHsKLSAgICAgICAgbV9jdXJyZW50U3Vic3RyaW5nLmxlbmd0
aCA9IDA7CisgICAgICAgIG1fY3VycmVudFN1YnN0cmluZy5jb25zdW1lQWxsKCk7CiAgICAgICAg
IG1fY3VycmVudENoYXJhY3RlciA9IDA7CiAgICAgICAgIHVwZGF0ZUFkdmFuY2VGdW5jdGlvblBv
aW50ZXJzRm9yRW1wdHlTdHJpbmcoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTk2LDI1ICsyMDAs
MjUgQEAgaW5saW5lIHZvaWQgU2VnbWVudGVkU3RyaW5nOjphZHZhbmNlUGFzdFNpbmdsZUNoYXJh
Y3RlclN1YnN0cmluZ1dpdGhvdXRVcGRhdGluZ0wKIAogdm9pZCBTZWdtZW50ZWRTdHJpbmc6OmFk
dmFuY2VQYXN0U2luZ2xlQ2hhcmFjdGVyU3Vic3RyaW5nKCkKIHsKLSAgICBBU1NFUlQobV9jdXJy
ZW50U3Vic3RyaW5nLmxlbmd0aCA9PSAxKTsKLSAgICBBU1NFUlQobV9jdXJyZW50U3Vic3RyaW5n
LmRvTm90RXhjbHVkZUxpbmVOdW1iZXJzKTsKKyAgICBBU1NFUlQobV9jdXJyZW50U3Vic3RyaW5n
Lmhhc09uZUNoYXJhY3RlckxlZnQoKSk7CisgICAgQVNTRVJUKG1fY3VycmVudFN1YnN0cmluZy5t
X2RvTm90RXhjbHVkZUxpbmVOdW1iZXJzKTsKICAgICBwcm9jZXNzUG9zc2libGVOZXdsaW5lKCk7
CiAgICAgYWR2YW5jZVBhc3RTaW5nbGVDaGFyYWN0ZXJTdWJzdHJpbmdXaXRob3V0VXBkYXRpbmdM
aW5lTnVtYmVyKCk7CiB9CiAKIHZvaWQgU2VnbWVudGVkU3RyaW5nOjphZHZhbmNlRW1wdHkoKQog
ewotICAgIEFTU0VSVCghbV9jdXJyZW50U3Vic3RyaW5nLmxlbmd0aCk7CisgICAgQVNTRVJUKCFt
X2N1cnJlbnRTdWJzdHJpbmcubGVuZ3RoKCkpOwogICAgIEFTU0VSVChtX290aGVyU3Vic3RyaW5n
cy5pc0VtcHR5KCkpOwogICAgIEFTU0VSVCghbV9jdXJyZW50Q2hhcmFjdGVyKTsKIH0KIAogdm9p
ZCBTZWdtZW50ZWRTdHJpbmc6OnVwZGF0ZUFkdmFuY2VGdW5jdGlvblBvaW50ZXJzRm9yU2luZ2xl
Q2hhcmFjdGVyU3Vic3RyaW5nKCkKIHsKLSAgICBBU1NFUlQobV9jdXJyZW50U3Vic3RyaW5nLmxl
bmd0aCA9PSAxKTsKKyAgICBBU1NFUlQobV9jdXJyZW50U3Vic3RyaW5nLmhhc09uZUNoYXJhY3Rl
ckxlZnQoKSk7CiAgICAgbV9mYXN0UGF0aEZsYWdzID0gTm9GYXN0UGF0aDsKICAgICBtX2FkdmFu
Y2VXaXRob3V0VXBkYXRpbmdMaW5lTnVtYmVyRnVuY3Rpb24gPSAmU2VnbWVudGVkU3RyaW5nOjph
ZHZhbmNlUGFzdFNpbmdsZUNoYXJhY3RlclN1YnN0cmluZ1dpdGhvdXRVcGRhdGluZ0xpbmVOdW1i
ZXI7Ci0gICAgaWYgKG1fY3VycmVudFN1YnN0cmluZy5kb05vdEV4Y2x1ZGVMaW5lTnVtYmVycykK
KyAgICBpZiAobV9jdXJyZW50U3Vic3RyaW5nLm1fZG9Ob3RFeGNsdWRlTGluZU51bWJlcnMpCiAg
ICAgICAgIG1fYWR2YW5jZUFuZFVwZGF0ZUxpbmVOdW1iZXJGdW5jdGlvbiA9ICZTZWdtZW50ZWRT
dHJpbmc6OmFkdmFuY2VQYXN0U2luZ2xlQ2hhcmFjdGVyU3Vic3RyaW5nOwogICAgIGVsc2UKICAg
ICAgICAgbV9hZHZhbmNlQW5kVXBkYXRlTGluZU51bWJlckZ1bmN0aW9uID0gJlNlZ21lbnRlZFN0
cmluZzo6YWR2YW5jZVBhc3RTaW5nbGVDaGFyYWN0ZXJTdWJzdHJpbmdXaXRob3V0VXBkYXRpbmdM
aW5lTnVtYmVyOwpAQCAtMjYwLDcgKzI2NCw3IEBAIFNlZ21lbnRlZFN0cmluZzo6QWR2YW5jZVBh
c3RSZXN1bHQgU2VnbWVudGVkU3RyaW5nOjphZHZhbmNlUGFzdFNsb3dDYXNlKGNvbnN0IGNoCiAK
IHZvaWQgU2VnbWVudGVkU3RyaW5nOjp1cGRhdGVBZHZhbmNlRnVuY3Rpb25Qb2ludGVyc0ZvckVt
cHR5U3RyaW5nKCkKIHsKLSAgICBBU1NFUlQoIW1fY3VycmVudFN1YnN0cmluZy5sZW5ndGgpOwor
ICAgIEFTU0VSVCghbV9jdXJyZW50U3Vic3RyaW5nLmxlbmd0aCgpKTsKICAgICBBU1NFUlQobV9v
dGhlclN1YnN0cmluZ3MuaXNFbXB0eSgpKTsKICAgICBBU1NFUlQoIW1fY3VycmVudENoYXJhY3Rl
cik7CiAgICAgbV9mYXN0UGF0aEZsYWdzID0gTm9GYXN0UGF0aDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5oCmluZGV4IGZlN2YxOTE0MDM3ZDMzNWJm
OThlNDhlNWQ2ZjkzMTkzMDljMjYwYzcuLjZlMjhmOTMwZDRlMjllMTNhOGU1N2VjMTEwZjUxMDc3
MmU5MTVlMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVu
dGVkU3RyaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRT
dHJpbmcuaApAQCAtMjcsNiArMjcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBGSVhNRTog
VGhpcyBzaG91bGQgbm90IHN0YXJ0IHdpdGggImsiLgogLy8gRklYTUU6IFRoaXMgaXMgYSBzaGFy
ZWQgdG9rZW5pemVyIGNvbmNlcHQsIG5vdCBhIFNlZ21lbnRlZFN0cmluZyBjb25jZXB0LCBidXQg
dGhpcyBpcyB0aGUgb25seSBjb21tb24gaGVhZGVyIGZvciBub3cuCiBjb25zdGV4cHIgTENoYXIg
a0VuZE9mRmlsZU1hcmtlciA9IDA7CitleHRlcm4gY29uc3QgY2hhciogY29uc3QgZW1wdHlTdHJp
bmdQb2ludGVyOwogCiBjbGFzcyBTZWdtZW50ZWRTdHJpbmcgewogcHVibGljOgpAQCAtNTMsNyAr
NTQsNyBAQCBjbGFzcyBTZWdtZW50ZWRTdHJpbmcgewogCiAgICAgdm9pZCBzZXRFeGNsdWRlTGlu
ZU51bWJlcnMoKTsKIAotICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2N1cnJl
bnRTdWJzdHJpbmcubGVuZ3RoOyB9CisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4g
IW1fY3VycmVudFN1YnN0cmluZy5sZW5ndGgoKTsgfQogICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNv
bnN0OwogCiAgICAgYm9vbCBpc0Nsb3NlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNDbG9zZWQ7IH0K
QEAgLTg1LDE5ICs4Niw2MCBAQCBjbGFzcyBTZWdtZW50ZWRTdHJpbmcgewogICAgICAgICBTdWJz
dHJpbmcoU3RyaW5nJiYpOwogCiAgICAgICAgIFVDaGFyIGN1cnJlbnRDaGFyYWN0ZXIoKSBjb25z
dDsKLSAgICAgICAgVUNoYXIgY3VycmVudENoYXJhY3RlclByZUluY3JlbWVudCgpOwogCiAgICAg
ICAgIHVuc2lnbmVkIG51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCkgY29uc3Q7CiAgICAgICAg
IHZvaWQgYXBwZW5kVG8oU3RyaW5nQnVpbGRlciYpIGNvbnN0OwogCi0gICAgICAgIFN0cmluZyBz
dHJpbmc7Ci0gICAgICAgIHVuc2lnbmVkIGxlbmd0aCB7IDAgfTsKLSAgICAgICAgYm9vbCBpczhC
aXQ7Ci0gICAgICAgIHVuaW9uIHsKLSAgICAgICAgICAgIGNvbnN0IExDaGFyKiBjdXJyZW50Q2hh
cmFjdGVyODsKLSAgICAgICAgICAgIGNvbnN0IFVDaGFyKiBjdXJyZW50Q2hhcmFjdGVyMTY7Ci0g
ICAgICAgIH07Ci0gICAgICAgIGJvb2wgZG9Ob3RFeGNsdWRlTGluZU51bWJlcnMgeyB0cnVlIH07
CisgICAgICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAg
IHJldHVybiAobV9sYXN0QmVmb3JlT25lQ3Vyc29yICsgKDFVIDw8ICFtX2lzOEJpdCkgLSBtX2N1
cnJlbnRDaGFyYWN0ZXJDdXJzb3IpID4+ICFtX2lzOEJpdDsKKyAgICAgICAgfQorCisgICAgICAg
IC8vIEVxdWl2YWxlbnQgdG8gYGxlbmd0aCgpID4gMWAuCisgICAgICAgIGJvb2wgY2FuQWR2YW5j
ZSgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX2N1cnJlbnRDaGFyYWN0
ZXJDdXJzb3IgPCBtX2xhc3RCZWZvcmVPbmVDdXJzb3I7CisgICAgICAgIH0KKworICAgICAgICB2
b2lkIGNvbnN1bWVBbGwoKQorICAgICAgICB7CisgICAgICAgICAgICBtX2N1cnJlbnRDaGFyYWN0
ZXJDdXJzb3IgPSAwOworICAgICAgICAgICAgbV9sYXN0QmVmb3JlT25lQ3Vyc29yID0gbV9jdXJy
ZW50Q2hhcmFjdGVyQ3Vyc29yIC0gKDFVIDw8ICFtX2lzOEJpdCk7CisgICAgICAgIH0KKworICAg
ICAgICBib29sIGhhc09uZUNoYXJhY3RlckxlZnQoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRD
aGFyYWN0ZXJDdXJzb3IgPT0gbV9sYXN0QmVmb3JlT25lQ3Vyc29yOyB9CisKKyAgICAgICAgdXNp
bmcgQ29uc3RMQ2hhclBvaW50ZXIgPSBjb25zdCBMQ2hhcio7CisgICAgICAgIHVzaW5nIENvbnN0
VUNoYXJQb2ludGVyID0gY29uc3QgVUNoYXIqOworCisgICAgICAgIENvbnN0TENoYXJQb2ludGVy
JiBjdXJyZW50Q2hhcmFjdGVyOCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChtX2lz
OEJpdCk7CisgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDb25zdExDaGFyUG9p
bnRlciY+KG1fY3VycmVudENoYXJhY3RlckN1cnNvcik7CisgICAgICAgIH0KKyAgICAgICAgY29u
c3QgQ29uc3RMQ2hhclBvaW50ZXImIGN1cnJlbnRDaGFyYWN0ZXI4KCkgY29uc3QKKyAgICAgICAg
eworICAgICAgICAgICAgQVNTRVJUKG1faXM4Qml0KTsKKyAgICAgICAgICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PGNvbnN0IENvbnN0TENoYXJQb2ludGVyJj4obV9jdXJyZW50Q2hhcmFjdGVy
Q3Vyc29yKTsKKyAgICAgICAgfQorCisgICAgICAgIENvbnN0VUNoYXJQb2ludGVyJiBjdXJyZW50
Q2hhcmFjdGVyMTYoKQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQoIW1faXM4Qml0KTsK
KyAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PENvbnN0VUNoYXJQb2ludGVyJj4o
bV9jdXJyZW50Q2hhcmFjdGVyQ3Vyc29yKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IENv
bnN0VUNoYXJQb2ludGVyJiBjdXJyZW50Q2hhcmFjdGVyMTYoKSBjb25zdAorICAgICAgICB7Cisg
ICAgICAgICAgICBBU1NFUlQoIW1faXM4Qml0KTsKKyAgICAgICAgICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0PGNvbnN0IENvbnN0VUNoYXJQb2ludGVyJj4obV9jdXJyZW50Q2hhcmFjdGVyQ3Vy
c29yKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBtX3N0cmluZzsKKyAgICAgICAgYm9v
bCBtX2lzOEJpdCB7IHRydWUgfTsKKyAgICAgICAgYm9vbCBtX2RvTm90RXhjbHVkZUxpbmVOdW1i
ZXJzIHsgdHJ1ZSB9OworICAgICAgICB1aW50cHRyX3QgbV9jdXJyZW50Q2hhcmFjdGVyQ3Vyc29y
IHsgYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oZW1wdHlTdHJpbmdQb2ludGVyKSB9OworICAgICAg
ICB1aW50cHRyX3QgbV9sYXN0QmVmb3JlT25lQ3Vyc29yIHsgbV9jdXJyZW50Q2hhcmFjdGVyQ3Vy
c29yIC0gMSB9OwogICAgIH07CiAKICAgICBlbnVtIEZhc3RQYXRoRmxhZ3MgewpAQCAtMTIyLDgg
KzE2NCw2IEBAIGNsYXNzIFNlZ21lbnRlZFN0cmluZyB7CiAgICAgdm9pZCB1cGRhdGVBZHZhbmNl
RnVuY3Rpb25Qb2ludGVyc0ZvckVtcHR5U3RyaW5nKCk7CiAgICAgdm9pZCB1cGRhdGVBZHZhbmNl
RnVuY3Rpb25Qb2ludGVyc0ZvclNpbmdsZUNoYXJhY3RlclN1YnN0cmluZygpOwogCi0gICAgdm9p
ZCBkZWNyZW1lbnRBbmRDaGVja0xlbmd0aCgpOwotCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hh
cmFjdGVyVHlwZT4gc3RhdGljIGJvb2wgY2hhcmFjdGVyTWlzbWF0Y2goQ2hhcmFjdGVyVHlwZSwg
Y2hhciwgYm9vbCBsZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UpOwogICAgIHRlbXBsYXRlPHVuc2ln
bmVkIGxlbmd0aCwgYm9vbCBsZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2U+IEFkdmFuY2VQYXN0UmVz
dWx0IGFkdmFuY2VQYXN0KGNvbnN0IGNoYXIgKCZsaXRlcmFsKVtsZW5ndGhdKTsKICAgICBBZHZh
bmNlUGFzdFJlc3VsdCBhZHZhbmNlUGFzdFNsb3dDYXNlKGNvbnN0IGNoYXIqIGxpdGVyYWwsIGJv
b2wgbGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKTsKQEAgLTE0NSwzOSArMTg1LDQ1IEBAIGNsYXNz
IFNlZ21lbnRlZFN0cmluZyB7CiB9OwogCiBpbmxpbmUgU2VnbWVudGVkU3RyaW5nOjpTdWJzdHJp
bmc6OlN1YnN0cmluZyhTdHJpbmcmJiBwYXNzZWRTdHJpbmcpCi0gICAgOiBzdHJpbmcoV1RGTW92
ZShwYXNzZWRTdHJpbmcpKQotICAgICwgbGVuZ3RoKHN0cmluZy5sZW5ndGgoKSkKKyAgICA6IG1f
c3RyaW5nKFdURk1vdmUocGFzc2VkU3RyaW5nKSkKIHsKLSAgICBpZiAobGVuZ3RoKSB7Ci0gICAg
ICAgIGlzOEJpdCA9IHN0cmluZy5pbXBsKCktPmlzOEJpdCgpOwotICAgICAgICBpZiAoaXM4Qml0
KQotICAgICAgICAgICAgY3VycmVudENoYXJhY3RlcjggPSBzdHJpbmcuaW1wbCgpLT5jaGFyYWN0
ZXJzOCgpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjdXJyZW50Q2hhcmFjdGVyMTYgPSBz
dHJpbmcuaW1wbCgpLT5jaGFyYWN0ZXJzMTYoKTsKKyAgICBpZiAobV9zdHJpbmcubGVuZ3RoKCkp
IHsKKyAgICAgICAgbV9pczhCaXQgPSBtX3N0cmluZy5pbXBsKCktPmlzOEJpdCgpOworICAgICAg
ICBpZiAobV9pczhCaXQpIHsKKyAgICAgICAgICAgIGF1dG8qIGNoYXJhY3RlcjggPSBtX3N0cmlu
Zy5pbXBsKCktPmNoYXJhY3RlcnM4KCk7CisgICAgICAgICAgICBhdXRvKiBsYXN0QmVmb3JlT25l
OCA9IGNoYXJhY3RlcjggKyBtX3N0cmluZy5sZW5ndGgoKSAtIDE7CisgICAgICAgICAgICBtX2N1
cnJlbnRDaGFyYWN0ZXJDdXJzb3IgPSBiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihjaGFyYWN0ZXI4
KTsKKyAgICAgICAgICAgIG1fbGFzdEJlZm9yZU9uZUN1cnNvciA9IGJpdHdpc2VfY2FzdDx1aW50
cHRyX3Q+KGxhc3RCZWZvcmVPbmU4KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGF1
dG8qIGNoYXJhY3RlcjE2ID0gbV9zdHJpbmcuaW1wbCgpLT5jaGFyYWN0ZXJzMTYoKTsKKyAgICAg
ICAgICAgIGF1dG8qIGxhc3RCZWZvcmVPbmUxNiA9IGNoYXJhY3RlcjE2ICsgbV9zdHJpbmcubGVu
Z3RoKCkgLSAxOworICAgICAgICAgICAgbV9jdXJyZW50Q2hhcmFjdGVyQ3Vyc29yID0gYml0d2lz
ZV9jYXN0PHVpbnRwdHJfdD4oY2hhcmFjdGVyMTYpOworICAgICAgICAgICAgbV9sYXN0QmVmb3Jl
T25lQ3Vyc29yID0gYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4obGFzdEJlZm9yZU9uZTE2KTsKKyAg
ICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIG1faXM4Qml0ID0gdHJ1ZTsKKyAgICAgICAg
bV9jdXJyZW50Q2hhcmFjdGVyQ3Vyc29yID0gYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oZW1wdHlT
dHJpbmdQb2ludGVyKTsKKyAgICAgICAgbV9sYXN0QmVmb3JlT25lQ3Vyc29yID0gbV9jdXJyZW50
Q2hhcmFjdGVyQ3Vyc29yIC0gMTsKICAgICB9CisgICAgQVNTRVJUKG1fY3VycmVudENoYXJhY3Rl
ckN1cnNvcik7CisgICAgQVNTRVJUKGxlbmd0aCgpID09IG1fc3RyaW5nLmxlbmd0aCgpKTsKIH0K
IAogaW5saW5lIHVuc2lnbmVkIFNlZ21lbnRlZFN0cmluZzo6U3Vic3RyaW5nOjpudW1iZXJPZkNo
YXJhY3RlcnNDb25zdW1lZCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHN0cmluZy5sZW5ndGgoKSAt
IGxlbmd0aDsKKyAgICByZXR1cm4gbV9zdHJpbmcubGVuZ3RoKCkgLSBsZW5ndGgoKTsKIH0KIAog
QUxXQVlTX0lOTElORSBVQ2hhciBTZWdtZW50ZWRTdHJpbmc6OlN1YnN0cmluZzo6Y3VycmVudENo
YXJhY3RlcigpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGxlbmd0aCk7Ci0gICAgcmV0dXJuIGlzOEJp
dCA/ICpjdXJyZW50Q2hhcmFjdGVyOCA6ICpjdXJyZW50Q2hhcmFjdGVyMTY7Ci19Ci0KLUFMV0FZ
U19JTkxJTkUgVUNoYXIgU2VnbWVudGVkU3RyaW5nOjpTdWJzdHJpbmc6OmN1cnJlbnRDaGFyYWN0
ZXJQcmVJbmNyZW1lbnQoKQotewotICAgIEFTU0VSVChsZW5ndGgpOwotICAgIHJldHVybiBpczhC
aXQgPyAqKytjdXJyZW50Q2hhcmFjdGVyOCA6ICorK2N1cnJlbnRDaGFyYWN0ZXIxNjsKKyAgICBB
U1NFUlQobGVuZ3RoKCkpOworICAgIHJldHVybiBtX2lzOEJpdCA/ICpjdXJyZW50Q2hhcmFjdGVy
OCgpIDogKmN1cnJlbnRDaGFyYWN0ZXIxNigpOwogfQogCiBpbmxpbmUgU2VnbWVudGVkU3RyaW5n
OjpTZWdtZW50ZWRTdHJpbmcoU3RyaW5nJiYgc3RyaW5nKQogICAgIDogbV9jdXJyZW50U3Vic3Ry
aW5nKFdURk1vdmUoc3RyaW5nKSkKIHsKLSAgICBpZiAobV9jdXJyZW50U3Vic3RyaW5nLmxlbmd0
aCkgeworICAgIGlmIChtX2N1cnJlbnRTdWJzdHJpbmcubGVuZ3RoKCkpIHsKICAgICAgICAgbV9j
dXJyZW50Q2hhcmFjdGVyID0gbV9jdXJyZW50U3Vic3RyaW5nLmN1cnJlbnRDaGFyYWN0ZXIoKTsK
ICAgICAgICAgdXBkYXRlQWR2YW5jZUZ1bmN0aW9uUG9pbnRlcnMoKTsKICAgICB9CkBAIC0xODgs
MTggKzIzNCwxMiBAQCBpbmxpbmUgU2VnbWVudGVkU3RyaW5nOjpTZWdtZW50ZWRTdHJpbmcoY29u
c3QgU3RyaW5nJiBzdHJpbmcpCiB7CiB9CiAKLUFMV0FZU19JTkxJTkUgdm9pZCBTZWdtZW50ZWRT
dHJpbmc6OmRlY3JlbWVudEFuZENoZWNrTGVuZ3RoKCkKLXsKLSAgICBBU1NFUlQobV9jdXJyZW50
U3Vic3RyaW5nLmxlbmd0aCA+IDEpOwotICAgIGlmIChVTkxJS0VMWSgtLW1fY3VycmVudFN1YnN0
cmluZy5sZW5ndGggPT0gMSkpCi0gICAgICAgIHVwZGF0ZUFkdmFuY2VGdW5jdGlvblBvaW50ZXJz
Rm9yU2luZ2xlQ2hhcmFjdGVyU3Vic3RyaW5nKCk7Ci19Ci0KIEFMV0FZU19JTkxJTkUgdm9pZCBT
ZWdtZW50ZWRTdHJpbmc6OmFkdmFuY2VXaXRob3V0VXBkYXRpbmdMaW5lTnVtYmVyKCkKIHsKICAg
ICBpZiAoTElLRUxZKG1fZmFzdFBhdGhGbGFncyAmIFVzZThCaXRBZHZhbmNlKSkgewotICAgICAg
ICBtX2N1cnJlbnRDaGFyYWN0ZXIgPSAqKyttX2N1cnJlbnRTdWJzdHJpbmcuY3VycmVudENoYXJh
Y3Rlcjg7Ci0gICAgICAgIGRlY3JlbWVudEFuZENoZWNrTGVuZ3RoKCk7CisgICAgICAgIG1fY3Vy
cmVudENoYXJhY3RlciA9ICorK21fY3VycmVudFN1YnN0cmluZy5jdXJyZW50Q2hhcmFjdGVyOCgp
OworICAgICAgICBpZiAoVU5MSUtFTFkobV9jdXJyZW50U3Vic3RyaW5nLmhhc09uZUNoYXJhY3Rl
ckxlZnQoKSkpCisgICAgICAgICAgICB1cGRhdGVBZHZhbmNlRnVuY3Rpb25Qb2ludGVyc0ZvclNp
bmdsZUNoYXJhY3RlclN1YnN0cmluZygpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0y
MjEsMTAgKzI2MSwxMCBAQCBpbmxpbmUgdm9pZCBTZWdtZW50ZWRTdHJpbmc6OnByb2Nlc3NQb3Nz
aWJsZU5ld2xpbmUoKQogaW5saW5lIHZvaWQgU2VnbWVudGVkU3RyaW5nOjphZHZhbmNlKCkKIHsK
ICAgICBpZiAoTElLRUxZKG1fZmFzdFBhdGhGbGFncyAmIFVzZThCaXRBZHZhbmNlKSkgewotICAg
ICAgICBBU1NFUlQobV9jdXJyZW50U3Vic3RyaW5nLmxlbmd0aCA+IDEpOworICAgICAgICBBU1NF
UlQobV9jdXJyZW50U3Vic3RyaW5nLmNhbkFkdmFuY2UoKSk7CiAgICAgICAgIGJvb2wgbGFzdENo
YXJhY3Rlcldhc05ld2xpbmUgPSBtX2N1cnJlbnRDaGFyYWN0ZXIgPT0gJ1xuJzsKLSAgICAgICAg
bV9jdXJyZW50Q2hhcmFjdGVyID0gKisrbV9jdXJyZW50U3Vic3RyaW5nLmN1cnJlbnRDaGFyYWN0
ZXI4OwotICAgICAgICBib29sIGhhdmVPbmVDaGFyYWN0ZXJMZWZ0ID0gLS1tX2N1cnJlbnRTdWJz
dHJpbmcubGVuZ3RoID09IDE7CisgICAgICAgIG1fY3VycmVudENoYXJhY3RlciA9ICorK21fY3Vy
cmVudFN1YnN0cmluZy5jdXJyZW50Q2hhcmFjdGVyOCgpOworICAgICAgICBib29sIGhhdmVPbmVD
aGFyYWN0ZXJMZWZ0ID0gbV9jdXJyZW50U3Vic3RyaW5nLmhhc09uZUNoYXJhY3RlckxlZnQoKTsK
ICAgICAgICAgaWYgKExJS0VMWSghKGxhc3RDaGFyYWN0ZXJXYXNOZXdsaW5lIHwgaGF2ZU9uZUNo
YXJhY3RlckxlZnQpKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKGxhc3RDaGFy
YWN0ZXJXYXNOZXdsaW5lICYgISEobV9mYXN0UGF0aEZsYWdzICYgVXNlOEJpdEFkdmFuY2VBbmRV
cGRhdGVMaW5lTnVtYmVycykpCkBAIC0yNDYsMTEgKzI4NiwxNSBAQCBBTFdBWVNfSU5MSU5FIHZv
aWQgU2VnbWVudGVkU3RyaW5nOjphZHZhbmNlUGFzdE5vbk5ld2xpbmUoKQogaW5saW5lIHZvaWQg
U2VnbWVudGVkU3RyaW5nOjphZHZhbmNlUGFzdE5ld2xpbmUoKQogewogICAgIEFTU0VSVChtX2N1
cnJlbnRDaGFyYWN0ZXIgPT0gJ1xuJyk7Ci0gICAgaWYgKG1fY3VycmVudFN1YnN0cmluZy5sZW5n
dGggPiAxKSB7Ci0gICAgICAgIGlmIChtX2N1cnJlbnRTdWJzdHJpbmcuZG9Ob3RFeGNsdWRlTGlu
ZU51bWJlcnMpCisgICAgaWYgKExJS0VMWShtX2N1cnJlbnRTdWJzdHJpbmcuY2FuQWR2YW5jZSgp
KSkgeworICAgICAgICBpZiAobV9jdXJyZW50U3Vic3RyaW5nLm1fZG9Ob3RFeGNsdWRlTGluZU51
bWJlcnMpCiAgICAgICAgICAgICBzdGFydE5ld0xpbmUoKTsKLSAgICAgICAgbV9jdXJyZW50Q2hh
cmFjdGVyID0gbV9jdXJyZW50U3Vic3RyaW5nLmN1cnJlbnRDaGFyYWN0ZXJQcmVJbmNyZW1lbnQo
KTsKLSAgICAgICAgZGVjcmVtZW50QW5kQ2hlY2tMZW5ndGgoKTsKKyAgICAgICAgaWYgKG1fY3Vy
cmVudFN1YnN0cmluZy5tX2lzOEJpdCkKKyAgICAgICAgICAgIG1fY3VycmVudENoYXJhY3RlciA9
ICorK21fY3VycmVudFN1YnN0cmluZy5jdXJyZW50Q2hhcmFjdGVyOCgpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBtX2N1cnJlbnRDaGFyYWN0ZXIgPSAqKyttX2N1cnJlbnRTdWJzdHJpbmcu
Y3VycmVudENoYXJhY3RlcjE2KCk7CisgICAgICAgIGlmIChVTkxJS0VMWShtX2N1cnJlbnRTdWJz
dHJpbmcuaGFzT25lQ2hhcmFjdGVyTGVmdCgpKSkKKyAgICAgICAgICAgIHVwZGF0ZUFkdmFuY2VG
dW5jdGlvblBvaW50ZXJzRm9yU2luZ2xlQ2hhcmFjdGVyU3Vic3RyaW5nKCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTI3MiwyMyArMzE2LDIyIEBAIHRlbXBsYXRlPHVuc2lnbmVkIGxl
bmd0aEluY2x1ZGluZ1Rlcm1pbmF0b3IsIGJvb2wgbGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlPiBT
ZWdtCiAgICAgY29uc3RleHByIHVuc2lnbmVkIGxlbmd0aCA9IGxlbmd0aEluY2x1ZGluZ1Rlcm1p
bmF0b3IgLSAxOwogICAgIEFTU0VSVCghbGl0ZXJhbFtsZW5ndGhdKTsKICAgICBBU1NFUlQoIXN0
cmNocihsaXRlcmFsLCAnXG4nKSk7Ci0gICAgaWYgKGxlbmd0aCArIDEgPCBtX2N1cnJlbnRTdWJz
dHJpbmcubGVuZ3RoKSB7Ci0gICAgICAgIGlmIChtX2N1cnJlbnRTdWJzdHJpbmcuaXM4Qml0KSB7
CisgICAgaWYgKGxlbmd0aCArIDEgPCBtX2N1cnJlbnRTdWJzdHJpbmcubGVuZ3RoKCkpIHsKKyAg
ICAgICAgaWYgKG1fY3VycmVudFN1YnN0cmluZy5tX2lzOEJpdCkgewogICAgICAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgaWYg
KGNoYXJhY3Rlck1pc21hdGNoKG1fY3VycmVudFN1YnN0cmluZy5jdXJyZW50Q2hhcmFjdGVyOFtp
XSwgbGl0ZXJhbFtpXSwgbGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKSkKKyAgICAgICAgICAgICAg
ICBpZiAoY2hhcmFjdGVyTWlzbWF0Y2gobV9jdXJyZW50U3Vic3RyaW5nLmN1cnJlbnRDaGFyYWN0
ZXI4KClbaV0sIGxpdGVyYWxbaV0sIGxldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSkpCiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBEaWROb3RNYXRjaDsKICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIG1fY3VycmVudFN1YnN0cmluZy5jdXJyZW50Q2hhcmFjdGVyOCArPSBsZW5ndGg7Ci0gICAg
ICAgICAgICBtX2N1cnJlbnRDaGFyYWN0ZXIgPSAqbV9jdXJyZW50U3Vic3RyaW5nLmN1cnJlbnRD
aGFyYWN0ZXI4OworICAgICAgICAgICAgbV9jdXJyZW50U3Vic3RyaW5nLmN1cnJlbnRDaGFyYWN0
ZXI4KCkgKz0gbGVuZ3RoOworICAgICAgICAgICAgbV9jdXJyZW50Q2hhcmFjdGVyID0gKm1fY3Vy
cmVudFN1YnN0cmluZy5jdXJyZW50Q2hhcmFjdGVyOCgpOwogICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKGNoYXJhY3Rlck1pc21hdGNoKG1fY3VycmVudFN1YnN0cmluZy5jdXJyZW50
Q2hhcmFjdGVyMTZbaV0sIGxpdGVyYWxbaV0sIGxldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSkpCisg
ICAgICAgICAgICAgICAgaWYgKGNoYXJhY3Rlck1pc21hdGNoKG1fY3VycmVudFN1YnN0cmluZy5j
dXJyZW50Q2hhcmFjdGVyMTYoKVtpXSwgbGl0ZXJhbFtpXSwgbGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERpZE5vdE1hdGNoOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgbV9jdXJyZW50U3Vic3RyaW5nLmN1cnJlbnRDaGFyYWN0ZXIxNiAr
PSBsZW5ndGg7Ci0gICAgICAgICAgICBtX2N1cnJlbnRDaGFyYWN0ZXIgPSAqbV9jdXJyZW50U3Vi
c3RyaW5nLmN1cnJlbnRDaGFyYWN0ZXIxNjsKKyAgICAgICAgICAgIG1fY3VycmVudFN1YnN0cmlu
Zy5jdXJyZW50Q2hhcmFjdGVyMTYoKSArPSBsZW5ndGg7CisgICAgICAgICAgICBtX2N1cnJlbnRD
aGFyYWN0ZXIgPSAqbV9jdXJyZW50U3Vic3RyaW5nLmN1cnJlbnRDaGFyYWN0ZXIxNigpOwogICAg
ICAgICB9Ci0gICAgICAgIG1fY3VycmVudFN1YnN0cmluZy5sZW5ndGggLT0gbGVuZ3RoOwogICAg
ICAgICByZXR1cm4gRGlkTWF0Y2g7CiAgICAgfQogICAgIHJldHVybiBhZHZhbmNlUGFzdFNsb3dD
YXNlKGxpdGVyYWwsIGxldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSk7CkBAIC0yOTYsMjMgKzMzOSwy
MyBAQCB0ZW1wbGF0ZTx1bnNpZ25lZCBsZW5ndGhJbmNsdWRpbmdUZXJtaW5hdG9yLCBib29sIGxl
dHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZT4gU2VnbQogCiBpbmxpbmUgdm9pZCBTZWdtZW50ZWRTdHJp
bmc6OnVwZGF0ZUFkdmFuY2VGdW5jdGlvblBvaW50ZXJzKCkKIHsKLSAgICBpZiAobV9jdXJyZW50
U3Vic3RyaW5nLmxlbmd0aCA+IDEpIHsKLSAgICAgICAgaWYgKG1fY3VycmVudFN1YnN0cmluZy5p
czhCaXQpIHsKKyAgICBpZiAobV9jdXJyZW50U3Vic3RyaW5nLmNhbkFkdmFuY2UoKSkgeworICAg
ICAgICBpZiAobV9jdXJyZW50U3Vic3RyaW5nLm1faXM4Qml0KSB7CiAgICAgICAgICAgICBtX2Zh
c3RQYXRoRmxhZ3MgPSBVc2U4Qml0QWR2YW5jZTsKLSAgICAgICAgICAgIGlmIChtX2N1cnJlbnRT
dWJzdHJpbmcuZG9Ob3RFeGNsdWRlTGluZU51bWJlcnMpCisgICAgICAgICAgICBpZiAobV9jdXJy
ZW50U3Vic3RyaW5nLm1fZG9Ob3RFeGNsdWRlTGluZU51bWJlcnMpCiAgICAgICAgICAgICAgICAg
bV9mYXN0UGF0aEZsYWdzIHw9IFVzZThCaXRBZHZhbmNlQW5kVXBkYXRlTGluZU51bWJlcnM7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgbV9mYXN0UGF0aEZsYWdzID0g
Tm9GYXN0UGF0aDsKICAgICAgICAgbV9hZHZhbmNlV2l0aG91dFVwZGF0aW5nTGluZU51bWJlckZ1
bmN0aW9uID0gJlNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZVdpdGhvdXRVcGRhdGluZ0xpbmVOdW1i
ZXIxNjsKLSAgICAgICAgaWYgKG1fY3VycmVudFN1YnN0cmluZy5kb05vdEV4Y2x1ZGVMaW5lTnVt
YmVycykKKyAgICAgICAgaWYgKG1fY3VycmVudFN1YnN0cmluZy5tX2RvTm90RXhjbHVkZUxpbmVO
dW1iZXJzKQogICAgICAgICAgICAgbV9hZHZhbmNlQW5kVXBkYXRlTGluZU51bWJlckZ1bmN0aW9u
ID0gJlNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZUFuZFVwZGF0ZUxpbmVOdW1iZXIxNjsKICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgbV9hZHZhbmNlQW5kVXBkYXRlTGluZU51bWJlckZ1bmN0aW9u
ID0gJlNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZVdpdGhvdXRVcGRhdGluZ0xpbmVOdW1iZXIxNjsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghbV9jdXJyZW50U3Vic3RyaW5nLmxl
bmd0aCkgeworICAgIGlmICghbV9jdXJyZW50U3Vic3RyaW5nLmxlbmd0aCgpKSB7CiAgICAgICAg
IHVwZGF0ZUFkdmFuY2VGdW5jdGlvblBvaW50ZXJzRm9yRW1wdHlTdHJpbmcoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445311</attachid>
            <date>2021-11-29 11:40:33 -0800</date>
            <delta_ts>2021-11-29 12:47:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228199-20211129144032.patch</filename>
            <type>text/plain</type>
            <size>20728</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MDQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmYyMjc3MDU0MjM5YWE0
ZjZkYmE3ZGM5NmVjNGU5OTY0YzIyNzExOS4uNjU1MjhjOTRmZGRkNjFlM2M3NWQzNjNiMTAyYWJi
NzJjNTVjZDRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIxLTExLTI5ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2ltcGxpZnkgU2VnbWVu
dGVkU3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjgxOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHBsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNlZ21lbnRlZFN0cmluZzo6U3Vic3RyaW5nOjphcHBlbmRUbyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6Omxlbmd0aCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWdtZW50ZWRTdHJpbmc6OnNldEV4Y2x1ZGVMaW5lTnVtYmVycyk6CisgICAgICAgIChXZWJD
b3JlOjpTZWdtZW50ZWRTdHJpbmc6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRl
ZFN0cmluZzo6YXBwZW5kU3Vic3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0
cmluZzo6cHVzaEJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U2VnbWVudGVkU3RyaW5nOjphZHZh
bmNlV2l0aG91dFVwZGF0aW5nTGluZU51bWJlcjE2KToKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21l
bnRlZFN0cmluZzo6YWR2YW5jZUFuZFVwZGF0ZUxpbmVOdW1iZXIxNik6CisgICAgICAgIChXZWJD
b3JlOjpTZWdtZW50ZWRTdHJpbmc6OmFkdmFuY2VQYXN0U2luZ2xlQ2hhcmFjdGVyU3Vic3RyaW5n
V2l0aG91dFVwZGF0aW5nTGluZU51bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRT
dHJpbmc6OmFkdmFuY2VQYXN0U2luZ2xlQ2hhcmFjdGVyU3Vic3RyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZUVtcHR5KToKKyAgICAgICAgKFdlYkNvcmU6
OlNlZ21lbnRlZFN0cmluZzo6dXBkYXRlQWR2YW5jZUZ1bmN0aW9uUG9pbnRlcnNGb3JTaW5nbGVD
aGFyYWN0ZXJTdWJzdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2VnbWVudGVkU3RyaW5nOjp1
cGRhdGVBZHZhbmNlRnVuY3Rpb25Qb2ludGVyc0ZvckVtcHR5U3RyaW5nKToKKyAgICAgICAgKiBw
bGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5oOgorICAgICAgICAoV2ViQ29yZTo6U2VnbWVu
dGVkU3RyaW5nOjppc0VtcHR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0
cmluZzo6U3Vic3RyaW5nOjpsZW5ndGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VnbWVu
dGVkU3RyaW5nOjpTdWJzdHJpbmc6OmNhbkFkdmFuY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VnbWVudGVkU3RyaW5nOjpTdWJzdHJpbmc6OmNvbnN1bWVBbGwpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VnbWVudGVkU3RyaW5nOjpTdWJzdHJpbmc6Omhhc09uZUNoYXJhY3RlckxlZnQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VnbWVudGVkU3RyaW5nOjpTdWJzdHJpbmc6OmN1cnJl
bnRDaGFyYWN0ZXI4KToKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6U3Vic3Ry
aW5nOjpjdXJyZW50Q2hhcmFjdGVyOCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWdtZW50
ZWRTdHJpbmc6OlN1YnN0cmluZzo6Y3VycmVudENoYXJhY3RlcjE2KToKKyAgICAgICAgKFdlYkNv
cmU6OlNlZ21lbnRlZFN0cmluZzo6U3Vic3RyaW5nOjpjdXJyZW50Q2hhcmFjdGVyMTYgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U2VnbWVudGVkU3RyaW5nOjpTdWJzdHJpbmc6OlN1YnN0cmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6OlN1YnN0cmluZzo6bnVtYmVy
T2ZDaGFyYWN0ZXJzQ29uc3VtZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VnbWVudGVk
U3RyaW5nOjpTdWJzdHJpbmc6OmN1cnJlbnRDaGFyYWN0ZXIgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VnbWVudGVkU3RyaW5nOjpTZWdtZW50ZWRTdHJpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VnbWVudGVkU3RyaW5nOjphZHZhbmNlV2l0aG91dFVwZGF0aW5nTGluZU51bWJlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6OmFkdmFuY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VnbWVudGVkU3RyaW5nOjphZHZhbmNlUGFzdE5ld2xpbmUpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VnbWVudGVkU3RyaW5nOjphZHZhbmNlUGFzdCk6CisgICAgICAgIChXZWJDb3JlOjpT
ZWdtZW50ZWRTdHJpbmc6OnVwZGF0ZUFkdmFuY2VGdW5jdGlvblBvaW50ZXJzKToKKyAgICAgICAg
KFdlYkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6U3Vic3RyaW5nOjpjdXJyZW50Q2hhcmFjdGVyUHJl
SW5jcmVtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6
ZGVjcmVtZW50QW5kQ2hlY2tMZW5ndGgpOiBEZWxldGVkLgorCiAyMDIxLTExLTE4ICBCZW4gTmhh
bSAgPG5oYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBvbnB1c2hzdWJz
Y3JpcHRpb25jaGFuZ2UgZXZlbnQgaGFuZGxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwCmluZGV4IGMwODNlYTdhZjc0YzI2YzNlNDE1Y2U0
NTg2MGFiN2U4ZDFkZGU4OWUuLjhlNzdiNWFhOTRlYWJlZjMyNjlmYjA5ODg5Nzg3MWQ3MTgwMDU1
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3Ry
aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmlu
Zy5jcHAKQEAgLTI1LDkgKzI1LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY29uc3Qg
Y2hhciogY29uc3QgZW1wdHlTdHJpbmdQb2ludGVyID0gIiI7CisKIGlubGluZSB2b2lkIFNlZ21l
bnRlZFN0cmluZzo6U3Vic3RyaW5nOjphcHBlbmRUbyhTdHJpbmdCdWlsZGVyJiBidWlsZGVyKSBj
b25zdAogewotICAgIGJ1aWxkZXIuYXBwZW5kU3Vic3RyaW5nKHN0cmluZywgc3RyaW5nLmxlbmd0
aCgpIC0gbGVuZ3RoLCBsZW5ndGgpOworICAgIGJ1aWxkZXIuYXBwZW5kU3Vic3RyaW5nKG1fc3Ry
aW5nLCBtX3N0cmluZy5sZW5ndGgoKSAtIGxlbmd0aCgpLCBsZW5ndGgoKSk7CiB9CiAKIFNlZ21l
bnRlZFN0cmluZyYgU2VnbWVudGVkU3RyaW5nOjpvcGVyYXRvcj0oU2VnbWVudGVkU3RyaW5nJiYg
b3RoZXIpCkBAIC01NCwyNSArNTYsMjUgQEAgU2VnbWVudGVkU3RyaW5nJiBTZWdtZW50ZWRTdHJp
bmc6Om9wZXJhdG9yPShTZWdtZW50ZWRTdHJpbmcmJiBvdGhlcikKIAogdW5zaWduZWQgU2VnbWVu
dGVkU3RyaW5nOjpsZW5ndGgoKSBjb25zdAogewotICAgIHVuc2lnbmVkIGxlbmd0aCA9IG1fY3Vy
cmVudFN1YnN0cmluZy5sZW5ndGg7CisgICAgdW5zaWduZWQgbGVuZ3RoID0gbV9jdXJyZW50U3Vi
c3RyaW5nLmxlbmd0aCgpOwogICAgIGZvciAoYXV0byYgc3Vic3RyaW5nIDogbV9vdGhlclN1YnN0
cmluZ3MpCi0gICAgICAgIGxlbmd0aCArPSBzdWJzdHJpbmcubGVuZ3RoOworICAgICAgICBsZW5n
dGggKz0gc3Vic3RyaW5nLmxlbmd0aCgpOwogICAgIHJldHVybiBsZW5ndGg7CiB9CiAKIHZvaWQg
U2VnbWVudGVkU3RyaW5nOjpzZXRFeGNsdWRlTGluZU51bWJlcnMoKQogewotICAgIGlmICghbV9j
dXJyZW50U3Vic3RyaW5nLmRvTm90RXhjbHVkZUxpbmVOdW1iZXJzKQorICAgIGlmICghbV9jdXJy
ZW50U3Vic3RyaW5nLm1fZG9Ob3RFeGNsdWRlTGluZU51bWJlcnMpCiAgICAgICAgIHJldHVybjsK
LSAgICBtX2N1cnJlbnRTdWJzdHJpbmcuZG9Ob3RFeGNsdWRlTGluZU51bWJlcnMgPSBmYWxzZTsK
KyAgICBtX2N1cnJlbnRTdWJzdHJpbmcubV9kb05vdEV4Y2x1ZGVMaW5lTnVtYmVycyA9IGZhbHNl
OwogICAgIGZvciAoYXV0byYgc3Vic3RyaW5nIDogbV9vdGhlclN1YnN0cmluZ3MpCi0gICAgICAg
IHN1YnN0cmluZy5kb05vdEV4Y2x1ZGVMaW5lTnVtYmVycyA9IGZhbHNlOworICAgICAgICBzdWJz
dHJpbmcubV9kb05vdEV4Y2x1ZGVMaW5lTnVtYmVycyA9IGZhbHNlOwogICAgIHVwZGF0ZUFkdmFu
Y2VGdW5jdGlvblBvaW50ZXJzKCk7CiB9CiAKIHZvaWQgU2VnbWVudGVkU3RyaW5nOjpjbGVhcigp
CiB7Ci0gICAgbV9jdXJyZW50U3Vic3RyaW5nLmxlbmd0aCA9IDA7CisgICAgbV9jdXJyZW50U3Vi
c3RyaW5nLmNvbnN1bWVBbGwoKTsKICAgICBtX290aGVyU3Vic3RyaW5ncy5jbGVhcigpOwogCiAg
ICAgbV9pc0Nsb3NlZCA9IGZhbHNlOwpAQCAtODksOSArOTEsOSBAQCB2b2lkIFNlZ21lbnRlZFN0
cmluZzo6Y2xlYXIoKQogaW5saW5lIHZvaWQgU2VnbWVudGVkU3RyaW5nOjphcHBlbmRTdWJzdHJp
bmcoU3Vic3RyaW5nJiYgc3Vic3RyaW5nKQogewogICAgIEFTU0VSVCghbV9pc0Nsb3NlZCk7Ci0g
ICAgaWYgKCFzdWJzdHJpbmcubGVuZ3RoKQorICAgIGlmICghc3Vic3RyaW5nLmxlbmd0aCgpKQog
ICAgICAgICByZXR1cm47Ci0gICAgaWYgKG1fY3VycmVudFN1YnN0cmluZy5sZW5ndGgpCisgICAg
aWYgKG1fY3VycmVudFN1YnN0cmluZy5sZW5ndGgoKSkKICAgICAgICAgbV9vdGhlclN1YnN0cmlu
Z3MuYXBwZW5kKFdURk1vdmUoc3Vic3RyaW5nKSk7CiAgICAgZWxzZSB7CiAgICAgICAgIG1fbnVt
YmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWRQcmlvclRvQ3VycmVudFN1YnN0cmluZyArPSBtX2N1cnJl
bnRTdWJzdHJpbmcubnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWQoKTsKQEAgLTExNSwxMCArMTE3
LDEwIEBAIHZvaWQgU2VnbWVudGVkU3RyaW5nOjpwdXNoQmFjayhTdHJpbmcmJiBzdHJpbmcpCiAg
ICAgQVNTRVJUKHN0cmluZy5sZW5ndGgoKSA8PSBudW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZCgp
KTsKIAogICAgIG1fbnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWRQcmlvclRvQ3VycmVudFN1YnN0
cmluZyArPSBtX2N1cnJlbnRTdWJzdHJpbmcubnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWQoKTsK
LSAgICBpZiAobV9jdXJyZW50U3Vic3RyaW5nLmxlbmd0aCkKKyAgICBpZiAobV9jdXJyZW50U3Vi
c3RyaW5nLmxlbmd0aCgpKQogICAgICAgICBtX290aGVyU3Vic3RyaW5ncy5wcmVwZW5kKFdURk1v
dmUobV9jdXJyZW50U3Vic3RyaW5nKSk7CiAgICAgbV9jdXJyZW50U3Vic3RyaW5nID0gV1RGTW92
ZShzdHJpbmcpOwotICAgIG1fbnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWRQcmlvclRvQ3VycmVu
dFN1YnN0cmluZyAtPSBtX2N1cnJlbnRTdWJzdHJpbmcubGVuZ3RoOworICAgIG1fbnVtYmVyT2ZD
aGFyYWN0ZXJzQ29uc3VtZWRQcmlvclRvQ3VycmVudFN1YnN0cmluZyAtPSBtX2N1cnJlbnRTdWJz
dHJpbmcubGVuZ3RoKCk7CiAgICAgbV9jdXJyZW50Q2hhcmFjdGVyID0gbV9jdXJyZW50U3Vic3Ry
aW5nLmN1cnJlbnRDaGFyYWN0ZXIoKTsKICAgICB1cGRhdGVBZHZhbmNlRnVuY3Rpb25Qb2ludGVy
cygpOwogfQpAQCAtMTY0LDIzICsxNjYsMjUgQEAgU3RyaW5nIFNlZ21lbnRlZFN0cmluZzo6dG9T
dHJpbmcoKSBjb25zdAogCiB2b2lkIFNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZVdpdGhvdXRVcGRh
dGluZ0xpbmVOdW1iZXIxNigpCiB7Ci0gICAgbV9jdXJyZW50Q2hhcmFjdGVyID0gKisrbV9jdXJy
ZW50U3Vic3RyaW5nLmN1cnJlbnRDaGFyYWN0ZXIxNjsKLSAgICBkZWNyZW1lbnRBbmRDaGVja0xl
bmd0aCgpOworICAgIG1fY3VycmVudENoYXJhY3RlciA9ICorK21fY3VycmVudFN1YnN0cmluZy5j
dXJyZW50Q2hhcmFjdGVyMTYoKTsKKyAgICBpZiAoVU5MSUtFTFkobV9jdXJyZW50U3Vic3RyaW5n
Lmhhc09uZUNoYXJhY3RlckxlZnQoKSkpCisgICAgICAgIHVwZGF0ZUFkdmFuY2VGdW5jdGlvblBv
aW50ZXJzRm9yU2luZ2xlQ2hhcmFjdGVyU3Vic3RyaW5nKCk7CiB9CiAKIHZvaWQgU2VnbWVudGVk
U3RyaW5nOjphZHZhbmNlQW5kVXBkYXRlTGluZU51bWJlcjE2KCkKIHsKLSAgICBBU1NFUlQobV9j
dXJyZW50U3Vic3RyaW5nLmRvTm90RXhjbHVkZUxpbmVOdW1iZXJzKTsKKyAgICBBU1NFUlQobV9j
dXJyZW50U3Vic3RyaW5nLm1fZG9Ob3RFeGNsdWRlTGluZU51bWJlcnMpOwogICAgIHByb2Nlc3NQ
b3NzaWJsZU5ld2xpbmUoKTsKLSAgICBtX2N1cnJlbnRDaGFyYWN0ZXIgPSAqKyttX2N1cnJlbnRT
dWJzdHJpbmcuY3VycmVudENoYXJhY3RlcjE2OwotICAgIGRlY3JlbWVudEFuZENoZWNrTGVuZ3Ro
KCk7CisgICAgbV9jdXJyZW50Q2hhcmFjdGVyID0gKisrbV9jdXJyZW50U3Vic3RyaW5nLmN1cnJl
bnRDaGFyYWN0ZXIxNigpOworICAgIGlmIChVTkxJS0VMWShtX2N1cnJlbnRTdWJzdHJpbmcuaGFz
T25lQ2hhcmFjdGVyTGVmdCgpKSkKKyAgICAgICAgdXBkYXRlQWR2YW5jZUZ1bmN0aW9uUG9pbnRl
cnNGb3JTaW5nbGVDaGFyYWN0ZXJTdWJzdHJpbmcoKTsKIH0KIAogaW5saW5lIHZvaWQgU2VnbWVu
dGVkU3RyaW5nOjphZHZhbmNlUGFzdFNpbmdsZUNoYXJhY3RlclN1YnN0cmluZ1dpdGhvdXRVcGRh
dGluZ0xpbmVOdW1iZXIoKQogewotICAgIEFTU0VSVChtX2N1cnJlbnRTdWJzdHJpbmcubGVuZ3Ro
ID09IDEpOworICAgIEFTU0VSVChtX2N1cnJlbnRTdWJzdHJpbmcuaGFzT25lQ2hhcmFjdGVyTGVm
dCgpKTsKICAgICBpZiAobV9vdGhlclN1YnN0cmluZ3MuaXNFbXB0eSgpKSB7Ci0gICAgICAgIG1f
Y3VycmVudFN1YnN0cmluZy5sZW5ndGggPSAwOworICAgICAgICBtX2N1cnJlbnRTdWJzdHJpbmcu
Y29uc3VtZUFsbCgpOwogICAgICAgICBtX2N1cnJlbnRDaGFyYWN0ZXIgPSAwOwogICAgICAgICB1
cGRhdGVBZHZhbmNlRnVuY3Rpb25Qb2ludGVyc0ZvckVtcHR5U3RyaW5nKCk7CiAgICAgICAgIHJl
dHVybjsKQEAgLTE5NiwyNSArMjAwLDI1IEBAIGlubGluZSB2b2lkIFNlZ21lbnRlZFN0cmluZzo6
YWR2YW5jZVBhc3RTaW5nbGVDaGFyYWN0ZXJTdWJzdHJpbmdXaXRob3V0VXBkYXRpbmdMCiAKIHZv
aWQgU2VnbWVudGVkU3RyaW5nOjphZHZhbmNlUGFzdFNpbmdsZUNoYXJhY3RlclN1YnN0cmluZygp
CiB7Ci0gICAgQVNTRVJUKG1fY3VycmVudFN1YnN0cmluZy5sZW5ndGggPT0gMSk7Ci0gICAgQVNT
RVJUKG1fY3VycmVudFN1YnN0cmluZy5kb05vdEV4Y2x1ZGVMaW5lTnVtYmVycyk7CisgICAgQVNT
RVJUKG1fY3VycmVudFN1YnN0cmluZy5oYXNPbmVDaGFyYWN0ZXJMZWZ0KCkpOworICAgIEFTU0VS
VChtX2N1cnJlbnRTdWJzdHJpbmcubV9kb05vdEV4Y2x1ZGVMaW5lTnVtYmVycyk7CiAgICAgcHJv
Y2Vzc1Bvc3NpYmxlTmV3bGluZSgpOwogICAgIGFkdmFuY2VQYXN0U2luZ2xlQ2hhcmFjdGVyU3Vi
c3RyaW5nV2l0aG91dFVwZGF0aW5nTGluZU51bWJlcigpOwogfQogCiB2b2lkIFNlZ21lbnRlZFN0
cmluZzo6YWR2YW5jZUVtcHR5KCkKIHsKLSAgICBBU1NFUlQoIW1fY3VycmVudFN1YnN0cmluZy5s
ZW5ndGgpOworICAgIEFTU0VSVCghbV9jdXJyZW50U3Vic3RyaW5nLmxlbmd0aCgpKTsKICAgICBB
U1NFUlQobV9vdGhlclN1YnN0cmluZ3MuaXNFbXB0eSgpKTsKICAgICBBU1NFUlQoIW1fY3VycmVu
dENoYXJhY3Rlcik7CiB9CiAKIHZvaWQgU2VnbWVudGVkU3RyaW5nOjp1cGRhdGVBZHZhbmNlRnVu
Y3Rpb25Qb2ludGVyc0ZvclNpbmdsZUNoYXJhY3RlclN1YnN0cmluZygpCiB7Ci0gICAgQVNTRVJU
KG1fY3VycmVudFN1YnN0cmluZy5sZW5ndGggPT0gMSk7CisgICAgQVNTRVJUKG1fY3VycmVudFN1
YnN0cmluZy5oYXNPbmVDaGFyYWN0ZXJMZWZ0KCkpOwogICAgIG1fZmFzdFBhdGhGbGFncyA9IE5v
RmFzdFBhdGg7CiAgICAgbV9hZHZhbmNlV2l0aG91dFVwZGF0aW5nTGluZU51bWJlckZ1bmN0aW9u
ID0gJlNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZVBhc3RTaW5nbGVDaGFyYWN0ZXJTdWJzdHJpbmdX
aXRob3V0VXBkYXRpbmdMaW5lTnVtYmVyOwotICAgIGlmIChtX2N1cnJlbnRTdWJzdHJpbmcuZG9O
b3RFeGNsdWRlTGluZU51bWJlcnMpCisgICAgaWYgKG1fY3VycmVudFN1YnN0cmluZy5tX2RvTm90
RXhjbHVkZUxpbmVOdW1iZXJzKQogICAgICAgICBtX2FkdmFuY2VBbmRVcGRhdGVMaW5lTnVtYmVy
RnVuY3Rpb24gPSAmU2VnbWVudGVkU3RyaW5nOjphZHZhbmNlUGFzdFNpbmdsZUNoYXJhY3RlclN1
YnN0cmluZzsKICAgICBlbHNlCiAgICAgICAgIG1fYWR2YW5jZUFuZFVwZGF0ZUxpbmVOdW1iZXJG
dW5jdGlvbiA9ICZTZWdtZW50ZWRTdHJpbmc6OmFkdmFuY2VQYXN0U2luZ2xlQ2hhcmFjdGVyU3Vi
c3RyaW5nV2l0aG91dFVwZGF0aW5nTGluZU51bWJlcjsKQEAgLTI2MCw3ICsyNjQsNyBAQCBTZWdt
ZW50ZWRTdHJpbmc6OkFkdmFuY2VQYXN0UmVzdWx0IFNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZVBh
c3RTbG93Q2FzZShjb25zdCBjaAogCiB2b2lkIFNlZ21lbnRlZFN0cmluZzo6dXBkYXRlQWR2YW5j
ZUZ1bmN0aW9uUG9pbnRlcnNGb3JFbXB0eVN0cmluZygpCiB7Ci0gICAgQVNTRVJUKCFtX2N1cnJl
bnRTdWJzdHJpbmcubGVuZ3RoKTsKKyAgICBBU1NFUlQoIW1fY3VycmVudFN1YnN0cmluZy5sZW5n
dGgoKSk7CiAgICAgQVNTRVJUKG1fb3RoZXJTdWJzdHJpbmdzLmlzRW1wdHkoKSk7CiAgICAgQVNT
RVJUKCFtX2N1cnJlbnRDaGFyYWN0ZXIpOwogICAgIG1fZmFzdFBhdGhGbGFncyA9IE5vRmFzdFBh
dGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0
cmluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuaApp
bmRleCBmZTdmMTkxNDAzN2QzMzViZjk4ZTQ4ZTVkNmY5MzE5MzA5YzI2MGM3Li42ZTI4ZjkzMGQ0
ZTI5ZTEzYThlNTdlYzExMGY1MTA3NzJlOTE1ZTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmgKQEAgLTI3LDYgKzI3LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCBzdGFydCB3aXRoICJrIi4KIC8v
IEZJWE1FOiBUaGlzIGlzIGEgc2hhcmVkIHRva2VuaXplciBjb25jZXB0LCBub3QgYSBTZWdtZW50
ZWRTdHJpbmcgY29uY2VwdCwgYnV0IHRoaXMgaXMgdGhlIG9ubHkgY29tbW9uIGhlYWRlciBmb3Ig
bm93LgogY29uc3RleHByIExDaGFyIGtFbmRPZkZpbGVNYXJrZXIgPSAwOworZXh0ZXJuIGNvbnN0
IGNoYXIqIGNvbnN0IGVtcHR5U3RyaW5nUG9pbnRlcjsKIAogY2xhc3MgU2VnbWVudGVkU3RyaW5n
IHsKIHB1YmxpYzoKQEAgLTUzLDcgKzU0LDcgQEAgY2xhc3MgU2VnbWVudGVkU3RyaW5nIHsKIAog
ICAgIHZvaWQgc2V0RXhjbHVkZUxpbmVOdW1iZXJzKCk7CiAKLSAgICBib29sIGlzRW1wdHkoKSBj
b25zdCB7IHJldHVybiAhbV9jdXJyZW50U3Vic3RyaW5nLmxlbmd0aDsgfQorICAgIGJvb2wgaXNF
bXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2N1cnJlbnRTdWJzdHJpbmcubGVuZ3RoKCk7IH0KICAg
ICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKIAogICAgIGJvb2wgaXNDbG9zZWQoKSBjb25zdCB7
IHJldHVybiBtX2lzQ2xvc2VkOyB9CkBAIC04NSwxOSArODYsNjAgQEAgY2xhc3MgU2VnbWVudGVk
U3RyaW5nIHsKICAgICAgICAgU3Vic3RyaW5nKFN0cmluZyYmKTsKIAogICAgICAgICBVQ2hhciBj
dXJyZW50Q2hhcmFjdGVyKCkgY29uc3Q7Ci0gICAgICAgIFVDaGFyIGN1cnJlbnRDaGFyYWN0ZXJQ
cmVJbmNyZW1lbnQoKTsKIAogICAgICAgICB1bnNpZ25lZCBudW1iZXJPZkNoYXJhY3RlcnNDb25z
dW1lZCgpIGNvbnN0OwogICAgICAgICB2b2lkIGFwcGVuZFRvKFN0cmluZ0J1aWxkZXImKSBjb25z
dDsKIAotICAgICAgICBTdHJpbmcgc3RyaW5nOwotICAgICAgICB1bnNpZ25lZCBsZW5ndGggeyAw
IH07Ci0gICAgICAgIGJvb2wgaXM4Qml0OwotICAgICAgICB1bmlvbiB7Ci0gICAgICAgICAgICBj
b25zdCBMQ2hhciogY3VycmVudENoYXJhY3Rlcjg7Ci0gICAgICAgICAgICBjb25zdCBVQ2hhciog
Y3VycmVudENoYXJhY3RlcjE2OwotICAgICAgICB9OwotICAgICAgICBib29sIGRvTm90RXhjbHVk
ZUxpbmVOdW1iZXJzIHsgdHJ1ZSB9OworICAgICAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdAor
ICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gKG1fbGFzdEJlZm9yZU9uZUN1cnNvciArICgx
VSA8PCAhbV9pczhCaXQpIC0gbV9jdXJyZW50Q2hhcmFjdGVyQ3Vyc29yKSA+PiAhbV9pczhCaXQ7
CisgICAgICAgIH0KKworICAgICAgICAvLyBFcXVpdmFsZW50IHRvIGBsZW5ndGgoKSA+IDFgLgor
ICAgICAgICBib29sIGNhbkFkdmFuY2UoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBy
ZXR1cm4gbV9jdXJyZW50Q2hhcmFjdGVyQ3Vyc29yIDwgbV9sYXN0QmVmb3JlT25lQ3Vyc29yOwor
ICAgICAgICB9CisKKyAgICAgICAgdm9pZCBjb25zdW1lQWxsKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgbV9jdXJyZW50Q2hhcmFjdGVyQ3Vyc29yID0gMDsKKyAgICAgICAgICAgIG1fbGFzdEJl
Zm9yZU9uZUN1cnNvciA9IG1fY3VycmVudENoYXJhY3RlckN1cnNvciAtICgxVSA8PCAhbV9pczhC
aXQpOworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBoYXNPbmVDaGFyYWN0ZXJMZWZ0KCkgY29u
c3QgeyByZXR1cm4gbV9jdXJyZW50Q2hhcmFjdGVyQ3Vyc29yID09IG1fbGFzdEJlZm9yZU9uZUN1
cnNvcjsgfQorCisgICAgICAgIHVzaW5nIENvbnN0TENoYXJQb2ludGVyID0gY29uc3QgTENoYXIq
OworICAgICAgICB1c2luZyBDb25zdFVDaGFyUG9pbnRlciA9IGNvbnN0IFVDaGFyKjsKKworICAg
ICAgICBDb25zdExDaGFyUG9pbnRlciYgY3VycmVudENoYXJhY3RlcjgoKQorICAgICAgICB7Cisg
ICAgICAgICAgICBBU1NFUlQobV9pczhCaXQpOworICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJw
cmV0X2Nhc3Q8Q29uc3RMQ2hhclBvaW50ZXImPihtX2N1cnJlbnRDaGFyYWN0ZXJDdXJzb3IpOwor
ICAgICAgICB9CisgICAgICAgIGNvbnN0IENvbnN0TENoYXJQb2ludGVyJiBjdXJyZW50Q2hhcmFj
dGVyOCgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChtX2lzOEJpdCk7Cisg
ICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBDb25zdExDaGFyUG9pbnRl
ciY+KG1fY3VycmVudENoYXJhY3RlckN1cnNvcik7CisgICAgICAgIH0KKworICAgICAgICBDb25z
dFVDaGFyUG9pbnRlciYgY3VycmVudENoYXJhY3RlcjE2KCkKKyAgICAgICAgeworICAgICAgICAg
ICAgQVNTRVJUKCFtX2lzOEJpdCk7CisgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2Fz
dDxDb25zdFVDaGFyUG9pbnRlciY+KG1fY3VycmVudENoYXJhY3RlckN1cnNvcik7CisgICAgICAg
IH0KKworICAgICAgICBjb25zdCBDb25zdFVDaGFyUG9pbnRlciYgY3VycmVudENoYXJhY3RlcjE2
KCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKCFtX2lzOEJpdCk7CisgICAg
ICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBDb25zdFVDaGFyUG9pbnRlciY+
KG1fY3VycmVudENoYXJhY3RlckN1cnNvcik7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcg
bV9zdHJpbmc7CisgICAgICAgIGJvb2wgbV9pczhCaXQgeyB0cnVlIH07CisgICAgICAgIGJvb2wg
bV9kb05vdEV4Y2x1ZGVMaW5lTnVtYmVycyB7IHRydWUgfTsKKyAgICAgICAgdWludHB0cl90IG1f
Y3VycmVudENoYXJhY3RlckN1cnNvciB7IGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KGVtcHR5U3Ry
aW5nUG9pbnRlcikgfTsKKyAgICAgICAgdWludHB0cl90IG1fbGFzdEJlZm9yZU9uZUN1cnNvciB7
IG1fY3VycmVudENoYXJhY3RlckN1cnNvciAtIDEgfTsKICAgICB9OwogCiAgICAgZW51bSBGYXN0
UGF0aEZsYWdzIHsKQEAgLTEyMiw4ICsxNjQsNiBAQCBjbGFzcyBTZWdtZW50ZWRTdHJpbmcgewog
ICAgIHZvaWQgdXBkYXRlQWR2YW5jZUZ1bmN0aW9uUG9pbnRlcnNGb3JFbXB0eVN0cmluZygpOwog
ICAgIHZvaWQgdXBkYXRlQWR2YW5jZUZ1bmN0aW9uUG9pbnRlcnNGb3JTaW5nbGVDaGFyYWN0ZXJT
dWJzdHJpbmcoKTsKIAotICAgIHZvaWQgZGVjcmVtZW50QW5kQ2hlY2tMZW5ndGgoKTsKLQogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHN0YXRpYyBib29sIGNoYXJhY3Rlck1p
c21hdGNoKENoYXJhY3RlclR5cGUsIGNoYXIsIGJvb2wgbGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNl
KTsKICAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBsZW5ndGgsIGJvb2wgbGV0dGVyc0lnbm9yaW5nQVND
SUlDYXNlPiBBZHZhbmNlUGFzdFJlc3VsdCBhZHZhbmNlUGFzdChjb25zdCBjaGFyICgmbGl0ZXJh
bClbbGVuZ3RoXSk7CiAgICAgQWR2YW5jZVBhc3RSZXN1bHQgYWR2YW5jZVBhc3RTbG93Q2FzZShj
b25zdCBjaGFyKiBsaXRlcmFsLCBib29sIGxldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSk7CkBAIC0x
NDUsMzkgKzE4NSw0NSBAQCBjbGFzcyBTZWdtZW50ZWRTdHJpbmcgewogfTsKIAogaW5saW5lIFNl
Z21lbnRlZFN0cmluZzo6U3Vic3RyaW5nOjpTdWJzdHJpbmcoU3RyaW5nJiYgcGFzc2VkU3RyaW5n
KQotICAgIDogc3RyaW5nKFdURk1vdmUocGFzc2VkU3RyaW5nKSkKLSAgICAsIGxlbmd0aChzdHJp
bmcubGVuZ3RoKCkpCisgICAgOiBtX3N0cmluZyhXVEZNb3ZlKHBhc3NlZFN0cmluZykpCiB7Ci0g
ICAgaWYgKGxlbmd0aCkgewotICAgICAgICBpczhCaXQgPSBzdHJpbmcuaW1wbCgpLT5pczhCaXQo
KTsKLSAgICAgICAgaWYgKGlzOEJpdCkKLSAgICAgICAgICAgIGN1cnJlbnRDaGFyYWN0ZXI4ID0g
c3RyaW5nLmltcGwoKS0+Y2hhcmFjdGVyczgoKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
Y3VycmVudENoYXJhY3RlcjE2ID0gc3RyaW5nLmltcGwoKS0+Y2hhcmFjdGVyczE2KCk7CisgICAg
aWYgKG1fc3RyaW5nLmxlbmd0aCgpKSB7CisgICAgICAgIG1faXM4Qml0ID0gbV9zdHJpbmcuaW1w
bCgpLT5pczhCaXQoKTsKKyAgICAgICAgaWYgKG1faXM4Qml0KSB7CisgICAgICAgICAgICBhdXRv
KiBjaGFyYWN0ZXI4ID0gbV9zdHJpbmcuaW1wbCgpLT5jaGFyYWN0ZXJzOCgpOworICAgICAgICAg
ICAgYXV0byogbGFzdEJlZm9yZU9uZTggPSBjaGFyYWN0ZXI4ICsgbV9zdHJpbmcubGVuZ3RoKCkg
LSAxOworICAgICAgICAgICAgbV9jdXJyZW50Q2hhcmFjdGVyQ3Vyc29yID0gYml0d2lzZV9jYXN0
PHVpbnRwdHJfdD4oY2hhcmFjdGVyOCk7CisgICAgICAgICAgICBtX2xhc3RCZWZvcmVPbmVDdXJz
b3IgPSBiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihsYXN0QmVmb3JlT25lOCk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBhdXRvKiBjaGFyYWN0ZXIxNiA9IG1fc3RyaW5nLmltcGwoKS0+
Y2hhcmFjdGVyczE2KCk7CisgICAgICAgICAgICBhdXRvKiBsYXN0QmVmb3JlT25lMTYgPSBjaGFy
YWN0ZXIxNiArIG1fc3RyaW5nLmxlbmd0aCgpIC0gMTsKKyAgICAgICAgICAgIG1fY3VycmVudENo
YXJhY3RlckN1cnNvciA9IGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KGNoYXJhY3RlcjE2KTsKKyAg
ICAgICAgICAgIG1fbGFzdEJlZm9yZU9uZUN1cnNvciA9IGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+
KGxhc3RCZWZvcmVPbmUxNik7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBtX2lz
OEJpdCA9IHRydWU7CisgICAgICAgIG1fY3VycmVudENoYXJhY3RlckN1cnNvciA9IGJpdHdpc2Vf
Y2FzdDx1aW50cHRyX3Q+KGVtcHR5U3RyaW5nUG9pbnRlcik7CisgICAgICAgIG1fbGFzdEJlZm9y
ZU9uZUN1cnNvciA9IG1fY3VycmVudENoYXJhY3RlckN1cnNvciAtIDE7CiAgICAgfQorICAgIEFT
U0VSVChtX2N1cnJlbnRDaGFyYWN0ZXJDdXJzb3IpOworICAgIEFTU0VSVChsZW5ndGgoKSA9PSBt
X3N0cmluZy5sZW5ndGgoKSk7CiB9CiAKIGlubGluZSB1bnNpZ25lZCBTZWdtZW50ZWRTdHJpbmc6
OlN1YnN0cmluZzo6bnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWQoKSBjb25zdAogewotICAgIHJl
dHVybiBzdHJpbmcubGVuZ3RoKCkgLSBsZW5ndGg7CisgICAgcmV0dXJuIG1fc3RyaW5nLmxlbmd0
aCgpIC0gbGVuZ3RoKCk7CiB9CiAKIEFMV0FZU19JTkxJTkUgVUNoYXIgU2VnbWVudGVkU3RyaW5n
OjpTdWJzdHJpbmc6OmN1cnJlbnRDaGFyYWN0ZXIoKSBjb25zdAogewotICAgIEFTU0VSVChsZW5n
dGgpOwotICAgIHJldHVybiBpczhCaXQgPyAqY3VycmVudENoYXJhY3RlcjggOiAqY3VycmVudENo
YXJhY3RlcjE2OwotfQotCi1BTFdBWVNfSU5MSU5FIFVDaGFyIFNlZ21lbnRlZFN0cmluZzo6U3Vi
c3RyaW5nOjpjdXJyZW50Q2hhcmFjdGVyUHJlSW5jcmVtZW50KCkKLXsKLSAgICBBU1NFUlQobGVu
Z3RoKTsKLSAgICByZXR1cm4gaXM4Qml0ID8gKisrY3VycmVudENoYXJhY3RlcjggOiAqKytjdXJy
ZW50Q2hhcmFjdGVyMTY7CisgICAgQVNTRVJUKGxlbmd0aCgpKTsKKyAgICByZXR1cm4gbV9pczhC
aXQgPyAqY3VycmVudENoYXJhY3RlcjgoKSA6ICpjdXJyZW50Q2hhcmFjdGVyMTYoKTsKIH0KIAog
aW5saW5lIFNlZ21lbnRlZFN0cmluZzo6U2VnbWVudGVkU3RyaW5nKFN0cmluZyYmIHN0cmluZykK
ICAgICA6IG1fY3VycmVudFN1YnN0cmluZyhXVEZNb3ZlKHN0cmluZykpCiB7Ci0gICAgaWYgKG1f
Y3VycmVudFN1YnN0cmluZy5sZW5ndGgpIHsKKyAgICBpZiAobV9jdXJyZW50U3Vic3RyaW5nLmxl
bmd0aCgpKSB7CiAgICAgICAgIG1fY3VycmVudENoYXJhY3RlciA9IG1fY3VycmVudFN1YnN0cmlu
Zy5jdXJyZW50Q2hhcmFjdGVyKCk7CiAgICAgICAgIHVwZGF0ZUFkdmFuY2VGdW5jdGlvblBvaW50
ZXJzKCk7CiAgICAgfQpAQCAtMTg4LDE4ICsyMzQsMTIgQEAgaW5saW5lIFNlZ21lbnRlZFN0cmlu
Zzo6U2VnbWVudGVkU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewogfQogCi1BTFdBWVNf
SU5MSU5FIHZvaWQgU2VnbWVudGVkU3RyaW5nOjpkZWNyZW1lbnRBbmRDaGVja0xlbmd0aCgpCi17
Ci0gICAgQVNTRVJUKG1fY3VycmVudFN1YnN0cmluZy5sZW5ndGggPiAxKTsKLSAgICBpZiAoVU5M
SUtFTFkoLS1tX2N1cnJlbnRTdWJzdHJpbmcubGVuZ3RoID09IDEpKQotICAgICAgICB1cGRhdGVB
ZHZhbmNlRnVuY3Rpb25Qb2ludGVyc0ZvclNpbmdsZUNoYXJhY3RlclN1YnN0cmluZygpOwotfQot
CiBBTFdBWVNfSU5MSU5FIHZvaWQgU2VnbWVudGVkU3RyaW5nOjphZHZhbmNlV2l0aG91dFVwZGF0
aW5nTGluZU51bWJlcigpCiB7CiAgICAgaWYgKExJS0VMWShtX2Zhc3RQYXRoRmxhZ3MgJiBVc2U4
Qml0QWR2YW5jZSkpIHsKLSAgICAgICAgbV9jdXJyZW50Q2hhcmFjdGVyID0gKisrbV9jdXJyZW50
U3Vic3RyaW5nLmN1cnJlbnRDaGFyYWN0ZXI4OwotICAgICAgICBkZWNyZW1lbnRBbmRDaGVja0xl
bmd0aCgpOworICAgICAgICBtX2N1cnJlbnRDaGFyYWN0ZXIgPSAqKyttX2N1cnJlbnRTdWJzdHJp
bmcuY3VycmVudENoYXJhY3RlcjgoKTsKKyAgICAgICAgaWYgKFVOTElLRUxZKG1fY3VycmVudFN1
YnN0cmluZy5oYXNPbmVDaGFyYWN0ZXJMZWZ0KCkpKQorICAgICAgICAgICAgdXBkYXRlQWR2YW5j
ZUZ1bmN0aW9uUG9pbnRlcnNGb3JTaW5nbGVDaGFyYWN0ZXJTdWJzdHJpbmcoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtMjIxLDEwICsyNjEsMTAgQEAgaW5saW5lIHZvaWQgU2VnbWVu
dGVkU3RyaW5nOjpwcm9jZXNzUG9zc2libGVOZXdsaW5lKCkKIGlubGluZSB2b2lkIFNlZ21lbnRl
ZFN0cmluZzo6YWR2YW5jZSgpCiB7CiAgICAgaWYgKExJS0VMWShtX2Zhc3RQYXRoRmxhZ3MgJiBV
c2U4Qml0QWR2YW5jZSkpIHsKLSAgICAgICAgQVNTRVJUKG1fY3VycmVudFN1YnN0cmluZy5sZW5n
dGggPiAxKTsKKyAgICAgICAgQVNTRVJUKG1fY3VycmVudFN1YnN0cmluZy5jYW5BZHZhbmNlKCkp
OwogICAgICAgICBib29sIGxhc3RDaGFyYWN0ZXJXYXNOZXdsaW5lID0gbV9jdXJyZW50Q2hhcmFj
dGVyID09ICdcbic7Ci0gICAgICAgIG1fY3VycmVudENoYXJhY3RlciA9ICorK21fY3VycmVudFN1
YnN0cmluZy5jdXJyZW50Q2hhcmFjdGVyODsKLSAgICAgICAgYm9vbCBoYXZlT25lQ2hhcmFjdGVy
TGVmdCA9IC0tbV9jdXJyZW50U3Vic3RyaW5nLmxlbmd0aCA9PSAxOworICAgICAgICBtX2N1cnJl
bnRDaGFyYWN0ZXIgPSAqKyttX2N1cnJlbnRTdWJzdHJpbmcuY3VycmVudENoYXJhY3RlcjgoKTsK
KyAgICAgICAgYm9vbCBoYXZlT25lQ2hhcmFjdGVyTGVmdCA9IG1fY3VycmVudFN1YnN0cmluZy5o
YXNPbmVDaGFyYWN0ZXJMZWZ0KCk7CiAgICAgICAgIGlmIChMSUtFTFkoIShsYXN0Q2hhcmFjdGVy
V2FzTmV3bGluZSB8IGhhdmVPbmVDaGFyYWN0ZXJMZWZ0KSkpCiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIGlmIChsYXN0Q2hhcmFjdGVyV2FzTmV3bGluZSAmICEhKG1fZmFzdFBhdGhGbGFn
cyAmIFVzZThCaXRBZHZhbmNlQW5kVXBkYXRlTGluZU51bWJlcnMpKQpAQCAtMjQ2LDExICsyODYs
MTUgQEAgQUxXQVlTX0lOTElORSB2b2lkIFNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZVBhc3ROb25O
ZXdsaW5lKCkKIGlubGluZSB2b2lkIFNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZVBhc3ROZXdsaW5l
KCkKIHsKICAgICBBU1NFUlQobV9jdXJyZW50Q2hhcmFjdGVyID09ICdcbicpOwotICAgIGlmICht
X2N1cnJlbnRTdWJzdHJpbmcubGVuZ3RoID4gMSkgewotICAgICAgICBpZiAobV9jdXJyZW50U3Vi
c3RyaW5nLmRvTm90RXhjbHVkZUxpbmVOdW1iZXJzKQorICAgIGlmIChMSUtFTFkobV9jdXJyZW50
U3Vic3RyaW5nLmNhbkFkdmFuY2UoKSkpIHsKKyAgICAgICAgaWYgKG1fY3VycmVudFN1YnN0cmlu
Zy5tX2RvTm90RXhjbHVkZUxpbmVOdW1iZXJzKQogICAgICAgICAgICAgc3RhcnROZXdMaW5lKCk7
Ci0gICAgICAgIG1fY3VycmVudENoYXJhY3RlciA9IG1fY3VycmVudFN1YnN0cmluZy5jdXJyZW50
Q2hhcmFjdGVyUHJlSW5jcmVtZW50KCk7Ci0gICAgICAgIGRlY3JlbWVudEFuZENoZWNrTGVuZ3Ro
KCk7CisgICAgICAgIGlmIChtX2N1cnJlbnRTdWJzdHJpbmcubV9pczhCaXQpCisgICAgICAgICAg
ICBtX2N1cnJlbnRDaGFyYWN0ZXIgPSAqKyttX2N1cnJlbnRTdWJzdHJpbmcuY3VycmVudENoYXJh
Y3RlcjgoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9jdXJyZW50Q2hhcmFjdGVyID0g
KisrbV9jdXJyZW50U3Vic3RyaW5nLmN1cnJlbnRDaGFyYWN0ZXIxNigpOworICAgICAgICBpZiAo
VU5MSUtFTFkobV9jdXJyZW50U3Vic3RyaW5nLmhhc09uZUNoYXJhY3RlckxlZnQoKSkpCisgICAg
ICAgICAgICB1cGRhdGVBZHZhbmNlRnVuY3Rpb25Qb2ludGVyc0ZvclNpbmdsZUNoYXJhY3RlclN1
YnN0cmluZygpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yNzIsMjMgKzMxNiwyMiBA
QCB0ZW1wbGF0ZTx1bnNpZ25lZCBsZW5ndGhJbmNsdWRpbmdUZXJtaW5hdG9yLCBib29sIGxldHRl
cnNJZ25vcmluZ0FTQ0lJQ2FzZT4gU2VnbQogICAgIGNvbnN0ZXhwciB1bnNpZ25lZCBsZW5ndGgg
PSBsZW5ndGhJbmNsdWRpbmdUZXJtaW5hdG9yIC0gMTsKICAgICBBU1NFUlQoIWxpdGVyYWxbbGVu
Z3RoXSk7CiAgICAgQVNTRVJUKCFzdHJjaHIobGl0ZXJhbCwgJ1xuJykpOwotICAgIGlmIChsZW5n
dGggKyAxIDwgbV9jdXJyZW50U3Vic3RyaW5nLmxlbmd0aCkgewotICAgICAgICBpZiAobV9jdXJy
ZW50U3Vic3RyaW5nLmlzOEJpdCkgeworICAgIGlmIChsZW5ndGggKyAxIDwgbV9jdXJyZW50U3Vi
c3RyaW5nLmxlbmd0aCgpKSB7CisgICAgICAgIGlmIChtX2N1cnJlbnRTdWJzdHJpbmcubV9pczhC
aXQpIHsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkg
ewotICAgICAgICAgICAgICAgIGlmIChjaGFyYWN0ZXJNaXNtYXRjaChtX2N1cnJlbnRTdWJzdHJp
bmcuY3VycmVudENoYXJhY3RlcjhbaV0sIGxpdGVyYWxbaV0sIGxldHRlcnNJZ25vcmluZ0FTQ0lJ
Q2FzZSkpCisgICAgICAgICAgICAgICAgaWYgKGNoYXJhY3Rlck1pc21hdGNoKG1fY3VycmVudFN1
YnN0cmluZy5jdXJyZW50Q2hhcmFjdGVyOCgpW2ldLCBsaXRlcmFsW2ldLCBsZXR0ZXJzSWdub3Jp
bmdBU0NJSUNhc2UpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gRGlkTm90TWF0Y2g7CiAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBtX2N1cnJlbnRTdWJzdHJpbmcuY3VycmVudENoYXJh
Y3RlcjggKz0gbGVuZ3RoOwotICAgICAgICAgICAgbV9jdXJyZW50Q2hhcmFjdGVyID0gKm1fY3Vy
cmVudFN1YnN0cmluZy5jdXJyZW50Q2hhcmFjdGVyODsKKyAgICAgICAgICAgIG1fY3VycmVudFN1
YnN0cmluZy5jdXJyZW50Q2hhcmFjdGVyOCgpICs9IGxlbmd0aDsKKyAgICAgICAgICAgIG1fY3Vy
cmVudENoYXJhY3RlciA9ICptX2N1cnJlbnRTdWJzdHJpbmcuY3VycmVudENoYXJhY3RlcjgoKTsK
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBs
ZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgIGlmIChjaGFyYWN0ZXJNaXNtYXRjaChtX2N1
cnJlbnRTdWJzdHJpbmcuY3VycmVudENoYXJhY3RlcjE2W2ldLCBsaXRlcmFsW2ldLCBsZXR0ZXJz
SWdub3JpbmdBU0NJSUNhc2UpKQorICAgICAgICAgICAgICAgIGlmIChjaGFyYWN0ZXJNaXNtYXRj
aChtX2N1cnJlbnRTdWJzdHJpbmcuY3VycmVudENoYXJhY3RlcjE2KClbaV0sIGxpdGVyYWxbaV0s
IGxldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBE
aWROb3RNYXRjaDsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG1fY3VycmVudFN1YnN0cmlu
Zy5jdXJyZW50Q2hhcmFjdGVyMTYgKz0gbGVuZ3RoOwotICAgICAgICAgICAgbV9jdXJyZW50Q2hh
cmFjdGVyID0gKm1fY3VycmVudFN1YnN0cmluZy5jdXJyZW50Q2hhcmFjdGVyMTY7CisgICAgICAg
ICAgICBtX2N1cnJlbnRTdWJzdHJpbmcuY3VycmVudENoYXJhY3RlcjE2KCkgKz0gbGVuZ3RoOwor
ICAgICAgICAgICAgbV9jdXJyZW50Q2hhcmFjdGVyID0gKm1fY3VycmVudFN1YnN0cmluZy5jdXJy
ZW50Q2hhcmFjdGVyMTYoKTsKICAgICAgICAgfQotICAgICAgICBtX2N1cnJlbnRTdWJzdHJpbmcu
bGVuZ3RoIC09IGxlbmd0aDsKICAgICAgICAgcmV0dXJuIERpZE1hdGNoOwogICAgIH0KICAgICBy
ZXR1cm4gYWR2YW5jZVBhc3RTbG93Q2FzZShsaXRlcmFsLCBsZXR0ZXJzSWdub3JpbmdBU0NJSUNh
c2UpOwpAQCAtMjk2LDIzICszMzksMjMgQEAgdGVtcGxhdGU8dW5zaWduZWQgbGVuZ3RoSW5jbHVk
aW5nVGVybWluYXRvciwgYm9vbCBsZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2U+IFNlZ20KIAogaW5s
aW5lIHZvaWQgU2VnbWVudGVkU3RyaW5nOjp1cGRhdGVBZHZhbmNlRnVuY3Rpb25Qb2ludGVycygp
CiB7Ci0gICAgaWYgKG1fY3VycmVudFN1YnN0cmluZy5sZW5ndGggPiAxKSB7Ci0gICAgICAgIGlm
IChtX2N1cnJlbnRTdWJzdHJpbmcuaXM4Qml0KSB7CisgICAgaWYgKG1fY3VycmVudFN1YnN0cmlu
Zy5jYW5BZHZhbmNlKCkpIHsKKyAgICAgICAgaWYgKG1fY3VycmVudFN1YnN0cmluZy5tX2lzOEJp
dCkgewogICAgICAgICAgICAgbV9mYXN0UGF0aEZsYWdzID0gVXNlOEJpdEFkdmFuY2U7Ci0gICAg
ICAgICAgICBpZiAobV9jdXJyZW50U3Vic3RyaW5nLmRvTm90RXhjbHVkZUxpbmVOdW1iZXJzKQor
ICAgICAgICAgICAgaWYgKG1fY3VycmVudFN1YnN0cmluZy5tX2RvTm90RXhjbHVkZUxpbmVOdW1i
ZXJzKQogICAgICAgICAgICAgICAgIG1fZmFzdFBhdGhGbGFncyB8PSBVc2U4Qml0QWR2YW5jZUFu
ZFVwZGF0ZUxpbmVOdW1iZXJzOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAg
ICAgIG1fZmFzdFBhdGhGbGFncyA9IE5vRmFzdFBhdGg7CiAgICAgICAgIG1fYWR2YW5jZVdpdGhv
dXRVcGRhdGluZ0xpbmVOdW1iZXJGdW5jdGlvbiA9ICZTZWdtZW50ZWRTdHJpbmc6OmFkdmFuY2VX
aXRob3V0VXBkYXRpbmdMaW5lTnVtYmVyMTY7Ci0gICAgICAgIGlmIChtX2N1cnJlbnRTdWJzdHJp
bmcuZG9Ob3RFeGNsdWRlTGluZU51bWJlcnMpCisgICAgICAgIGlmIChtX2N1cnJlbnRTdWJzdHJp
bmcubV9kb05vdEV4Y2x1ZGVMaW5lTnVtYmVycykKICAgICAgICAgICAgIG1fYWR2YW5jZUFuZFVw
ZGF0ZUxpbmVOdW1iZXJGdW5jdGlvbiA9ICZTZWdtZW50ZWRTdHJpbmc6OmFkdmFuY2VBbmRVcGRh
dGVMaW5lTnVtYmVyMTY7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fYWR2YW5jZUFuZFVw
ZGF0ZUxpbmVOdW1iZXJGdW5jdGlvbiA9ICZTZWdtZW50ZWRTdHJpbmc6OmFkdmFuY2VXaXRob3V0
VXBkYXRpbmdMaW5lTnVtYmVyMTY7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAo
IW1fY3VycmVudFN1YnN0cmluZy5sZW5ndGgpIHsKKyAgICBpZiAoIW1fY3VycmVudFN1YnN0cmlu
Zy5sZW5ndGgoKSkgewogICAgICAgICB1cGRhdGVBZHZhbmNlRnVuY3Rpb25Qb2ludGVyc0ZvckVt
cHR5U3RyaW5nKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Cg==
</data>
<flag name="commit-queue"
          id="470480"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>