<?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>28984</bug_id>
          
          <creation_ts>2009-09-04 13:59:41 -0700</creation_ts>
          <short_desc>Eliminate the remote user stylesheet loader on Mac/Qt</short_desc>
          <delta_ts>2009-09-09 04:49:30 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>144917</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-09-04 13:59:41 -0700</bug_when>
    <thetext>Remove the separate code path on Mac/Qt for user stylesheet loading.  Make sure the cross-platform code path used by everyone else gets data URL support to match Mac/Qt, and then switch everyone over to it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144918</commentid>
    <comment_count>1</comment_count>
      <attachid>39088</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-09-04 14:01:15 -0700</bug_when>
    <thetext>Created attachment 39088
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144919</commentid>
    <comment_count>2</comment_count>
      <attachid>39088</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-09-04 14:04:24 -0700</bug_when>
    <thetext>Comment on attachment 39088
Patch

&gt;  void Page::userStyleSheetLocationChanged()
&gt;  {
&gt; -#if !FRAME_LOADS_USER_STYLESHEET
&gt;      // FIXME: We should provide a way to load other types of URLs than just
&gt; -    // file: (e.g., http:, data:).
&gt; -    if (m_settings-&gt;userStyleSheetLocation().isLocalFile())
&gt; -        m_userStyleSheetPath = m_settings-&gt;userStyleSheetLocation().fileSystemPath();
&gt; +    // file: (e.g., http:).

I guess you don&apos;t agree with this FIXME at all. Maybe you should remove it?

You should remove UserStyleSheetLoader from the Qt project files.

You should explain in your ChangeLog how you made the decision that it&apos;s OK to do this.

Do we have regression tests for the user stylesheet code?

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144926</commentid>
    <comment_count>3</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-09-04 14:33:35 -0700</bug_when>
    <thetext>Fixed in r48075.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39088</attachid>
            <date>2009-09-04 14:01:15 -0700</date>
            <delta_ts>2009-09-04 14:04:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>20980</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODA3MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjggQEAKKzIwMDktMDktMDQgIERhdmUgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4OTg0LCByZW1vdmUgdGhlIHJlbW90
ZSBzdHlsZXNoZWV0IGxvYWRlciBvbiBNYWMvUXQuCisgICAgICAgIE1ha2Ugc3VyZSB0aGUgb3Ro
ZXIgY29kZSBwYXRoIChub3cgdXNlZCBieSBldmVyeWJvZHkpIGNhbiBoYW5kbGUgZGF0YSBVUkxz
LgorCisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6dXNlclN0eWxlU2hlZXQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZUxvYWRlcjo6YmVnaW4pOgorICAgICAgICAqIGxvYWRlci9Vc2VyU3R5bGVTaGVldExv
YWRlci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogbG9hZGVyL1VzZXJTdHlsZVNoZWV0TG9hZGVy
Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZTo6cmVhcHBseVN0eWxlcyk6CisgICAgICAgICogcGFnZS9GcmFtZS5oOgorICAgICAg
ICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp1c2VyU3R5bGVTaGVl
dExvY2F0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp1c2VyU3R5bGVTaGVl
dCk6CisgICAgICAgICogcGFnZS9tYWMvRnJhbWVNYWMubW06CisgICAgICAgICogcGFnZS9xdC9G
cmFtZVF0LmNwcDoKKwogMjAwOS0wOS0wNCAgSmlhbiBMaSAgPGppYW5saUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFdlYkNvcmUvV2ViQ29y
ZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gNDgwNjgp
CisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0xMDU3LDcgKzEwNTcs
NiBAQCBTT1VSQ0VTICs9IFwKICAgICBsb2FkZXIvYXJjaGl2ZS9BcmNoaXZlRmFjdG9yeS5jcHAg
XAogICAgIGxvYWRlci9hcmNoaXZlL0FyY2hpdmVSZXNvdXJjZS5jcHAgXAogICAgIGxvYWRlci9h
cmNoaXZlL0FyY2hpdmVSZXNvdXJjZUNvbGxlY3Rpb24uY3BwIFwKLSAgICBsb2FkZXIvVXNlclN0
eWxlU2hlZXRMb2FkZXIuY3BwIFwKICAgICBsb2FkZXIvQ2FjaGUuY3BwIFwKICAgICBsb2FkZXIv
Q2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAgXAogICAgIGxvYWRlci9DYWNoZWRGb250LmNwcCBcCkBA
IC0xNzcyLDcgKzE3NzEsNiBAQCBIRUFERVJTICs9IFwKICAgICBsb2FkZXIvVGV4dERvY3VtZW50
LmggXAogICAgIGxvYWRlci9UZXh0UmVzb3VyY2VEZWNvZGVyLmggXAogICAgIGxvYWRlci9UaHJl
YWRhYmxlTG9hZGVyLmggXAotICAgIGxvYWRlci9Vc2VyU3R5bGVTaGVldExvYWRlci5oIFwKICAg
ICBsb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxvYWRlci5oIFwKICAgICBwYWdlL2FuaW1hdGlvbi9B
bmltYXRpb25CYXNlLmggXAogICAgIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIu
aCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gNDgwNjgpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMTEyMiw3ICsxMTIyLDYgQEAKIAkJNjVERjMyNjEwOUQxRTE5
OTAwMEJFMzI1IC8qIFVzZXJBZ2VudFN0eWxlU2hlZXRzRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTY1ODFBRjA5RDE0RUU2MDAwRTYxRDcg
LyogVXNlckFnZW50U3R5bGVTaGVldHNEYXRhLmNwcCAqLzsgfTsKIAkJNjVGRUE4NjkwOTgzM0FE
RTAwQkVENEFCIC8qIFBhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNjVGRUE4NjgwOTgzM0FERTAwQkVENEFCIC8qIFBhZ2UuY3BwICovOyB9Owog
CQk3MjYyNkUwMjBFRjAyMkZFMDBBMDdFMjAgLyogRm9udEZhc3RQYXRoLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNjI2RTAxMEVGMDIyRkUwMEEw
N0UyMCAvKiBGb250RmFzdFBhdGguY3BwICovOyB9OwotCQk3Mjg0QURERDBFNkZFQjMxMDAyRUVG
QkQgLyogVXNlclN0eWxlU2hlZXRMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzI4NEFEREIwRTZGRUIzMTAwMkVFRkJEIC8qIFVzZXJTdHls
ZVNoZWV0TG9hZGVyLmNwcCAqLzsgfTsKIAkJNzI4NEFEREUwRTZGRUIzMTAwMkVFRkJEIC8qIFVz
ZXJTdHlsZVNoZWV0TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3Mjg0QUREQzBFNkZFQjMxMDAyRUVGQkQgLyogVXNlclN0eWxlU2hlZXRMb2Fk
ZXIuaCAqLzsgfTsKIAkJNzU3OTNFODMwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0U4
MDBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmNwcCAqLzsgfTsKIAkJNzU3OTNFODQw
RDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OTNFODEwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3Nh
Z2VFdmVudC5oICovOyB9OwpAQCAtNjI5NCw3ICs2MjkzLDYgQEAKIAkJNjVGODA2OTcwNTREOUY4
NjAwOEJGNzc2IC8qIEJsb2NrRXhjZXB0aW9ucy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEJsb2NrRXhjZXB0aW9ucy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTY1
RkVBODY4MDk4MzNBREUwMEJFRDRBQiAvKiBQYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBQYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzI2MjZFMDEwRUYwMjJGRTAwQTA3RTIwIC8qIEZvbnRGYXN0UGF0aC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb250RmFzdFBhdGguY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk3Mjg0QUREQjBFNkZFQjMxMDAyRUVGQkQgLyogVXNlclN0eWxlU2hl
ZXRMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlclN0
eWxlU2hlZXRMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Mjg0QURE
QzBFNkZFQjMxMDAyRUVGQkQgLyogVXNlclN0eWxlU2hlZXRMb2FkZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlclN0eWxlU2hlZXRMb2FkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzU3OTNFODAwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTWVzc2FnZUV2ZW50
LmNwcDsgcGF0aCA9IGRvbS9NZXNzYWdlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gU09VUkNFX1JP
T1Q7IH07CiAJCTc1NzkzRTgxMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE1lc3NhZ2VFdmVudC5oOyBwYXRoID0gZG9t
L01lc3NhZ2VFdmVudC5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CkBAIC0xNDM3OSw3
ICsxNDM3Nyw2IEBACiAJCQkJMEI5MDU2MUQwRjI1N0U5MzAwOTVGRjZBIC8qIFRocmVhZGFibGVM
b2FkZXIuY3BwICovLAogCQkJCTBCOTA1NjE3MEYyNTc4QkUwMDk1RkY2QSAvKiBUaHJlYWRhYmxl
TG9hZGVyLmggKi8sCiAJCQkJMEI5MDU2MTgwRjI1NzhCRTAwOTVGRjZBIC8qIFRocmVhZGFibGVM
b2FkZXJDbGllbnQuaCAqLywKLQkJCQk3Mjg0QUREQjBFNkZFQjMxMDAyRUVGQkQgLyogVXNlclN0
eWxlU2hlZXRMb2FkZXIuY3BwICovLAogCQkJCTcyODRBRERDMEU2RkVCMzEwMDJFRUZCRCAvKiBV
c2VyU3R5bGVTaGVldExvYWRlci5oICovLAogCQkJCTBCOTA1NkY2MEYyNjg1RjMwMDk1RkY2QSAv
KiBXb3JrZXJUaHJlYWRhYmxlTG9hZGVyLmNwcCAqLywKIAkJCQkwQjkwNTZGNzBGMjY4NUYzMDA5
NUZGNkEgLyogV29ya2VyVGhyZWFkYWJsZUxvYWRlci5oICovLApAQCAtMTk1MzcsNyArMTk1MzQs
NiBAQAogCQkJCUIyQzNEQTRDMEQwMDZDMUQwMEVGNkYyNiAvKiBVbmljb2RlUmFuZ2UuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRDA4NkZFOTkwOUQ1M0FBQjAwNUJDNzREIC8qIFVubGlua0NvbW1h
bmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMyNjEwOUQxRTE5OTAwMEJFMzI1IC8qIFVz
ZXJBZ2VudFN0eWxlU2hlZXRzRGF0YS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk3Mjg0QURERDBF
NkZFQjMxMDAyRUVGQkQgLyogVXNlclN0eWxlU2hlZXRMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMTVDNzcwOEUxMDBEM0M2QjAwNUJBMjY3IC8qIFZhbGlkaXR5U3RhdGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTMzMDlFMUQwOTlFNjQ5MjAwNTZFNTgxIC8qIHZpc2libGVfdW5pdHMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlFMUYwOTlFNjQ5MjAwNTZFNTgxIC8qIFZpc2li
bGVQb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDQ4
MDcxKQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODY1
LDI2ICsxODY1LDEyIEBAIFN0cmluZyBEb2N1bWVudDo6dXNlckFnZW50KGNvbnN0IEtVUkwmIHUK
ICAgICByZXR1cm4gZnJhbWUoKSA/IGZyYW1lKCktPmxvYWRlcigpLT51c2VyQWdlbnQodXJsKSA6
IFN0cmluZygpOwogfQogCi0jaWYgRlJBTUVfTE9BRFNfVVNFUl9TVFlMRVNIRUVUCi12b2lkIERv
Y3VtZW50OjpzZXRVc2VyU3R5bGVTaGVldChjb25zdCBTdHJpbmcmIHNoZWV0KQotewotICAgIGlm
IChtX3VzZXJzaGVldCAhPSBzaGVldCkgewotICAgICAgICBtX3VzZXJzaGVldCA9IHNoZWV0Owot
ICAgICAgICB1cGRhdGVTdHlsZVNlbGVjdG9yKCk7Ci0gICAgfQotfQotI2VuZGlmCi0KIFN0cmlu
ZyBEb2N1bWVudDo6dXNlclN0eWxlU2hlZXQoKSBjb25zdAogewotI2lmIEZSQU1FX0xPQURTX1VT
RVJfU1RZTEVTSEVFVAotICAgIHJldHVybiBtX3VzZXJzaGVldDsKLSNlbHNlCiAgICAgUGFnZSog
cGFnZSA9IHRoaXMtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiBTdHJp
bmcoKTsKICAgICByZXR1cm4gcGFnZS0+dXNlclN0eWxlU2hlZXQoKTsKLSNlbmRpZgogfQogCiBD
U1NTdHlsZVNoZWV0KiBEb2N1bWVudDo6ZWxlbWVudFNoZWV0KCkKSW5kZXg6IFdlYkNvcmUvZG9t
L0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNp
b24gNDgwNzEpCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
NywxNSArMzcsNiBAQAogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hDb3Vu
dGVkU2V0Lmg+CiAKLS8vIEZJWE1FOiBXZSBzaG91bGQgbW92ZSBNYWMgb2ZmIG9mIHRoZSBvbGQg
RnJhbWUtYmFzZWQgdXNlciBzdHlsZXNoZWV0IGxvYWRpbmcKLS8vIGNvZGUgYW5kIG9udG8gdGhl
IG5ldyBjb2RlIGluIFBhZ2UuIFdlIGNhbid0IGRvIHRoYXQgdW50aWwgdGhlIGNvZGUgaW4gUGFn
ZQotLy8gc3VwcG9ydHMgbm9uLWZpbGU6IFVSTHMsIGhvd2V2ZXIuCi0jaWYgUExBVEZPUk0oTUFD
KSB8fCBQTEFURk9STShRVCkKLSNkZWZpbmUgRlJBTUVfTE9BRFNfVVNFUl9TVFlMRVNIRUVUIDEK
LSNlbHNlCi0jZGVmaW5lIEZSQU1FX0xPQURTX1VTRVJfU1RZTEVTSEVFVCAwCi0jZW5kaWYKLQog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgQXR0cjsKQEAgLTQ0NiwxMCArNDM3LDYg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCBTdHJpbmcgdXNlckFnZW50KGNvbnN0IEtVUkwmKSBj
b25zdDsKIAotI2lmIEZSQU1FX0xPQURTX1VTRVJfU1RZTEVTSEVFVAotICAgIHZvaWQgc2V0VXNl
clN0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBzaGVldCk7Ci0jZW5kaWYKLQogICAgIFN0cmluZyB1
c2VyU3R5bGVTaGVldCgpIGNvbnN0OwogCiAgICAgQ1NTU3R5bGVTaGVldCogZWxlbWVudFNoZWV0
KCk7CkBAIC05MjEsMTAgKzkwOCw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPERvY3VtZW50VHlw
ZT4gbV9kb2NUeXBlOwogICAgIG11dGFibGUgUmVmUHRyPERPTUltcGxlbWVudGF0aW9uPiBtX2lt
cGxlbWVudGF0aW9uOwogCi0jaWYgRlJBTUVfTE9BRFNfVVNFUl9TVFlMRVNIRUVUCi0gICAgU3Ry
aW5nIG1fdXNlcnNoZWV0OwotI2VuZGlmCi0KICAgICAvLyBUcmFjayB0aGUgbnVtYmVyIG9mIGN1
cnJlbnRseSBsb2FkaW5nIHRvcC1sZXZlbCBzdHlsZXNoZWV0cy4gIFNoZWV0cwogICAgIC8vIGxv
YWRlZCB1c2luZyB0aGUgQGltcG9ydCBkaXJlY3RpdmUgYXJlIG5vdCBpbmNsdWRlZCBpbiB0aGlz
IGNvdW50LgogICAgIC8vIFdlIHVzZSB0aGlzIGNvdW50IG9mIHBlbmRpbmcgc2hlZXRzIHRvIGRl
dGVjdCB3aGVuIHdlIGNhbiBiZWdpbiBhdHRhY2hpbmcKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAJKHJldmlzaW9uIDQ4MDY4KQorKysgV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC05NTQsMTIgKzk1NCw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmJlZ2lu
KGNvbnN0IEtVUkwmIHVybCwKICAgICAgICAgICAgIGRvY3VtZW50LT5wYXJzZUROU1ByZWZldGNo
Q29udHJvbEhlYWRlcihkbnNQcmVmZXRjaENvbnRyb2wpOwogICAgIH0KIAotI2lmIEZSQU1FX0xP
QURTX1VTRVJfU1RZTEVTSEVFVAotICAgIEtVUkwgdXNlclN0eWxlU2hlZXQgPSBzZXR0aW5ncyA/
IHNldHRpbmdzLT51c2VyU3R5bGVTaGVldExvY2F0aW9uKCkgOiBLVVJMKCk7Ci0gICAgaWYgKCF1
c2VyU3R5bGVTaGVldC5pc0VtcHR5KCkpCi0gICAgICAgIG1fZnJhbWUtPnNldFVzZXJTdHlsZVNo
ZWV0TG9jYXRpb24odXNlclN0eWxlU2hlZXQpOwotI2VuZGlmCi0KICAgICByZXN0b3JlRG9jdW1l
bnRTdGF0ZSgpOwogCiAgICAgZG9jdW1lbnQtPmltcGxpY2l0T3BlbigpOwpJbmRleDogV2ViQ29y
ZS9sb2FkZXIvVXNlclN0eWxlU2hlZXRMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
bG9hZGVyL1VzZXJTdHlsZVNoZWV0TG9hZGVyLmNwcAkocmV2aXNpb24gNDgwNjgpCisrKyBXZWJD
b3JlL2xvYWRlci9Vc2VyU3R5bGVTaGVldExvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
NjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywg
MjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikg
bm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIlVzZXJTdHlsZVNoZWV0TG9hZGVyLmgiCi0KLSNpbmNsdWRlICJDYWNoZWRDU1NT
dHlsZVNoZWV0LmgiCi0jaW5jbHVkZSAiRG9jTG9hZGVyLmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIK
LQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLVVzZXJTdHlsZVNoZWV0TG9hZGVyOjpVc2Vy
U3R5bGVTaGVldExvYWRlcihQYXNzUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCwgY29uc3QgU3Ry
aW5nJiB1cmwpCi0gICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQotICAgICwgbV9jYWNoZWRTaGVl
dChtX2RvY3VtZW50LT5kb2NMb2FkZXIoKS0+cmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KHVybCwg
IiIpKQotewotICAgIGlmIChtX2NhY2hlZFNoZWV0KSB7Ci0gICAgICAgIG1fZG9jdW1lbnQtPmFk
ZFBlbmRpbmdTaGVldCgpOwotICAgICAgICBtX2NhY2hlZFNoZWV0LT5hZGRDbGllbnQodGhpcyk7
Ci0gICAgfQotfQotCi1Vc2VyU3R5bGVTaGVldExvYWRlcjo6flVzZXJTdHlsZVNoZWV0TG9hZGVy
KCkKLXsKLSAgICBpZiAobV9jYWNoZWRTaGVldCkgewotICAgICAgICBpZiAoIW1fY2FjaGVkU2hl
ZXQtPmlzTG9hZGVkKCkpCi0gICAgICAgICAgICBtX2RvY3VtZW50LT5yZW1vdmVQZW5kaW5nU2hl
ZXQoKTsKLSAgICAgICAgbV9jYWNoZWRTaGVldC0+cmVtb3ZlQ2xpZW50KHRoaXMpOwotICAgIH0K
LX0KLQotdm9pZCBVc2VyU3R5bGVTaGVldExvYWRlcjo6c2V0Q1NTU3R5bGVTaGVldChjb25zdCBT
dHJpbmcmIC8qVVJMKi8sIGNvbnN0IFN0cmluZyYgLypjaGFyc2V0Ki8sIGNvbnN0IENhY2hlZENT
U1N0eWxlU2hlZXQqIHNoZWV0KQotewotICAgIG1fZG9jdW1lbnQtPnJlbW92ZVBlbmRpbmdTaGVl
dCgpOwotICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2RvY3VtZW50LT5mcmFtZSgpKQotICAgICAg
ICBmcmFtZS0+c2V0VXNlclN0eWxlU2hlZXQoc2hlZXQtPnNoZWV0VGV4dCgpKTsKLX0KSW5kZXg6
IFdlYkNvcmUvbG9hZGVyL1VzZXJTdHlsZVNoZWV0TG9hZGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9sb2FkZXIvVXNlclN0eWxlU2hlZXRMb2FkZXIuaAkocmV2aXNpb24gNDgwNjgpCisrKyBX
ZWJDb3JlL2xvYWRlci9Vc2VyU3R5bGVTaGVldExvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcs
IDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIp
IG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0g
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgVXNlclN0eWxlU2hl
ZXRMb2FkZXJfaAotI2RlZmluZSBVc2VyU3R5bGVTaGVldExvYWRlcl9oCi0KLSNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUNsaWVudC5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgi
Ci0KLSNpbmNsdWRlICJEb2N1bWVudC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xh
c3MgQ2FjaGVkQ1NTU3R5bGVTaGVldDsKLSAgICBjbGFzcyBTdHJpbmc7Ci0KLSAgICAvLyBUaGlz
IGNsYXNzIGlzIGRlcHJlY2F0ZWQgYW5kIHNob3VsZCBub3QgYmUgdXNlZCBpbiBhbnkgbmV3IGNv
ZGUuIFVzZXIKLSAgICAvLyBzdHlsZXNoZWV0IGxvYWRpbmcgc2hvdWxkIGluc3RlYWQgaGFwcGVu
IHRocm91Z2ggUGFnZS4KLSAgICBjbGFzcyBVc2VyU3R5bGVTaGVldExvYWRlciA6IENhY2hlZFJl
c291cmNlQ2xpZW50IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFVzZXJTdHlsZVNoZWV0TG9hZGVy
KFBhc3NSZWZQdHI8RG9jdW1lbnQ+LCBjb25zdCBTdHJpbmcmIHVybCk7Ci0gICAgICAgIH5Vc2Vy
U3R5bGVTaGVldExvYWRlcigpOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCB2b2lk
IHNldENTU1N0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBVUkwsIGNvbnN0IFN0cmluZyYgY2hhcnNl
dCwgY29uc3QgQ2FjaGVkQ1NTU3R5bGVTaGVldCogc2hlZXQpOwotCi0gICAgICAgIFJlZlB0cjxE
b2N1bWVudD4gbV9kb2N1bWVudDsKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
Q1NTU3R5bGVTaGVldD4gbV9jYWNoZWRTaGVldDsKLSAgICB9OwotCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCi0KLSNlbmRpZiAvLyBVc2VyU3R5bGVTaGVldExvYWRlcl9oCkluZGV4OiBXZWJDb3Jl
L3BhZ2UvRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAJKHJl
dmlzaW9uIDQ4MDczKQorKysgV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtODYsMTAgKzg2LDYgQEAKICNpbmNsdWRlICJydW50aW1lX3Jvb3QuaCIKICNlbmRpZgogCi0j
aWYgRlJBTUVfTE9BRFNfVVNFUl9TVFlMRVNIRUVUCi0jaW5jbHVkZSAiVXNlclN0eWxlU2hlZXRM
b2FkZXIuaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFNWRykKICNpbmNsdWRlICJTVkdEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIlNWR0RvY3VtZW50RXh0ZW5zaW9ucy5oIgpAQCAtODI1LDE0ICs4MjEs
NiBAQCB2b2lkIEZyYW1lOjpyZWFwcGx5U3R5bGVzKCkKICAgICAvLyBXZSBzaG91bGQgcHJvYmFi
bHkgZXZlbnR1YWxseSBtb3ZlIGl0IGludG8gaXRzIG93biBmdW5jdGlvbi4KICAgICBtX2RvYy0+
ZG9jTG9hZGVyKCktPnNldEF1dG9Mb2FkSW1hZ2VzKG1fcGFnZSAmJiBtX3BhZ2UtPnNldHRpbmdz
KCktPmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgpKTsKIAotI2lmIEZSQU1FX0xPQURTX1VTRVJf
U1RZTEVTSEVFVAotICAgIGNvbnN0IEtVUkwgdXNlclN0eWxlU2hlZXRMb2NhdGlvbiA9IG1fcGFn
ZSA/IG1fcGFnZS0+c2V0dGluZ3MoKS0+dXNlclN0eWxlU2hlZXRMb2NhdGlvbigpIDogS1VSTCgp
OwotICAgIGlmICghdXNlclN0eWxlU2hlZXRMb2NhdGlvbi5pc0VtcHR5KCkpCi0gICAgICAgIHNl
dFVzZXJTdHlsZVNoZWV0TG9jYXRpb24odXNlclN0eWxlU2hlZXRMb2NhdGlvbik7Ci0gICAgZWxz
ZQotICAgICAgICBzZXRVc2VyU3R5bGVTaGVldChTdHJpbmcoKSk7Ci0jZW5kaWYKLQogICAgIC8v
IEZJWE1FOiBJdCdzIG5vdCBlbnRpcmVseSBjbGVhciB3aHkgdGhlIGZvbGxvd2luZyBpcyBuZWVk
ZWQuCiAgICAgLy8gVGhlIGRvY3VtZW50IGF1dG9tYXRpY2FsbHkgZG9lcyB0aGlzIGFzIHJlcXVp
cmVkIHdoZW4geW91IHNldCB0aGUgc3R5bGUgc2hlZXQuCiAgICAgLy8gQnV0IHdlIGhhZCBwcm9i
bGVtcyB3aGVuIHRoaXMgY29kZSB3YXMgcmVtb3ZlZC4gRGV0YWlscyBhcmUgaW4KSW5kZXg6IFdl
YkNvcmUvcGFnZS9GcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9GcmFtZS5oCShy
ZXZpc2lvbiA0ODA2OSkKKysrIFdlYkNvcmUvcGFnZS9GcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC04MCwxMCArODAsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgVmlzaWJsZVNl
bGVjdGlvbjsKICAgICBjbGFzcyBXaWRnZXQ7CiAKLSNpZiBGUkFNRV9MT0FEU19VU0VSX1NUWUxF
U0hFRVQKLSAgICBjbGFzcyBVc2VyU3R5bGVTaGVldExvYWRlcjsKLSNlbmRpZgotCiAgICAgdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFRpbWVyOwogCiAgICAgY2xhc3MgRnJhbWUgOiBwdWJs
aWMgUmVmQ291bnRlZDxGcmFtZT4gewpAQCAtMTQ1LDExICsxNDEsNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICAgICAgICAgU2V0dGluZ3MqIHNldHRpbmdzKCkgY29uc3Q7IC8vIGNhbiBiZSBO
VUxMCiAKLSAgICAjaWYgRlJBTUVfTE9BRFNfVVNFUl9TVFlMRVNIRUVUCi0gICAgICAgIHZvaWQg
c2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihjb25zdCBLVVJMJik7Ci0gICAgICAgIHZvaWQgc2V0
VXNlclN0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBzdHlsZVNoZWV0RGF0YSk7Ci0gICAgI2VuZGlm
Ci0KICAgICAgICAgdm9pZCBzZXRQcmludGluZyhib29sIHByaW50aW5nLCBmbG9hdCBtaW5QYWdl
V2lkdGgsIGZsb2F0IG1heFBhZ2VXaWR0aCwgYm9vbCBhZGp1c3RWaWV3U2l6ZSk7CiAKICAgICAg
ICAgYm9vbCBpblZpZXdTb3VyY2VNb2RlKCkgY29uc3Q7CkBAIC0zNzEsMTEgKzM2Miw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX25lZWRzUmVhcHBseVN0eWxlczsKICAg
ICAgICAgYm9vbCBtX2lzRGlzY29ubmVjdGVkOwogICAgICAgICBib29sIG1fZXhjbHVkZUZyb21U
ZXh0U2VhcmNoOwotCi0gICAgI2lmIEZSQU1FX0xPQURTX1VTRVJfU1RZTEVTSEVFVAotICAgICAg
ICBPd25QdHI8VXNlclN0eWxlU2hlZXRMb2FkZXI+IG1fdXNlclN0eWxlU2hlZXRMb2FkZXI7Ci0g
ICAgI2VuZGlmCi0KICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShy
ZXZpc2lvbiA0ODA2OCkKKysrIFdlYkNvcmUvcGFnZS9QYWdlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIK
IAorI2luY2x1ZGUgIkJhc2U2NC5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0b3IuaCIKICNp
bmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKQEAgLTQzOSwyNiAr
NDQwLDQwIEBAIHZvaWQgUGFnZTo6d2lsbE1vdmVPZmZzY3JlZW4oKQogCiB2b2lkIFBhZ2U6OnVz
ZXJTdHlsZVNoZWV0TG9jYXRpb25DaGFuZ2VkKCkKIHsKLSNpZiAhRlJBTUVfTE9BRFNfVVNFUl9T
VFlMRVNIRUVUCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBwcm92aWRlIGEgd2F5IHRvIGxvYWQg
b3RoZXIgdHlwZXMgb2YgVVJMcyB0aGFuIGp1c3QKLSAgICAvLyBmaWxlOiAoZS5nLiwgaHR0cDos
IGRhdGE6KS4KLSAgICBpZiAobV9zZXR0aW5ncy0+dXNlclN0eWxlU2hlZXRMb2NhdGlvbigpLmlz
TG9jYWxGaWxlKCkpCi0gICAgICAgIG1fdXNlclN0eWxlU2hlZXRQYXRoID0gbV9zZXR0aW5ncy0+
dXNlclN0eWxlU2hlZXRMb2NhdGlvbigpLmZpbGVTeXN0ZW1QYXRoKCk7CisgICAgLy8gZmlsZTog
KGUuZy4sIGh0dHA6KS4KKyAgICBLVVJMIHVybCA9IG1fc2V0dGluZ3MtPnVzZXJTdHlsZVNoZWV0
TG9jYXRpb24oKTsKKyAgICBpZiAodXJsLmlzTG9jYWxGaWxlKCkpCisgICAgICAgIG1fdXNlclN0
eWxlU2hlZXRQYXRoID0gdXJsLmZpbGVTeXN0ZW1QYXRoKCk7CiAgICAgZWxzZQogICAgICAgICBt
X3VzZXJTdHlsZVNoZWV0UGF0aCA9IFN0cmluZygpOwogCiAgICAgbV9kaWRMb2FkVXNlclN0eWxl
U2hlZXQgPSBmYWxzZTsKICAgICBtX3VzZXJTdHlsZVNoZWV0ID0gU3RyaW5nKCk7CiAgICAgbV91
c2VyU3R5bGVTaGVldE1vZGlmaWNhdGlvblRpbWUgPSAwOwotI2VuZGlmCisgICAgCisgICAgLy8g
RGF0YSBVUkxzIHdpdGggYmFzZTY0LWVuY29kZWQgVVRGLTggc3R5bGUgc2hlZXRzIGFyZSBjb21t
b24uIFdlIGNhbiBwcm9jZXNzIHRoZW0KKyAgICAvLyBzeW5jaHJvbm91c2x5IGFuZCBhdm9pZCB1
c2luZyBhIGxvYWRlci4gCisgICAgaWYgKHVybC5wcm90b2NvbElzKCJkYXRhIikgJiYgdXJsLnN0
cmluZygpLnN0YXJ0c1dpdGgoImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsIikp
IHsKKyAgICAgICAgbV9kaWRMb2FkVXNlclN0eWxlU2hlZXQgPSB0cnVlOworICAgICAgICAKKyAg
ICAgICAgY29uc3QgdW5zaWduZWQgcHJlZml4TGVuZ3RoID0gMzU7CisgICAgICAgIFZlY3Rvcjxj
aGFyPiBlbmNvZGVkRGF0YSh1cmwuc3RyaW5nKCkubGVuZ3RoKCkgLSBwcmVmaXhMZW5ndGgpOwor
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBwcmVmaXhMZW5ndGg7IGkgPCB1cmwuc3RyaW5nKCku
bGVuZ3RoKCk7ICsraSkKKyAgICAgICAgICAgIGVuY29kZWREYXRhW2kgLSBwcmVmaXhMZW5ndGhd
ID0gc3RhdGljX2Nhc3Q8Y2hhcj4odXJsLnN0cmluZygpW2ldKTsKKworICAgICAgICBWZWN0b3I8
Y2hhcj4gc3R5bGVTaGVldEFzVVRGODsKKyAgICAgICAgaWYgKGJhc2U2NERlY29kZShlbmNvZGVk
RGF0YSwgc3R5bGVTaGVldEFzVVRGOCkpIHsKKyAgICAgICAgICAgIG1fdXNlclN0eWxlU2hlZXQg
PSBTdHJpbmc6OmZyb21VVEY4KHN0eWxlU2hlZXRBc1VURjguZGF0YSgpKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorICAgIH0KIH0KIAogY29uc3QgU3RyaW5nJiBQYWdlOjp1c2Vy
U3R5bGVTaGVldCgpIGNvbnN0CiB7Ci0gICAgaWYgKG1fdXNlclN0eWxlU2hlZXRQYXRoLmlzRW1w
dHkoKSkgewotICAgICAgICBBU1NFUlQobV91c2VyU3R5bGVTaGVldC5pc0VtcHR5KCkpOworICAg
IGlmIChtX3VzZXJTdHlsZVNoZWV0UGF0aC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBtX3Vz
ZXJTdHlsZVNoZWV0OwotICAgIH0KIAogICAgIHRpbWVfdCBtb2RUaW1lOwogICAgIGlmICghZ2V0
RmlsZU1vZGlmaWNhdGlvblRpbWUobV91c2VyU3R5bGVTaGVldFBhdGgsIG1vZFRpbWUpKSB7Cklu
ZGV4OiBXZWJDb3JlL3BhZ2UvbWFjL0ZyYW1lTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGFnZS9tYWMvRnJhbWVNYWMubW0JKHJldmlzaW9uIDQ4MDY5KQorKysgV2ViQ29yZS9wYWdlL21h
Yy9GcmFtZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNiBAQAogI2ltcG9ydCAi
Y29uZmlnLmgiCiAjaW1wb3J0ICJGcmFtZS5oIgogCi0jaW1wb3J0ICJCYXNlNjQuaCIKICNpbXBv
cnQgIkJsb2NrRXhjZXB0aW9ucy5oIgogI2ltcG9ydCAiQ29sb3JNYWMuaCIKICNpbXBvcnQgIkN1
cnNvci5oIgpAQCAtNTMsNyArNTIsNiBAQAogI2ltcG9ydCAiUmVuZGVyVGFibGVDZWxsLmgiCiAj
aW1wb3J0ICJTY3JvbGxiYXIuaCIKICNpbXBvcnQgIlNpbXBsZUZvbnREYXRhLmgiCi0jaW1wb3J0
ICJVc2VyU3R5bGVTaGVldExvYWRlci5oIgogI2ltcG9ydCAiV2ViQ29yZVZpZXdGYWN0b3J5Lmgi
CiAjaW1wb3J0ICJ2aXNpYmxlX3VuaXRzLmgiCiAKQEAgLTUzMywzMyArNTMxLDQgQEAgRHJhZ0lt
YWdlUmVmIEZyYW1lOjpkcmFnSW1hZ2VGb3JTZWxlY3RpbwogICAgIHJldHVybiBzZWxlY3Rpb25J
bWFnZSgpOwogfQogCi12b2lkIEZyYW1lOjpzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKGNvbnN0
IEtVUkwmIHVybCkKLXsKLSAgICBtX3VzZXJTdHlsZVNoZWV0TG9hZGVyLmNsZWFyKCk7Ci0KLSAg
ICAvLyBEYXRhIFVSTHMgd2l0aCBiYXNlNjQtZW5jb2RlZCBVVEYtOCBzdHlsZSBzaGVldHMgYXJl
IGNvbW1vbi4gV2UgY2FuIHByb2Nlc3MgdGhlbQotICAgIC8vIHN5bmNocm9ub3VzbHkgYW5kIGF2
b2lkIHVzaW5nIGEgbG9hZGVyLiAKLSAgICBpZiAodXJsLnByb3RvY29sSXMoImRhdGEiKSAmJiB1
cmwuc3RyaW5nKCkuc3RhcnRzV2l0aCgiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04O2Jhc2U2
NCwiKSkgewotICAgICAgICBjb25zdCB1bnNpZ25lZCBwcmVmaXhMZW5ndGggPSAzNTsKLSAgICAg
ICAgVmVjdG9yPGNoYXI+IGVuY29kZWREYXRhKHVybC5zdHJpbmcoKS5sZW5ndGgoKSAtIHByZWZp
eExlbmd0aCk7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IHByZWZpeExlbmd0aDsgaSA8IHVy
bC5zdHJpbmcoKS5sZW5ndGgoKTsgKytpKQotICAgICAgICAgICAgZW5jb2RlZERhdGFbaSAtIHBy
ZWZpeExlbmd0aF0gPSBzdGF0aWNfY2FzdDxjaGFyPih1cmwuc3RyaW5nKClbaV0pOwotCi0gICAg
ICAgIFZlY3RvcjxjaGFyPiBzdHlsZVNoZWV0QXNVVEY4OwotICAgICAgICBpZiAoYmFzZTY0RGVj
b2RlKGVuY29kZWREYXRhLCBzdHlsZVNoZWV0QXNVVEY4KSkgewotICAgICAgICAgICAgbV9kb2Mt
PnNldFVzZXJTdHlsZVNoZWV0KFN0cmluZzo6ZnJvbVVURjgoc3R5bGVTaGVldEFzVVRGOC5kYXRh
KCkpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICht
X2RvYy0+ZG9jTG9hZGVyKCkpCi0gICAgICAgIG1fdXNlclN0eWxlU2hlZXRMb2FkZXIuc2V0KG5l
dyBVc2VyU3R5bGVTaGVldExvYWRlcihtX2RvYywgdXJsLnN0cmluZygpKSk7Ci19Ci0KLXZvaWQg
RnJhbWU6OnNldFVzZXJTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYgc3R5bGVTaGVldCkKLXsKLSAg
ICBtX3VzZXJTdHlsZVNoZWV0TG9hZGVyLmNsZWFyKCk7Ci0gICAgbV9kb2MtPnNldFVzZXJTdHls
ZVNoZWV0KHN0eWxlU2hlZXQpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBX
ZWJDb3JlL3BhZ2UvcXQvRnJhbWVRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL3F0
L0ZyYW1lUXQuY3BwCShyZXZpc2lvbiA0ODA2OCkKKysrIFdlYkNvcmUvcGFnZS9xdC9GcmFtZVF0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsMjEgKzMzLDUgQEAgRHJhZ0ltYWdlUmVmIEZyYW1l
OjpkcmFnSW1hZ2VGb3JTZWxlY3RpbwogICAgIHJldHVybiAwOwogfQogCi12b2lkIEZyYW1lOjpz
ZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKGNvbnN0IEtVUkwmIHVybCkKLXsKLSAgICBkZWxldGUg
bV91c2VyU3R5bGVTaGVldExvYWRlcjsKLSAgICBtX3VzZXJTdHlsZVNoZWV0TG9hZGVyID0gMDsK
LSAgICBpZiAobV9kb2MgJiYgbV9kb2MtPmRvY0xvYWRlcigpKQotICAgICAgICBtX3VzZXJTdHls
ZVNoZWV0TG9hZGVyID0gbmV3IFVzZXJTdHlsZVNoZWV0TG9hZGVyKG1fZG9jLCB1cmwuc3RyaW5n
KCkpOwotfQotCi12b2lkIEZyYW1lOjpzZXRVc2VyU3R5bGVTaGVldChjb25zdCBTdHJpbmcmIHN0
eWxlU2hlZXQpCi17Ci0gICAgZGVsZXRlIG1fdXNlclN0eWxlU2hlZXRMb2FkZXI7Ci0gICAgbV91
c2VyU3R5bGVTaGVldExvYWRlciA9IDA7Ci0gICAgaWYgKG1fZG9jKQotICAgICAgICBtX2RvYy0+
c2V0VXNlclN0eWxlU2hlZXQoc3R5bGVTaGVldCk7Ci19Ci0KIH0KIC8vIHZpbTogdHM9NCBzdz00
IGV0Cg==
</data>
<flag name="review"
          id="20122"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>