<?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>195654</bug_id>
          
          <creation_ts>2019-03-12 17:18:32 -0700</creation_ts>
          <short_desc>Move the code for determining the need for touch bar quirks to Quirks class</short_desc>
          <delta_ts>2019-03-12 21:11:36 -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>HTML Editing</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>basuke</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>ggaren</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1515773</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-03-12 17:18:32 -0700</bug_when>
    <thetext>WebPage::didApplyStyle() has the logic to determine whether hidden content editable and plain text quirks are needed.
Move these logics to Quirks class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515775</commentid>
    <comment_count>1</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-12 17:20:42 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #0)
&gt; WebPage::didApplyStyle() has the logic to determine whether hidden content
&gt; editable and plain text quirks are needed.
&gt; Move these logics to Quirks class.

*WebPage::didChangeSelection</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515804</commentid>
    <comment_count>2</comment_count>
      <attachid>364488</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-03-12 17:59:03 -0700</bug_when>
    <thetext>Created attachment 364488
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515805</commentid>
    <comment_count>3</comment_count>
      <attachid>364489</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-03-12 18:00:39 -0700</bug_when>
    <thetext>Created attachment 364489
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515818</commentid>
    <comment_count>4</comment_count>
      <attachid>364489</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-03-12 18:45:20 -0700</bug_when>
    <thetext>Comment on attachment 364489
Cleanup

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

&gt; Source/WebCore/page/Quirks.cpp:159
&gt; +#if PLATFORM(MAC)

What about iOSMac? Would it maybe be needed there?

&gt; Source/WebCore/page/Quirks.cpp:172
&gt; +#if PLATFORM(MAC)

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515827</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-03-12 19:17:54 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #4)
&gt; Comment on attachment 364489 [details]
&gt; Cleanup
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=364489&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/Quirks.cpp:159
&gt; &gt; +#if PLATFORM(MAC)
&gt; 
&gt; What about iOSMac? Would it maybe be needed there?

Wenson says we might. But the code which uses these checks are also guarded inside PLATFORM(MAC) so we&apos;d probably have to fix both of them. I&apos;m gonna leave the check as is for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515832</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-03-12 19:31:42 -0700</bug_when>
    <thetext>Committed r242840: &lt;https://trac.webkit.org/changeset/242840&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515833</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-12 19:32:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/48834165&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364488</attachid>
            <date>2019-03-12 17:59:03 -0700</date>
            <delta_ts>2019-03-12 18:00:37 -0700</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-195654-20190312175902.patch</filename>
            <type>text/plain</type>
            <size>19540</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MjgzNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE5LTAzLTEyICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1vdmUgdGhlIGNvZGUgZm9yIGRl
