<?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>195020</bug_id>
          
          <creation_ts>2019-02-25 15:13:51 -0800</creation_ts>
          <short_desc>[JSC] Add SPI to configure number of GC markers dynamically</short_desc>
          <delta_ts>2019-02-25 15:32:50 -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>JavaScriptCore</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>195013</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1509802</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-25 15:13:51 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509805</commentid>
    <comment_count>1</comment_count>
      <attachid>362934</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-25 15:21:59 -0800</bug_when>
    <thetext>Created attachment 362934
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509806</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-02-25 15:24:11 -0800</bug_when>
    <thetext>Attachment 362934 did not pass style-queue:


ERROR: Source/JavaScriptCore/heap/HeapHelperPool.cpp:43:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/WTF/wtf/ParallelHelperPool.cpp:78:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/API/tests/testapi.mm:565:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/API/tests/testapi.mm:566:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/API/tests/testapi.mm:567:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 5 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509810</commentid>
    <comment_count>3</comment_count>
      <attachid>362936</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-25 15:32:50 -0800</bug_when>
    <thetext>Created attachment 362936
Patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362934</attachid>
            <date>2019-02-25 15:21:59 -0800</date>
            <delta_ts>2019-02-25 15:32:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195020-20190225152158.patch</filename>
            <type>text/plain</type>
            <size>19992</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMDU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZDlhYjA4ZDhhNjhiMGQ1MWViNzU4Mzg3ZDNlNDA4MmFkYWUzODUwLi45MTRiNGM1ODYxNGJmZDBj
