<?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>63867</bug_id>
          
          <creation_ts>2011-07-02 16:27:57 -0700</creation_ts>
          <short_desc>Move the plug-in controller member variable up to the shared Plugin base class</short_desc>
          <delta_ts>2011-07-02 16:40: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>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>431649</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-07-02 16:27:57 -0700</bug_when>
    <thetext>Move the plug-in controller member variable up to the shared Plugin base class</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431651</commentid>
    <comment_count>1</comment_count>
      <attachid>99563</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-07-02 16:32:32 -0700</bug_when>
    <thetext>Created attachment 99563
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431652</commentid>
    <comment_count>2</comment_count>
      <attachid>99563</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-07-02 16:36:42 -0700</bug_when>
    <thetext>Comment on attachment 99563
Patch

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

&gt; Source/WebKit2/WebProcess/Plugins/Plugin.h:81
&gt; +    virtual bool initialize(const Parameters&amp;) = 0;

Can this be private? It seems likes only the two parameter version should ever be called directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431653</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-07-02 16:40:36 -0700</bug_when>
    <thetext>Committed r90326: &lt;http://trac.webkit.org/changeset/90326&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99563</attachid>
            <date>2011-07-02 16:32:32 -0700</date>
            <delta_ts>2011-07-02 16:36:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63867-20110702163230.patch</filename>
            <type>text/plain</type>
            <size>22585</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDkwMzI1KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsOTIgQEAKKzIwMTEtMDctMDIgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIHRoZSBwbHVnLWlu
IGNvbnRyb2xsZXIgbWVtYmVyIHZhcmlhYmxlIHVwIHRvIHRoZSBzaGFyZWQgUGx1Z2luIGJhc2Ug
Y2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYz
ODY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6TmV0c2NhcGVQbHVnaW4pOgorICAgICAgICBSZW1vdmUg
bV9wbHVnaW5Db250cm9sbGVyLgorCisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpp
bnZhbGlkYXRlKToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW46OnVzZXJBZ2VudCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpsb2FkVVJMKToKKyAgICAgICAgKFdl
YktpdDo6TmV0c2NhcGVQbHVnaW46OnNldFN0YXR1c2JhclRleHQpOgorICAgICAgICAoV2ViS2l0
OjpOZXRzY2FwZVBsdWdpbjo6ZXZhbHVhdGUpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBs
dWdpbjo6aXNQcml2YXRlQnJvd3NpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6TmV0c2Nh
cGVQbHVnaW46OndpbmRvd1NjcmlwdE5QT2JqZWN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0c2Nh
cGVQbHVnaW46OnBsdWdpbkVsZW1lbnROUE9iamVjdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNj
YXBlUGx1Z2luOjp0cnlUb1Nob3J0Q2lyY3VpdEludm9rZSk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHNjYXBlUGx1Z2luOjpjYW5jZWxTdHJlYW1Mb2FkKToKKyAgICAgICAgKFdlYktpdDo6TmV0c2Nh
cGVQbHVnaW46OmlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQpOgorICAgICAgICAoV2Vi
S2l0OjpOZXRzY2FwZVBsdWdpbjo6cHJveGllc0ZvclVSTCk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHNjYXBlUGx1Z2luOjpjb29raWVzRm9yVVJMKToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQ
bHVnaW46OnNldENvb2tpZXNGb3JVUkwpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdp
bjo6Z2V0QXV0aGVudGljYXRpb25JbmZvKToKKyAgICAgICAgVXNlIGNvbnRyb2xsZXIoKSBpbnN0
ZWFkIG9mIG1fcGx1Z2luQ29udHJvbGxlci4KKworICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBs
dWdpbjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIFRoaXMgZG9lc24ndCB0YWtlIGEgUGx1Z2luQ29u
dHJvbGxlciBwYXJhbWV0ZXIgYW55bW9yZS4KKworICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBs
dWdpbjo6ZGVzdHJveSk6CisgICAgICAgIE5vIG5lZWQgdG8gbnVsbCBvdXQgdGhlIHBsdWctaW4g
Y29udHJvbGxlci4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRz
Y2FwZVBsdWdpbi5oOgorICAgICAgICBSZW1vdmUgbV9wbHVnaW5Db250cm9sbGVyIG1lbWJlciB2
YXJpYWJsZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0
c2NhcGVQbHVnaW5NYWMubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpjb21w
b3NpdGluZ1JlbmRlclNlcnZlclBvcnQpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdp
bjo6cGxhdGZvcm1TZXRGb2N1cyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjp3
aW5kb3dGb2N1c0NoYW5nZWQpOgorICAgICAgICBVc2UgY29udHJvbGxlcigpIGluc3RlYWQgb2Yg
bV9wbHVnaW5Db250cm9sbGVyLgorICAgICAgICAKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luOjpQbHVnaW4pOgorICAgICAg
ICBJbml0aWFsaXplIG1fcGx1Z2luQ29udHJvbGxlci4KKworICAgICAgICAoV2ViS2l0OjpQbHVn
aW46OmluaXRpYWxpemUpOgorICAgICAgICBOZXcgZnVuY3Rpb24gdGhhdCBpbml0aWFsaXplcyB0
aGUgcGx1Zy1pbiBjb250cm9sbGVyIGFuZCB0aGVuIGNhbGxzIHRoZSByZWFsCisgICAgICAgIHZp
cnR1YWwgaW5pdGlhbGl6ZSBtZW1iZXIgZnVuY3Rpb24uCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luLmg6CisgICAgICAgIEFkZCBtX3BsdWdpbkNvbnRyb2xsZXIgbWVtYmVy
IHZhcmlhYmxlIGFuZCBhIG5ldyBpbml0aWFsaXplIHZpcnR1YWwgbWVtYmVyIGZ1bmN0aW9uIHRo
YXQgZG9lc24ndCB0YWtlIGEKKyAgICAgICAgUGx1Z2luQ29udHJvbGxlciBwYXJhbWV0ZXIuIE1h
a2UgdGhlICJvbGQiIGluaXRpYWxpemUgbWVtYmVyIGZ1bmN0aW9uIHNldCB1cCB0aGUgcGx1Zy1p
biBjb250cm9sbGVyLgorCisgICAgICAgIChXZWJLaXQ6OlBsdWdpbjo6Y29udHJvbGxlcik6Cisg
ICAgICAgIFRoaXMgaXMgbm93IGEgc2ltcGxlIGdldHRlci4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb3h5
OjpQbHVnaW5Qcm94eSk6CisgICAgICAgIFJlbW92ZSBtX3BsdWdpbkNvbnRyb2xsZXIuCisKKyAg
ICAgICAgKFdlYktpdDo6UGx1Z2luUHJveHk6OnBsdWdpblByb2Nlc3NDcmFzaGVkKToKKyAgICAg
ICAgVXNlIGNvbnRyb2xsZXIoKSwgcmVtb3ZlIGEgYm9ndXMgbnVsbCBjaGVjay4KKworICAgICAg
ICAoV2ViS2l0OjpQbHVnaW5Qcm94eTo6aW5pdGlhbGl6ZSk6CisgICAgICAgIFRoaXMgZG9lc24n
dCB0YWtlIGEgUGx1Z2luQ29udHJvbGxlciBwYXJhbWV0ZXIgbm93LgorCisgICAgICAgIChXZWJL
aXQ6OlBsdWdpblByb3h5OjpkZXN0cm95KToKKyAgICAgICAgTm8gbmVlZCB0byBudWxsIG91dCB0
aGUgcGx1Zy1pbiBjb250cm9sbGVyIG1lbWJlciB2YXJpYWJsZS4KKworICAgICAgICAoV2ViS2l0
OjpQbHVnaW5Qcm94eTo6bG9hZFVSTCk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb3h5Ojpw
cm94aWVzRm9yVVJMKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJveHk6OmNvb2tpZXNGb3JV
UkwpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm94eTo6c2V0Q29va2llc0ZvclVSTCk6Cisg
ICAgICAgIChXZWJLaXQ6OlBsdWdpblByb3h5OjpnZXRBdXRoZW50aWNhdGlvbkluZm8pOgorICAg
ICAgICAoV2ViS2l0OjpQbHVnaW5Qcm94eTo6d2luZG93TlBPYmplY3RJRCk6CisgICAgICAgIChX
ZWJLaXQ6OlBsdWdpblByb3h5OjpnZXRQbHVnaW5FbGVtZW50TlBPYmplY3QpOgorICAgICAgICAo
V2ViS2l0OjpQbHVnaW5Qcm94eTo6ZXZhbHVhdGUpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Q
cm94eTo6Y2FuY2VsU3RyZWFtTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb3h5Ojpj
YW5jZWxNYW51YWxTdHJlYW1Mb2FkKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJveHk6OnNl
dFN0YXR1c2JhclRleHQpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm94eTo6c2V0Q29tcGxl
eFRleHRJbnB1dEVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm94eTo6dXBkYXRl
KToKKyAgICAgICAgVXNlIGNvbnRyb2xsZXIoKSBpbnN0ZWFkIG9mIG1fcGx1Z2luQ29udHJvbGxl
ci4KKyAgICAgICAgCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5Lmg6
CisgICAgICAgIFJlbW92ZSBtX3BsdWdpbkNvbnRyb2xsZXIuCisKIDIwMTEtMDctMDEgIERhcmlu
IEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIENvbnNpZGVyIGJhY2tpbmcgc2Nh
bGUgZmFjdG9yIHdoZW4gc2V0dGluZyB1cCBncmFwaGljcyBsYXllcnMKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwCShyZXZpc2lvbiA5MDMyMykK
KysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03Myw2ICs3Myw3IEBAIGJvb2wgUGx1Z2luOjpQYXJhbWV0ZXJzOjpkZWNvZGUo
Q29yZUlQQzoKIH0KIAogUGx1Z2luOjpQbHVnaW4oKQorICAgIDogbV9wbHVnaW5Db250cm9sbGVy
KDApCiB7CiB9CiAKQEAgLTgwLDQgKzgxLDE0IEBAIFBsdWdpbjo6flBsdWdpbigpCiB7CiB9CiAK
K2Jvb2wgUGx1Z2luOjppbml0aWFsaXplKFBsdWdpbkNvbnRyb2xsZXIqIHBsdWdpbkNvbnRyb2xs
ZXIsIGNvbnN0IFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCit7CisgICAgQVNTRVJUKCFtX3BsdWdp
bkNvbnRyb2xsZXIpOworICAgIEFTU0VSVChwbHVnaW5Db250cm9sbGVyKTsKKworICAgIG1fcGx1
Z2luQ29udHJvbGxlciA9IHBsdWdpbkNvbnRyb2xsZXI7CisKKyAgICByZXR1cm4gaW5pdGlhbGl6
ZShwYXJhbWV0ZXJzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oCShyZXZpc2lvbiA5MDMyMykKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaAkod29ya2luZyBjb3B5
KQpAQCAtNzIsMTAgKzcyLDEzIEBAIHB1YmxpYzoKICAgICAgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFBhcmFtZXRlcnMmKTsKICAgICB9OwogCisgICAg
Ly8gU2V0cyB0aGUgYWN0aXZlIHBsdWctaW4gY29udHJvbGxlciBhbmQgaW5pdGlhbGl6ZXMgdGhl
IHBsdWctaW4uCisgICAgYm9vbCBpbml0aWFsaXplKFBsdWdpbkNvbnRyb2xsZXIqLCBjb25zdCBQ
YXJhbWV0ZXJzJik7CisKICAgICB2aXJ0dWFsIH5QbHVnaW4oKTsKLSAgICAKKwogICAgIC8vIElu
aXRpYWxpemVzIHRoZSBwbHVnLWluLiBJZiB0aGUgcGx1Zy1pbiBmYWlscyB0byBpbml0aWFsaXpl
IHRoaXMgc2hvdWxkIHJldHVybiBmYWxzZS4KLSAgICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShQ
bHVnaW5Db250cm9sbGVyKiwgY29uc3QgUGFyYW1ldGVycyYpID0gMDsKKyAgICB2aXJ0dWFsIGJv
b2wgaW5pdGlhbGl6ZShjb25zdCBQYXJhbWV0ZXJzJikgPSAwOwogCiAgICAgLy8gRGVzdHJveXMg
dGhlIHBsdWctaW4uCiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSA9IDA7CkBAIC0xNzksMTEg
KzE4MiwxMyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHByaXZhdGVCcm93c2luZ1N0YXRl
Q2hhbmdlZChib29sKSA9IDA7CiAKICAgICAvLyBSZXR1cm5zIHRoZSBwbHVnLWluIGNvbnRyb2xs
ZXIgZm9yIHRoaXMgcGx1Zy1pbi4KLSAgICAvLyBGSVhNRTogV2UgY291bGQganVzdCBoYXZlIHRo
ZSBjb250cm9sbGVyIGJlIGEgbWVtYmVyIHZhcmlhYmxlIG9mIFBsdWdpbi4KLSAgICB2aXJ0dWFs
IFBsdWdpbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIoKSA9IDA7CisgICAgUGx1Z2luQ29udHJvbGxl
ciogY29udHJvbGxlcigpIHsgcmV0dXJuIG1fcGx1Z2luQ29udHJvbGxlcjsgfQogCiBwcm90ZWN0
ZWQ6CiAgICAgUGx1Z2luKCk7CisKK3ByaXZhdGU6CisgICAgUGx1Z2luQ29udHJvbGxlciogbV9w
bHVnaW5Db250cm9sbGVyOwogfTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDog
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3Bw
CShyZXZpc2lvbiA5MDMyMykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDcgKzYzLDYgQEAgUGFzc1JlZlB0
cjxQbHVnaW5Qcm94eT4gUGx1Z2luUHJveHk6OmNyZQogUGx1Z2luUHJveHk6OlBsdWdpblByb3h5
KGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0aCkKICAgICA6IG1fcGx1Z2luUGF0aChwbHVnaW5QYXRo
KQogICAgICwgbV9wbHVnaW5JbnN0YW5jZUlEKGdlbmVyYXRlUGx1Z2luSW5zdGFuY2VJRCgpKQot
ICAgICwgbV9wbHVnaW5Db250cm9sbGVyKDApCiAgICAgLCBtX3BsdWdpbkJhY2tpbmdTdG9yZUNv
bnRhaW5zVmFsaWREYXRhKGZhbHNlKQogICAgICwgbV9pc1N0YXJ0ZWQoZmFsc2UpCiAgICAgLCBt
X3dhaXRpbmdGb3JQYWludEluUmVzcG9uc2VUb1VwZGF0ZShmYWxzZSkKQEAgLTc3LDE3ICs3Niwx
MSBAQCBQbHVnaW5Qcm94eTo6flBsdWdpblByb3h5KCkKIAogdm9pZCBQbHVnaW5Qcm94eTo6cGx1
Z2luUHJvY2Vzc0NyYXNoZWQoKQogewotICAgIGlmIChtX3BsdWdpbkNvbnRyb2xsZXIpCi0gICAg
ICAgIG1fcGx1Z2luQ29udHJvbGxlci0+cGx1Z2luUHJvY2Vzc0NyYXNoZWQoKTsKKyAgICBjb250
cm9sbGVyKCktPnBsdWdpblByb2Nlc3NDcmFzaGVkKCk7CiB9CiAKLWJvb2wgUGx1Z2luUHJveHk6
OmluaXRpYWxpemUoUGx1Z2luQ29udHJvbGxlciogcGx1Z2luQ29udHJvbGxlciwgY29uc3QgUGFy
YW1ldGVycyYgcGFyYW1ldGVycykKK2Jvb2wgUGx1Z2luUHJveHk6OmluaXRpYWxpemUoY29uc3Qg
UGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKLSAgICBBU1NFUlQoIW1fcGx1Z2luQ29udHJvbGxl
cik7Ci0gICAgQVNTRVJUKHBsdWdpbkNvbnRyb2xsZXIpOwotCi0gICAgbV9wbHVnaW5Db250cm9s
bGVyID0gcGx1Z2luQ29udHJvbGxlcjsKLQogICAgIEFTU0VSVCghbV9jb25uZWN0aW9uKTsKICAg
ICBtX2Nvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaGFyZWQoKS5wbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbk1hbmFnZXIoKS5nZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbihtX3BsdWdpblBhdGgpOwog
ICAgIApAQCAtMTAzLDEwICs5NiwxMCBAQCBib29sIFBsdWdpblByb3h5Ojppbml0aWFsaXplKFBs
dWdpbkNvbnRyCiAgICAgY3JlYXRpb25QYXJhbWV0ZXJzLnBsdWdpbkluc3RhbmNlSUQgPSBtX3Bs
dWdpbkluc3RhbmNlSUQ7CiAgICAgY3JlYXRpb25QYXJhbWV0ZXJzLndpbmRvd05QT2JqZWN0SUQg
PSB3aW5kb3dOUE9iamVjdElEKCk7CiAgICAgY3JlYXRpb25QYXJhbWV0ZXJzLnBhcmFtZXRlcnMg
PSBwYXJhbWV0ZXJzOwotICAgIGNyZWF0aW9uUGFyYW1ldGVycy51c2VyQWdlbnQgPSBwbHVnaW5D
b250cm9sbGVyLT51c2VyQWdlbnQoKTsKLSAgICBjcmVhdGlvblBhcmFtZXRlcnMuaXNQcml2YXRl
QnJvd3NpbmdFbmFibGVkID0gcGx1Z2luQ29udHJvbGxlci0+aXNQcml2YXRlQnJvd3NpbmdFbmFi
bGVkKCk7CisgICAgY3JlYXRpb25QYXJhbWV0ZXJzLnVzZXJBZ2VudCA9IGNvbnRyb2xsZXIoKS0+
dXNlckFnZW50KCk7CisgICAgY3JlYXRpb25QYXJhbWV0ZXJzLmlzUHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZCA9IGNvbnRyb2xsZXIoKS0+aXNQcml2YXRlQnJvd3NpbmdFbmFibGVkKCk7CiAjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGNyZWF0aW9uUGFyYW1ldGVycy5pc0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkID0gcGx1Z2luQ29udHJvbGxlci0+aXNBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZCgpOworICAgIGNyZWF0aW9uUGFyYW1ldGVycy5pc0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmdFbmFibGVkID0gY29udHJvbGxlcigpLT5pc0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdFbmFibGVkKCk7CiAjZW5kaWYKIAogICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CkBAIC0x
MzAsNyArMTIzLDYgQEAgdm9pZCBQbHVnaW5Qcm94eTo6ZGVzdHJveSgpCiAgICAgbV9jb25uZWN0
aW9uLT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQcm9jZXNzQ29ubmVjdGlv
bjo6RGVzdHJveVBsdWdpbihtX3BsdWdpbkluc3RhbmNlSUQpLCBNZXNzYWdlczo6V2ViUHJvY2Vz
c0Nvbm5lY3Rpb246OkRlc3Ryb3lQbHVnaW46OlJlcGx5KCksIDApOwogCiAgICAgbV9pc1N0YXJ0
ZWQgPSBmYWxzZTsKLSAgICBtX3BsdWdpbkNvbnRyb2xsZXIgPSAwOwogCiAgICAgbV9jb25uZWN0
aW9uLT5yZW1vdmVQbHVnaW5Qcm94eSh0aGlzKTsKIH0KQEAgLTM4MSwzOSArMzczLDM0IEBAIHZv
aWQgUGx1Z2luUHJveHk6OnByaXZhdGVCcm93c2luZ1N0YXRlQ2gKICAgICBtX2Nvbm5lY3Rpb24t
PmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UGx1Z2luQ29udHJvbGxlclByb3h5OjpQcml2
YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoaXNQcml2YXRlQnJvd3NpbmdFbmFibGVkKSwgbV9wbHVn
aW5JbnN0YW5jZUlEKTsKIH0KIAotUGx1Z2luQ29udHJvbGxlciogUGx1Z2luUHJveHk6OmNvbnRy
b2xsZXIoKQotewotICAgIHJldHVybiBtX3BsdWdpbkNvbnRyb2xsZXI7Ci19Ci0KIHZvaWQgUGx1
Z2luUHJveHk6OmxvYWRVUkwodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTdHJpbmcmIG1ldGhv
ZCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBjb25zdCBI
VFRQSGVhZGVyTWFwJiBoZWFkZXJGaWVsZHMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaHR0cEJv
ZHksIGJvb2wgYWxsb3dQb3B1cHMpCiB7Ci0gICAgbV9wbHVnaW5Db250cm9sbGVyLT5sb2FkVVJM
KHJlcXVlc3RJRCwgbWV0aG9kLCB1cmxTdHJpbmcsIHRhcmdldCwgaGVhZGVyRmllbGRzLCBodHRw
Qm9keSwgYWxsb3dQb3B1cHMpOworICAgIGNvbnRyb2xsZXIoKS0+bG9hZFVSTChyZXF1ZXN0SUQs
IG1ldGhvZCwgdXJsU3RyaW5nLCB0YXJnZXQsIGhlYWRlckZpZWxkcywgaHR0cEJvZHksIGFsbG93
UG9wdXBzKTsKIH0KIAogdm9pZCBQbHVnaW5Qcm94eTo6cHJveGllc0ZvclVSTChjb25zdCBTdHJp
bmcmIHVybFN0cmluZywgU3RyaW5nJiBwcm94eVN0cmluZykKIHsKLSAgICBwcm94eVN0cmluZyA9
IG1fcGx1Z2luQ29udHJvbGxlci0+cHJveGllc0ZvclVSTCh1cmxTdHJpbmcpOworICAgIHByb3h5
U3RyaW5nID0gY29udHJvbGxlcigpLT5wcm94aWVzRm9yVVJMKHVybFN0cmluZyk7CiB9CiAKIHZv
aWQgUGx1Z2luUHJveHk6OmNvb2tpZXNGb3JVUkwoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIFN0
cmluZyYgY29va2llU3RyaW5nKQogewotICAgIGNvb2tpZVN0cmluZyA9IG1fcGx1Z2luQ29udHJv
bGxlci0+Y29va2llc0ZvclVSTCh1cmxTdHJpbmcpOworICAgIGNvb2tpZVN0cmluZyA9IGNvbnRy
b2xsZXIoKS0+Y29va2llc0ZvclVSTCh1cmxTdHJpbmcpOwogfQogCiB2b2lkIFBsdWdpblByb3h5
OjpzZXRDb29raWVzRm9yVVJMKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcm
IGNvb2tpZVN0cmluZykKIHsKLSAgICBtX3BsdWdpbkNvbnRyb2xsZXItPnNldENvb2tpZXNGb3JV
UkwodXJsU3RyaW5nLCBjb29raWVTdHJpbmcpOworICAgIGNvbnRyb2xsZXIoKS0+c2V0Q29va2ll
c0ZvclVSTCh1cmxTdHJpbmcsIGNvb2tpZVN0cmluZyk7CiB9CiAKIHZvaWQgUGx1Z2luUHJveHk6
OmdldEF1dGhlbnRpY2F0aW9uSW5mbyhjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25T
cGFjZSwgYm9vbCYgcmV0dXJuVmFsdWUsIFN0cmluZyYgdXNlcm5hbWUsIFN0cmluZyYgcGFzc3dv
cmQpCiB7Ci0gICAgcmV0dXJuVmFsdWUgPSBtX3BsdWdpbkNvbnRyb2xsZXItPmdldEF1dGhlbnRp
Y2F0aW9uSW5mbyhwcm90ZWN0aW9uU3BhY2UsIHVzZXJuYW1lLCBwYXNzd29yZCk7CisgICAgcmV0
dXJuVmFsdWUgPSBjb250cm9sbGVyKCktPmdldEF1dGhlbnRpY2F0aW9uSW5mbyhwcm90ZWN0aW9u
U3BhY2UsIHVzZXJuYW1lLCBwYXNzd29yZCk7CiB9CiAKIHVpbnQ2NF90IFBsdWdpblByb3h5Ojp3
aW5kb3dOUE9iamVjdElEKCkKIHsKLSAgICBOUE9iamVjdCogd2luZG93U2NyaXB0TlBPYmplY3Qg
PSBtX3BsdWdpbkNvbnRyb2xsZXItPndpbmRvd1NjcmlwdE5QT2JqZWN0KCk7CisgICAgTlBPYmpl
Y3QqIHdpbmRvd1NjcmlwdE5QT2JqZWN0ID0gY29udHJvbGxlcigpLT53aW5kb3dTY3JpcHROUE9i
amVjdCgpOwogICAgIGlmICghd2luZG93U2NyaXB0TlBPYmplY3QpCiAgICAgICAgIHJldHVybiAw
OwogCkBAIC00MjUsNyArNDEyLDcgQEAgdWludDY0X3QgUGx1Z2luUHJveHk6OndpbmRvd05QT2Jq
ZWN0SUQoKQogCiB2b2lkIFBsdWdpblByb3h5OjpnZXRQbHVnaW5FbGVtZW50TlBPYmplY3QodWlu
dDY0X3QmIHBsdWdpbkVsZW1lbnROUE9iamVjdElEKQogewotICAgIE5QT2JqZWN0KiBwbHVnaW5F
bGVtZW50TlBPYmplY3QgPSBtX3BsdWdpbkNvbnRyb2xsZXItPnBsdWdpbkVsZW1lbnROUE9iamVj
dCgpOworICAgIE5QT2JqZWN0KiBwbHVnaW5FbGVtZW50TlBPYmplY3QgPSBjb250cm9sbGVyKCkt
PnBsdWdpbkVsZW1lbnROUE9iamVjdCgpOwogICAgIGlmICghcGx1Z2luRWxlbWVudE5QT2JqZWN0
KSB7CiAgICAgICAgIHBsdWdpbkVsZW1lbnROUE9iamVjdElEID0gMDsKICAgICAgICAgcmV0dXJu
OwpAQCAtNDM3LDcgKzQyNCw3IEBAIHZvaWQgUGx1Z2luUHJveHk6OmdldFBsdWdpbkVsZW1lbnRO
UE9iamUKIAogdm9pZCBQbHVnaW5Qcm94eTo6ZXZhbHVhdGUoY29uc3QgTlBWYXJpYW50RGF0YSYg
bnBPYmplY3RBc1ZhcmlhbnREYXRhLCBjb25zdCBTdHJpbmcmIHNjcmlwdFN0cmluZywgYm9vbCBh
bGxvd1BvcHVwcywgYm9vbCYgcmV0dXJuVmFsdWUsIE5QVmFyaWFudERhdGEmIHJlc3VsdERhdGEp
CiB7Ci0gICAgUGx1Z2luQ29udHJvbGxlcjo6UGx1Z2luRGVzdHJ1Y3Rpb25Qcm90ZWN0b3IgcHJv
dGVjdG9yKG1fcGx1Z2luQ29udHJvbGxlcik7CisgICAgUGx1Z2luQ29udHJvbGxlcjo6UGx1Z2lu
RGVzdHJ1Y3Rpb25Qcm90ZWN0b3IgcHJvdGVjdG9yKGNvbnRyb2xsZXIoKSk7CiAKICAgICBOUFZh
cmlhbnQgbnBPYmplY3RBc1ZhcmlhbnQgPSBtX2Nvbm5lY3Rpb24tPm5wUmVtb3RlT2JqZWN0TWFw
KCktPm5wVmFyaWFudERhdGFUb05QVmFyaWFudChucE9iamVjdEFzVmFyaWFudERhdGEsIHRoaXMp
OwogICAgIGlmICghTlBWQVJJQU5UX0lTX09CSkVDVChucE9iamVjdEFzVmFyaWFudCkgfHwgIShO
UFZBUklBTlRfVE9fT0JKRUNUKG5wT2JqZWN0QXNWYXJpYW50KSkpIHsKQEAgLTQ0Niw3ICs0MzMs
NyBAQCB2b2lkIFBsdWdpblByb3h5OjpldmFsdWF0ZShjb25zdCBOUFZhcmlhCiAgICAgfQogICAg
ICAgICAKICAgICBOUFZhcmlhbnQgcmVzdWx0OwotICAgIHJldHVyblZhbHVlID0gbV9wbHVnaW5D
b250cm9sbGVyLT5ldmFsdWF0ZShOUFZBUklBTlRfVE9fT0JKRUNUKG5wT2JqZWN0QXNWYXJpYW50
KSwgc2NyaXB0U3RyaW5nLCAmcmVzdWx0LCBhbGxvd1BvcHVwcyk7CisgICAgcmV0dXJuVmFsdWUg
PSBjb250cm9sbGVyKCktPmV2YWx1YXRlKE5QVkFSSUFOVF9UT19PQkpFQ1QobnBPYmplY3RBc1Zh
cmlhbnQpLCBzY3JpcHRTdHJpbmcsICZyZXN1bHQsIGFsbG93UG9wdXBzKTsKICAgICBpZiAoIXJl
dHVyblZhbHVlKQogICAgICAgICByZXR1cm47CiAKQEAgLTQ2MSwyMyArNDQ4LDIzIEBAIHZvaWQg
UGx1Z2luUHJveHk6OmV2YWx1YXRlKGNvbnN0IE5QVmFyaWEKIAogdm9pZCBQbHVnaW5Qcm94eTo6
Y2FuY2VsU3RyZWFtTG9hZCh1aW50NjRfdCBzdHJlYW1JRCkKIHsKLSAgICBtX3BsdWdpbkNvbnRy
b2xsZXItPmNhbmNlbFN0cmVhbUxvYWQoc3RyZWFtSUQpOworICAgIGNvbnRyb2xsZXIoKS0+Y2Fu
Y2VsU3RyZWFtTG9hZChzdHJlYW1JRCk7CiB9CiAKIHZvaWQgUGx1Z2luUHJveHk6OmNhbmNlbE1h
bnVhbFN0cmVhbUxvYWQoKQogewotICAgIG1fcGx1Z2luQ29udHJvbGxlci0+Y2FuY2VsTWFudWFs
U3RyZWFtTG9hZCgpOworICAgIGNvbnRyb2xsZXIoKS0+Y2FuY2VsTWFudWFsU3RyZWFtTG9hZCgp
OwogfQogCiB2b2lkIFBsdWdpblByb3h5OjpzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYg
c3RhdHVzYmFyVGV4dCkKIHsKLSAgICBtX3BsdWdpbkNvbnRyb2xsZXItPnNldFN0YXR1c2JhclRl
eHQoc3RhdHVzYmFyVGV4dCk7CisgICAgY29udHJvbGxlcigpLT5zZXRTdGF0dXNiYXJUZXh0KHN0
YXR1c2JhclRleHQpOwogfQogCiAjaWYgUExBVEZPUk0oTUFDKQogdm9pZCBQbHVnaW5Qcm94eTo6
c2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQoYm9vbCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkK
IHsKLSAgICBtX3BsdWdpbkNvbnRyb2xsZXItPnNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKGNv
bXBsZXhUZXh0SW5wdXRFbmFibGVkKTsKKyAgICBjb250cm9sbGVyKCktPnNldENvbXBsZXhUZXh0
SW5wdXRFbmFibGVkKGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKTsKIH0KICNlbmRpZgogICAgIApA
QCAtNDk5LDcgKzQ4Niw3IEBAIHZvaWQgUGx1Z2luUHJveHk6OnVwZGF0ZShjb25zdCBJbnRSZWN0
JiAKIAogICAgIC8vIEFzayB0aGUgY29udHJvbGxlciB0byBpbnZhbGlkYXRlIHRoZSByZWN0IGZv
ciB1cy4KICAgICBtX3dhaXRpbmdGb3JQYWludEluUmVzcG9uc2VUb1VwZGF0ZSA9IHRydWU7Ci0g
ICAgbV9wbHVnaW5Db250cm9sbGVyLT5pbnZhbGlkYXRlKHBhaW50ZWRSZWN0UGx1Z2luQ29vcmRp
bmF0ZXMpOworICAgIGNvbnRyb2xsZXIoKS0+aW52YWxpZGF0ZShwYWludGVkUmVjdFBsdWdpbkNv
b3JkaW5hdGVzKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaAkocmV2aXNpb24gOTAz
MjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaAko
d29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMsNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IFBs
dWdpblByb3h5KGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0aCk7CiAKICAgICAvLyBQbHVnaW4KLSAg
ICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShQbHVnaW5Db250cm9sbGVyKiwgY29uc3QgUGFyYW1l
dGVycyYpOworICAgIHZpcnR1YWwgYm9vbCBpbml0aWFsaXplKGNvbnN0IFBhcmFtZXRlcnMmKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpOwogICAgIHZpcnR1YWwgdm9pZCBwYWludChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBkaXJ0eVJlY3Qp
OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTaGFyZWFibGVCaXRtYXA+IHNuYXBzaG90KCk7CkBA
IC0xMDIsOCArMTAyLDYgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBwcml2YXRlQnJv
d3NpbmdTdGF0ZUNoYW5nZWQoYm9vbCk7CiAKLSAgICB2aXJ0dWFsIFBsdWdpbkNvbnRyb2xsZXIq
IGNvbnRyb2xsZXIoKTsKLQogICAgIGJvb2wgbmVlZHNCYWNraW5nU3RvcmUoKSBjb25zdDsKICAg
ICB1aW50NjRfdCB3aW5kb3dOUE9iamVjdElEKCk7CiAKQEAgLTEyOCw4ICsxMjYsNiBAQCBwcml2
YXRlOgogICAgIFJlZlB0cjxQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwog
ICAgIHVpbnQ2NF90IG1fcGx1Z2luSW5zdGFuY2VJRDsKIAotICAgIFBsdWdpbkNvbnRyb2xsZXIq
IG1fcGx1Z2luQ29udHJvbGxlcjsKLQogICAgIC8vIFRoZSBwbHVnLWluIHJlY3QgaW4gd2luZG93
IGNvb3JkaW5hdGVzLgogICAgIFdlYkNvcmU6OkludFJlY3QgbV9mcmFtZVJlY3Q7CiAKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdp
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcAkocmV2aXNpb24gOTAzMjMpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NSw4ICs1NSw3IEBAIFBhc3NSZWZQdHI8TmV0c2NhcGVQbHVnaW4+IE5l
dHNjYXBlUGx1Z2kKIH0KICAgICAKIE5ldHNjYXBlUGx1Z2luOjpOZXRzY2FwZVBsdWdpbihQYXNz
UmVmUHRyPE5ldHNjYXBlUGx1Z2luTW9kdWxlPiBwbHVnaW5Nb2R1bGUpCi0gICAgOiBtX3BsdWdp
bkNvbnRyb2xsZXIoMCkKLSAgICAsIG1fbmV4dFJlcXVlc3RJRCgwKQorICAgIDogbV9uZXh0UmVx
dWVzdElEKDApCiAgICAgLCBtX3BsdWdpbk1vZHVsZShwbHVnaW5Nb2R1bGUpCiAgICAgLCBtX25w
V2luZG93KCkKICAgICAsIG1faXNTdGFydGVkKGZhbHNlKQpAQCAtMTIwLDcgKzExOSw3IEBAIHZv
aWQgTmV0c2NhcGVQbHVnaW46OmludmFsaWRhdGUoY29uc3QgTlAKICAgICBpZiAocGxhdGZvcm1J
bnZhbGlkYXRlKHJlY3QpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3BsdWdpbkNvbnRyb2xs
ZXItPmludmFsaWRhdGUocmVjdCk7CisgICAgY29udHJvbGxlcigpLT5pbnZhbGlkYXRlKHJlY3Qp
OwogfQogCiBjb25zdCBjaGFyKiBOZXRzY2FwZVBsdWdpbjo6dXNlckFnZW50KE5QUCBucHApCkBA
IC0xNDQsNyArMTQzLDcgQEAgY29uc3QgY2hhciogTmV0c2NhcGVQbHVnaW46OnVzZXJBZ2VudCgp
CiAjZW5kaWYKIAogICAgIGlmIChtX3VzZXJBZ2VudC5pc051bGwoKSkgewotICAgICAgICBtX3Vz
ZXJBZ2VudCA9IG1fcGx1Z2luQ29udHJvbGxlci0+dXNlckFnZW50KCkudXRmOCgpOworICAgICAg
ICBtX3VzZXJBZ2VudCA9IGNvbnRyb2xsZXIoKS0+dXNlckFnZW50KCkudXRmOCgpOwogICAgICAg
ICBBU1NFUlQoIW1fdXNlckFnZW50LmlzTnVsbCgpKTsKICAgICB9CiAgICAgcmV0dXJuIG1fdXNl
ckFnZW50LmRhdGEoKTsKQEAgLTE1NSw3ICsxNTQsNyBAQCB2b2lkIE5ldHNjYXBlUGx1Z2luOjps
b2FkVVJMKGNvbnN0IFN0cmluCiB7CiAgICAgdWludDY0X3QgcmVxdWVzdElEID0gKyttX25leHRS
ZXF1ZXN0SUQ7CiAgICAgCi0gICAgbV9wbHVnaW5Db250cm9sbGVyLT5sb2FkVVJMKHJlcXVlc3RJ
RCwgbWV0aG9kLCB1cmxTdHJpbmcsIHRhcmdldCwgaGVhZGVyRmllbGRzLCBodHRwQm9keSwgYWxs
b3dQb3B1cHMoKSk7CisgICAgY29udHJvbGxlcigpLT5sb2FkVVJMKHJlcXVlc3RJRCwgbWV0aG9k
LCB1cmxTdHJpbmcsIHRhcmdldCwgaGVhZGVyRmllbGRzLCBodHRwQm9keSwgYWxsb3dQb3B1cHMo
KSk7CiAKICAgICBpZiAodGFyZ2V0LmlzTnVsbCgpKSB7CiAgICAgICAgIC8vIFRoZSBicm93c2Vy
IGlzIGdvaW5nIHRvIHNlbmQgdGhlIGRhdGEgaW4gYSBzdHJlYW0sIGNyZWF0ZSBhIHBsdWctaW4g
c3RyZWFtLgpAQCAtMjA5LDcgKzIwOCw3IEBAIHZvaWQgTmV0c2NhcGVQbHVnaW46OnNldElzVHJh
bnNwYXJlbnQoYm8KIAogdm9pZCBOZXRzY2FwZVBsdWdpbjo6c2V0U3RhdHVzYmFyVGV4dChjb25z
dCBTdHJpbmcmIHN0YXR1c2JhclRleHQpCiB7Ci0gICAgbV9wbHVnaW5Db250cm9sbGVyLT5zZXRT
dGF0dXNiYXJUZXh0KHN0YXR1c2JhclRleHQpOworICAgIGNvbnRyb2xsZXIoKS0+c2V0U3RhdHVz
YmFyVGV4dChzdGF0dXNiYXJUZXh0KTsKIH0KIAogdm9pZCBOZXRzY2FwZVBsdWdpbjo6c2V0RXhj
ZXB0aW9uKGNvbnN0IFN0cmluZyYgZXhjZXB0aW9uU3RyaW5nKQpAQCAtMjI0LDM4ICsyMjMsMzgg
QEAgdm9pZCBOZXRzY2FwZVBsdWdpbjo6c2V0RXhjZXB0aW9uKGNvbnN0IAogCiBib29sIE5ldHNj
YXBlUGx1Z2luOjpldmFsdWF0ZShOUE9iamVjdCogbnBPYmplY3QsIGNvbnN0IFN0cmluZyYgc2Ny
aXB0U3RyaW5nLCBOUFZhcmlhbnQqIHJlc3VsdCkKIHsKLSAgICByZXR1cm4gbV9wbHVnaW5Db250
cm9sbGVyLT5ldmFsdWF0ZShucE9iamVjdCwgc2NyaXB0U3RyaW5nLCByZXN1bHQsIGFsbG93UG9w
dXBzKCkpOworICAgIHJldHVybiBjb250cm9sbGVyKCktPmV2YWx1YXRlKG5wT2JqZWN0LCBzY3Jp
cHRTdHJpbmcsIHJlc3VsdCwgYWxsb3dQb3B1cHMoKSk7CiB9CiAKIGJvb2wgTmV0c2NhcGVQbHVn
aW46OmlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIG1fcGx1Z2luQ29u
dHJvbGxlci0+aXNQcml2YXRlQnJvd3NpbmdFbmFibGVkKCk7CisgICAgcmV0dXJuIGNvbnRyb2xs
ZXIoKS0+aXNQcml2YXRlQnJvd3NpbmdFbmFibGVkKCk7CiB9CiAKIE5QT2JqZWN0KiBOZXRzY2Fw
ZVBsdWdpbjo6d2luZG93U2NyaXB0TlBPYmplY3QoKQogewotICAgIHJldHVybiBtX3BsdWdpbkNv
bnRyb2xsZXItPndpbmRvd1NjcmlwdE5QT2JqZWN0KCk7CisgICAgcmV0dXJuIGNvbnRyb2xsZXIo
KS0+d2luZG93U2NyaXB0TlBPYmplY3QoKTsKIH0KIAogTlBPYmplY3QqIE5ldHNjYXBlUGx1Z2lu
OjpwbHVnaW5FbGVtZW50TlBPYmplY3QoKQogewotICAgIHJldHVybiBtX3BsdWdpbkNvbnRyb2xs
ZXItPnBsdWdpbkVsZW1lbnROUE9iamVjdCgpOworICAgIHJldHVybiBjb250cm9sbGVyKCktPnBs
dWdpbkVsZW1lbnROUE9iamVjdCgpOwogfQogCiBib29sIE5ldHNjYXBlUGx1Z2luOjp0cnlUb1No
b3J0Q2lyY3VpdEludm9rZShOUE9iamVjdCogbnBPYmplY3QsIE5QSWRlbnRpZmllciBtZXRob2RO
YW1lLCBjb25zdCBOUFZhcmlhbnQqIGFyZ3VtZW50cywgdWludDMyX3QgYXJndW1lbnRDb3VudCwg
Ym9vbCYgcmV0dXJuVmFsdWUsIE5QVmFyaWFudCYgcmVzdWx0KQogewotICAgIHJldHVybiBtX3Bs
dWdpbkNvbnRyb2xsZXItPnRyeVRvU2hvcnRDaXJjdWl0SW52b2tlKG5wT2JqZWN0LCBtZXRob2RO
YW1lLCBhcmd1bWVudHMsIGFyZ3VtZW50Q291bnQsIHJldHVyblZhbHVlLCByZXN1bHQpOworICAg
IHJldHVybiBjb250cm9sbGVyKCktPnRyeVRvU2hvcnRDaXJjdWl0SW52b2tlKG5wT2JqZWN0LCBt
ZXRob2ROYW1lLCBhcmd1bWVudHMsIGFyZ3VtZW50Q291bnQsIHJldHVyblZhbHVlLCByZXN1bHQp
OwogfQogCiB2b2lkIE5ldHNjYXBlUGx1Z2luOjpjYW5jZWxTdHJlYW1Mb2FkKE5ldHNjYXBlUGx1
Z2luU3RyZWFtKiBwbHVnaW5TdHJlYW0pCiB7CiAgICAgaWYgKHBsdWdpblN0cmVhbSA9PSBtX21h
bnVhbFN0cmVhbSkgewotICAgICAgICBtX3BsdWdpbkNvbnRyb2xsZXItPmNhbmNlbE1hbnVhbFN0
cmVhbUxvYWQoKTsKKyAgICAgICAgY29udHJvbGxlcigpLT5jYW5jZWxNYW51YWxTdHJlYW1Mb2Fk
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICAvLyBBc2sgdGhlIHBsdWctaW4gY29u
dHJvbGxlciB0byBjYW5jZWwgdGhpcyBzdHJlYW0gbG9hZC4KLSAgICBtX3BsdWdpbkNvbnRyb2xs
ZXItPmNhbmNlbFN0cmVhbUxvYWQocGx1Z2luU3RyZWFtLT5zdHJlYW1JRCgpKTsKKyAgICBjb250
cm9sbGVyKCktPmNhbmNlbFN0cmVhbUxvYWQocGx1Z2luU3RyZWFtLT5zdHJlYW1JRCgpKTsKIH0K
IAogdm9pZCBOZXRzY2FwZVBsdWdpbjo6cmVtb3ZlUGx1Z2luU3RyZWFtKE5ldHNjYXBlUGx1Z2lu
U3RyZWFtKiBwbHVnaW5TdHJlYW0pCkBAIC0yNzIsNyArMjcxLDcgQEAgdm9pZCBOZXRzY2FwZVBs
dWdpbjo6cmVtb3ZlUGx1Z2luU3RyZWFtKAogYm9vbCBOZXRzY2FwZVBsdWdpbjo6aXNBY2NlbGVy
YXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpCiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQotICAgIHJldHVybiBtX3BsdWdpbkNvbnRyb2xsZXItPmlzQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0VuYWJsZWQoKTsKKyAgICByZXR1cm4gY29udHJvbGxlcigpLT5pc0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdFbmFibGVkKCk7CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpAQCAt
MjkyLDIyICsyOTEsMjIgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbjo6cG9wUG9wdXBzRW5hYmxlZFN0
YQogCiBTdHJpbmcgTmV0c2NhcGVQbHVnaW46OnByb3hpZXNGb3JVUkwoY29uc3QgU3RyaW5nJiB1
cmxTdHJpbmcpCiB7Ci0gICAgcmV0dXJuIG1fcGx1Z2luQ29udHJvbGxlci0+cHJveGllc0ZvclVS
TCh1cmxTdHJpbmcpOworICAgIHJldHVybiBjb250cm9sbGVyKCktPnByb3hpZXNGb3JVUkwodXJs
U3RyaW5nKTsKIH0KICAgICAKIFN0cmluZyBOZXRzY2FwZVBsdWdpbjo6Y29va2llc0ZvclVSTChj
b25zdCBTdHJpbmcmIHVybFN0cmluZykKIHsKLSAgICByZXR1cm4gbV9wbHVnaW5Db250cm9sbGVy
LT5jb29raWVzRm9yVVJMKHVybFN0cmluZyk7CisgICAgcmV0dXJuIGNvbnRyb2xsZXIoKS0+Y29v
a2llc0ZvclVSTCh1cmxTdHJpbmcpOwogfQogCiB2b2lkIE5ldHNjYXBlUGx1Z2luOjpzZXRDb29r
aWVzRm9yVVJMKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0
cmluZykKIHsKLSAgICBtX3BsdWdpbkNvbnRyb2xsZXItPnNldENvb2tpZXNGb3JVUkwodXJsU3Ry
aW5nLCBjb29raWVTdHJpbmcpOworICAgIGNvbnRyb2xsZXIoKS0+c2V0Q29va2llc0ZvclVSTCh1
cmxTdHJpbmcsIGNvb2tpZVN0cmluZyk7CiB9CiAKIGJvb2wgTmV0c2NhcGVQbHVnaW46OmdldEF1
dGhlbnRpY2F0aW9uSW5mbyhjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSwg
U3RyaW5nJiB1c2VybmFtZSwgU3RyaW5nJiBwYXNzd29yZCkKIHsKLSAgICByZXR1cm4gbV9wbHVn
aW5Db250cm9sbGVyLT5nZXRBdXRoZW50aWNhdGlvbkluZm8ocHJvdGVjdGlvblNwYWNlLCB1c2Vy
bmFtZSwgcGFzc3dvcmQpOworICAgIHJldHVybiBjb250cm9sbGVyKCktPmdldEF1dGhlbnRpY2F0
aW9uSW5mbyhwcm90ZWN0aW9uU3BhY2UsIHVzZXJuYW1lLCBwYXNzd29yZCk7CiB9CiAKIE5QRXJy
b3IgTmV0c2NhcGVQbHVnaW46Ok5QUF9OZXcoTlBNSU1FVHlwZSBwbHVnaW5UeXBlLCB1aW50MTZf
dCBtb2RlLCBpbnQxNl90IGFyZ2MsIGNoYXIqIGFyZ25bXSwgY2hhciogYXJndltdLCBOUFNhdmVk
RGF0YSogc2F2ZWREYXRhKQpAQCAtNDM0LDEzICs0MzMsOCBAQCBib29sIE5ldHNjYXBlUGx1Z2lu
OjphbGxvd1BvcHVwcygpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIE5ldHNj
YXBlUGx1Z2luOjppbml0aWFsaXplKFBsdWdpbkNvbnRyb2xsZXIqIHBsdWdpbkNvbnRyb2xsZXIs
IGNvbnN0IFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCitib29sIE5ldHNjYXBlUGx1Z2luOjppbml0
aWFsaXplKGNvbnN0IFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0gICAgQVNTRVJUKCFtX3Bs
dWdpbkNvbnRyb2xsZXIpOwotICAgIEFTU0VSVChwbHVnaW5Db250cm9sbGVyKTsKLQotICAgIG1f
cGx1Z2luQ29udHJvbGxlciA9IHBsdWdpbkNvbnRyb2xsZXI7Ci0gICAgCiAgICAgdWludDE2X3Qg
bW9kZSA9IHBhcmFtZXRlcnMubG9hZE1hbnVhbGx5ID8gTlBfRlVMTCA6IE5QX0VNQkVEOwogICAg
IAogICAgIG1fbG9hZE1hbnVhbGx5ID0gcGFyYW1ldGVycy5sb2FkTWFudWFsbHk7CkBAIC01MjEs
NyArNTE1LDYgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbjo6ZGVzdHJveSgpCiAgICAgTlBQX0Rlc3Ry
b3koMCk7CiAKICAgICBtX2lzU3RhcnRlZCA9IGZhbHNlOwotICAgIG1fcGx1Z2luQ29udHJvbGxl
ciA9IDA7CiAKICAgICBwbGF0Zm9ybURlc3Ryb3koKTsKIH0KQEAgLTc2OCw5ICs3NjEsNCBAQCBi
b29sIE5ldHNjYXBlUGx1Z2luOjpzdXBwb3J0c1NuYXBzaG90dGluCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCi1QbHVnaW5Db250cm9sbGVyKiBOZXRzY2FwZVBsdWdpbjo6Y29udHJvbGxlcigpCi17
Ci0gICAgcmV0dXJuIG1fcGx1Z2luQ29udHJvbGxlcjsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0
c2NhcGVQbHVnaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaAkocmV2aXNpb24gOTAzMjMpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaAko
d29ya2luZyBjb3B5KQpAQCAtMTQ2LDcgKzE0Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0
Zm9ybVNldEZvY3VzKGJvb2wpOwogCiAgICAgLy8gUGx1Z2luCi0gICAgdmlydHVhbCBib29sIGlu
aXRpYWxpemUoUGx1Z2luQ29udHJvbGxlciosIGNvbnN0IFBhcmFtZXRlcnMmKTsKKyAgICB2aXJ0
dWFsIGJvb2wgaW5pdGlhbGl6ZShjb25zdCBQYXJhbWV0ZXJzJik7CiAgICAgdmlydHVhbCB2b2lk
IGRlc3Ryb3koKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0KiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZGlydHlSZWN0KTsKICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBzbmFwc2hvdCgpOwpAQCAtMTkxLDE0ICsxOTEsMTEg
QEAgcHJpdmF0ZToKIAogICAgIGJvb2wgc3VwcG9ydHNTbmFwc2hvdHRpbmcoKSBjb25zdDsKIAot
ICAgIHZpcnR1YWwgUGx1Z2luQ29udHJvbGxlciogY29udHJvbGxlcigpOwotCiAjaWYgUExVR0lO
X0FSQ0hJVEVDVFVSRShXSU4pCiAgICAgc3RhdGljIEJPT0wgV0lOQVBJIGhvb2tlZFRyYWNrUG9w
dXBNZW51KEhNRU5VLCBVSU5UIHVGbGFncywgaW50IHgsIGludCB5LCBpbnQgblJlc2VydmVkLCBI
V05ELCBjb25zdCBSRUNUKik7CiAgICAgdm9pZCBzY2hlZHVsZVdpbmRvd2VkR2VvbWV0cnlVcGRh
dGUoKTsKICNlbmRpZgogCi0gICAgUGx1Z2luQ29udHJvbGxlciogbV9wbHVnaW5Db250cm9sbGVy
OwogICAgIHVpbnQ2NF90IG1fbmV4dFJlcXVlc3RJRDsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDx1
aW50NjRfdCwgc3RkOjpwYWlyPFN0cmluZywgdm9pZCo+ID4gUGVuZGluZ1VSTE5vdGlmeU1hcDsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0
c2NhcGVQbHVnaW5NYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQkocmV2aXNpb24gOTAz
MjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05l
dHNjYXBlUGx1Z2luTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNzYsNyArMTc2LDcgQEAgTlBF
cnJvciBOZXRzY2FwZVBsdWdpbjo6cG9wVXBDb250ZXh0TWVudQogCiBtYWNoX3BvcnRfdCBOZXRz
Y2FwZVBsdWdpbjo6Y29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCkKIHsKLSAgICByZXR1cm4g
bV9wbHVnaW5Db250cm9sbGVyLT5jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKTsKKyAgICBy
ZXR1cm4gY29udHJvbGxlcigpLT5jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKTsKIH0KIAog
I2lmbmRlZiBOUF9OT19DQVJCT04KQEAgLTc4Nyw3ICs3ODcsNyBAQCBib29sIE5ldHNjYXBlUGx1
Z2luOjpwbGF0Zm9ybUhhbmRsZUtleWJvCiB2b2lkIE5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybVNl
dEZvY3VzKGJvb2wgaGFzRm9jdXMpCiB7CiAgICAgbV9wbHVnaW5IYXNGb2N1cyA9IGhhc0ZvY3Vz
OwotICAgIG1fcGx1Z2luQ29udHJvbGxlci0+c2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQobV9w
bHVnaW5IYXNGb2N1cyAmJiBtX3dpbmRvd0hhc0ZvY3VzKTsKKyAgICBjb250cm9sbGVyKCktPnNl
dENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKG1fcGx1Z2luSGFzRm9jdXMgJiYgbV93aW5kb3dIYXNG
b2N1cyk7CiAKICAgICBzd2l0Y2ggKG1fZXZlbnRNb2RlbCkgewogICAgICAgICBjYXNlIE5QRXZl
bnRNb2RlbENvY29hOiB7CkBAIC04MTUsNyArODE1LDcgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbjo6
cGxhdGZvcm1TZXRGb2N1cyhibwogdm9pZCBOZXRzY2FwZVBsdWdpbjo6d2luZG93Rm9jdXNDaGFu
Z2VkKGJvb2wgaGFzRm9jdXMpCiB7CiAgICAgbV93aW5kb3dIYXNGb2N1cyA9IGhhc0ZvY3VzOwot
ICAgIG1fcGx1Z2luQ29udHJvbGxlci0+c2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQobV9wbHVn
aW5IYXNGb2N1cyAmJiBtX3dpbmRvd0hhc0ZvY3VzKTsKKyAgICBjb250cm9sbGVyKCktPnNldENv
bXBsZXhUZXh0SW5wdXRFbmFibGVkKG1fcGx1Z2luSGFzRm9jdXMgJiYgbV93aW5kb3dIYXNGb2N1
cyk7CiAKICAgICBzd2l0Y2ggKG1fZXZlbnRNb2RlbCkgewogICAgICAgICBjYXNlIE5QRXZlbnRN
b2RlbENvY29hOiB7Cg==
</data>
<flag name="review"
          id="94080"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>