dGVybWluaW5nIHRvdWNoIGJhciBxdWlya3MgYXJlIG5lZWRlZCBpbiBXZWJLaXQyIHRvIFF1aXJr
cyBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk1NjU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TW92ZWQgdGhlIGNvZGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHRvdWNoIGJhciBxdWlya3Mg
YXJlIG5lZWRlZCBvciBub3QgZnJvbSBXZWJLaXQyLgorCisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvUXVpcmtzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlF1aXJrczo6aXNUb3VjaEJhclVwZGF0ZVN1cHJlc3NlZEZvckhpZGRlbkNv
bnRlbnRFZGl0YWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpRdWlya3M6OmlzTmV2ZXJS
aWNobHlFZGl0YWJsZUZvclRvdWNoQmFyIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1F1aXJrcy5o
OgorCiAyMDE5LTAzLTEyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0NvbnRlbnRDaGFuZ2VPYnNlcnZlcl0gUmVzZXQgc3RhdGUgd2hlbiB0b3VjaFN0YXJ0IGRv
ZXMgbm90IHR1cm4gaW50byBjbGljay4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI0MjgzNSkKKysrIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5
KQpAQCAtMjkzMCw2ICsyOTMwLDcgQEAKIAkJOUJBMjczRjQxNzIyMDZCQjAwOTdDRTQ3IC8qIExv
Z2ljYWxTZWxlY3Rpb25PZmZzZXRDYWNoZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDlCQTI3M0YzMTcyMjA2QkIwMDk3Q0U0NyAvKiBMb2dpY2FsU2Vs
ZWN0aW9uT2Zmc2V0Q2FjaGVzLmggKi87IH07CiAJCTlCQUFDNDVDMjE1MjAxMjgwMDNENEE5OCAv
KiBHQ1JlYWNoYWJsZVJlZi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOUJBQUM0NTYyMTUxRTM5RTAwM0Q0QTk4IC8qIEdDUmVhY2hhYmxlUmVmLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUJBQjZDNkMx
MjU1MDYzMTAwMTYyNkQ0IC8qIEVkaXRpbmdTdHlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUJBQjZDNkExMjU1MDYzMTAwMTYyNkQ0IC8qIEVkaXRp
bmdTdHlsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTlCQUVFOTJDMjIzODhBN0QwMDQxNTdBOSAvKiBRdWlya3MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOUE4N0ZCMjE1RDZDRjMwMDZGMTdCNSAv
KiBRdWlya3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5QkFGM0IyNDEyQzFBMzk4MDAwMTRCRjEgLyogV3JpdGluZ0RpcmVjdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUJBRjNCMjMxMkMxQTM5
ODAwMDE0QkYxIC8qIFdyaXRpbmdEaXJlY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QkJBMkNBQjFGNjc5RTBDMDBGRDFDMUUgLyogV2Vi
Q29udGVudFJlYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOUJGNDMzNzYxRjY3NjE5QjAwRTFGRDcxIC8qIFdlYkNvbnRlbnRSZWFkZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QkM2QzIxQjEz
Q0NDOTdCMDA4RTAzMzcgLyogSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCQzZDMjE5MTNDQ0M5N0IwMDhF
MDMzNyAvKiBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zMTIxNyw2ICszMTIxOCw3IEBACiAJCQkJ
ODNDMUY1OTQxRURGNjlEMzAwNDEwRDI3IC8qIFF1YWxpZmllZE5hbWVDYWNoZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTE1RTMxRjQxRTBDQjBCNTAwNEIzNzFDIC8qIFF1aWNrTG9vay5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDcyQUUxRTgxODNDMDc0MTAwMEE1OTg4IC8qIFF1aWNrVGltZVBsdWdp
blJlcGxhY2VtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5QkFFRTkyQzIyMzg4QTdEMDA0MTU3
QTkgLyogUXVpcmtzLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzlFMzcxNzEzNzM2QTY2MDBCOUU5
MTkgLyogUXVvdGVkUHJpbnRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QTU3NEYyOTEzMURC
OTZEMDA0NzFCODggLyogUXVvdGVzRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5NzIw
RDAwQkYyMjAwNzFCNzgyIC8qIFJhZGlhbEdyYWRpZW50QXR0cmlidXRlcy5oIGluIEhlYWRlcnMg
Ki8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCShyZXZpc2lvbiAyNDI4MzUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NCw0ICsxNTQs
NDUgQEAgYm9vbCBRdWlya3M6Omhhc1dlYlNRTFN1cHBvcnRRdWlyaygpIGNvbgogICAgIHJldHVy
biBtX2hhc1dlYlNRTFN1cHBvcnRRdWlyay52YWx1ZSgpOwogfQogCitib29sIFF1aXJrczo6aXNU
b3VjaEJhclVwZGF0ZVN1cHJlc3NlZEZvckhpZGRlbkNvbnRlbnRFZGl0YWJsZSgpIGNvbnN0Cit7
CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGlmICghbmVlZHNRdWlya3MoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgYXV0byBob3N0ID0gbV9kb2N1bWVudC0+dG9wRG9jdW1lbnQoKS51
cmwoKS5ob3N0KCk7CisgICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGhv
c3QsICJkb2NzLmdvb2dsZS5jb20iKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlm
Cit9CisKK2Jvb2wgUXVpcmtzOjppc05ldmVyUmljaGx5RWRpdGFibGVGb3JUb3VjaEJhcigpIGNv
bnN0Cit7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGlmICghbmVlZHNRdWlya3MoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byYgdXJsID0gbV9kb2N1bWVudC0+dG9wRG9jdW1l
bnQoKS51cmwoKTsKKyAgICBhdXRvIGhvc3QgPSB1cmwuaG9zdCgpOworCisgICAgaWYgKGVxdWFs
TGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGhvc3QsICJ0d2l0dGVyLmNvbSIpKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKworICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShob3N0
LCAib25lZHJpdmUubGl2ZS5jb20iKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAo
ZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoaG9zdCwgInRyaXgtZWRpdG9yLm9yZyIpKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJ
Q2FzZShob3N0LCAid3d3LmljbG91ZC5jb20iKSkgeworICAgICAgICBhdXRvIHBhdGggPSB1cmwu
cGF0aCgpOworICAgICAgICBpZiAocGF0aC5jb250YWlucygibm90ZXMiKSB8fCB1cmwuZnJhZ21l
bnRJZGVudGlmaWVyKCkuY29udGFpbnMoIm5vdGVzIikpCisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisjZW5kaWYKKworICAgIHJldHVybiBmYWxzZTsKK30KKwogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL1F1aXJrcy5oCShyZXZpc2lvbiAyNDI4MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1F1
aXJrcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw5IEBAIHB1YmxpYzoKICAgICBib29s
IGhhc0Jyb2tlbkVuY3J5cHRlZE1lZGlhQVBJU3VwcG9ydFF1aXJrKCkgY29uc3Q7CiAgICAgYm9v
bCBoYXNXZWJTUUxTdXBwb3J0UXVpcmsoKSBjb25zdDsKIAorICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgaXNUb3VjaEJhclVwZGF0ZVN1cHJlc3NlZEZvckhpZGRlbkNvbnRlbnRFZGl0YWJsZSgpIGNv
bnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNOZXZlclJpY2hseUVkaXRhYmxlRm9yVG91
Y2hCYXIoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBib29sIG5lZWRzUXVpcmtzKCkgY29uc3Q7
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDI4MzYpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDE5LTAzLTEyICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1vdmUgdGhlIGNvZGUgZm9yIGRl
dGVybWluaW5nIHRvdWNoIGJhciBxdWlya3MgYXJlIG5lZWRlZCBpbiBXZWJLaXQyIHRvIFF1aXJr
cyBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk1NjU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TW92ZWQgdGhlIGNvZGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdG91Y2ggYmFyIHF1aXJrcyBhcmUg
bmVlZGVkIG9yIG5vdCB0byBXZWJDb3JlLgorCisgICAgICAgIEFsc28gcmVuYW1lZCBIaWRkZW5D
b250ZW50RWRpdGFibGVRdWlyayB0byBJc1RvdWNoQmFyVXBkYXRlU3VwcmVzc2VkRm9ySGlkZGVu
Q29udGVudEVkaXRhYmxlCisgICAgICAgIGFuZCBQbGFpblRleHRRdWlyayB0byBOZXZlclJpY2hs
eUVkaXRhYmxlRm9yVG91Y2hCYXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmlzUmljaGx5RWRpdGFibGVG
b3JUb3VjaEJhcik6IFJlbmFtZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlVG91Y2hCYXIpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y2FuZGlkYXRlTGlzdFRvdWNoQmFySXRlbSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppc1JpY2hseUVkaXRhYmxlRm9y
VG91Y2hCYXIgY29uc3QpOiBSZW5hbWVkIGZyb20gaXNSaWNobHlFZGl0YWJsZS4KKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OnRleHRUb3VjaEJhciBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjp1cGRhdGVUZXh0VG91Y2hCYXIpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldElz
VG91Y2hCYXJVcGRhdGVTdXByZXNzZWRGb3JIaWRkZW5Db250ZW50RWRpdGFibGUpOiBSZW5hbWVk
IGZyb20KKyAgICAgICAgc2V0TmVlZHNIaWRkZW5Db250ZW50RWRpdGFibGVRdWlyay4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRJc05ldmVyUmljaGx5RWRpdGFibGVGb3JUb3Vj
aEJhcik6IFJlbmFtZWQgZnJvbSBzZXROZWVkc1BsYWluVGV4dFF1aXJrLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpp
c1RvdWNoQmFyVXBkYXRlU3VwcmVzc2VkRm9ySGlkZGVuQ29udGVudEVkaXRhYmxlIGNvbnN0KTog
UmVuYW1lZCBmcm9tCisgICAgICAgIG5lZWRzSGlkZGVuQ29udGVudEVkaXRhYmxlUXVpcmsuCisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aXNOZXZlclJpY2hseUVkaXRhYmxlRm9yVG91
Y2hCYXIgY29uc3QpOiBSZW5hbWVkIGZyb20gbmVlZHNQbGFpblRleHRRdWlyay4KKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOiBSZW5hbWVkIHRoZSBJUEMgbWVz
c2FnZXMuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpuZWVkc0hpZGRlbkNvbnRlbnRFZGl0YWJsZVF1aXJrKTogRGVsZXRlZC4gTW92
ZWQgdG8gV2ViQ29yZS4KKyAgICAgICAgKFdlYktpdDo6bmVlZHNQbGFpblRleHRRdWlyayk6IERl
bGV0ZWQuIE1vdmVkIHRvIFdlYkNvcmUuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZFN0
YXJ0UGFnZVRyYW5zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDaGFuZ2VT
ZWxlY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2UpOgorCiAyMDE5LTAzLTEyICBKaWV3ZW4gVGFuICA8amlld2Vu
X3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFdlYkZyYW1lUHJveHk6OmxvYWREYXRhCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDI0
MjgzNSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTU1NjAsMTQgKzU1NjAsMTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldEhh
c0hhZFNlbGVjdGlvbkNoYQogICAgIG1faGFzSGFkU2VsZWN0aW9uQ2hhbmdlc0Zyb21Vc2VySW50
ZXJhY3Rpb24gPSBoYXNIYWRVc2VyU2VsZWN0aW9uQ2hhbmdlczsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OnNldE5lZWRzSGlkZGVuQ29udGVudEVkaXRhYmxlUXVpcmsoYm9vbCBuZWVkc0hpZGRl
bkNvbnRlbnRFZGl0YWJsZVF1aXJrKQordm9pZCBXZWJQYWdlUHJveHk6OnNldElzVG91Y2hCYXJV
cGRhdGVTdXByZXNzZWRGb3JIaWRkZW5Db250ZW50RWRpdGFibGUoYm9vbCBpZ25vcmVUb3VjaEJh
clVwZGF0ZSkKIHsKLSAgICBtX25lZWRzSGlkZGVuQ29udGVudEVkaXRhYmxlUXVpcmsgPSBuZWVk
c0hpZGRlbkNvbnRlbnRFZGl0YWJsZVF1aXJrOworICAgIG1faXNUb3VjaEJhclVwZGF0ZVN1cHJl
c3NlZEZvckhpZGRlbkNvbnRlbnRFZGl0YWJsZSA9IGlnbm9yZVRvdWNoQmFyVXBkYXRlOwogfQog
Ci12b2lkIFdlYlBhZ2VQcm94eTo6c2V0TmVlZHNQbGFpblRleHRRdWlyayhib29sIG5lZWRzUGxh
aW5UZXh0UXVpcmspCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0SXNOZXZlclJpY2hseUVkaXRhYmxl
Rm9yVG91Y2hCYXIoYm9vbCBpc05ldmVyUmljaGx5RWRpdGFibGUpCiB7Ci0gICAgbV9uZWVkc1Bs
YWluVGV4dFF1aXJrID0gbmVlZHNQbGFpblRleHRRdWlyazsKKyAgICBtX2lzTmV2ZXJSaWNobHlF
ZGl0YWJsZUZvclRvdWNoQmFyID0gaXNOZXZlclJpY2hseUVkaXRhYmxlOwogfQogCiB2b2lkIFdl
YlBhZ2VQcm94eTo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IGVsZW1lbnRSZWN0LCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2
aXNpb24gMjQyODM1KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEzNzgsOCArMTM3OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dFVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91
dERpcmVjdGlvbik7CiAKICAgICBib29sIGhhc0hhZFNlbGVjdGlvbkNoYW5nZXNGcm9tVXNlcklu
dGVyYWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9oYXNIYWRTZWxlY3Rpb25DaGFuZ2VzRnJvbVVz
ZXJJbnRlcmFjdGlvbjsgfQotICAgIGJvb2wgbmVlZHNIaWRkZW5Db250ZW50RWRpdGFibGVRdWly
aygpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNIaWRkZW5Db250ZW50RWRpdGFibGVRdWlyazsgfQot
ICAgIGJvb2wgbmVlZHNQbGFpblRleHRRdWlyaygpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNQbGFp
blRleHRRdWlyazsgfQorICAgIGJvb2wgaXNUb3VjaEJhclVwZGF0ZVN1cHJlc3NlZEZvckhpZGRl
bkNvbnRlbnRFZGl0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNUb3VjaEJhclVwZGF0ZVN1cHJl
c3NlZEZvckhpZGRlbkNvbnRlbnRFZGl0YWJsZTsgfQorICAgIGJvb2wgaXNOZXZlclJpY2hseUVk
aXRhYmxlRm9yVG91Y2hCYXIoKSBjb25zdCB7IHJldHVybiBtX2lzTmV2ZXJSaWNobHlFZGl0YWJs
ZUZvclRvdWNoQmFyOyB9CiAKICAgICBib29sIGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpIGNv
bnN0OwogCkBAIC0xNjkwLDggKzE2OTAsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjb21wb3Np
dGlvbldhc0NhbmNlbGVkKCk7CiAgICAgdm9pZCBzZXRIYXNIYWRTZWxlY3Rpb25DaGFuZ2VzRnJv
bVVzZXJJbnRlcmFjdGlvbihib29sKTsKLSAgICB2b2lkIHNldE5lZWRzSGlkZGVuQ29udGVudEVk
aXRhYmxlUXVpcmsoYm9vbCk7Ci0gICAgdm9pZCBzZXROZWVkc1BsYWluVGV4dFF1aXJrKGJvb2wp
OworICAgIHZvaWQgc2V0SXNUb3VjaEJhclVwZGF0ZVN1cHJlc3NlZEZvckhpZGRlbkNvbnRlbnRF
ZGl0YWJsZShib29sKTsKKyAgICB2b2lkIHNldElzTmV2ZXJSaWNobHlFZGl0YWJsZUZvclRvdWNo
QmFyKGJvb2wpOwogCiAgICAgdm9pZCByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYpOwogCkBAIC0yMzY5LDggKzIzNjksOCBAQCBX
RUJQQUdFUFJPWFlfTE9BRE9QVElNSVpFUl9BRERJVElPTlNfMgogICAgIGJvb2wgbV9pc1Jlc291
cmNlQ2FjaGluZ0Rpc2FibGVkIHsgZmFsc2UgfTsKIAogICAgIGJvb2wgbV9oYXNIYWRTZWxlY3Rp
b25DaGFuZ2VzRnJvbVVzZXJJbnRlcmFjdGlvbiB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX25lZWRz
SGlkZGVuQ29udGVudEVkaXRhYmxlUXVpcmsgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9uZWVkc1Bs
YWluVGV4dFF1aXJrIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNUb3VjaEJhclVwZGF0ZVN1cHJl
c3NlZEZvckhpZGRlbkNvbnRlbnRFZGl0YWJsZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzTmV2
ZXJSaWNobHlFZGl0YWJsZUZvclRvdWNoQmFyIHsgZmFsc2UgfTsKIAogI2lmIEVOQUJMRShNRURJ
QV9TRVNTSU9OKQogICAgIGJvb2wgbV9oYXNNZWRpYVNlc3Npb25XaXRoQWN0aXZlTWVkaWFFbGVt
ZW50cyB7IGZhbHNlIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNDI4MzUpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTI1
MCw4ICsyNTAsOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIEVkaXRvclN0YXRl
Q2hhbmdlZChzdHJ1Y3QgV2ViS2l0OjpFZGl0b3JTdGF0ZSBlZGl0b3JTdGF0ZSkKICAgICBDb21w
b3NpdGlvbldhc0NhbmNlbGVkKCkKICAgICBTZXRIYXNIYWRTZWxlY3Rpb25DaGFuZ2VzRnJvbVVz
ZXJJbnRlcmFjdGlvbihib29sIGhhc0hhZFVzZXJTZWxlY3Rpb25DaGFuZ2VzKQotICAgIFNldE5l
ZWRzSGlkZGVuQ29udGVudEVkaXRhYmxlUXVpcmsoYm9vbCBuZWVkc0hpZGRlbkNvbnRlbnRFZGl0
YWJsZVF1aXJrKQotICAgIFNldE5lZWRzUGxhaW5UZXh0UXVpcmsoYm9vbCBuZWVkc1BsYWluVGV4
dFF1aXJrKQorICAgIFNldElzVG91Y2hCYXJVcGRhdGVTdXByZXNzZWRGb3JIaWRkZW5Db250ZW50
RWRpdGFibGUoYm9vbCBpc1RvdWNoQmFyVXBkYXRlU3VwcmVzc2VkKQorICAgIFNldElzTmV2ZXJS
aWNobHlFZGl0YWJsZUZvclRvdWNoQmFyKGJvb2wgaXNOZXZlclJpY2hseUVkaXRhYmxlKQogICAg
IFJlcXVlc3RET01QYXN0ZUFjY2VzcyhXZWJDb3JlOjpJbnRSZWN0IGVsZW1lbnRSZWN0LCBTdHJp
bmcgb3JpZ2luSWRlbnRpZmllcikgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpET01QYXN0ZUFj
Y2Vzc1Jlc3BvbnNlIHJlc3BvbnNlKSBEZWxheWVkCiAKICAgICAjIEZpbmQgbWVzc2FnZXMKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAkocmV2aXNp
b24gMjQyODM1KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
aAkod29ya2luZyBjb3B5KQpAQCAtNjA4LDcgKzYwOCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1
cGRhdGVNZWRpYVRvdWNoQmFyKCk7CiAKICAgICBib29sIHVzZU1lZGlhUGxheWJhY2tDb250cm9s
c1ZpZXcoKSBjb25zdDsKLSAgICBib29sIGlzUmljaGx5RWRpdGFibGUoKSBjb25zdDsKKyAgICBi
b29sIGlzUmljaGx5RWRpdGFibGVGb3JUb3VjaEJhcigpIGNvbnN0OwogCiAgICAgYm9vbCBtX2Ns
aWVudFdhbnRzTWVkaWFQbGF5YmFja0NvbnRyb2xzVmlldyB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2NhbkNyZWF0ZVRvdWNoQmFycyB7IGZhbHNlIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQkocmV2aXNpb24gMjQyODM1KQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0JKHdvcmtpbmcgY29weSkKQEAg
LTkwMiw3ICs5MDIsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVUb3VjaEJhcigpCiAKICAg
ICBOU1RvdWNoQmFyICp0b3VjaEJhciA9IG5pbDsKICAgICBib29sIHVzZXJBY3Rpb25SZXF1aXJl
bWVudHNIYXZlQmVlbk1ldCA9IG1fcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xz
TWFuYWdlciA/IG1fcGFnZS0+aGFzSGFkU2VsZWN0aW9uQ2hhbmdlc0Zyb21Vc2VySW50ZXJhY3Rp
b24oKSA6IHRydWU7Ci0gICAgaWYgKG1fcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0
YWJsZSAmJiAhbV9wYWdlLT5uZWVkc0hpZGRlbkNvbnRlbnRFZGl0YWJsZVF1aXJrKCkpIHsKKyAg
ICBpZiAobV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlICYmICFtX3BhZ2Ut
PmlzVG91Y2hCYXJVcGRhdGVTdXByZXNzZWRGb3JIaWRkZW5Db250ZW50RWRpdGFibGUoKSkgewog
ICAgICAgICB1cGRhdGVUZXh0VG91Y2hCYXIoKTsKICAgICAgICAgaWYgKHVzZXJBY3Rpb25SZXF1
aXJlbWVudHNIYXZlQmVlbk1ldCkKICAgICAgICAgICAgIHRvdWNoQmFyID0gdGV4dFRvdWNoQmFy
KCk7CkBAIC05NDMsNyArOTQzLDcgQEAgTlNDYW5kaWRhdGVMaXN0VG91Y2hCYXJJdGVtICpXZWJW
aWV3SW1wbAogewogICAgIGlmIChtX3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNJblBhc3N3b3JkRmll
bGQpCiAgICAgICAgIHJldHVybiBtX3Bhc3N3b3JkVGV4dENhbmRpZGF0ZUxpc3RUb3VjaEJhckl0
ZW0uZ2V0KCk7Ci0gICAgcmV0dXJuIGlzUmljaGx5RWRpdGFibGUoKSA/IG1fcmljaFRleHRDYW5k
aWRhdGVMaXN0VG91Y2hCYXJJdGVtLmdldCgpIDogbV9wbGFpblRleHRDYW5kaWRhdGVMaXN0VG91
Y2hCYXJJdGVtLmdldCgpOworICAgIHJldHVybiBpc1JpY2hseUVkaXRhYmxlRm9yVG91Y2hCYXIo
KSA/IG1fcmljaFRleHRDYW5kaWRhdGVMaXN0VG91Y2hCYXJJdGVtLmdldCgpIDogbV9wbGFpblRl
eHRDYW5kaWRhdGVMaXN0VG91Y2hCYXJJdGVtLmdldCgpOwogfQogCiAjaWYgRU5BQkxFKFdFQl9Q
TEFZQkFDS19DT05UUk9MU19NQU5BR0VSKQpAQCAtMTA1NCwxNiArMTA1NCwxNiBAQCB2b2lkIFdl
YlZpZXdJbXBsOjpzZXRVcFRleHRUb3VjaEJhcihOU1RvCiAgICAgICAgIHRleHRGb3JtYXRJdGVt
Lmdyb3VwVG91Y2hCYXIuY3VzdG9taXphdGlvbklkZW50aWZpZXIgPSBAIldLVGV4dEZvcm1hdFRv
dWNoQmFyIjsKIH0KIAotYm9vbCBXZWJWaWV3SW1wbDo6aXNSaWNobHlFZGl0YWJsZSgpIGNvbnN0
Citib29sIFdlYlZpZXdJbXBsOjppc1JpY2hseUVkaXRhYmxlRm9yVG91Y2hCYXIoKSBjb25zdAog
ewotICAgIHJldHVybiBtX3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNDb250ZW50UmljaGx5RWRpdGFi
bGUgJiYgIW1fcGFnZS0+bmVlZHNQbGFpblRleHRRdWlyaygpOworICAgIHJldHVybiBtX3BhZ2Ut
PmVkaXRvclN0YXRlKCkuaXNDb250ZW50UmljaGx5RWRpdGFibGUgJiYgIW1fcGFnZS0+aXNOZXZl
clJpY2hseUVkaXRhYmxlRm9yVG91Y2hCYXIoKTsKIH0KIAogTlNUb3VjaEJhciAqV2ViVmlld0lt
cGw6OnRleHRUb3VjaEJhcigpIGNvbnN0CiB7CiAgICAgaWYgKG1fcGFnZS0+ZWRpdG9yU3RhdGUo
KS5pc0luUGFzc3dvcmRGaWVsZCkKICAgICAgICAgcmV0dXJuIG1fcGFzc3dvcmRUZXh0VG91Y2hC
YXIuZ2V0KCk7Ci0gICAgcmV0dXJuIGlzUmljaGx5RWRpdGFibGUoKSA/IG1fcmljaFRleHRUb3Vj
aEJhci5nZXQoKSA6IG1fcGxhaW5UZXh0VG91Y2hCYXIuZ2V0KCk7CisgICAgcmV0dXJuIGlzUmlj
aGx5RWRpdGFibGVGb3JUb3VjaEJhcigpID8gbV9yaWNoVGV4dFRvdWNoQmFyLmdldCgpIDogbV9w
bGFpblRleHRUb3VjaEJhci5nZXQoKTsKIH0KIAogc3RhdGljIE5TVGV4dEFsaWdubWVudCBuc1Rl
eHRBbGlnbm1lbnRGcm9tVGV4dEFsaWdubWVudChUZXh0QWxpZ25tZW50IHRleHRBbGlnbm1lbnQp
CkBAIC0xMTU1LDcgKzExNTUsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVUZXh0VG91Y2hC
YXIoKQogCiAgICAgLy8gU2V0IGN1cnJlbnQgdHlwaW5nIGF0dHJpYnV0ZXMgZm9yIHJpY2ggdGV4
dC4gVGhpcyB3aWxsIGVuc3VyZSB0aGF0IHRoZSBidXR0b25zIHJlZmxlY3QgdGhlIHN0YXRlIG9m
CiAgICAgLy8gdGhlIHRleHQgd2hlbiBjaGFuZ2luZyBzZWxlY3Rpb24gdGhyb3VnaG91dCB0aGUg
ZG9jdW1lbnQuCi0gICAgaWYgKGlzUmljaGx5RWRpdGFibGUoKSkgeworICAgIGlmIChpc1JpY2hs
eUVkaXRhYmxlRm9yVG91Y2hCYXIoKSkgewogICAgICAgICBjb25zdCBFZGl0b3JTdGF0ZSYgZWRp
dG9yU3RhdGUgPSBtX3BhZ2UtPmVkaXRvclN0YXRlKCk7CiAgICAgICAgIGlmICghZWRpdG9yU3Rh
dGUuaXNNaXNzaW5nUG9zdExheW91dERhdGEpIHsKICAgICAgICAgICAgIFttX3RleHRUb3VjaEJh
ckl0ZW1Db250cm9sbGVyIHNldFRleHRJc0JvbGQ6KGJvb2wpKG1fcGFnZS0+ZWRpdG9yU3RhdGUo
KS5wb3N0TGF5b3V0RGF0YSgpLnR5cGluZ0F0dHJpYnV0ZXMgJiBBdHRyaWJ1dGVCb2xkKV07Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2
aXNpb24gMjQyODM1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5NCw2ICsxOTQsNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvUG9pbnRlckNhcHR1cmVDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QcmludENv
bnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb21pc2VkQXR0YWNobWVudEluZm8uaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1F1aXJrcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmFuZ2UuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZW1vdGVET01XaW5kb3cuaD4KQEAgLTMxMjgsMTMgKzMxMjksMTMgQEAgdm9pZCBXZWJQYWdlOjpk
aWRTdGFydFBhZ2VUcmFuc2l0aW9uKCkKICNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKGhhc1By
ZXZpb3VzbHlGb2N1c2VkRHVlVG9Vc2VySW50ZXJhY3Rpb24pCiAgICAgICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6U2V0SGFzSGFkU2VsZWN0aW9uQ2hhbmdlc0Zyb21Vc2VySW50ZXJh
Y3Rpb24obV9oYXNFdmVyRm9jdXNlZEVsZW1lbnREdWVUb1VzZXJJbnRlcmFjdGlvblNpbmNlUGFn
ZVRyYW5zaXRpb24pKTsKLSAgICBpZiAobV9uZWVkc0hpZGRlbkNvbnRlbnRFZGl0YWJsZVF1aXJr
KSB7Ci0gICAgICAgIG1fbmVlZHNIaWRkZW5Db250ZW50RWRpdGFibGVRdWlyayA9IGZhbHNlOwot
ICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldE5lZWRzSGlkZGVuQ29udGVu
dEVkaXRhYmxlUXVpcmsobV9uZWVkc0hpZGRlbkNvbnRlbnRFZGl0YWJsZVF1aXJrKSk7Ci0gICAg
fQotICAgIGlmIChtX25lZWRzUGxhaW5UZXh0UXVpcmspIHsKLSAgICAgICAgbV9uZWVkc1BsYWlu
VGV4dFF1aXJrID0gZmFsc2U7Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
U2V0TmVlZHNQbGFpblRleHRRdWlyayhtX25lZWRzUGxhaW5UZXh0UXVpcmspKTsKKyAgICBpZiAo
bV9pc1RvdWNoQmFyVXBkYXRlU3VwcmVzc2VkRm9ySGlkZGVuQ29udGVudEVkaXRhYmxlKSB7Cisg
ICAgICAgIG1faXNUb3VjaEJhclVwZGF0ZVN1cHJlc3NlZEZvckhpZGRlbkNvbnRlbnRFZGl0YWJs
ZSA9IGZhbHNlOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldElzVG91
Y2hCYXJVcGRhdGVTdXByZXNzZWRGb3JIaWRkZW5Db250ZW50RWRpdGFibGUobV9pc1RvdWNoQmFy
VXBkYXRlU3VwcmVzc2VkRm9ySGlkZGVuQ29udGVudEVkaXRhYmxlKSk7CisgICAgfQorICAgIGlm
IChtX2lzTmV2ZXJSaWNobHlFZGl0YWJsZUZvclRvdWNoQmFyKSB7CisgICAgICAgIG1faXNOZXZl
clJpY2hseUVkaXRhYmxlRm9yVG91Y2hCYXIgPSBmYWxzZTsKKyAgICAgICAgc2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpTZXRJc05ldmVyUmljaGx5RWRpdGFibGVGb3JUb3VjaEJhcihtX2lz
TmV2ZXJSaWNobHlFZGl0YWJsZUZvclRvdWNoQmFyKSk7CiAgICAgfQogI2VuZGlmCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTUxOTcsMzkgKzUxOTgsNiBAQCB2b2lkIFdlYlBhZ2U6OmNh
bmNlbENvbXBvc2l0aW9uKCkKIH0KICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKQotc3RhdGlj
IGJvb2wgbmVlZHNIaWRkZW5Db250ZW50RWRpdGFibGVRdWlyayhib29sIG5lZWRzUXVpcmtzLCBj
b25zdCBVUkwmIHVybCkKLXsKLSAgICBpZiAoIW5lZWRzUXVpcmtzKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICByZXR1cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodXJsLmhv
c3QoKSwgImRvY3MuZ29vZ2xlLmNvbSIpOwotfQotCi1zdGF0aWMgYm9vbCBuZWVkc1BsYWluVGV4
dFF1aXJrKGJvb2wgbmVlZHNRdWlya3MsIGNvbnN0IFVSTCYgdXJsKQotewotICAgIGlmICghbmVl
ZHNRdWlya3MpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGF1dG8gaG9zdCA9IHVybC5o
b3N0KCk7Ci0KLSAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoaG9zdCwgInR3
aXR0ZXIuY29tIikpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgaWYgKGVxdWFsTGV0dGVy
c0lnbm9yaW5nQVNDSUlDYXNlKGhvc3QsICJvbmVkcml2ZS5saXZlLmNvbSIpKQotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLQotICAgIFN0cmluZyBwYXRoID0gdXJsLnBhdGgoKTsKLSAgICBpZiAoZXF1
YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoaG9zdCwgInd3dy5pY2xvdWQuY29tIikgJiYgKHBh
dGguY29udGFpbnMoIm5vdGVzIikgfHwgdXJsLmZyYWdtZW50SWRlbnRpZmllcigpLmNvbnRhaW5z
KCJub3RlcyIpKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoZXF1YWxMZXR0ZXJz
SWdub3JpbmdBU0NJSUNhc2UoaG9zdCwgInRyaXgtZWRpdG9yLm9yZyIpKQotICAgICAgICByZXR1
cm4gdHJ1ZTsKLQotICAgIHJldHVybiBmYWxzZTsKLX0KLSNlbmRpZgotCiB2b2lkIFdlYlBhZ2U6
OmRpZEFwcGx5U3R5bGUoKQogewogICAgIHNlbmRFZGl0b3JTdGF0ZVVwZGF0ZSgpOwpAQCAtNTI1
OSwxNCArNTIyNywxNCBAQCB2b2lkIFdlYlBhZ2U6OmRpZENoYW5nZVNlbGVjdGlvbigpCiAgICAg
bV9oYXNFdmVyRm9jdXNlZEVsZW1lbnREdWVUb1VzZXJJbnRlcmFjdGlvblNpbmNlUGFnZVRyYW5z
aXRpb24gfD0gbV91c2VySXNJbnRlcmFjdGluZzsKIAogICAgIGlmICghaGFzUHJldmlvdXNseUZv
Y3VzZWREdWVUb1VzZXJJbnRlcmFjdGlvbiAmJiBtX2hhc0V2ZXJGb2N1c2VkRWxlbWVudER1ZVRv
VXNlckludGVyYWN0aW9uU2luY2VQYWdlVHJhbnNpdGlvbikgewotICAgICAgICBpZiAobmVlZHNI
aWRkZW5Db250ZW50RWRpdGFibGVRdWlyayhtX3BhZ2UtPnNldHRpbmdzKCkubmVlZHNTaXRlU3Bl
Y2lmaWNRdWlya3MoKSwgbV9wYWdlLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpLT51cmwoKSkpIHsK
LSAgICAgICAgICAgIG1fbmVlZHNIaWRkZW5Db250ZW50RWRpdGFibGVRdWlyayA9IHRydWU7Ci0g
ICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldE5lZWRzSGlkZGVuQ29u
dGVudEVkaXRhYmxlUXVpcmsobV9uZWVkc0hpZGRlbkNvbnRlbnRFZGl0YWJsZVF1aXJrKSk7Cisg
ICAgICAgIGlmIChmcmFtZS5kb2N1bWVudCgpLT5xdWlya3MoKS5pc1RvdWNoQmFyVXBkYXRlU3Vw
cmVzc2VkRm9ySGlkZGVuQ29udGVudEVkaXRhYmxlKCkpIHsKKyAgICAgICAgICAgIG1faXNUb3Vj
aEJhclVwZGF0ZVN1cHJlc3NlZEZvckhpZGRlbkNvbnRlbnRFZGl0YWJsZSA9IHRydWU7CisgICAg
ICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldElzVG91Y2hCYXJVcGRhdGVT
dXByZXNzZWRGb3JIaWRkZW5Db250ZW50RWRpdGFibGUobV9pc1RvdWNoQmFyVXBkYXRlU3VwcmVz
c2VkRm9ySGlkZGVuQ29udGVudEVkaXRhYmxlKSk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAo
bmVlZHNQbGFpblRleHRRdWlyayhtX3BhZ2UtPnNldHRpbmdzKCkubmVlZHNTaXRlU3BlY2lmaWNR
dWlya3MoKSwgbV9wYWdlLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpLT51cmwoKSkpIHsKLSAgICAg
ICAgICAgIG1fbmVlZHNQbGFpblRleHRRdWlyayA9IHRydWU7Ci0gICAgICAgICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldE5lZWRzUGxhaW5UZXh0UXVpcmsobV9uZWVkc1BsYWlu
VGV4dFF1aXJrKSk7CisgICAgICAgIGlmIChmcmFtZS5kb2N1bWVudCgpLT5xdWlya3MoKS5pc05l
dmVyUmljaGx5RWRpdGFibGVGb3JUb3VjaEJhcigpKSB7CisgICAgICAgICAgICBtX2lzTmV2ZXJS
aWNobHlFZGl0YWJsZUZvclRvdWNoQmFyID0gdHJ1ZTsKKyAgICAgICAgICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6U2V0SXNOZXZlclJpY2hseUVkaXRhYmxlRm9yVG91Y2hCYXIobV9p
c05ldmVyUmljaGx5RWRpdGFibGVGb3JUb3VjaEJhcikpOwogICAgICAgICB9CiAKICAgICAgICAg
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRIYXNIYWRTZWxlY3Rpb25DaGFuZ2VzRnJv
bVVzZXJJbnRlcmFjdGlvbihtX2hhc0V2ZXJGb2N1c2VkRWxlbWVudER1ZVRvVXNlckludGVyYWN0
aW9uU2luY2VQYWdlVHJhbnNpdGlvbikpOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAkocmV2aXNpb24gMjQyODM1KQorKysgU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzI4LDggKzE3
MjgsOCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3VzZXJJc0ludGVyYWN0aW5nIHsgZmFsc2Ug
fTsKICAgICBib29sIG1faGFzRXZlckZvY3VzZWRFbGVtZW50RHVlVG9Vc2VySW50ZXJhY3Rpb25T
aW5jZVBhZ2VUcmFuc2l0aW9uIHsgZmFsc2UgfTsKLSAgICBib29sIG1fbmVlZHNIaWRkZW5Db250
ZW50RWRpdGFibGVRdWlyayB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX25lZWRzUGxhaW5UZXh0UXVp
cmsgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1RvdWNoQmFyVXBkYXRlU3VwcmVzc2VkRm9ySGlk
ZGVuQ29udGVudEVkaXRhYmxlIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNOZXZlclJpY2hseUVk
aXRhYmxlRm9yVG91Y2hCYXIgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jaGFuZ2luZ0FjdGl2aXR5
U3RhdGUgeyBmYWxzZSB9OwogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364489</attachid>
            <date>2019-03-12 18:00:39 -0700</date>
            <delta_ts>2019-03-12 18:45:20 -0700</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-195654-20190312180038.patch</filename>
            <type>text/plain</type>
            <size>19522</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MjgzNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE5LTAzLTEyICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1vdmUgdGhlIGNvZGUgZm9yIGRl
