<?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>52051</bug_id>
          
          <creation_ts>2011-01-07 03:06:53 -0800</creation_ts>
          <short_desc>[GTK] Port scrollbar painting to GtkStyleContext</short_desc>
          <delta_ts>2011-01-07 13:35:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>
          
          <blocked>50820</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>330713</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-01-07 03:06:53 -0800</bug_when>
    <thetext>We should use GtkStyleContext API to paint the scrollbars when using gtk3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330715</commentid>
    <comment_count>1</comment_count>
      <attachid>78218</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-01-07 03:12:18 -0800</bug_when>
    <thetext>Created attachment 78218
Use GtkStyleContext API to paint scrollbars</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330716</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-07 03:14:32 -0800</bug_when>
    <thetext>Attachment 78218 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/wtf/gobject/GTypedefs.h&apos;, u&apos;WebCore/ChangeLog&apos;, u&apos;WebCore/platform/gtk/RenderThemeGtk.h&apos;, u&apos;WebCore/platform/gtk/RenderThemeGtk3.cpp&apos;, u&apos;WebCore/platform/gtk/ScrollbarThemeGtk.cpp&apos;, u&apos;WebCore/platform/gtk/ScrollbarThemeGtk.h&apos;, u&apos;WebCore/platform/gtk/ScrollbarThemeGtk2.cpp&apos;, u&apos;WebCore/platform/gtk/ScrollbarThemeGtk3.cpp&apos;]&quot; exit_code: 1
WebCore/platform/gtk/ScrollbarThemeGtk3.cpp:62:  Use 0 instead of NULL.  [readability/null] [5]
WebCore/platform/gtk/ScrollbarThemeGtk3.cpp:166:  Use 0 instead of NULL.  [readability/null] [5]
WebCore/platform/gtk/ScrollbarThemeGtk3.cpp:178:  Use 0 instead of NULL.  [readability/null] [5]
Total errors found: 3 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>330860</commentid>
    <comment_count>3</comment_count>
      <attachid>78218</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-01-07 10:40:37 -0800</bug_when>
    <thetext>Comment on attachment 78218
Use GtkStyleContext API to paint scrollbars

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

Great. Please fix the two minor issues before landing this.

&gt; WebCore/platform/gtk/ScrollbarThemeGtk3.cpp:46
&gt; +    m_context = static_cast&lt;RenderThemeGtk*&gt;(RenderTheme::defaultTheme().get())-&gt;gtkScrollbarStyle();

You should use a an initialization field here.
ScrollbarThemeGtk::ScrollbarThemeGtk()
    : m_context(static_cast&lt;RenderThemeGtk*&gt;(RenderTheme::defaultTheme().get())-&gt;gtkScrollbarStyle())

