<?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>186079</bug_id>
          
          <creation_ts>2018-05-29 20:19:27 -0700</creation_ts>
          <short_desc>[Win][MiniBrowser] Move MainWindow related code from Common.cpp to MainWindow.cpp</short_desc>
          <delta_ts>2018-05-30 20:36:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</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>
          
          <blocked>184770</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>lforschler</cc>
    
    <cc>pvollan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1428329</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-05-29 20:19:27 -0700</bug_when>
    <thetext>[Win][MiniBrowser] Move MainWindow related code from Common.cpp to MainWindow.cpp

This is a sub task of Bug 184770.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428335</commentid>
    <comment_count>1</comment_count>
      <attachid>341553</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-05-29 20:38:13 -0700</bug_when>
    <thetext>Created attachment 341553
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428338</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-29 20:40:06 -0700</bug_when>
    <thetext>Attachment 341553 did not pass style-queue:


ERROR: Tools/MiniBrowser/win/Common.cpp:29:  Found other header before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Tools/MiniBrowser/win/Common.cpp:30:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Tools/MiniBrowser/win/WinMain.cpp:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/MiniBrowser/win/Common.h:28:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 4 in 8 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>1428602</commentid>
    <comment_count>3</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-05-30 14:36:29 -0700</bug_when>
    <thetext>Could you review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428608</commentid>
    <comment_count>4</comment_count>
      <attachid>341553</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-05-30 14:47:33 -0700</bug_when>
    <thetext>Comment on attachment 341553
Patch

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

&gt; Tools/MiniBrowser/win/WinMain.cpp:-33
&gt; -#include &quot;Common.cpp&quot;

!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428736</commentid>
    <comment_count>5</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-05-30 20:31:44 -0700</bug_when>
    <thetext>Committed r232333: &lt;https://trac.webkit.org/changeset/232333&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428737</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-30 20:36:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/40673691&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341553</attachid>
            <date>2018-05-29 20:38:13 -0700</date>
            <delta_ts>2018-05-30 14:47:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186079-20180530123812.patch</filename>
            <type>text/plain</type>
            <size>25808</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyMjgzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTBlOWNmYmU1MmM0MDFjOWU0YjI2YzgwODE3ZDRiZTc1