dGVybWluaW5nIHRoZSBuZWVkIGZvciB0b3VjaCBiYXIgcXVpcmtzIHRvIFF1aXJrcyBjbGFzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1NjU0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZWQgdGhl
IGNvZGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHRvdWNoIGJhciBxdWlya3MgYXJlIG5lZWRl
ZCBvciBub3QgZnJvbSBXZWJLaXQyLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvUXVpcmtzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlF1aXJrczo6aXNUb3VjaEJhclVwZGF0ZVN1cHJlc3NlZEZvckhpZGRlbkNvbnRlbnRFZGl0
YWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpRdWlya3M6OmlzTmV2ZXJSaWNobHlFZGl0
YWJsZUZvclRvdWNoQmFyIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1F1aXJrcy5oOgorCiAyMDE5
LTAzLTEyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvbnRl
bnRDaGFuZ2VPYnNlcnZlcl0gUmVzZXQgc3RhdGUgd2hlbiB0b3VjaFN0YXJ0IGRvZXMgbm90IHR1
cm4gaW50byBjbGljay4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI0MjgzNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjkz
MCw2ICsyOTMwLDcgQEAKIAkJOUJBMjczRjQxNzIyMDZCQjAwOTdDRTQ3IC8qIExvZ2ljYWxTZWxl
Y3Rpb25PZmZzZXRDYWNoZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlCQTI3M0YzMTcyMjA2QkIwMDk3Q0U0NyAvKiBMb2dpY2FsU2VsZWN0aW9uT2Zm
c2V0Q2FjaGVzLmggKi87IH07CiAJCTlCQUFDNDVDMjE1MjAxMjgwMDNENEE5OCAvKiBHQ1JlYWNo
YWJsZVJlZi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUJBQUM0NTYyMTUxRTM5RTAwM0Q0QTk4IC8qIEdDUmVhY2hhYmxlUmVmLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUJBQjZDNkMxMjU1MDYzMTAw
MTYyNkQ0IC8qIEVkaXRpbmdTdHlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOUJBQjZDNkExMjU1MDYzMTAwMTYyNkQ0IC8qIEVkaXRpbmdTdHlsZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTlCQUVF
OTJDMjIzODhBN0QwMDQxNTdBOSAvKiBRdWlya3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOUE4N0ZCMjE1RDZDRjMwMDZGMTdCNSAvKiBRdWlya3Mu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QkFG
M0IyNDEyQzFBMzk4MDAwMTRCRjEgLyogV3JpdGluZ0RpcmVjdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUJBRjNCMjMxMkMxQTM5ODAwMDE0QkYx
IC8qIFdyaXRpbmdEaXJlY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5QkJBMkNBQjFGNjc5RTBDMDBGRDFDMUUgLyogV2ViQ29udGVudFJl
YWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUJG
NDMzNzYxRjY3NjE5QjAwRTFGRDcxIC8qIFdlYkNvbnRlbnRSZWFkZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QkM2QzIxQjEzQ0NDOTdCMDA4
RTAzMzcgLyogSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCQzZDMjE5MTNDQ0M5N0IwMDhFMDMzNyAvKiBI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC0zMTIxNyw2ICszMTIxOCw3IEBACiAJCQkJODNDMUY1OTQx
RURGNjlEMzAwNDEwRDI3IC8qIFF1YWxpZmllZE5hbWVDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTE1RTMxRjQxRTBDQjBCNTAwNEIzNzFDIC8qIFF1aWNrTG9vay5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDcyQUUxRTgxODNDMDc0MTAwMEE1OTg4IC8qIFF1aWNrVGltZVBsdWdpblJlcGxhY2Vt
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5QkFFRTkyQzIyMzg4QTdEMDA0MTU3QTkgLyogUXVp
cmtzLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzlFMzcxNzEzNzM2QTY2MDBCOUU5MTkgLyogUXVv
dGVkUHJpbnRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QTU3NEYyOTEzMURCOTZEMDA0NzFC
ODggLyogUXVvdGVzRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5NzIwRDAwQkYyMjAw
NzFCNzgyIC8qIFJhZGlhbEdyYWRpZW50QXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9RdWlya3MuY3BwCShyZXZpc2lvbiAyNDI4MzUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1F1aXJrcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NCw0ICsxNTQsNDUgQEAgYm9v
bCBRdWlya3M6Omhhc1dlYlNRTFN1cHBvcnRRdWlyaygpIGNvbgogICAgIHJldHVybiBtX2hhc1dl
YlNRTFN1cHBvcnRRdWlyay52YWx1ZSgpOwogfQogCitib29sIFF1aXJrczo6aXNUb3VjaEJhclVw
ZGF0ZVN1cHJlc3NlZEZvckhpZGRlbkNvbnRlbnRFZGl0YWJsZSgpIGNvbnN0Cit7CisjaWYgUExB
VEZPUk0oTUFDKQorICAgIGlmICghbmVlZHNRdWlya3MoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgYXV0byBob3N0ID0gbV9kb2N1bWVudC0+dG9wRG9jdW1lbnQoKS51cmwoKS5ob3N0
KCk7CisgICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGhvc3QsICJkb2Nz
Lmdvb2dsZS5jb20iKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKK2Jv
b2wgUXVpcmtzOjppc05ldmVyUmljaGx5RWRpdGFibGVGb3JUb3VjaEJhcigpIGNvbnN0Cit7Cisj
aWYgUExBVEZPUk0oTUFDKQorICAgIGlmICghbmVlZHNRdWlya3MoKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgYXV0byYgdXJsID0gbV9kb2N1bWVudC0+dG9wRG9jdW1lbnQoKS51cmwo
KTsKKyAgICBhdXRvIGhvc3QgPSB1cmwuaG9zdCgpOworCisgICAgaWYgKGVxdWFsTGV0dGVyc0ln
bm9yaW5nQVNDSUlDYXNlKGhvc3QsICJ0d2l0dGVyLmNvbSIpKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShob3N0LCAib25lZHJp
dmUubGl2ZS5jb20iKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoZXF1YWxMZXR0
ZXJzSWdub3JpbmdBU0NJSUNhc2UoaG9zdCwgInRyaXgtZWRpdG9yLm9yZyIpKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKworICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShob3N0
LCAid3d3LmljbG91ZC5jb20iKSkgeworICAgICAgICBhdXRvIHBhdGggPSB1cmwucGF0aCgpOwor
ICAgICAgICBpZiAocGF0aC5jb250YWlucygibm90ZXMiKSB8fCB1cmwuZnJhZ21lbnRJZGVudGlm
aWVyKCkuY29udGFpbnMoIm5vdGVzIikpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisjZW5kaWYKKworICAgIHJldHVybiBmYWxzZTsKK30KKwogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGFnZS9RdWlya3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJr
cy5oCShyZXZpc2lvbiAyNDI4MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw5IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0Jyb2tl
bkVuY3J5cHRlZE1lZGlhQVBJU3VwcG9ydFF1aXJrKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNXZWJT
UUxTdXBwb3J0UXVpcmsoKSBjb25zdDsKIAorICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNUb3Vj
aEJhclVwZGF0ZVN1cHJlc3NlZEZvckhpZGRlbkNvbnRlbnRFZGl0YWJsZSgpIGNvbnN0OworICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNOZXZlclJpY2hseUVkaXRhYmxlRm9yVG91Y2hCYXIoKSBj
b25zdDsKKwogcHJpdmF0ZToKICAgICBib29sIG5lZWRzUXVpcmtzKCkgY29uc3Q7CiAKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNDI4MzYpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDE5LTAzLTEyICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1vdmUgdGhlIGNvZGUgZm9yIGRldGVybWluaW5n
IHRoZSBuZWVkIGZvciB0b3VjaCBiYXIgcXVpcmtzIHRvIFF1aXJrcyBjbGFzcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1NjU0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZWQgdGhlIGNvZGUgdG8g
ZGV0ZXJtaW5lIHdoZXRoZXIgdG91Y2ggYmFyIHF1aXJrcyBhcmUgbmVlZGVkIG9yIG5vdCB0byBX
ZWJDb3JlLgorCisgICAgICAgIEFsc28gcmVuYW1lZCBIaWRkZW5Db250ZW50RWRpdGFibGVRdWly
ayB0byBJc1RvdWNoQmFyVXBkYXRlU3VwcmVzc2VkRm9ySGlkZGVuQ29udGVudEVkaXRhYmxlCisg
ICAgICAgIGFuZCBQbGFpblRleHRRdWlyayB0byBOZXZlclJpY2hseUVkaXRhYmxlRm9yVG91Y2hC
YXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OmlzUmljaGx5RWRpdGFibGVGb3JUb3VjaEJhcik6IFJlbmFt
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlVG91Y2hCYXIpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6Y2FuZGlkYXRlTGlzdFRvdWNoQmFySXRlbSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjppc1JpY2hseUVkaXRhYmxlRm9yVG91Y2hCYXIgY29uc3QpOiBS
ZW5hbWVkIGZyb20gaXNSaWNobHlFZGl0YWJsZS4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OnRleHRUb3VjaEJhciBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1
cGRhdGVUZXh0VG91Y2hCYXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldElzVG91Y2hCYXJVcGRhdGVTdXBy
ZXNzZWRGb3JIaWRkZW5Db250ZW50RWRpdGFibGUpOiBSZW5hbWVkIGZyb20KKyAgICAgICAgc2V0
TmVlZHNIaWRkZW5Db250ZW50RWRpdGFibGVRdWlyay4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpzZXRJc05ldmVyUmljaGx5RWRpdGFibGVGb3JUb3VjaEJhcik6IFJlbmFtZWQgZnJv
bSBzZXROZWVkc1BsYWluVGV4dFF1aXJrLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojppc1RvdWNoQmFyVXBkYXRlU3Vw
cmVzc2VkRm9ySGlkZGVuQ29udGVudEVkaXRhYmxlIGNvbnN0KTogUmVuYW1lZCBmcm9tCisgICAg
ICAgIG5lZWRzSGlkZGVuQ29udGVudEVkaXRhYmxlUXVpcmsuCisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6aXNOZXZlclJpY2hseUVkaXRhYmxlRm9yVG91Y2hCYXIgY29uc3QpOiBSZW5h
bWVkIGZyb20gbmVlZHNQbGFpblRleHRRdWlyay4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluOiBSZW5hbWVkIHRoZSBJUEMgbWVzc2FnZXMuCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpuZWVkc0hp
ZGRlbkNvbnRlbnRFZGl0YWJsZVF1aXJrKTogRGVsZXRlZC4gTW92ZWQgdG8gV2ViQ29yZS4KKyAg
ICAgICAgKFdlYktpdDo6bmVlZHNQbGFpblRleHRRdWlyayk6IERlbGV0ZWQuIE1vdmVkIHRvIFdl
YkNvcmUuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZFN0YXJ0UGFnZVRyYW5zaXRpb24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDaGFuZ2VTZWxlY3Rpb24pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2UpOgorCiAyMDE5LTAzLTEyICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkIFdlYkZyYW1lUHJveHk6OmxvYWREYXRhCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDI0MjgzNSkKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1NjAs
MTQgKzU1NjAsMTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldEhhc0hhZFNlbGVjdGlvbkNoYQog
ICAgIG1faGFzSGFkU2VsZWN0aW9uQ2hhbmdlc0Zyb21Vc2VySW50ZXJhY3Rpb24gPSBoYXNIYWRV
c2VyU2VsZWN0aW9uQ2hhbmdlczsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnNldE5lZWRzSGlk
ZGVuQ29udGVudEVkaXRhYmxlUXVpcmsoYm9vbCBuZWVkc0hpZGRlbkNvbnRlbnRFZGl0YWJsZVF1
aXJrKQordm9pZCBXZWJQYWdlUHJveHk6OnNldElzVG91Y2hCYXJVcGRhdGVTdXByZXNzZWRGb3JI
aWRkZW5Db250ZW50RWRpdGFibGUoYm9vbCBpZ25vcmVUb3VjaEJhclVwZGF0ZSkKIHsKLSAgICBt
X25lZWRzSGlkZGVuQ29udGVudEVkaXRhYmxlUXVpcmsgPSBuZWVkc0hpZGRlbkNvbnRlbnRFZGl0
YWJsZVF1aXJrOworICAgIG1faXNUb3VjaEJhclVwZGF0ZVN1cHJlc3NlZEZvckhpZGRlbkNvbnRl
bnRFZGl0YWJsZSA9IGlnbm9yZVRvdWNoQmFyVXBkYXRlOwogfQogCi12b2lkIFdlYlBhZ2VQcm94
eTo6c2V0TmVlZHNQbGFpblRleHRRdWlyayhib29sIG5lZWRzUGxhaW5UZXh0UXVpcmspCit2b2lk
IFdlYlBhZ2VQcm94eTo6c2V0SXNOZXZlclJpY2hseUVkaXRhYmxlRm9yVG91Y2hCYXIoYm9vbCBp
c05ldmVyUmljaGx5RWRpdGFibGUpCiB7Ci0gICAgbV9uZWVkc1BsYWluVGV4dFF1aXJrID0gbmVl
ZHNQbGFpblRleHRRdWlyazsKKyAgICBtX2lzTmV2ZXJSaWNobHlFZGl0YWJsZUZvclRvdWNoQmFy
ID0gaXNOZXZlclJpY2hseUVkaXRhYmxlOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVz
dERPTVBhc3RlQWNjZXNzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGVsZW1lbnRSZWN0LCBjb25z
dCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gMjQyODM1KQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAg
LTEzNzgsOCArMTM3OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFVzZXJJbnRlcmZhY2VMYXlv
dXREaXJlY3Rpb24oV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbik7CiAKICAg
ICBib29sIGhhc0hhZFNlbGVjdGlvbkNoYW5nZXNGcm9tVXNlckludGVyYWN0aW9uKCkgY29uc3Qg
eyByZXR1cm4gbV9oYXNIYWRTZWxlY3Rpb25DaGFuZ2VzRnJvbVVzZXJJbnRlcmFjdGlvbjsgfQot
ICAgIGJvb2wgbmVlZHNIaWRkZW5Db250ZW50RWRpdGFibGVRdWlyaygpIGNvbnN0IHsgcmV0dXJu
IG1fbmVlZHNIaWRkZW5Db250ZW50RWRpdGFibGVRdWlyazsgfQotICAgIGJvb2wgbmVlZHNQbGFp
blRleHRRdWlyaygpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNQbGFpblRleHRRdWlyazsgfQorICAg
IGJvb2wgaXNUb3VjaEJhclVwZGF0ZVN1cHJlc3NlZEZvckhpZGRlbkNvbnRlbnRFZGl0YWJsZSgp
IGNvbnN0IHsgcmV0dXJuIG1faXNUb3VjaEJhclVwZGF0ZVN1cHJlc3NlZEZvckhpZGRlbkNvbnRl
bnRFZGl0YWJsZTsgfQorICAgIGJvb2wgaXNOZXZlclJpY2hseUVkaXRhYmxlRm9yVG91Y2hCYXIo
KSBjb25zdCB7IHJldHVybiBtX2lzTmV2ZXJSaWNobHlFZGl0YWJsZUZvclRvdWNoQmFyOyB9CiAK
ICAgICBib29sIGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpIGNvbnN0OwogCkBAIC0xNjkwLDgg
KzE2OTAsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjb21wb3NpdGlvbldhc0NhbmNlbGVkKCk7
CiAgICAgdm9pZCBzZXRIYXNIYWRTZWxlY3Rpb25DaGFuZ2VzRnJvbVVzZXJJbnRlcmFjdGlvbihi
b29sKTsKLSAgICB2b2lkIHNldE5lZWRzSGlkZGVuQ29udGVudEVkaXRhYmxlUXVpcmsoYm9vbCk7
Ci0gICAgdm9pZCBzZXROZWVkc1BsYWluVGV4dFF1aXJrKGJvb2wpOworICAgIHZvaWQgc2V0SXNU
b3VjaEJhclVwZGF0ZVN1cHJlc3NlZEZvckhpZGRlbkNvbnRlbnRFZGl0YWJsZShib29sKTsKKyAg
ICB2b2lkIHNldElzTmV2ZXJSaWNobHlFZGl0YWJsZUZvclRvdWNoQmFyKGJvb2wpOwogCiAgICAg
dm9pZCByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0
IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NS
ZXNwb25zZSk+JiYpOwogCkBAIC0yMzY5LDggKzIzNjksOCBAQCBXRUJQQUdFUFJPWFlfTE9BRE9Q
VElNSVpFUl9BRERJVElPTlNfMgogICAgIGJvb2wgbV9pc1Jlc291cmNlQ2FjaGluZ0Rpc2FibGVk
IHsgZmFsc2UgfTsKIAogICAgIGJvb2wgbV9oYXNIYWRTZWxlY3Rpb25DaGFuZ2VzRnJvbVVzZXJJ
bnRlcmFjdGlvbiB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX25lZWRzSGlkZGVuQ29udGVudEVkaXRh
YmxlUXVpcmsgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9uZWVkc1BsYWluVGV4dFF1aXJrIHsgZmFs
c2UgfTsKKyAgICBib29sIG1faXNUb3VjaEJhclVwZGF0ZVN1cHJlc3NlZEZvckhpZGRlbkNvbnRl
bnRFZGl0YWJsZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzTmV2ZXJSaWNobHlFZGl0YWJsZUZv
clRvdWNoQmFyIHsgZmFsc2UgfTsKIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAgIGJv
b2wgbV9oYXNNZWRpYVNlc3Npb25XaXRoQWN0aXZlTWVkaWFFbGVtZW50cyB7IGZhbHNlIH07Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCShyZXZpc2lvbiAyNDI4MzUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTI1MCw4ICsyNTAsOCBAQCBtZXNz
YWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIEVkaXRvclN0YXRlQ2hhbmdlZChzdHJ1Y3QgV2Vi
S2l0OjpFZGl0b3JTdGF0ZSBlZGl0b3JTdGF0ZSkKICAgICBDb21wb3NpdGlvbldhc0NhbmNlbGVk
KCkKICAgICBTZXRIYXNIYWRTZWxlY3Rpb25DaGFuZ2VzRnJvbVVzZXJJbnRlcmFjdGlvbihib29s
IGhhc0hhZFVzZXJTZWxlY3Rpb25DaGFuZ2VzKQotICAgIFNldE5lZWRzSGlkZGVuQ29udGVudEVk
aXRhYmxlUXVpcmsoYm9vbCBuZWVkc0hpZGRlbkNvbnRlbnRFZGl0YWJsZVF1aXJrKQotICAgIFNl
dE5lZWRzUGxhaW5UZXh0UXVpcmsoYm9vbCBuZWVkc1BsYWluVGV4dFF1aXJrKQorICAgIFNldElz
VG91Y2hCYXJVcGRhdGVTdXByZXNzZWRGb3JIaWRkZW5Db250ZW50RWRpdGFibGUoYm9vbCBpc1Rv
dWNoQmFyVXBkYXRlU3VwcmVzc2VkKQorICAgIFNldElzTmV2ZXJSaWNobHlFZGl0YWJsZUZvclRv
dWNoQmFyKGJvb2wgaXNOZXZlclJpY2hseUVkaXRhYmxlKQogICAgIFJlcXVlc3RET01QYXN0ZUFj
Y2VzcyhXZWJDb3JlOjpJbnRSZWN0IGVsZW1lbnRSZWN0LCBTdHJpbmcgb3JpZ2luSWRlbnRpZmll
cikgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlc3Bv
bnNlKSBEZWxheWVkCiAKICAgICAjIEZpbmQgbWVzc2FnZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAkocmV2aXNpb24gMjQyODM1KQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAkod29ya2luZyBjb3B5KQpA
QCAtNjA4LDcgKzYwOCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVNZWRpYVRvdWNoQmFy
KCk7CiAKICAgICBib29sIHVzZU1lZGlhUGxheWJhY2tDb250cm9sc1ZpZXcoKSBjb25zdDsKLSAg
ICBib29sIGlzUmljaGx5RWRpdGFibGUoKSBjb25zdDsKKyAgICBib29sIGlzUmljaGx5RWRpdGFi
bGVGb3JUb3VjaEJhcigpIGNvbnN0OwogCiAgICAgYm9vbCBtX2NsaWVudFdhbnRzTWVkaWFQbGF5
YmFja0NvbnRyb2xzVmlldyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2NhbkNyZWF0ZVRvdWNoQmFy
cyB7IGZhbHNlIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbQkocmV2aXNpb24gMjQyODM1KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0JKHdvcmtpbmcgY29weSkKQEAgLTkwMiw3ICs5MDIsNyBAQCB2
b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVUb3VjaEJhcigpCiAKICAgICBOU1RvdWNoQmFyICp0b3Vj
aEJhciA9IG5pbDsKICAgICBib29sIHVzZXJBY3Rpb25SZXF1aXJlbWVudHNIYXZlQmVlbk1ldCA9
IG1fcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlciA/IG1fcGFnZS0+
aGFzSGFkU2VsZWN0aW9uQ2hhbmdlc0Zyb21Vc2VySW50ZXJhY3Rpb24oKSA6IHRydWU7Ci0gICAg
aWYgKG1fcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZSAmJiAhbV9wYWdlLT5u
ZWVkc0hpZGRlbkNvbnRlbnRFZGl0YWJsZVF1aXJrKCkpIHsKKyAgICBpZiAobV9wYWdlLT5lZGl0
b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlICYmICFtX3BhZ2UtPmlzVG91Y2hCYXJVcGRhdGVT
dXByZXNzZWRGb3JIaWRkZW5Db250ZW50RWRpdGFibGUoKSkgewogICAgICAgICB1cGRhdGVUZXh0
VG91Y2hCYXIoKTsKICAgICAgICAgaWYgKHVzZXJBY3Rpb25SZXF1aXJlbWVudHNIYXZlQmVlbk1l
dCkKICAgICAgICAgICAgIHRvdWNoQmFyID0gdGV4dFRvdWNoQmFyKCk7CkBAIC05NDMsNyArOTQz
LDcgQEAgTlNDYW5kaWRhdGVMaXN0VG91Y2hCYXJJdGVtICpXZWJWaWV3SW1wbAogewogICAgIGlm
IChtX3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNJblBhc3N3b3JkRmllbGQpCiAgICAgICAgIHJldHVy
biBtX3Bhc3N3b3JkVGV4dENhbmRpZGF0ZUxpc3RUb3VjaEJhckl0ZW0uZ2V0KCk7Ci0gICAgcmV0
dXJuIGlzUmljaGx5RWRpdGFibGUoKSA/IG1fcmljaFRleHRDYW5kaWRhdGVMaXN0VG91Y2hCYXJJ
dGVtLmdldCgpIDogbV9wbGFpblRleHRDYW5kaWRhdGVMaXN0VG91Y2hCYXJJdGVtLmdldCgpOwor
ICAgIHJldHVybiBpc1JpY2hseUVkaXRhYmxlRm9yVG91Y2hCYXIoKSA/IG1fcmljaFRleHRDYW5k
aWRhdGVMaXN0VG91Y2hCYXJJdGVtLmdldCgpIDogbV9wbGFpblRleHRDYW5kaWRhdGVMaXN0VG91
Y2hCYXJJdGVtLmdldCgpOwogfQogCiAjaWYgRU5BQkxFKFdFQl9QTEFZQkFDS19DT05UUk9MU19N
QU5BR0VSKQpAQCAtMTA1NCwxNiArMTA1NCwxNiBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRVcFRl
eHRUb3VjaEJhcihOU1RvCiAgICAgICAgIHRleHRGb3JtYXRJdGVtLmdyb3VwVG91Y2hCYXIuY3Vz
dG9taXphdGlvbklkZW50aWZpZXIgPSBAIldLVGV4dEZvcm1hdFRvdWNoQmFyIjsKIH0KIAotYm9v
bCBXZWJWaWV3SW1wbDo6aXNSaWNobHlFZGl0YWJsZSgpIGNvbnN0Citib29sIFdlYlZpZXdJbXBs
Ojppc1JpY2hseUVkaXRhYmxlRm9yVG91Y2hCYXIoKSBjb25zdAogewotICAgIHJldHVybiBtX3Bh
Z2UtPmVkaXRvclN0YXRlKCkuaXNDb250ZW50UmljaGx5RWRpdGFibGUgJiYgIW1fcGFnZS0+bmVl
ZHNQbGFpblRleHRRdWlyaygpOworICAgIHJldHVybiBtX3BhZ2UtPmVkaXRvclN0YXRlKCkuaXND
b250ZW50UmljaGx5RWRpdGFibGUgJiYgIW1fcGFnZS0+aXNOZXZlclJpY2hseUVkaXRhYmxlRm9y
VG91Y2hCYXIoKTsKIH0KIAogTlNUb3VjaEJhciAqV2ViVmlld0ltcGw6OnRleHRUb3VjaEJhcigp
IGNvbnN0CiB7CiAgICAgaWYgKG1fcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0luUGFzc3dvcmRGaWVs
ZCkKICAgICAgICAgcmV0dXJuIG1fcGFzc3dvcmRUZXh0VG91Y2hCYXIuZ2V0KCk7Ci0gICAgcmV0
dXJuIGlzUmljaGx5RWRpdGFibGUoKSA/IG1fcmljaFRleHRUb3VjaEJhci5nZXQoKSA6IG1fcGxh
aW5UZXh0VG91Y2hCYXIuZ2V0KCk7CisgICAgcmV0dXJuIGlzUmljaGx5RWRpdGFibGVGb3JUb3Vj
aEJhcigpID8gbV9yaWNoVGV4dFRvdWNoQmFyLmdldCgpIDogbV9wbGFpblRleHRUb3VjaEJhci5n
ZXQoKTsKIH0KIAogc3RhdGljIE5TVGV4dEFsaWdubWVudCBuc1RleHRBbGlnbm1lbnRGcm9tVGV4
dEFsaWdubWVudChUZXh0QWxpZ25tZW50IHRleHRBbGlnbm1lbnQpCkBAIC0xMTU1LDcgKzExNTUs
NyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVUZXh0VG91Y2hCYXIoKQogCiAgICAgLy8gU2V0
IGN1cnJlbnQgdHlwaW5nIGF0dHJpYnV0ZXMgZm9yIHJpY2ggdGV4dC4gVGhpcyB3aWxsIGVuc3Vy
ZSB0aGF0IHRoZSBidXR0b25zIHJlZmxlY3QgdGhlIHN0YXRlIG9mCiAgICAgLy8gdGhlIHRleHQg
d2hlbiBjaGFuZ2luZyBzZWxlY3Rpb24gdGhyb3VnaG91dCB0aGUgZG9jdW1lbnQuCi0gICAgaWYg
KGlzUmljaGx5RWRpdGFibGUoKSkgeworICAgIGlmIChpc1JpY2hseUVkaXRhYmxlRm9yVG91Y2hC
YXIoKSkgewogICAgICAgICBjb25zdCBFZGl0b3JTdGF0ZSYgZWRpdG9yU3RhdGUgPSBtX3BhZ2Ut
PmVkaXRvclN0YXRlKCk7CiAgICAgICAgIGlmICghZWRpdG9yU3RhdGUuaXNNaXNzaW5nUG9zdExh
eW91dERhdGEpIHsKICAgICAgICAgICAgIFttX3RleHRUb3VjaEJhckl0ZW1Db250cm9sbGVyIHNl
dFRleHRJc0JvbGQ6KGJvb2wpKG1fcGFnZS0+ZWRpdG9yU3RhdGUoKS5wb3N0TGF5b3V0RGF0YSgp
LnR5cGluZ0F0dHJpYnV0ZXMgJiBBdHRyaWJ1dGVCb2xkKV07CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gMjQyODM1KQorKysg
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE5NCw2ICsxOTQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUG9pbnRlckNhcHR1cmVD
b250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QcmludENvbnRleHQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Byb21pc2VkQXR0YWNobWVudEluZm8uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1F1
aXJrcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmFuZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
Z2lzdHJhYmxlRG9tYWluLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVET01XaW5kb3cuaD4K
QEAgLTMxMjgsMTMgKzMxMjksMTMgQEAgdm9pZCBXZWJQYWdlOjpkaWRTdGFydFBhZ2VUcmFuc2l0
aW9uKCkKICNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKGhhc1ByZXZpb3VzbHlGb2N1c2VkRHVl
VG9Vc2VySW50ZXJhY3Rpb24pCiAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
U2V0SGFzSGFkU2VsZWN0aW9uQ2hhbmdlc0Zyb21Vc2VySW50ZXJhY3Rpb24obV9oYXNFdmVyRm9j
dXNlZEVsZW1lbnREdWVUb1VzZXJJbnRlcmFjdGlvblNpbmNlUGFnZVRyYW5zaXRpb24pKTsKLSAg
ICBpZiAobV9uZWVkc0hpZGRlbkNvbnRlbnRFZGl0YWJsZVF1aXJrKSB7Ci0gICAgICAgIG1fbmVl
ZHNIaWRkZW5Db250ZW50RWRpdGFibGVRdWlyayA9IGZhbHNlOwotICAgICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlNldE5lZWRzSGlkZGVuQ29udGVudEVkaXRhYmxlUXVpcmsobV9u
ZWVkc0hpZGRlbkNvbnRlbnRFZGl0YWJsZVF1aXJrKSk7Ci0gICAgfQotICAgIGlmIChtX25lZWRz
UGxhaW5UZXh0UXVpcmspIHsKLSAgICAgICAgbV9uZWVkc1BsYWluVGV4dFF1aXJrID0gZmFsc2U7
Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0TmVlZHNQbGFpblRleHRR
dWlyayhtX25lZWRzUGxhaW5UZXh0UXVpcmspKTsKKyAgICBpZiAobV9pc1RvdWNoQmFyVXBkYXRl
U3VwcmVzc2VkRm9ySGlkZGVuQ29udGVudEVkaXRhYmxlKSB7CisgICAgICAgIG1faXNUb3VjaEJh
clVwZGF0ZVN1cHJlc3NlZEZvckhpZGRlbkNvbnRlbnRFZGl0YWJsZSA9IGZhbHNlOworICAgICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldElzVG91Y2hCYXJVcGRhdGVTdXByZXNz
ZWRGb3JIaWRkZW5Db250ZW50RWRpdGFibGUobV9pc1RvdWNoQmFyVXBkYXRlU3VwcmVzc2VkRm9y
SGlkZGVuQ29udGVudEVkaXRhYmxlKSk7CisgICAgfQorICAgIGlmIChtX2lzTmV2ZXJSaWNobHlF
ZGl0YWJsZUZvclRvdWNoQmFyKSB7CisgICAgICAgIG1faXNOZXZlclJpY2hseUVkaXRhYmxlRm9y
VG91Y2hCYXIgPSBmYWxzZTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpT
ZXRJc05ldmVyUmljaGx5RWRpdGFibGVGb3JUb3VjaEJhcihtX2lzTmV2ZXJSaWNobHlFZGl0YWJs
ZUZvclRvdWNoQmFyKSk7CiAgICAgfQogI2VuZGlmCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
QEAgLTUxOTcsMzkgKzUxOTgsNiBAQCB2b2lkIFdlYlBhZ2U6OmNhbmNlbENvbXBvc2l0aW9uKCkK
IH0KICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKQotc3RhdGljIGJvb2wgbmVlZHNIaWRkZW5D
b250ZW50RWRpdGFibGVRdWlyayhib29sIG5lZWRzUXVpcmtzLCBjb25zdCBVUkwmIHVybCkKLXsK
LSAgICBpZiAoIW5lZWRzUXVpcmtzKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1
cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodXJsLmhvc3QoKSwgImRvY3MuZ29vZ2xl
LmNvbSIpOwotfQotCi1zdGF0aWMgYm9vbCBuZWVkc1BsYWluVGV4dFF1aXJrKGJvb2wgbmVlZHNR
dWlya3MsIGNvbnN0IFVSTCYgdXJsKQotewotICAgIGlmICghbmVlZHNRdWlya3MpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIGF1dG8gaG9zdCA9IHVybC5ob3N0KCk7Ci0KLSAgICBpZiAo
ZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoaG9zdCwgInR3aXR0ZXIuY29tIikpCi0gICAg
ICAgIHJldHVybiB0cnVlOwotCi0gICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNl
KGhvc3QsICJvbmVkcml2ZS5saXZlLmNvbSIpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAg
IFN0cmluZyBwYXRoID0gdXJsLnBhdGgoKTsKLSAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2UoaG9zdCwgInd3dy5pY2xvdWQuY29tIikgJiYgKHBhdGguY29udGFpbnMoIm5vdGVz
IikgfHwgdXJsLmZyYWdtZW50SWRlbnRpZmllcigpLmNvbnRhaW5zKCJub3RlcyIpKSkKLSAgICAg
ICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
aG9zdCwgInRyaXgtZWRpdG9yLm9yZyIpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIHJl
dHVybiBmYWxzZTsKLX0KLSNlbmRpZgotCiB2b2lkIFdlYlBhZ2U6OmRpZEFwcGx5U3R5bGUoKQog
ewogICAgIHNlbmRFZGl0b3JTdGF0ZVVwZGF0ZSgpOwpAQCAtNTI1OSwxNCArNTIyNywxNCBAQCB2
b2lkIFdlYlBhZ2U6OmRpZENoYW5nZVNlbGVjdGlvbigpCiAgICAgbV9oYXNFdmVyRm9jdXNlZEVs
ZW1lbnREdWVUb1VzZXJJbnRlcmFjdGlvblNpbmNlUGFnZVRyYW5zaXRpb24gfD0gbV91c2VySXNJ
bnRlcmFjdGluZzsKIAogICAgIGlmICghaGFzUHJldmlvdXNseUZvY3VzZWREdWVUb1VzZXJJbnRl
cmFjdGlvbiAmJiBtX2hhc0V2ZXJGb2N1c2VkRWxlbWVudER1ZVRvVXNlckludGVyYWN0aW9uU2lu
Y2VQYWdlVHJhbnNpdGlvbikgewotICAgICAgICBpZiAobmVlZHNIaWRkZW5Db250ZW50RWRpdGFi
bGVRdWlyayhtX3BhZ2UtPnNldHRpbmdzKCkubmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSwgbV9w
YWdlLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpLT51cmwoKSkpIHsKLSAgICAgICAgICAgIG1fbmVl
ZHNIaWRkZW5Db250ZW50RWRpdGFibGVRdWlyayA9IHRydWU7Ci0gICAgICAgICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldE5lZWRzSGlkZGVuQ29udGVudEVkaXRhYmxlUXVpcmso
bV9uZWVkc0hpZGRlbkNvbnRlbnRFZGl0YWJsZVF1aXJrKSk7CisgICAgICAgIGlmIChmcmFtZS5k
b2N1bWVudCgpLT5xdWlya3MoKS5pc1RvdWNoQmFyVXBkYXRlU3VwcmVzc2VkRm9ySGlkZGVuQ29u
dGVudEVkaXRhYmxlKCkpIHsKKyAgICAgICAgICAgIG1faXNUb3VjaEJhclVwZGF0ZVN1cHJlc3Nl
ZEZvckhpZGRlbkNvbnRlbnRFZGl0YWJsZSA9IHRydWU7CisgICAgICAgICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlNldElzVG91Y2hCYXJVcGRhdGVTdXByZXNzZWRGb3JIaWRkZW5D
b250ZW50RWRpdGFibGUobV9pc1RvdWNoQmFyVXBkYXRlU3VwcmVzc2VkRm9ySGlkZGVuQ29udGVu
dEVkaXRhYmxlKSk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAobmVlZHNQbGFpblRleHRRdWly
ayhtX3BhZ2UtPnNldHRpbmdzKCkubmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSwgbV9wYWdlLT5t
YWluRnJhbWUoKS5kb2N1bWVudCgpLT51cmwoKSkpIHsKLSAgICAgICAgICAgIG1fbmVlZHNQbGFp
blRleHRRdWlyayA9IHRydWU7Ci0gICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlNldE5lZWRzUGxhaW5UZXh0UXVpcmsobV9uZWVkc1BsYWluVGV4dFF1aXJrKSk7CisgICAg
ICAgIGlmIChmcmFtZS5kb2N1bWVudCgpLT5xdWlya3MoKS5pc05ldmVyUmljaGx5RWRpdGFibGVG
b3JUb3VjaEJhcigpKSB7CisgICAgICAgICAgICBtX2lzTmV2ZXJSaWNobHlFZGl0YWJsZUZvclRv
dWNoQmFyID0gdHJ1ZTsKKyAgICAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
U2V0SXNOZXZlclJpY2hseUVkaXRhYmxlRm9yVG91Y2hCYXIobV9pc05ldmVyUmljaGx5RWRpdGFi
bGVGb3JUb3VjaEJhcikpOwogICAgICAgICB9CiAKICAgICAgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpTZXRIYXNIYWRTZWxlY3Rpb25DaGFuZ2VzRnJvbVVzZXJJbnRlcmFjdGlvbiht
X2hhc0V2ZXJGb2N1c2VkRWxlbWVudER1ZVRvVXNlckludGVyYWN0aW9uU2luY2VQYWdlVHJhbnNp
dGlvbikpOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAkocmV2aXNpb24gMjQyODM1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzI4LDggKzE3MjgsOCBAQCBwcml2YXRlOgog
CiAgICAgYm9vbCBtX3VzZXJJc0ludGVyYWN0aW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1faGFz
RXZlckZvY3VzZWRFbGVtZW50RHVlVG9Vc2VySW50ZXJhY3Rpb25TaW5jZVBhZ2VUcmFuc2l0aW9u
IHsgZmFsc2UgfTsKLSAgICBib29sIG1fbmVlZHNIaWRkZW5Db250ZW50RWRpdGFibGVRdWlyayB7
IGZhbHNlIH07Ci0gICAgYm9vbCBtX25lZWRzUGxhaW5UZXh0UXVpcmsgeyBmYWxzZSB9OworICAg
IGJvb2wgbV9pc1RvdWNoQmFyVXBkYXRlU3VwcmVzc2VkRm9ySGlkZGVuQ29udGVudEVkaXRhYmxl
IHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNOZXZlclJpY2hseUVkaXRhYmxlRm9yVG91Y2hCYXIg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9jaGFuZ2luZ0FjdGl2aXR5U3RhdGUgeyBmYWxzZSB9Owog
CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCg==
</data>
<flag name="review"
          id="381007"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
      

    </bug>

</bugzilla>