&gt; WebCore/platform/gtk/ScrollbarThemeGtk3.cpp:53
&gt; +    gtk_style_context_get_style(m_context,

I think we should ASSERT(m_context) before here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330882</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-01-07 11:33:21 -0800</bug_when>
    <thetext>Committed r75259: &lt;http://trac.webkit.org/changeset/75259&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330972</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-07 13:35:55 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/75259 might have broken GTK Linux 64-bit Debug</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78218</attachid>
            <date>2011-01-07 03:12:18 -0800</date>
            <delta_ts>2011-01-07 11:34:10 -0800</delta_ts>
            <desc>Use GtkStyleContext API to paint scrollbars</desc>
            <filename>style-context-scrollbars.diff</filename>
            <type>text/plain</type>
            <size>16839</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGE1MTQ1ZTUuLjMwZmMxMWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTAxLTA3ICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBQb3J0IHNjcm9sbGJhciBwYWludGluZyB0byBH
dGtTdHlsZUNvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTUyMDUxCisKKyAgICAgICAgKiB3dGYvZ29iamVjdC9HVHlwZWRlZnMuaDogQWRkIEd0
a1N0eWxlQ29udGV4dCBmb3J3YXJkCisgICAgICAgIGRlY2xhcmF0aW9uLgorCiAyMDExLTAxLTA2
ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRhNjAwZi4uN2NkZjg0NSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAor
MjAxMS0wMS0wNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gUG9y
dCBzY3JvbGxiYXIgcGFpbnRpbmcgdG8gR3RrU3R5bGVDb250ZXh0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjA1MQorCisgICAgICAgIFVzZSBHdGtT
dHlsZUNvbnRleHQgQVBJIHRvIHBhaW50IHNjcm9sbGJhcnMgd2hlbiBidWlsZGluZyB3aXRoCisg
ICAgICAgIEdUSysgMy54LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGhpcyBzaG91bGQgbm90
IGNoYW5nZSBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1JlbmRlclRo
ZW1lR3RrLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6Z3RrU2Nyb2xsYmFyU3R5bGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Nj
cm9sbGJhclRoZW1lR3RrMi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpndGtTdHlsZVNldENhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lR3RrOjpTY3JvbGxiYXJUaGVt
ZUd0ayk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrMy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpndGtTdHlsZUNoYW5nZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxiYXJUaGVtZUd0azo6U2Nyb2xsYmFyVGhlbWVHdGspOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsYmFyVGhlbWVHdGs6OnVwZGF0ZVRoZW1lUHJvcGVydGllcyk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZUd0azo6cGFpbnRUcmFja0JhY2tncm91bmQpOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50U2Nyb2xsYmFyQmFja2dyb3Vu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZUd0azo6cGFpbnRUaHVtYik6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZUd0azo6cGFpbnRCdXR0b24pOgorCiAyMDEx
LTAxLTA2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L2dvYmplY3QvR1R5cGVkZWZzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2dvYmplY3Qv
R1R5cGVkZWZzLmgKaW5kZXggMGI5YTllYS4uZjlmOGYyZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9nb2JqZWN0L0dUeXBlZGVmcy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvZ29iamVjdC9HVHlwZWRlZnMuaApAQCAtODksNiArODksNyBAQCB0eXBlZGVm
IHN0cnVjdCBfR2RrRHJhd2FibGUgR2RrV2luZG93OwogdHlwZWRlZiBzdHJ1Y3QgX0dka1dpbmRv
dyBHZGtXaW5kb3c7CiB0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fcmVjdGFuZ2xlX2ludCBjYWlyb19y
ZWN0YW5nbGVfaW50X3Q7CiB0eXBlZGVmIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCBHZGtSZWN0YW5n
bGU7Cit0eXBlZGVmIHN0cnVjdCBfR3RrU3R5bGVDb250ZXh0IEd0a1N0eWxlQ29udGV4dDsKICNl
bmRpZgogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRo
ZW1lR3RrLmggYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oCmluZGV4IGUw
MmE2MmQuLmJhMTU0NmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRo
ZW1lR3RrLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaApAQCAt
ODYsNyArODYsMTEgQEAgcHVibGljOgogCiAgICAgdm9pZCBnZXRJbmRpY2F0b3JNZXRyaWNzKENv
bnRyb2xQYXJ0LCBpbnQmIGluZGljYXRvclNpemUsIGludCYgaW5kaWNhdG9yU3BhY2luZykgY29u
c3Q7CiAKKyNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgogICAgIEd0a1dpZGdldCogZ3RrU2Nyb2xs
YmFyKCk7CisjZWxzZQorICAgIEd0a1N0eWxlQ29udGV4dCogZ3RrU2Nyb2xsYmFyU3R5bGUoKTsK
KyNlbmRpZgogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHBhaW50Q2hlY2tib3goUmVu
ZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIGksIGNvbnN0IEludFJlY3QmIHIpOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGszLmNwcCBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5jcHAKaW5kZXggYTM3YWJjNy4uZGJhOTJm
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGszLmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwCkBAIC01NjEsOSAr
NTYxLDkgQEAgR3RrV2lkZ2V0KiBSZW5kZXJUaGVtZUd0azo6Z3RrSFNjYWxlKCkgY29uc3QKICAg
ICByZXR1cm4gbV9ndGtIU2NhbGU7CiB9CiAKLUd0a1dpZGdldCogUmVuZGVyVGhlbWVHdGs6Omd0
a1Njcm9sbGJhcigpCitHdGtTdHlsZUNvbnRleHQqIFJlbmRlclRoZW1lR3RrOjpndGtTY3JvbGxi
YXJTdHlsZSgpCiB7Ci0gICAgcmV0dXJuIG1vel9ndGtfZ2V0X3Njcm9sbGJhcl93aWRnZXQoKTsK
KyAgICByZXR1cm4gZ2V0U3R5bGVDb250ZXh0KEdUS19UWVBFX1NDUk9MTEJBUik7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Nj
cm9sbGJhclRoZW1lR3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1l
R3RrLmNwcAppbmRleCAwODM1YzdmLi5jYjliMGY4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
U2Nyb2xsYmFyVGhlbWVHdGsuY3BwCkBAIC0zNCw3ICszNCw2IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHN0YXRpYyBIYXNoU2V0PFNjcm9sbGJhcio+KiBnU2Nyb2xsYmFyczsKLXN0YXRpYyB2
b2lkIGd0a1N0eWxlU2V0Q2FsbGJhY2soR3RrV2lkZ2V0KiwgR3RrU3R5bGUqLCBTY3JvbGxiYXJU
aGVtZUd0ayopOwogCiBTY3JvbGxiYXJUaGVtZSogU2Nyb2xsYmFyVGhlbWU6Om5hdGl2ZVRoZW1l
KCkKIHsKQEAgLTQyLDEzICs0MSw2IEBAIFNjcm9sbGJhclRoZW1lKiBTY3JvbGxiYXJUaGVtZTo6
bmF0aXZlVGhlbWUoKQogICAgIHJldHVybiAmdGhlbWU7CiB9CiAKLVNjcm9sbGJhclRoZW1lR3Rr
OjpTY3JvbGxiYXJUaGVtZUd0aygpCi17Ci0gICAgdXBkYXRlVGhlbWVQcm9wZXJ0aWVzKCk7Ci0g
ICAgZ19zaWduYWxfY29ubmVjdChzdGF0aWNfY2FzdDxSZW5kZXJUaGVtZUd0ayo+KFJlbmRlclRo
ZW1lOjpkZWZhdWx0VGhlbWUoKS5nZXQoKSktPmd0a1Njcm9sbGJhcigpLAotICAgICAgICAgInN0
eWxlLXNldCIsIEdfQ0FMTEJBQ0soZ3RrU3R5bGVTZXRDYWxsYmFjayksIHRoaXMpOwotfQotCiBT
Y3JvbGxiYXJUaGVtZUd0azo6flNjcm9sbGJhclRoZW1lR3RrKCkKIHsKIH0KQEAgLTk0LDExICs4
Niw2IEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVHdGs6OnVwZGF0ZVNjcm9sbGJhcnNGcmFtZVRoaWNr
bmVzcygpCiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCBndGtTdHlsZVNldENhbGxiYWNrKEd0a1dp
ZGdldCogd2lkZ2V0LCBHdGtTdHlsZSogcHJldmlvdXMsIFNjcm9sbGJhclRoZW1lR3RrKiBzY3Jv
bGxiYXJUaGVtZSkKLXsKLSAgICBzY3JvbGxiYXJUaGVtZS0+dXBkYXRlVGhlbWVQcm9wZXJ0aWVz
KCk7Ci19Ci0KIGJvb2wgU2Nyb2xsYmFyVGhlbWVHdGs6Omhhc1RodW1iKFNjcm9sbGJhciogc2Ny
b2xsYmFyKQogewogICAgIC8vIFRoaXMgbWV0aG9kIGlzIGp1c3QgY2FsbGVkIGFzIGEgcGFpbnQt
dGltZSBvcHRpbWl6YXRpb24gdG8gc2VlIGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFy
VGhlbWVHdGsuaAppbmRleCBlMzY0MmNiLi4yMDdlYzFmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1Njcm9sbGJhclRoZW1lR3RrLmgKQEAgLTYzLDE0ICs2MywxNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCB1bnJlZ2lzdGVyU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogCiBwcm90ZWN0ZWQ6CisjaWZuZGVm
IEdUS19BUElfVkVSU0lPTl8yCisgICAgR3RrU3R5bGVDb250ZXh0KiBtX2NvbnRleHQ7CisjZW5k
aWYKICAgICBpbnQgbV90aHVtYkZhdG5lc3M7CiAgICAgaW50IG1fdHJvdWdoQm9yZGVyV2lkdGg7
CiAgICAgaW50IG1fc3RlcHBlclNpemU7CiAgICAgaW50IG1fc3RlcHBlclNwYWNpbmc7CiAgICAg
aW50IG1fbWluVGh1bWJMZW5ndGg7Ci0gICAgYm9vbCBtX3Ryb3VnaFVuZGVyU3RlcHBlcnM7Ci0g
ICAgYm9vbCBtX2hhc0ZvcndhcmRCdXR0b25TdGFydFBhcnQ7Ci0gICAgYm9vbCBtX2hhc0JhY2tC
dXR0b25FbmRQYXJ0OworICAgIGdib29sZWFuIG1fdHJvdWdoVW5kZXJTdGVwcGVyczsKKyAgICBn
Ym9vbGVhbiBtX2hhc0ZvcndhcmRCdXR0b25TdGFydFBhcnQ7CisgICAgZ2Jvb2xlYW4gbV9oYXNC
YWNrQnV0dG9uRW5kUGFydDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1Njcm9sbGJhclRoZW1lR3RrMi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxi
YXJUaGVtZUd0azIuY3BwCmluZGV4IGI3ODJkZDYuLjc5Mjk1YzEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrMi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsyLmNwcApAQCAtMzgsNiArMzgsMTggQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgdm9pZCBndGtTdHlsZVNldENhbGxiYWNrKEd0a1dp
ZGdldCogd2lkZ2V0LCBHdGtTdHlsZSogcHJldmlvdXMsIFNjcm9sbGJhclRoZW1lR3RrKiBzY3Jv
bGxiYXJUaGVtZSkKK3sKKyAgICBzY3JvbGxiYXJUaGVtZS0+dXBkYXRlVGhlbWVQcm9wZXJ0aWVz
KCk7Cit9CisKK1Njcm9sbGJhclRoZW1lR3RrOjpTY3JvbGxiYXJUaGVtZUd0aygpCit7CisgICAg
dXBkYXRlVGhlbWVQcm9wZXJ0aWVzKCk7CisgICAgZ19zaWduYWxfY29ubmVjdChzdGF0aWNfY2Fz
dDxSZW5kZXJUaGVtZUd0ayo+KFJlbmRlclRoZW1lOjpkZWZhdWx0VGhlbWUoKS5nZXQoKSktPmd0
a1Njcm9sbGJhcigpLAorICAgICAgICAgInN0eWxlLXNldCIsIEdfQ0FMTEJBQ0soZ3RrU3R5bGVT
ZXRDYWxsYmFjayksIHRoaXMpOworfQorCiB2b2lkIFNjcm9sbGJhclRoZW1lR3RrOjp1cGRhdGVU
aGVtZVByb3BlcnRpZXMoKQogewogICAgIE1vekd0a1Njcm9sbGJhck1ldHJpY3MgbWV0cmljczsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrMy5jcHAg
Yi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0azMuY3BwCmluZGV4IDMwZDAy
MWUuLjQ0MjE2Y2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRo
ZW1lR3RrMy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsz
LmNwcApAQCAtMzIsMTA5ICszMiwxNjUgQEAKICNpbmNsdWRlICJSZW5kZXJUaGVtZUd0ay5oIgog
I2luY2x1ZGUgIlNjcm9sbFZpZXcuaCIKICNpbmNsdWRlICJTY3JvbGxiYXIuaCIKLSNpbmNsdWRl
ICJXaWRnZXRSZW5kZXJpbmdDb250ZXh0LmgiCi0jaW5jbHVkZSAiZ3RrZHJhd2luZy5oIgogI2lu
Y2x1ZGUgPGd0ay9ndGsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIFNjcm9sbGJh
clRoZW1lR3RrOjp1cGRhdGVUaGVtZVByb3BlcnRpZXMoKQorc3RhdGljIHZvaWQgZ3RrU3R5bGVD
aGFuZ2VkQ2FsbGJhY2soR3RrV2lkZ2V0KiwgU2Nyb2xsYmFyVGhlbWVHdGsqIHNjcm9sbGJhclRo
ZW1lKQoreworICAgIHNjcm9sbGJhclRoZW1lLT51cGRhdGVUaGVtZVByb3BlcnRpZXMoKTsKK30K
KworU2Nyb2xsYmFyVGhlbWVHdGs6OlNjcm9sbGJhclRoZW1lR3RrKCkKIHsKLSAgICBNb3pHdGtT
Y3JvbGxiYXJNZXRyaWNzIG1ldHJpY3M7Ci0gICAgbW96X2d0a19nZXRfc2Nyb2xsYmFyX21ldHJp
Y3MoJm1ldHJpY3MpOwotCi0gICAgbV90aHVtYkZhdG5lc3MgPSBtZXRyaWNzLnNsaWRlcl93aWR0
aDsKLSAgICBtX3Ryb3VnaEJvcmRlcldpZHRoID0gbWV0cmljcy50cm91Z2hfYm9yZGVyOwotICAg
IG1fc3RlcHBlclNpemUgPSBtZXRyaWNzLnN0ZXBwZXJfc2l6ZTsKLSAgICBtX3N0ZXBwZXJTcGFj
aW5nID0gbWV0cmljcy5zdGVwcGVyX3NwYWNpbmc7Ci0gICAgbV9taW5UaHVtYkxlbmd0aCA9IG1l
dHJpY3MubWluX3NsaWRlcl9zaXplOwotICAgIG1fdHJvdWdoVW5kZXJTdGVwcGVycyA9IG1ldHJp
Y3MudHJvdWdoX3VuZGVyX3N0ZXBwZXJzOwotICAgIG1faGFzRm9yd2FyZEJ1dHRvblN0YXJ0UGFy
dCA9IG1ldHJpY3MuaGFzX3NlY29uZGFyeV9mb3J3YXJkX3N0ZXBwZXI7Ci0gICAgbV9oYXNCYWNr
QnV0dG9uRW5kUGFydCA9IG1ldHJpY3MuaGFzX3NlY29uZGFyeV9iYWNrd2FyZF9zdGVwcGVyOwor
ICAgIG1fY29udGV4dCA9IHN0YXRpY19jYXN0PFJlbmRlclRoZW1lR3RrKj4oUmVuZGVyVGhlbWU6
OmRlZmF1bHRUaGVtZSgpLmdldCgpKS0+Z3RrU2Nyb2xsYmFyU3R5bGUoKTsKKyAgICB1cGRhdGVU
aGVtZVByb3BlcnRpZXMoKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KG1fY29udGV4dCwgImNoYW5n
ZWQiLCBHX0NBTExCQUNLKGd0a1N0eWxlQ2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7Cit9CiAKK3Zv
aWQgU2Nyb2xsYmFyVGhlbWVHdGs6OnVwZGF0ZVRoZW1lUHJvcGVydGllcygpCit7CisgICAgZ3Rr
X3N0eWxlX2NvbnRleHRfZ2V0X3N0eWxlKG1fY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIm1pbi1zbGlkZXItbGVuZ3RoIiwgJm1fbWluVGh1bWJMZW5ndGgsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzbGlkZXItd2lkdGgiLCAmbV90aHVtYkZhdG5l
c3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0cm91Z2gtYm9yZGVyIiwgJm1f
dHJvdWdoQm9yZGVyV2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGVw
cGVyLXNpemUiLCAmbV9zdGVwcGVyU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInN0ZXBwZXItc3BhY2luZyIsICZtX3N0ZXBwZXJTcGFjaW5nLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAidHJvdWdoLXVuZGVyLXN0ZXBwZXJzIiwgJm1fdHJvdWdoVW5kZXJT
dGVwcGVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImhhcy1zZWNvbmRhcnkt
YmFja3dhcmQtc3RlcHBlciIsICZtX2hhc0JhY2tCdXR0b25FbmRQYXJ0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiaGFzLXNlY29uZGFyeS1mb3J3YXJkLXN0ZXBwZXIiLCAmbV9o
YXNGb3J3YXJkQnV0dG9uU3RhcnRQYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBOVUxMKTsKICAgICB1cGRhdGVTY3JvbGxiYXJzRnJhbWVUaGlja25lc3MoKTsKIH0KIAogdm9p
ZCBTY3JvbGxiYXJUaGVtZUd0azo6cGFpbnRUcmFja0JhY2tncm91bmQoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBTY3JvbGxiYXIqIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsK
LSAgICBHdGtXaWRnZXRTdGF0ZSBzdGF0ZTsKLSAgICBzdGF0ZS5mb2N1c2VkID0gRkFMU0U7Ci0g
ICAgc3RhdGUuaXNEZWZhdWx0ID0gRkFMU0U7Ci0gICAgc3RhdGUuY2FuRGVmYXVsdCA9IEZBTFNF
OwotICAgIHN0YXRlLmRpc2FibGVkID0gRkFMU0U7Ci0gICAgc3RhdGUuYWN0aXZlID0gRkFMU0U7
Ci0gICAgc3RhdGUuaW5Ib3ZlciA9IEZBTFNFOwotCiAgICAgLy8gUGFpbnQgdGhlIHRyYWNrIGJh
Y2tncm91bmQuIElmIHRoZSB0cm91Z2gtdW5kZXItc3RlcHBlcnMgcHJvcGVydHkgaXMgdHJ1ZSwg
dGhpcwogICAgIC8vIHNob3VsZCBiZSB0aGUgZnVsbCBzaXplIG9mIHRoZSBzY3JvbGxiYXIsIGJ1
dCBpZiBpcyBmYWxzZSwgaXQgc2hvdWxkIG9ubHkgYmUgdGhlCiAgICAgLy8gdHJhY2sgcmVjdC4K
LSAgICBJbnRSZWN0IGZ1bGxTY3JvbGxiYXJSZWN0ID0gcmVjdDsKKyAgICBJbnRSZWN0IGZ1bGxT
Y3JvbGxiYXJSZWN0KHJlY3QpOwogICAgIGlmIChtX3Ryb3VnaFVuZGVyU3RlcHBlcnMpCiAgICAg
ICAgIGZ1bGxTY3JvbGxiYXJSZWN0ID0gSW50UmVjdChzY3JvbGxiYXItPngoKSwgc2Nyb2xsYmFy
LT55KCksIHNjcm9sbGJhci0+d2lkdGgoKSwgc2Nyb2xsYmFyLT5oZWlnaHQoKSk7CiAKLSAgICBH
dGtUaGVtZVdpZGdldFR5cGUgdHlwZSA9IHNjcm9sbGJhci0+b3JpZW50YXRpb24oKSA9PSBWZXJ0
aWNhbFNjcm9sbGJhciA/IE1PWl9HVEtfU0NST0xMQkFSX1RSQUNLX1ZFUlRJQ0FMIDogTU9aX0dU
S19TQ1JPTExCQVJfVFJBQ0tfSE9SSVpPTlRBTDsKLSAgICBXaWRnZXRSZW5kZXJpbmdDb250ZXh0
IHdpZGdldENvbnRleHQoY29udGV4dCwgZnVsbFNjcm9sbGJhclJlY3QpOwotICAgIHdpZGdldENv
bnRleHQucGFpbnRNb3ppbGxhV2lkZ2V0KHR5cGUsICZzdGF0ZSwgMCk7CisgICAgZ3RrX3N0eWxl
X2NvbnRleHRfc2F2ZShtX2NvbnRleHQpOworCisgICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2Ns
YXNzKG1fY29udGV4dCwgR1RLX1NUWUxFX0NMQVNTX1NDUk9MTEJBUik7CisgICAgZ3RrX3N0eWxl
X2NvbnRleHRfYWRkX2NsYXNzKG1fY29udGV4dCwgR1RLX1NUWUxFX0NMQVNTX1RST1VHSCk7CisK
KyAgICBndGtfcmVuZGVyX2JhY2tncm91bmQobV9jb250ZXh0LCBjb250ZXh0LT5wbGF0Zm9ybUNv
bnRleHQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbFNjcm9sbGJhclJlY3QueCgp
LCBmdWxsU2Nyb2xsYmFyUmVjdC55KCksIGZ1bGxTY3JvbGxiYXJSZWN0LndpZHRoKCksIGZ1bGxT
Y3JvbGxiYXJSZWN0LmhlaWdodCgpKTsKKyAgICBndGtfcmVuZGVyX2ZyYW1lKG1fY29udGV4dCwg
Y29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCksCisgICAgICAgICAgICAgICAgICAgICBmdWxsU2Ny
b2xsYmFyUmVjdC54KCksIGZ1bGxTY3JvbGxiYXJSZWN0LnkoKSwgZnVsbFNjcm9sbGJhclJlY3Qu
d2lkdGgoKSwgZnVsbFNjcm9sbGJhclJlY3QuaGVpZ2h0KCkpOworCisgICAgZ3RrX3N0eWxlX2Nv
bnRleHRfcmVzdG9yZShtX2NvbnRleHQpOwogfQogCiB2b2lkIFNjcm9sbGJhclRoZW1lR3RrOjpw
YWludFNjcm9sbGJhckJhY2tncm91bmQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBTY3JvbGxi
YXIqIHNjcm9sbGJhcikKIHsKLSAgICAvLyBUaGlzIGlzIHVudXNlZCBieSB0aGUgbW96X2d0a19z
Y3JvbGxlY2Rfd2luZG93X3BhaW50LgotICAgIEd0a1dpZGdldFN0YXRlIHN0YXRlOwotICAgIElu
dFJlY3QgZnVsbFNjcm9sbGJhclJlY3QgPSBJbnRSZWN0KHNjcm9sbGJhci0+eCgpLCBzY3JvbGxi
YXItPnkoKSwgc2Nyb2xsYmFyLT53aWR0aCgpLCBzY3JvbGxiYXItPmhlaWdodCgpKTsKLSAgICBX
aWRnZXRSZW5kZXJpbmdDb250ZXh0IHdpZGdldENvbnRleHQoY29udGV4dCwgZnVsbFNjcm9sbGJh
clJlY3QpOwotICAgIHdpZGdldENvbnRleHQucGFpbnRNb3ppbGxhV2lkZ2V0KE1PWl9HVEtfU0NS
T0xMRURfV0lORE9XLCAmc3RhdGUsIDApOworICAgIGd0a19zdHlsZV9jb250ZXh0X3NhdmUobV9j
b250ZXh0KTsKKworICAgIGd0a19zdHlsZV9jb250ZXh0X2FkZF9jbGFzcyhtX2NvbnRleHQsIEdU
S19TVFlMRV9DTEFTU19TQ1JPTExCQVIpOworICAgIGd0a19zdHlsZV9jb250ZXh0X2FkZF9jbGFz
cyhtX2NvbnRleHQsICJzY3JvbGxlZC13aW5kb3ciKTsKKyAgICBndGtfcmVuZGVyX2ZyYW1lKG1f
Y29udGV4dCwgY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCksIHNjcm9sbGJhci0+eCgpLCBzY3Jv
bGxiYXItPnkoKSwgc2Nyb2xsYmFyLT53aWR0aCgpLCBzY3JvbGxiYXItPmhlaWdodCgpKTsKKwor
ICAgIGd0a19zdHlsZV9jb250ZXh0X3Jlc3RvcmUobV9jb250ZXh0KTsKIH0KIAogdm9pZCBTY3Jv
bGxiYXJUaGVtZUd0azo6cGFpbnRUaHVtYihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFNjcm9s
bGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIEd0a1dpZGdldFN0
YXRlIHN0YXRlOwotICAgIHN0YXRlLmZvY3VzZWQgPSBGQUxTRTsKLSAgICBzdGF0ZS5pc0RlZmF1
bHQgPSBGQUxTRTsKLSAgICBzdGF0ZS5jYW5EZWZhdWx0ID0gRkFMU0U7Ci0gICAgc3RhdGUuZGlz
YWJsZWQgPSBGQUxTRTsKLSAgICBzdGF0ZS5hY3RpdmUgPSBzY3JvbGxiYXItPnByZXNzZWRQYXJ0
KCkgPT0gVGh1bWJQYXJ0OwotICAgIHN0YXRlLmluSG92ZXIgPSBzY3JvbGxiYXItPmhvdmVyZWRQ
YXJ0KCkgPT0gVGh1bWJQYXJ0OwotICAgIHN0YXRlLm1heHBvcyA9IHNjcm9sbGJhci0+bWF4aW11
bSgpOwotICAgIHN0YXRlLmN1cnBvcyA9IHNjcm9sbGJhci0+Y3VycmVudFBvcygpOwotCi0gICAg
R3RrVGhlbWVXaWRnZXRUeXBlIHR5cGUgPSBzY3JvbGxiYXItPm9yaWVudGF0aW9uKCkgPT0gVmVy
dGljYWxTY3JvbGxiYXIgPyBNT1pfR1RLX1NDUk9MTEJBUl9USFVNQl9WRVJUSUNBTCA6IE1PWl9H
VEtfU0NST0xMQkFSX1RIVU1CX0hPUklaT05UQUw7Ci0gICAgV2lkZ2V0UmVuZGVyaW5nQ29udGV4
dCB3aWRnZXRDb250ZXh0KGNvbnRleHQsIHJlY3QpOwotICAgIHdpZGdldENvbnRleHQucGFpbnRN
b3ppbGxhV2lkZ2V0KHR5cGUsICZzdGF0ZSwgMCk7CisgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2F2
ZShtX2NvbnRleHQpOworCisgICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKG1fY29udGV4
dCwgR1RLX1NUWUxFX0NMQVNTX1NDUk9MTEJBUik7CisgICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRk
X2NsYXNzKG1fY29udGV4dCwgR1RLX1NUWUxFX0NMQVNTX1NMSURFUik7CisKKyAgICBndWludCBm
bGFncyA9IDA7CisgICAgaWYgKHNjcm9sbGJhci0+cHJlc3NlZFBhcnQoKSA9PSBUaHVtYlBhcnQp
CisgICAgICAgIGZsYWdzIHw9IEdUS19TVEFURV9GTEFHX0FDVElWRTsKKyAgICBpZiAoc2Nyb2xs
YmFyLT5ob3ZlcmVkUGFydCgpID09IFRodW1iUGFydCkKKyAgICAgICAgZmxhZ3MgfD0gR1RLX1NU
QVRFX0ZMQUdfUFJFTElHSFQ7CisgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3N0YXRlKG1fY29u
dGV4dCwgc3RhdGljX2Nhc3Q8R3RrU3RhdGVGbGFncz4oZmxhZ3MpKTsKKworICAgIGd0a19yZW5k
ZXJfc2xpZGVyKG1fY29udGV4dCwgY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCksIHJlY3QueCgp
LCByZWN0LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpLAorICAgICAgICAgICAgICAg
ICAgICAgIHNjcm9sbGJhci0+b3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhciA/IEdU
S19PUklFTlRBVElPTl9WRVJUSUNBTCA6IEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFMKTsKKwor
ICAgIGd0a19zdHlsZV9jb250ZXh0X3Jlc3RvcmUobV9jb250ZXh0KTsKIH0KIAogdm9pZCBTY3Jv
bGxiYXJUaGVtZUd0azo6cGFpbnRCdXR0b24oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBTY3Jv
bGxiYXIqIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVjdCwgU2Nyb2xsYmFyUGFydCBwYXJ0
KQogewotICAgIGludCBmbGFncyA9IDA7Ci0gICAgaWYgKHNjcm9sbGJhci0+b3JpZW50YXRpb24o
KSA9PSBWZXJ0aWNhbFNjcm9sbGJhcikKLSAgICAgICAgZmxhZ3MgfD0gTU9aX0dUS19TVEVQUEVS
X1ZFUlRJQ0FMOworICAgIGd0a19zdHlsZV9jb250ZXh0X3NhdmUobV9jb250ZXh0KTsKIAotICAg
IGlmIChwYXJ0ID09IEZvcndhcmRCdXR0b25FbmRQYXJ0KQotICAgICAgICBmbGFncyB8PSAoTU9a
X0dUS19TVEVQUEVSX0RPV04gfCBNT1pfR1RLX1NURVBQRVJfQk9UVE9NKTsKLSAgICBpZiAocGFy
dCA9PSBGb3J3YXJkQnV0dG9uU3RhcnRQYXJ0KQotICAgICAgICBmbGFncyB8PSBNT1pfR1RLX1NU
RVBQRVJfRE9XTjsKLQotICAgIEd0a1dpZGdldFN0YXRlIHN0YXRlOwotICAgIHN0YXRlLmZvY3Vz
ZWQgPSBUUlVFOwotICAgIHN0YXRlLmlzRGVmYXVsdCA9IFRSVUU7Ci0gICAgc3RhdGUuY2FuRGVm
YXVsdCA9IFRSVUU7Ci0gICAgc3RhdGUuZGVwcmVzc2VkID0gRkFMU0U7CisgICAgZ3RrX3N0eWxl
X2NvbnRleHRfYWRkX2NsYXNzKG1fY29udGV4dCwgR1RLX1NUWUxFX0NMQVNTX1NDUk9MTEJBUik7
CiAKKyAgICBndWludCBmbGFncyA9IDA7CiAgICAgaWYgKChCYWNrQnV0dG9uU3RhcnRQYXJ0ID09
IHBhcnQgJiYgc2Nyb2xsYmFyLT5jdXJyZW50UG9zKCkpCiAgICAgICAgIHx8IChCYWNrQnV0dG9u
RW5kUGFydCA9PSBwYXJ0ICYmIHNjcm9sbGJhci0+Y3VycmVudFBvcygpKQogICAgICAgICB8fCAo
Rm9yd2FyZEJ1dHRvbkVuZFBhcnQgPT0gcGFydCAmJiBzY3JvbGxiYXItPmN1cnJlbnRQb3MoKSAh
PSBzY3JvbGxiYXItPm1heGltdW0oKSkKICAgICAgICAgfHwgKEZvcndhcmRCdXR0b25TdGFydFBh
cnQgPT0gcGFydCAmJiBzY3JvbGxiYXItPmN1cnJlbnRQb3MoKSAhPSBzY3JvbGxiYXItPm1heGlt
dW0oKSkpIHsKLSAgICAgICAgc3RhdGUuZGlzYWJsZWQgPSBGQUxTRTsKLSAgICAgICAgc3RhdGUu
YWN0aXZlID0gcGFydCA9PSBzY3JvbGxiYXItPnByZXNzZWRQYXJ0KCk7Ci0gICAgICAgIHN0YXRl
LmluSG92ZXIgPSBwYXJ0ID09IHNjcm9sbGJhci0+aG92ZXJlZFBhcnQoKTsKKyAgICAgICAgaWYg
KHBhcnQgPT0gc2Nyb2xsYmFyLT5wcmVzc2VkUGFydCgpKQorICAgICAgICAgICAgZmxhZ3MgfD0g
R1RLX1NUQVRFX0ZMQUdfQUNUSVZFOworICAgICAgICBpZiAocGFydCA9PSBzY3JvbGxiYXItPmhv
dmVyZWRQYXJ0KCkpCisgICAgICAgICAgICBmbGFncyB8PSBHVEtfU1RBVEVfRkxBR19QUkVMSUdI
VDsKKyAgICB9IGVsc2UKKyAgICAgICAgZmxhZ3MgfD0gR1RLX1NUQVRFX0ZMQUdfSU5TRU5TSVRJ
VkU7CisgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3N0YXRlKG1fY29udGV4dCwgc3RhdGljX2Nh
c3Q8R3RrU3RhdGVGbGFncz4oZmxhZ3MpKTsKKworICAgIGd1aW50IHNpZGVzID0gZ3RrX3N0eWxl
X2NvbnRleHRfZ2V0X2p1bmN0aW9uX3NpZGVzKG1fY29udGV4dCk7CisgICAgaWYgKHNjcm9sbGJh
ci0+b3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcikKKyAgICAgICAgc2lkZXMgJj0g
fihHVEtfSlVOQ1RJT05fVE9QIHwgR1RLX0pVTkNUSU9OX0JPVFRPTSk7CisgICAgZWxzZQorICAg
ICAgICBzaWRlcyAmPSB+KEdUS19KVU5DVElPTl9MRUZUIHwgR1RLX0pVTkNUSU9OX1JJR0hUKTsK
KworICAgIHN3aXRjaCAocGFydCkgeworICAgIGNhc2UgQmFja0J1dHRvblN0YXJ0UGFydDoKKyAg
ICAgICAgc2lkZXMgfD0gKHNjcm9sbGJhci0+b3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9s
bGJhcikgPyBHVEtfSlVOQ1RJT05fQk9UVE9NIDogR1RLX0pVTkNUSU9OX1JJR0hUOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEJhY2tCdXR0b25FbmRQYXJ0OgorICAgIGNhc2UgRm9yd2FyZEJ1
dHRvbkVuZFBhcnQ6CisgICAgICAgIHNpZGVzIHw9IChzY3JvbGxiYXItPm9yaWVudGF0aW9uKCkg
PT0gVmVydGljYWxTY3JvbGxiYXIpID8KKyAgICAgICAgICAgICAgICBHVEtfSlVOQ1RJT05fVE9Q
IHwgR1RLX0pVTkNUSU9OX0JPVFRPTSA6IEdUS19KVU5DVElPTl9SSUdIVCB8IEdUS19KVU5DVElP
Tl9MRUZUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvcndhcmRCdXR0b25TdGFydFBhcnQ6
CisgICAgICAgIHNpZGVzIHw9IChzY3JvbGxiYXItPm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWxT
Y3JvbGxiYXIpID8gR1RLX0pVTkNUSU9OX1RPUCA6IEdUS19KVU5DVElPTl9MRUZUOworICAgICAg
ICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICB9CisgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X2p1bmN0aW9uX3NpZGVzKG1fY29udGV4dCwg
c3RhdGljX2Nhc3Q8R3RrSnVuY3Rpb25TaWRlcz4oc2lkZXMpKTsKKyAgICBndGtfc3R5bGVfY29u
dGV4dF9hZGRfY2xhc3MobV9jb250ZXh0LCBHVEtfU1RZTEVfQ0xBU1NfQlVUVE9OKTsKKworICAg
IGd0a19yZW5kZXJfYmFja2dyb3VuZChtX2NvbnRleHQsIGNvbnRleHQtPnBsYXRmb3JtQ29udGV4
dCgpLCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7Cisg
ICAgZ3RrX3JlbmRlcl9mcmFtZShtX2NvbnRleHQsIGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgp
LCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CisKKyAg
ICBnZmxvYXQgYXJyb3dTY2FsaW5nOworICAgIGd0a19zdHlsZV9jb250ZXh0X2dldF9zdHlsZSht
X2NvbnRleHQsICJhcnJvdy1zY2FsaW5nIiwgJmFycm93U2NhbGluZywgTlVMTCk7CisKKyAgICBJ
bnRTaXplIGFycm93U2l6ZSA9IHJlY3Quc2l6ZSgpOworICAgIGFycm93U2l6ZS5zY2FsZShhcnJv
d1NjYWxpbmcpOworICAgIEludFBvaW50IGFycm93UG9pbnQocmVjdC54KCkgKyAocmVjdC53aWR0
aCgpIC0gYXJyb3dTaXplLndpZHRoKCkpIC8gMiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
Y3QueSgpICsgKHJlY3QuaGVpZ2h0KCkgLSBhcnJvd1NpemUuaGVpZ2h0KCkpIC8gMik7CisKKyAg
ICBpZiAoZmxhZ3MgJiBHVEtfU1RBVEVfRkxBR19BQ1RJVkUpIHsKKyAgICAgICAgZ2ludCBhcnJv
d0Rpc3BsYWNlbWVudFgsIGFycm93RGlzcGxhY2VtZW50WTsKKyAgICAgICAgZ3RrX3N0eWxlX2Nv
bnRleHRfZ2V0X3N0eWxlKG1fY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJhcnJvdy1kaXNwbGFjZW1lbnQteCIsICZhcnJvd0Rpc3BsYWNlbWVudFgsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJyb3ctZGlzcGxhY2VtZW50LXkiLCAm
YXJyb3dEaXNwbGFjZW1lbnRZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TlVMTCk7CisgICAgICAgIGFycm93UG9pbnQubW92ZShhcnJvd0Rpc3BsYWNlbWVudFgsIGFycm93
RGlzcGxhY2VtZW50WSk7CisgICAgfQorCisgICAgZ2RvdWJsZSBhbmdsZSwgc2l6ZTsKKyAgICBp
ZiAoc2Nyb2xsYmFyLT5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFyKSB7CisgICAg
ICAgIHNpemUgPSBhcnJvd1NpemUud2lkdGgoKTsKKyAgICAgICAgYW5nbGUgPSAocGFydCA9PSBG
b3J3YXJkQnV0dG9uRW5kUGFydCB8fCBwYXJ0ID09IEZvcndhcmRCdXR0b25TdGFydFBhcnQpID8g
R19QSSA6IDA7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgc3RhdGUuZGlzYWJsZWQgPSBUUlVFOwot
ICAgICAgICBzdGF0ZS5hY3RpdmUgPSBGQUxTRTsKLSAgICAgICAgc3RhdGUuaW5Ib3ZlciA9IEZB
TFNFOworICAgICAgICBzaXplID0gYXJyb3dTaXplLmhlaWdodCgpOworICAgICAgICBhbmdsZSA9
IChwYXJ0ID09IEZvcndhcmRCdXR0b25FbmRQYXJ0IHx8IHBhcnQgPT0gRm9yd2FyZEJ1dHRvblN0
YXJ0UGFydCkgPyBHX1BJIC8gMiA6IDMgKiAoR19QSSAvIDIpOwogICAgIH0KIAotICAgIFdpZGdl
dFJlbmRlcmluZ0NvbnRleHQgd2lkZ2V0Q29udGV4dChjb250ZXh0LCByZWN0KTsKLSAgICB3aWRn
ZXRDb250ZXh0LnBhaW50TW96aWxsYVdpZGdldChNT1pfR1RLX1NDUk9MTEJBUl9CVVRUT04sICZz
dGF0ZSwgZmxhZ3MpOworICAgIGd0a19yZW5kZXJfYXJyb3cobV9jb250ZXh0LCBjb250ZXh0LT5w
bGF0Zm9ybUNvbnRleHQoKSwgYW5nbGUsIGFycm93UG9pbnQueCgpLCBhcnJvd1BvaW50LnkoKSwg
c2l6ZSk7CisKKyAgICBndGtfc3R5bGVfY29udGV4dF9yZXN0b3JlKG1fY29udGV4dCk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
      

    </bug>

</bugzilla>