YmZjMzY0YTgzOTU0NmZiNzY0ZTY4OGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAxOS0wMi0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBTUEkgdG8gY29uZmlndXJlIG51bWJlciBvZiBHQyBtYXJr
ZXJzIGR5bmFtaWNhbGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTUwMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIEFQSS9KU1ZpcnR1YWxNYWNoaW5lLm1tOgorICAgICAgICAoK1tKU1ZpcnR1YWxN
YWNoaW5lIHNldE51bWJlck9mR0NNYXJrZXJzOl0pOgorICAgICAgICAqIEFQSS9KU1ZpcnR1YWxN
YWNoaW5lUHJpdmF0ZS5oOgorICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLm1tOgorICAgICAg
ICAocnVuR0NNYXJrZXJUaHJlYWRMaW1pdFRlc3RzKToKKyAgICAgICAgKHJ1bkdDTWFya2VyVGhy
ZWFkTGltaXRUZXN0c0FmdGVyR0NSdW5zKToKKyAgICAgICAgKHRlc3RPYmplY3RpdmVDQVBJKToK
KyAgICAgICAgKiBoZWFwL0hlYXBIZWxwZXJQb29sLmNwcDoKKyAgICAgICAgKEpTQzo6Z2V0TnVt
YmVyT2ZHQ01hcmtlcnMpOgorICAgICAgICAoSlNDOjpzZXROdW1iZXJPZkdDTWFya2Vycyk6Cisg
ICAgICAgIChKU0M6OmhlYXBIZWxwZXJQb29sSWZFeGlzdHMpOgorICAgICAgICAoSlNDOjpoZWFw
SGVscGVyUG9vbCk6CisgICAgICAgICogaGVhcC9IZWFwSGVscGVyUG9vbC5oOgorCiAyMDE5LTAy
LTI1ICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgogCiAgICAgICAgIEF2b2lk
IGhhc2hpbmcgQ29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQgd2hlbiBkZWNvZGluZyBDb21wYWN0
VmFyaWFibGVNYXA6OkhhbmRsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCAwZGFkOGM1YWZmY2M4ZTNhZWVlMDFjMjcyMzk1N2Y5
MTYwZjU4ODg0Li5jMTIzZTc3MWM4OWI2NDE1YWZlMGQ0NDVjNjUyYTA5YmExYjVlNTM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI4IEBACisyMDE5LTAyLTI1ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0pTQ10gQWRkIFNQSSB0byBjb25maWd1cmUgbnVtYmVyIG9mIEdD
IG1hcmtlcnMgZHluYW1pY2FsbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5NTAyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHA6CisgICAgICAgIChXVEY6
OlBhcmFsbGVsSGVscGVyUG9vbDo6VGhyZWFkOjpUaHJlYWQpOgorICAgICAgICAoV1RGOjpQYXJh
bGxlbEhlbHBlclBvb2w6OlRocmVhZDo6c2V0SXNEeWluZyk6CisgICAgICAgIChXVEY6OlBhcmFs
bGVsSGVscGVyUG9vbDo6VGhyZWFkOjppc0R5aW5nKToKKyAgICAgICAgKFdURjo6UGFyYWxsZWxI
ZWxwZXJDbGllbnQ6OlBhcmFsbGVsSGVscGVyQ2xpZW50KToKKyAgICAgICAgKFdURjo6UGFyYWxs
ZWxIZWxwZXJDbGllbnQ6On5QYXJhbGxlbEhlbHBlckNsaWVudCk6CisgICAgICAgIChXVEY6OlBh
cmFsbGVsSGVscGVyQ2xpZW50OjpzZXRUYXNrKToKKyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxw
ZXJDbGllbnQ6OmZpbmlzaCk6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVyQ2xpZW50Ojpk
b1NvbWVIZWxwaW5nKToKKyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJDbGllbnQ6OnJ1blRh
c2spOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBlclBvb2w6On5QYXJhbGxlbEhlbHBlclBv
b2wpOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBlclBvb2w6OnNldE51bWJlck9mVGhyZWFk
cyk6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVyUG9vbDo6ZG9Tb21lSGVscGluZyk6Cisg
ICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVyUG9vbDo6ZGlkTWFrZVdvcmtBdmFpbGFibGUpOgor
ICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBlclBvb2w6OmVuc3VyZVRocmVhZHMpOiBEZWxldGVk
LgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBlclBvb2w6Omhhc0NsaWVudFdpdGhUYXNrKTog
RGVsZXRlZC4KKyAgICAgICAgKiB3dGYvUGFyYWxsZWxIZWxwZXJQb29sLmg6CisKIDIwMTktMDIt
MjUgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVcGRhdGUgZG91Ymxl
LWNvbnZlcnNpb24gdG8gdGhlIGxhdGVzdCB2ZXJzaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTVmlydHVhbE1hY2hpbmUubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTVmlydHVhbE1hY2hpbmUubW0KaW5kZXggNTA0ZDMzY2Y1ZjdjYjUzZjE2ZGQzNzc5
M2ZjNjFjOTE1ZTIzYmZlNi4uM2U2ODA4NTFmNzhiMjc2MmM5ZTU1ZTFjNzJmYzUzZTQ4YTc5N2Jh
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNoaW5l
Lm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbQpA
QCAtMzEsNiArMzEsNyBAQAogCiAjaW1wb3J0ICJBUElDYXN0LmgiCiAjaW1wb3J0ICJERkdXb3Jr
bGlzdC5oIgorI2ltcG9ydCAiSGVhcEhlbHBlclBvb2wuaCIKICNpbXBvcnQgIkpTTWFuYWdlZFZh
bHVlSW50ZXJuYWwuaCIKICNpbXBvcnQgIkpTVmlydHVhbE1hY2hpbmVJbnRlcm5hbC5oIgogI2lt
cG9ydCAiSlNWaXJ0dWFsTWFjaGluZVByaXZhdGUuaCIKQEAgLTI3NSw2ICsyNzYsMTEgQEAgLSAo
dm9pZClzaHJpbmtGb290cHJpbnRXaGVuSWRsZQogICAgIHZtLT5zaHJpbmtGb290cHJpbnRXaGVu
SWRsZSgpOwogfQogCisrIChOU1VJbnRlZ2VyKXNldE51bWJlck9mR0NNYXJrZXJzOihOU1VJbnRl
Z2VyKW51bWJlck9mVGhyZWFkcworeworICAgIHJldHVybiBKU0M6OnNldE51bWJlck9mR0NNYXJr
ZXJzKG51bWJlck9mVGhyZWFkcyk7Cit9CisKICNpZiBFTkFCTEUoREZHX0pJVCkKIAogKyAoTlNV
SW50ZWdlcilzZXROdW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkczooTlNVSW50ZWdlciludW1iZXJP
ZlRocmVhZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFs
TWFjaGluZVByaXZhdGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFj
aGluZVByaXZhdGUuaAppbmRleCA4ZmQyZWI3NGZiODFlNzlmNGZhY2E4NTZkYWFkZWU2NGQ1M2Rj
YTI5Li5hOTJjZDVkNTYyYjdjNmMzMGQxMWVjNTAxN2U2ZDBlNTQxZGFmZmE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmlydHVhbE1hY2hpbmVQcml2YXRlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNoaW5lUHJpdmF0ZS5oCkBA
IC00NSw2ICs0NSwyMSBAQAogCiAtICh2b2lkKXNocmlua0Zvb3RwcmludFdoZW5JZGxlIEpTQ19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7CiAKKy8qIQorQG1ldGhvZAor
QGFic3RyYWN0IFNldCB0aGUgbnVtYmVyIG9mIHRocmVhZHMgdG8gYmUgdXNlZCBieSB0aGUgR0Mg
bWFya2VyLgorQGRpc2N1c3Npb24gSWYgY2FsbGVkIGFmdGVyIHRoZSBWTSBoYXMgYmVlbiBpbml0
aWFsaXplZCwgaXQgd2lsbCB0ZXJtaW5hdGUKKyB0aHJlYWRzIHVudGlsIGl0IG1lZXRzIHRoZSBu
ZXcgbGltaXQgb3IgY3JlYXRlIG5ldyB0aHJlYWRzIGFjY29yZGluZ2x5IGlmIHRoZQorIG5ldyBs
aW1pdCBpcyBoaWdoZXIgdGhhbiB0aGUgcHJldmlvdXMgbGltaXQuIElmIGNhbGxlZCBiZWZvcmUg
aW5pdGlhbGl6YXRpb24sCisgdGhlIE9wdGlvbnMgdmFsdWUgZm9yIHRoZSBudW1iZXIgb2YgR0Mg
bWFya2VyIHRocmVhZHMgd2lsbCBiZSB1cGRhdGVkIHRvIGVuc3VyZQorIHRoZSBHQyBtYXJrZXIg
YWxyZWFkeSBzdGFydHMgd2l0aCB0aGUgdXAtdG8tZGF0ZSBsaW1pdC4KK0BwYXJhbSBudW1iZXJP
ZlRocmVhZHMgVGhlIG51bWJlciBvZiB0aHJlYWRzIHRoZSBHQyBtYXJrZXIgc2hvdWxkIHVzZSBn
b2luZyBmb3J3YXJkCitAcmVzdWx0IFRoZSBwcmV2aW91cyBudW1iZXIgb2YgdGhyZWFkcyBiZWlu
ZyB1c2VkIGJ5IHRoZSBHQyBtYXJrZXIKKyovCisKKy8vIEZJWE1FOiBKU0NfQVBJX0FWQUlMQUJM
RSB2ZXJzaW9ucy4KKysgKE5TVUludGVnZXIpc2V0TnVtYmVyT2ZHQ01hcmtlcnM6KE5TVUludGVn
ZXIpbnVtYmVyT2ZUaHJlYWRzIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygx
Mi4wKSk7CisKICNpZiBFTkFCTEUoREZHX0pJVCkKIAogLyohCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0KaW5kZXggZmVhNjVjZWJlNTUyNzRiMDU1OWI0Yjg3MGEz
ZWFmM2Q1ODI4NzA3Ni4uMmQ3ZGEwODcxZDk0MDhhZmVkNGE0OTEwZTEwMDQ3OWNkZmYxZTdiYSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbQpAQCAtMzAsNiAr
MzAsOCBAQAogI2ltcG9ydCAiQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QuaCIKICNp
bXBvcnQgIkRGR1dvcmtsaXN0LmgiCiAjaW1wb3J0ICJEYXRlVGVzdHMuaCIKKyNpbXBvcnQgIkhl
YXBIZWxwZXJQb29sLmgiCisjaW1wb3J0ICJJbml0aWFsaXplVGhyZWFkaW5nLmgiCiAjaW1wb3J0
ICJKU0Nhc3QuaCIKICNpbXBvcnQgIkpTQ29udGV4dFByaXZhdGUuaCIKICNpbXBvcnQgIkpTRXhw
b3J0VGVzdHMuaCIKQEAgLTUyOSw2ICs1MzEsNTggQEAgc3RhdGljIHZvaWQqIG11bHRpVk1UaHJl
YWRNYWluKHZvaWQqIG9rUHRyKQogICAgIHJldHVybiBudWxscHRyOwogfQogCitzdGF0aWMgdm9p
ZCBydW5HQ01hcmtlclRocmVhZExpbWl0VGVzdHMoKQoreworICAgIGF1dG8gdGVzdEdDTWFya2Vy
cyA9IFtdIHsKKyAgICAgICAgdW5zaWduZWQgZGVmYXVsdE51bWJlck9mVGhyZWFkcyA9IEpTQzo6
T3B0aW9uczo6bnVtYmVyT2ZHQ01hcmtlcnMoKTsKKyAgICAgICAgdW5zaWduZWQgdGFyZ2V0TnVt
YmVyT2ZUaHJlYWRzID0gMTsKKyAgICAgICAgdW5zaWduZWQgaW5pdGlhbE51bWJlck9mVGhyZWFk
cyA9IFtKU1ZpcnR1YWxNYWNoaW5lIHNldE51bWJlck9mR0NNYXJrZXJzOnRhcmdldE51bWJlck9m
VGhyZWFkc107CisgICAgICAgIGRhdGFMb2dMbihpbml0aWFsTnVtYmVyT2ZUaHJlYWRzLCAiICIs
IGRlZmF1bHROdW1iZXJPZlRocmVhZHMpOworICAgICAgICBjaGVja1Jlc3VsdChAIkluaXRpYWwg
bnVtYmVyIG9mIEdDIG1hcmtlciB0aHJlYWRzIHNob3VsZCBiZSB0aGUgdmFsdWUgcHJvdmlkZWQg
dGhyb3VnaCBPcHRpb25zIiwgaW5pdGlhbE51bWJlck9mVGhyZWFkcyA9PSBkZWZhdWx0TnVtYmVy
T2ZUaHJlYWRzKTsKKyAgICAgICAgdW5zaWduZWQgdXBkYXRlZE51bWJlck9mVGhyZWFkcyA9IFtK
U1ZpcnR1YWxNYWNoaW5lIHNldE51bWJlck9mR0NNYXJrZXJzOmluaXRpYWxOdW1iZXJPZlRocmVh
ZHNdOworICAgICAgICBjaGVja1Jlc3VsdChAIk51bWJlciBvZiBHQyBtYXJrZXIgdGhyZWFkcyBz
aG91bGQgaGF2ZSBiZWVuIHVwZGF0ZWQiLCB1cGRhdGVkTnVtYmVyT2ZUaHJlYWRzID09IHRhcmdl
dE51bWJlck9mVGhyZWFkcyk7CisgICAgfTsKKworICAgIGNoZWNrUmVzdWx0KEAicnVuR0NNYXJr
ZXJUaHJlYWRMaW1pdFRlc3RzKCkgbXVzdCBydW4gYXQgdGhlIHZlcnkgYmVnaW5uaW5nIHRvIHRl
c3QgdGhlIGNhc2Ugd2hlcmUgdGhlIGdsb2JhbCBoZWFwIGhlbHBlciBwb29sIHdhcyBub3QgaW5p
dGlhbGl6ZWQgeWV0IiwgIUpTQzo6aGVhcEhlbHBlclBvb2xJZkV4aXN0cygpKTsKKworICAgIHRl
c3RHQ01hcmtlcnMoKTsKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgSlNWaXJ0dWFs
TWFjaGluZSogdm0gPSBbW0pTVmlydHVhbE1hY2hpbmUgYWxsb2NdIGluaXRdOworICAgICAgICBV
TlVTRURfUEFSQU0odm0pOworICAgIH0KKyAgICBjaGVja1Jlc3VsdChAIkhlYXAgaGVscGVyIHBv
b2wgaXMgYWxyZWFkeSBpbml0aWFsaXplZCIsIEpTQzo6aGVhcEhlbHBlclBvb2xJZkV4aXN0cygp
KTsKKyAgICB0ZXN0R0NNYXJrZXJzKCk7Cit9CisKK3N0YXRpYyB2b2lkIHJ1bkdDTWFya2VyVGhy
ZWFkTGltaXRUZXN0c0FmdGVyR0NSdW5zKCkKK3sKKyAgICBhdXRvIGRvR0MgPSBbXSB7CisgICAg
ICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAgICAgICAgSlNWaXJ0dWFsTWFjaGluZSogdm0g
PSBbW0pTVmlydHVhbE1hY2hpbmUgYWxsb2NdIGluaXRdOworICAgICAgICAgICAgSlNDb250ZXh0
KiBjb250ZXh0ID0gW1tKU0NvbnRleHQgYWxsb2NdIGluaXRXaXRoVmlydHVhbE1hY2hpbmU6dm1d
OworICAgICAgICAgICAgW2NvbnRleHQgZXZhbHVhdGVTY3JpcHQ6CisgICAgICAgICAgICAgICAg
QCJmb3IgKHZhciBpID0gMDsgaSA8IDFlNjsgKytpKSB7XG4iCisgICAgICAgICAgICAgICAgICIg
ICAgdmFyIG5ld0FycmF5ID0gbmV3IEFycmF5KCk7XG4iCisgICAgICAgICAgICAgICAgICIgICAg
bmV3QXJyYXlbaV0gPSB7fTtcbiIKKyAgICAgICAgICAgICAgICAgIn1cbiJdOworICAgICAgICAg
ICAgSlNTeW5jaHJvbm91c0dhcmJhZ2VDb2xsZWN0Rm9yRGVidWdnaW5nKFtjb250ZXh0IEpTR2xv
YmFsQ29udGV4dFJlZl0pOworICAgICAgICB9CisgICAgfTsKKworCisgICAgZG9HQygpOworCisg
ICAgdW5zaWduZWQgZGVmYXVsdE51bWJlck9mVGhyZWFkcyA9IEpTQzo6T3B0aW9uczo6bnVtYmVy
T2ZHQ01hcmtlcnMoKTsKKyAgICB1bnNpZ25lZCB0YXJnZXROdW1iZXJPZlRocmVhZHMgPSAxOwor
ICAgIHVuc2lnbmVkIGluaXRpYWxOdW1iZXJPZlRocmVhZHMgPSBbSlNWaXJ0dWFsTWFjaGluZSBz
ZXROdW1iZXJPZkdDTWFya2Vyczp0YXJnZXROdW1iZXJPZlRocmVhZHNdOworICAgIGNoZWNrUmVz
dWx0KEAiSW5pdGlhbCBudW1iZXIgb2YgR0MgbWFya2VyIHRocmVhZHMgc2hvdWxkIGJlIHRoZSB2
YWx1ZSBwcm92aWRlZCB0aHJvdWdoIE9wdGlvbnMiLCBpbml0aWFsTnVtYmVyT2ZUaHJlYWRzID09
IGRlZmF1bHROdW1iZXJPZlRocmVhZHMpOworCisgICAgZG9HQygpOworCisgICAgdW5zaWduZWQg
dXBkYXRlZE51bWJlck9mVGhyZWFkcyA9IFtKU1ZpcnR1YWxNYWNoaW5lIHNldE51bWJlck9mR0NN
YXJrZXJzOmluaXRpYWxOdW1iZXJPZlRocmVhZHNdOworICAgIGNoZWNrUmVzdWx0KEAiTnVtYmVy
IG9mIEdDIG1hcmtlciB0aHJlYWRzIHNob3VsZCBoYXZlIGJlZW4gdXBkYXRlZCIsIHVwZGF0ZWRO
dW1iZXJPZlRocmVhZHMgPT0gdGFyZ2V0TnVtYmVyT2ZUaHJlYWRzKTsKK30KKwogc3RhdGljIHZv
aWQgcnVuSklUVGhyZWFkTGltaXRUZXN0cygpCiB7CiAjaWYgRU5BQkxFKERGR19KSVQpCkBAIC0y
MzA3LDggKzIzNjEsMTEgQEAgdm9pZCB0ZXN0T2JqZWN0aXZlQ0FQSShjb25zdCBjaGFyKiBmaWx0
ZXIpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH07CiAKKyAgICBKU0M6OmluaXRpYWxpemVU
aHJlYWRpbmcoKTsKKyAgICBSVU4ocnVuR0NNYXJrZXJUaHJlYWRMaW1pdFRlc3RzKCkpOwogICAg
IFJVTihjaGVja05lZ2F0aXZlTlNJbnRlZ2VycygpKTsKICAgICBSVU4ocnVuSklUVGhyZWFkTGlt
aXRUZXN0cygpKTsKKyAgICBSVU4ocnVuR0NNYXJrZXJUaHJlYWRMaW1pdFRlc3RzQWZ0ZXJHQ1J1
bnMoKSk7CiAKICAgICBSVU4odGVzdExvYWRlclJlc29sdmVzQWJzb2x1dGVTY3JpcHRVUkwoKSk7
CiAgICAgUlVOKHRlc3RGZXRjaCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0hlYXBIZWxwZXJQb29sLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hl
YXBIZWxwZXJQb29sLmNwcAppbmRleCA2MTVhZGU3M2U3ZmQzNjUwNWIwODVmZTJkNWU1ZjkwZGY4
M2QwOTkyLi5lMDUzMzM0NTViYWJlZWM4N2MzNTNlZDRjNzgyOWQyYTNlNDg4OGNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSGVscGVyUG9vbC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcEhlbHBlclBvb2wuY3BwCkBAIC0zMSwxMCAr
MzEsMzQgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK3N0YXRpYyB1bnNpZ25lZCBudW1iZXJPZkdD
TWFya2VyczsKKworc3RhdGljIHVuc2lnbmVkIGdldE51bWJlck9mR0NNYXJrZXJzKCkKK3sKKyAg
ICByZXR1cm4gbnVtYmVyT2ZHQ01hcmtlcnMgPyBudW1iZXJPZkdDTWFya2VycyA6IE9wdGlvbnM6
Om51bWJlck9mR0NNYXJrZXJzKCk7Cit9CisKK3Vuc2lnbmVkIHNldE51bWJlck9mR0NNYXJrZXJz
KHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcykKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChudW1iZXJP
ZlRocmVhZHMgIT0gMCk7CisgICAgUGFyYWxsZWxIZWxwZXJQb29sKiBoZWxwZXJQb29sID0gaGVh
cEhlbHBlclBvb2xJZkV4aXN0cygpOworICAgIGlmIChoZWxwZXJQb29sKQorICAgICAgICByZXR1
cm4gaGVscGVyUG9vbC0+c2V0TnVtYmVyT2ZUaHJlYWRzKG51bWJlck9mVGhyZWFkcyAtIDEpICsg
MTsKKyAgICBhdXRvIHByZXZpb3VzTnVtYmVyT2ZUaHJlYWRzID0gZ2V0TnVtYmVyT2ZHQ01hcmtl
cnMoKTsKKyAgICBudW1iZXJPZkdDTWFya2VycyA9IG51bWJlck9mVGhyZWFkczsKKyAgICByZXR1
cm4gcHJldmlvdXNOdW1iZXJPZlRocmVhZHM7Cit9CisKK3N0YXRpYyBQYXJhbGxlbEhlbHBlclBv
b2wqIGdsb2JhbEhlbHBlclBvb2w7CisKK1BhcmFsbGVsSGVscGVyUG9vbCogaGVhcEhlbHBlclBv
b2xJZkV4aXN0cygpCit7CisgICAgcmV0dXJuIGdsb2JhbEhlbHBlclBvb2w7Cit9CisKIFBhcmFs
bGVsSGVscGVyUG9vbCYgaGVhcEhlbHBlclBvb2woKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2Vf
ZmxhZyBpbml0aWFsaXplSGVscGVyUG9vbE9uY2VGbGFnOwotICAgIHN0YXRpYyBQYXJhbGxlbEhl
bHBlclBvb2wqIGhlbHBlclBvb2w7CiAgICAgc3RkOjpjYWxsX29uY2UoCiAgICAgICAgIGluaXRp
YWxpemVIZWxwZXJQb29sT25jZUZsYWcsCiAgICAgICAgIFtdIHsKQEAgLTQzLDEwICs2NywxMiBA
QCBQYXJhbGxlbEhlbHBlclBvb2wmIGhlYXBIZWxwZXJQb29sKCkKICNlbHNlCiAgICAgICAgICAg
ICBjb25zdCBjaGFyKiB0aHJlYWROYW1lID0gIkhlYXAgSGVscGVyIFRocmVhZCI7CiAjZW5kaWYK
LSAgICAgICAgICAgIGhlbHBlclBvb2wgPSBuZXcgUGFyYWxsZWxIZWxwZXJQb29sKHRocmVhZE5h
bWUpOwotICAgICAgICAgICAgaGVscGVyUG9vbC0+ZW5zdXJlVGhyZWFkcyhPcHRpb25zOjpudW1i
ZXJPZkdDTWFya2VycygpIC0gMSk7CisgICAgICAgICAgICBhdXRvIGhlbHBlclBvb2wgPSBuZXcg
UGFyYWxsZWxIZWxwZXJQb29sKHRocmVhZE5hbWUpOworICAgICAgICAgICAgaGVscGVyUG9vbC0+
c2V0TnVtYmVyT2ZUaHJlYWRzKGdldE51bWJlck9mR0NNYXJrZXJzKCkgLSAxKTsKKyAgICAgICAg
ICAgIFdURjo6c3RvcmVTdG9yZUZlbmNlKCk7CisgICAgICAgICAgICBnbG9iYWxIZWxwZXJQb29s
ID0gaGVscGVyUG9vbDsKICAgICAgICAgfSk7Ci0gICAgcmV0dXJuICpoZWxwZXJQb29sOworICAg
IHJldHVybiAqZ2xvYmFsSGVscGVyUG9vbDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSGVscGVyUG9vbC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcEhlbHBlclBvb2wuaAppbmRleCAwOThkOWU1NzE1
MjNjMDg2N2U0Yjg5MmRmMTBiOGJlZTZlM2M3OTJmLi40OTE4NjJmMDVjYmM5ZWQxYzJiMzgwYzhj
NzQyNmZkM2I4ZjZhNjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwSGVscGVyUG9vbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBIZWxw
ZXJQb29sLmgKQEAgLTI5LDYgKzI5LDkgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK0pTX0VYUE9S
VF9QUklWQVRFIFBhcmFsbGVsSGVscGVyUG9vbCogaGVhcEhlbHBlclBvb2xJZkV4aXN0cygpOwog
UGFyYWxsZWxIZWxwZXJQb29sJiBoZWFwSGVscGVyUG9vbCgpOwogCitKU19FWFBPUlRfUFJJVkFU
RSB1bnNpZ25lZCBzZXROdW1iZXJPZkdDTWFya2Vycyh1bnNpZ25lZCk7CisKIH0gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHAKaW5kZXggNGY5YTkyMmMw
ODRiMjIyNWRkMTg1YzQ1NTRkY2U0M2RiOTA0OWJkMC4uODE2YTBkMDhiOGY3NGE5OWUyMjU1NTg2
NDMxMDhkYzBkNDM3MmY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxw
ZXJQb29sLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwCkBA
IC0zMiwxNyArMzIsNjQgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKK2NsYXNzIFBhcmFsbGVsSGVs
cGVyUG9vbDo6VGhyZWFkIDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7CitwdWJsaWM6CisgICAg
VGhyZWFkKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIFBhcmFsbGVsSGVscGVyUG9vbCYg
cG9vbCkKKyAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBwb29sLm1fbG9jaywgcG9v
bC5tX3dvcmtBdmFpbGFibGVDb25kaXRpb24uY29weVJlZigpKQorICAgICAgICAsIG1fcG9vbChw
b29sKQorICAgIHsKKyAgICB9CisgICAgCisgICAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0IG92
ZXJyaWRlCisgICAgeworICAgICAgICByZXR1cm4gbV9wb29sLm1fdGhyZWFkTmFtZS5kYXRhKCk7
CisgICAgfQorCisgICAgdm9pZCBzZXRJc0R5aW5nKGJvb2wgaXNEeWluZykKKyAgICB7CisgICAg
ICAgIG1faXNEeWluZyA9IGlzRHlpbmc7CisgICAgfQorICAgIGJvb2wgaXNEeWluZygpIHsgcmV0
dXJuIG1faXNEeWluZzsgfQorCitwcm90ZWN0ZWQ6CisgICAgUG9sbFJlc3VsdCBwb2xsKGNvbnN0
IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIpIG92ZXJyaWRlCisgICAgeworICAgICAgICBpZiAobV9p
c0R5aW5nKQorICAgICAgICAgICAgcmV0dXJuIFBvbGxSZXN1bHQ6OlN0b3A7CisgICAgICAgIG1f
Y2xpZW50ID0gbV9wb29sLmdldENsaWVudFdpdGhUYXNrKGxvY2tlcik7CisgICAgICAgIGlmICht
X2NsaWVudCkgeworICAgICAgICAgICAgbV90YXNrID0gbV9jbGllbnQtPmNsYWltVGFzayhsb2Nr
ZXIpOworICAgICAgICAgICAgcmV0dXJuIFBvbGxSZXN1bHQ6Oldvcms7CisgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIFBvbGxSZXN1bHQ6OldhaXQ7CisgICAgfQorICAgIAorICAgIFdvcmtSZXN1
bHQgd29yaygpIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2NsaWVudC0+cnVuVGFzayhtX3Rh
c2spOworICAgICAgICBtX2NsaWVudCA9IG51bGxwdHI7CisgICAgICAgIG1fdGFzayA9IG51bGxw
dHI7CisgICAgICAgIHJldHVybiBXb3JrUmVzdWx0OjpDb250aW51ZTsKKyAgICB9CisgICAgCitw
cml2YXRlOgorICAgIFBhcmFsbGVsSGVscGVyUG9vbCYgbV9wb29sOworICAgIFBhcmFsbGVsSGVs
cGVyQ2xpZW50KiBtX2NsaWVudCB7IG51bGxwdHIgfTsKKyAgICBSZWZQdHI8U2hhcmVkVGFzazx2
b2lkICgpPj4gbV90YXNrOworICAgIGJvb2wgbV9pc0R5aW5nIHsgZmFsc2UgfTsKK307CisKIFBh
cmFsbGVsSGVscGVyQ2xpZW50OjpQYXJhbGxlbEhlbHBlckNsaWVudChSZWZQdHI8UGFyYWxsZWxI
ZWxwZXJQb29sPiYmIHBvb2wpCiAgICAgOiBtX3Bvb2woV1RGTW92ZShwb29sKSkKIHsKLSAgICBM
b2NrSG9sZGVyIGxvY2tlcigqbV9wb29sLT5tX2xvY2spOworICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2soKm1fcG9vbC0+bV9sb2NrKTsKICAgICBSRUxFQVNFX0FTU0VSVCghbV9wb29sLT5tX2lz
RHlpbmcpOwogICAgIG1fcG9vbC0+bV9jbGllbnRzLmFwcGVuZCh0aGlzKTsKIH0KIAogUGFyYWxs
ZWxIZWxwZXJDbGllbnQ6On5QYXJhbGxlbEhlbHBlckNsaWVudCgpCiB7Ci0gICAgTG9ja0hvbGRl
ciBsb2NrZXIoKm1fcG9vbC0+bV9sb2NrKTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKCpt
X3Bvb2wtPm1fbG9jayk7CiAgICAgZmluaXNoKGxvY2tlcik7CiAKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IG1fcG9vbC0+bV9jbGllbnRzLnNpemUoKTsgKytpKSB7CkBAIC01NiwxNSArMTAz
LDE2IEBAIFBhcmFsbGVsSGVscGVyQ2xpZW50Ojp+UGFyYWxsZWxIZWxwZXJDbGllbnQoKQogCiB2
b2lkIFBhcmFsbGVsSGVscGVyQ2xpZW50OjpzZXRUYXNrKFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQg
KCk+PiYmIHRhc2spCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIoKm1fcG9vbC0+bV9sb2NrKTsK
KyAgICBhdXRvIHN1c3BlbnNpb25Mb2NrZXIgPSBob2xkTG9jayhtX3Bvb2wtPm1fc3VzcGVuc2lv
bkxvY2spOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soKm1fcG9vbC0+bV9sb2NrKTsKICAg
ICBSRUxFQVNFX0FTU0VSVCghbV90YXNrKTsKICAgICBtX3Rhc2sgPSBXVEZNb3ZlKHRhc2spOwot
ICAgIG1fcG9vbC0+ZGlkTWFrZVdvcmtBdmFpbGFibGUobG9ja2VyKTsKKyAgICBtX3Bvb2wtPmRp
ZE1ha2VXb3JrQXZhaWxhYmxlKHN1c3BlbnNpb25Mb2NrZXIsIGxvY2tlcik7CiB9CiAKIHZvaWQg
UGFyYWxsZWxIZWxwZXJDbGllbnQ6OmZpbmlzaCgpCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIo
Km1fcG9vbC0+bV9sb2NrKTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKCptX3Bvb2wtPm1f
bG9jayk7CiAgICAgZmluaXNoKGxvY2tlcik7CiB9CiAKQEAgLTcyLDcgKzEyMCw3IEBAIHZvaWQg
UGFyYWxsZWxIZWxwZXJDbGllbnQ6OmRvU29tZUhlbHBpbmcoKQogewogICAgIFJlZlB0cjxTaGFy
ZWRUYXNrPHZvaWQgKCk+PiB0YXNrOwogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
Km1fcG9vbC0+bV9sb2NrKTsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jaygqbV9wb29s
LT5tX2xvY2spOwogICAgICAgICB0YXNrID0gY2xhaW1UYXNrKGxvY2tlcik7CiAgICAgICAgIGlm
ICghdGFzaykKICAgICAgICAgICAgIHJldHVybjsKQEAgLTExMiw3ICsxNjAsNyBAQCB2b2lkIFBh
cmFsbGVsSGVscGVyQ2xpZW50OjpydW5UYXNrKGNvbnN0IFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQg
KCk+PiYgdGFzaykKICAgICB0YXNrLT5ydW4oKTsKIAogICAgIHsKLSAgICAgICAgTG9ja0hvbGRl
ciBsb2NrZXIoKm1fcG9vbC0+bV9sb2NrKTsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9j
aygqbV9wb29sLT5tX2xvY2spOwogICAgICAgICBSRUxFQVNFX0FTU0VSVChtX251bUFjdGl2ZSk7
CiAgICAgICAgIC8vIE5vIG5ldyB0YXNrIGNvdWxkIGhhdmUgYmVlbiBpbnN0YWxsZWQsIHNpbmNl
IHdlIHdlcmUgc3RpbGwgYWN0aXZlLgogICAgICAgICBSRUxFQVNFX0FTU0VSVCghbV90YXNrIHx8
IG1fdGFzayA9PSB0YXNrKTsKQEAgLTEzNSwyMyArMTgzLDUzIEBAIFBhcmFsbGVsSGVscGVyUG9v
bDo6flBhcmFsbGVsSGVscGVyUG9vbCgpCiAgICAgUkVMRUFTRV9BU1NFUlQobV9jbGllbnRzLmlz
RW1wdHkoKSk7CiAgICAgCiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcigqbV9sb2Nr
KTsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jaygqbV9sb2NrKTsKICAgICAgICAgbV9p
c0R5aW5nID0gdHJ1ZTsKKyAgICAgICAgZm9yIChSZWY8VGhyZWFkPiYgdGhyZWFkIDogbV90aHJl
YWRzKQorICAgICAgICAgICAgdGhyZWFkLT5zZXRJc0R5aW5nKHRydWUpOwogICAgICAgICBtX3dv
cmtBdmFpbGFibGVDb25kaXRpb24tPm5vdGlmeUFsbChsb2NrZXIpOwogICAgIH0KIAotICAgIGZv
ciAoUmVmUHRyPEF1dG9tYXRpY1RocmVhZD4mIHRocmVhZCA6IG1fdGhyZWFkcykKKyAgICBmb3Ig
KFJlZjxUaHJlYWQ+JiB0aHJlYWQgOiBtX3RocmVhZHMpCiAgICAgICAgIHRocmVhZC0+am9pbigp
OwogfQogCi12b2lkIFBhcmFsbGVsSGVscGVyUG9vbDo6ZW5zdXJlVGhyZWFkcyh1bnNpZ25lZCBu
dW1UaHJlYWRzKQordW5zaWduZWQgUGFyYWxsZWxIZWxwZXJQb29sOjpzZXROdW1iZXJPZlRocmVh
ZHModW5zaWduZWQgbnVtVGhyZWFkcykKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcigqbV9sb2Nr
KTsKLSAgICBpZiAobnVtVGhyZWFkcyA8IG1fbnVtVGhyZWFkcykKLSAgICAgICAgcmV0dXJuOwot
ICAgIG1fbnVtVGhyZWFkcyA9IG51bVRocmVhZHM7Ci0gICAgaWYgKGdldENsaWVudFdpdGhUYXNr
KGxvY2tlcikpCi0gICAgICAgIGRpZE1ha2VXb3JrQXZhaWxhYmxlKGxvY2tlcik7CisgICAgYXV0
byBzdXNwZW5zaW9uTG9ja2VyID0gaG9sZExvY2sobV9zdXNwZW5zaW9uTG9jayk7CisgICAgdW5z
aWduZWQgcHJldmlvdXNOdW1UaHJlYWRzID0gbV9udW1UaHJlYWRzOworICAgIGlmIChudW1UaHJl
YWRzIDwgbV90aHJlYWRzLnNpemUoKSkgeworICAgICAgICB1bnNpZ25lZCBjdXJyZW50TnVtYmVy
T2ZUaHJlYWRzID0gbV90aHJlYWRzLnNpemUoKTsKKyAgICAgICAgeworICAgICAgICAgICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jaygqbV9sb2NrKTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IGN1cnJlbnROdW1iZXJPZlRocmVhZHM7IGktLSA+IG51bVRocmVhZHM7KSB7CisgICAgICAg
ICAgICAgICAgUmVmPFRocmVhZD4mIHRocmVhZCA9IG1fdGhyZWFkc1tpXTsKKyAgICAgICAgICAg
ICAgICBpZiAodGhyZWFkLT5oYXNVbmRlcmx5aW5nVGhyZWFkKGxvY2tlcikpIHsKKyAgICAgICAg
ICAgICAgICAgICAgdGhyZWFkLT5zZXRJc0R5aW5nKHRydWUpOworICAgICAgICAgICAgICAgICAg
ICB0aHJlYWQtPm5vdGlmeShsb2NrZXIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBjdXJyZW50TnVtYmVyT2ZU
aHJlYWRzOyBpLS0gPiBudW1UaHJlYWRzOykgeworICAgICAgICAgICAgYm9vbCBpc1N0b3BwZWQg
PSBmYWxzZTsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKCptX2xvY2spOworICAgICAgICAgICAgICAgIGlzU3RvcHBlZCA9IG1fdGhyZWFkc1tp
XS0+dHJ5U3RvcChsb2NrZXIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFpc1N0
b3BwZWQpCisgICAgICAgICAgICAgICAgbV90aHJlYWRzW2ldLT5qb2luKCk7CisgICAgICAgICAg
ICBtX3RocmVhZHMucmVtb3ZlKGkpOworICAgICAgICB9CisgICAgICAgIG1fdGhyZWFkcy5zaHJp
bmtUb0ZpdCgpOworICAgICAgICBtX251bVRocmVhZHMgPSBudW1UaHJlYWRzOworICAgICAgICBB
U1NFUlQobV9udW1BY3RpdmUgPD0gbnVtYmVyT2ZUaHJlYWRzKTsKKyAgICB9IGVsc2UgeworICAg
ICAgICBtX251bVRocmVhZHMgPSBudW1UaHJlYWRzOworICAgICAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKCptX2xvY2spOworICAgICAgICBpZiAoZ2V0Q2xpZW50V2l0aFRhc2sobG9ja2VyKSkK
KyAgICAgICAgICAgIGRpZE1ha2VXb3JrQXZhaWxhYmxlKHN1c3BlbnNpb25Mb2NrZXIsIGxvY2tl
cik7CisgICAgfQorICAgIHJldHVybiBwcmV2aW91c051bVRocmVhZHM7CiB9CiAKIHZvaWQgUGFy
YWxsZWxIZWxwZXJQb29sOjpkb1NvbWVIZWxwaW5nKCkKQEAgLTE1OSw3ICsyMzcsNyBAQCB2b2lk
IFBhcmFsbGVsSGVscGVyUG9vbDo6ZG9Tb21lSGVscGluZygpCiAgICAgUGFyYWxsZWxIZWxwZXJD
bGllbnQqIGNsaWVudDsKICAgICBSZWZQdHI8U2hhcmVkVGFzazx2b2lkICgpPj4gdGFzazsKICAg
ICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKCptX2xvY2spOworICAgICAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKCptX2xvY2spOwogICAgICAgICBjbGllbnQgPSBnZXRDbGllbnRXaXRo
VGFzayhsb2NrZXIpOwogICAgICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgICAgIHJldHVybjsK
QEAgLTE2OSw1OCArMjQ3LDE0IEBAIHZvaWQgUGFyYWxsZWxIZWxwZXJQb29sOjpkb1NvbWVIZWxw
aW5nKCkKICAgICBjbGllbnQtPnJ1blRhc2sodGFzayk7CiB9CiAKLWNsYXNzIFBhcmFsbGVsSGVs
cGVyUG9vbDo6VGhyZWFkIDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7Ci1wdWJsaWM6Ci0gICAg
VGhyZWFkKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIFBhcmFsbGVsSGVscGVyUG9vbCYg
cG9vbCkKLSAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBwb29sLm1fbG9jaywgcG9v
bC5tX3dvcmtBdmFpbGFibGVDb25kaXRpb24uY29weVJlZigpKQotICAgICAgICAsIG1fcG9vbChw
b29sKQotICAgIHsKLSAgICB9Ci0gICAgCi0gICAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0IG92
ZXJyaWRlCi0gICAgewotICAgICAgICByZXR1cm4gbV9wb29sLm1fdGhyZWFkTmFtZS5kYXRhKCk7
Ci0gICAgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgUG9sbFJlc3VsdCBwb2xsKGNvbnN0IEFic3RyYWN0
TG9ja2VyJiBsb2NrZXIpIG92ZXJyaWRlCi0gICAgewotICAgICAgICBpZiAobV9wb29sLm1faXNE
eWluZykKLSAgICAgICAgICAgIHJldHVybiBQb2xsUmVzdWx0OjpTdG9wOwotICAgICAgICBtX2Ns
aWVudCA9IG1fcG9vbC5nZXRDbGllbnRXaXRoVGFzayhsb2NrZXIpOwotICAgICAgICBpZiAobV9j
bGllbnQpIHsKLSAgICAgICAgICAgIG1fdGFzayA9IG1fY2xpZW50LT5jbGFpbVRhc2sobG9ja2Vy
KTsKLSAgICAgICAgICAgIHJldHVybiBQb2xsUmVzdWx0OjpXb3JrOwotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiBQb2xsUmVzdWx0OjpXYWl0OwotICAgIH0KLSAgICAKLSAgICBXb3JrUmVzdWx0
IHdvcmsoKSBvdmVycmlkZQotICAgIHsKLSAgICAgICAgbV9jbGllbnQtPnJ1blRhc2sobV90YXNr
KTsKLSAgICAgICAgbV9jbGllbnQgPSBudWxscHRyOwotICAgICAgICBtX3Rhc2sgPSBudWxscHRy
OwotICAgICAgICByZXR1cm4gV29ya1Jlc3VsdDo6Q29udGludWU7Ci0gICAgfQotICAgIAotcHJp
dmF0ZToKLSAgICBQYXJhbGxlbEhlbHBlclBvb2wmIG1fcG9vbDsKLSAgICBQYXJhbGxlbEhlbHBl
ckNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07Ci0gICAgUmVmUHRyPFNoYXJlZFRhc2s8dm9p
ZCAoKT4+IG1fdGFzazsKLX07Ci0KLXZvaWQgUGFyYWxsZWxIZWxwZXJQb29sOjpkaWRNYWtlV29y
a0F2YWlsYWJsZShjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKQordm9pZCBQYXJhbGxlbEhl
bHBlclBvb2w6OmRpZE1ha2VXb3JrQXZhaWxhYmxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBzdXNw
ZW5zaW9uTG9ja2VyLCBjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKQogeworICAgIFVOVVNF
RF9QQVJBTShzdXNwZW5zaW9uTG9ja2VyKTsKICAgICB3aGlsZSAobV9udW1UaHJlYWRzID4gbV90
aHJlYWRzLnNpemUoKSkKLSAgICAgICAgbV90aHJlYWRzLmFwcGVuZChhZG9wdFJlZihuZXcgVGhy
ZWFkKGxvY2tlciwgKnRoaXMpKSk7CisgICAgICAgIG1fdGhyZWFkcy5hcHBlbmQoYWRvcHRSZWYo
Km5ldyBUaHJlYWQobG9ja2VyLCAqdGhpcykpKTsKICAgICBtX3dvcmtBdmFpbGFibGVDb25kaXRp
b24tPm5vdGlmeUFsbChsb2NrZXIpOwogfQogCi1ib29sIFBhcmFsbGVsSGVscGVyUG9vbDo6aGFz
Q2xpZW50V2l0aFRhc2soY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlcikKLXsKLSAgICByZXR1
cm4gISFnZXRDbGllbnRXaXRoVGFzayhsb2NrZXIpOwotfQotCiBQYXJhbGxlbEhlbHBlckNsaWVu
dCogUGFyYWxsZWxIZWxwZXJQb29sOjpnZXRDbGllbnRXaXRoVGFzayhjb25zdCBBYnN0cmFjdExv
Y2tlciYpCiB7CiAgICAgLy8gV2UgbG9hZC1iYWxhbmNlIGJ5IGJlaW5nIHJhbmRvbS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oIGIvU291cmNlL1dURi93
dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKaW5kZXggMWU3NTk5YzgzZDY3MTIxYzdlNmJmZTg3Y2Nh
OTFlZjZjZTg2ZTQwNy4uZjYwOWM1ZDQ1ZTZkZDY4ZjlkMzZkNGI2OWJmZTVmZGNiNTkyNWFhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKKysrIGIvU291
cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKQEAgLTE4Miw3ICsxODIsNyBAQCBjbGFz
cyBQYXJhbGxlbEhlbHBlclBvb2wgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UGFyYWxs
ZWxIZWxwZXJQb29sPiB7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFBhcmFsbGVsSGVscGVyUG9v
bChDU3RyaW5nJiYgdGhyZWFkTmFtZSk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIH5QYXJhbGxl
bEhlbHBlclBvb2woKTsKIAotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGVuc3VyZVRocmVh
ZHModW5zaWduZWQgbnVtVGhyZWFkcyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVk
IHNldE51bWJlck9mVGhyZWFkcyh1bnNpZ25lZCBudW1UaHJlYWRzKTsKIAogICAgIHVuc2lnbmVk
IG51bWJlck9mVGhyZWFkcygpIGNvbnN0IHsgcmV0dXJuIG1fbnVtVGhyZWFkczsgfQogICAgIApA
QCAtMTkzLDcgKzE5Myw3IEBAIGNsYXNzIFBhcmFsbGVsSGVscGVyUG9vbCA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxQYXJhbGxlbEhlbHBlclBvb2w+IHsKICAgICBjbGFzcyBUaHJlYWQ7
CiAgICAgZnJpZW5kIGNsYXNzIFRocmVhZDsKIAotICAgIHZvaWQgZGlkTWFrZVdvcmtBdmFpbGFi
bGUoY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKKyAgICB2b2lkIGRpZE1ha2VXb3JrQXZhaWxhYmxl
KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBzdXNwZW5zaW9uTG9ja2VyLCBjb25zdCBBYnN0cmFjdExv
Y2tlciYpOwogCiAgICAgYm9vbCBoYXNDbGllbnRXaXRoVGFzayhjb25zdCBBYnN0cmFjdExvY2tl
ciYpOwogICAgIFBhcmFsbGVsSGVscGVyQ2xpZW50KiBnZXRDbGllbnRXaXRoVGFzayhjb25zdCBB
YnN0cmFjdExvY2tlciYpOwpAQCAtMjAyLDExICsyMDIsMTIgQEAgY2xhc3MgUGFyYWxsZWxIZWxw
ZXJQb29sIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFBhcmFsbGVsSGVscGVyUG9vbD4g
ewogICAgIEJveDxMb2NrPiBtX2xvY2s7IC8vIEF1dG9tYXRpY1RocmVhZCB3YW50cyB0aGlzIGlu
IGEgYm94IGZvciBzYWZldHkuCiAgICAgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gbV93
b3JrQXZhaWxhYmxlQ29uZGl0aW9uOwogICAgIENvbmRpdGlvbiBtX3dvcmtDb21wbGV0ZUNvbmRp
dGlvbjsKKyAgICBMb2NrIG1fc3VzcGVuc2lvbkxvY2s7CiAKICAgICBXZWFrUmFuZG9tIG1fcmFu
ZG9tOwogICAgIAogICAgIFZlY3RvcjxQYXJhbGxlbEhlbHBlckNsaWVudCo+IG1fY2xpZW50czsK
LSAgICBWZWN0b3I8UmVmUHRyPEF1dG9tYXRpY1RocmVhZD4+IG1fdGhyZWFkczsKKyAgICBWZWN0
b3I8UmVmPFRocmVhZD4+IG1fdGhyZWFkczsKICAgICBDU3RyaW5nIG1fdGhyZWFkTmFtZTsKICAg
ICB1bnNpZ25lZCBtX251bVRocmVhZHMgeyAwIH07IC8vIFRoaXMgY2FuIGJlIGxhcmdlciB0aGFu
IG1fdGhyZWFkcy5zaXplKCkgYmVjYXVzZSB3ZSBzdGFydCB0aHJlYWRzIG9ubHkgb25jZSB0aGVy
ZSBpcyB3b3JrLgogICAgIGJvb2wgbV9pc0R5aW5nIHsgZmFsc2UgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362936</attachid>
            <date>2019-02-25 15:32:50 -0800</date>
            <delta_ts>2019-02-25 15:32:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195020-20190225153249.patch</filename>
            <type>text/plain</type>
            <size>20182</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMDU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZDlhYjA4ZDhhNjhiMGQ1MWViNzU4Mzg3ZDNlNDA4MmFkYWUzODUwLi4wOTYyMTg2N2Q0Y2I0ZDYw
