<?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>125941</bug_id>
          
          <creation_ts>2013-12-18 12:51:35 -0800</creation_ts>
          <short_desc>Add Obj C API for injected bundle PageGroup class.</short_desc>
          <delta_ts>2013-12-18 15:47:04 -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>WebKit2</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="Yongjun Zhang">yongjun_zhang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>961070</commentid>
    <comment_count>0</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2013-12-18 12:51:35 -0800</bug_when>
    <thetext>Need an Obj C API for injected bundle PageGroup class, and a method to expose the page group object from WKWebProcessPlugInBrowsingContextController.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961072</commentid>
    <comment_count>1</comment_count>
      <attachid>219562</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2013-12-18 12:57:18 -0800</bug_when>
    <thetext>Created attachment 219562
Add Obj C API (WKWebProcessPlugInPageGroup) for injected bundle PageGroup class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961079</commentid>
    <comment_count>2</comment_count>
      <attachid>219562</attachid>
    <who name="">mitz</who>
    <bug_when>2013-12-18 13:21:45 -0800</bug_when>
    <thetext>Comment on attachment 219562
Add Obj C API (WKWebProcessPlugInPageGroup) for injected bundle PageGroup class.

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

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInPageGroup.mm:46
&gt; +    WKStringRef string = toCopiedAPI(_bundlePageGroup-&gt;identifier());
&gt; +    return [wrapper(*toImpl(string)) autorelease];

You should be able to just return _bundlePageGroup-&gt;identifier(), since WTF::String converts to an NSString *.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961096</commentid>
    <comment_count>3</comment_count>
      <attachid>219566</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2013-12-18 14:08:47 -0800</bug_when>
    <thetext>Created attachment 219566
Use _bundlePageGroup-&gt;identifier() directly, instead of going through WFStringRef wrapper.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961120</commentid>
    <comment_count>4</comment_count>
      <attachid>219566</attachid>
    <who name="">mitz</who>
    <bug_when>2013-12-18 14:49:02 -0800</bug_when>
    <thetext>Comment on attachment 219566
Use _bundlePageGroup-&gt;identifier() directly, instead of going through WFStringRef wrapper.

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

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInPageGroup.h:35
&gt; +- (NSString *)identifier;

This is probably better expressed as @property (readonly) NSString *identifier;

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInPageGroup.mm:34
&gt; +#import &quot;WKAPICast.h&quot;
&gt; +#import &quot;WKNSString.h&quot;
&gt; +#import &quot;WKRetainPtr.h&quot;

Probably don’t need these anymore.

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.h:47
&gt; +@property(readonly) WKWebProcessPlugInFrame *mainFrame;
&gt; +
&gt; +@property(readonly) WKWebProcessPlugInPageGroup *pageGroup;