YjdkYWM2MS4uNWU1N2EyZWY3MWYxYTk5YTRjZjE2YTQyMjNmZjA5YzI0MmEzY2Y4YSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUx
IEBACisyMDE4LTA1LTI5ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29t
PgorCisgICAgICAgIFtXaW5dW01pbmlCcm93c2VyXSBNb3ZlIE1haW5XaW5kb3cgcmVsYXRlZCBj
b2RlIGZyb20gQ29tbW9uLmNwcCB0byBNYWluV2luZG93LmNwcAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2MDc5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhIHN1YiB0YXNrIG9mIEJ1ZyAx
ODQ3NzAuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgaXMgcGFydGlhbC4gSSdtIGdvaW5nIHRvIHJl
bW92ZSBnbG9iYWwgdmFyaWFibGVzCisgICAgICAgIGdNYWluV2luZG93IGFuZCBnTWluaUJyb3dz
ZXIgYW5kIGNvbnZlcnQgbW9yZSBmdW5jdGlvbnMgdG8KKyAgICAgICAgTWFpbldpbmRvdydzIG1l
dGhvZHMgaW4gZm9sbG93LXVwIHBhdGNoZXMuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci93aW4v
Q01ha2VMaXN0cy50eHQ6IEFkZGVkIENvbW1vbi5jcHAKKyAgICAgICAgKiBNaW5pQnJvd3Nlci93
aW4vQ29tbW9uLmNwcDoKKyAgICAgICAgKG1lbnVJdGVtSXNDaGVja2VkKTogTW92ZWQgdG8gTWFp
bldpbmRvdy5jcHAuCisgICAgICAgICh0dXJuT2ZmT3RoZXJVc2VyQWdlbnRzKTogRGl0dG8uCisg
ICAgICAgIChFZGl0UHJvYyk6IERpdHRvLgorICAgICAgICAoQmFja0J1dHRvblByb2MpOiBEaXR0
by4KKyAgICAgICAgKEZvcndhcmRCdXR0b25Qcm9jKTogRGl0dG8uCisgICAgICAgIChBYm91dCk6
IERpdHRvLgorICAgICAgICAoQ2FjaGVzKTogRGl0dG8uCisgICAgICAgIChDdXN0b21Vc2VyQWdl
bnQpOiBEaXR0by4KKyAgICAgICAgKEF1dGhEaWFsb2dQcm9jKTogRGl0dG8uCisgICAgICAgIChE
aXNwbGF5QXV0aERpYWxvZyk6IENvbnZlcnRlZCB0byBNYWluV2luZG93J3MgbWV0aG9kLgorICAg
ICAgICAoVG9nZ2xlTWVudUl0ZW0pOiBEaXR0by4KKyAgICAgICAgKGxvYWRVUkwpOiBEaXR0by4K
KyAgICAgICAgKiBNaW5pQnJvd3Nlci93aW4vQ29tbW9uLmg6CisgICAgICAgICogTWluaUJyb3dz
ZXIvd2luL01haW5XaW5kb3cuY3BwOgorICAgICAgICAoTWFpbldpbmRvdzo6aW5pdCk6IENhbGwg
U2V0Rm9jdXMgYXQgdGhlIGVuZCBvZiB0aGUgY29uc3RydWN0aW9uLgorICAgICAgICAoTWFpbldp
bmRvdzo6V25kUHJvYyk6CisgICAgICAgIChtZW51SXRlbUlzQ2hlY2tlZCk6IE1vdmVkIGZyb20g
Q29tbW9uLmNwcC4KKyAgICAgICAgKHR1cm5PZmZPdGhlclVzZXJBZ2VudHMpOiBEaXR0by4KKyAg
ICAgICAgKEVkaXRQcm9jKTogRGl0dG8uCisgICAgICAgIChCYWNrQnV0dG9uUHJvYyk6IERpdHRv
LgorICAgICAgICAoRm9yd2FyZEJ1dHRvblByb2MpOiBEaXR0by4KKyAgICAgICAgKEFib3V0KTog
RGl0dG8uCisgICAgICAgIChDYWNoZXMpOiBEaXR0by4KKyAgICAgICAgKEN1c3RvbVVzZXJBZ2Vu
dCk6IERpdHRvLgorICAgICAgICAoYXV0aERpYWxvZ1Byb2MpOiBEaXR0by4KKyAgICAgICAgKE1h
aW5XaW5kb3c6OmRpc3BsYXlBdXRoRGlhbG9nKTogQ29udmVydGVkIGZyb20gYSBmdW5jdGlvbiBv
ZiBDb21tb24uY3BwLgorICAgICAgICAoTWFpbldpbmRvdzo6dG9nZ2xlTWVudUl0ZW0pOiBEaXR0
by4KKyAgICAgICAgKE1haW5XaW5kb3c6OmxvYWRVUkwpOiBEaXR0by4KKyAgICAgICAgKiBNaW5p
QnJvd3Nlci93aW4vTWFpbldpbmRvdy5oOiBBZGRlZCBtZXRob2QgZGVjbGFyYXRpb25zLgorICAg
ICAgICAqIE1pbmlCcm93c2VyL3dpbi9NaW5pQnJvd3Nlci5oOiBBZGRlZCBwcmFnbWEgb25jZS4K
KyAgICAgICAgKiBNaW5pQnJvd3Nlci93aW4vV2luTWFpbi5jcHA6CisgICAgICAgICh3V2luTWFp
bik6IEluY2x1ZGUgQ29tbW9uLmggaW5zdGVhZCBvZiBDb21tb24uY3BwLgorCiAyMDE4LTA1LTI5
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBjb25z
aXN0ZW5jeSBjaGVjayBiZXR3ZWVuIFVSTCBhbmQgQ0ZVUkwKZGlmZiAtLWdpdCBhL1Rvb2xzL01p
bmlCcm93c2VyL3dpbi9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9DTWFr
ZUxpc3RzLnR4dAppbmRleCA3MGU2ZDdjZTU2YjNlODhjMWEwYjU3NWUxM2E3YTM0ZWMzZDFmYWUw
Li45YTQ3ODRkMTY5NWM0MGRmNjJjOWI2OGVlODQ1M2UzZWUxNzZlNjgyIDEwMDY0NAotLS0gYS9U
b29scy9NaW5pQnJvd3Nlci93aW4vQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvTWluaUJyb3dz
ZXIvd2luL0NNYWtlTGlzdHMudHh0CkBAIC03LDYgKzcsNyBAQCBzZXQoTWluaUJyb3dzZXJfSU5D
TFVERV9ESVJFQ1RPUklFUwogCiBzZXQoTWluaUJyb3dzZXJfU09VUkNFUwogICAgIEFjY2Vzc2li
aWxpdHlEZWxlZ2F0ZS5jcHAKKyAgICBDb21tb24uY3BwCiAgICAgRE9NRGVmYXVsdEltcGwuY3Bw
CiAgICAgTWFpbldpbmRvdy5jcHAKICAgICBQYWdlTG9hZFRlc3RDbGllbnQuY3BwCmRpZmYgLS1n
aXQgYS9Ub29scy9NaW5pQnJvd3Nlci93aW4vQ29tbW9uLmNwcCBiL1Rvb2xzL01pbmlCcm93c2Vy
L3dpbi9Db21tb24uY3BwCmluZGV4IDJiODI1YmNkNjQ4NTU0NDY5NjA2MThjNTVlNTExOTY4YWRj
MDJmNjYuLmIxMWZlZmExZDM1Yzc2MTAxMWU1MTgwM2RkNTI3NjAwZWZlZTEwNDUgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9Db21tb24uY3BwCisrKyBiL1Rvb2xzL01pbmlCcm93
c2VyL3dpbi9Db21tb24uY3BwCkBAIC0yNiw0MSArMjYsMTUgQEAKICAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAog
ICovCiAKLSNpbmNsdWRlICJET01EZWZhdWx0SW1wbC5oIgotI2luY2x1ZGUgIk1haW5XaW5kb3cu
aCIKLSNpbmNsdWRlICJNaW5pQnJvd3Nlci5oIgotI2luY2x1ZGUgIk1pbmlCcm93c2VyUmVwbGFj
ZS5oIgotI2luY2x1ZGUgPFdlYktpdExlZ2FjeS9XZWJLaXRDT01BUEkuaD4KLQotI2lmIFVTRShD
RikKLSNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9DRlJ1bkxvb3AuaD4KLSNlbmRpZgorI2luY2x1
ZGUgInN0ZGFmeC5oIgorI2luY2x1ZGUgIkNvbW1vbi5oIgogCi0jaW5jbHVkZSA8Y2Fzc2VydD4K
LSNpbmNsdWRlIDxjb21pcC5oPgotI2luY2x1ZGUgPGNvbW1jdHJsLmg+Ci0jaW5jbHVkZSA8Y29t
bWRsZy5oPgotI2luY2x1ZGUgPGNvbXV0aWwuaD4KKyNpbmNsdWRlICJNaW5pQnJvd3NlclJlcGxh
Y2UuaCIKICNpbmNsdWRlIDxkYmdoZWxwLmg+Ci0jaW5jbHVkZSA8bWVtb3J5PgotI2luY2x1ZGUg
PG9iamJhc2UuaD4KLSNpbmNsdWRlIDxzaGVsbGFwaS5oPgogI2luY2x1ZGUgPHNobG9iai5oPgot
I2luY2x1ZGUgPHNobHdhcGkuaD4KLSNpbmNsdWRlIDxzdHJpbmc+Ci0jaW5jbHVkZSA8dmVjdG9y
PgotI2luY2x1ZGUgPHdpbmluZXQuaD4KLQotI2lmbmRlZiBXTV9EUElDSEFOR0VECi0jZGVmaW5l
IFdNX0RQSUNIQU5HRUQgMHgwMkUwCi0jZW5kaWYKIAogLy8gR2xvYmFsIFZhcmlhYmxlczoKIEhJ
TlNUQU5DRSBoSW5zdDsKLUhXTkQgaENhY2hlV25kOwotV05EUFJPQyBEZWZFZGl0UHJvYyA9IG51
bGxwdHI7Ci1XTkRQUk9DIERlZkJ1dHRvblByb2MgPSBudWxscHRyOwotCiBNYWluV2luZG93KiBn
TWFpbldpbmRvdyA9IG51bGxwdHI7CiBNaW5pQnJvd3NlciogZ01pbmlCcm93c2VyID0gbnVsbHB0
cjsKIApAQCAtNjgsMTYgKzQyLDExIEBAIE1pbmlCcm93c2VyKiBnTWluaUJyb3dzZXIgPSBudWxs
cHRyOwogUE9JTlQgc193aW5kb3dQb3NpdGlvbiA9IHsgMTAwLCAxMDAgfTsKIFNJWkUgc193aW5k
b3dTaXplID0geyA1MDAsIDIwMCB9OwogCi0vLyBGb3J3YXJkIGRlY2xhcmF0aW9ucyBvZiBmdW5j
dGlvbnMgaW5jbHVkZWQgaW4gdGhpcyBjb2RlIG1vZHVsZToKLUlOVF9QVFIgQ0FMTEJBQ0sgQXV0
aERpYWxvZ1Byb2MoSFdORCwgVUlOVCwgV1BBUkFNLCBMUEFSQU0pOwotCi1zdGF0aWMgdm9pZCBs
b2FkVVJMKEJTVFIgdXJsQlN0cik7Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGZsb2F0IGRldmlj
ZVNjYWxlRmFjdG9yRm9yV2luZG93KEhXTkQpOwogfQogCi1zdGF0aWMgdm9pZCBjb21wdXRlRnVs
bERlc2t0b3BGcmFtZSgpCit2b2lkIGNvbXB1dGVGdWxsRGVza3RvcEZyYW1lKCkKIHsKICAgICBS
RUNUIGRlc2t0b3A7CiAgICAgaWYgKCE6OlN5c3RlbVBhcmFtZXRlcnNJbmZvKFNQSV9HRVRXT1JL
QVJFQSwgMCwgc3RhdGljX2Nhc3Q8dm9pZCo+KCZkZXNrdG9wKSwgMCkpCkBAIC0xNTAsMjU2ICsx
MTksMTIgQEAgdm9pZCBjcmVhdGVDcmFzaFJlcG9ydChFWENFUFRJT05fUE9JTlRFUlMqIGV4Y2Vw
dGlvblBvaW50ZXJzKQogICAgIH0KIH0KIAotc3RhdGljIGJvb2wgbWVudUl0ZW1Jc0NoZWNrZWQo
Y29uc3QgTUVOVUlURU1JTkZPJiBpbmZvKQotewotICAgIHJldHVybiBpbmZvLmZTdGF0ZSAmIE1G
U19DSEVDS0VEOwotfQotCi1zdGF0aWMgdm9pZCB0dXJuT2ZmT3RoZXJVc2VyQWdlbnRzKEhNRU5V
IG1lbnUpCi17Ci0gICAgTUVOVUlURU1JTkZPIGluZm87Ci0gICAgOjptZW1zZXQoJmluZm8sIDB4
MDAsIHNpemVvZihpbmZvKSk7Ci0gICAgaW5mby5jYlNpemUgPSBzaXplb2YoaW5mbyk7Ci0gICAg
aW5mby5mTWFzayA9IE1JSU1fU1RBVEU7Ci0KLSAgICAvLyBNdXN0IHVuc2V0IHRoZSBvdGhlciBt
ZW51IGl0ZW1zOgotICAgIGZvciAoVUlOVCBtZW51VG9DbGVhciA9IElETV9VQV9ERUZBVUxUOyBt
ZW51VG9DbGVhciA8PSBJRE1fVUFfT1RIRVI7ICsrbWVudVRvQ2xlYXIpIHsKLSAgICAgICAgaWYg
KCE6OkdldE1lbnVJdGVtSW5mbyhtZW51LCBtZW51VG9DbGVhciwgRkFMU0UsICZpbmZvKSkKLSAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAoIW1lbnVJdGVtSXNDaGVja2VkKGluZm8p
KQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgaW5mby5mU3RhdGUgPSBNRlNfVU5D
SEVDS0VEOwotICAgICAgICA6OlNldE1lbnVJdGVtSW5mbyhtZW51LCBtZW51VG9DbGVhciwgRkFM
U0UsICZpbmZvKTsKLSAgICB9Ci19Ci0KLWJvb2wgVG9nZ2xlTWVudUl0ZW0oSFdORCBoV25kLCBV
SU5UIG1lbnVJRCkKLXsKLSAgICBpZiAoIWdNaW5pQnJvd3NlcikKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgSE1FTlUgbWVudSA9IDo6R2V0TWVudShoV25kKTsKLQotICAgIHN3aXRjaCAo
bWVudUlEKSB7Ci0gICAgY2FzZSBJRE1fVUFfREVGQVVMVDoKLSAgICBjYXNlIElETV9VQV9TQUZB
UklfOF8wOgotICAgIGNhc2UgSURNX1VBX1NBRkFSSV9JT1NfOF9JUEhPTkU6Ci0gICAgY2FzZSBJ
RE1fVUFfU0FGQVJJX0lPU184X0lQQUQ6Ci0gICAgY2FzZSBJRE1fVUFfSUVfMTE6Ci0gICAgY2Fz
ZSBJRE1fVUFfQ0hST01FX01BQzoKLSAgICBjYXNlIElETV9VQV9DSFJPTUVfV0lOOgotICAgIGNh
c2UgSURNX1VBX0ZJUkVGT1hfTUFDOgotICAgIGNhc2UgSURNX1VBX0ZJUkVGT1hfV0lOOgotICAg
ICAgICBnTWluaUJyb3dzZXItPnNldFVzZXJBZ2VudChtZW51SUQpOwotICAgICAgICB0dXJuT2Zm
T3RoZXJVc2VyQWdlbnRzKG1lbnUpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIElETV9VQV9P
VEhFUjoKLSAgICAgICAgLy8gVGhlIGFjdHVhbCB1c2VyIGFnZW50IHN0cmluZyB3aWxsIGJlIHNl
dCBieSB0aGUgY3VzdG9tIHVzZXIgYWdlbnQgZGlhbG9nCi0gICAgICAgIHR1cm5PZmZPdGhlclVz
ZXJBZ2VudHMobWVudSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIE1FTlVJVEVNSU5G
TyBpbmZvID0geyB9OwotICAgIGluZm8uY2JTaXplID0gc2l6ZW9mKGluZm8pOwotICAgIGluZm8u
Zk1hc2sgPSBNSUlNX1NUQVRFOwotCi0gICAgaWYgKCE6OkdldE1lbnVJdGVtSW5mbyhtZW51LCBt
ZW51SUQsIEZBTFNFLCAmaW5mbykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIEJPT0wg
bmV3U3RhdGUgPSAhbWVudUl0ZW1Jc0NoZWNrZWQoaW5mbyk7Ci0gICAgaW5mby5mU3RhdGUgPSAo
bmV3U3RhdGUpID8gTUZTX0NIRUNLRUQgOiBNRlNfVU5DSEVDS0VEOwotICAgIDo6U2V0TWVudUl0
ZW1JbmZvKG1lbnUsIG1lbnVJRCwgRkFMU0UsICZpbmZvKTsKLQotICAgIGdNaW5pQnJvd3Nlci0+
c2V0UHJlZmVyZW5jZShtZW51SUQsIG5ld1N0YXRlKTsKLQotICAgIHJldHVybiB0cnVlOwotfQot
Ci1MUkVTVUxUIENBTExCQUNLIEVkaXRQcm9jKEhXTkQgaERsZywgVUlOVCBtZXNzYWdlLCBXUEFS
QU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQotewotICAgIHN3aXRjaCAobWVzc2FnZSkgewotICAg
IGNhc2UgV01fQ0hBUjoKLSAgICAgICAgaWYgKHdQYXJhbSA9PSAxMykgeyAvLyBFbnRlciBLZXkK
LSAgICAgICAgICAgIHdjaGFyX3Qgc3RyUHRyW0lOVEVSTkVUX01BWF9VUkxfTEVOR1RIXTsKLSAg
ICAgICAgICAgICooKExQV09SRClzdHJQdHIpID0gSU5URVJORVRfTUFYX1VSTF9MRU5HVEg7IAot
ICAgICAgICAgICAgaW50IHN0ckxlbiA9IFNlbmRNZXNzYWdlKGhEbGcsIEVNX0dFVExJTkUsIDAs
IChMUEFSQU0pc3RyUHRyKTsKLQotICAgICAgICAgICAgc3RyUHRyW3N0ckxlbl0gPSAwOwotICAg
ICAgICAgICAgX2JzdHJfdCBic3RyKHN0clB0cik7Ci0gICAgICAgICAgICBsb2FkVVJMKGJzdHIu
R2V0QlNUUigpKTsKLQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0gCi0gICAgZGVm
YXVsdDoKLSAgICAgICAgcmV0dXJuIENhbGxXaW5kb3dQcm9jKERlZkVkaXRQcm9jLCBoRGxnLCBt
ZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7Ci0gICAgfQotfQotCi1MUkVTVUxUIENBTExCQUNLIEJh
Y2tCdXR0b25Qcm9jKEhXTkQgaERsZywgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFS
QU0gbFBhcmFtKQotewotICAgIHN3aXRjaCAobWVzc2FnZSkgewotICAgIGNhc2UgV01fTEJVVFRP
TlVQOgotICAgICAgICBnTWluaUJyb3dzZXItPmdvQmFjaygpOwotICAgIGRlZmF1bHQ6Ci0gICAg
ICAgIHJldHVybiBDYWxsV2luZG93UHJvYyhEZWZCdXR0b25Qcm9jLCBoRGxnLCBtZXNzYWdlLCB3
UGFyYW0sIGxQYXJhbSk7Ci0gICAgfQotfQotCi1MUkVTVUxUIENBTExCQUNLIEZvcndhcmRCdXR0
b25Qcm9jKEhXTkQgaERsZywgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBh
cmFtKQotewotICAgIHN3aXRjaCAobWVzc2FnZSkgewotICAgIGNhc2UgV01fTEJVVFRPTlVQOgot
ICAgICAgICBnTWluaUJyb3dzZXItPmdvRm9yd2FyZCgpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAg
IHJldHVybiBDYWxsV2luZG93UHJvYyhEZWZCdXR0b25Qcm9jLCBoRGxnLCBtZXNzYWdlLCB3UGFy
YW0sIGxQYXJhbSk7Ci0gICAgfQotfQotCi0vLyBNZXNzYWdlIGhhbmRsZXIgZm9yIGFib3V0IGJv
eC4KLUlOVF9QVFIgQ0FMTEJBQ0sgQWJvdXQoSFdORCBoRGxnLCBVSU5UIG1lc3NhZ2UsIFdQQVJB
TSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCi17Ci0gICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihs
UGFyYW0pOwotICAgIHN3aXRjaCAobWVzc2FnZSkgewotICAgIGNhc2UgV01fSU5JVERJQUxPRzoK
LSAgICAgICAgcmV0dXJuIChJTlRfUFRSKVRSVUU7Ci0KLSAgICBjYXNlIFdNX0NPTU1BTkQ6Ci0g
ICAgICAgIGlmIChMT1dPUkQod1BhcmFtKSA9PSBJRE9LIHx8IExPV09SRCh3UGFyYW0pID09IElE
Q0FOQ0VMKSB7Ci0gICAgICAgICAgICBFbmREaWFsb2coaERsZywgTE9XT1JEKHdQYXJhbSkpOwot
ICAgICAgICAgICAgcmV0dXJuIChJTlRfUFRSKVRSVUU7Ci0gICAgICAgIH0KLSAgICAgICAgYnJl
YWs7Ci0gICAgfQotICAgIHJldHVybiAoSU5UX1BUUilGQUxTRTsKLX0KLQotSU5UX1BUUiBDQUxM
QkFDSyBDYWNoZXMoSFdORCBoRGxnLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJB
TSBsUGFyYW0pCi17Ci0gICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihsUGFyYW0pOwotICAgIHN3
aXRjaCAobWVzc2FnZSkgewotICAgIGNhc2UgV01fSU5JVERJQUxPRzoKLSAgICAgICAgOjpTZXRU
aW1lcihoRGxnLCBJRFRfVVBEQVRFX1NUQVRTLCAxMDAwLCBudWxscHRyKTsKLSAgICAgICAgcmV0
dXJuIChJTlRfUFRSKVRSVUU7Ci0KLSAgICBjYXNlIFdNX0NPTU1BTkQ6Ci0gICAgICAgIGlmIChM
T1dPUkQod1BhcmFtKSA9PSBJRE9LIHx8IExPV09SRCh3UGFyYW0pID09IElEQ0FOQ0VMKSB7Ci0g
ICAgICAgICAgICA6OktpbGxUaW1lcihoRGxnLCBJRFRfVVBEQVRFX1NUQVRTKTsKLSAgICAgICAg
ICAgIDo6RGVzdHJveVdpbmRvdyhoRGxnKTsKLSAgICAgICAgICAgIGhDYWNoZVduZCA9IDA7Ci0g
ICAgICAgICAgICByZXR1cm4gKElOVF9QVFIpVFJVRTsKLSAgICAgICAgfQotICAgICAgICBicmVh
azsKLQotICAgIGNhc2UgSURUX1VQREFURV9TVEFUUzoKLSAgICAgICAgOjpJbnZhbGlkYXRlUmVj
dChoRGxnLCBudWxscHRyLCBGQUxTRSk7Ci0gICAgICAgIHJldHVybiAoSU5UX1BUUilUUlVFOwot
Ci0gICAgY2FzZSBXTV9QQUlOVDoKLSAgICAgICAgZ01pbmlCcm93c2VyLT51cGRhdGVTdGF0aXN0
aWNzKGhEbGcpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICByZXR1cm4gKElOVF9QVFIp
RkFMU0U7Ci19Ci0KLUlOVF9QVFIgQ0FMTEJBQ0sgQ3VzdG9tVXNlckFnZW50KEhXTkQgaERsZywg
VUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQotewotICAgIFVOUkVG
RVJFTkNFRF9QQVJBTUVURVIobFBhcmFtKTsKLSAgICBzd2l0Y2ggKG1lc3NhZ2UpIHsKLSAgICBj
YXNlIFdNX0lOSVRESUFMT0c6IHsKLSAgICAgICAgSFdORCBlZGl0ID0gOjpHZXREbGdJdGVtKGhE
bGcsIElEQ19VU0VSX0FHRU5UX0lOUFVUKTsKLSAgICAgICAgX2JzdHJfdCB1c2VyQWdlbnQ7Ci0g
ICAgICAgIGlmIChnTWluaUJyb3dzZXIpCi0gICAgICAgICAgICB1c2VyQWdlbnQgPSBnTWluaUJy
b3dzZXItPnVzZXJBZ2VudCgpOwotCi0gICAgICAgIDo6U2V0V2luZG93VGV4dChlZGl0LCBzdGF0
aWNfY2FzdDxMUENUU1RSPih1c2VyQWdlbnQpKTsKLSAgICAgICAgcmV0dXJuIChJTlRfUFRSKVRS
VUU7Ci0gICAgfQotCi0gICAgY2FzZSBXTV9DT01NQU5EOgotICAgICAgICBpZiAoTE9XT1JEKHdQ
YXJhbSkgPT0gSURPSykgewotICAgICAgICAgICAgSFdORCBlZGl0ID0gOjpHZXREbGdJdGVtKGhE
bGcsIElEQ19VU0VSX0FHRU5UX0lOUFVUKTsKLQotICAgICAgICAgICAgVENIQVIgYnVmZmVyWzEw
MjRdOwotICAgICAgICAgICAgaW50IHN0ckxlbiA9IDo6R2V0V2luZG93VGV4dChlZGl0LCBidWZm
ZXIsIDEwMjQpOwotICAgICAgICAgICAgYnVmZmVyW3N0ckxlbl0gPSAwOwotCi0gICAgICAgICAg
ICBfYnN0cl90IGJzdHIoYnVmZmVyKTsKLSAgICAgICAgICAgIGlmIChic3RyLmxlbmd0aCgpKSB7
Ci0gICAgICAgICAgICAgICAgZ01pbmlCcm93c2VyLT5zZXRVc2VyQWdlbnQoYnN0cik7Ci0gICAg
ICAgICAgICAgICAgOjpQb3N0TWVzc2FnZShnTWFpbldpbmRvdy0+aHduZCgpLCBzdGF0aWNfY2Fz
dDxVSU5UPihXTV9DT01NQU5EKSwgTUFLRUxQQVJBTShJRE1fVUFfT1RIRVIsIDEpLCAwKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmIChMT1dPUkQod1BhcmFtKSA9PSBJ
RE9LIHx8IExPV09SRCh3UGFyYW0pID09IElEQ0FOQ0VMKSB7Ci0gICAgICAgICAgICA6OkVuZERp
YWxvZyhoRGxnLCBMT1dPUkQod1BhcmFtKSk7Ci0gICAgICAgICAgICByZXR1cm4gKElOVF9QVFIp
VFJVRTsKLSAgICAgICAgfQotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgcmV0dXJuIChJTlRf
UFRSKUZBTFNFOwotfQotCiBIUkVTVUxUIERpc3BsYXlBdXRoRGlhbG9nKHN0ZDo6d3N0cmluZyYg
dXNlcm5hbWUsIHN0ZDo6d3N0cmluZyYgcGFzc3dvcmQpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBE
aWFsb2dCb3goaEluc3QsIE1BS0VJTlRSRVNPVVJDRShJRERfQVVUSCksIGdNYWluV2luZG93LT5o
d25kKCksIEF1dGhEaWFsb2dQcm9jKTsKLSAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgcmV0dXJu
IEVfRkFJTDsKLQotICAgIGF1dG8gcGFpciA9IHJlaW50ZXJwcmV0X2Nhc3Q8c3RkOjpwYWlyPHN0
ZDo6d3N0cmluZywgc3RkOjp3c3RyaW5nPio+KHJlc3VsdCk7Ci0gICAgdXNlcm5hbWUgPSBwYWly
LT5maXJzdDsKLSAgICBwYXNzd29yZCA9IHBhaXItPnNlY29uZDsKLSAgICBkZWxldGUgcGFpcjsK
LQotICAgIHJldHVybiBTX09LOwotfQotCi1JTlRfUFRSIENBTExCQUNLIEF1dGhEaWFsb2dQcm9j
KEhXTkQgaERsZywgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQot
ewotICAgIHN3aXRjaCAobWVzc2FnZSkgewotICAgIGNhc2UgV01fSU5JVERJQUxPRzogewotICAg
ICAgICBIV05EIGVkaXQgPSA6OkdldERsZ0l0ZW0oaERsZywgSURDX0FVVEhfVVNFUik7Ci0gICAg
ICAgIDo6U2V0V2luZG93VGV4dChlZGl0LCBzdGF0aWNfY2FzdDxMUENUU1RSPihMIiIpKTsKLSAg
ICAgICAgCi0gICAgICAgIGVkaXQgPSA6OkdldERsZ0l0ZW0oaERsZywgSURDX0FVVEhfUEFTU1dP
UkQpOwotICAgICAgICA6OlNldFdpbmRvd1RleHQoZWRpdCwgc3RhdGljX2Nhc3Q8TFBDVFNUUj4o
TCIiKSk7Ci0gICAgICAgIHJldHVybiAoSU5UX1BUUilUUlVFOwotICAgIH0KLQotICAgIGNhc2Ug
V01fQ09NTUFORDoKLSAgICAgICAgaWYgKExPV09SRCh3UGFyYW0pID09IElET0sgfHwgTE9XT1JE
KHdQYXJhbSkgPT0gSURDQU5DRUwpIHsKLSAgICAgICAgICAgIElOVF9QVFIgcmVzdWx0IHsgfTsK
LQotICAgICAgICAgICAgaWYgKExPV09SRCh3UGFyYW0pID09IElET0spIHsKLSAgICAgICAgICAg
ICAgICBUQ0hBUiB1c2VyWzI1Nl07Ci0gICAgICAgICAgICAgICAgaW50IHN0ckxlbiA9IDo6R2V0
V2luZG93VGV4dCg6OkdldERsZ0l0ZW0oaERsZywgSURDX0FVVEhfVVNFUiksIHVzZXIsIDI1Nik7
Ci0gICAgICAgICAgICAgICAgdXNlcltzdHJMZW5dID0gMDsKLQotICAgICAgICAgICAgICAgIFRD
SEFSIHBhc3NbMjU2XTsKLSAgICAgICAgICAgICAgICBzdHJMZW4gPSA6OkdldFdpbmRvd1RleHQo
OjpHZXREbGdJdGVtKGhEbGcsIElEQ19BVVRIX1BBU1NXT1JEKSwgcGFzcywgMjU2KTsKLSAgICAg
ICAgICAgICAgICBwYXNzW3N0ckxlbl0gPSAwOwotCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0g
cmVpbnRlcnByZXRfY2FzdDxJTlRfUFRSPihuZXcgc3RkOjpwYWlyPHN0ZDo6d3N0cmluZywgc3Rk
Ojp3c3RyaW5nPih1c2VyLCBwYXNzKSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIDo6
RW5kRGlhbG9nKGhEbGcsIHJlc3VsdCk7Ci0gICAgICAgICAgICByZXR1cm4gKElOVF9QVFIpVFJV
RTsKLSAgICAgICAgfQotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgcmV0dXJuIChJTlRfUFRS
KUZBTFNFOwotfQotCi1zdGF0aWMgdm9pZCBsb2FkVVJMKEJTVFIgcGFzc2VkVVJMKQotewotICAg
IGlmIChGQUlMRUQoZ01pbmlCcm93c2VyLT5sb2FkVVJMKHBhc3NlZFVSTCkpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBTZXRGb2N1cyhnTWluaUJyb3dzZXItPmh3bmQoKSk7CisgICAgcmV0dXJu
IGdNYWluV2luZG93LT5kaXNwbGF5QXV0aERpYWxvZyh1c2VybmFtZSwgcGFzc3dvcmQpOwogfQog
Ci1zdGF0aWMgdm9pZCBwYXJzZUNvbW1hbmRMaW5lKGJvb2wmIHVzZXNMYXllcmVkV2ViVmlldywg
Ym9vbCYgdXNlRnVsbERlc2t0b3AsIGJvb2wmIHBhZ2VMb2FkVGVzdGluZywgX2JzdHJfdCYgcmVx
dWVzdGVkVVJMKQordm9pZCBwYXJzZUNvbW1hbmRMaW5lKGJvb2wmIHVzZXNMYXllcmVkV2ViVmll
dywgYm9vbCYgdXNlRnVsbERlc2t0b3AsIGJvb2wmIHBhZ2VMb2FkVGVzdGluZywgX2JzdHJfdCYg
cmVxdWVzdGVkVVJMKQogewogICAgIHVzZXNMYXllcmVkV2ViVmlldyA9IGZhbHNlOwogICAgIHVz
ZUZ1bGxEZXNrdG9wID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci93aW4v
Q29tbW9uLmggYi9Ub29scy9NaW5pQnJvd3Nlci93aW4vQ29tbW9uLmgKaW5kZXggNjFhOTM1NzIx
MjkwNDI0YzgxY2RlYjU5ZWVmMmY4ZjNkYjg4OTUxOS4uYzBjNDc5Njk3MmUwMTE0OTg2N2EwZDdi
NTI2ODk1MTJlZDlmYTg1MCAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvd2luL0NvbW1v
bi5oCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9Db21tb24uaApAQCAtMjUsNyArMjUsMTcg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJzdGRhZnguaCIKKyNpbmNsdWRlICJNYWlu
V2luZG93LmgiCisjaW5jbHVkZSAiTWluaUJyb3dzZXIuaCIKKwordm9pZCBjb21wdXRlRnVsbERl
c2t0b3BGcmFtZSgpOwogYm9vbCBnZXRBcHBEYXRhRm9sZGVyKF9ic3RyX3QmIGRpcmVjdG9yeSk7
Cit2b2lkIHBhcnNlQ29tbWFuZExpbmUoYm9vbCYgdXNlc0xheWVyZWRXZWJWaWV3LCBib29sJiB1
c2VGdWxsRGVza3RvcCwgYm9vbCYgcGFnZUxvYWRUZXN0aW5nLCBfYnN0cl90JiByZXF1ZXN0ZWRV
UkwpOwordm9pZCBjcmVhdGVDcmFzaFJlcG9ydChFWENFUFRJT05fUE9JTlRFUlMqKTsKIAorZXh0
ZXJuIEhJTlNUQU5DRSBoSW5zdDsKK2V4dGVybiBNYWluV2luZG93KiBnTWFpbldpbmRvdzsKK2V4
dGVybiBNaW5pQnJvd3NlciogZ01pbmlCcm93c2VyOwogZXh0ZXJuIFBPSU5UIHNfd2luZG93UG9z
aXRpb247CiBleHRlcm4gU0laRSBzX3dpbmRvd1NpemU7CmRpZmYgLS1naXQgYS9Ub29scy9NaW5p
QnJvd3Nlci93aW4vTWFpbldpbmRvdy5jcHAgYi9Ub29scy9NaW5pQnJvd3Nlci93aW4vTWFpbldp
bmRvdy5jcHAKaW5kZXggYThkZTBjNjZiYTY1MDkxYTM3Yzk0MmQwMWRmNzQ4NmVmNjhlY2M3My4u
MWY1ZjdhZDQ2MDZiMzMwZjZiZWU5MWM1NTgxMGJjZmQxZTIwYWFhNSAxMDA2NDQKLS0tIGEvVG9v
bHMvTWluaUJyb3dzZXIvd2luL01haW5XaW5kb3cuY3BwCisrKyBiL1Rvb2xzL01pbmlCcm93c2Vy
L3dpbi9NYWluV2luZG93LmNwcApAQCAtMjUsNiArMjUsOCBAQAogCiAjaW5jbHVkZSAic3RkYWZ4
LmgiCiAjaW5jbHVkZSAiTWFpbldpbmRvdy5oIgorCisjaW5jbHVkZSAiQ29tbW9uLmgiCiAjaW5j
bHVkZSAiTWluaUJyb3dzZXIuaCIKICNpbmNsdWRlICJNaW5pQnJvd3NlckxpYlJlc291cmNlLmgi
CiAKQEAgLTM0LDIyICszNiwxNyBAQCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvckZvcldpbmRvdyhI
V05EKTsKIAogc3RhdGljIGNvbnN0ZXhwciBpbnQgY29udHJvbEJ1dHRvbldpZHRoID0gMjQ7CiAK
LWV4dGVybiBNYWluV2luZG93KiBnTWFpbldpbmRvdzsKLWV4dGVybiBNaW5pQnJvd3NlciogZ01p
bmlCcm93c2VyOwotZXh0ZXJuIFdORFBST0MgRGVmRWRpdFByb2M7Ci1leHRlcm4gV05EUFJPQyBE
ZWZCdXR0b25Qcm9jOwotZXh0ZXJuIEhJTlNUQU5DRSBoSW5zdDsKLWV4dGVybiBIV05EIGhDYWNo
ZVduZDsKLQotTFJFU1VMVCBDQUxMQkFDSyBFZGl0UHJvYyhIV05ELCBVSU5ULCBXUEFSQU0sIExQ
QVJBTSk7Ci1MUkVTVUxUIENBTExCQUNLIEJhY2tCdXR0b25Qcm9jKEhXTkQsIFVJTlQsIFdQQVJB
TSwgTFBBUkFNKTsKLUxSRVNVTFQgQ0FMTEJBQ0sgRm9yd2FyZEJ1dHRvblByb2MoSFdORCwgVUlO
VCwgV1BBUkFNLCBMUEFSQU0pOwotTFJFU1VMVCBDQUxMQkFDSyBSZWxvYWRCdXR0b25Qcm9jKEhX
TkQsIFVJTlQsIFdQQVJBTSwgTFBBUkFNKTsKLUlOVF9QVFIgQ0FMTEJBQ0sgQWJvdXQoSFdORCwg
VUlOVCwgV1BBUkFNLCBMUEFSQU0pOwotSU5UX1BUUiBDQUxMQkFDSyBDdXN0b21Vc2VyQWdlbnQo
SFdORCwgVUlOVCwgV1BBUkFNLCBMUEFSQU0pOwotSU5UX1BUUiBDQUxMQkFDSyBDYWNoZXMoSFdO
RCwgVUlOVCwgV1BBUkFNLCBMUEFSQU0pOwotSU5UX1BUUiBDQUxMQkFDSyBBdXRoRGlhbG9nUHJv
YyhIV05ELCBVSU5ULCBXUEFSQU0sIExQQVJBTSk7Ci1ib29sIFRvZ2dsZU1lbnVJdGVtKEhXTkQg
aFduZCwgVUlOVCBtZW51SUQpOworc3RhdGljIEhXTkQgaENhY2hlV25kOworc3RhdGljIFdORFBS
T0MgRGVmRWRpdFByb2MgPSBudWxscHRyOworc3RhdGljIFdORFBST0MgRGVmQnV0dG9uUHJvYyA9
IG51bGxwdHI7CisKK3N0YXRpYyBMUkVTVUxUIENBTExCQUNLIEVkaXRQcm9jKEhXTkQsIFVJTlQs
IFdQQVJBTSwgTFBBUkFNKTsKK3N0YXRpYyBMUkVTVUxUIENBTExCQUNLIEJhY2tCdXR0b25Qcm9j
KEhXTkQsIFVJTlQsIFdQQVJBTSwgTFBBUkFNKTsKK3N0YXRpYyBMUkVTVUxUIENBTExCQUNLIEZv
cndhcmRCdXR0b25Qcm9jKEhXTkQsIFVJTlQsIFdQQVJBTSwgTFBBUkFNKTsKK3N0YXRpYyBMUkVT
VUxUIENBTExCQUNLIFJlbG9hZEJ1dHRvblByb2MoSFdORCwgVUlOVCwgV1BBUkFNLCBMUEFSQU0p
Oworc3RhdGljIElOVF9QVFIgQ0FMTEJBQ0sgQWJvdXQoSFdORCwgVUlOVCwgV1BBUkFNLCBMUEFS
QU0pOworc3RhdGljIElOVF9QVFIgQ0FMTEJBQ0sgQ3VzdG9tVXNlckFnZW50KEhXTkQsIFVJTlQs
IFdQQVJBTSwgTFBBUkFNKTsKK3N0YXRpYyBJTlRfUFRSIENBTExCQUNLIENhY2hlcyhIV05ELCBV
SU5ULCBXUEFSQU0sIExQQVJBTSk7CiAKIHN0ZDo6d3N0cmluZyBNYWluV2luZG93OjpzX3dpbmRv
d0NsYXNzOwogCkBAIC0xMTAsOCArMTA3LDYgQEAgYm9vbCBNYWluV2luZG93Ojppbml0KEhJTlNU
QU5DRSBoSW5zdGFuY2UsIGJvb2wgdXNlc0xheWVyZWRXZWJWaWV3LCBib29sIHBhZ2VMb2EKICAg
ICBTZXRXaW5kb3dMb25nUHRyKG1faEJhY2tCdXR0b25XbmQsIEdXTFBfV05EUFJPQywgcmVpbnRl
cnByZXRfY2FzdDxMT05HX1BUUj4oQmFja0J1dHRvblByb2MpKTsKICAgICBTZXRXaW5kb3dMb25n
UHRyKG1faEZvcndhcmRCdXR0b25XbmQsIEdXTFBfV05EUFJPQywgcmVpbnRlcnByZXRfY2FzdDxM
T05HX1BUUj4oRm9yd2FyZEJ1dHRvblByb2MpKTsKIAotICAgIFNldEZvY3VzKG1faFVSTEJhcldu
ZCk7Ci0KICAgICBtX2Jyb3dzZXJXaW5kb3cgPSBzdGQ6Om1ha2VfdW5pcXVlPE1pbmlCcm93c2Vy
PihtX2hNYWluV25kLCBtX2hVUkxCYXJXbmQsIHVzZXNMYXllcmVkV2ViVmlldywgcGFnZUxvYWRU
ZXN0aW5nKTsKICAgICBpZiAoIW1fYnJvd3NlcldpbmRvdykKICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMTIwLDYgKzExNSw3IEBAIGJvb2wgTWFpbldpbmRvdzo6aW5pdChISU5TVEFOQ0UgaElu
c3RhbmNlLCBib29sIHVzZXNMYXllcmVkV2ViVmlldywgYm9vbCBwYWdlTG9hCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIHJlc2l6ZVN1YlZpZXdzKCk7CisgICAgU2V0Rm9jdXMobV9oVVJM
QmFyV25kKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTg0LDcgKzE4MCw3IEBAIExSRVNV
TFQgQ0FMTEJBQ0sgTWFpbldpbmRvdzo6V25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwg
V1BBUkFNIHdQYXJhbSwgTFBBCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBJRE1f
VUFfT1RIRVI6CiAgICAgICAgICAgICBpZiAod21FdmVudCkKLSAgICAgICAgICAgICAgICBUb2dn
bGVNZW51SXRlbShoV25kLCB3bUlkKTsKKyAgICAgICAgICAgICAgICBnTWFpbldpbmRvdy0+dG9n
Z2xlTWVudUl0ZW0od21JZCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgRGlh
bG9nQm94KGhJbnN0LCBNQUtFSU5UUkVTT1VSQ0UoSUREX1VTRVJfQUdFTlQpLCBoV25kLCBDdXN0
b21Vc2VyQWdlbnQpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yMDUsNyArMjAxLDcgQEAgTFJF
U1VMVCBDQUxMQkFDSyBNYWluV2luZG93OjpXbmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdl
LCBXUEFSQU0gd1BhcmFtLCBMUEEKICAgICAgICAgICAgICAgICBnTWluaUJyb3dzZXItPnNob3dM
YXllclRyZWUoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgaWYgKCFUb2dnbGVNZW51SXRlbShoV25kLCB3bUlkKSkKKyAgICAgICAgICAgIGlmICgh
Z01haW5XaW5kb3ctPnRvZ2dsZU1lbnVJdGVtKHdtSWQpKQogICAgICAgICAgICAgICAgIHJldHVy
biBEZWZXaW5kb3dQcm9jKGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgbFBhcmFtKTsKICAgICAgICAg
fQogICAgICAgICB9CkBAIC0yMzIsMyArMjI4LDI1MCBAQCBMUkVTVUxUIENBTExCQUNLIE1haW5X
aW5kb3c6OlduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQ
QQogCiAgICAgcmV0dXJuIDA7CiB9CisKK3N0YXRpYyBib29sIG1lbnVJdGVtSXNDaGVja2VkKGNv
bnN0IE1FTlVJVEVNSU5GTyYgaW5mbykKK3sKKyAgICByZXR1cm4gaW5mby5mU3RhdGUgJiBNRlNf
Q0hFQ0tFRDsKK30KKworc3RhdGljIHZvaWQgdHVybk9mZk90aGVyVXNlckFnZW50cyhITUVOVSBt
ZW51KQoreworICAgIE1FTlVJVEVNSU5GTyBpbmZvOworICAgIDo6bWVtc2V0KCZpbmZvLCAweDAw
LCBzaXplb2YoaW5mbykpOworICAgIGluZm8uY2JTaXplID0gc2l6ZW9mKGluZm8pOworICAgIGlu
Zm8uZk1hc2sgPSBNSUlNX1NUQVRFOworCisgICAgLy8gTXVzdCB1bnNldCB0aGUgb3RoZXIgbWVu
dSBpdGVtczoKKyAgICBmb3IgKFVJTlQgbWVudVRvQ2xlYXIgPSBJRE1fVUFfREVGQVVMVDsgbWVu
dVRvQ2xlYXIgPD0gSURNX1VBX09USEVSOyArK21lbnVUb0NsZWFyKSB7CisgICAgICAgIGlmICgh
OjpHZXRNZW51SXRlbUluZm8obWVudSwgbWVudVRvQ2xlYXIsIEZBTFNFLCAmaW5mbykpCisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKCFtZW51SXRlbUlzQ2hlY2tlZChpbmZvKSkK
KyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGluZm8uZlN0YXRlID0gTUZTX1VOQ0hF
Q0tFRDsKKyAgICAgICAgOjpTZXRNZW51SXRlbUluZm8obWVudSwgbWVudVRvQ2xlYXIsIEZBTFNF
LCAmaW5mbyk7CisgICAgfQorfQorCitib29sIE1haW5XaW5kb3c6OnRvZ2dsZU1lbnVJdGVtKFVJ
TlQgbWVudUlEKQoreworICAgIEhNRU5VIG1lbnUgPSA6OkdldE1lbnUoaHduZCgpKTsKKworICAg
IHN3aXRjaCAobWVudUlEKSB7CisgICAgY2FzZSBJRE1fVUFfREVGQVVMVDoKKyAgICBjYXNlIElE
TV9VQV9TQUZBUklfOF8wOgorICAgIGNhc2UgSURNX1VBX1NBRkFSSV9JT1NfOF9JUEhPTkU6Cisg
ICAgY2FzZSBJRE1fVUFfU0FGQVJJX0lPU184X0lQQUQ6CisgICAgY2FzZSBJRE1fVUFfSUVfMTE6
CisgICAgY2FzZSBJRE1fVUFfQ0hST01FX01BQzoKKyAgICBjYXNlIElETV9VQV9DSFJPTUVfV0lO
OgorICAgIGNhc2UgSURNX1VBX0ZJUkVGT1hfTUFDOgorICAgIGNhc2UgSURNX1VBX0ZJUkVGT1hf
V0lOOgorICAgICAgICBtX2Jyb3dzZXJXaW5kb3ctPnNldFVzZXJBZ2VudChtZW51SUQpOworICAg
ICAgICB0dXJuT2ZmT3RoZXJVc2VyQWdlbnRzKG1lbnUpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIElETV9VQV9PVEhFUjoKKyAgICAgICAgLy8gVGhlIGFjdHVhbCB1c2VyIGFnZW50IHN0cmlu
ZyB3aWxsIGJlIHNldCBieSB0aGUgY3VzdG9tIHVzZXIgYWdlbnQgZGlhbG9nCisgICAgICAgIHR1
cm5PZmZPdGhlclVzZXJBZ2VudHMobWVudSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAg
IE1FTlVJVEVNSU5GTyBpbmZvID0geyB9OworICAgIGluZm8uY2JTaXplID0gc2l6ZW9mKGluZm8p
OworICAgIGluZm8uZk1hc2sgPSBNSUlNX1NUQVRFOworCisgICAgaWYgKCE6OkdldE1lbnVJdGVt
SW5mbyhtZW51LCBtZW51SUQsIEZBTFNFLCAmaW5mbykpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIEJPT0wgbmV3U3RhdGUgPSAhbWVudUl0ZW1Jc0NoZWNrZWQoaW5mbyk7CisgICAgaW5m
by5mU3RhdGUgPSAobmV3U3RhdGUpID8gTUZTX0NIRUNLRUQgOiBNRlNfVU5DSEVDS0VEOworICAg
IDo6U2V0TWVudUl0ZW1JbmZvKG1lbnUsIG1lbnVJRCwgRkFMU0UsICZpbmZvKTsKKworICAgIG1f
YnJvd3NlcldpbmRvdy0+c2V0UHJlZmVyZW5jZShtZW51SUQsIG5ld1N0YXRlKTsKKworICAgIHJl
dHVybiB0cnVlOworfQorCitMUkVTVUxUIENBTExCQUNLIEVkaXRQcm9jKEhXTkQgaERsZywgVUlO
VCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQoreworICAgIHN3aXRjaCAo
bWVzc2FnZSkgeworICAgIGNhc2UgV01fQ0hBUjoKKyAgICAgICAgaWYgKHdQYXJhbSA9PSAxMykg
eworICAgICAgICAgICAgLy8gRW50ZXIgS2V5CisgICAgICAgICAgICB3Y2hhcl90IHN0clB0cltJ
TlRFUk5FVF9NQVhfVVJMX0xFTkdUSF07CisgICAgICAgICAgICAqKChMUFdPUkQpc3RyUHRyKSA9
IElOVEVSTkVUX01BWF9VUkxfTEVOR1RIOworICAgICAgICAgICAgaW50IHN0ckxlbiA9IFNlbmRN
ZXNzYWdlKGhEbGcsIEVNX0dFVExJTkUsIDAsIChMUEFSQU0pc3RyUHRyKTsKKworICAgICAgICAg
ICAgc3RyUHRyW3N0ckxlbl0gPSAwOworICAgICAgICAgICAgX2JzdHJfdCBic3RyKHN0clB0cik7
CisgICAgICAgICAgICBnTWFpbldpbmRvdy0+bG9hZFVSTChic3RyLkdldEJTVFIoKSk7CisKKyAg
ICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0
dXJuIENhbGxXaW5kb3dQcm9jKERlZkVkaXRQcm9jLCBoRGxnLCBtZXNzYWdlLCB3UGFyYW0sIGxQ
YXJhbSk7CisgICAgfQorfQorCitMUkVTVUxUIENBTExCQUNLIEJhY2tCdXR0b25Qcm9jKEhXTkQg
aERsZywgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQoreworICAg
IHN3aXRjaCAobWVzc2FnZSkgeworICAgIGNhc2UgV01fTEJVVFRPTlVQOgorICAgICAgICBnTWlu
aUJyb3dzZXItPmdvQmFjaygpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBDYWxsV2lu
ZG93UHJvYyhEZWZCdXR0b25Qcm9jLCBoRGxnLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7Cisg
ICAgfQorfQorCitMUkVTVUxUIENBTExCQUNLIEZvcndhcmRCdXR0b25Qcm9jKEhXTkQgaERsZywg
VUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQoreworICAgIHN3aXRj
aCAobWVzc2FnZSkgeworICAgIGNhc2UgV01fTEJVVFRPTlVQOgorICAgICAgICBnTWluaUJyb3dz
ZXItPmdvRm9yd2FyZCgpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBDYWxsV2luZG93
UHJvYyhEZWZCdXR0b25Qcm9jLCBoRGxnLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7CisgICAg
fQorfQorCisvLyBNZXNzYWdlIGhhbmRsZXIgZm9yIGFib3V0IGJveC4KK0lOVF9QVFIgQ0FMTEJB
Q0sgQWJvdXQoSFdORCBoRGxnLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBs
UGFyYW0pCit7CisgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihsUGFyYW0pOworICAgIHN3aXRj
aCAobWVzc2FnZSkgeworICAgIGNhc2UgV01fSU5JVERJQUxPRzoKKyAgICAgICAgcmV0dXJuIChJ
TlRfUFRSKVRSVUU7CisKKyAgICBjYXNlIFdNX0NPTU1BTkQ6CisgICAgICAgIGlmIChMT1dPUkQo
d1BhcmFtKSA9PSBJRE9LIHx8IExPV09SRCh3UGFyYW0pID09IElEQ0FOQ0VMKSB7CisgICAgICAg
ICAgICBFbmREaWFsb2coaERsZywgTE9XT1JEKHdQYXJhbSkpOworICAgICAgICAgICAgcmV0dXJu
IChJTlRfUFRSKVRSVUU7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJl
dHVybiAoSU5UX1BUUilGQUxTRTsKK30KKworSU5UX1BUUiBDQUxMQkFDSyBDYWNoZXMoSFdORCBo
RGxnLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCit7CisgICAg
VU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihsUGFyYW0pOworICAgIHN3aXRjaCAobWVzc2FnZSkgewor
ICAgIGNhc2UgV01fSU5JVERJQUxPRzoKKyAgICAgICAgOjpTZXRUaW1lcihoRGxnLCBJRFRfVVBE
QVRFX1NUQVRTLCAxMDAwLCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIChJTlRfUFRSKVRSVUU7
CisKKyAgICBjYXNlIFdNX0NPTU1BTkQ6CisgICAgICAgIGlmIChMT1dPUkQod1BhcmFtKSA9PSBJ
RE9LIHx8IExPV09SRCh3UGFyYW0pID09IElEQ0FOQ0VMKSB7CisgICAgICAgICAgICA6OktpbGxU
aW1lcihoRGxnLCBJRFRfVVBEQVRFX1NUQVRTKTsKKyAgICAgICAgICAgIDo6RGVzdHJveVdpbmRv
dyhoRGxnKTsKKyAgICAgICAgICAgIGhDYWNoZVduZCA9IDA7CisgICAgICAgICAgICByZXR1cm4g
KElOVF9QVFIpVFJVRTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKworICAgIGNhc2UgSURU
X1VQREFURV9TVEFUUzoKKyAgICAgICAgOjpJbnZhbGlkYXRlUmVjdChoRGxnLCBudWxscHRyLCBG
QUxTRSk7CisgICAgICAgIHJldHVybiAoSU5UX1BUUilUUlVFOworCisgICAgY2FzZSBXTV9QQUlO
VDoKKyAgICAgICAgZ01pbmlCcm93c2VyLT51cGRhdGVTdGF0aXN0aWNzKGhEbGcpOworICAgICAg
ICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gKElOVF9QVFIpRkFMU0U7Cit9CisKK0lOVF9Q
VFIgQ0FMTEJBQ0sgQ3VzdG9tVXNlckFnZW50KEhXTkQgaERsZywgVUlOVCBtZXNzYWdlLCBXUEFS
QU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQoreworICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIo
bFBhcmFtKTsKKyAgICBzd2l0Y2ggKG1lc3NhZ2UpIHsKKyAgICBjYXNlIFdNX0lOSVRESUFMT0c6
IHsKKyAgICAgICAgSFdORCBlZGl0ID0gOjpHZXREbGdJdGVtKGhEbGcsIElEQ19VU0VSX0FHRU5U
X0lOUFVUKTsKKyAgICAgICAgX2JzdHJfdCB1c2VyQWdlbnQ7CisgICAgICAgIGlmIChnTWluaUJy
b3dzZXIpCisgICAgICAgICAgICB1c2VyQWdlbnQgPSBnTWluaUJyb3dzZXItPnVzZXJBZ2VudCgp
OworCisgICAgICAgIDo6U2V0V2luZG93VGV4dChlZGl0LCBzdGF0aWNfY2FzdDxMUENUU1RSPih1
c2VyQWdlbnQpKTsKKyAgICAgICAgcmV0dXJuIChJTlRfUFRSKVRSVUU7CisgICAgfQorCisgICAg
Y2FzZSBXTV9DT01NQU5EOgorICAgICAgICBpZiAoTE9XT1JEKHdQYXJhbSkgPT0gSURPSykgewor
ICAgICAgICAgICAgSFdORCBlZGl0ID0gOjpHZXREbGdJdGVtKGhEbGcsIElEQ19VU0VSX0FHRU5U
X0lOUFVUKTsKKworICAgICAgICAgICAgVENIQVIgYnVmZmVyWzEwMjRdOworICAgICAgICAgICAg
aW50IHN0ckxlbiA9IDo6R2V0V2luZG93VGV4dChlZGl0LCBidWZmZXIsIDEwMjQpOworICAgICAg
ICAgICAgYnVmZmVyW3N0ckxlbl0gPSAwOworCisgICAgICAgICAgICBfYnN0cl90IGJzdHIoYnVm
ZmVyKTsKKyAgICAgICAgICAgIGlmIChic3RyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAg
Z01pbmlCcm93c2VyLT5zZXRVc2VyQWdlbnQoYnN0cik7CisgICAgICAgICAgICAgICAgOjpQb3N0
TWVzc2FnZShnTWFpbldpbmRvdy0+aHduZCgpLCBzdGF0aWNfY2FzdDxVSU5UPihXTV9DT01NQU5E
KSwgTUFLRUxQQVJBTShJRE1fVUFfT1RIRVIsIDEpLCAwKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorCisgICAgICAgIGlmIChMT1dPUkQod1BhcmFtKSA9PSBJRE9LIHx8IExPV09SRCh3UGFy
YW0pID09IElEQ0FOQ0VMKSB7CisgICAgICAgICAgICA6OkVuZERpYWxvZyhoRGxnLCBMT1dPUkQo
d1BhcmFtKSk7CisgICAgICAgICAgICByZXR1cm4gKElOVF9QVFIpVFJVRTsKKyAgICAgICAgfQor
ICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIChJTlRfUFRSKUZBTFNFOworfQorCitz
dGF0aWMgSU5UX1BUUiBDQUxMQkFDSyBhdXRoRGlhbG9nUHJvYyhIV05EIGhEbGcsIFVJTlQgbWVz
c2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKK3sKKyAgICBzd2l0Y2ggKG1lc3Nh
Z2UpIHsKKyAgICBjYXNlIFdNX0lOSVRESUFMT0c6IHsKKyAgICAgICAgSFdORCBlZGl0ID0gOjpH
ZXREbGdJdGVtKGhEbGcsIElEQ19BVVRIX1VTRVIpOworICAgICAgICA6OlNldFdpbmRvd1RleHQo
ZWRpdCwgc3RhdGljX2Nhc3Q8TFBDVFNUUj4oTCIiKSk7CisKKyAgICAgICAgZWRpdCA9IDo6R2V0
RGxnSXRlbShoRGxnLCBJRENfQVVUSF9QQVNTV09SRCk7CisgICAgICAgIDo6U2V0V2luZG93VGV4
dChlZGl0LCBzdGF0aWNfY2FzdDxMUENUU1RSPihMIiIpKTsKKyAgICAgICAgcmV0dXJuIChJTlRf
UFRSKVRSVUU7CisgICAgfQorCisgICAgY2FzZSBXTV9DT01NQU5EOgorICAgICAgICBpZiAoTE9X
T1JEKHdQYXJhbSkgPT0gSURPSyB8fCBMT1dPUkQod1BhcmFtKSA9PSBJRENBTkNFTCkgeworICAg
ICAgICAgICAgSU5UX1BUUiByZXN1bHQgeyB9OworCisgICAgICAgICAgICBpZiAoTE9XT1JEKHdQ
YXJhbSkgPT0gSURPSykgeworICAgICAgICAgICAgICAgIFRDSEFSIHVzZXJbMjU2XTsKKyAgICAg
ICAgICAgICAgICBpbnQgc3RyTGVuID0gOjpHZXRXaW5kb3dUZXh0KDo6R2V0RGxnSXRlbShoRGxn
LCBJRENfQVVUSF9VU0VSKSwgdXNlciwgMjU2KTsKKyAgICAgICAgICAgICAgICB1c2VyW3N0ckxl
bl0gPSAwOworCisgICAgICAgICAgICAgICAgVENIQVIgcGFzc1syNTZdOworICAgICAgICAgICAg
ICAgIHN0ckxlbiA9IDo6R2V0V2luZG93VGV4dCg6OkdldERsZ0l0ZW0oaERsZywgSURDX0FVVEhf
UEFTU1dPUkQpLCBwYXNzLCAyNTYpOworICAgICAgICAgICAgICAgIHBhc3Nbc3RyTGVuXSA9IDA7
CisKKyAgICAgICAgICAgICAgICByZXN1bHQgPSByZWludGVycHJldF9jYXN0PElOVF9QVFI+KG5l
dyBzdGQ6OnBhaXI8c3RkOjp3c3RyaW5nLCBzdGQ6OndzdHJpbmc+KHVzZXIsIHBhc3MpKTsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgOjpFbmREaWFsb2coaERsZywgcmVzdWx0KTsKKyAg
ICAgICAgICAgIHJldHVybiAoSU5UX1BUUilUUlVFOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OworICAgIH0KKyAgICByZXR1cm4gKElOVF9QVFIpRkFMU0U7Cit9CisKK0hSRVNVTFQgTWFpbldp
bmRvdzo6ZGlzcGxheUF1dGhEaWFsb2coc3RkOjp3c3RyaW5nJiB1c2VybmFtZSwgc3RkOjp3c3Ry
aW5nJiBwYXNzd29yZCkKK3sKKyAgICBhdXRvIHJlc3VsdCA9IERpYWxvZ0JveChoSW5zdCwgTUFL
RUlOVFJFU09VUkNFKElERF9BVVRIKSwgaHduZCgpLCBhdXRoRGlhbG9nUHJvYyk7CisgICAgaWYg
KCFyZXN1bHQpCisgICAgICAgIHJldHVybiBFX0ZBSUw7CisKKyAgICBhdXRvIHBhaXIgPSByZWlu
dGVycHJldF9jYXN0PHN0ZDo6cGFpcjxzdGQ6OndzdHJpbmcsIHN0ZDo6d3N0cmluZz4qPihyZXN1
bHQpOworICAgIHVzZXJuYW1lID0gcGFpci0+Zmlyc3Q7CisgICAgcGFzc3dvcmQgPSBwYWlyLT5z
ZWNvbmQ7CisgICAgZGVsZXRlIHBhaXI7CisKKyAgICByZXR1cm4gU19PSzsKK30KKwordm9pZCBN
YWluV2luZG93Ojpsb2FkVVJMKEJTVFIgdXJsKQoreworICAgIGlmIChGQUlMRUQobV9icm93c2Vy
V2luZG93LT5sb2FkVVJMKHVybCkpKQorICAgICAgICByZXR1cm47CisKKyAgICBTZXRGb2N1cyht
X2Jyb3dzZXJXaW5kb3ctPmh3bmQoKSk7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nl
ci93aW4vTWFpbldpbmRvdy5oIGIvVG9vbHMvTWluaUJyb3dzZXIvd2luL01haW5XaW5kb3cuaApp
bmRleCAyNDIzZGE3NTA1ZjMwM2ZjZDE5ZDdjMWFiODExY2EyNDMyN2VmMDAxLi4yOTAwYmQyODUy
NDQzZDM4MDcwYTQ2Mzc4N2E1YWEwNmFiYWY5NTJkIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJv
d3Nlci93aW4vTWFpbldpbmRvdy5oCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9NYWluV2lu
ZG93LmgKQEAgLTM3LDEyICszNywxNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNpemVTdWJWaWV3
cygpOwogICAgIEhXTkQgaHduZCgpIGNvbnN0IHsgcmV0dXJuIG1faE1haW5XbmQ7IH0KICAgICBN
aW5pQnJvd3NlciogYnJvd3NlcldpbmRvdygpIGNvbnN0IHsgcmV0dXJuIG1fYnJvd3NlcldpbmRv
dy5nZXQoKTsgfQorCisgICAgdm9pZCBsb2FkVVJMKEJTVFIgdXJsKTsKKyAgICBIUkVTVUxUIGRp
c3BsYXlBdXRoRGlhbG9nKHN0ZDo6d3N0cmluZyYgdXNlcm5hbWUsIHN0ZDo6d3N0cmluZyYgcGFz
c3dvcmQpOwogICAgIAogcHJpdmF0ZToKICAgICBzdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBXbmRQ
cm9jKEhXTkQsIFVJTlQsIFdQQVJBTSwgTFBBUkFNKTsKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rl
ckNsYXNzKEhJTlNUQU5DRSBoSW5zdGFuY2UpOwogICAgIHN0YXRpYyBzdGQ6OndzdHJpbmcgc193
aW5kb3dDbGFzczsKIAorICAgIGJvb2wgdG9nZ2xlTWVudUl0ZW0oVUlOVCBtZW51SUQpOworCiAg
ICAgSFdORCBtX2hNYWluV25kIHsgbnVsbHB0ciB9OwogICAgIEhXTkQgbV9oVVJMQmFyV25kIHsg
bnVsbHB0ciB9OwogICAgIEhXTkQgbV9oQmFja0J1dHRvblduZCB7IG51bGxwdHIgfTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9NaW5pQnJvd3Nlci5oIGIvVG9vbHMvTWluaUJy
b3dzZXIvd2luL01pbmlCcm93c2VyLmgKaW5kZXggZjU5NjkxOTFjM2IxZTBmYjE4OTVhMGM3OTE1
ZTMwNjg0MGM0YTRhYy4uZTg2YWQ2YjM1NTRhMDU1MmM4NDk4ZTVhMDI3MTk0NzViMTQ1YTEyOCAx
MDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvd2luL01pbmlCcm93c2VyLmgKKysrIGIvVG9v
bHMvTWluaUJyb3dzZXIvd2luL01pbmlCcm93c2VyLmgKQEAgLTIzLDYgKzIzLDcgQEAKICAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAogICovCiAKKyNwcmFnbWEgb25jZQogI2luY2x1ZGUgIlBhZ2VMb2FkVGVzdENs
aWVudC5oIgogI2luY2x1ZGUgPFdlYktpdExlZ2FjeS9XZWJLaXQuaD4KICNpbmNsdWRlIDxjb21p
cC5oPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvd2luL1dpbk1haW4uY3BwIGIvVG9v
bHMvTWluaUJyb3dzZXIvd2luL1dpbk1haW4uY3BwCmluZGV4IGNkOTcxZjBhYTE3YWY2N2MyMjdm
YjE1YjkyYjlkNzBmMWRkNjVkMWUuLmU4YjU4ZDJkNGU2YWQ0OWM3ODFjMTA1NjZmMzc5MWExNjlj
ODM2YjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XaW5NYWluLmNwcAorKysg
Yi9Ub29scy9NaW5pQnJvd3Nlci93aW4vV2luTWFpbi5jcHAKQEAgLTI5LDggKzI5LDEwIEBACiAj
cHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDA5MSkKIAogI2luY2x1ZGUgInN0ZGFmeC5oIgorI2lu
Y2x1ZGUgIkNvbW1vbi5oIgogI2luY2x1ZGUgIk1pbmlCcm93c2VyTGliUmVzb3VyY2UuaCIKLSNp
bmNsdWRlICJDb21tb24uY3BwIgorI2luY2x1ZGUgIk1pbmlCcm93c2VyUmVwbGFjZS5oIgorI2lu
Y2x1ZGUgPFdlYktpdExlZ2FjeS9XZWJLaXRDT01BUEkuaD4KIAogaW50IFdJTkFQSSB3V2luTWFp
bihfSW5fIEhJTlNUQU5DRSBoSW5zdGFuY2UsIF9Jbl9vcHRfIEhJTlNUQU5DRSBoUHJldkluc3Rh
bmNlLCBfSW5fIExQV1NUUiBscHN0ckNtZExpbmUsIF9Jbl8gaW50IG5DbWRTaG93KQogewpAQCAt
NzQsNyArNzYsNyBAQCBpbnQgV0lOQVBJIHdXaW5NYWluKF9Jbl8gSElOU1RBTkNFIGhJbnN0YW5j
ZSwgX0luX29wdF8gSElOU1RBTkNFIGhQcmV2SW5zdGFuY2UsCiAgICAgaEFjY2VsVGFibGUgPSBM
b2FkQWNjZWxlcmF0b3JzKGhJbnN0LCBNQUtFSU5UUkVTT1VSQ0UoSURDX01JTklCUk9XU0VSKSk7
CiAKICAgICBpZiAocmVxdWVzdGVkVVJMLmxlbmd0aCgpKQotICAgICAgICBsb2FkVVJMKHJlcXVl
c3RlZFVSTC5HZXRCU1RSKCkpOworICAgICAgICBnTWFpbldpbmRvdy0+bG9hZFVSTChyZXF1ZXN0
ZWRVUkwuR2V0QlNUUigpKTsKICAgICBlbHNlCiAgICAgICAgIGdNaW5pQnJvd3Nlci0+bG9hZEhU
TUxTdHJpbmcoX2JzdHJfdChkZWZhdWx0SFRNTCkuR2V0QlNUUigpKTsKIAo=
</data>
<flag name="review"
          id="359720"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>