ZDU4OTI0OGRlYjNhZWFkYTNlZjRlYzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAxOS0wMi0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBTUEkgdG8gY29uZmlndXJlIG51bWJlciBvZiBHQyBtYXJr
ZXJzIGR5bmFtaWNhbGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTUwMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIEFQSS9KU1ZpcnR1YWxNYWNoaW5lLm1tOgorICAgICAgICAoK1tKU1ZpcnR1YWxN
YWNoaW5lIHNldE51bWJlck9mR0NNYXJrZXJzOl0pOgorICAgICAgICAqIEFQSS9KU1ZpcnR1YWxN
YWNoaW5lUHJpdmF0ZS5oOgorICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLm1tOgorICAgICAg
ICAocnVuR0NNYXJrZXJzTGltaXRUZXN0cyk6CisgICAgICAgIChydW5HQ01hcmtlcnNMaW1pdFRl
c3RzQWZ0ZXJHQ1J1bnMpOgorICAgICAgICAodGVzdE9iamVjdGl2ZUNBUEkpOgorICAgICAgICAq
IGhlYXAvSGVhcEhlbHBlclBvb2wuY3BwOgorICAgICAgICAoSlNDOjpnZXROdW1iZXJPZkdDTWFy
a2Vycyk6CisgICAgICAgIChKU0M6OnNldE51bWJlck9mR0NNYXJrZXJzKToKKyAgICAgICAgKEpT
Qzo6aGVhcEhlbHBlclBvb2xJZkV4aXN0cyk6CisgICAgICAgIChKU0M6OmhlYXBIZWxwZXJQb29s
KToKKyAgICAgICAgKiBoZWFwL0hlYXBIZWxwZXJQb29sLmg6CisKIDIwMTktMDItMjUgIFRhZGV1
IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgaGFzaGluZyBD
b21wYWN0VmFyaWFibGVFbnZpcm9ubWVudCB3aGVuIGRlY29kaW5nIENvbXBhY3RWYXJpYWJsZU1h
cDo6SGFuZGxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCmluZGV4IDBkYWQ4YzVhZmZjYzhlM2FlZWUwMWMyNzIzOTU3ZjkxNjBmNTg4ODQu
LmMxMjNlNzcxYzg5YjY0MTVhZmUwZDQ0NWM2NTJhMDliYTFiNWU1MzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjggQEAKKzIwMTktMDItMjUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbSlNDXSBBZGQgU1BJIHRvIGNvbmZpZ3VyZSBudW1iZXIgb2YgR0MgbWFya2VycyBk
eW5hbWljYWxseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk1MDIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcDoKKyAgICAgICAgKFdURjo6UGFyYWxsZWxI
ZWxwZXJQb29sOjpUaHJlYWQ6OlRocmVhZCk6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVy
UG9vbDo6VGhyZWFkOjpzZXRJc0R5aW5nKToKKyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJQ
b29sOjpUaHJlYWQ6OmlzRHlpbmcpOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBlckNsaWVu
dDo6UGFyYWxsZWxIZWxwZXJDbGllbnQpOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBlckNs
aWVudDo6flBhcmFsbGVsSGVscGVyQ2xpZW50KToKKyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxw
ZXJDbGllbnQ6OnNldFRhc2spOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBlckNsaWVudDo6
ZmluaXNoKToKKyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJDbGllbnQ6OmRvU29tZUhlbHBp
bmcpOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBlckNsaWVudDo6cnVuVGFzayk6CisgICAg
ICAgIChXVEY6OlBhcmFsbGVsSGVscGVyUG9vbDo6flBhcmFsbGVsSGVscGVyUG9vbCk6CisgICAg
ICAgIChXVEY6OlBhcmFsbGVsSGVscGVyUG9vbDo6c2V0TnVtYmVyT2ZUaHJlYWRzKToKKyAgICAg
ICAgKFdURjo6UGFyYWxsZWxIZWxwZXJQb29sOjpkb1NvbWVIZWxwaW5nKToKKyAgICAgICAgKFdU
Rjo6UGFyYWxsZWxIZWxwZXJQb29sOjpkaWRNYWtlV29ya0F2YWlsYWJsZSk6CisgICAgICAgIChX
VEY6OlBhcmFsbGVsSGVscGVyUG9vbDo6ZW5zdXJlVGhyZWFkcyk6IERlbGV0ZWQuCisgICAgICAg
IChXVEY6OlBhcmFsbGVsSGVscGVyUG9vbDo6aGFzQ2xpZW50V2l0aFRhc2spOiBEZWxldGVkLgor
ICAgICAgICAqIHd0Zi9QYXJhbGxlbEhlbHBlclBvb2wuaDoKKwogMjAxOS0wMi0yNSAgU2FtIFdl
aW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVwZGF0ZSBkb3VibGUtY29udmVyc2lv
biB0byB0aGUgbGF0ZXN0IHZlcnNpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNW
aXJ0dWFsTWFjaGluZS5tbQppbmRleCA1MDRkMzNjZjVmN2NiNTNmMTZkZDM3NzkzZmM2MWM5MTVl
MjNiZmU2Li4zZTY4MDg1MWY3OGIyNzYyYzllNTVlMWM3MmZjNTNlNDhhNzk3YmE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmlydHVhbE1hY2hpbmUubW0KKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNoaW5lLm1tCkBAIC0zMSw2ICsz
MSw3IEBACiAKICNpbXBvcnQgIkFQSUNhc3QuaCIKICNpbXBvcnQgIkRGR1dvcmtsaXN0LmgiCisj
aW1wb3J0ICJIZWFwSGVscGVyUG9vbC5oIgogI2ltcG9ydCAiSlNNYW5hZ2VkVmFsdWVJbnRlcm5h
bC5oIgogI2ltcG9ydCAiSlNWaXJ0dWFsTWFjaGluZUludGVybmFsLmgiCiAjaW1wb3J0ICJKU1Zp
cnR1YWxNYWNoaW5lUHJpdmF0ZS5oIgpAQCAtMjc1LDYgKzI3NiwxMSBAQCAtICh2b2lkKXNocmlu
a0Zvb3RwcmludFdoZW5JZGxlCiAgICAgdm0tPnNocmlua0Zvb3RwcmludFdoZW5JZGxlKCk7CiB9
CiAKKysgKE5TVUludGVnZXIpc2V0TnVtYmVyT2ZHQ01hcmtlcnM6KE5TVUludGVnZXIpbnVtYmVy
T2ZUaHJlYWRzCit7CisgICAgcmV0dXJuIEpTQzo6c2V0TnVtYmVyT2ZHQ01hcmtlcnMobnVtYmVy
T2ZUaHJlYWRzKTsKK30KKwogI2lmIEVOQUJMRShERkdfSklUKQogCiArIChOU1VJbnRlZ2VyKXNl
dE51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRzOihOU1VJbnRlZ2VyKW51bWJlck9mVGhyZWFkcwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNoaW5lUHJp
dmF0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNoaW5lUHJpdmF0
ZS5oCmluZGV4IDhmZDJlYjc0ZmI4MWU3OWY0ZmFjYTg1NmRhYWRlZTY0ZDUzZGNhMjkuLmE5MmNk
NWQ1NjJiN2M2YzMwZDExZWM1MDE3ZTZkMGU1NDFkYWZmYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZVByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTVmlydHVhbE1hY2hpbmVQcml2YXRlLmgKQEAgLTQ1LDYgKzQ1
LDIxIEBACiAKIC0gKHZvaWQpc2hyaW5rRm9vdHByaW50V2hlbklkbGUgSlNDX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKIAorLyohCitAbWV0aG9kCitAYWJzdHJhY3Qg
U2V0IHRoZSBudW1iZXIgb2YgdGhyZWFkcyB0byBiZSB1c2VkIGJ5IHRoZSBHQyBtYXJrZXIuCitA
ZGlzY3Vzc2lvbiBJZiBjYWxsZWQgYWZ0ZXIgdGhlIFZNIGhhcyBiZWVuIGluaXRpYWxpemVkLCBp
dCB3aWxsIHRlcm1pbmF0ZQorIHRocmVhZHMgdW50aWwgaXQgbWVldHMgdGhlIG5ldyBsaW1pdCBv
ciBjcmVhdGUgbmV3IHRocmVhZHMgYWNjb3JkaW5nbHkgaWYgdGhlCisgbmV3IGxpbWl0IGlzIGhp
Z2hlciB0aGFuIHRoZSBwcmV2aW91cyBsaW1pdC4gSWYgY2FsbGVkIGJlZm9yZSBpbml0aWFsaXph
dGlvbiwKKyB0aGUgT3B0aW9ucyB2YWx1ZSBmb3IgdGhlIG51bWJlciBvZiBHQyBtYXJrZXIgdGhy
ZWFkcyB3aWxsIGJlIHVwZGF0ZWQgdG8gZW5zdXJlCisgdGhlIEdDIG1hcmtlciBhbHJlYWR5IHN0
YXJ0cyB3aXRoIHRoZSB1cC10by1kYXRlIGxpbWl0LgorQHBhcmFtIG51bWJlck9mVGhyZWFkcyBU
aGUgbnVtYmVyIG9mIHRocmVhZHMgdGhlIEdDIG1hcmtlciBzaG91bGQgdXNlIGdvaW5nIGZvcndh
cmQKK0ByZXN1bHQgVGhlIHByZXZpb3VzIG51bWJlciBvZiB0aHJlYWRzIGJlaW5nIHVzZWQgYnkg
dGhlIEdDIG1hcmtlcgorKi8KKworLy8gRklYTUU6IEpTQ19BUElfQVZBSUxBQkxFIHZlcnNpb25z
LgorKyAoTlNVSW50ZWdlcilzZXROdW1iZXJPZkdDTWFya2VyczooTlNVSW50ZWdlciludW1iZXJP
ZlRocmVhZHMgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKKwog
I2lmIEVOQUJMRShERkdfSklUKQogCiAvKiEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVz
dHMvdGVzdGFwaS5tbQppbmRleCBmZWE2NWNlYmU1NTI3NGIwNTU5YjRiODcwYTNlYWYzZDU4Mjg3
MDc2Li5jNGZhYTEzZjc1YWIzMWI5OWY4M2UzNWI2MDI0ZDliZThkNGVlYTA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0KKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tCkBAIC0zMCw2ICszMCw4IEBACiAj
aW1wb3J0ICJDdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVzdC5oIgogI2ltcG9ydCAiREZH
V29ya2xpc3QuaCIKICNpbXBvcnQgIkRhdGVUZXN0cy5oIgorI2ltcG9ydCAiSGVhcEhlbHBlclBv
b2wuaCIKKyNpbXBvcnQgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbXBvcnQgIkpTQ2FzdC5o
IgogI2ltcG9ydCAiSlNDb250ZXh0UHJpdmF0ZS5oIgogI2ltcG9ydCAiSlNFeHBvcnRUZXN0cy5o
IgpAQCAtNTI5LDYgKzUzMSw2MiBAQCBzdGF0aWMgdm9pZCogbXVsdGlWTVRocmVhZE1haW4odm9p
ZCogb2tQdHIpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK3N0YXRpYyB2b2lkIHJ1bkdDTWFy
a2Vyc0xpbWl0VGVzdHMoKQoreworICAgIGF1dG8gdGVzdEdDTWFya2VycyA9IFtdIHsKKyAgICAg
ICAgdW5zaWduZWQgZGVmYXVsdE51bWJlck9mR0NNYXJrZXJzID0gSlNDOjpPcHRpb25zOjpudW1i
ZXJPZkdDTWFya2VycygpOworICAgICAgICB1bnNpZ25lZCB0YXJnZXROdW1iZXJPZkdDTWFya2Vy
cyA9IDE7CisgICAgICAgIHVuc2lnbmVkIGluaXRpYWxOdW1iZXJPZkdDTWFya2VycyA9IFtKU1Zp
cnR1YWxNYWNoaW5lIHNldE51bWJlck9mR0NNYXJrZXJzOnRhcmdldE51bWJlck9mR0NNYXJrZXJz
XTsKKyAgICAgICAgZGF0YUxvZ0xuKGluaXRpYWxOdW1iZXJPZkdDTWFya2VycywgIiAiLCBkZWZh
dWx0TnVtYmVyT2ZHQ01hcmtlcnMpOworICAgICAgICBjaGVja1Jlc3VsdChAIkluaXRpYWwgbnVt
YmVyIG9mIEdDIG1hcmtlcnMgc2hvdWxkIGJlIHRoZSB2YWx1ZSBwcm92aWRlZCB0aHJvdWdoIE9w
dGlvbnMiLCBpbml0aWFsTnVtYmVyT2ZHQ01hcmtlcnMgPT0gZGVmYXVsdE51bWJlck9mR0NNYXJr
ZXJzKTsKKyAgICAgICAgdW5zaWduZWQgdXBkYXRlZE51bWJlck9mR0NNYXJrZXJzID0gW0pTVmly
dHVhbE1hY2hpbmUgc2V0TnVtYmVyT2ZHQ01hcmtlcnM6aW5pdGlhbE51bWJlck9mR0NNYXJrZXJz
XTsKKyAgICAgICAgY2hlY2tSZXN1bHQoQCJOdW1iZXIgb2YgR0MgbWFya2VycyBzaG91bGQgaGF2
ZSBiZWVuIHVwZGF0ZWQiLCB1cGRhdGVkTnVtYmVyT2ZHQ01hcmtlcnMgPT0gdGFyZ2V0TnVtYmVy
T2ZHQ01hcmtlcnMpOworICAgIH07CisKKyAgICBjaGVja1Jlc3VsdChAInJ1bkdDTWFya2Vyc0xp
bWl0VGVzdHMoKSBtdXN0IHJ1biBhdCB0aGUgdmVyeSBiZWdpbm5pbmcgdG8gdGVzdCB0aGUgY2Fz
ZSB3aGVyZSB0aGUgZ2xvYmFsIGhlYXAgaGVscGVyIHBvb2wgd2FzIG5vdCBpbml0aWFsaXplZCB5
ZXQiLCAhSlNDOjpoZWFwSGVscGVyUG9vbElmRXhpc3RzKCkpOworCisgICAgdGVzdEdDTWFya2Vy
cygpOworICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAgICBKU1ZpcnR1YWxNYWNoaW5lKiB2
bSA9IFtbSlNWaXJ0dWFsTWFjaGluZSBhbGxvY10gaW5pdF07CisgICAgICAgIFVOVVNFRF9QQVJB
TSh2bSk7CisgICAgfQorICAgIGNoZWNrUmVzdWx0KEAiSGVhcCBoZWxwZXIgcG9vbCBpcyBhbHJl
YWR5IGluaXRpYWxpemVkIiwgSlNDOjpoZWFwSGVscGVyUG9vbElmRXhpc3RzKCkpOworICAgIHRl
c3RHQ01hcmtlcnMoKTsKK30KKworc3RhdGljIHZvaWQgcnVuR0NNYXJrZXJzTGltaXRUZXN0c0Fm
dGVyR0NSdW5zKCkKK3sKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgSlNWaXJ0dWFs
TWFjaGluZSogdm0gPSBbW0pTVmlydHVhbE1hY2hpbmUgYWxsb2NdIGluaXRdOworICAgICAgICBK
U0NvbnRleHQqIGNvbnRleHQgPSBbW0pTQ29udGV4dCBhbGxvY10gaW5pdFdpdGhWaXJ0dWFsTWFj
aGluZTp2bV07CisKKyAgICAgICAgYXV0byBkb0dDID0gWyZdIHsKKyAgICAgICAgICAgIFtjb250
ZXh0IGV2YWx1YXRlU2NyaXB0OgorICAgICAgICAgICAgICAgIEAiZm9yICh2YXIgaSA9IDA7IGkg
PCAxZTY7ICsraSkge1xuIgorICAgICAgICAgICAgICAgICAiICAgIHZhciBuZXdBcnJheSA9IG5l
dyBBcnJheSgpO1xuIgorICAgICAgICAgICAgICAgICAiICAgIG5ld0FycmF5W2ldID0ge307XG4i
CisgICAgICAgICAgICAgICAgICJ9XG4iXTsKKyAgICAgICAgICAgIEpTU3luY2hyb25vdXNHYXJi
YWdlQ29sbGVjdEZvckRlYnVnZ2luZyhbY29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZdKTsKKyAg
ICAgICAgfTsKKworICAgICAgICBhdXRvIHJ1bkdDV2l0aENoYW5naW5nSGVhcEhlbHBlclRocmVh
ZHMgPSBbJl0gKHVuc2lnbmVkIHRhcmdldE51bWJlck9mR0NNYXJrZXJzKSB7CisgICAgICAgICAg
ICBkb0dDKCk7CisKKyAgICAgICAgICAgIHVuc2lnbmVkIGRlZmF1bHROdW1iZXJPZkdDTWFya2Vy
cyA9IEpTQzo6T3B0aW9uczo6bnVtYmVyT2ZHQ01hcmtlcnMoKTsKKyAgICAgICAgICAgIHVuc2ln
bmVkIGluaXRpYWxOdW1iZXJPZkdDTWFya2VycyA9IFtKU1ZpcnR1YWxNYWNoaW5lIHNldE51bWJl
ck9mR0NNYXJrZXJzOnRhcmdldE51bWJlck9mR0NNYXJrZXJzXTsKKyAgICAgICAgICAgIGNoZWNr
UmVzdWx0KEAiSW5pdGlhbCBudW1iZXIgb2YgR0MgbWFya2VycyBzaG91bGQgYmUgdGhlIHZhbHVl
IHByb3ZpZGVkIHRocm91Z2ggT3B0aW9ucyIsIGluaXRpYWxOdW1iZXJPZkdDTWFya2VycyA9PSBk
ZWZhdWx0TnVtYmVyT2ZHQ01hcmtlcnMpOworCisgICAgICAgICAgICBkb0dDKCk7CisKKyAgICAg
ICAgICAgIHVuc2lnbmVkIHVwZGF0ZWROdW1iZXJPZkdDTWFya2VycyA9IFtKU1ZpcnR1YWxNYWNo
aW5lIHNldE51bWJlck9mR0NNYXJrZXJzOmluaXRpYWxOdW1iZXJPZkdDTWFya2Vyc107CisgICAg
ICAgICAgICBjaGVja1Jlc3VsdChAIk51bWJlciBvZiBHQyBtYXJrZXJzIHNob3VsZCBoYXZlIGJl
ZW4gdXBkYXRlZCIsIHVwZGF0ZWROdW1iZXJPZkdDTWFya2VycyA9PSB0YXJnZXROdW1iZXJPZkdD
TWFya2Vycyk7CisgICAgICAgIH07CisKKyAgICAgICAgcnVuR0NXaXRoQ2hhbmdpbmdIZWFwSGVs
cGVyVGhyZWFkcygxKTsKKyAgICAgICAgcnVuR0NXaXRoQ2hhbmdpbmdIZWFwSGVscGVyVGhyZWFk
cygxNik7CisgICAgfQorfQorCiBzdGF0aWMgdm9pZCBydW5KSVRUaHJlYWRMaW1pdFRlc3RzKCkK
IHsKICNpZiBFTkFCTEUoREZHX0pJVCkKQEAgLTIzMDcsOCArMjM2NSwxMSBAQCB2b2lkIHRlc3RP
YmplY3RpdmVDQVBJKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfTsKIAorICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOworICAgIFJVTihydW5HQ01h
cmtlcnNMaW1pdFRlc3RzKCkpOwogICAgIFJVTihjaGVja05lZ2F0aXZlTlNJbnRlZ2VycygpKTsK
ICAgICBSVU4ocnVuSklUVGhyZWFkTGltaXRUZXN0cygpKTsKKyAgICBSVU4ocnVuR0NNYXJrZXJz
TGltaXRUZXN0c0FmdGVyR0NSdW5zKCkpOwogCiAgICAgUlVOKHRlc3RMb2FkZXJSZXNvbHZlc0Fi
c29sdXRlU2NyaXB0VVJMKCkpOwogICAgIFJVTih0ZXN0RmV0Y2goKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSGVscGVyUG9vbC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwSGVscGVyUG9vbC5jcHAKaW5kZXggNjE1YWRlNzNlN2ZkMzY1
MDViMDg1ZmUyZDVlNWY5MGRmODNkMDk5Mi4uZTA1MzMzNDU1YmFiZWVjODdjMzUzZWQ0Yzc4Mjlk
MmEzZTQ4ODhjZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcEhl
bHBlclBvb2wuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBIZWxwZXJQ
b29sLmNwcApAQCAtMzEsMTAgKzMxLDM0IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitzdGF0aWMg
dW5zaWduZWQgbnVtYmVyT2ZHQ01hcmtlcnM7CisKK3N0YXRpYyB1bnNpZ25lZCBnZXROdW1iZXJP
ZkdDTWFya2VycygpCit7CisgICAgcmV0dXJuIG51bWJlck9mR0NNYXJrZXJzID8gbnVtYmVyT2ZH
Q01hcmtlcnMgOiBPcHRpb25zOjpudW1iZXJPZkdDTWFya2VycygpOworfQorCit1bnNpZ25lZCBz
ZXROdW1iZXJPZkdDTWFya2Vycyh1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMpCit7CisgICAgUkVM
RUFTRV9BU1NFUlQobnVtYmVyT2ZUaHJlYWRzICE9IDApOworICAgIFBhcmFsbGVsSGVscGVyUG9v
bCogaGVscGVyUG9vbCA9IGhlYXBIZWxwZXJQb29sSWZFeGlzdHMoKTsKKyAgICBpZiAoaGVscGVy
UG9vbCkKKyAgICAgICAgcmV0dXJuIGhlbHBlclBvb2wtPnNldE51bWJlck9mVGhyZWFkcyhudW1i
ZXJPZlRocmVhZHMgLSAxKSArIDE7CisgICAgYXV0byBwcmV2aW91c051bWJlck9mVGhyZWFkcyA9
IGdldE51bWJlck9mR0NNYXJrZXJzKCk7CisgICAgbnVtYmVyT2ZHQ01hcmtlcnMgPSBudW1iZXJP
ZlRocmVhZHM7CisgICAgcmV0dXJuIHByZXZpb3VzTnVtYmVyT2ZUaHJlYWRzOworfQorCitzdGF0
aWMgUGFyYWxsZWxIZWxwZXJQb29sKiBnbG9iYWxIZWxwZXJQb29sOworCitQYXJhbGxlbEhlbHBl
clBvb2wqIGhlYXBIZWxwZXJQb29sSWZFeGlzdHMoKQoreworICAgIHJldHVybiBnbG9iYWxIZWxw
ZXJQb29sOworfQorCiBQYXJhbGxlbEhlbHBlclBvb2wmIGhlYXBIZWxwZXJQb29sKCkKIHsKICAg
ICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZUhlbHBlclBvb2xPbmNlRmxhZzsKLSAg
ICBzdGF0aWMgUGFyYWxsZWxIZWxwZXJQb29sKiBoZWxwZXJQb29sOwogICAgIHN0ZDo6Y2FsbF9v
bmNlKAogICAgICAgICBpbml0aWFsaXplSGVscGVyUG9vbE9uY2VGbGFnLAogICAgICAgICBbXSB7
CkBAIC00MywxMCArNjcsMTIgQEAgUGFyYWxsZWxIZWxwZXJQb29sJiBoZWFwSGVscGVyUG9vbCgp
CiAjZWxzZQogICAgICAgICAgICAgY29uc3QgY2hhciogdGhyZWFkTmFtZSA9ICJIZWFwIEhlbHBl
ciBUaHJlYWQiOwogI2VuZGlmCi0gICAgICAgICAgICBoZWxwZXJQb29sID0gbmV3IFBhcmFsbGVs
SGVscGVyUG9vbCh0aHJlYWROYW1lKTsKLSAgICAgICAgICAgIGhlbHBlclBvb2wtPmVuc3VyZVRo
cmVhZHMoT3B0aW9uczo6bnVtYmVyT2ZHQ01hcmtlcnMoKSAtIDEpOworICAgICAgICAgICAgYXV0
byBoZWxwZXJQb29sID0gbmV3IFBhcmFsbGVsSGVscGVyUG9vbCh0aHJlYWROYW1lKTsKKyAgICAg
ICAgICAgIGhlbHBlclBvb2wtPnNldE51bWJlck9mVGhyZWFkcyhnZXROdW1iZXJPZkdDTWFya2Vy
cygpIC0gMSk7CisgICAgICAgICAgICBXVEY6OnN0b3JlU3RvcmVGZW5jZSgpOworICAgICAgICAg
ICAgZ2xvYmFsSGVscGVyUG9vbCA9IGhlbHBlclBvb2w7CiAgICAgICAgIH0pOwotICAgIHJldHVy
biAqaGVscGVyUG9vbDsKKyAgICByZXR1cm4gKmdsb2JhbEhlbHBlclBvb2w7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cEhlbHBlclBvb2wuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBIZWxwZXJQb29s
LmgKaW5kZXggMDk4ZDllNTcxNTIzYzA4NjdlNGI4OTJkZjEwYjhiZWU2ZTNjNzkyZi4uNDkxODYy
ZjA1Y2JjOWVkMWMyYjM4MGM4Yzc0MjZmZDNiOGY2YTY1OCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcEhlbHBlclBvb2wuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9IZWFwSGVscGVyUG9vbC5oCkBAIC0yOSw2ICsyOSw5IEBACiAKIG5hbWVzcGFj
ZSBKU0MgewogCitKU19FWFBPUlRfUFJJVkFURSBQYXJhbGxlbEhlbHBlclBvb2wqIGhlYXBIZWxw
ZXJQb29sSWZFeGlzdHMoKTsKIFBhcmFsbGVsSGVscGVyUG9vbCYgaGVhcEhlbHBlclBvb2woKTsK
IAorSlNfRVhQT1JUX1BSSVZBVEUgdW5zaWduZWQgc2V0TnVtYmVyT2ZHQ01hcmtlcnModW5zaWdu
ZWQpOworCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Bh
cmFsbGVsSGVscGVyUG9vbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wu
Y3BwCmluZGV4IDRmOWE5MjJjMDg0YjIyMjVkZDE4NWM0NTU0ZGNlNDNkYjkwNDliZDAuLjgxNmEw
ZDA4YjhmNzRhOTllMjI1NTU4NjQzMTA4ZGMwZDQzNzJmOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvUGFyYWxs
ZWxIZWxwZXJQb29sLmNwcApAQCAtMzIsMTcgKzMyLDY0IEBACiAKIG5hbWVzcGFjZSBXVEYgewog
CitjbGFzcyBQYXJhbGxlbEhlbHBlclBvb2w6OlRocmVhZCA6IHB1YmxpYyBBdXRvbWF0aWNUaHJl
YWQgeworcHVibGljOgorICAgIFRocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLCBQ
YXJhbGxlbEhlbHBlclBvb2wmIHBvb2wpCisgICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tl
ciwgcG9vbC5tX2xvY2ssIHBvb2wubV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uLmNvcHlSZWYoKSkK
KyAgICAgICAgLCBtX3Bvb2wocG9vbCkKKyAgICB7CisgICAgfQorICAgIAorICAgIGNvbnN0IGNo
YXIqIG5hbWUoKSBjb25zdCBvdmVycmlkZQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fcG9vbC5t
X3RocmVhZE5hbWUuZGF0YSgpOworICAgIH0KKworICAgIHZvaWQgc2V0SXNEeWluZyhib29sIGlz
RHlpbmcpCisgICAgeworICAgICAgICBtX2lzRHlpbmcgPSBpc0R5aW5nOworICAgIH0KKyAgICBi
b29sIGlzRHlpbmcoKSB7IHJldHVybiBtX2lzRHlpbmc7IH0KKworcHJvdGVjdGVkOgorICAgIFBv
bGxSZXN1bHQgcG9sbChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKSBvdmVycmlkZQorICAg
IHsKKyAgICAgICAgaWYgKG1faXNEeWluZykKKyAgICAgICAgICAgIHJldHVybiBQb2xsUmVzdWx0
OjpTdG9wOworICAgICAgICBtX2NsaWVudCA9IG1fcG9vbC5nZXRDbGllbnRXaXRoVGFzayhsb2Nr
ZXIpOworICAgICAgICBpZiAobV9jbGllbnQpIHsKKyAgICAgICAgICAgIG1fdGFzayA9IG1fY2xp
ZW50LT5jbGFpbVRhc2sobG9ja2VyKTsKKyAgICAgICAgICAgIHJldHVybiBQb2xsUmVzdWx0OjpX
b3JrOworICAgICAgICB9CisgICAgICAgIHJldHVybiBQb2xsUmVzdWx0OjpXYWl0OworICAgIH0K
KyAgICAKKyAgICBXb3JrUmVzdWx0IHdvcmsoKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgbV9j
bGllbnQtPnJ1blRhc2sobV90YXNrKTsKKyAgICAgICAgbV9jbGllbnQgPSBudWxscHRyOworICAg
ICAgICBtX3Rhc2sgPSBudWxscHRyOworICAgICAgICByZXR1cm4gV29ya1Jlc3VsdDo6Q29udGlu
dWU7CisgICAgfQorICAgIAorcHJpdmF0ZToKKyAgICBQYXJhbGxlbEhlbHBlclBvb2wmIG1fcG9v
bDsKKyAgICBQYXJhbGxlbEhlbHBlckNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07CisgICAg
UmVmUHRyPFNoYXJlZFRhc2s8dm9pZCAoKT4+IG1fdGFzazsKKyAgICBib29sIG1faXNEeWluZyB7
IGZhbHNlIH07Cit9OworCiBQYXJhbGxlbEhlbHBlckNsaWVudDo6UGFyYWxsZWxIZWxwZXJDbGll
bnQoUmVmUHRyPFBhcmFsbGVsSGVscGVyUG9vbD4mJiBwb29sKQogICAgIDogbV9wb29sKFdURk1v
dmUocG9vbCkpCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIoKm1fcG9vbC0+bV9sb2NrKTsKKyAg
ICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKCptX3Bvb2wtPm1fbG9jayk7CiAgICAgUkVMRUFTRV9B
U1NFUlQoIW1fcG9vbC0+bV9pc0R5aW5nKTsKICAgICBtX3Bvb2wtPm1fY2xpZW50cy5hcHBlbmQo
dGhpcyk7CiB9CiAKIFBhcmFsbGVsSGVscGVyQ2xpZW50Ojp+UGFyYWxsZWxIZWxwZXJDbGllbnQo
KQogewotICAgIExvY2tIb2xkZXIgbG9ja2VyKCptX3Bvb2wtPm1fbG9jayk7CisgICAgYXV0byBs
b2NrZXIgPSBob2xkTG9jaygqbV9wb29sLT5tX2xvY2spOwogICAgIGZpbmlzaChsb2NrZXIpOwog
CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3Bvb2wtPm1fY2xpZW50cy5zaXplKCk7ICsr
aSkgewpAQCAtNTYsMTUgKzEwMywxNiBAQCBQYXJhbGxlbEhlbHBlckNsaWVudDo6flBhcmFsbGVs
SGVscGVyQ2xpZW50KCkKIAogdm9pZCBQYXJhbGxlbEhlbHBlckNsaWVudDo6c2V0VGFzayhSZWZQ
dHI8U2hhcmVkVGFzazx2b2lkICgpPj4mJiB0YXNrKQogewotICAgIExvY2tIb2xkZXIgbG9ja2Vy
KCptX3Bvb2wtPm1fbG9jayk7CisgICAgYXV0byBzdXNwZW5zaW9uTG9ja2VyID0gaG9sZExvY2so
bV9wb29sLT5tX3N1c3BlbnNpb25Mb2NrKTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKCpt
X3Bvb2wtPm1fbG9jayk7CiAgICAgUkVMRUFTRV9BU1NFUlQoIW1fdGFzayk7CiAgICAgbV90YXNr
ID0gV1RGTW92ZSh0YXNrKTsKLSAgICBtX3Bvb2wtPmRpZE1ha2VXb3JrQXZhaWxhYmxlKGxvY2tl
cik7CisgICAgbV9wb29sLT5kaWRNYWtlV29ya0F2YWlsYWJsZShzdXNwZW5zaW9uTG9ja2VyLCBs
b2NrZXIpOwogfQogCiB2b2lkIFBhcmFsbGVsSGVscGVyQ2xpZW50OjpmaW5pc2goKQogewotICAg
IExvY2tIb2xkZXIgbG9ja2VyKCptX3Bvb2wtPm1fbG9jayk7CisgICAgYXV0byBsb2NrZXIgPSBo
b2xkTG9jaygqbV9wb29sLT5tX2xvY2spOwogICAgIGZpbmlzaChsb2NrZXIpOwogfQogCkBAIC03
Miw3ICsxMjAsNyBAQCB2b2lkIFBhcmFsbGVsSGVscGVyQ2xpZW50Ojpkb1NvbWVIZWxwaW5nKCkK
IHsKICAgICBSZWZQdHI8U2hhcmVkVGFzazx2b2lkICgpPj4gdGFzazsKICAgICB7Ci0gICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKCptX3Bvb2wtPm1fbG9jayk7CisgICAgICAgIGF1dG8gbG9ja2Vy
ID0gaG9sZExvY2soKm1fcG9vbC0+bV9sb2NrKTsKICAgICAgICAgdGFzayA9IGNsYWltVGFzayhs
b2NrZXIpOwogICAgICAgICBpZiAoIXRhc2spCiAgICAgICAgICAgICByZXR1cm47CkBAIC0xMTIs
NyArMTYwLDcgQEAgdm9pZCBQYXJhbGxlbEhlbHBlckNsaWVudDo6cnVuVGFzayhjb25zdCBSZWZQ
dHI8U2hhcmVkVGFzazx2b2lkICgpPj4mIHRhc2spCiAgICAgdGFzay0+cnVuKCk7CiAKICAgICB7
Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKCptX3Bvb2wtPm1fbG9jayk7CisgICAgICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2soKm1fcG9vbC0+bV9sb2NrKTsKICAgICAgICAgUkVMRUFTRV9B
U1NFUlQobV9udW1BY3RpdmUpOwogICAgICAgICAvLyBObyBuZXcgdGFzayBjb3VsZCBoYXZlIGJl
ZW4gaW5zdGFsbGVkLCBzaW5jZSB3ZSB3ZXJlIHN0aWxsIGFjdGl2ZS4KICAgICAgICAgUkVMRUFT
RV9BU1NFUlQoIW1fdGFzayB8fCBtX3Rhc2sgPT0gdGFzayk7CkBAIC0xMzUsMjMgKzE4Myw1MyBA
QCBQYXJhbGxlbEhlbHBlclBvb2w6On5QYXJhbGxlbEhlbHBlclBvb2woKQogICAgIFJFTEVBU0Vf
QVNTRVJUKG1fY2xpZW50cy5pc0VtcHR5KCkpOwogICAgIAogICAgIHsKLSAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIoKm1fbG9jayk7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soKm1f
bG9jayk7CiAgICAgICAgIG1faXNEeWluZyA9IHRydWU7CisgICAgICAgIGZvciAoUmVmPFRocmVh
ZD4mIHRocmVhZCA6IG1fdGhyZWFkcykKKyAgICAgICAgICAgIHRocmVhZC0+c2V0SXNEeWluZyh0
cnVlKTsKICAgICAgICAgbV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uLT5ub3RpZnlBbGwobG9ja2Vy
KTsKICAgICB9CiAKLSAgICBmb3IgKFJlZlB0cjxBdXRvbWF0aWNUaHJlYWQ+JiB0aHJlYWQgOiBt
X3RocmVhZHMpCisgICAgZm9yIChSZWY8VGhyZWFkPiYgdGhyZWFkIDogbV90aHJlYWRzKQogICAg
ICAgICB0aHJlYWQtPmpvaW4oKTsKIH0KIAotdm9pZCBQYXJhbGxlbEhlbHBlclBvb2w6OmVuc3Vy
ZVRocmVhZHModW5zaWduZWQgbnVtVGhyZWFkcykKK3Vuc2lnbmVkIFBhcmFsbGVsSGVscGVyUG9v
bDo6c2V0TnVtYmVyT2ZUaHJlYWRzKHVuc2lnbmVkIG51bVRocmVhZHMpCiB7Ci0gICAgTG9ja0hv
bGRlciBsb2NrZXIoKm1fbG9jayk7Ci0gICAgaWYgKG51bVRocmVhZHMgPCBtX251bVRocmVhZHMp
Ci0gICAgICAgIHJldHVybjsKLSAgICBtX251bVRocmVhZHMgPSBudW1UaHJlYWRzOwotICAgIGlm
IChnZXRDbGllbnRXaXRoVGFzayhsb2NrZXIpKQotICAgICAgICBkaWRNYWtlV29ya0F2YWlsYWJs
ZShsb2NrZXIpOworICAgIGF1dG8gc3VzcGVuc2lvbkxvY2tlciA9IGhvbGRMb2NrKG1fc3VzcGVu
c2lvbkxvY2spOworICAgIHVuc2lnbmVkIHByZXZpb3VzTnVtVGhyZWFkcyA9IG1fbnVtVGhyZWFk
czsKKyAgICBpZiAobnVtVGhyZWFkcyA8IG1fdGhyZWFkcy5zaXplKCkpIHsKKyAgICAgICAgdW5z
aWduZWQgY3VycmVudE51bWJlck9mVGhyZWFkcyA9IG1fdGhyZWFkcy5zaXplKCk7CisgICAgICAg
IHsKKyAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soKm1fbG9jayk7CisgICAgICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSBjdXJyZW50TnVtYmVyT2ZUaHJlYWRzOyBpLS0gPiBudW1U
aHJlYWRzOykgeworICAgICAgICAgICAgICAgIFJlZjxUaHJlYWQ+JiB0aHJlYWQgPSBtX3RocmVh
ZHNbaV07CisgICAgICAgICAgICAgICAgaWYgKHRocmVhZC0+aGFzVW5kZXJseWluZ1RocmVhZChs
b2NrZXIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRocmVhZC0+c2V0SXNEeWluZyh0cnVlKTsK
KyAgICAgICAgICAgICAgICAgICAgdGhyZWFkLT5ub3RpZnkobG9ja2VyKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gY3VycmVudE51bWJlck9mVGhyZWFkczsgaS0tID4gbnVtVGhyZWFkczspIHsKKyAgICAgICAg
ICAgIGJvb2wgaXNTdG9wcGVkID0gZmFsc2U7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jaygqbV9sb2NrKTsKKyAgICAgICAgICAgICAgICBpc1N0
b3BwZWQgPSBtX3RocmVhZHNbaV0tPnRyeVN0b3AobG9ja2VyKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGlmICghaXNTdG9wcGVkKQorICAgICAgICAgICAgICAgIG1fdGhyZWFkc1tpXS0+
am9pbigpOworICAgICAgICAgICAgbV90aHJlYWRzLnJlbW92ZShpKTsKKyAgICAgICAgfQorICAg
ICAgICBtX3RocmVhZHMuc2hyaW5rVG9GaXQoKTsKKyAgICAgICAgbV9udW1UaHJlYWRzID0gbnVt
VGhyZWFkczsKKyAgICAgICAgQVNTRVJUKG1fbnVtQWN0aXZlIDw9IG51bWJlck9mVGhyZWFkcyk7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgbV9udW1UaHJlYWRzID0gbnVtVGhyZWFkczsKKyAgICAg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jaygqbV9sb2NrKTsKKyAgICAgICAgaWYgKGdldENsaWVu
dFdpdGhUYXNrKGxvY2tlcikpCisgICAgICAgICAgICBkaWRNYWtlV29ya0F2YWlsYWJsZShzdXNw
ZW5zaW9uTG9ja2VyLCBsb2NrZXIpOworICAgIH0KKyAgICByZXR1cm4gcHJldmlvdXNOdW1UaHJl
YWRzOwogfQogCiB2b2lkIFBhcmFsbGVsSGVscGVyUG9vbDo6ZG9Tb21lSGVscGluZygpCkBAIC0x
NTksNyArMjM3LDcgQEAgdm9pZCBQYXJhbGxlbEhlbHBlclBvb2w6OmRvU29tZUhlbHBpbmcoKQog
ICAgIFBhcmFsbGVsSGVscGVyQ2xpZW50KiBjbGllbnQ7CiAgICAgUmVmUHRyPFNoYXJlZFRhc2s8
dm9pZCAoKT4+IHRhc2s7CiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcigqbV9sb2Nr
KTsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jaygqbV9sb2NrKTsKICAgICAgICAgY2xp
ZW50ID0gZ2V0Q2xpZW50V2l0aFRhc2sobG9ja2VyKTsKICAgICAgICAgaWYgKCFjbGllbnQpCiAg
ICAgICAgICAgICByZXR1cm47CkBAIC0xNjksNTggKzI0NywxNCBAQCB2b2lkIFBhcmFsbGVsSGVs
cGVyUG9vbDo6ZG9Tb21lSGVscGluZygpCiAgICAgY2xpZW50LT5ydW5UYXNrKHRhc2spOwogfQog
Ci1jbGFzcyBQYXJhbGxlbEhlbHBlclBvb2w6OlRocmVhZCA6IHB1YmxpYyBBdXRvbWF0aWNUaHJl
YWQgewotcHVibGljOgotICAgIFRocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLCBQ
YXJhbGxlbEhlbHBlclBvb2wmIHBvb2wpCi0gICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tl
ciwgcG9vbC5tX2xvY2ssIHBvb2wubV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uLmNvcHlSZWYoKSkK
LSAgICAgICAgLCBtX3Bvb2wocG9vbCkKLSAgICB7Ci0gICAgfQotICAgIAotICAgIGNvbnN0IGNo
YXIqIG5hbWUoKSBjb25zdCBvdmVycmlkZQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fcG9vbC5t
X3RocmVhZE5hbWUuZGF0YSgpOwotICAgIH0KLQotcHJvdGVjdGVkOgotICAgIFBvbGxSZXN1bHQg
cG9sbChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKSBvdmVycmlkZQotICAgIHsKLSAgICAg
ICAgaWYgKG1fcG9vbC5tX2lzRHlpbmcpCi0gICAgICAgICAgICByZXR1cm4gUG9sbFJlc3VsdDo6
U3RvcDsKLSAgICAgICAgbV9jbGllbnQgPSBtX3Bvb2wuZ2V0Q2xpZW50V2l0aFRhc2sobG9ja2Vy
KTsKLSAgICAgICAgaWYgKG1fY2xpZW50KSB7Ci0gICAgICAgICAgICBtX3Rhc2sgPSBtX2NsaWVu
dC0+Y2xhaW1UYXNrKGxvY2tlcik7Ci0gICAgICAgICAgICByZXR1cm4gUG9sbFJlc3VsdDo6V29y
azsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gUG9sbFJlc3VsdDo6V2FpdDsKLSAgICB9Ci0g
ICAgCi0gICAgV29ya1Jlc3VsdCB3b3JrKCkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIG1fY2xp
ZW50LT5ydW5UYXNrKG1fdGFzayk7Ci0gICAgICAgIG1fY2xpZW50ID0gbnVsbHB0cjsKLSAgICAg
ICAgbV90YXNrID0gbnVsbHB0cjsKLSAgICAgICAgcmV0dXJuIFdvcmtSZXN1bHQ6OkNvbnRpbnVl
OwotICAgIH0KLSAgICAKLXByaXZhdGU6Ci0gICAgUGFyYWxsZWxIZWxwZXJQb29sJiBtX3Bvb2w7
Ci0gICAgUGFyYWxsZWxIZWxwZXJDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9OwotICAgIFJl
ZlB0cjxTaGFyZWRUYXNrPHZvaWQgKCk+PiBtX3Rhc2s7Ci19OwotCi12b2lkIFBhcmFsbGVsSGVs
cGVyUG9vbDo6ZGlkTWFrZVdvcmtBdmFpbGFibGUoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tl
cikKK3ZvaWQgUGFyYWxsZWxIZWxwZXJQb29sOjpkaWRNYWtlV29ya0F2YWlsYWJsZShjb25zdCBB
YnN0cmFjdExvY2tlciYgc3VzcGVuc2lvbkxvY2tlciwgY29uc3QgQWJzdHJhY3RMb2NrZXImIGxv
Y2tlcikKIHsKKyAgICBVTlVTRURfUEFSQU0oc3VzcGVuc2lvbkxvY2tlcik7CiAgICAgd2hpbGUg
KG1fbnVtVGhyZWFkcyA+IG1fdGhyZWFkcy5zaXplKCkpCi0gICAgICAgIG1fdGhyZWFkcy5hcHBl
bmQoYWRvcHRSZWYobmV3IFRocmVhZChsb2NrZXIsICp0aGlzKSkpOworICAgICAgICBtX3RocmVh
ZHMuYXBwZW5kKGFkb3B0UmVmKCpuZXcgVGhyZWFkKGxvY2tlciwgKnRoaXMpKSk7CiAgICAgbV93
b3JrQXZhaWxhYmxlQ29uZGl0aW9uLT5ub3RpZnlBbGwobG9ja2VyKTsKIH0KIAotYm9vbCBQYXJh
bGxlbEhlbHBlclBvb2w6Omhhc0NsaWVudFdpdGhUYXNrKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBs
b2NrZXIpCi17Ci0gICAgcmV0dXJuICEhZ2V0Q2xpZW50V2l0aFRhc2sobG9ja2VyKTsKLX0KLQog
UGFyYWxsZWxIZWxwZXJDbGllbnQqIFBhcmFsbGVsSGVscGVyUG9vbDo6Z2V0Q2xpZW50V2l0aFRh
c2soY29uc3QgQWJzdHJhY3RMb2NrZXImKQogewogICAgIC8vIFdlIGxvYWQtYmFsYW5jZSBieSBi
ZWluZyByYW5kb20uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBv
b2wuaCBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oCmluZGV4IDFlNzU5OWM4
M2Q2NzEyMWM3ZTZiZmU4N2NjYTkxZWY2Y2U4NmU0MDcuLmY2MDljNWQ0NWU2ZGQ2OGY5ZDM2ZDRi
NjliZmU1ZmRjYjU5MjVhYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVs
cGVyUG9vbC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oCkBAIC0x
ODIsNyArMTgyLDcgQEAgY2xhc3MgUGFyYWxsZWxIZWxwZXJQb29sIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPFBhcmFsbGVsSGVscGVyUG9vbD4gewogICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBQYXJhbGxlbEhlbHBlclBvb2woQ1N0cmluZyYmIHRocmVhZE5hbWUpOwogICAgIFdURl9FWFBP
UlRfUFJJVkFURSB+UGFyYWxsZWxIZWxwZXJQb29sKCk7CiAKLSAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgdm9pZCBlbnN1cmVUaHJlYWRzKHVuc2lnbmVkIG51bVRocmVhZHMpOworICAgIFdURl9FWFBP
UlRfUFJJVkFURSB1bnNpZ25lZCBzZXROdW1iZXJPZlRocmVhZHModW5zaWduZWQgbnVtVGhyZWFk
cyk7CiAKICAgICB1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMoKSBjb25zdCB7IHJldHVybiBtX251
bVRocmVhZHM7IH0KICAgICAKQEAgLTE5Myw3ICsxOTMsNyBAQCBjbGFzcyBQYXJhbGxlbEhlbHBl
clBvb2wgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UGFyYWxsZWxIZWxwZXJQb29sPiB7
CiAgICAgY2xhc3MgVGhyZWFkOwogICAgIGZyaWVuZCBjbGFzcyBUaHJlYWQ7CiAKLSAgICB2b2lk
IGRpZE1ha2VXb3JrQXZhaWxhYmxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJik7CisgICAgdm9pZCBk
aWRNYWtlV29ya0F2YWlsYWJsZShjb25zdCBBYnN0cmFjdExvY2tlciYgc3VzcGVuc2lvbkxvY2tl
ciwgY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKIAogICAgIGJvb2wgaGFzQ2xpZW50V2l0aFRhc2so
Y29uc3QgQWJzdHJhY3RMb2NrZXImKTsKICAgICBQYXJhbGxlbEhlbHBlckNsaWVudCogZ2V0Q2xp
ZW50V2l0aFRhc2soY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKQEAgLTIwMiwxMSArMjAyLDEyIEBA
IGNsYXNzIFBhcmFsbGVsSGVscGVyUG9vbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQ
YXJhbGxlbEhlbHBlclBvb2w+IHsKICAgICBCb3g8TG9jaz4gbV9sb2NrOyAvLyBBdXRvbWF0aWNU
aHJlYWQgd2FudHMgdGhpcyBpbiBhIGJveCBmb3Igc2FmZXR5LgogICAgIFJlZjxBdXRvbWF0aWNU
aHJlYWRDb25kaXRpb24+IG1fd29ya0F2YWlsYWJsZUNvbmRpdGlvbjsKICAgICBDb25kaXRpb24g
bV93b3JrQ29tcGxldGVDb25kaXRpb247CisgICAgTG9jayBtX3N1c3BlbnNpb25Mb2NrOwogCiAg
ICAgV2Vha1JhbmRvbSBtX3JhbmRvbTsKICAgICAKICAgICBWZWN0b3I8UGFyYWxsZWxIZWxwZXJD
bGllbnQqPiBtX2NsaWVudHM7Ci0gICAgVmVjdG9yPFJlZlB0cjxBdXRvbWF0aWNUaHJlYWQ+PiBt
X3RocmVhZHM7CisgICAgVmVjdG9yPFJlZjxUaHJlYWQ+PiBtX3RocmVhZHM7CiAgICAgQ1N0cmlu
ZyBtX3RocmVhZE5hbWU7CiAgICAgdW5zaWduZWQgbV9udW1UaHJlYWRzIHsgMCB9OyAvLyBUaGlz
IGNhbiBiZSBsYXJnZXIgdGhhbiBtX3RocmVhZHMuc2l6ZSgpIGJlY2F1c2Ugd2Ugc3RhcnQgdGhy
ZWFkcyBvbmx5IG9uY2UgdGhlcmUgaXMgd29yay4KICAgICBib29sIG1faXNEeWluZyB7IGZhbHNl
IH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>