There needs to be a space before the (, even though some existing code is wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961135</commentid>
    <comment_count>5</comment_count>
      <attachid>219576</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2013-12-18 15:11:37 -0800</bug_when>
    <thetext>Created attachment 219576
Fix style issue and address review comments before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961145</commentid>
    <comment_count>6</comment_count>
      <attachid>219576</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-18 15:47:02 -0800</bug_when>
    <thetext>Comment on attachment 219576
Fix style issue and address review comments before landing.

Clearing flags on attachment: 219576

Committed r160803: &lt;http://trac.webkit.org/changeset/160803&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961146</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-18 15:47:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219562</attachid>
            <date>2013-12-18 12:57:18 -0800</date>
            <delta_ts>2013-12-18 14:08:47 -0800</delta_ts>
            <desc>Add Obj C API (WKWebProcessPlugInPageGroup) for injected bundle PageGroup class.</desc>
            <filename>webkit2_pagegroup_api.patch</filename>
            <type>text/plain</type>
            <size>17553</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MDc5MCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDEzLTEyLTE4ICBZb25nanVu
IFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTk0MQorICAgICAgICBBZGQgT2JqIEMgQVBJ
IGZvciBpbmplY3RlZCBidW5kbGUgUGFnZUdyb3VwIGNsYXNzLgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBPYmogQyBBUEkgKFdLV2ViUHJvY2Vz
c1BsdWdJblBhZ2VHcm91cCkgZm9yIGluamVjdGVkIGJ1bmRsZSBQYWdlR3JvdXAgY2xhc3MuIEFu
ZCBhZGQgQVBJcyB0bworICAgICAgICBleHBvc2UgdGhlIG1haW4gZnJhbWUgYW5kIHBhZ2UgZ3Jv
dXAgZnJvbSBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2luZ0NvbnRleHRDb250cm9sbGVyLgorCisg
ICAgICAgICogU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbToKKyAgICAgICAgKEFQSTo6T2JqZWN0
OjpuZXdPYmplY3QpOiBDcmVhdGUgd3JhcHBlciBvYmplY3QgZm9yIEluamVjdGVkUGFnZUdyb3Vw
IG9iamVjdC4KKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNz
UGx1Z0luUGFnZUdyb3VwLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5tbTogQWRkZWQuCisg
ICAgICAgICgtW1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cCBpZGVudGlmaWVyXSk6CisgICAg
ICAgICgtW1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cCBkZWFsbG9jXSk6CisgICAgICAgICgt
W1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cCBBUEk6Ol0pOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cElu
dGVybmFsLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0Ojp3cmFwcGVyKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3Nl
ckNvbnRleHRDb250cm9sbGVyLmg6IEFkZCBBUEkgdG8gZXhwb3NlIHRoZSBtYWluIGZyYW1lIGFu
ZCBwYWdlIGdyb3VwCisgICAgICAgICAgICBmb3IgV0tXZWJQb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXIuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
bWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbToKKyAgICAg
ICAgKC1bV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyIG1haW5GcmFt
ZV0pOgorICAgICAgICAoLVtXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xs
ZXIgcGFnZUdyb3VwXSk6CisKIDIwMTMtMTItMTggIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFj
bG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBwYWdlIHZpc2liaWxpdHkgYXBpIHRlc3Qs
IGluaXRpYWxpemF0aW9uIGluIFdlYktpdDIKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b2NvYS9BUElPYmplY3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
Y29hL0FQSU9iamVjdC5tbQkocmV2aXNpb24gMTYwNzg0KQorKysgU291cmNlL1dlYktpdDIvU2hh
cmVkL0NvY29hL0FQSU9iamVjdC5tbQkod29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgsNyBAQAog
I2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdEludGVybmFsLmgiCiAjaW1w
b3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5JbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJQcm9jZXNz
UGx1Z0luTm9kZUhhbmRsZUludGVybmFsLmgiCisjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5Q
YWdlR3JvdXBJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29y
bGRJbnRlcm5hbC5oIgogCiBuYW1lc3BhY2UgQVBJIHsKQEAgLTE1MSw2ICsxNTIsMTAgQEAgdm9p
ZCogT2JqZWN0OjpuZXdPYmplY3Qoc2l6ZV90IHNpemUsIFR5cAogICAgICAgICB3cmFwcGVyID0g
W1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgYWxsb2NdOwogICAgICAgICBicmVhazsKIAor
ICAgIGNhc2UgVHlwZTo6QnVuZGxlUGFnZUdyb3VwOgorICAgICAgICB3cmFwcGVyID0gW1dLV2Vi
UHJvY2Vzc1BsdWdJblBhZ2VHcm91cCBhbGxvY107CisgICAgICAgIGJyZWFrOworCiAgICAgY2Fz
ZSBUeXBlOjpCdW5kbGVTY3JpcHRXb3JsZDoKICAgICAgICAgd3JhcHBlciA9IFtXS1dlYlByb2Nl
c3NQbHVnSW5TY3JpcHRXb3JsZCBhbGxvY107CiAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNp
b24gMTYwNzg0KQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zNDYsNiArMzQ2LDkgQEAKIAkJMUY3NTA2QjYxODU5
MTY1NzAwRUMwRkY3IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGVJbnRlcm5hbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUYwMTgxNzExODU4
REMxNjAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGVJbnRlcm5hbC5oICov
OyB9OwogCQkxRjc1MDZCNzE4NTkxNjVBMDBFQzBGRjcgLyogV0tXZWJQcm9jZXNzUGx1Z0luSGl0
VGVzdFJlc3VsdEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxRjAxODE2RTE4NThEQzE2MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0lu
SGl0VGVzdFJlc3VsdEludGVybmFsLmggKi87IH07CiAJCTFGNzUwNkI4MTg1OTE2NUQwMEVDMEZG
NyAvKiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjAxODE2QjE4NThEQzE1MDBGOTI4ODQgLyog
V0tXZWJQcm9jZXNzUGx1Z0luRnJhbWVJbnRlcm5hbC5oICovOyB9OworCQkxRkIwMEFDNzE4NUY3
NjQ2MDAxOTE0MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRkIwMEFDNDE4NUY3NjQ2MDAxOTE0
MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHVibGljLCApOyB9OyB9OworCQkxRkIwMEFDODE4NUY3NjQ2MDAxOTE0MkUgLyog
V0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUZCMDBBQzUxODVGNzY0NjAwMTkxNDJFIC8qIFdLV2ViUHJv
Y2Vzc1BsdWdJblBhZ2VHcm91cC5tbSAqLzsgfTsKKwkJMUZCMDBBQzkxODVGNzY0NjAwMTkxNDJF
IC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRkIwMEFDNjE4NUY3NjQ2MDAxOTE0MkUg
LyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwSW50ZXJuYWwuaCAqLzsgfTsKIAkJMVFRNDE3
Q0IxMkMwMENDQTAwMkJFNjdCIC8qIFRleHRDaGVja2VyQ29tcGxldGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNDE3QzkxMkMwMENDQTAwMkJF
NjdCIC8qIFRleHRDaGVja2VyQ29tcGxldGlvbi5oICovOyB9OwogCQkxWlo0MTdFRjEyQzAwRDg3
MDAyQkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFCQjQxN0M5MTJDMDBDQ0EwMDJCRTY3QiAvKiBU
ZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwICovOyB9OwogCQkyOTBGNDI3MjE3MkEwQzc0MDA5MzlG
RjAgLyogQ2hpbGRQcm9jZXNzU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMjkwRjQyNzExNzJBMEM3NDAwOTM5RkYwIC8qIENoaWxkUHJv
Y2Vzc1N1cHBsZW1lbnQuaCAqLzsgfTsKQEAgLTE5MDksNiArMTkxMiw5IEBACiAJCTFGMDE4MTcz
MTg1OERDMTYwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJblNj
cmlwdFdvcmxkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRjAxODE3NDE4NThE
QzE2MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGRJbnRlcm5hbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRX
b3JsZEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGMzM1QkJGMTg1
Qjg0RDgwMDFBMjAxQSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFGQjAwQUM0MTg1Rjc2NDYwMDE5MTQy
RSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFGQjAwQUM1MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQ
bHVnSW5QYWdlR3JvdXAubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFGQjAwQUM2MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdl
R3JvdXBJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlBy
b2Nlc3NQbHVnSW5QYWdlR3JvdXBJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyNjY1OUFBMDE4NUZBQUVEMDA0MzAzREQgLyogSW5mby1pT1MucGxpc3QgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsg
cGF0aCA9ICJJbmZvLWlPUy5wbGlzdCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5
MEY0MjcxMTcyQTBDNzQwMDkzOUZGMCAvKiBDaGlsZFByb2Nlc3NTdXBwbGVtZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoaWxkUHJvY2Vzc1N1cHBsZW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkzRUJFQTkxNjI3RDlDOTAwNUY4OUYxIC8qIFdL
RE9NVGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0RPTVRleHQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM3NjMsNiArMzc2OSw5IEBACiAJCQkJMUYw
MTgxNkYxODU4REMxNjAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUuaCAq
LywKIAkJCQkxRjAxODE3MDE4NThEQzE2MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luTm9k
ZUhhbmRsZS5tbSAqLywKIAkJCQkxRjAxODE3MTE4NThEQzE2MDBGOTI4ODQgLyogV0tXZWJQcm9j
ZXNzUGx1Z0luTm9kZUhhbmRsZUludGVybmFsLmggKi8sCisJCQkJMUZCMDBBQzQxODVGNzY0NjAw
MTkxNDJFIC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5oICovLAorCQkJCTFGQjAwQUM1
MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAubW0gKi8sCisJ
CQkJMUZCMDBBQzYxODVGNzY0NjAwMTkxNDJFIC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91
cEludGVybmFsLmggKi8sCiAJCQkJMUYwMTgxNzIxODU4REMxNjAwRjkyODg0IC8qIFdLV2ViUHJv
Y2Vzc1BsdWdJblNjcmlwdFdvcmxkLmggKi8sCiAJCQkJMUYwMTgxNzMxODU4REMxNjAwRjkyODg0
IC8qIFdLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkLm1tICovLAogCQkJCTFGMDE4MTc0MTg1
OERDMTYwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZEludGVybmFsLmgg
Ki8sCkBAIC01OTM2LDYgKzU5NDUsNyBAQAogCQkJCTUxMUY4QTdCMTM4QjQ2MDkwMEE5NUY0NCAv
KiBTZWNJdGVtU2hpbUxpYnJhcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1N0FGOTc4MTg0RDEz
MTQwMEU2MzE2RSAvKiBJdGVyYXRvclBhaXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxNzkwODkx
MTY5QkFBODIwMDY5MDRDNyAvKiBTZWNJdGVtU2hpbU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywK
KwkJCQkxRkIwMEFDNzE4NUY3NjQ2MDAxOTE0MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdy
b3VwLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMThFNjkwQzE2OUI1NjNGMDA5QjY2NzAgLyogU2Vj
SXRlbVNoaW1Qcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE4RTY5MTgxNjlCNjY3QjAwOUI2
NjcwIC8qIFNlY0l0ZW1TaGltUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzMx
NTI5NzYxMzBEMENCMjAwRUQyNDgzIC8qIFNlY3VyaXR5T3JpZ2luRGF0YS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC02MTM3LDYgKzYxNDcsNyBAQAogCQkJCTUxMEFGRkJBMTY1NDIwNDgwMDFCQTA1RSAv
KiBXZWJSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGMDYwRTAxNjU0MzE3
RjAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUQzQjk0ODQ5MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTFGQjAwQUM5MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQ
bHVnSW5QYWdlR3JvdXBJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjYzNDQ0NTYxMkE4
ODVDODAwMDYxMkQ4IC8qIFdlYlNlY3VyaXR5T3JpZ2luLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
N0QwQjVDNjE4NDUyMTg0MDBGNkNFN0QgLyogV0tFcnJvclJlY292ZXJ5QXR0ZW1wdGluZy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNDNTcxNUIxMTVBREFFRjAwMUNDQUY5IC8qIFdlYlN5c3RlbUlu
dGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCkBAIC03NDAzLDYgKzc0MTQsNyBAQAogCQkJCUNENzNC
QTUzMTMxQjY0NUIwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3NTU0MjJCRDE4MDYyQkIyMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDczQkE0RTEzMUFDREI3MDBFRURFRDIgLyogV2Vi
RnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
MUZCMDBBQzgxODVGNzY0NjAwMTkxNDJFIC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUNENkY3NUY0MTMxQjY2RDAwMEQ2QjIxRSAvKiBXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENzNCQTQ3MTMxQUND
OUEwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUJDMUJFMUUxMTJENTRBNDEwMDA0QTIyOCAvKiBXZWJHZW9s
b2NhdGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VH
cm91cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5oCShyZXZpc2lvbiAw
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2Ev
V0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwz
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdDIvV0tGb3VuZGF0aW9uLmg+CisKKyNp
ZiBXS19BUElfRU5BQkxFRAorCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKwor
V0tfQVBJX0NMQVNTCitAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cCA6IE5T
T2JqZWN0CisKKy0gKE5TU3RyaW5nICopaWRlbnRpZmllcjsKKworQGVuZAorCisjZW5kaWYgLy8g
V0tfQVBJX0VOQUJMRUQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9X
S1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAubW0JKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVn
SW5QYWdlR3JvdXAubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdy
b3VwSW50ZXJuYWwuaCIKKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQgIldLQnVuZGxl
UGFnZUdyb3VwLmgiCisjaW1wb3J0ICJXS0FQSUNhc3QuaCIKKyNpbXBvcnQgIldLTlNTdHJpbmcu
aCIKKyNpbXBvcnQgIldLUmV0YWluUHRyLmgiCisjaW1wb3J0ICJXZWJQYWdlR3JvdXBQcm94eS5o
IgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitAaW1wbGVtZW50YXRpb24gV0tXZWJQcm9j
ZXNzUGx1Z0luUGFnZUdyb3VwIHsKKyAgICBBUEk6Ok9iamVjdFN0b3JhZ2U8V2ViUGFnZUdyb3Vw
UHJveHk+IF9idW5kbGVQYWdlR3JvdXA7Cit9CisKKy0gKE5TU3RyaW5nICopaWRlbnRpZmllcgor
eworICAgIFdLU3RyaW5nUmVmIHN0cmluZyA9IHRvQ29waWVkQVBJKF9idW5kbGVQYWdlR3JvdXAt
PmlkZW50aWZpZXIoKSk7CisgICAgcmV0dXJuIFt3cmFwcGVyKCp0b0ltcGwoc3RyaW5nKSkgYXV0
b3JlbGVhc2VdOworfQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBfYnVuZGxlUGFnZUdyb3Vw
LT5+V2ViUGFnZUdyb3VwUHJveHkoKTsKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKyNwcmFn
bWEgbWFyayBXS09iamVjdCBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbgorCistIChBUEk6Ok9iamVj
dCYpX2FwaU9iamVjdAoreworICAgIHJldHVybiAqX2J1bmRsZVBhZ2VHcm91cDsKK30KKworQGVu
ZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91
cEludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwSW50ZXJuYWwu
aAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cEludGVybmFsLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIldLV2ViUHJv
Y2Vzc1BsdWdJblBhZ2VHcm91cC5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9ydCAi
V0tCYXNlLmgiCisjaW1wb3J0ICJXZWJQYWdlR3JvdXBQcm94eS5oIgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworaW5saW5lIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cCAqd3JhcHBlcihXZWJQ
YWdlR3JvdXBQcm94eSYgcGFnZUdyb3VwKQoreworICAgIEFTU0VSVChbcGFnZUdyb3VwLndyYXBw
ZXIoKSBpc0tpbmRPZkNsYXNzOltXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAgY2xhc3NdXSk7
CisgICAgcmV0dXJuIChXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAgKilwYWdlR3JvdXAud3Jh
cHBlcigpOworfQorICAgIAorfQorCitAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VH
cm91cCAoKSA8V0tPYmplY3Q+CitAZW5kCisKKyNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2Vi
UHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nl
c3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIuaAkocmV2aXNpb24gMTYwNzg0KQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJv
Y2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MSw2ICszMSw4IEBACiAKIEBjbGFzcyBXS0RPTURvY3VtZW50OwogQGNsYXNzIFdLRE9NUmFuZ2U7
CitAY2xhc3MgV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWU7CitAY2xhc3MgV0tXZWJQcm9jZXNzUGx1
Z0luUGFnZUdyb3VwOwogQHByb3RvY29sIFdLV2ViUHJvY2Vzc1BsdWdJbkxvYWREZWxlZ2F0ZTsK
IAogV0tfQVBJX0NMQVNTCkBAIC00MCw2ICs0MiwxMCBAQCBAaW50ZXJmYWNlIFdLV2ViUHJvY2Vz
c1BsdWdJbkJyb3dzZXJDb250CiAKIEBwcm9wZXJ0eShyZWFkb25seSkgV0tET01SYW5nZSAqc2Vs
ZWN0ZWRSYW5nZTsKIAorQHByb3BlcnR5KHJlYWRvbmx5KSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFt
ZSAqbWFpbkZyYW1lOworCitAcHJvcGVydHkocmVhZG9ubHkpIFdLV2ViUHJvY2Vzc1BsdWdJblBh
Z2VHcm91cCAqcGFnZUdyb3VwOworCiBAcHJvcGVydHkgKHdlYWspIGlkIDxXS1dlYlByb2Nlc3NQ
bHVnSW5Mb2FkRGVsZWdhdGU+IGxvYWREZWxlZ2F0ZTsKIAogQGVuZApJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJ
bkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJv
d3NlckNvbnRleHRDb250cm9sbGVyLm1tCShyZXZpc2lvbiAxNjA3ODQpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0lu
QnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3
IEBACiAjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnaW5GcmFtZUludGVybmFsLmgiCiAjaW1wb3J0
ICJXS1dlYlByb2Nlc3NQbHVnSW5JbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1
Z0luTG9hZERlbGVnYXRlLmgiCisjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXBJ
bnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGRJbnRlcm5h
bC5oIgogI2ltcG9ydCAiV2Vha09iakNQdHIuaCIKICNpbXBvcnQgIldlYlBhZ2UuaCIKQEAgLTEz
Myw2ICsxMzQsMjAgQEAgLSAoV0tET01SYW5nZSAqKXNlbGVjdGVkUmFuZ2UKICAgICByZXR1cm4g
dG9XS0RPTVJhbmdlKHJhbmdlLmdldCgpKTsKIH0KIAorLSAoV0tXZWJQcm9jZXNzUGx1Z0luRnJh
bWUgKiltYWluRnJhbWUKK3sKKyAgICBXZWJGcmFtZSAqd2ViS2l0TWFpbkZyYW1lID0gX3BhZ2Ut
Pm1haW5XZWJGcmFtZSgpOworICAgIGlmICghd2ViS2l0TWFpbkZyYW1lKQorICAgICAgICByZXR1
cm4gbmlsOworCisgICAgcmV0dXJuIHdyYXBwZXIoKndlYktpdE1haW5GcmFtZSk7Cit9CisKKy0g
KFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cCAqKXBhZ2VHcm91cAoreworICAgIHJldHVybiB3
cmFwcGVyKCpfcGFnZS0+cGFnZUdyb3VwKCkpOworfQorCiAjcHJhZ21hIG1hcmsgV0tPYmplY3Qg
cHJvdG9jb2wgaW1wbGVtZW50YXRpb24KIAogLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219566</attachid>
            <date>2013-12-18 14:08:47 -0800</date>
            <delta_ts>2013-12-18 15:11:37 -0800</delta_ts>
            <desc>Use _bundlePageGroup-&gt;identifier() directly, instead of going through WFStringRef wrapper.</desc>
            <filename>webkit2_pagegroup_api.patch</filename>
            <type>text/plain</type>
            <size>17474</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MDc5MCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDEzLTEyLTE4ICBZb25nanVu
IFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTk0MQorICAgICAgICBBZGQgT2JqIEMgQVBJ
IGZvciBpbmplY3RlZCBidW5kbGUgUGFnZUdyb3VwIGNsYXNzLgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBPYmogQyBBUEkgKFdLV2ViUHJvY2Vz
c1BsdWdJblBhZ2VHcm91cCkgZm9yIGluamVjdGVkIGJ1bmRsZSBQYWdlR3JvdXAgY2xhc3MuIEFu
ZCBhZGQgQVBJcyB0bworICAgICAgICBleHBvc2UgdGhlIG1haW4gZnJhbWUgYW5kIHBhZ2UgZ3Jv
dXAgZnJvbSBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2luZ0NvbnRleHRDb250cm9sbGVyLgorCisg
ICAgICAgICogU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbToKKyAgICAgICAgKEFQSTo6T2JqZWN0
OjpuZXdPYmplY3QpOiBDcmVhdGUgd3JhcHBlciBvYmplY3QgZm9yIEluamVjdGVkUGFnZUdyb3Vw
IG9iamVjdC4KKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNz
UGx1Z0luUGFnZUdyb3VwLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5tbTogQWRkZWQuCisg
ICAgICAgICgtW1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cCBpZGVudGlmaWVyXSk6CisgICAg
ICAgICgtW1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cCBkZWFsbG9jXSk6CisgICAgICAgICgt
W1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cCBBUEk6Ol0pOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cElu
dGVybmFsLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0Ojp3cmFwcGVyKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3Nl
ckNvbnRleHRDb250cm9sbGVyLmg6IEFkZCBBUEkgdG8gZXhwb3NlIHRoZSBtYWluIGZyYW1lIGFu
ZCBwYWdlIGdyb3VwCisgICAgICAgICAgICBmb3IgV0tXZWJQb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXIuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
bWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbToKKyAgICAg
ICAgKC1bV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyIG1haW5GcmFt
ZV0pOgorICAgICAgICAoLVtXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xs
ZXIgcGFnZUdyb3VwXSk6CisKIDIwMTMtMTItMTggIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFj
bG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBwYWdlIHZpc2liaWxpdHkgYXBpIHRlc3Qs
IGluaXRpYWxpemF0aW9uIGluIFdlYktpdDIKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b2NvYS9BUElPYmplY3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
Y29hL0FQSU9iamVjdC5tbQkocmV2aXNpb24gMTYwNzg0KQorKysgU291cmNlL1dlYktpdDIvU2hh
cmVkL0NvY29hL0FQSU9iamVjdC5tbQkod29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgsNyBAQAog
I2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdEludGVybmFsLmgiCiAjaW1w
b3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5JbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJQcm9jZXNz
UGx1Z0luTm9kZUhhbmRsZUludGVybmFsLmgiCisjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5Q
YWdlR3JvdXBJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29y
bGRJbnRlcm5hbC5oIgogCiBuYW1lc3BhY2UgQVBJIHsKQEAgLTE1MSw2ICsxNTIsMTAgQEAgdm9p
ZCogT2JqZWN0OjpuZXdPYmplY3Qoc2l6ZV90IHNpemUsIFR5cAogICAgICAgICB3cmFwcGVyID0g
W1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgYWxsb2NdOwogICAgICAgICBicmVhazsKIAor
ICAgIGNhc2UgVHlwZTo6QnVuZGxlUGFnZUdyb3VwOgorICAgICAgICB3cmFwcGVyID0gW1dLV2Vi
UHJvY2Vzc1BsdWdJblBhZ2VHcm91cCBhbGxvY107CisgICAgICAgIGJyZWFrOworCiAgICAgY2Fz
ZSBUeXBlOjpCdW5kbGVTY3JpcHRXb3JsZDoKICAgICAgICAgd3JhcHBlciA9IFtXS1dlYlByb2Nl
c3NQbHVnSW5TY3JpcHRXb3JsZCBhbGxvY107CiAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNp
b24gMTYwNzg0KQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zNDYsNiArMzQ2LDkgQEAKIAkJMUY3NTA2QjYxODU5
MTY1NzAwRUMwRkY3IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGVJbnRlcm5hbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUYwMTgxNzExODU4
REMxNjAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGVJbnRlcm5hbC5oICov
OyB9OwogCQkxRjc1MDZCNzE4NTkxNjVBMDBFQzBGRjcgLyogV0tXZWJQcm9jZXNzUGx1Z0luSGl0
VGVzdFJlc3VsdEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxRjAxODE2RTE4NThEQzE2MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0lu
SGl0VGVzdFJlc3VsdEludGVybmFsLmggKi87IH07CiAJCTFGNzUwNkI4MTg1OTE2NUQwMEVDMEZG
NyAvKiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjAxODE2QjE4NThEQzE1MDBGOTI4ODQgLyog
V0tXZWJQcm9jZXNzUGx1Z0luRnJhbWVJbnRlcm5hbC5oICovOyB9OworCQkxRkIwMEFDNzE4NUY3
NjQ2MDAxOTE0MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRkIwMEFDNDE4NUY3NjQ2MDAxOTE0
MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHVibGljLCApOyB9OyB9OworCQkxRkIwMEFDODE4NUY3NjQ2MDAxOTE0MkUgLyog
V0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUZCMDBBQzUxODVGNzY0NjAwMTkxNDJFIC8qIFdLV2ViUHJv
Y2Vzc1BsdWdJblBhZ2VHcm91cC5tbSAqLzsgfTsKKwkJMUZCMDBBQzkxODVGNzY0NjAwMTkxNDJF
IC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRkIwMEFDNjE4NUY3NjQ2MDAxOTE0MkUg
LyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwSW50ZXJuYWwuaCAqLzsgfTsKIAkJMVFRNDE3
Q0IxMkMwMENDQTAwMkJFNjdCIC8qIFRleHRDaGVja2VyQ29tcGxldGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNDNDE3QzkxMkMwMENDQTAwMkJF
NjdCIC8qIFRleHRDaGVja2VyQ29tcGxldGlvbi5oICovOyB9OwogCQkxWlo0MTdFRjEyQzAwRDg3
MDAyQkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFCQjQxN0M5MTJDMDBDQ0EwMDJCRTY3QiAvKiBU
ZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwICovOyB9OwogCQkyOTBGNDI3MjE3MkEwQzc0MDA5MzlG
RjAgLyogQ2hpbGRQcm9jZXNzU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMjkwRjQyNzExNzJBMEM3NDAwOTM5RkYwIC8qIENoaWxkUHJv
Y2Vzc1N1cHBsZW1lbnQuaCAqLzsgfTsKQEAgLTE5MDksNiArMTkxMiw5IEBACiAJCTFGMDE4MTcz
MTg1OERDMTYwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJblNj
cmlwdFdvcmxkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRjAxODE3NDE4NThE
QzE2MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGRJbnRlcm5hbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRX
b3JsZEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGMzM1QkJGMTg1
Qjg0RDgwMDFBMjAxQSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFGQjAwQUM0MTg1Rjc2NDYwMDE5MTQy
RSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFGQjAwQUM1MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQ
bHVnSW5QYWdlR3JvdXAubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFGQjAwQUM2MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdl
R3JvdXBJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlBy
b2Nlc3NQbHVnSW5QYWdlR3JvdXBJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyNjY1OUFBMDE4NUZBQUVEMDA0MzAzREQgLyogSW5mby1pT1MucGxpc3QgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsg
cGF0aCA9ICJJbmZvLWlPUy5wbGlzdCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5
MEY0MjcxMTcyQTBDNzQwMDkzOUZGMCAvKiBDaGlsZFByb2Nlc3NTdXBwbGVtZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoaWxkUHJvY2Vzc1N1cHBsZW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkzRUJFQTkxNjI3RDlDOTAwNUY4OUYxIC8qIFdL
RE9NVGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0RPTVRleHQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM3NjMsNiArMzc2OSw5IEBACiAJCQkJMUYw
MTgxNkYxODU4REMxNjAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUuaCAq
LywKIAkJCQkxRjAxODE3MDE4NThEQzE2MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luTm9k
ZUhhbmRsZS5tbSAqLywKIAkJCQkxRjAxODE3MTE4NThEQzE2MDBGOTI4ODQgLyogV0tXZWJQcm9j
ZXNzUGx1Z0luTm9kZUhhbmRsZUludGVybmFsLmggKi8sCisJCQkJMUZCMDBBQzQxODVGNzY0NjAw
MTkxNDJFIC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5oICovLAorCQkJCTFGQjAwQUM1
MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAubW0gKi8sCisJ
CQkJMUZCMDBBQzYxODVGNzY0NjAwMTkxNDJFIC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91
cEludGVybmFsLmggKi8sCiAJCQkJMUYwMTgxNzIxODU4REMxNjAwRjkyODg0IC8qIFdLV2ViUHJv
Y2Vzc1BsdWdJblNjcmlwdFdvcmxkLmggKi8sCiAJCQkJMUYwMTgxNzMxODU4REMxNjAwRjkyODg0
IC8qIFdLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkLm1tICovLAogCQkJCTFGMDE4MTc0MTg1
OERDMTYwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZEludGVybmFsLmgg
Ki8sCkBAIC01OTM2LDYgKzU5NDUsNyBAQAogCQkJCTUxMUY4QTdCMTM4QjQ2MDkwMEE5NUY0NCAv
KiBTZWNJdGVtU2hpbUxpYnJhcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1N0FGOTc4MTg0RDEz
MTQwMEU2MzE2RSAvKiBJdGVyYXRvclBhaXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxNzkwODkx
MTY5QkFBODIwMDY5MDRDNyAvKiBTZWNJdGVtU2hpbU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywK
KwkJCQkxRkIwMEFDNzE4NUY3NjQ2MDAxOTE0MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdy
b3VwLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMThFNjkwQzE2OUI1NjNGMDA5QjY2NzAgLyogU2Vj
SXRlbVNoaW1Qcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE4RTY5MTgxNjlCNjY3QjAwOUI2
NjcwIC8qIFNlY0l0ZW1TaGltUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzMx
NTI5NzYxMzBEMENCMjAwRUQyNDgzIC8qIFNlY3VyaXR5T3JpZ2luRGF0YS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC02MTM3LDYgKzYxNDcsNyBAQAogCQkJCTUxMEFGRkJBMTY1NDIwNDgwMDFCQTA1RSAv
KiBXZWJSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGMDYwRTAxNjU0MzE3
RjAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUQzQjk0ODQ5MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTFGQjAwQUM5MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQ
bHVnSW5QYWdlR3JvdXBJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjYzNDQ0NTYxMkE4
ODVDODAwMDYxMkQ4IC8qIFdlYlNlY3VyaXR5T3JpZ2luLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
N0QwQjVDNjE4NDUyMTg0MDBGNkNFN0QgLyogV0tFcnJvclJlY292ZXJ5QXR0ZW1wdGluZy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNDNTcxNUIxMTVBREFFRjAwMUNDQUY5IC8qIFdlYlN5c3RlbUlu
dGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCkBAIC03NDAzLDYgKzc0MTQsNyBAQAogCQkJCUNENzNC
QTUzMTMxQjY0NUIwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3NTU0MjJCRDE4MDYyQkIyMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDczQkE0RTEzMUFDREI3MDBFRURFRDIgLyogV2Vi
RnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
MUZCMDBBQzgxODVGNzY0NjAwMTkxNDJFIC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUNENkY3NUY0MTMxQjY2RDAwMEQ2QjIxRSAvKiBXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENzNCQTQ3MTMxQUND
OUEwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUJDMUJFMUUxMTJENTRBNDEwMDA0QTIyOCAvKiBXZWJHZW9s
b2NhdGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VH
cm91cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5oCShyZXZpc2lvbiAw
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2Ev
V0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwz
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdDIvV0tGb3VuZGF0aW9uLmg+CisKKyNp
ZiBXS19BUElfRU5BQkxFRAorCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKwor
V0tfQVBJX0NMQVNTCitAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cCA6IE5T
T2JqZWN0CisKKy0gKE5TU3RyaW5nICopaWRlbnRpZmllcjsKKworQGVuZAorCisjZW5kaWYgLy8g
V0tfQVBJX0VOQUJMRUQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9X
S1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAubW0JKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVn
SW5QYWdlR3JvdXAubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdy
b3VwSW50ZXJuYWwuaCIKKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQgIldLQnVuZGxl
UGFnZUdyb3VwLmgiCisjaW1wb3J0ICJXS0FQSUNhc3QuaCIKKyNpbXBvcnQgIldLTlNTdHJpbmcu
aCIKKyNpbXBvcnQgIldLUmV0YWluUHRyLmgiCisjaW1wb3J0ICJXZWJQYWdlR3JvdXBQcm94eS5o
IgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitAaW1wbGVtZW50YXRpb24gV0tXZWJQcm9j
ZXNzUGx1Z0luUGFnZUdyb3VwIHsKKyAgICBBUEk6Ok9iamVjdFN0b3JhZ2U8V2ViUGFnZUdyb3Vw
UHJveHk+IF9idW5kbGVQYWdlR3JvdXA7Cit9CisKKy0gKE5TU3RyaW5nICopaWRlbnRpZmllcgor
eworICAgIHJldHVybiBfYnVuZGxlUGFnZUdyb3VwLT5pZGVudGlmaWVyKCk7Cit9CisKKy0gKHZv
aWQpZGVhbGxvYworeworICAgIF9idW5kbGVQYWdlR3JvdXAtPn5XZWJQYWdlR3JvdXBQcm94eSgp
OworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworI3ByYWdtYSBtYXJrIFdLT2JqZWN0IHByb3Rv
Y29sIGltcGxlbWVudGF0aW9uCisKKy0gKEFQSTo6T2JqZWN0JilfYXBpT2JqZWN0Cit7CisgICAg
cmV0dXJuICpfYnVuZGxlUGFnZUdyb3VwOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBXS19BUElf
RU5BQkxFRApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwSW50ZXJuYWwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9X
S1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXBJbnRlcm5hbC5oCShyZXZpc2lvbiAwKQorKysgU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9j
ZXNzUGx1Z0luUGFnZUdyb3VwSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmgi
CisKKyNpZiBXS19BUElfRU5BQkxFRAorCisjaW1wb3J0ICJXS0Jhc2UuaCIKKyNpbXBvcnQgIldl
YlBhZ2VHcm91cFByb3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitpbmxpbmUgV0tXZWJQ
cm9jZXNzUGx1Z0luUGFnZUdyb3VwICp3cmFwcGVyKFdlYlBhZ2VHcm91cFByb3h5JiBwYWdlR3Jv
dXApCit7CisgICAgQVNTRVJUKFtwYWdlR3JvdXAud3JhcHBlcigpIGlzS2luZE9mQ2xhc3M6W1dL
V2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cCBjbGFzc11dKTsKKyAgICByZXR1cm4gKFdLV2ViUHJv
Y2Vzc1BsdWdJblBhZ2VHcm91cCAqKXBhZ2VHcm91cC53cmFwcGVyKCk7Cit9CisgICAgCit9CisK
K0BpbnRlcmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwICgpIDxXS09iamVjdD4KK0Bl
bmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNv
bnRleHRDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0
Q29udHJvbGxlci5oCShyZXZpc2lvbiAxNjA3ODQpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRl
eHRDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDggQEAKIAogQGNsYXNz
IFdLRE9NRG9jdW1lbnQ7CiBAY2xhc3MgV0tET01SYW5nZTsKK0BjbGFzcyBXS1dlYlByb2Nlc3NQ
bHVnSW5GcmFtZTsKK0BjbGFzcyBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXA7CiBAcHJvdG9j
b2wgV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlOwogCiBXS19BUElfQ0xBU1MKQEAgLTQw
LDYgKzQyLDEwIEBAIEBpbnRlcmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnQKIAog
QHByb3BlcnR5KHJlYWRvbmx5KSBXS0RPTVJhbmdlICpzZWxlY3RlZFJhbmdlOwogCitAcHJvcGVy
dHkocmVhZG9ubHkpIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lICptYWluRnJhbWU7CisKK0Bwcm9w
ZXJ0eShyZWFkb25seSkgV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwICpwYWdlR3JvdXA7CisK
IEBwcm9wZXJ0eSAod2VhaykgaWQgPFdLV2ViUHJvY2Vzc1BsdWdJbkxvYWREZWxlZ2F0ZT4gbG9h
ZERlbGVnYXRlOwogCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9s
bGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIu
bW0JKHJldmlzaW9uIDE2MDc4NCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xs
ZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbXBvcnQgIldLV2ViUHJv
Y2Vzc1BsdWdpbkZyYW1lSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLV2ViUHJvY2Vzc1BsdWdJbklu
dGVybmFsLmgiCiAjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGUuaCIKKyNp
bXBvcnQgIldLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cEludGVybmFsLmgiCiAjaW1wb3J0ICJX
S1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZEludGVybmFsLmgiCiAjaW1wb3J0ICJXZWFrT2Jq
Q1B0ci5oIgogI2ltcG9ydCAiV2ViUGFnZS5oIgpAQCAtMTMzLDYgKzEzNCwyMCBAQCAtIChXS0RP
TVJhbmdlICopc2VsZWN0ZWRSYW5nZQogICAgIHJldHVybiB0b1dLRE9NUmFuZ2UocmFuZ2UuZ2V0
KCkpOwogfQogCistIChXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSAqKW1haW5GcmFtZQoreworICAg
IFdlYkZyYW1lICp3ZWJLaXRNYWluRnJhbWUgPSBfcGFnZS0+bWFpbldlYkZyYW1lKCk7CisgICAg
aWYgKCF3ZWJLaXRNYWluRnJhbWUpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICByZXR1cm4g
d3JhcHBlcigqd2ViS2l0TWFpbkZyYW1lKTsKK30KKworLSAoV0tXZWJQcm9jZXNzUGx1Z0luUGFn
ZUdyb3VwICopcGFnZUdyb3VwCit7CisgICAgcmV0dXJuIHdyYXBwZXIoKl9wYWdlLT5wYWdlR3Jv
dXAoKSk7Cit9CisKICNwcmFnbWEgbWFyayBXS09iamVjdCBwcm90b2NvbCBpbXBsZW1lbnRhdGlv
bgogCiAtIChBUEk6Ok9iamVjdCYpX2FwaU9iamVjdAo=
</data>
<flag name="review"
          id="243217"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219576</attachid>
            <date>2013-12-18 15:11:37 -0800</date>
            <delta_ts>2013-12-18 15:47:02 -0800</delta_ts>
            <desc>Fix style issue and address review comments before landing.</desc>
            <filename>webkit2_pagegroup_api.patch</filename>
            <type>text/plain</type>
            <size>17644</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MDc5NikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDEzLTEyLTE4ICBZb25nanVu
IFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTk0MQorICAgICAgICBBZGQgT2JqIEMgQVBJ
IGZvciBpbmplY3RlZCBidW5kbGUgUGFnZUdyb3VwIGNsYXNzLgorCisgICAgICAgIFJldmlld2Vk
IGJ5IERhbiBCZXJuc3RlaW4uCisKKyAgICAgICAgQWRkIE9iaiBDIEFQSSAoV0tXZWJQcm9jZXNz
UGx1Z0luUGFnZUdyb3VwKSBmb3IgaW5qZWN0ZWQgYnVuZGxlIFBhZ2VHcm91cCBjbGFzcy4gQW5k
IGFkZCBBUElzIHRvCisgICAgICAgIGV4cG9zZSB0aGUgbWFpbiBmcmFtZSBhbmQgcGFnZSBncm91
cCBmcm9tIFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIuCisKKyAg
ICAgICAgKiBTaGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1tOgorICAgICAgICAoQVBJOjpPYmplY3Q6
Om5ld09iamVjdCk6IENyZWF0ZSB3cmFwcGVyIG9iamVjdCBmb3IgSW5qZWN0ZWRQYWdlR3JvdXAg
b2JqZWN0LgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQ
bHVnSW5QYWdlR3JvdXAuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLm1tOiBBZGRlZC4KKyAg
ICAgICAgKC1bV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwIGlkZW50aWZpZXJdKToKKyAgICAg
ICAgKC1bV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwIGRlYWxsb2NdKToKKyAgICAgICAgKC1b
V0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwIEFQSTo6XSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwSW50
ZXJuYWwuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OndyYXBwZXIpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2Vy
Q29udGV4dENvbnRyb2xsZXIuaDogQWRkIEFQSSB0byBleHBvc2UgdGhlIG1haW4gZnJhbWUgYW5k
IHBhZ2UgZ3JvdXAKKyAgICAgICAgICAgIGZvciBXS1dlYlBvY2Vzc1BsdWdJbkJyb3dzZXJDb250
ZXh0Q29udHJvbGxlci4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9t
YWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tOgorICAgICAg
ICAoLVtXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgbWFpbkZyYW1l
XSk6CisgICAgICAgICgtW1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxl
ciBwYWdlR3JvdXBdKToKKwogMjAxMy0xMi0xOCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FA
YXBwbGUuY29tPgogCiAgICAgICAgIFdLUmVtb3RlT2JqZWN0UmVnaXN0cnkgc2hvdWxkIGludm9r
ZSBpbnZvY2F0aW9ucwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL0FQSU9iamVj
dC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvQVBJT2JqZWN0
Lm1tCShyZXZpc2lvbiAxNjA3OTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvQVBJ
T2JqZWN0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCw3IEBACiAjaW1wb3J0ICJXS1dl
YlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0SW50ZXJuYWwuaCIKICNpbXBvcnQgIldLV2ViUHJv
Y2Vzc1BsdWdJbkludGVybmFsLmgiCiAjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFu
ZGxlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIldLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cEludGVy
bmFsLmgiCiAjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZEludGVybmFsLmgi
CiAKIG5hbWVzcGFjZSBBUEkgewpAQCAtMTUxLDYgKzE1MiwxMCBAQCB2b2lkKiBPYmplY3Q6Om5l
d09iamVjdChzaXplX3Qgc2l6ZSwgVHlwCiAgICAgICAgIHdyYXBwZXIgPSBbV0tXZWJQcm9jZXNz
UGx1Z0luTm9kZUhhbmRsZSBhbGxvY107CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBUeXBl
OjpCdW5kbGVQYWdlR3JvdXA6CisgICAgICAgIHdyYXBwZXIgPSBbV0tXZWJQcm9jZXNzUGx1Z0lu
UGFnZUdyb3VwIGFsbG9jXTsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIFR5cGU6OkJ1bmRs
ZVNjcmlwdFdvcmxkOgogICAgICAgICB3cmFwcGVyID0gW1dLV2ViUHJvY2Vzc1BsdWdJblNjcmlw
dFdvcmxkIGFsbG9jXTsKICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNjA3OTYpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTM0OSw2ICszNDksOSBAQAogCQkxRjc1MDZCNjE4NTkxNjU3MDBFQzBGRjcg
LyogV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjAxODE3MTE4NThEQzE2MDBGOTI4ODQg
LyogV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZUludGVybmFsLmggKi87IH07CiAJCTFGNzUw
NkI3MTg1OTE2NUEwMEVDMEZGNyAvKiBXS1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0SW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFG
MDE4MTZFMTg1OERDMTYwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0
SW50ZXJuYWwuaCAqLzsgfTsKIAkJMUY3NTA2QjgxODU5MTY1RDAwRUMwRkY3IC8qIFdLV2ViUHJv
Y2Vzc1BsdWdJbkZyYW1lSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFGMDE4MTZCMTg1OERDMTUwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQ
bHVnSW5GcmFtZUludGVybmFsLmggKi87IH07CisJCTFGQjAwQUM3MTg1Rjc2NDYwMDE5MTQyRSAv
KiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGQjAwQUM0MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlBy
b2Nlc3NQbHVnSW5QYWdlR3JvdXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJs
aWMsICk7IH07IH07CisJCTFGQjAwQUM4MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQ
bHVnSW5QYWdlR3JvdXAubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxRkIwMEFDNTE4NUY3NjQ2MDAxOTE0MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFn
ZUdyb3VwLm1tICovOyB9OworCQkxRkIwMEFDOTE4NUY3NjQ2MDAxOTE0MkUgLyogV0tXZWJQcm9j
ZXNzUGx1Z0luUGFnZUdyb3VwSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFGQjAwQUM2MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nl
c3NQbHVnSW5QYWdlR3JvdXBJbnRlcm5hbC5oICovOyB9OwogCQkxUVE0MTdDQjEyQzAwQ0NBMDAy
QkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENo
ZWNrZXJDb21wbGV0aW9uLmggKi87IH07CiAJCTFaWjQxN0VGMTJDMDBEODcwMDJCRTY3QiAvKiBU
ZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUJCNDE3QzkxMkMwMENDQTAwMkJFNjdCIC8qIFRleHRDaGVja2VyQ29t
cGxldGlvbi5jcHAgKi87IH07CiAJCTI5MEY0MjcyMTcyQTBDNzQwMDkzOUZGMCAvKiBDaGlsZFBy
b2Nlc3NTdXBwbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyOTBGNDI3MTE3MkEwQzc0MDA5MzlGRjAgLyogQ2hpbGRQcm9jZXNzU3VwcGxlbWVu
dC5oICovOyB9OwpAQCAtMTkxNiw2ICsxOTE5LDkgQEAKIAkJMUYwMTgxNzMxODU4REMxNjAwRjky
ODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGMDE4MTc0MTg1OERDMTYwMEY5Mjg4NCAv
KiBXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZEludGVybmFsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkSW50ZXJuYWwu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUYzMzVCQkYxODVCODREODAwMUEyMDFB
IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkxvYWREZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUZCMDBBQzQxODVGNzY0NjAwMTkxNDJFIC8qIFdLV2ViUHJv
Y2Vzc1BsdWdJblBhZ2VHcm91cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
S1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUZCMDBBQzUxODVGNzY0NjAwMTkxNDJFIC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91
cC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViUHJvY2Vz
c1BsdWdJblBhZ2VHcm91cC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUZCMDBB
QzYxODVGNzY0NjAwMTkxNDJFIC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cEludGVybmFs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJblBh
Z2VHcm91cEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2NjU5QUEw
MTg1RkFBRUQwMDQzMDNERCAvKiBJbmZvLWlPUy5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1sOyBwYXRoID0gIkluZm8t
aU9TLnBsaXN0Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkwRjQyNzExNzJBMEM3
NDAwOTM5RkYwIC8qIENoaWxkUHJvY2Vzc1N1cHBsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ2hpbGRQcm9jZXNzU3VwcGxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyOTNFQkVBOTE2MjdEOUM5MDA1Rjg5RjEgLyogV0tET01UZXh0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRE9NVGV4dC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMzc3MCw2ICszNzc2LDkgQEAKIAkJCQkxRjAxODE2RjE4NThEQzE2
MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZS5oICovLAogCQkJCTFGMDE4
MTcwMTg1OERDMTYwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlLm1tICov
LAogCQkJCTFGMDE4MTcxMTg1OERDMTYwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVnSW5Ob2Rl
SGFuZGxlSW50ZXJuYWwuaCAqLywKKwkJCQkxRkIwMEFDNDE4NUY3NjQ2MDAxOTE0MkUgLyogV0tX
ZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmggKi8sCisJCQkJMUZCMDBBQzUxODVGNzY0NjAwMTkx
NDJFIC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5tbSAqLywKKwkJCQkxRkIwMEFDNjE4
NUY3NjQ2MDAxOTE0MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwSW50ZXJuYWwuaCAq
LywKIAkJCQkxRjAxODE3MjE4NThEQzE2MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luU2Ny
aXB0V29ybGQuaCAqLywKIAkJCQkxRjAxODE3MzE4NThEQzE2MDBGOTI4ODQgLyogV0tXZWJQcm9j
ZXNzUGx1Z0luU2NyaXB0V29ybGQubW0gKi8sCiAJCQkJMUYwMTgxNzQxODU4REMxNjAwRjkyODg0
IC8qIFdLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkSW50ZXJuYWwuaCAqLywKQEAgLTU5NDcs
NiArNTk1Niw3IEBACiAJCQkJNTExRjhBN0IxMzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGlt
TGlicmFyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzU3QUY5NzgxODREMTMxNDAwRTYzMTZFIC8q
IEl0ZXJhdG9yUGFpci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE3OTA4OTExNjlCQUE4MjAwNjkw
NEM3IC8qIFNlY0l0ZW1TaGltTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTFGQjAwQUM3
MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUUxOEU2OTBDMTY5QjU2M0YwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMThFNjkxODE2OUI2NjdCMDA5QjY2NzAgLyogU2VjSXRl
bVNoaW1Qcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMzE1Mjk3NjEzMEQwQ0Iy
MDBFRDI0ODMgLyogU2VjdXJpdHlPcmlnaW5EYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTYxNDks
NiArNjE1OSw3IEBACiAJCQkJNTEwQUZGQkExNjU0MjA0ODAwMUJBMDVFIC8qIFdlYlJlc291cmNl
TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUYwNjBFMDE2NTQzMTdGMDBGMzI4MUIgLyog
V2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDNCOTQ4NDkx
MUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMUZCMDBBQzkxODVGNzY0NjAwMTkxNDJFIC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91
cEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNjM0NDQ1NjEyQTg4NUM4MDAwNjEyRDgg
LyogV2ViU2VjdXJpdHlPcmlnaW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTM3RDBCNUM2MTg0NTIx
ODQwMEY2Q0U3RCAvKiBXS0Vycm9yUmVjb3ZlcnlBdHRlbXB0aW5nLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0M1NzE1QjExNUFEQUVGMDAxQ0NBRjkgLyogV2ViU3lzdGVtSW50ZXJmYWNlLmggaW4g
SGVhZGVycyAqLywKQEAgLTc0MTYsNiArNzQyNyw3IEBACiAJCQkJQ0Q3M0JBNTMxMzFCNjQ1QjAw
RUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc1
NTQyMkJEMTgwNjJCQjIwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUNENzNCQTRFMTMxQUNEQjcwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxRkIwMEFDODE4NUY3
NjQ2MDAxOTE0MkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQ0Q2Rjc1RjQxMzFCNjZEMDAwRDZCMjFFIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q3M0JBNDcxMzFBQ0M5QTAwRUVERUQyIC8q
IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkMxQkUxRTExMkQ1NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uQ2xpZW50
LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29j
b2EvV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQ
bHVnSW5QYWdlR3JvdXAuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCA8V2ViS2l0Mi9XS0ZvdW5kYXRpb24uaD4KKworI2lmIFdLX0FQSV9FTkFC
TEVECisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCitXS19BUElfQ0xBU1MK
K0BpbnRlcmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwIDogTlNPYmplY3QKKworQHBy
b3BlcnR5IChyZWFkb25seSkgTlNTdHJpbmcgKmlkZW50aWZpZXI7CisKK0BlbmQKKworI2VuZGlm
IC8vIFdLX0FQSV9FTkFCTEVECkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29j
b2EvV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLm1tCShyZXZpc2lvbiAwKQorKysgU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNz
UGx1Z0luUGFnZUdyb3VwLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldLV2ViUHJvY2Vzc1BsdWdJblBh
Z2VHcm91cEludGVybmFsLmgiCisKKyNpZiBXS19BUElfRU5BQkxFRAorCisjaW1wb3J0ICJXS0J1
bmRsZVBhZ2VHcm91cC5oIgorI2ltcG9ydCAiV0tBUElDYXN0LmgiCisjaW1wb3J0ICJXS05TU3Ry
aW5nLmgiCisjaW1wb3J0ICJXS1JldGFpblB0ci5oIgorI2ltcG9ydCAiV2ViUGFnZUdyb3VwUHJv
eHkuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworQGltcGxlbWVudGF0aW9uIFdLV2Vi
UHJvY2Vzc1BsdWdJblBhZ2VHcm91cCB7CisgICAgQVBJOjpPYmplY3RTdG9yYWdlPFdlYlBhZ2VH
cm91cFByb3h5PiBfYnVuZGxlUGFnZUdyb3VwOworfQorCistIChOU1N0cmluZyAqKWlkZW50aWZp
ZXIKK3sKKyAgICByZXR1cm4gX2J1bmRsZVBhZ2VHcm91cC0+aWRlbnRpZmllcigpOworfQorCist
ICh2b2lkKWRlYWxsb2MKK3sKKyAgICBfYnVuZGxlUGFnZUdyb3VwLT5+V2ViUGFnZUdyb3VwUHJv
eHkoKTsKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKyNwcmFnbWEgbWFyayBXS09iamVjdCBw
cm90b2NvbCBpbXBsZW1lbnRhdGlvbgorCistIChBUEk6Ok9iamVjdCYpX2FwaU9iamVjdAorewor
ICAgIHJldHVybiAqX2J1bmRsZVBhZ2VHcm91cDsKK30KKworQGVuZAorCisjZW5kaWYgLy8gV0tf
QVBJX0VOQUJMRUQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cEludGVybmFsLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29j
b2EvV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwSW50ZXJuYWwuaAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2Vi
UHJvY2Vzc1BsdWdJblBhZ2VHcm91cEludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIldLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91
cC5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9ydCAiV0tCYXNlLmgiCisjaW1wb3J0
ICJXZWJQYWdlR3JvdXBQcm94eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworaW5saW5lIFdL
V2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cCAqd3JhcHBlcihXZWJQYWdlR3JvdXBQcm94eSYgcGFn
ZUdyb3VwKQoreworICAgIEFTU0VSVChbcGFnZUdyb3VwLndyYXBwZXIoKSBpc0tpbmRPZkNsYXNz
OltXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAgY2xhc3NdXSk7CisgICAgcmV0dXJuIChXS1dl
YlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAgKilwYWdlR3JvdXAud3JhcHBlcigpOworfQorICAgIAor
fQorCitAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cCAoKSA8V0tPYmplY3Q+
CitAZW5kCisKKyNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApJbmRleDogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dz
ZXJDb250ZXh0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXIuaAkocmV2aXNpb24gMTYwNzk2KQorKysgU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJD
b250ZXh0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxNCArMzEsMjAgQEAKIAog
QGNsYXNzIFdLRE9NRG9jdW1lbnQ7CiBAY2xhc3MgV0tET01SYW5nZTsKK0BjbGFzcyBXS1dlYlBy
b2Nlc3NQbHVnSW5GcmFtZTsKK0BjbGFzcyBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXA7CiBA
cHJvdG9jb2wgV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlOwogCiBXS19BUElfQ0xBU1MK
IEBpbnRlcmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyIDog
TlNPYmplY3QKIAotQHByb3BlcnR5KHJlYWRvbmx5KSBXS0RPTURvY3VtZW50ICptYWluRnJhbWVE
b2N1bWVudDsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIFdLRE9NRG9jdW1lbnQgKm1haW5GcmFtZURv
Y3VtZW50OwogCi1AcHJvcGVydHkocmVhZG9ubHkpIFdLRE9NUmFuZ2UgKnNlbGVjdGVkUmFuZ2U7
CitAcHJvcGVydHkgKHJlYWRvbmx5KSBXS0RPTVJhbmdlICpzZWxlY3RlZFJhbmdlOworCitAcHJv
cGVydHkgKHJlYWRvbmx5KSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSAqbWFpbkZyYW1lOworCitA
cHJvcGVydHkgKHJlYWRvbmx5KSBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAgKnBhZ2VHcm91
cDsKIAogQHByb3BlcnR5ICh3ZWFrKSBpZCA8V0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRl
PiBsb2FkRGVsZWdhdGU7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xs
ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5t
bQkocmV2aXNpb24gMTYwNzk2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxl
ci5tbQkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQAogI2ltcG9ydCAiV0tXZWJQcm9j
ZXNzUGx1Z2luRnJhbWVJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luSW50
ZXJuYWwuaCIKICNpbXBvcnQgIldLV2ViUHJvY2Vzc1BsdWdJbkxvYWREZWxlZ2F0ZS5oIgorI2lt
cG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwSW50ZXJuYWwuaCIKICNpbXBvcnQgIldL
V2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkSW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYWtPYmpD
UHRyLmgiCiAjaW1wb3J0ICJXZWJQYWdlLmgiCkBAIC0xMzgsNiArMTM5LDIwIEBAIC0gKFdLRE9N
UmFuZ2UgKilzZWxlY3RlZFJhbmdlCiAgICAgcmV0dXJuIHRvV0tET01SYW5nZShyYW5nZS5nZXQo
KSk7CiB9CiAKKy0gKFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lICopbWFpbkZyYW1lCit7CisgICAg
V2ViRnJhbWUgKndlYktpdE1haW5GcmFtZSA9IF9wYWdlLT5tYWluV2ViRnJhbWUoKTsKKyAgICBp
ZiAoIXdlYktpdE1haW5GcmFtZSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIHJldHVybiB3
cmFwcGVyKCp3ZWJLaXRNYWluRnJhbWUpOworfQorCistIChXS1dlYlByb2Nlc3NQbHVnSW5QYWdl
R3JvdXAgKilwYWdlR3JvdXAKK3sKKyAgICByZXR1cm4gd3JhcHBlcigqX3BhZ2UtPnBhZ2VHcm91
cCgpKTsKK30KKwogI3ByYWdtYSBtYXJrIFdLT2JqZWN0IHByb3RvY29sIGltcGxlbWVudGF0aW9u
CiAKIC0gKEFQSTo6T2JqZWN0JilfYXBpT2JqZWN0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>