<?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>24776</bug_id>
          
          <creation_ts>2009-03-24 07:48:16 -0700</creation_ts>
          <short_desc>Disabling HTML5 Database breaks the build</short_desc>
          <delta_ts>2009-05-05 23:00: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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Ben Murdoch">benm</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andreip</cc>
    
    <cc>laszlo.gombos</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>114936</commentid>
    <comment_count>0</comment_count>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2009-03-24 07:48:16 -0700</bug_when>
    <thetext>Disabling ENABLE_DATABASE causes the build to fail when compiling Database.cpp as this calls WebCore::Document::setHasOpenDatabases and others which have been compiled out by an #ifdef ENABLE_DATABASE.

I have a patch ready to correct the ifdef&apos;s.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114938</commentid>
    <comment_count>1</comment_count>
      <attachid>28891</attachid>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2009-03-24 07:52:34 -0700</bug_when>
    <thetext>Created attachment 28891
Proposed fix for #ifdefs in Document and InspectorController</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114958</commentid>
    <comment_count>2</comment_count>
      <attachid>28891</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-03-24 10:48:24 -0700</bug_when>
    <thetext>Comment on attachment 28891
Proposed fix for #ifdefs in Document and InspectorController

Why not just put an #ifdef around Database.cpp so it doesn&apos;t compile?

&gt; +    void Document::setHasOpenDatabases();
&gt; +    bool Document::hasOpenDatabases();

Also, this will break some builds, r-.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114969</commentid>
    <comment_count>3</comment_count>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2009-03-24 11:21:51 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 28891 [review])
&gt; Why not just put an #ifdef around Database.cpp so it doesn&apos;t compile?
&gt; 
&gt; &gt; +    void Document::setHasOpenDatabases();
&gt; &gt; +    bool Document::hasOpenDatabases();
&gt; 
&gt; Also, this will break some builds, r-.
&gt; 

Hi Sam,

Database.cpp is needed in the build for DatabaseAuthorizer.cpp, which is used  in the SQLite code for other features like the Icon Database so I don&apos;t think just #ifdef&apos;ing out the file will work. I guess the other alternative is to #ifdef out the parts of Database.cpp that call into the Document but changing the ifdef&apos;s in Document.cpp|h and the InspectorController seemed like the clearer and simpler solution to me.

I can fix the syntax in Document.h and upload a new patch if you think this is worth pursuing. Please let me know your thoughts.

Thanks, Ben</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114981</commentid>
    <comment_count>4</comment_count>
      <attachid>28894</attachid>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2009-03-24 11:35:56 -0700</bug_when>
    <thetext>Created attachment 28894
Proposed fix for #ifdefs in Document and InspectorController</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114993</commentid>
    <comment_count>5</comment_count>
      <attachid>28894</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-03-24 12:19:23 -0700</bug_when>
    <thetext>Comment on attachment 28894
Proposed fix for #ifdefs in Document and InspectorController

It’s not a good idea to change inlining just to fix compiles like this. The setHasOpenDatabases and hasOpendatabases functions can remain inlined in the header, but just be after the class definition and separate.

We compile with unused argument settings, so you’ll need to use the UNUSED_PARAM macro in the #else cases of these various features.

This does *not* seem like quite the right approach. I’m not sure how much you’ve done to try other things first. A function like stopDatabases() makes sense even if you don’t have databases enabled. But a feature like addOpenDatabase doesn’t. And databaseThread makes even less sense.

I’m not going to set review- because perhaps the others who have been working with you on earlier versions of this patch have a different view.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115201</commentid>
    <comment_count>6</comment_count>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2009-03-25 13:05:07 -0700</bug_when>
    <thetext>Good point on the inlining and thanks for the UNUSED_PARAM tip, I will upload a new version of the patch that takes your comments into account.

Regarding the strategy for fixing the build break, I&apos;m not sure I was very clear in explaining the problem I&apos;m trying to fix. If you disable HTML5 Database support in the build by defining ENABLE_DATABASE to 0, some database related functions are completely compiled out of the Document class. These functions are called by Database methods in Database.cpp and so with ENABLE_DATABASE set to 0 the compilation of Database.cpp fails as the functions are no longer present in the Document class. I don&apos;t think it&apos;s correct to remove Database.cpp from the build or #ifdef out the file as it seems it is used by the SQLite classes which in turn are used by other parts of WebCore - the Icon Database, Application Cache, etc.

I can think of a couple of ways to fix the build break:
1) Leave Database.cpp as it is and #if ENABLE(DATABASE) the definitions rather than declarations of the database functions in the Document class. This requires the fewest code changes and in my opinion is clearest and simplest. I have sent a patch that does this. I see that a similar technique of compiling out the function body is used for the ENABLE_TEXT_CARET macro in page/Frame.cpp.
2) Leave Document.cpp|h as they are and #if ENABLE(DATABASE) each of the callsites for functions compiled out of the Document class in Database.cpp. There are a lot of these calls and this strikes me as a messier approach.

I&apos;m certainly open to alternative solutions if anyone can think of a better way to fix this.

Thanks, Ben</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115202</commentid>
    <comment_count>7</comment_count>
      <attachid>28942</attachid>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2009-03-25 13:06:03 -0700</bug_when>
    <thetext>Created attachment 28942
Proposed fix for #ifdefs in Document and InspectorController</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115207</commentid>
    <comment_count>8</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-03-25 13:11:44 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 28891 [review] [review])
&gt; &gt; Why not just put an #ifdef around Database.cpp so it doesn&apos;t compile?
&gt; &gt; 
&gt; &gt; &gt; +    void Document::setHasOpenDatabases();
&gt; &gt; &gt; +    bool Document::hasOpenDatabases();
&gt; &gt; 
&gt; &gt; Also, this will break some builds, r-.
&gt; &gt; 
&gt; 
&gt; Hi Sam,
&gt; 
&gt; Database.cpp is needed in the build for DatabaseAuthorizer.cpp, which is used 
&gt; in the SQLite code for other features like the Icon Database so I don&apos;t think
&gt; just #ifdef&apos;ing out the file will work. 

This is the issue then.  We need to detangle DatabaseAutorizer from SQLite code, indeed, that is a layering violation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115318</commentid>
    <comment_count>9</comment_count>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2009-03-26 07:07:22 -0700</bug_when>
    <thetext>I had a look in the platform/sql code and particularly the SQLiteAuthorizer - it seems that the SQLiteAuthorizer was replaced by DatabaseAuthorizer in changeset 36054. On inspecting further however it looks like the only dependency in DatabaseAuthorizer.cpp on the rest of the Database code is Database::databaseInfoTableName. What do you think about moving this dependency into Database.h (it&apos;s straightforward and static) and #if ENABLE(DATABASE) out the other database cpp files? Or we could leave this function in Database.cpp and #if ENABLE(DATABASE) around the rest of the code? I think that either of these means we can leave Document.cpp|h as they are. I&apos;ll give these alternatives a try and upload an alternative patch. Let me know your thoughts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115320</commentid>
    <comment_count>10</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-03-26 07:16:46 -0700</bug_when>
    <thetext>Perhaps we should instead consider reverting r36054.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115828</commentid>
    <comment_count>11</comment_count>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2009-03-30 09:40:02 -0700</bug_when>
    <thetext>I&apos;ve been working on a different patch that compiles out the unneeded database code except for the function that the Authoriser needs. I&apos;ve got WebCore built but I&apos;ve come accross a problem with creating the WebKit library. As I&apos;ve compiled out classes like DatabaseTracker from WebCore, WebKitDatabaseManager no longer compiles. I think it makes sense to also remove WebKitDatabaseManager as we are building with database support off. However on Windows (I&apos;m not sure about the other platforms but I guess there might be similar problems) when I remove that class, I get problems with WebKitClassFactory as it expects WebKitDatabaseManager to exist in the FOR_EACH_COCLASS macro (see webkit\win\ForEachCoClass.h:35)

Can anyone give me some advice on how best to work around this issue? I&apos;m not able to put an #if inside the FOR_EACH_COCLASS macro (compiler errors) and creating another FOR_EACH_COCLASS macro for when databases are disabled seems like a maintenance nightmare in the making. Another solution would be to compile out the bodies of the functions in WebKitDatabaseManager and have them return E_NOINTERFACE or similar, but then the class still exists when it seems like it shouldn&apos;t and I&apos;m not clear what similar code changes will be needed on the other platforms. Any advice would be appreciated!

Many thanks, Ben 

(In reply to comment #9)
&gt; I had a look in the platform/sql code and particularly the SQLiteAuthorizer -
&gt; it seems that the SQLiteAuthorizer was replaced by DatabaseAuthorizer in
&gt; changeset 36054. On inspecting further however it looks like the only
&gt; dependency in DatabaseAuthorizer.cpp on the rest of the Database code is
&gt; Database::databaseInfoTableName. What do you think about moving this dependency
&gt; into Database.h (it&apos;s straightforward and static) and #if ENABLE(DATABASE) out
&gt; the other database cpp files? Or we could leave this function in Database.cpp
&gt; and #if ENABLE(DATABASE) around the rest of the code? I think that either of
&gt; these means we can leave Document.cpp|h as they are. I&apos;ll give these
&gt; alternatives a try and upload an alternative patch. Let me know your thoughts.
&gt; 

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116038</commentid>
    <comment_count>12</comment_count>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2009-03-31 10:53:00 -0700</bug_when>
    <thetext>I&apos;ve worked out an alternative patch that compiles out HTML5 Database code more sensibly should the ENABLE_DATABASE macro be set to 0. This touches more files than my previous patch, but removes (as far as I can tell) all the Database code that the rest of WebCore doesn&apos;t need. I think this is a better approach, so I&apos;ve made my previous patch obsolete.

Please let me know if you have any feedback!

Thanks, Ben</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116040</commentid>
    <comment_count>13</comment_count>
      <attachid>29126</attachid>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2009-03-31 10:54:03 -0700</bug_when>
    <thetext>Created attachment 29126
Fix build break with HTML5 Database disbled</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118389</commentid>
    <comment_count>14</comment_count>
      <attachid>29126</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-04-22 11:12:11 -0700</bug_when>
    <thetext>Comment on attachment 29126
Fix build break with HTML5 Database disbled

In general this looks fine except for the missing newlines at end of files.

r- for the missing newlines (I think the commit will fail w/o them).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118485</commentid>
    <comment_count>15</comment_count>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2009-04-23 03:23:38 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 29126 [review])
&gt; In general this looks fine except for the missing newlines at end of files.
&gt; 
&gt; r- for the missing newlines (I think the commit will fail w/o them).
&gt; 

Thanks Eric - will fix up the newlines and upload a new patch.

Cheers, Ben</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119585</commentid>
    <comment_count>16</comment_count>
      <attachid>29939</attachid>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2009-05-01 07:23:23 -0700</bug_when>
    <thetext>Created attachment 29939
Fixes newlines and adds other platforms

Fixes newline problem with the previous patch version and also adds the necessary edits to platforms other than windows (mac, qt, gtk, wx).

Please note: I do not have a GTK, Qt or WX setup to test this patch with. Although the edits on those platforms are straightforward and should be fine, someone with the a build setup for those platforms may want to test the patch before it lands to avoid any surprises :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119813</commentid>
    <comment_count>17</comment_count>
      <attachid>29939</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-04 02:01:41 -0700</bug_when>
    <thetext>Comment on attachment 29939
Fixes newlines and adds other platforms

The FOR_EACH_COCLASS change strikes me as a little strange.  But in general this looks great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120068</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-05 23:00:36 -0700</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/43283.  Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28891</attachid>
            <date>2009-03-24 07:52:34 -0700</date>
            <delta_ts>2009-03-24 11:35:56 -0700</delta_ts>
            <desc>Proposed fix for #ifdefs in Document and InspectorController</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>5402</size>
            <attacher name="Ben Murdoch">benm</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDQxOTM3
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDktMDMt
MjQgIEJlbiBNdXJkb2NoICA8YmVubUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbXBpbGluZyB3aXRoIEhUTUwgNSBEYXRhYmFz
ZSBkaXNhYmxlZCByZXN1bHRzIGluIGNvbXBpbGVyIGVycm9ycyBkdWUgdG8gI2lmZGVmJ2Qgb3V0
IG1ldGhvZHMgaW4gV2ViQ29yZTo6RG9jdW1lbnQgYW5kIFdlYkNvcmU6Okluc3BlY3RvckNvbnRy
b2xsZXIuIE1vdmVzIHRoZSAjaWZkZWYncyB0byBmaXggdGhpcy4KKyAgICAgICAgCisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGRPcGVu
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlbW92ZU9wZW5EYXRhYmFz
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGF0YWJhc2VUaHJlYWQpOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnN0b3BEYXRhYmFzZXMpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnNldEhhc09wZW5EYXRhYmFzZXMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6Omhhc09wZW5EYXRhYmFzZXMpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZE9wZW5EYXRhYmFzZSk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKwogMjAwOS0wMy0yMyAgR3JlZyBCb2xzaW5nYSAg
PGJvbHNpbmdhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBLaWx6ZXIu
CkluZGV4OiBkb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9Eb2N1bWVudC5jcHAJ
KHJldmlzaW9uIDQxOTA2KQorKysgZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDE2MCwyOCArNDE2MCwzMSBAQCBET01TZWxlY3Rpb24qIERvY3VtZW50OjpnZXRTZWxlY3Rpb24o
KSBjCiAgICAgcmV0dXJuIGZyYW1lKCkgPyBmcmFtZSgpLT5kb21XaW5kb3coKS0+Z2V0U2VsZWN0
aW9uKCkgOiAwOwogfQogCi0jaWYgRU5BQkxFKERBVEFCQVNFKQotCiB2b2lkIERvY3VtZW50Ojph
ZGRPcGVuRGF0YWJhc2UoRGF0YWJhc2UqIGRhdGFiYXNlKQogeworI2lmIEVOQUJMRShEQVRBQkFT
RSkKICAgICBpZiAoIW1fb3BlbkRhdGFiYXNlU2V0KQogICAgICAgICBtX29wZW5EYXRhYmFzZVNl
dC5zZXQobmV3IERhdGFiYXNlU2V0KTsKIAogICAgIEFTU0VSVCghbV9vcGVuRGF0YWJhc2VTZXQt
PmNvbnRhaW5zKGRhdGFiYXNlKSk7CiAgICAgbV9vcGVuRGF0YWJhc2VTZXQtPmFkZChkYXRhYmFz
ZSk7CisjZW5kaWYKIH0KIAogdm9pZCBEb2N1bWVudDo6cmVtb3ZlT3BlbkRhdGFiYXNlKERhdGFi
YXNlKiBkYXRhYmFzZSkKIHsKKyNpZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgQVNTRVJUKG1fb3Bl
bkRhdGFiYXNlU2V0ICYmIG1fb3BlbkRhdGFiYXNlU2V0LT5jb250YWlucyhkYXRhYmFzZSkpOwog
ICAgIGlmICghbV9vcGVuRGF0YWJhc2VTZXQpCiAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAg
ICAgbV9vcGVuRGF0YWJhc2VTZXQtPnJlbW92ZShkYXRhYmFzZSk7CisjZW5kaWYKIH0KIAogRGF0
YWJhc2VUaHJlYWQqIERvY3VtZW50OjpkYXRhYmFzZVRocmVhZCgpCiB7CisjaWYgRU5BQkxFKERB
VEFCQVNFKQogICAgIGlmICghbV9kYXRhYmFzZVRocmVhZCAmJiAhbV9oYXNPcGVuRGF0YWJhc2Vz
KSB7CiAgICAgICAgIC8vIENyZWF0ZSB0aGUgZGF0YWJhc2UgdGhyZWFkIG9uIGZpcnN0IHJlcXVl
c3QgLSBidXQgbm90IGlmIGF0IGxlYXN0IG9uZSBkYXRhYmFzZSB3YXMgYWxyZWFkeSBvcGVuZWQs
CiAgICAgICAgIC8vIGJlY2F1c2UgaW4gdGhhdCBjYXNlIHdlIGFscmVhZHkgaGFkIGEgZGF0YWJh
c2UgdGhyZWFkIGFuZCB0ZXJtaW5hdGVkIGl0IGFuZCBzaG91bGQgbm90IGNyZWF0ZSBhbm90aGVy
LgpAQCAtNDE5MSwxMCArNDE5NCwxNCBAQCBEYXRhYmFzZVRocmVhZCogRG9jdW1lbnQ6OmRhdGFi
YXNlVGhyZWFkCiAgICAgfQogCiAgICAgcmV0dXJuIG1fZGF0YWJhc2VUaHJlYWQuZ2V0KCk7Cisj
ZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCiB9CiAKIHZvaWQgRG9jdW1lbnQ6OnN0b3BEYXRh
YmFzZXMoKQogeworI2lmIEVOQUJMRShEQVRBQkFTRSkKICAgICBpZiAobV9vcGVuRGF0YWJhc2VT
ZXQpIHsKICAgICAgICAgRGF0YWJhc2VTZXQ6Oml0ZXJhdG9yIGkgPSBtX29wZW5EYXRhYmFzZVNl
dC0+YmVnaW4oKTsKICAgICAgICAgRGF0YWJhc2VTZXQ6Oml0ZXJhdG9yIGVuZCA9IG1fb3BlbkRh
dGFiYXNlU2V0LT5lbmQoKTsKQEAgLTQyMDcsOSArNDIxNCwyNCBAQCB2b2lkIERvY3VtZW50Ojpz
dG9wRGF0YWJhc2VzKCkKICAgICAKICAgICBpZiAobV9kYXRhYmFzZVRocmVhZCkKICAgICAgICAg
bV9kYXRhYmFzZVRocmVhZC0+cmVxdWVzdFRlcm1pbmF0aW9uKCk7CisjZW5kaWYKIH0KIAordm9p
ZCBEb2N1bWVudDo6c2V0SGFzT3BlbkRhdGFiYXNlcygpCit7CisjaWYgRU5BQkxFKERBVEFCQVNF
KQorICAgIG1faGFzT3BlbkRhdGFiYXNlcyA9IHRydWU7CiAjZW5kaWYKK30KK2Jvb2wgRG9jdW1l
bnQ6Omhhc09wZW5EYXRhYmFzZXMoKQoreworI2lmIEVOQUJMRShEQVRBQkFTRSkKKyAgICByZXR1
cm4gbV9oYXNPcGVuRGF0YWJhc2VzOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYK
K30KKwogCiAjaWYgRU5BQkxFKFdNTCkKIHZvaWQgRG9jdW1lbnQ6OnJlc2V0V01MUGFnZVN0YXRl
KCkKSW5kZXg6IGRvbS9Eb2N1bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9Eb2N1bWVudC5oCShy
ZXZpc2lvbiA0MTkwNikKKysrIGRvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDA2
LDE0ICsxMDA2LDEyIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgcHJvY2Vzc2luZ0xvYWRFdmVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc2luZ0xvYWRFdmVudDsgfQogCi0jaWYgRU5BQkxFKERB
VEFCQVNFKQogICAgIHZvaWQgYWRkT3BlbkRhdGFiYXNlKERhdGFiYXNlKik7CiAgICAgdm9pZCBy
ZW1vdmVPcGVuRGF0YWJhc2UoRGF0YWJhc2UqKTsKICAgICBEYXRhYmFzZVRocmVhZCogZGF0YWJh
c2VUaHJlYWQoKTsgICAvLyBDcmVhdGVzIHRoZSB0aHJlYWQgYXMgbmVlZGVkLCBidXQgbm90IGlm
IGl0IGhhcyBiZWVuIGFscmVhZHkgdGVybWluYXRlZC4KLSAgICB2b2lkIHNldEhhc09wZW5EYXRh
YmFzZXMoKSB7IG1faGFzT3BlbkRhdGFiYXNlcyA9IHRydWU7IH0KLSAgICBib29sIGhhc09wZW5E
YXRhYmFzZXMoKSB7IHJldHVybiBtX2hhc09wZW5EYXRhYmFzZXM7IH0KICAgICB2b2lkIHN0b3BE
YXRhYmFzZXMoKTsKLSNlbmRpZgorICAgIHZvaWQgRG9jdW1lbnQ6OnNldEhhc09wZW5EYXRhYmFz
ZXMoKTsKKyAgICBib29sIERvY3VtZW50OjpoYXNPcGVuRGF0YWJhc2VzKCk7CiAgICAgCiAgICAg
dm9pZCBzZXRVc2luZ0dlb2xvY2F0aW9uKGJvb2wgZikgeyBtX3VzaW5nR2VvbG9jYXRpb24gPSBm
OyB9CiAgICAgYm9vbCB1c2luZ0dlb2xvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV91c2luZ0dl
b2xvY2F0aW9uOyB9OwpJbmRleDogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAkocmV2aXNpb24g
NDE5MDYpCisrKyBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE1MjksOSArMTUyOSw5IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c2NyaXB0
SW1wb3J0ZWQKIH0KIAogCi0jaWYgRU5BQkxFKERBVEFCQVNFKQogdm9pZCBJbnNwZWN0b3JDb250
cm9sbGVyOjpkaWRPcGVuRGF0YWJhc2UoRGF0YWJhc2UqIGRhdGFiYXNlLCBjb25zdCBTdHJpbmcm
IGRvbWFpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZlcnNpb24pCiB7Cisj
aWYgRU5BQkxFKERBVEFCQVNFKQogICAgIGlmICghZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47
CiAKQEAgLTE1NDEsOCArMTU0MSw4IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkT3Bl
bkRhdGFiYXMKIAogICAgIGlmICh3aW5kb3dWaXNpYmxlKCkpCiAgICAgICAgIHJlc291cmNlLT5i
aW5kKHRvSlMobV9zY3JpcHRDb250ZXh0KSwgU2NyaXB0T2JqZWN0KHRvSlMobV9zY3JpcHRPYmpl
Y3QpKSk7Ci19CiAjZW5kaWYKK30KIAogI2lmIEVOQUJMRShET01fU1RPUkFHRSkKIHZvaWQgSW5z
cGVjdG9yQ29udHJvbGxlcjo6ZGlkVXNlRE9NU3RvcmFnZShTdG9yYWdlQXJlYSogc3RvcmFnZUFy
ZWEsIGJvb2wgaXNMb2NhbFN0b3JhZ2UsIEZyYW1lKiBmcmFtZSkKSW5kZXg6IGluc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuaAkocmV2aXNpb24gNDE5MDYpCisrKyBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTcsOSArMjE3LDggQEAgcHVibGljOgogICAgIHZv
aWQgcmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgSlNDOjpVU3RyaW5nJiBzb3VyY2VTdHJpbmcpOwogICAgIHZvaWQgc2NyaXB0
SW1wb3J0ZWQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBKU0M6OlVTdHJpbmcmIHNv
dXJjZVN0cmluZyk7CiAKLSNpZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgdm9pZCBkaWRPcGVuRGF0
YWJhc2UoRGF0YWJhc2UqLCBjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBTdHJpbmcmIHZlcnNpb24pOwotI2VuZGlmCisKICNpZiBFTkFCTEUoRE9NX1NUT1JB
R0UpCiAgICAgdm9pZCBkaWRVc2VET01TdG9yYWdlKFN0b3JhZ2VBcmVhKiBzdG9yYWdlQXJlYSwg
Ym9vbCBpc0xvY2FsU3RvcmFnZSwgRnJhbWUqIGZyYW1lKTsKICNlbmRpZgo=
</data>
<flag name="review"
          id="14273"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28894</attachid>
            <date>2009-03-24 11:35:56 -0700</date>
            <delta_ts>2009-03-25 13:06:03 -0700</delta_ts>
            <desc>Proposed fix for #ifdefs in Document and InspectorController</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>5382</size>
            <attacher name="Ben Murdoch">benm</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDQxOTM3
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDktMDMt
MjQgIEJlbiBNdXJkb2NoICA8YmVubUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbXBpbGluZyB3aXRoIEhUTUwgNSBEYXRhYmFz
ZSBkaXNhYmxlZCByZXN1bHRzIGluIGNvbXBpbGVyIGVycm9ycyBkdWUgdG8gI2lmZGVmJ2Qgb3V0
IG1ldGhvZHMgaW4gV2ViQ29yZTo6RG9jdW1lbnQgYW5kIFdlYkNvcmU6Okluc3BlY3RvckNvbnRy
b2xsZXIuIE1vdmVzIHRoZSAjaWZkZWYncyB0byBmaXggdGhpcy4KKyAgICAgICAgCisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGRPcGVu
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlbW92ZU9wZW5EYXRhYmFz
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGF0YWJhc2VUaHJlYWQpOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnN0b3BEYXRhYmFzZXMpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnNldEhhc09wZW5EYXRhYmFzZXMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6Omhhc09wZW5EYXRhYmFzZXMpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZE9wZW5EYXRhYmFzZSk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKwogMjAwOS0wMy0yMyAgR3JlZyBCb2xzaW5nYSAg
PGJvbHNpbmdhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBLaWx6ZXIu
CkluZGV4OiBkb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9Eb2N1bWVudC5jcHAJ
KHJldmlzaW9uIDQxOTA2KQorKysgZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDE2MCwyOCArNDE2MCwzMSBAQCBET01TZWxlY3Rpb24qIERvY3VtZW50OjpnZXRTZWxlY3Rpb24o
KSBjCiAgICAgcmV0dXJuIGZyYW1lKCkgPyBmcmFtZSgpLT5kb21XaW5kb3coKS0+Z2V0U2VsZWN0
aW9uKCkgOiAwOwogfQogCi0jaWYgRU5BQkxFKERBVEFCQVNFKQotCiB2b2lkIERvY3VtZW50Ojph
ZGRPcGVuRGF0YWJhc2UoRGF0YWJhc2UqIGRhdGFiYXNlKQogeworI2lmIEVOQUJMRShEQVRBQkFT
RSkKICAgICBpZiAoIW1fb3BlbkRhdGFiYXNlU2V0KQogICAgICAgICBtX29wZW5EYXRhYmFzZVNl
dC5zZXQobmV3IERhdGFiYXNlU2V0KTsKIAogICAgIEFTU0VSVCghbV9vcGVuRGF0YWJhc2VTZXQt
PmNvbnRhaW5zKGRhdGFiYXNlKSk7CiAgICAgbV9vcGVuRGF0YWJhc2VTZXQtPmFkZChkYXRhYmFz
ZSk7CisjZW5kaWYKIH0KIAogdm9pZCBEb2N1bWVudDo6cmVtb3ZlT3BlbkRhdGFiYXNlKERhdGFi
YXNlKiBkYXRhYmFzZSkKIHsKKyNpZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgQVNTRVJUKG1fb3Bl
bkRhdGFiYXNlU2V0ICYmIG1fb3BlbkRhdGFiYXNlU2V0LT5jb250YWlucyhkYXRhYmFzZSkpOwog
ICAgIGlmICghbV9vcGVuRGF0YWJhc2VTZXQpCiAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAg
ICAgbV9vcGVuRGF0YWJhc2VTZXQtPnJlbW92ZShkYXRhYmFzZSk7CisjZW5kaWYKIH0KIAogRGF0
YWJhc2VUaHJlYWQqIERvY3VtZW50OjpkYXRhYmFzZVRocmVhZCgpCiB7CisjaWYgRU5BQkxFKERB
VEFCQVNFKQogICAgIGlmICghbV9kYXRhYmFzZVRocmVhZCAmJiAhbV9oYXNPcGVuRGF0YWJhc2Vz
KSB7CiAgICAgICAgIC8vIENyZWF0ZSB0aGUgZGF0YWJhc2UgdGhyZWFkIG9uIGZpcnN0IHJlcXVl
c3QgLSBidXQgbm90IGlmIGF0IGxlYXN0IG9uZSBkYXRhYmFzZSB3YXMgYWxyZWFkeSBvcGVuZWQs
CiAgICAgICAgIC8vIGJlY2F1c2UgaW4gdGhhdCBjYXNlIHdlIGFscmVhZHkgaGFkIGEgZGF0YWJh
c2UgdGhyZWFkIGFuZCB0ZXJtaW5hdGVkIGl0IGFuZCBzaG91bGQgbm90IGNyZWF0ZSBhbm90aGVy
LgpAQCAtNDE5MSwxMCArNDE5NCwxNCBAQCBEYXRhYmFzZVRocmVhZCogRG9jdW1lbnQ6OmRhdGFi
YXNlVGhyZWFkCiAgICAgfQogCiAgICAgcmV0dXJuIG1fZGF0YWJhc2VUaHJlYWQuZ2V0KCk7Cisj
ZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCiB9CiAKIHZvaWQgRG9jdW1lbnQ6OnN0b3BEYXRh
YmFzZXMoKQogeworI2lmIEVOQUJMRShEQVRBQkFTRSkKICAgICBpZiAobV9vcGVuRGF0YWJhc2VT
ZXQpIHsKICAgICAgICAgRGF0YWJhc2VTZXQ6Oml0ZXJhdG9yIGkgPSBtX29wZW5EYXRhYmFzZVNl
dC0+YmVnaW4oKTsKICAgICAgICAgRGF0YWJhc2VTZXQ6Oml0ZXJhdG9yIGVuZCA9IG1fb3BlbkRh
dGFiYXNlU2V0LT5lbmQoKTsKQEAgLTQyMDcsOSArNDIxNCwyNCBAQCB2b2lkIERvY3VtZW50Ojpz
dG9wRGF0YWJhc2VzKCkKICAgICAKICAgICBpZiAobV9kYXRhYmFzZVRocmVhZCkKICAgICAgICAg
bV9kYXRhYmFzZVRocmVhZC0+cmVxdWVzdFRlcm1pbmF0aW9uKCk7CisjZW5kaWYKIH0KIAordm9p
ZCBEb2N1bWVudDo6c2V0SGFzT3BlbkRhdGFiYXNlcygpCit7CisjaWYgRU5BQkxFKERBVEFCQVNF
KQorICAgIG1faGFzT3BlbkRhdGFiYXNlcyA9IHRydWU7CiAjZW5kaWYKK30KK2Jvb2wgRG9jdW1l
bnQ6Omhhc09wZW5EYXRhYmFzZXMoKQoreworI2lmIEVOQUJMRShEQVRBQkFTRSkKKyAgICByZXR1
cm4gbV9oYXNPcGVuRGF0YWJhc2VzOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYK
K30KKwogCiAjaWYgRU5BQkxFKFdNTCkKIHZvaWQgRG9jdW1lbnQ6OnJlc2V0V01MUGFnZVN0YXRl
KCkKSW5kZXg6IGRvbS9Eb2N1bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9Eb2N1bWVudC5oCShy
ZXZpc2lvbiA0MTkwNikKKysrIGRvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDA2
LDE0ICsxMDA2LDEyIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgcHJvY2Vzc2luZ0xvYWRFdmVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc2luZ0xvYWRFdmVudDsgfQogCi0jaWYgRU5BQkxFKERB
VEFCQVNFKQogICAgIHZvaWQgYWRkT3BlbkRhdGFiYXNlKERhdGFiYXNlKik7CiAgICAgdm9pZCBy
ZW1vdmVPcGVuRGF0YWJhc2UoRGF0YWJhc2UqKTsKICAgICBEYXRhYmFzZVRocmVhZCogZGF0YWJh
c2VUaHJlYWQoKTsgICAvLyBDcmVhdGVzIHRoZSB0aHJlYWQgYXMgbmVlZGVkLCBidXQgbm90IGlm
IGl0IGhhcyBiZWVuIGFscmVhZHkgdGVybWluYXRlZC4KLSAgICB2b2lkIHNldEhhc09wZW5EYXRh
YmFzZXMoKSB7IG1faGFzT3BlbkRhdGFiYXNlcyA9IHRydWU7IH0KLSAgICBib29sIGhhc09wZW5E
YXRhYmFzZXMoKSB7IHJldHVybiBtX2hhc09wZW5EYXRhYmFzZXM7IH0KICAgICB2b2lkIHN0b3BE
YXRhYmFzZXMoKTsKLSNlbmRpZgorICAgIHZvaWQgc2V0SGFzT3BlbkRhdGFiYXNlcygpOworICAg
IGJvb2wgaGFzT3BlbkRhdGFiYXNlcygpOwogICAgIAogICAgIHZvaWQgc2V0VXNpbmdHZW9sb2Nh
dGlvbihib29sIGYpIHsgbV91c2luZ0dlb2xvY2F0aW9uID0gZjsgfQogICAgIGJvb2wgdXNpbmdH
ZW9sb2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdXNpbmdHZW9sb2NhdGlvbjsgfTsKSW5kZXg6
IGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBpbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDQxOTA2KQorKysgaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTI5LDkgKzE1Mjks
OSBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNjcmlwdEltcG9ydGVkCiB9CiAKIAotI2lm
IEVOQUJMRShEQVRBQkFTRSkKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkT3BlbkRhdGFi
YXNlKERhdGFiYXNlKiBkYXRhYmFzZSwgY29uc3QgU3RyaW5nJiBkb21haW4sIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uKQogeworI2lmIEVOQUJMRShEQVRBQkFTRSkK
ICAgICBpZiAoIWVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNTQxLDggKzE1NDEs
OCBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZE9wZW5EYXRhYmFzCiAKICAgICBpZiAo
d2luZG93VmlzaWJsZSgpKQogICAgICAgICByZXNvdXJjZS0+YmluZCh0b0pTKG1fc2NyaXB0Q29u
dGV4dCksIFNjcmlwdE9iamVjdCh0b0pTKG1fc2NyaXB0T2JqZWN0KSkpOwotfQogI2VuZGlmCit9
CiAKICNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRp
ZFVzZURPTVN0b3JhZ2UoU3RvcmFnZUFyZWEqIHN0b3JhZ2VBcmVhLCBib29sIGlzTG9jYWxTdG9y
YWdlLCBGcmFtZSogZnJhbWUpCkluZGV4OiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgJKHJldmlzaW9u
IDQxOTA2KQorKysgaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMjE3LDkgKzIxNyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc291cmNlUmV0cmlldmVk
QnlYTUxIdHRwUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IEpTQzo6VVN0
cmluZyYgc291cmNlU3RyaW5nKTsKICAgICB2b2lkIHNjcmlwdEltcG9ydGVkKHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgY29uc3QgSlNDOjpVU3RyaW5nJiBzb3VyY2VTdHJpbmcpOwogCi0jaWYg
RU5BQkxFKERBVEFCQVNFKQogICAgIHZvaWQgZGlkT3BlbkRhdGFiYXNlKERhdGFiYXNlKiwgY29u
c3QgU3RyaW5nJiBkb21haW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJz
aW9uKTsKLSNlbmRpZgorCiAjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQogICAgIHZvaWQgZGlkVXNl
RE9NU3RvcmFnZShTdG9yYWdlQXJlYSogc3RvcmFnZUFyZWEsIGJvb2wgaXNMb2NhbFN0b3JhZ2Us
IEZyYW1lKiBmcmFtZSk7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28942</attachid>
            <date>2009-03-25 13:06:03 -0700</date>
            <delta_ts>2009-03-31 10:54:03 -0700</delta_ts>
            <desc>Proposed fix for #ifdefs in Document and InspectorController</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>5869</size>
            <attacher name="Ben Murdoch">benm</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTkzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMDktMDMtMjQgIEJlbiBNdXJkb2NoICA8YmVubUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbXBp
bGluZyB3aXRoIEhUTUwgNSBEYXRhYmFzZSBkaXNhYmxlZCByZXN1bHRzIGluIGNvbXBpbGVyIGVy
cm9ycyBkdWUgdG8gI2lmZGVmJ2Qgb3V0IG1ldGhvZHMgaW4gV2ViQ29yZTo6RG9jdW1lbnQgYW5k
IFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXIuIE1vdmVzIHRoZSAjaWZkZWYncyB0byBmaXgg
dGhpcy4KKyAgICAgICAgCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjphZGRPcGVuRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OnJlbW92ZU9wZW5EYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
ZGF0YWJhc2VUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnN0b3BEYXRhYmFz
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldEhhc09wZW5EYXRhYmFzZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Omhhc09wZW5EYXRhYmFzZXMpOgorICAgICAgICAq
IGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZE9wZW5EYXRh
YmFzZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKwogMjAw
OS0wMy0yMyAgR3JlZyBCb2xzaW5nYSAgPGJvbHNpbmdhQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEYXZpZCBLaWx6ZXIuCkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiA0MTkwNikK
KysrIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDE2MCwyOCAr
NDE2MCwzNSBAQCBET01TZWxlY3Rpb24qIERvY3VtZW50OjpnZXRTZWxlY3Rpb24oKSBjCiAgICAg
cmV0dXJuIGZyYW1lKCkgPyBmcmFtZSgpLT5kb21XaW5kb3coKS0+Z2V0U2VsZWN0aW9uKCkgOiAw
OwogfQogCi0jaWYgRU5BQkxFKERBVEFCQVNFKQotCiB2b2lkIERvY3VtZW50OjphZGRPcGVuRGF0
YWJhc2UoRGF0YWJhc2UqIGRhdGFiYXNlKQogeworI2lmIEVOQUJMRShEQVRBQkFTRSkKICAgICBp
ZiAoIW1fb3BlbkRhdGFiYXNlU2V0KQogICAgICAgICBtX29wZW5EYXRhYmFzZVNldC5zZXQobmV3
IERhdGFiYXNlU2V0KTsKIAogICAgIEFTU0VSVCghbV9vcGVuRGF0YWJhc2VTZXQtPmNvbnRhaW5z
KGRhdGFiYXNlKSk7CiAgICAgbV9vcGVuRGF0YWJhc2VTZXQtPmFkZChkYXRhYmFzZSk7CisjZWxz
ZQorICAgIFVOVVNFRF9QQVJBTShkYXRhYmFzZSk7CisjZW5kaWYKIH0KIAogdm9pZCBEb2N1bWVu
dDo6cmVtb3ZlT3BlbkRhdGFiYXNlKERhdGFiYXNlKiBkYXRhYmFzZSkKIHsKKyNpZiBFTkFCTEUo
REFUQUJBU0UpCiAgICAgQVNTRVJUKG1fb3BlbkRhdGFiYXNlU2V0ICYmIG1fb3BlbkRhdGFiYXNl
U2V0LT5jb250YWlucyhkYXRhYmFzZSkpOwogICAgIGlmICghbV9vcGVuRGF0YWJhc2VTZXQpCiAg
ICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAgbV9vcGVuRGF0YWJhc2VTZXQtPnJlbW92ZShk
YXRhYmFzZSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkYXRhYmFzZSk7CisjZW5kaWYKIH0K
IAogRGF0YWJhc2VUaHJlYWQqIERvY3VtZW50OjpkYXRhYmFzZVRocmVhZCgpCiB7CisjaWYgRU5B
QkxFKERBVEFCQVNFKQogICAgIGlmICghbV9kYXRhYmFzZVRocmVhZCAmJiAhbV9oYXNPcGVuRGF0
YWJhc2VzKSB7CiAgICAgICAgIC8vIENyZWF0ZSB0aGUgZGF0YWJhc2UgdGhyZWFkIG9uIGZpcnN0
IHJlcXVlc3QgLSBidXQgbm90IGlmIGF0IGxlYXN0IG9uZSBkYXRhYmFzZSB3YXMgYWxyZWFkeSBv
cGVuZWQsCiAgICAgICAgIC8vIGJlY2F1c2UgaW4gdGhhdCBjYXNlIHdlIGFscmVhZHkgaGFkIGEg
ZGF0YWJhc2UgdGhyZWFkIGFuZCB0ZXJtaW5hdGVkIGl0IGFuZCBzaG91bGQgbm90IGNyZWF0ZSBh
bm90aGVyLgpAQCAtNDE5MSwxMCArNDE5OCwxNCBAQCBEYXRhYmFzZVRocmVhZCogRG9jdW1lbnQ6
OmRhdGFiYXNlVGhyZWFkCiAgICAgfQogCiAgICAgcmV0dXJuIG1fZGF0YWJhc2VUaHJlYWQuZ2V0
KCk7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCiB9CiAKIHZvaWQgRG9jdW1lbnQ6OnN0
b3BEYXRhYmFzZXMoKQogeworI2lmIEVOQUJMRShEQVRBQkFTRSkKICAgICBpZiAobV9vcGVuRGF0
YWJhc2VTZXQpIHsKICAgICAgICAgRGF0YWJhc2VTZXQ6Oml0ZXJhdG9yIGkgPSBtX29wZW5EYXRh
YmFzZVNldC0+YmVnaW4oKTsKICAgICAgICAgRGF0YWJhc2VTZXQ6Oml0ZXJhdG9yIGVuZCA9IG1f
b3BlbkRhdGFiYXNlU2V0LT5lbmQoKTsKQEAgLTQyMDcsOSArNDIxOCw4IEBAIHZvaWQgRG9jdW1l
bnQ6OnN0b3BEYXRhYmFzZXMoKQogICAgIAogICAgIGlmIChtX2RhdGFiYXNlVGhyZWFkKQogICAg
ICAgICBtX2RhdGFiYXNlVGhyZWFkLT5yZXF1ZXN0VGVybWluYXRpb24oKTsKLX0KLQogI2VuZGlm
Cit9CiAKICNpZiBFTkFCTEUoV01MKQogdm9pZCBEb2N1bWVudDo6cmVzZXRXTUxQYWdlU3RhdGUo
KQpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCShyZXZpc2lvbiA0MTkwNikKKysrIFdlYkNvcmUvZG9tL0RvY3VtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEwMDYsMTUgKzEwMDYsMTMgQEAgcHVibGljOgogCiAgICAgYm9v
bCBwcm9jZXNzaW5nTG9hZEV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9wcm9jZXNzaW5nTG9hZEV2
ZW50OyB9CiAKLSNpZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgdm9pZCBhZGRPcGVuRGF0YWJhc2Uo
RGF0YWJhc2UqKTsKICAgICB2b2lkIHJlbW92ZU9wZW5EYXRhYmFzZShEYXRhYmFzZSopOwogICAg
IERhdGFiYXNlVGhyZWFkKiBkYXRhYmFzZVRocmVhZCgpOyAgIC8vIENyZWF0ZXMgdGhlIHRocmVh
ZCBhcyBuZWVkZWQsIGJ1dCBub3QgaWYgaXQgaGFzIGJlZW4gYWxyZWFkeSB0ZXJtaW5hdGVkLgot
ICAgIHZvaWQgc2V0SGFzT3BlbkRhdGFiYXNlcygpIHsgbV9oYXNPcGVuRGF0YWJhc2VzID0gdHJ1
ZTsgfQotICAgIGJvb2wgaGFzT3BlbkRhdGFiYXNlcygpIHsgcmV0dXJuIG1faGFzT3BlbkRhdGFi
YXNlczsgfQorICAgIHZvaWQgc2V0SGFzT3BlbkRhdGFiYXNlcygpOworICAgIGJvb2wgaGFzT3Bl
bkRhdGFiYXNlcygpOwogICAgIHZvaWQgc3RvcERhdGFiYXNlcygpOwotI2VuZGlmCi0gICAgCisK
ICAgICB2b2lkIHNldFVzaW5nR2VvbG9jYXRpb24oYm9vbCBmKSB7IG1fdXNpbmdHZW9sb2NhdGlv
biA9IGY7IH0KICAgICBib29sIHVzaW5nR2VvbG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Vz
aW5nR2VvbG9jYXRpb247IH07CiAKQEAgLTExMTMsNiArMTExMSwyMiBAQCBpbmxpbmUgYm9vbCBO
b2RlOjppc0RvY3VtZW50Tm9kZSgpIGNvbnN0CiAgICAgcmV0dXJuIHRoaXMgPT0gbV9kb2N1bWVu
dC5nZXQoKTsKIH0KIAoraW5saW5lIHZvaWQgRG9jdW1lbnQ6OnNldEhhc09wZW5EYXRhYmFzZXMo
KQoreworI2lmIEVOQUJMRShEQVRBQkFTRSkKKyAgICBtX2hhc09wZW5EYXRhYmFzZXMgPSB0cnVl
OworI2VuZGlmCit9CisKK2lubGluZSBib29sIERvY3VtZW50OjpoYXNPcGVuRGF0YWJhc2VzKCkK
K3sKKyNpZiBFTkFCTEUoREFUQUJBU0UpCisgICAgcmV0dXJuIG1faGFzT3BlbkRhdGFiYXNlczsK
KyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIERvY3VtZW50X2gKSW5kZXg6IFdlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA0MTkwNikKKysrIFdlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTI5LDkgKzE1
MjksOSBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNjcmlwdEltcG9ydGVkCiB9CiAKIAot
I2lmIEVOQUJMRShEQVRBQkFTRSkKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkT3BlbkRh
dGFiYXNlKERhdGFiYXNlKiBkYXRhYmFzZSwgY29uc3QgU3RyaW5nJiBkb21haW4sIGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uKQogeworI2lmIEVOQUJMRShEQVRBQkFT
RSkKICAgICBpZiAoIWVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNTQxLDggKzE1
NDEsMTMgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRPcGVuRGF0YWJhcwogCiAgICAg
aWYgKHdpbmRvd1Zpc2libGUoKSkKICAgICAgICAgcmVzb3VyY2UtPmJpbmQodG9KUyhtX3Njcmlw
dENvbnRleHQpLCBTY3JpcHRPYmplY3QodG9KUyhtX3NjcmlwdE9iamVjdCkpKTsKLX0KKyNlbHNl
CisgICAgVU5VU0VEX1BBUkFNKGRhdGFiYXNlKTsKKyAgICBVTlVTRURfUEFSQU0oZG9tYWluKTsK
KyAgICBVTlVTRURfUEFSQU0obmFtZSk7CisgICAgVU5VU0VEX1BBUkFNKHZlcnNpb24pOwogI2Vu
ZGlmCit9CiAKICNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCiB2b2lkIEluc3BlY3RvckNvbnRyb2xs
ZXI6OmRpZFVzZURPTVN0b3JhZ2UoU3RvcmFnZUFyZWEqIHN0b3JhZ2VBcmVhLCBib29sIGlzTG9j
YWxTdG9yYWdlLCBGcmFtZSogZnJhbWUpCkluZGV4OiBXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5oCShyZXZpc2lvbiA0MTkwNikKKysrIFdlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjE3LDkgKzIxNyw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdCh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIGNvbnN0IEpTQzo6VVN0cmluZyYgc291cmNlU3RyaW5nKTsKICAgICB2
b2lkIHNjcmlwdEltcG9ydGVkKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgSlNDOjpV
U3RyaW5nJiBzb3VyY2VTdHJpbmcpOwogCi0jaWYgRU5BQkxFKERBVEFCQVNFKQogICAgIHZvaWQg
ZGlkT3BlbkRhdGFiYXNlKERhdGFiYXNlKiwgY29uc3QgU3RyaW5nJiBkb21haW4sIGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uKTsKLSNlbmRpZgorCiAjaWYgRU5BQkxF
KERPTV9TVE9SQUdFKQogICAgIHZvaWQgZGlkVXNlRE9NU3RvcmFnZShTdG9yYWdlQXJlYSogc3Rv
cmFnZUFyZWEsIGJvb2wgaXNMb2NhbFN0b3JhZ2UsIEZyYW1lKiBmcmFtZSk7CiAjZW5kaWYKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29126</attachid>
            <date>2009-03-31 10:54:03 -0700</date>
            <delta_ts>2009-05-01 07:23:23 -0700</delta_ts>
            <desc>Fix build break with HTML5 Database disbled</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>25975</size>
            <attacher name="Ben Murdoch">benm</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDQgQEAKKzIwMDktMDMtMzEgIEJlbiBNdXJkb2NoICA8YmVubUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDc3NgorICAgICAgICAKKyAgICAg
ICAgRGlzYWJsaW5nIEhUTUw1IERhdGFiYXNlcyBicmVha3MgdGhlIGJ1aWxkLiBUaGlzIHBhdGNo
IGZpeGVzIHRoYXQgYnkgc2V0dGluZyBjb3JyZWN0ICNpZiBFTkFCTEUoREFUQUJBU0UpIGRpcmVj
dGl2ZXMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudENhbGxi
YWNrLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudENhbGxi
YWNrLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNh
bGxiYWNrLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudEVy
cm9yQ2FsbGJhY2suaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0
aW9uQ2FsbGJhY2suY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJhbnNh
Y3Rpb25DYWxsYmFjay5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJhbnNh
Y3Rpb25FcnJvckNhbGxiYWNrLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVNR
TFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGF0
YWJhc2VDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU1FMVHJhbnNhY3Rpb25D
dXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdE9iamVjdFF1YXJhbnRpbmUu
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdE9iamVjdFF1YXJhbnRpbmUuaDoKKyAg
ICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHN0b3JhZ2UvQ2hhbmdlVmVy
c2lvbldyYXBwZXIuY3BwOgorICAgICAgICAqIHN0b3JhZ2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIu
aDoKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGFiYXNlOjpkYXRhYmFzZUluZm9UYWJsZU5hbWUpOgorICAgICAgICAqIHN0b3JhZ2UvRGF0YWJh
c2UuaDoKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlLmlkbDoKKyAgICAgICAgKiBzdG9yYWdl
L0RhdGFiYXNlVGFzay5jcHA6CisgICAgICAgICogc3RvcmFnZS9EYXRhYmFzZVRhc2suaDoKKyAg
ICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlVGhyZWFkLmNwcDoKKyAgICAgICAgKiBzdG9yYWdlL0Rh
dGFiYXNlVGhyZWFkLmg6CisgICAgICAgICogc3RvcmFnZS9EYXRhYmFzZVRyYWNrZXIuY3BwOgor
ICAgICAgICAqIHN0b3JhZ2UvRGF0YWJhc2VUcmFja2VyLmg6CisgICAgICAgICogc3RvcmFnZS9P
cmlnaW5RdW90YU1hbmFnZXIuY3BwOgorICAgICAgICAqIHN0b3JhZ2UvT3JpZ2luUXVvdGFNYW5h
Z2VyLmg6CisgICAgICAgICogc3RvcmFnZS9TUUxTdGF0ZW1lbnQuY3BwOgorICAgICAgICAqIHN0
b3JhZ2UvU1FMU3RhdGVtZW50Lmg6CisgICAgICAgICogc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5j
cHA6CisgICAgICAgICogc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5oOgorICAgICAgICAqIHN0b3Jh
Z2UvU1FMVHJhbnNhY3Rpb24uaWRsOgorCiAyMDA5LTAzLTMxICBSYWZhZWwgV2VpbnN0ZWluICA8
cmFmYWVsd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwu
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2su
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0ZW1l
bnRDYWxsYmFjay5jcHAJKHJldmlzaW9uIDQyMDA3KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0N1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiAr
MjgsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNDdXN0b21TUUxTdGF0
ZW1lbnRDYWxsYmFjay5oIgorI2lmIEVOQUJMRShEQVRBQkFTRSkKIAogI2luY2x1ZGUgIkZyYW1l
LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgpAQCAtOTAsMyArOTEsNSBAQCB2b2lk
IEpTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2s6OmhhbmRsCiB9CiAKIH0KKworI2VuZGlmIC8v
IEVOQUJMRShEQVRBQkFTRSkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2suaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2suaAko
cmV2aXNpb24gNDIwMDcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVt
ZW50Q2FsbGJhY2suaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksOCBAQAogI2lmbmRlZiBK
U0N1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrX2gKICNkZWZpbmUgSlNDdXN0b21TUUxTdGF0ZW1l
bnRDYWxsYmFja19oCiAKKyNpZiBFTkFCTEUoREFUQUJBU0UpCisKICNpbmNsdWRlICJTUUxTdGF0
ZW1lbnRDYWxsYmFjay5oIgogCiAjaW5jbHVkZSA8cnVudGltZS9KU09iamVjdC5oPgpAQCAtNTks
NCArNjEsNiBAQCBwcml2YXRlOgogCiB9CiAKKyNlbmRpZiAvLyBFTkFCTEUoREFUQUJBU0UpCisK
ICNlbmRpZiAvLyBKU0N1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrX2gKSW5kZXg6IFdlYkNvcmUv
YmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxs
YmFjay5jcHAJKHJldmlzaW9uIDQyMDA3KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3Rv
bVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsy
OSw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNDdXN0b21TUUxTdGF0ZW1l
bnRFcnJvckNhbGxiYWNrLmgiCiAKKyNpZiBFTkFCTEUoREFUQUJBU0UpCisKICNpbmNsdWRlICJG
cmFtZS5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJKU1NRTEVy
cm9yLmgiCkBAIC0xMDIsMyArMTA0LDUgQEAgYm9vbCBKU0N1c3RvbVNRTFN0YXRlbWVudEVycm9y
Q2FsbGJhY2s6OgogfQogCiB9CisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQUJBU0UpClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNR
TFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oCShyZXZpc2lvbiA0MjAwNykK
KysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNr
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDggQEAKICNpZm5kZWYgSlNDdXN0b21TUUxT
dGF0ZW1lbnRFcnJvckNhbGxiYWNrX2gKICNkZWZpbmUgSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJv
ckNhbGxiYWNrX2gKIAorI2lmIEVOQUJMRShEQVRBQkFTRSkKKwogI2luY2x1ZGUgIlNRTFN0YXRl
bWVudEVycm9yQ2FsbGJhY2suaCIKIAogI2luY2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KQEAg
LTU5LDUgKzYxLDcgQEAgcHJpdmF0ZToKICAgICAKIH0KIAorI2VuZGlmIC8vIEVOQUJMRShEQVRB
QkFTRSkKKwogI2VuZGlmIC8vIEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFja19oCiAK
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNr
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJhbnNh
Y3Rpb25DYWxsYmFjay5jcHAJKHJldmlzaW9uIDQyMDA3KQorKysgV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
OSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNDdXN0b21TUUxU
cmFuc2FjdGlvbkNhbGxiYWNrLmgiCiAKKyNpZiBFTkFCTEUoREFUQUJBU0UpCisKICNpbmNsdWRl
ICJGcmFtZS5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJKU1NR
TFRyYW5zYWN0aW9uLmgiCkBAIC0xMzQsMyArMTM2LDUgQEAgdm9pZCBKU0N1c3RvbVNRTFRyYW5z
YWN0aW9uQ2FsbGJhY2s6OmhhbgogfQogICAgIAogfQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEFC
QVNFKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mv
anMvSlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaAkocmV2aXNpb24g
NDIwMDcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxs
YmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBACiAjaWZuZGVmIEpTQ3VzdG9t
U1FMVHJhbnNhY3Rpb25DYWxsYmFja19oCiAjZGVmaW5lIEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25D
YWxsYmFja19oCiAKKyNpZiBFTkFCTEUoREFUQUJBU0UpCisKICNpbmNsdWRlICJTUUxUcmFuc2Fj
dGlvbkNhbGxiYWNrLmgiCiAKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtNjAsNCAr
NjIsNiBAQCBwcml2YXRlOgogCiB9CiAKKyNlbmRpZiAvLyBFTkFCTEUoREFUQUJBU0UpCisKICNl
bmRpZiAvLyBKU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2tfaApJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JD
YWxsYmFjay5jcHAJKHJldmlzaW9uIDQyMDA3KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1
c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDYgKzI5LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU0N1c3RvbVNRTFRy
YW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oIgogCisjaWYgRU5BQkxFKERBVEFCQVNFKQorCiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
SlNTUUxFcnJvci5oIgpAQCAtODgsMyArOTAsNSBAQCBib29sIEpTQ3VzdG9tU1FMVHJhbnNhY3Rp
b25FcnJvckNhbGxiYWNrCiB9CiAgICAgCiB9CisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQUJBU0Up
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaAkocmV2
aXNpb24gNDIwMDcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJhbnNhY3Rp
b25FcnJvckNhbGxiYWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDggQEAKICNpZm5k
ZWYgSlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2tfaAogI2RlZmluZSBKU0N1c3Rv
bVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFja19oCiAKKyNpZiBFTkFCTEUoREFUQUJBU0UpCisK
ICNpbmNsdWRlICJTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaCIKIAogI2luY2x1ZGUgPHJ1
bnRpbWUvSlNPYmplY3QuaD4KQEAgLTU4LDUgKzYwLDYgQEAgcHJpdmF0ZToKIH07CiAKIH0KKyNl
bmRpZiAvLyBFTkFCTEUoREFUQUJBU0UpCiAKICNlbmRpZiAvLyBKU0N1c3RvbVNRTFRyYW5zYWN0
aW9uRXJyb3JDYWxsYmFja19oCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGF0YWJhc2VD
dXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhYmFzZUN1
c3RvbS5jcHAJKHJldmlzaW9uIDQyMDA3KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RhdGFi
YXNlQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksOCBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTRGF0YWJhc2UuaCIKIAorI2lmIEVOQUJMRShEQVRBQkFT
RSkKKwogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRhdGFiYXNlLmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKQEAgLTEyNiwzICsxMjgsNCBAQCBKU1ZhbHVlUHRyIEpTRGF0YWJh
c2U6OnRyYW5zYWN0aW9uKEV4ZWNTCiB9CiAgICAgCiB9CisjZW5kaWYgLy8gRU5BQkxFKERBVEFC
QVNFKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mv
anMvSlNTUUxUcmFuc2FjdGlvbkN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1NRTFRyYW5zYWN0aW9uQ3VzdG9tLmNwcAkocmV2aXNpb24gNDIwMDcpCisrKyBX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1FMVHJhbnNhY3Rpb25DdXN0b20uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNT
UUxUcmFuc2FjdGlvbi5oIgogCisjaWYgRU5BQkxFKERBVEFCQVNFKQorCiAjaW5jbHVkZSAiRE9N
V2luZG93LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkpTQ3VzdG9t
U1FMU3RhdGVtZW50Q2FsbGJhY2suaCIKQEAgLTExMiwzICsxMTQsNSBAQCBKU1ZhbHVlUHRyIEpT
U1FMVHJhbnNhY3Rpb246OmV4ZWN1dGVTcWwoCiB9CiAKIH0KKworI2VuZGlmIC8vIEVOQUJMRShE
QVRBQkFTRSkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBXZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdE9iamVjdFF1YXJhbnRpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0T2JqZWN0UXVhcmFudGluZS5jcHAJKHJldmlzaW9uIDQyMDA3KQor
KysgV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRPYmplY3RRdWFyYW50aW5lLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsNyArMzEsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IlNjcmlwdE9iamVjdFF1YXJhbnRpbmUuaCIKIAorI2lmIEVOQUJMRShEQVRBQkFTRSkKICNpbmNs
dWRlICJEYXRhYmFzZS5oIgorI2VuZGlmCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgogI2luY2x1ZGUgIkpTRGF0YWJhc2UuaCIKQEAgLTUzLDYgKzU1LDcgQEAgU2Ny
aXB0VmFsdWUgcXVhcmFudGluZVZhbHVlKFNjcmlwdFN0YXRlKgogICAgIHJldHVybiBTY3JpcHRW
YWx1ZShKU0luc3BlY3RlZE9iamVjdFdyYXBwZXI6OndyYXAoc2NyaXB0U3RhdGUsIHZhbHVlLmpz
VmFsdWUoKSkpOwogfQogCisjaWYgRU5BQkxFKERBVEFCQVNFKQogYm9vbCBnZXRRdWFyYW50aW5l
ZFNjcmlwdE9iamVjdChEYXRhYmFzZSogZGF0YWJhc2UsIFNjcmlwdE9iamVjdCYgcXVhcmFudGlu
ZWRPYmplY3QpCiB7CiAgICAgQVNTRVJUKGRhdGFiYXNlKTsKQEAgLTY4LDYgKzcxLDcgQEAgYm9v
bCBnZXRRdWFyYW50aW5lZFNjcmlwdE9iamVjdChEYXRhYmFzZQogCiAgICAgcmV0dXJuIHRydWU7
CiB9CisjZW5kaWYKIAogYm9vbCBnZXRRdWFyYW50aW5lZFNjcmlwdE9iamVjdChGcmFtZSogZnJh
bWUsIFN0b3JhZ2UqIHN0b3JhZ2UsIFNjcmlwdE9iamVjdCYgcXVhcmFudGluZWRPYmplY3QpCiB7
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdFF1YXJhbnRpbmUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdFF1YXJhbnRpbmUuaAko
cmV2aXNpb24gNDIwMDcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdFF1YXJh
bnRpbmUuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsOSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKKyNpZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgY2xhc3MgRGF0YWJhc2U7CisjZW5k
aWYKICAgICBjbGFzcyBGcmFtZTsKICAgICBjbGFzcyBTY3JpcHRPYmplY3Q7CiAgICAgY2xhc3Mg
U2NyaXB0VmFsdWU7CkBAIC00Myw3ICs0NSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAg
IFNjcmlwdFZhbHVlIHF1YXJhbnRpbmVWYWx1ZShTY3JpcHRTdGF0ZSosIGNvbnN0IFNjcmlwdFZh
bHVlJik7CiAKKyNpZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgYm9vbCBnZXRRdWFyYW50aW5lZFNj
cmlwdE9iamVjdChEYXRhYmFzZSogZGF0YWJhc2UsIFNjcmlwdE9iamVjdCYgcXVhcmFudGluZWRP
YmplY3QpOworI2VuZGlmCiAgICAgYm9vbCBnZXRRdWFyYW50aW5lZFNjcmlwdE9iamVjdChGcmFt
ZSogZnJhbWUsIFN0b3JhZ2UqIHN0b3JhZ2UsIFNjcmlwdE9iamVjdCYgcXVhcmFudGluZWRPYmpl
Y3QpOwogCiB9CkluZGV4OiBXZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCShyZXZpc2lvbiA0MjAwNykKKysrIFdlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTMwLDcgKzEzMCw5IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoRnJhbWUq
KSA9IDA7CiAKKyNpZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgICAgIHZpcnR1YWwgdm9pZCBleGNl
ZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSkgPSAw
OworI2VuZGlmCiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAgICAgICAgIHZpcnR1
YWwgdm9pZCBkYXNoYm9hcmRSZWdpb25zQ2hhbmdlZCgpOwpJbmRleDogV2ViQ29yZS9zdG9yYWdl
L0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2Uv
Q2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwCShyZXZpc2lvbiA0MjAwNykKKysrIFdlYkNvcmUvc3Rv
cmFnZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDaGFuZ2VWZXJzaW9uV3JhcHBl
ci5oIgogCisjaWYgRU5BQkxFKERBVEFCQVNFKQogI2luY2x1ZGUgIkRhdGFiYXNlLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTc1LDMgKzc2LDUgQEAgYm9vbCBDaGFuZ2VWZXJzaW9uV3Jh
cHBlcjo6cGVyZm9ybVBvc3RmbAogfQogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKERBVEFCQVNFKQpJbmRleDogV2ViQ29yZS9zdG9yYWdlL0NoYW5nZVZl
cnNpb25XcmFwcGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL0NoYW5nZVZlcnNp
b25XcmFwcGVyLmgJKHJldmlzaW9uIDQyMDA3KQorKysgV2ViQ29yZS9zdG9yYWdlL0NoYW5nZVZl
cnNpb25XcmFwcGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDggQEAKICNpZm5kZWYg
Q2hhbmdlVmVyc2lvbldyYXBwZXJfaAogI2RlZmluZSBDaGFuZ2VWZXJzaW9uV3JhcHBlcl9oCiAK
KyNpZiBFTkFCTEUoREFUQUJBU0UpCisKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2lu
Y2x1ZGUgIlNRTFRyYW5zYWN0aW9uLmgiCiAKQEAgLTUyLDQgKzU0LDYgQEAgcHJpdmF0ZToKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCisjZW5kaWYKKwogI2VuZGlmIC8vIENoYW5nZVZlcnNp
b25XcmFwcGVyX2gKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlLmNwcAkocmV2aXNpb24gNDIwMDcpCisrKyBX
ZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2UuaCIKIAorI2lmIEVO
QUJMRShEQVRBQkFTRSkKICNpbmNsdWRlICJDaGFuZ2VWZXJzaW9uV3JhcHBlci5oIgogI2luY2x1
ZGUgIkNTdHJpbmcuaCIKICNpbmNsdWRlICJEYXRhYmFzZUF1dGhvcml6ZXIuaCIKQEAgLTQ5LDYg
KzUwLDcgQEAKICNpbmNsdWRlICJTUUxSZXN1bHRTZXQuaCIKICNpbmNsdWRlIDx3dGYvTWFpblRo
cmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNlbmRpZgogCiAjaWYgVVNF
KEpTQykKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgpAQCAtNTcsNiArNTksMTQgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCitjb25zdCBTdHJpbmcmIERhdGFiYXNlOjpkYXRhYmFzZUluZm9U
YWJsZU5hbWUoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBuYW1lLCAoIl9f
V2ViS2l0RGF0YWJhc2VJbmZvVGFibGVfXyIpKTsKKyAgICByZXR1cm4gbmFtZTsKK30KKworI2lm
IEVOQUJMRShEQVRBQkFTRSkKKwogc3RhdGljIE11dGV4JiBndWlkTXV0ZXgoKQogewogICAgIC8v
IE5vdGU6IFdlIGRvbid0IGhhdmUgdG8gdXNlIEF0b21pY2FsbHlJbml0aWFsaXplZFN0YXRpYyBo
ZXJlIGJlY2F1c2UKQEAgLTgwLDEyICs5MCw2IEBAIHN0YXRpYyBHdWlkRGF0YWJhc2VNYXAmIGd1
aWRUb0RhdGFiYXNlTWEKICAgICByZXR1cm4gbWFwOwogfQogCi1jb25zdCBTdHJpbmcmIERhdGFi
YXNlOjpkYXRhYmFzZUluZm9UYWJsZU5hbWUoKQotewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
U3RyaW5nLCBuYW1lLCAoIl9fV2ViS2l0RGF0YWJhc2VJbmZvVGFibGVfXyIpKTsKLSAgICByZXR1
cm4gbmFtZTsKLX0KLQogc3RhdGljIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VWZXJzaW9uS2V5KCkK
IHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywga2V5LCAoIldlYktpdERhdGFiYXNl
VmVyc2lvbktleSIpKTsKQEAgLTU5OSw0ICs2MDMsNiBAQCBTdHJpbmcgRGF0YWJhc2U6OnN0cmlu
Z0lkZW50aWZpZXIoKSBjb25zCiAgICAgcmV0dXJuIG1fbmFtZS5jb3B5KCk7CiB9CiAKKyNlbmRp
ZgorCiB9CkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuaAkocmV2aXNpb24gNDIwMDcpCisrKyBXZWJDb3JlL3N0
b3JhZ2UvRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2lmbmRl
ZiBEYXRhYmFzZV9oCiAjZGVmaW5lIERhdGFiYXNlX2gKIAorI2lmIEVOQUJMRShEQVRBQkFTRSkK
ICNpbmNsdWRlIDx3dGYvTWVzc2FnZVF1ZXVlLmg+CiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgpAQCAtNDQsNyArNDUsMTEgQEAKICNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvRGVxdWUuaD4KKyNlbHNlCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNlbmRp
ZgogCisjaWYgRU5BQkxFKERBVEFCQVNFKQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBE
YXRhYmFzZUF1dGhvcml6ZXI7CkBAIC0xNDUsNCArMTUwLDE1IEBAIHByaXZhdGU6CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAorI2Vsc2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3Mg
RGF0YWJhc2UgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxEYXRhYmFzZT4geworcHVibGljOgor
ICAgIHN0YXRpYyBjb25zdCBTdHJpbmcmIGRhdGFiYXNlSW5mb1RhYmxlTmFtZSgpOworfTsKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRBQkFTRSkKKwogI2Vu
ZGlmIC8vIERhdGFiYXNlX2gKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlLmlkbAkocmV2aXNpb24gNDIwMDcp
CisrKyBXZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3
ICsyOCw5IEBACiAKIG1vZHVsZSBzdG9yYWdlIHsKIAotICAgIGludGVyZmFjZSBEYXRhYmFzZSB7
CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9REFUQUJBU0UKKyAgICBdIERh
dGFiYXNlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2ZXJzaW9uOwog
ICAgICAgICBbQ3VzdG9tXSB2b2lkIGNoYW5nZVZlcnNpb24oaW4gRE9NU3RyaW5nIG9sZFZlcnNp
b24sIGluIERPTVN0cmluZyBuZXdWZXJzaW9uLCBpbiBTUUxUcmFuc2FjdGlvbkNhbGxiYWNrIGNh
bGxiYWNrLCBpbiBTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjaywgaW4g
Vm9pZENhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjayk7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgdHJh
bnNhY3Rpb24oaW4gU1FMVHJhbnNhY3Rpb25DYWxsYmFjayBjYWxsYmFjaywgaW4gU1FMVHJhbnNh
Y3Rpb25FcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2ssIGluIFZvaWRDYWxsYmFjayBzdWNjZXNz
Q2FsbGJhY2spOwpJbmRleDogV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVGFzay5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVGFzay5jcHAJKHJldmlzaW9uIDQyMDA3
KQorKysgV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVGFzay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDYgKzI4LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEYXRhYmFzZVRh
c2suaCIKIAorI2lmIEVOQUJMRShEQVRBQkFTRSkKKwogI2luY2x1ZGUgIkRhdGFiYXNlLmgiCiAj
aW5jbHVkZSAiTG9nZ2luZy5oIgogCkBAIC0xNzUsMyArMTc3LDUgQEAgY29uc3QgY2hhciogRGF0
YWJhc2VUYWJsZU5hbWVzVGFzazo6ZGVidQogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmCkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUYXNrLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVGFzay5oCShyZXZpc2lvbiA0MjAwNykK
KysrIFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRhc2suaAkod29ya2luZyBjb3B5KQpAQCAtMjgs
NiArMjgsNyBAQAogI2lmbmRlZiBEYXRhYmFzZVRhc2tfaAogI2RlZmluZSBEYXRhYmFzZVRhc2tf
aAogCisjaWYgRU5BQkxFKERBVEFCQVNFKQogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTE0
OCw0ICsxNDksNSBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKKyNlbmRp
ZiAvLyBFTkFCTEUoREFUQUJBU0UpCiAjZW5kaWYgLy8gRGF0YWJhc2VUYXNrX2gKSW5kZXg6IFdl
YkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRocmVhZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9z
dG9yYWdlL0RhdGFiYXNlVGhyZWFkLmNwcAkocmV2aXNpb24gNDIwMDcpCisrKyBXZWJDb3JlL3N0
b3JhZ2UvRGF0YWJhc2VUaHJlYWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VUaHJlYWQuaCIKIAorI2lm
IEVOQUJMRShEQVRBQkFTRSkKKwogI2luY2x1ZGUgIkF1dG9kcmFpbmVkUG9vbC5oIgogI2luY2x1
ZGUgIkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VUYXNrLmgiCkBAIC0xMzUsMyArMTM3
LDQgQEAgdm9pZCBEYXRhYmFzZVRocmVhZDo6dW5zY2hlZHVsZURhdGFiYXNlVAogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFz
ZVRocmVhZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRocmVhZC5o
CShyZXZpc2lvbiA0MjAwNykKKysrIFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRocmVhZC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaWZuZGVmIERhdGFiYXNlVGhyZWFkX2gK
ICNkZWZpbmUgRGF0YWJhc2VUaHJlYWRfaAogCisjaWYgRU5BQkxFKERBVEFCQVNFKQogI2luY2x1
ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KQEAgLTcwLDQgKzcxLDUgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCisjZW5kaWYgLy8gRU5BQkxFKERBVEFCQVNFKQogI2VuZGlmIC8vIERhdGFiYXNl
VGhyZWFkX2gKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRyYWNrZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRyYWNrZXIuY3BwCShyZXZpc2lvbiA0
MjAwNykKKysrIFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRyYWNrZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRGF0
YWJhc2VUcmFja2VyLmgiCiAKKyNpZiBFTkFCTEUoREFUQUJBU0UpCisKICNpbmNsdWRlICJDaHJv
bWVDbGllbnQuaCIKICNpbmNsdWRlICJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIkRhdGFiYXNlVHJh
Y2tlckNsaWVudC5oIgpAQCAtODI4LDMgKzgzMCw0IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpu
b3RpZnlEYXRhYmFzZXNDaGEKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VU
cmFja2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVHJhY2tlci5o
CShyZXZpc2lvbiA0MjAwNykKKysrIFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRyYWNrZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksOCBAQAogI2lmbmRlZiBEYXRhYmFzZVRyYWNrZXJf
aAogI2RlZmluZSBEYXRhYmFzZVRyYWNrZXJfaAogCisjaWYgRU5BQkxFKERBVEFCQVNFKQorCiAj
aW5jbHVkZSAiRGF0YWJhc2VEZXRhaWxzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
ICNpbmNsdWRlICJTUUxpdGVEYXRhYmFzZS5oIgpAQCAtMTMwLDQgKzEzMiw1IEBAIHByaXZhdGU6
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorI2VuZGlmIC8vIEVOQUJMRShEQVRBQkFTRSkK
ICNlbmRpZiAvLyBEYXRhYmFzZVRyYWNrZXJfaApJbmRleDogV2ViQ29yZS9zdG9yYWdlL09yaWdp
blF1b3RhTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL09yaWdpblF1
b3RhTWFuYWdlci5jcHAJKHJldmlzaW9uIDQyMDA3KQorKysgV2ViQ29yZS9zdG9yYWdlL09yaWdp
blF1b3RhTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDggQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJPcmlnaW5RdW90YU1hbmFnZXIuaCIKIAorI2lmIEVO
QUJMRShEQVRBQkFTRSkKKwogI2luY2x1ZGUgIkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiT3JpZ2lu
VXNhZ2VSZWNvcmQuaCIKIApAQCAtMTIxLDMgKzEyMyw1IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBP
cmlnaW5RdW90YU1hbmFnZXI6OmQKIAogCiB9CisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQUJBU0Up
CkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvT3JpZ2luUXVvdGFNYW5hZ2VyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9zdG9yYWdlL09yaWdpblF1b3RhTWFuYWdlci5oCShyZXZpc2lvbiA0MjAwNykK
KysrIFdlYkNvcmUvc3RvcmFnZS9PcmlnaW5RdW90YU1hbmFnZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtMjksNiArMjksOCBAQAogI2lmbmRlZiBPcmlnaW5RdW90YU1hbmFnZXJfaAogI2RlZmluZSBP
cmlnaW5RdW90YU1hbmFnZXJfaAogCisjaWYgRU5BQkxFKERBVEFCQVNFKQorCiAjaW5jbHVkZSAi
U3RyaW5nSGFzaC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luSGFzaC5oIgogI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CkBAIC02Nyw0ICs2OSw2IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAorI2VuZGlmIC8vIEVOQUJMRShEQVRBQkFTRSkKKwogI2VuZGlmIC8vIE9y
aWdpblF1b3RhTWFuYWdlcl9oCkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50LmNwcAkocmV2aXNp
b24gNDIwMDcpCisrKyBXZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjgsNiArMjgsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNR
TFN0YXRlbWVudC5oIgogCisjaWYgRU5BQkxFKERBVEFCQVNFKQorCiAjaW5jbHVkZSAiRGF0YWJh
c2UuaCIKICNpbmNsdWRlICJEYXRhYmFzZUF1dGhvcml6ZXIuaCIKICNpbmNsdWRlICJMb2dnaW5n
LmgiCkBAIC0xOTUsMyArMTk3LDUgQEAgYm9vbCBTUUxTdGF0ZW1lbnQ6Omxhc3RFeGVjdXRpb25G
YWlsZWREdQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
REFUQUJBU0UpCkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudC5oCShyZXZpc2lvbiA0MjAwNykKKysr
IFdlYkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiAr
MjgsOCBAQAogI2lmbmRlZiBTUUxTdGF0ZW1lbnRfaAogI2RlZmluZSBTUUxTdGF0ZW1lbnRfaAog
CisjaWYgRU5BQkxFKERBVEFCQVNFKQorCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKIAog
I2luY2x1ZGUgIlNRTEVycm9yLmgiCkBAIC04MCw0ICs4Miw2IEBAIHByaXZhdGU6CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAorI2VuZGlmIC8vIEVOQUJMRShEQVRBQkFTRSkKKwogI2VuZGlm
IC8vIFNRTFN0YXRlbWVudF9oCkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb24u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHAJKHJl
dmlzaW9uIDQyMDA3KQorKysgV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjksNiArMjksOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIlNRTFRyYW5zYWN0aW9uLmgiCiAKKyNpZiBFTkFCTEUoREFUQUJBU0UpCisKICNpbmNsdWRl
ICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIkRhdGFi
YXNlQXV0aG9yaXplci5oIgpAQCAtNTQ4LDMgKzU1MCw1IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246
OmNsZWFudXBBZnRlclRyYW5zYWMKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKERBVEFCQVNFKQpJbmRleDogV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0
aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uLmgJKHJl
dmlzaW9uIDQyMDA3KQorKysgV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDYgKzI4LDggQEAKICNpZm5kZWYgU1FMVHJhbnNhY3Rpb25faAogI2Rl
ZmluZSBTUUxUcmFuc2FjdGlvbl9oCiAKKyNpZiBFTkFCTEUoREFUQUJBU0UpCisKICNpbmNsdWRl
IDx3dGYvVGhyZWFkaW5nLmg+CiAKICNpbmNsdWRlICJTUUxpdGVUcmFuc2FjdGlvbi5oIgpAQCAt
MTI4LDQgKzEzMCw2IEBAIHByaXZhdGU6CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
KyNlbmRpZgorCiAjZW5kaWYgLy8gU1FMVHJhbnNhY3Rpb25faApJbmRleDogV2ViQ29yZS9zdG9y
YWdlL1NRTFRyYW5zYWN0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvU1FM
VHJhbnNhY3Rpb24uaWRsCShyZXZpc2lvbiA0MjAwNykKKysrIFdlYkNvcmUvc3RvcmFnZS9TUUxU
cmFuc2FjdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDkgQEAKIAogbW9kdWxl
IHN0b3JhZ2UgewogCi0gICAgaW50ZXJmYWNlIFNRTFRyYW5zYWN0aW9uIHsKKyAgICBpbnRlcmZh
Y2UgWworICAgICAgICBDb25kaXRpb25hbD1EQVRBQkFTRQorICAgIF0gU1FMVHJhbnNhY3Rpb24g
ewogICAgICAgICBbQ3VzdG9tXSB2b2lkIGV4ZWN1dGVTcWwoaW4gRE9NU3RyaW5nIHNxbFN0YXRl
bWVudCwgaW4gT2JqZWN0QXJyYXkgYXJndW1lbnRzLCBpbiBTUUxTdGF0ZW1lbnRDYWxsYmFjayBj
YWxsYmFjaywgaW4gU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKICAg
ICB9OwogfQpJbmRleDogV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDQyMTMyKQorKysgV2ViS2l0L3dpbi9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAwOS0wMy0zMSAgQmVuIE11cmRvY2gg
IDxiZW5tQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisgICAgICAgIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjQ3NzYKKyAgICAgICAgCisgICAgICAgIERpc2FibGluZyBIVE1MNSBEYXRhYmFzZXMgYnJl
YWtzIHRoZSBidWlsZC4gVGhpcyBwYXRjaCBmaXhlcyB0aGF0IGJ5IHNldHRpbmcgY29ycmVjdCAj
aWYgRU5BQkxFKERBVEFCQVNFKSBkaXJlY3RpdmVzLgorCisgICAgICAgICogRm9yRWFjaENvQ2xh
c3MuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkRh
dGFiYXNlTWFuYWdlci5jcHA6CisgICAgICAgICogV2ViRGF0YWJhc2VNYW5hZ2VyLmg6CisgICAg
ICAgICogV2ViS2l0LnZjcHJvai9XZWJLaXQudmNwcm9qOgorICAgICAgICAqIFdlYlNlY3VyaXR5
T3JpZ2luLmNwcDoKKyAgICAgICAgKiBXZWJTZWN1cml0eU9yaWdpbi5oOgorICAgICAgICAqIFdl
YlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6aW5pdFdpdGhGcmFtZSk6CisKIDIwMDktMDMt
MzAgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeGVz
IGFmdGVyIHJlY2VudCBGcmFtZUxvYWRlciBjaGFuZ2VzCkluZGV4OiBXZWJLaXQvd2luL0ZvckVh
Y2hDb0NsYXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9Gb3JFYWNoQ29DbGFzcy5oCShy
ZXZpc2lvbiA0MjAwNykKKysrIFdlYktpdC93aW4vRm9yRWFjaENvQ2xhc3MuaAkod29ya2luZyBj
b3B5KQpAQCAtMzEsMTEgKzMxLDE3IEBACiAKICNpbmNsdWRlICJQcm9nSURNYWNyb3MuaCIKIAor
I2lmIEVOQUJMRShEQVRBQkFTRSkKKyNkZWZpbmUgV0VCX0RBVEFCQVNFX01BTkFHRVIobWFjcm8p
IG1hY3JvKFdlYkRhdGFiYXNlTWFuYWdlcikKKyNlbHNlCisjZGVmaW5lIFdFQl9EQVRBQkFTRV9N
QU5BR0VSKG1hY3JvKQorI2VuZGlmCisKIC8vIEl0ZW1zIG1heSBvbmx5IGJlIGFkZGVkIHRvIHRo
ZSBlbmQgb2YgdGhpcyBtYWNyby4gTm8gaXRlbXMgbWF5IGJlIHJlbW92ZWQgZnJvbSBpdC4KICNk
ZWZpbmUgRk9SX0VBQ0hfQ09DTEFTUyhtYWNybykgXAogICAgIG1hY3JvKENGRGljdGlvbmFyeVBy
b3BlcnR5QmFnKSBcCiAgICAgbWFjcm8oV2ViQ2FjaGUpIFwKLSAgICBtYWNybyhXZWJEYXRhYmFz
ZU1hbmFnZXIpIFwKKyAgICBXRUJfREFUQUJBU0VfTUFOQUdFUihtYWNybykgXAogICAgIG1hY3Jv
KFdlYkRvd25sb2FkKSBcCiAgICAgbWFjcm8oV2ViRXJyb3IpIFwKICAgICBtYWNybyhXZWJIaXN0
b3J5KSBcCkluZGV4OiBXZWJLaXQvd2luL1dlYkRhdGFiYXNlTWFuYWdlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L3dpbi9XZWJEYXRhYmFzZU1hbmFnZXIuY3BwCShyZXZpc2lvbiA0MjAwNykK
KysrIFdlYktpdC93aW4vV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNiArMzAsOCBAQAogI2luY2x1ZGUgIldlYkRhdGFiYXNlTWFuYWdlci5oIgogI2luY2x1ZGUg
IldlYktpdERMTC5oIgogCisjaWYgRU5BQkxFKERBVEFCQVNFKQorCiAjaW5jbHVkZSAiQ0ZEaWN0
aW9uYXJ5UHJvcGVydHlCYWcuaCIKICNpbmNsdWRlICJDT01FbnVtVmFyaWFudC5oIgogI2luY2x1
ZGUgIk1hcnNoYWxsaW5nSGVscGVycy5oIgpAQCAtMzY0LDMgKzM2Niw1IEBAIHZvaWQgV2ViS2l0
U2V0V2ViRGF0YWJhc2VzUGF0aElmTmVjZXNzYXIKIAogICAgIHBhdGhTZXQgPSB0cnVlOwogfQor
CisjZW5kaWYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBXZWJLaXQvd2luL1dl
YkRhdGFiYXNlTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViRGF0YWJhc2VN
YW5hZ2VyLmgJKHJldmlzaW9uIDQyMDA3KQorKysgV2ViS2l0L3dpbi9XZWJEYXRhYmFzZU1hbmFn
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksOCBAQAogI2lmbmRlZiBXZWJEYXRhYmFz
ZU1hbmFnZXJfaAogI2RlZmluZSBXZWJEYXRhYmFzZU1hbmFnZXJfaAogCisjaWYgRU5BQkxFKERB
VEFCQVNFKQorCiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhYmFzZVRyYWNrZXJDbGllbnQuaD4KIAog
I2luY2x1ZGUgIldlYktpdC5oIgpAQCAtODUsMyArODcsNSBAQCBwcml2YXRlOgogdm9pZCBXZWJL
aXRTZXRXZWJEYXRhYmFzZXNQYXRoSWZOZWNlc3NhcnkoKTsKIAogI2VuZGlmCisKKyNlbmRpZgpJ
bmRleDogV2ViS2l0L3dpbi9XZWJTZWN1cml0eU9yaWdpbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L3dpbi9XZWJTZWN1cml0eU9yaWdpbi5jcHAJKHJldmlzaW9uIDQyMDA3KQorKysgV2ViS2l0
L3dpbi9XZWJTZWN1cml0eU9yaWdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDgg
QEAKICNpbmNsdWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIldlYktpdERMTC5o
IgogCisjaWYgRU5BQkxFKERBVEFCQVNFKQorCiAjaW5jbHVkZSA8V2ViQ29yZS9CU3RyaW5nLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhYmFzZVRyYWNrZXIuaD4KIApAQCAtMTUxLDMgKzE1Myw1
IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViU2VjdXJpdHlPcmkKIAogICAgIHJldHVy
biBTX09LOwogfQorCisjZW5kaWYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBX
ZWJLaXQvd2luL1dlYlNlY3VyaXR5T3JpZ2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9X
ZWJTZWN1cml0eU9yaWdpbi5oCShyZXZpc2lvbiA0MjAwNykKKysrIFdlYktpdC93aW4vV2ViU2Vj
dXJpdHlPcmlnaW4uaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksOCBAQAogI2lmbmRlZiBX
ZWJTZWN1cml0eU9yaWdpbl9oCiAjZGVmaW5lIFdlYlNlY3VyaXR5T3JpZ2luX2gKIAorI2lmIEVO
QUJMRShEQVRBQkFTRSkKKwogI2luY2x1ZGUgIldlYktpdC5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
U2VjdXJpdHlPcmlnaW4uaD4KIApAQCAtNzQsNCArNzYsNiBAQCBwcml2YXRlOgogICAgIFJlZlB0
cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV9zZWN1cml0eU9yaWdpbjsKIH07CiAKKyNlbmRp
ZiAvLyBFTkFCTEUoREFUQUJBU0UpCisKICNlbmRpZiAvLyBXZWJTZWN1cml0eU9yaWdpbl9oCklu
ZGV4OiBXZWJLaXQvd2luL1dlYlZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2Vi
Vmlldy5jcHAJKHJldmlzaW9uIDQyMDA3KQorKysgV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjE2OCw3ICsyMTY4LDkgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBXZWJWaWV3Ojppbml0VwogICAgIG1fcHJlZmVyZW5jZXMgPSBzaGFyZWRQcmVmZXJlbmNlczsK
IAogICAgIEluaXRpYWxpemVMb2dnaW5nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOworI2lmIEVOQUJM
RShEQVRBQkFTRSkKICAgICBXZWJLaXRTZXRXZWJEYXRhYmFzZXNQYXRoSWZOZWNlc3NhcnkoKTsK
KyNlbmRpZgogICAgIFdlYktpdFNldEFwcGxpY2F0aW9uQ2FjaGVQYXRoSWZOZWNlc3NhcnkoKTsK
ICAgICAKICAgICBtX3BhZ2UgPSBuZXcgUGFnZShuZXcgV2ViQ2hyb21lQ2xpZW50KHRoaXMpLCBu
ZXcgV2ViQ29udGV4dE1lbnVDbGllbnQodGhpcyksIG5ldyBXZWJFZGl0b3JDbGllbnQodGhpcyks
IG5ldyBXZWJEcmFnQ2xpZW50KHRoaXMpLCBuZXcgV2ViSW5zcGVjdG9yQ2xpZW50KHRoaXMpKTsK
SW5kZXg6IFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJ
KHJldmlzaW9uIDQyMDA3KQorKysgV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDYsNiArNTA2LDcgQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnByaW50KEZyYW1lKiBmcmFtZQogICAgICAgICAgICAgdWlEZWxlZ2F0ZTItPnBy
aW50RnJhbWUobV93ZWJWaWV3LCBraXQoZnJhbWUpKTsKIH0KIAorI2lmIEVOQUJMRShEQVRBQkFT
RSkKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqIGZy
YW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWRlbnRpZmllcikKIHsKICAgICBDT01QdHI8V2Vi
U2VjdXJpdHlPcmlnaW4+IG9yaWdpbihBZG9wdENPTSwgV2ViU2VjdXJpdHlPcmlnaW46OmNyZWF0
ZUluc3RhbmNlKGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSk7CkBAIC01NDAs
NiArNTQxLDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdQogICAg
ICAgICB9CiAgICAgfQogfQorI2VuZGlmCiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpwb3B1bGF0
ZVZpc2l0ZWRMaW5rcygpCiB7CkluZGV4OiBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgJKHJldmlzaW9uIDQyMDA3KQorKysgV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDcgKzEwNSw5IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSopOwogCisj
aWYgRU5BQkxFKERBVEFCQVNFKQogICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVv
dGEoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmKTsKKyNlbmRpZgogCiAg
ICAgdmlydHVhbCB2b2lkIHBvcHVsYXRlVmlzaXRlZExpbmtzKCk7Cg==
</data>
<flag name="review"
          id="14433"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29939</attachid>
            <date>2009-05-01 07:23:23 -0700</date>
            <delta_ts>2009-05-04 02:01:41 -0700</delta_ts>
            <desc>Fixes newlines and adds other platforms</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>43136</size>
            <attacher name="Ben Murdoch">benm</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MzExMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDUgQEAKKzIwMDktMDUtMDEgIEJlbiBNdXJkb2NoICA8YmVubUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdBUk5J
Tkc6IE5PIFRFU1QgQ0FTRVMgQURERUQgT1IgQ0hBTkdFRAorICAgICAgICAKKyAgICAgICAgQWRk
ICNpZiBFTkFCTEUoREFUQUJBU0UpIGd1YXJkcyBhcm91bmQgZGF0YWJhc2UgY29kZSBzbyB0b2dn
bGluZyBFTkFCTEVfREFUQUJBU0Ugb2ZmIGRvZXMgbm90IGJyZWFrIGJ1aWxkcy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0Nzc2CisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrLmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrLmg6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suY3BwOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5oOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNr
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JD
YWxsYmFjay5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGF0YWJhc2VDdXN0b20uY3BwOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU1FMVHJhbnNhY3Rpb25DdXN0b20uY3BwOgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5o
OgorICAgICAgICAqIHN0b3JhZ2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwOgorICAgICAgICAq
IHN0b3JhZ2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuaDoKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFi
YXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpkYXRhYmFzZUluZm9UYWJsZU5h
bWUpOgorICAgICAgICAqIHN0b3JhZ2UvRGF0YWJhc2UuaDoKKyAgICAgICAgKiBzdG9yYWdlL0Rh
dGFiYXNlLmlkbDoKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlVGFzay5jcHA6CisgICAgICAg
ICogc3RvcmFnZS9EYXRhYmFzZVRhc2suaDoKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlVGhy
ZWFkLmNwcDoKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlVGhyZWFkLmg6CisgICAgICAgICog
c3RvcmFnZS9EYXRhYmFzZVRyYWNrZXIuY3BwOgorICAgICAgICAqIHN0b3JhZ2UvRGF0YWJhc2VU
cmFja2VyLmg6CisgICAgICAgICogc3RvcmFnZS9EYXRhYmFzZVRyYWNrZXJDbGllbnQuaDoKKyAg
ICAgICAgKiBzdG9yYWdlL09yaWdpblF1b3RhTWFuYWdlci5jcHA6CisgICAgICAgICogc3RvcmFn
ZS9PcmlnaW5RdW90YU1hbmFnZXIuaDoKKyAgICAgICAgKiBzdG9yYWdlL1NRTFN0YXRlbWVudC5j
cHA6CisgICAgICAgICogc3RvcmFnZS9TUUxTdGF0ZW1lbnQuaDoKKyAgICAgICAgKiBzdG9yYWdl
L1NRTFRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAgKiBzdG9yYWdlL1NRTFRyYW5zYWN0aW9uLmg6
CisgICAgICAgICogc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5pZGw6CisKIDIwMDktMDQtMzAgIEJl
dGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZl
ciBIdW50LgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudENh
bGxiYWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FM
U3RhdGVtZW50Q2FsbGJhY2suY3BwCShyZXZpc2lvbiA0MjkzMCkKKysrIFdlYkNvcmUvYmluZGlu
Z3MvanMvSlNDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTQ3VzdG9t
U1FMU3RhdGVtZW50Q2FsbGJhY2suaCIKKyNpZiBFTkFCTEUoREFUQUJBU0UpCiAKICNpbmNsdWRl
ICJGcmFtZS5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKQEAgLTkwLDMgKzkxLDUg
QEAgdm9pZCBKU0N1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrOjpoYW5kbAogfQogCiB9CisKKyNl
bmRpZiAvLyBFTkFCTEUoREFUQUJBU0UpCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3Vz
dG9tU1FMU3RhdGVtZW50Q2FsbGJhY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2suaAkocmV2aXNpb24gNDI5MzApCisrKyBX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2suaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjksNiArMjksOCBAQAogI2lmbmRlZiBKU0N1c3RvbVNRTFN0YXRlbWVudENh
bGxiYWNrX2gKICNkZWZpbmUgSlNDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFja19oCiAKKyNpZiBF
TkFCTEUoREFUQUJBU0UpCisKICNpbmNsdWRlICJTUUxTdGF0ZW1lbnRDYWxsYmFjay5oIgogCiAj
aW5jbHVkZSA8cnVudGltZS9KU09iamVjdC5oPgpAQCAtNTksNCArNjEsNiBAQCBwcml2YXRlOgog
CiB9CiAKKyNlbmRpZiAvLyBFTkFCTEUoREFUQUJBU0UpCisKICNlbmRpZiAvLyBKU0N1c3RvbVNR
TFN0YXRlbWVudENhbGxiYWNrX2gKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21T
UUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAJKHJldmlzaW9uIDQy
OTMwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2Fs
bGJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmgiCiAK
KyNpZiBFTkFCTEUoREFUQUJBU0UpCisKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIlNj
cmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJKU1NRTEVycm9yLmgiCkBAIC0xMDIsMyArMTA0
LDUgQEAgYm9vbCBKU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2s6OgogfQogCiB9CisK
KyNlbmRpZiAvLyBFTkFCTEUoREFUQUJBU0UpCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmgJKHJldmlzaW9u
IDQyOTMwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudEVycm9y
Q2FsbGJhY2suaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksOCBAQAogI2lmbmRlZiBKU0N1
c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2tfaAogI2RlZmluZSBKU0N1c3RvbVNRTFN0YXRl
bWVudEVycm9yQ2FsbGJhY2tfaAogCisjaWYgRU5BQkxFKERBVEFCQVNFKQorCiAjaW5jbHVkZSAi
U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oIgogCiAjaW5jbHVkZSA8cnVudGltZS9KU09iamVj
dC5oPgpAQCAtNTksNSArNjEsNyBAQCBwcml2YXRlOgogICAgIAogfQogCisjZW5kaWYgLy8gRU5B
QkxFKERBVEFCQVNFKQorCiAjZW5kaWYgLy8gSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxi
YWNrX2gKIApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9u
Q2FsbGJhY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21T
UUxUcmFuc2FjdGlvbkNhbGxiYWNrLmNwcAkocmV2aXNpb24gNDI5MzApCisrKyBXZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDYgKzI5LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU0N1
c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaCIKIAorI2lmIEVOQUJMRShEQVRBQkFTRSkKKwog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkpTU1FMVHJhbnNhY3Rpb24uaCIKQEAgLTEzNCwzICsxMzYsNSBAQCB2b2lkIEpTQ3VzdG9t
U1FMVHJhbnNhY3Rpb25DYWxsYmFjazo6aGFuCiB9CiAgICAgCiB9CisKKyNlbmRpZiAvLyBFTkFC
TEUoREFUQUJBU0UpCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJhbnNh
Y3Rpb25DYWxsYmFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0
b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmgJKHJldmlzaW9uIDQyOTMwKQorKysgV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaAkod29ya2luZyBjb3B5
KQpAQCAtMjksNiArMjksOCBAQAogI2lmbmRlZiBKU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJh
Y2tfaAogI2RlZmluZSBKU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2tfaAogCisjaWYgRU5B
QkxFKERBVEFCQVNFKQorCiAjaW5jbHVkZSAiU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5oIgogCiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAgLTYwLDQgKzYyLDYgQEAgcHJpdmF0ZToKIAog
fQogCisjZW5kaWYgLy8gRU5BQkxFKERBVEFCQVNFKQorCiAjZW5kaWYgLy8gSlNDdXN0b21TUUxU
cmFuc2FjdGlvbkNhbGxiYWNrX2gKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21T
UUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmlu
ZGluZ3MvanMvSlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suY3BwCShyZXZpc2lv
biA0MjkzMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxUcmFuc2FjdGlvbkVy
cm9yQ2FsbGJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJh
Y2suaCIKIAorI2lmIEVOQUJMRShEQVRBQkFTRSkKKwogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5j
bHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkpTU1FMRXJyb3IuaCIKQEAgLTg4
LDMgKzkwLDUgQEAgYm9vbCBKU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjawogfQog
ICAgIAogfQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEFCQVNFKQpJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJh
Y2suaAkocmV2aXNpb24gNDI5MzApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FM
VHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDgg
QEAKICNpZm5kZWYgSlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2tfaAogI2RlZmlu
ZSBKU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFja19oCiAKKyNpZiBFTkFCTEUoREFU
QUJBU0UpCisKICNpbmNsdWRlICJTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaCIKIAogI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KQEAgLTU4LDUgKzYwLDYgQEAgcHJpdmF0ZToKIH07
CiAKIH0KKyNlbmRpZiAvLyBFTkFCTEUoREFUQUJBU0UpCiAKICNlbmRpZiAvLyBKU0N1c3RvbVNR
TFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFja19oCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RGF0YWJhc2VDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNE
YXRhYmFzZUN1c3RvbS5jcHAJKHJldmlzaW9uIDQyOTMwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RhdGFiYXNlQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksOCBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTRGF0YWJhc2UuaCIKIAorI2lmIEVOQUJM
RShEQVRBQkFTRSkKKwogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRhdGFiYXNl
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTEyNiwzICsxMjgsNCBAQCBKU1ZhbHVlUHRy
IEpTRGF0YWJhc2U6OnRyYW5zYWN0aW9uKEV4ZWNTCiB9CiAgICAgCiB9CisjZW5kaWYgLy8gRU5B
QkxFKERBVEFCQVNFKQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NRTFRyYW5zYWN0aW9u
Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1FMVHJhbnNh
Y3Rpb25DdXN0b20uY3BwCShyZXZpc2lvbiA0MjkzMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMv
SlNTUUxUcmFuc2FjdGlvbkN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDgg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1NRTFRyYW5zYWN0aW9uLmgiCiAK
KyNpZiBFTkFCTEUoREFUQUJBU0UpCisKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiSlNDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFj
ay5oIgpAQCAtMTEyLDMgKzExNCw1IEBAIEpTVmFsdWVQdHIgSlNTUUxUcmFuc2FjdGlvbjo6ZXhl
Y3V0ZVNxbCgKIH0KIAogfQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEFCQVNFKQpJbmRleDogV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmgJKHJldmlzaW9uIDQyOTMwKQorKysgV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyNyw3ICsxMjcsOSBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgcHJpbnQoRnJhbWUqKSB7IH0KIAorI2lmIEVOQUJMRShEQVRBQkFTRSkK
ICAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiwgY29uc3QgU3Ry
aW5nJikgeyB9CisjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUq
LCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPikgeyB9CiAKSW5kZXg6IFdlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgJKHJl
dmlzaW9uIDQyOTMwKQorKysgV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzEsNyArMTMxLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZp
cnR1YWwgdm9pZCBwcmludChGcmFtZSopID0gMDsKIAorI2lmIEVOQUJMRShEQVRBQkFTRSkKICAg
ICAgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSosIGNvbnN0IFN0
cmluZyYgZGF0YWJhc2VOYW1lKSA9IDA7CisjZW5kaWYKIAogI2lmIEVOQUJMRShEQVNIQk9BUkRf
U1VQUE9SVCkKICAgICAgICAgdmlydHVhbCB2b2lkIGRhc2hib2FyZFJlZ2lvbnNDaGFuZ2VkKCk7
CkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAJKHJldmlzaW9u
IDQyOTMwKQorKysgV2ViQ29yZS9zdG9yYWdlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkNoYW5nZVZlcnNpb25XcmFwcGVyLmgiCiAKKyNpZiBFTkFCTEUoREFUQUJBU0UpCiAjaW5j
bHVkZSAiRGF0YWJhc2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNzUsMyArNzYsNSBA
QCBib29sIENoYW5nZVZlcnNpb25XcmFwcGVyOjpwZXJmb3JtUG9zdGZsCiB9CiAgICAgCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQUJBU0UpCkluZGV4OiBX
ZWJDb3JlL3N0b3JhZ2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3N0b3JhZ2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuaAkocmV2aXNpb24gNDI5MzApCisrKyBX
ZWJDb3JlL3N0b3JhZ2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MjgsNiArMjgsOCBAQAogI2lmbmRlZiBDaGFuZ2VWZXJzaW9uV3JhcHBlcl9oCiAjZGVmaW5lIENo
YW5nZVZlcnNpb25XcmFwcGVyX2gKIAorI2lmIEVOQUJMRShEQVRBQkFTRSkKKwogI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiU1FMVHJhbnNhY3Rpb24uaCIKIApAQCAtNTIs
NCArNTQsNiBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKKyNlbmRpZgor
CiAjZW5kaWYgLy8gQ2hhbmdlVmVyc2lvbldyYXBwZXJfaApJbmRleDogV2ViQ29yZS9zdG9yYWdl
L0RhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuY3Bw
CShyZXZpc2lvbiA0MjkzMCkKKysrIFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJEYXRhYmFzZS5oIgogCisjaWYgRU5BQkxFKERBVEFCQVNFKQogI2luY2x1ZGUgIkNoYW5nZVZl
cnNpb25XcmFwcGVyLmgiCiAjaW5jbHVkZSAiQ1N0cmluZy5oIgogI2luY2x1ZGUgIkRhdGFiYXNl
QXV0aG9yaXplci5oIgpAQCAtNDksNiArNTAsNyBAQAogI2luY2x1ZGUgIlNRTFJlc3VsdFNldC5o
IgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgorI2VuZGlmCiAKICNpZiBVU0UoSlNDKQogI2luY2x1ZGUgIkpTRE9NV2luZG93LmgiCkBA
IC01Nyw2ICs1OSwxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NvbnN0IFN0cmluZyYg
RGF0YWJhc2U6OmRhdGFiYXNlSW5mb1RhYmxlTmFtZSgpCit7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIG5hbWUsICgiX19XZWJLaXREYXRhYmFzZUluZm9UYWJsZV9fIikpOworICAg
IHJldHVybiBuYW1lOworfQorCisjaWYgRU5BQkxFKERBVEFCQVNFKQorCiBzdGF0aWMgTXV0ZXgm
IGd1aWRNdXRleCgpCiB7CiAgICAgLy8gTm90ZTogV2UgZG9uJ3QgaGF2ZSB0byB1c2UgQXRvbWlj
YWxseUluaXRpYWxpemVkU3RhdGljIGhlcmUgYmVjYXVzZQpAQCAtODAsMTIgKzkwLDYgQEAgc3Rh
dGljIEd1aWREYXRhYmFzZU1hcCYgZ3VpZFRvRGF0YWJhc2VNYQogICAgIHJldHVybiBtYXA7CiB9
CiAKLWNvbnN0IFN0cmluZyYgRGF0YWJhc2U6OmRhdGFiYXNlSW5mb1RhYmxlTmFtZSgpCi17Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG5hbWUsICgiX19XZWJLaXREYXRhYmFzZUlu
Zm9UYWJsZV9fIikpOwotICAgIHJldHVybiBuYW1lOwotfQotCiBzdGF0aWMgY29uc3QgU3RyaW5n
JiBkYXRhYmFzZVZlcnNpb25LZXkoKQogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5n
LCBrZXksICgiV2ViS2l0RGF0YWJhc2VWZXJzaW9uS2V5IikpOwpAQCAtNjEwLDQgKzYxNCw2IEBA
IFN0cmluZyBEYXRhYmFzZTo6c3RyaW5nSWRlbnRpZmllcigpIGNvbnMKICAgICByZXR1cm4gbV9u
YW1lLmNvcHkoKTsKIH0KIAorI2VuZGlmCisKIH0KSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9EYXRh
YmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5oCShyZXZpc2lv
biA0MjkzMCkKKysrIFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOSw2ICsyOSw3IEBACiAjaWZuZGVmIERhdGFiYXNlX2gKICNkZWZpbmUgRGF0YWJhc2VfaAog
CisjaWYgRU5BQkxFKERBVEFCQVNFKQogI2luY2x1ZGUgPHd0Zi9NZXNzYWdlUXVldWUuaD4KICNp
bmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCkBA
IC00NCw3ICs0NSwxMSBAQAogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2Vsc2UKKyNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgorI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQUJBU0UpCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIERhdGFiYXNlQXV0aG9yaXplcjsKQEAgLTE0Niw0ICsxNTEs
MTUgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCisjZWxzZQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CitjbGFzcyBEYXRhYmFzZSA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVk
PERhdGFiYXNlPiB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VJ
bmZvVGFibGVOYW1lKCk7Cit9OworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKERBVEFCQVNFKQorCiAjZW5kaWYgLy8gRGF0YWJhc2VfaApJbmRleDogV2ViQ29yZS9z
dG9yYWdlL0RhdGFiYXNlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvRGF0YWJh
c2UuaWRsCShyZXZpc2lvbiA0MjkzMCkKKysrIFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDkgQEAKIAogbW9kdWxlIHN0b3JhZ2UgewogCi0g
ICAgaW50ZXJmYWNlIERhdGFiYXNlIHsKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRp
b25hbD1EQVRBQkFTRQorICAgIF0gRGF0YWJhc2UgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIHZlcnNpb247CiAgICAgICAgIFtDdXN0b21dIHZvaWQgY2hhbmdlVmVyc2lv
bihpbiBET01TdHJpbmcgb2xkVmVyc2lvbiwgaW4gRE9NU3RyaW5nIG5ld1ZlcnNpb24sIGluIFNR
TFRyYW5zYWN0aW9uQ2FsbGJhY2sgY2FsbGJhY2ssIGluIFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxs
YmFjayBlcnJvckNhbGxiYWNrLCBpbiBWb2lkQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrKTsKICAg
ICAgICAgW0N1c3RvbV0gdm9pZCB0cmFuc2FjdGlvbihpbiBTUUxUcmFuc2FjdGlvbkNhbGxiYWNr
IGNhbGxiYWNrLCBpbiBTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjaywg
aW4gVm9pZENhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjayk7CkluZGV4OiBXZWJDb3JlL3N0b3JhZ2Uv
RGF0YWJhc2VUYXNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VU
YXNrLmNwcAkocmV2aXNpb24gNDI5MzApCisrKyBXZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUYXNr
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkRhdGFiYXNlVGFzay5oIgogCisjaWYgRU5BQkxFKERBVEFCQVNFKQorCiAj
aW5jbHVkZSAiRGF0YWJhc2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAKQEAgLTE3NSwzICsx
NzcsNSBAQCBjb25zdCBjaGFyKiBEYXRhYmFzZVRhYmxlTmFtZXNUYXNrOjpkZWJ1CiAjZW5kaWYK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvc3RvcmFn
ZS9EYXRhYmFzZVRhc2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VU
YXNrLmgJKHJldmlzaW9uIDQyOTMwKQorKysgV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVGFzay5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaWZuZGVmIERhdGFiYXNlVGFza19o
CiAjZGVmaW5lIERhdGFiYXNlVGFza19oCiAKKyNpZiBFTkFCTEUoREFUQUJBU0UpCiAjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVk
ZSA8d3RmL093blB0ci5oPgpAQCAtMTQ4LDQgKzE0OSw1IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAorI2VuZGlmIC8vIEVOQUJMRShEQVRBQkFTRSkKICNlbmRpZiAvLyBE
YXRhYmFzZVRhc2tfaApJbmRleDogV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVGhyZWFkLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUaHJlYWQuY3BwCShyZXZpc2lv
biA0MjkzMCkKKysrIFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRocmVhZC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDYgKzI5LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJE
YXRhYmFzZVRocmVhZC5oIgogCisjaWYgRU5BQkxFKERBVEFCQVNFKQorCiAjaW5jbHVkZSAiQXV0
b2RyYWluZWRQb29sLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2UuaCIKICNpbmNsdWRlICJEYXRhYmFz
ZVRhc2suaCIKQEAgLTEzNSwzICsxMzcsNCBAQCB2b2lkIERhdGFiYXNlVGhyZWFkOjp1bnNjaGVk
dWxlRGF0YWJhc2VUCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKyNlbmRpZgpJbmRleDog
V2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVGhyZWFkLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9z
dG9yYWdlL0RhdGFiYXNlVGhyZWFkLmgJKHJldmlzaW9uIDQyOTMwKQorKysgV2ViQ29yZS9zdG9y
YWdlL0RhdGFiYXNlVGhyZWFkLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNp
Zm5kZWYgRGF0YWJhc2VUaHJlYWRfaAogI2RlZmluZSBEYXRhYmFzZVRocmVhZF9oCiAKKyNpZiBF
TkFCTEUoREFUQUJBU0UpCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtNzAsNCArNzEsNSBAQCBwcml2
YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKKyNlbmRpZiAvLyBFTkFCTEUoREFUQUJB
U0UpCiAjZW5kaWYgLy8gRGF0YWJhc2VUaHJlYWRfaApJbmRleDogV2ViQ29yZS9zdG9yYWdlL0Rh
dGFiYXNlVHJhY2tlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNl
VHJhY2tlci5jcHAJKHJldmlzaW9uIDQyOTMwKQorKysgV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNl
VHJhY2tlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDggQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJEYXRhYmFzZVRyYWNrZXIuaCIKIAorI2lmIEVOQUJMRShEQVRB
QkFTRSkKKwogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRhdGFiYXNlLmgi
CiAjaW5jbHVkZSAiRGF0YWJhc2VUcmFja2VyQ2xpZW50LmgiCkBAIC04MjgsMyArODMwLDQgQEAg
dm9pZCBEYXRhYmFzZVRyYWNrZXI6Om5vdGlmeURhdGFiYXNlc0NoYQogCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVHJhY2tl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRyYWNrZXIuaAkocmV2
aXNpb24gNDI5MzApCisrKyBXZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUcmFja2VyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI5LDYgKzI5LDggQEAKICNpZm5kZWYgRGF0YWJhc2VUcmFja2VyX2gKICNk
ZWZpbmUgRGF0YWJhc2VUcmFja2VyX2gKIAorI2lmIEVOQUJMRShEQVRBQkFTRSkKKwogI2luY2x1
ZGUgIkRhdGFiYXNlRGV0YWlscy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5j
bHVkZSAiU1FMaXRlRGF0YWJhc2UuaCIKQEAgLTEzMCw0ICsxMzIsNSBAQCBwcml2YXRlOgogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKKyNlbmRpZiAvLyBFTkFCTEUoREFUQUJBU0UpCiAjZW5k
aWYgLy8gRGF0YWJhc2VUcmFja2VyX2gKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRy
YWNrZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUcmFj
a2VyQ2xpZW50LmgJKHJldmlzaW9uIDQyOTMwKQorKysgV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNl
VHJhY2tlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBACiAjaWZuZGVm
IERhdGFiYXNlVHJhY2tlckNsaWVudF9oCiAjZGVmaW5lIERhdGFiYXNlVHJhY2tlckNsaWVudF9o
CiAKKyNpZiBFTkFCTEUoREFUQUJBU0UpCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
U2VjdXJpdHlPcmlnaW47CkBAIC00Miw0ICs0NCw2IEBAIHB1YmxpYzoKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCisjZW5kaWYKKwogI2VuZGlmIC8vIERhdGFiYXNlVHJhY2tlckNsaWVudF9o
CkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvT3JpZ2luUXVvdGFNYW5hZ2VyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvT3JpZ2luUXVvdGFNYW5hZ2VyLmNwcAkocmV2aXNpb24gNDI5
MzApCisrKyBXZWJDb3JlL3N0b3JhZ2UvT3JpZ2luUXVvdGFNYW5hZ2VyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjgsNiArMjgsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk9y
aWdpblF1b3RhTWFuYWdlci5oIgogCisjaWYgRU5BQkxFKERBVEFCQVNFKQorCiAjaW5jbHVkZSAi
RGF0YWJhc2UuaCIKICNpbmNsdWRlICJPcmlnaW5Vc2FnZVJlY29yZC5oIgogCkBAIC0xMjEsMyAr
MTIzLDUgQEAgdW5zaWduZWQgbG9uZyBsb25nIE9yaWdpblF1b3RhTWFuYWdlcjo6ZAogCiAKIH0K
KworI2VuZGlmIC8vIEVOQUJMRShEQVRBQkFTRSkKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9Pcmln
aW5RdW90YU1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvT3JpZ2luUXVv
dGFNYW5hZ2VyLmgJKHJldmlzaW9uIDQyOTMwKQorKysgV2ViQ29yZS9zdG9yYWdlL09yaWdpblF1
b3RhTWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBACiAjaWZuZGVmIE9y
aWdpblF1b3RhTWFuYWdlcl9oCiAjZGVmaW5lIE9yaWdpblF1b3RhTWFuYWdlcl9oCiAKKyNpZiBF
TkFCTEUoREFUQUJBU0UpCisKICNpbmNsdWRlICJTdHJpbmdIYXNoLmgiCiAjaW5jbHVkZSAiU2Vj
dXJpdHlPcmlnaW5IYXNoLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTY3LDQgKzY5
LDYgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCisjZW5kaWYgLy8gRU5B
QkxFKERBVEFCQVNFKQorCiAjZW5kaWYgLy8gT3JpZ2luUXVvdGFNYW5hZ2VyX2gKSW5kZXg6IFdl
YkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3Rv
cmFnZS9TUUxTdGF0ZW1lbnQuY3BwCShyZXZpc2lvbiA0MjkzMCkKKysrIFdlYkNvcmUvc3RvcmFn
ZS9TUUxTdGF0ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU1FMU3RhdGVtZW50LmgiCiAKKyNpZiBFTkFCTEUo
REFUQUJBU0UpCisKICNpbmNsdWRlICJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIkRhdGFiYXNlQXV0
aG9yaXplci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTE5OSwzICsyMDEsNSBAQCBib29s
IFNRTFN0YXRlbWVudDo6bGFzdEV4ZWN1dGlvbkZhaWxlZER1CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRBQkFTRSkKSW5kZXg6IFdlYkNvcmUvc3Rv
cmFnZS9TUUxTdGF0ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvU1FMU3Rh
dGVtZW50LmgJKHJldmlzaW9uIDQyOTMwKQorKysgV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBACiAjaWZuZGVmIFNRTFN0YXRlbWVu
dF9oCiAjZGVmaW5lIFNRTFN0YXRlbWVudF9oCiAKKyNpZiBFTkFCTEUoREFUQUJBU0UpCisKICNp
bmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogCiAjaW5jbHVkZSAiU1FMRXJyb3IuaCIKQEAgLTgy
LDQgKzg0LDYgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCisjZW5kaWYg
Ly8gRU5BQkxFKERBVEFCQVNFKQorCiAjZW5kaWYgLy8gU1FMU3RhdGVtZW50X2gKSW5kZXg6IFdl
YkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9z
dG9yYWdlL1NRTFRyYW5zYWN0aW9uLmNwcAkocmV2aXNpb24gNDI5MzApCisrKyBXZWJDb3JlL3N0
b3JhZ2UvU1FMVHJhbnNhY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU1FMVHJhbnNhY3Rpb24uaCIKIAorI2lm
IEVOQUJMRShEQVRBQkFTRSkKKwogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUg
IkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VBdXRob3JpemVyLmgiCkBAIC01NTQsMyAr
NTU2LDUgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6Y2xlYW51cEFmdGVyVHJhbnNhYwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQUJBU0UpCkluZGV4
OiBXZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb24uaAkocmV2aXNpb24gNDI5MzApCisrKyBXZWJDb3JlL3N0
b3JhZ2UvU1FMVHJhbnNhY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBAQAog
I2lmbmRlZiBTUUxUcmFuc2FjdGlvbl9oCiAjZGVmaW5lIFNRTFRyYW5zYWN0aW9uX2gKIAorI2lm
IEVOQUJMRShEQVRBQkFTRSkKKwogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAogI2luY2x1
ZGUgIlNRTGl0ZVRyYW5zYWN0aW9uLmgiCkBAIC0xMjgsNCArMTMwLDYgQEAgcHJpdmF0ZToKICAg
ICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorI2VuZGlmCisKICNlbmRpZiAvLyBTUUxUcmFu
c2FjdGlvbl9oCkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb24uaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5pZGwJKHJldmlzaW9uIDQy
OTMwKQorKysgV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uLmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMjgsNyArMjgsOSBAQAogCiBtb2R1bGUgc3RvcmFnZSB7CiAKLSAgICBpbnRlcmZhY2Ug
U1FMVHJhbnNhY3Rpb24geworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPURB
VEFCQVNFCisgICAgXSBTUUxUcmFuc2FjdGlvbiB7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgZXhl
Y3V0ZVNxbChpbiBET01TdHJpbmcgc3FsU3RhdGVtZW50LCBpbiBPYmplY3RBcnJheSBhcmd1bWVu
dHMsIGluIFNRTFN0YXRlbWVudENhbGxiYWNrIGNhbGxiYWNrLCBpbiBTUUxTdGF0ZW1lbnRFcnJv
ckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOwogICAgIH07CiB9CkluZGV4OiBXZWJLaXQvZ3RrL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkocmV2aXNpb24gNDMx
MTIpCisrKyBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0
IEBACisyMDA5LTA1LTAxICBCZW4gTXVyZG9jaCAgPGJlbm1AZ29vZ2xlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZCAjaWYg
RU5BQkxFKERBVEFCQVNFKSBndWFyZHMgYXJvdW5kIGRhdGFiYXNlIGNvZGUgc28gdG9nZ2xpbmcg
RU5BQkxFX0RBVEFCQVNFIG9mZiBkb2VzIG5vdCBicmVhayBidWlsZHMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDc3NgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21l
Q2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEd0ay5oOgorCiAyMDA5LTA0LTMwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHpl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgUHJvdmlkZSBhIG1lY2hhbmlzbSB0byBjcmVhdGUgYSBx
dWlya3MgZGVsZWdhdGUgZm9yIEhUTUxQYXJzZXIKSW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAJKHJldmlzaW9uIDQyOTMwKQorKysgV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00MzYsMTYgKzQzNiwxNiBAQCB2b2lkIENocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUqIGZyYW1l
KQogICAgIHdlYmtpdF93ZWJfZnJhbWVfcHJpbnQod2ViRnJhbWUpOwogfQogCisjaWYgRU5BQkxF
KERBVEFCQVNFKQogdm9pZCBDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFt
ZSogZnJhbWUsIGNvbnN0IFN0cmluZyYpCiB7Ci0jaWYgRU5BQkxFKERBVEFCQVNFKQogICAgIC8v
IFNldCB0byA1TSBmb3IgdGVzdGluZwogICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgY29uZmlndXJh
YmxlCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcg
ZGVmYXVsdFF1b3RhID0gNSAqIDEwMjQgKiAxMDI0OwogICAgIERhdGFiYXNlVHJhY2tlcjo6dHJh
Y2tlcigpLnNldFF1b3RhKGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBkZWZh
dWx0UXVvdGEpOwotI2VuZGlmCiB9CisjZW5kaWYKIAogdm9pZCBDaHJvbWVDbGllbnQ6OnJ1bk9w
ZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IHBycEZpbGVDaG9vc2VyKQog
ewpJbmRleDogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCShy
ZXZpc2lvbiA0MjkzMCkKKysrIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmgJKHdvcmtpbmcgY29weSkKQEAgLTk2LDkgKzk2LDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFdlYkNvcmU6OlN0cmluZyYp
OwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSopOwotCisjaWYg
RU5BQkxFKERBVEFCQVNFKQogICAgICAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1
b3RhKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJik7Ci0KKyNlbmRpZgog
ICAgICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lKiwgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpGaWxlQ2hvb3Nlcj4pOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBmb3Jt
U3RhdGVEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6Tm9kZSopIHsgfQpJbmRleDogV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDQzMTEyKQorKysgV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyNSBAQAorMjAwOS0wNS0wMSAgQmVuIE11cmRvY2ggIDxiZW5tQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBBZGQg
I2lmIEVOQUJMRShEQVRBQkFTRSkgZ3VhcmRzIGFyb3VuZCBkYXRhYmFzZSBjb2RlIHNvIHRvZ2ds
aW5nIEVOQUJMRV9EQVRBQkFTRSBvZmYgZG9lcyBub3QgYnJlYWsgYnVpbGRzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ3NzYKKworICAgICAgICAq
IFN0b3JhZ2UvV2ViRGF0YWJhc2VNYW5hZ2VyLm1tOgorICAgICAgICAqIFN0b3JhZ2UvV2ViRGF0
YWJhc2VNYW5hZ2VySW50ZXJuYWwuaDoKKyAgICAgICAgKiBTdG9yYWdlL1dlYkRhdGFiYXNlTWFu
YWdlclByaXZhdGUuaDoKKyAgICAgICAgKiBTdG9yYWdlL1dlYkRhdGFiYXNlVHJhY2tlckNsaWVu
dC5oOgorICAgICAgICAqIFN0b3JhZ2UvV2ViRGF0YWJhc2VUcmFja2VyQ2xpZW50Lm1tOgorICAg
ICAgICAqIFN0b3JhZ2UvV2ViU2VjdXJpdHlPcmlnaW4ubW06CisgICAgICAgICgtW1dlYlNlY3Vy
aXR5T3JpZ2luIHVzYWdlXSk6CisgICAgICAgICgtW1dlYlNlY3VyaXR5T3JpZ2luIHF1b3RhXSk6
CisgICAgICAgICgtW1dlYlNlY3VyaXR5T3JpZ2luIHNldFF1b3RhOl0pOgorICAgICAgICAqIFN0
b3JhZ2UvV2ViU2VjdXJpdHlPcmlnaW5Qcml2YXRlLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lm1tOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
VmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTp1c2VzRG9j
dW1lbnRWaWV3czpdKToKKwogMjAwOS0wNC0zMCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFByb3ZpZGUgYSBtZWNoYW5pc20gdG8gY3JlYXRlIGEgcXVpcmtz
IGRlbGVnYXRlIGZvciBIVE1MUGFyc2VyCkluZGV4OiBXZWJLaXQvbWFjL1N0b3JhZ2UvV2ViRGF0
YWJhc2VNYW5hZ2VyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvU3RvcmFnZS9XZWJEYXRh
YmFzZU1hbmFnZXIubW0JKHJldmlzaW9uIDQyOTMwKQorKysgV2ViS2l0L21hYy9TdG9yYWdlL1dl
YkRhdGFiYXNlTWFuYWdlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksOCBAQAogI2lt
cG9ydCAiV2ViRGF0YWJhc2VNYW5hZ2VyUHJpdmF0ZS5oIgogI2ltcG9ydCAiV2ViRGF0YWJhc2VN
YW5hZ2VySW50ZXJuYWwuaCIKIAorI2lmIEVOQUJMRShEQVRBQkFTRSkKKwogI2ltcG9ydCAiV2Vi
RGF0YWJhc2VUcmFja2VyQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJTZWN1cml0eU9yaWdpbkludGVy
bmFsLmgiCiAKQEAgLTEzNywzICsxMzksNSBAQCB2b2lkIFdlYktpdEluaXRpYWxpemVEYXRhYmFz
ZXNJZk5lY2Vzc2FyCiAgICAgCiAgICAgaW5pdGlhbGl6ZWQgPSBZRVM7CiB9CisKKyNlbmRpZgpJ
bmRleDogV2ViS2l0L21hYy9TdG9yYWdlL1dlYkRhdGFiYXNlTWFuYWdlckludGVybmFsLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L21hYy9TdG9yYWdlL1dlYkRhdGFiYXNlTWFuYWdlckludGVybmFs
LmgJKHJldmlzaW9uIDQyOTMwKQorKysgV2ViS2l0L21hYy9TdG9yYWdlL1dlYkRhdGFiYXNlTWFu
YWdlckludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDQgKzI2LDggQEAKICAqIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAgKi8KIAorI2lmIEVOQUJMRShEQVRBQkFTRSkKKwogdm9pZCBXZWJLaXRJbml0aWFsaXpl
RGF0YWJhc2VzSWZOZWNlc3NhcnkoKTsKKworI2VuZGlmCkluZGV4OiBXZWJLaXQvbWFjL1N0b3Jh
Z2UvV2ViRGF0YWJhc2VNYW5hZ2VyUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMv
U3RvcmFnZS9XZWJEYXRhYmFzZU1hbmFnZXJQcml2YXRlLmgJKHJldmlzaW9uIDQyOTMwKQorKysg
V2ViS2l0L21hYy9TdG9yYWdlL1dlYkRhdGFiYXNlTWFuYWdlclByaXZhdGUuaAkod29ya2luZyBj
b3B5KQpAQCAtMjYsNiArMjYsOCBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisjaWYgRU5BQkxFKERB
VEFCQVNFKQorIAogZXh0ZXJuIE5TU3RyaW5nICpXZWJEYXRhYmFzZURpcmVjdG9yeURlZmF1bHRz
S2V5OwogCiBleHRlcm4gTlNTdHJpbmcgKldlYkRhdGFiYXNlRGlzcGxheU5hbWVLZXk7CkBAIC02
MiwzICs2NCw1IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViRGF0YWJhc2VJZGVudGlmaWVyS2UKIC0g
KHZvaWQpZGVsZXRlRGF0YWJhc2U6KE5TU3RyaW5nICopZGF0YWJhc2VJZGVudGlmaWVyIHdpdGhP
cmlnaW46KFdlYlNlY3VyaXR5T3JpZ2luICopb3JpZ2luOwogCiBAZW5kCisKKyNlbmRpZgpJbmRl
eDogV2ViS2l0L21hYy9TdG9yYWdlL1dlYkRhdGFiYXNlVHJhY2tlckNsaWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9tYWMvU3RvcmFnZS9XZWJEYXRhYmFzZVRyYWNrZXJDbGllbnQuaAkocmV2
aXNpb24gNDI5MzApCisrKyBXZWJLaXQvbWFjL1N0b3JhZ2UvV2ViRGF0YWJhc2VUcmFja2VyQ2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDggQEAKICAqIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8K
IAorI2lmIEVOQUJMRShEQVRBQkFTRSkgCisKICNpbXBvcnQgPFdlYkNvcmUvRGF0YWJhc2VUcmFj
a2VyQ2xpZW50Lmg+CiAKIGNsYXNzIFdlYkRhdGFiYXNlVHJhY2tlckNsaWVudCA6IHB1YmxpYyBX
ZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXJDbGllbnQgewpAQCAtMzgsMyArNDAsNSBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIFdlYkRhdGFiYXNlVHJhY2tlckNsaWVudCgpOwogfTsKKworI2VuZGlm
CkluZGV4OiBXZWJLaXQvbWFjL1N0b3JhZ2UvV2ViRGF0YWJhc2VUcmFja2VyQ2xpZW50Lm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9tYWMvU3RvcmFnZS9XZWJEYXRhYmFzZVRyYWNrZXJDbGllbnQu
bW0JKHJldmlzaW9uIDQyOTMwKQorKysgV2ViS2l0L21hYy9TdG9yYWdlL1dlYkRhdGFiYXNlVHJh
Y2tlckNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBAQAogIAogI2ltcG9y
dCAiV2ViRGF0YWJhc2VUcmFja2VyQ2xpZW50LmgiCiAKKyNpZiBFTkFCTEUoREFUQUJBU0UpCisK
ICNpbXBvcnQgIldlYkRhdGFiYXNlTWFuYWdlclByaXZhdGUuaCIKICNpbXBvcnQgIldlYlNlY3Vy
aXR5T3JpZ2luSW50ZXJuYWwuaCIKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTY3LDMg
KzY5LDUgQEAgdm9pZCBXZWJEYXRhYmFzZVRyYWNrZXJDbGllbnQ6OmRpc3BhdGNoRAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Q6
d2ViU2VjdXJpdHlPcmlnaW4uZ2V0KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVzZXJJbmZvOnVzZXJJbmZvLmdldCgpXTsKIH0KKworI2Vu
ZGlmCkluZGV4OiBXZWJLaXQvbWFjL1N0b3JhZ2UvV2ViU2VjdXJpdHlPcmlnaW4ubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L21hYy9TdG9yYWdlL1dlYlNlY3VyaXR5T3JpZ2luLm1tCShyZXZpc2lv
biA0MjkzMCkKKysrIFdlYktpdC9tYWMvU3RvcmFnZS9XZWJTZWN1cml0eU9yaWdpbi5tbQkod29y
a2luZyBjb3B5KQpAQCAtNzEsMTIgKzcxLDIwIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiAtICh1bnNpZ25lZCBsb25nIGxvbmcpdXNhZ2UKIHsKKyNpZiBFTkFCTEUoREFUQUJBU0UpCiAg
ICAgcmV0dXJuIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLnVzYWdlRm9yT3JpZ2luKHJlaW50
ZXJwcmV0X2Nhc3Q8U2VjdXJpdHlPcmlnaW4qPihfcHJpdmF0ZSkpOworI2Vsc2UKKyAgICByZXR1
cm4gMDsKKyNlbmRpZgogfQogCiAtICh1bnNpZ25lZCBsb25nIGxvbmcpcXVvdGEKIHsKKyNpZiBF
TkFCTEUoREFUQUJBU0UpCiAgICAgcmV0dXJuIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLnF1
b3RhRm9yT3JpZ2luKHJlaW50ZXJwcmV0X2Nhc3Q8U2VjdXJpdHlPcmlnaW4qPihfcHJpdmF0ZSkp
OworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgogfQogCiAvLyBTZXRzIHRoZSBzdG9yYWdl
IHF1b3RhIChpbiBieXRlcykKQEAgLTg0LDcgKzkyLDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAvLyBUaGlzIHdpbGwgc2ltcGx5IHByZXZlbnQgbmV3IGRhdGEgZnJvbSBiZWluZyBhZGRl
ZCB0byBkYXRhYmFzZXMgaW4gdGhhdCBvcmlnaW4KIC0gKHZvaWQpc2V0UXVvdGE6KHVuc2lnbmVk
IGxvbmcgbG9uZylxdW90YQogeworI2lmIEVOQUJMRShEQVRBQkFTRSkKICAgICBEYXRhYmFzZVRy
YWNrZXI6OnRyYWNrZXIoKS5zZXRRdW90YShyZWludGVycHJldF9jYXN0PFNlY3VyaXR5T3JpZ2lu
Kj4oX3ByaXZhdGUpLCBxdW90YSk7CisjZW5kaWYKIH0KIAogLSAoQk9PTClpc0VxdWFsOihpZClh
bk9iamVjdApJbmRleDogV2ViS2l0L21hYy9TdG9yYWdlL1dlYlNlY3VyaXR5T3JpZ2luUHJpdmF0
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvU3RvcmFnZS9XZWJTZWN1cml0eU9yaWdpblBy
aXZhdGUuaAkocmV2aXNpb24gNDI5MzApCisrKyBXZWJLaXQvbWFjL1N0b3JhZ2UvV2ViU2VjdXJp
dHlPcmlnaW5Qcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDQgKzQ5LDUgQEAKIC8vIFRo
aXMgd2lsbCBzaW1wbHkgcHJldmVudCBuZXcgZGF0YSBmcm9tIGJlaW5nIGFkZGVkIHRvIGRhdGFi
YXNlcyBpbiB0aGF0IG9yaWdpbgogLSAodm9pZClzZXRRdW90YToodW5zaWduZWQgbG9uZyBsb25n
KXF1b3RhOwogCisKIEBlbmQKSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAkocmV2aXNpb24gNDI5MzApCisrKyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsOSArMTA0LDkgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFdlYkNvcmU6OlN0cmlu
ZyYpOwogCiAgICAgdmlydHVhbCB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lKik7Ci0KKyNpZiBF
TkFCTEUoREFUQUJBU0UpCiAgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShX
ZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgZGF0YWJhc2VOYW1lKTsKLQor
I2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIHBvcHVsYXRlVmlzaXRlZExpbmtzKCk7CiAKICNpZiBF
TkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCkluZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5tbQkocmV2aXNpb24gNDI5MzApCisrKyBXZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtNTAxLDYg
KzUwMSw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwcmludChGcmFtZSogZnJhbWUKICAgICBD
YWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OnByaW50RnJhbWVWaWV3
OiksIGZyYW1lVmlldyk7CiB9CiAKKyNpZiBFTkFCTEUoREFUQUJBU0UpCiB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5n
JiBkYXRhYmFzZU5hbWUpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwpAQCAt
NTE2LDYgKzUxNyw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXUK
IAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CisjZW5kaWYKICAgICAKIHZvaWQg
V2ViQ2hyb21lQ2xpZW50Ojpwb3B1bGF0ZVZpc2l0ZWRMaW5rcygpCiB7CkluZGV4OiBXZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQkocmV2aXNpb24gNDI5MzApCisrKyBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQkod29ya2luZyBjb3B5KQpAQCAtNzgwLDcgKzc4MCw5IEBAIHN0YXRpYyBib29sIHJ1bm5p
bmdUaWdlck1haWwoKQogICAgICAgICBXZWJLaXRJbml0aWFsaXplTG9nZ2luZ0NoYW5uZWxzSWZO
ZWNlc3NhcnkoKTsKICAgICAgICAgV2ViQ29yZTo6SW5pdGlhbGl6ZUxvZ2dpbmdDaGFubmVsc0lm
TmVjZXNzYXJ5KCk7CiAgICAgICAgIFtXZWJIaXN0b3J5SXRlbSBpbml0V2luZG93V2F0Y2hlcklm
TmVjZXNzYXJ5XTsKKyNpZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgICAgIFdlYktpdEluaXRpYWxp
emVEYXRhYmFzZXNJZk5lY2Vzc2FyeSgpOworI2VuZGlmCiAgICAgICAgIFdlYktpdEluaXRpYWxp
emVBcHBsaWNhdGlvbkNhY2hlUGF0aElmTmVjZXNzYXJ5KCk7CiAgICAgICAgIHBhdGNoTWFpbFJl
bW92ZUF0dHJpYnV0ZXNNZXRob2QoKTsKICAgICAgICAgZGlkT25lVGltZUluaXRpYWxpemF0aW9u
ID0gdHJ1ZTsKSW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L3F0L0NoYW5nZUxvZwkocmV2aXNpb24gNDMxMTIpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMDktMDUtMDEgIEJlbiBNdXJkb2NoICA8
YmVubUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
ICAgICAgICAKKyAgICAgICAgQWRkICNpZiBFTkFCTEUoREFUQUJBU0UpIGd1YXJkcyBhcm91bmQg
ZGF0YWJhc2UgY29kZSBzbyB0b2dnbGluZyBFTkFCTEVfREFUQUJBU0Ugb2ZmIGRvZXMgbm90IGJy
ZWFrIGJ1aWxkcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI0Nzc2CisKKyAgICAgICAgKiBBcGkvcXdlYmRhdGFiYXNlLmNwcDoKKyAgICAgICAgKiBB
cGkvcXdlYmRhdGFiYXNlLmg6CisgICAgICAgICogQXBpL3F3ZWJkYXRhYmFzZV9wLmg6CisgICAg
ICAgICogQXBpL3F3ZWJzZWN1cml0eW9yaWdpbi5jcHA6CisgICAgICAgIChRV2ViU2VjdXJpdHlP
cmlnaW46OmRhdGFiYXNlVXNhZ2UpOgorICAgICAgICAoUVdlYlNlY3VyaXR5T3JpZ2luOjpkYXRh
YmFzZVF1b3RhKToKKyAgICAgICAgKFFXZWJTZWN1cml0eU9yaWdpbjo6c2V0RGF0YWJhc2VRdW90
YSk6CisgICAgICAgICogQXBpL3F3ZWJzZWN1cml0eW9yaWdpbi5oOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNs
aWVudFF0OjpleGNlZWRlZERhdGFiYXNlUXVvdGEpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0Lmg6CisKIDIwMDktMDQtMzAgIERhdmlkIEtpbHplciAgPGRka2lsemVy
QGFwcGxlLmNvbT4KIAogICAgICAgICBQcm92aWRlIGEgbWVjaGFuaXNtIHRvIGNyZWF0ZSBhIHF1
aXJrcyBkZWxlZ2F0ZSBmb3IgSFRNTFBhcnNlcgpJbmRleDogV2ViS2l0L3F0L0FwaS9xd2ViZGF0
YWJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9BcGkvcXdlYmRhdGFiYXNlLmNwcAko
cmV2aXNpb24gNDI5MzApCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJkYXRhYmFzZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE5LDYgKzE5LDkgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgInF3ZWJkYXRhYmFzZS5oIgorCisjaWYgRU5BQkxFKERBVEFCQVNFKQorCiAjaW5jbHVkZSAi
cXdlYmRhdGFiYXNlX3AuaCIKICNpbmNsdWRlICJxd2Vic2VjdXJpdHlvcmlnaW4uaCIKICNpbmNs
dWRlICJxd2Vic2VjdXJpdHlvcmlnaW5fcC5oIgpAQCAtMTQ2LDMgKzE0OSw1IEBAIHZvaWQgUVdl
YkRhdGFiYXNlOjpyZW1vdmVEYXRhYmFzZShjb25zdCAKIFFXZWJEYXRhYmFzZTo6flFXZWJEYXRh
YmFzZSgpCiB7CiB9CisKKyNlbmRpZgpJbmRleDogV2ViS2l0L3F0L0FwaS9xd2ViZGF0YWJhc2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQXBpL3F3ZWJkYXRhYmFzZS5oCShyZXZpc2lvbiA0
MjkzMCkKKysrIFdlYktpdC9xdC9BcGkvcXdlYmRhdGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTE5LDYgKzE5LDggQEAKICNpZm5kZWYgX1dFQkRBVEFCQVNFX0hfCiAjZGVmaW5lIF9XRUJEQVRB
QkFTRV9IXwogCisjaWYgRU5BQkxFKERBVEFCQVNFKQorCiAjaW5jbHVkZSA8UXRDb3JlL3FzdHJp
bmcuaD4KICNpbmNsdWRlIDxRdENvcmUvcXNoYXJlZGRhdGEuaD4KIApAQCAtNTcsMyArNTksNSBA
QCBwcml2YXRlOgogCiAjZW5kaWYKIAorI2VuZGlmCisKSW5kZXg6IFdlYktpdC9xdC9BcGkvcXdl
YmRhdGFiYXNlX3AuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQXBpL3F3ZWJkYXRhYmFzZV9w
LmgJKHJldmlzaW9uIDQyOTMwKQorKysgV2ViS2l0L3F0L0FwaS9xd2ViZGF0YWJhc2VfcC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xOSw2ICsxOSw4IEBACiAjaWZuZGVmIF9XRUJEQVRBQkFTRV9QX0hf
CiAjZGVmaW5lIF9XRUJEQVRBQkFTRV9QX0hfCiAKKyNpZiBFTkFCTEUoREFUQUJBU0UpCisKICNp
bmNsdWRlIDxRU3RyaW5nPgogI2luY2x1ZGUgPFF0Q29yZS9xc2hhcmVkZGF0YS5oPgogCkBAIC0z
NiwzICszOCw1IEBAIHB1YmxpYzoKIAogI2VuZGlmCiAKKyNlbmRpZgorCkluZGV4OiBXZWJLaXQv
cXQvQXBpL3F3ZWJzZWN1cml0eW9yaWdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0Fw
aS9xd2Vic2VjdXJpdHlvcmlnaW4uY3BwCShyZXZpc2lvbiA0MjkzMCkKKysrIFdlYktpdC9xdC9B
cGkvcXdlYnNlY3VyaXR5b3JpZ2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDcgKzEwMSwx
MSBAQCBpbnQgUVdlYlNlY3VyaXR5T3JpZ2luOjpwb3J0KCkgY29uc3QKICovCiBxaW50NjQgUVdl
YlNlY3VyaXR5T3JpZ2luOjpkYXRhYmFzZVVzYWdlKCkgY29uc3QKIHsKKyNpZiBFTkFCTEUoREFU
QUJBU0UpCiAgICAgcmV0dXJuIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLnVzYWdlRm9yT3Jp
Z2luKGQtPm9yaWdpbi5nZXQoKSk7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCiB9CiAK
IC8qIQpAQCAtMTA5LDcgKzExMywxMSBAQCBxaW50NjQgUVdlYlNlY3VyaXR5T3JpZ2luOjpkYXRh
YmFzZVVzYWdlCiAqLwogcWludDY0IFFXZWJTZWN1cml0eU9yaWdpbjo6ZGF0YWJhc2VRdW90YSgp
IGNvbnN0CiB7CisjaWYgRU5BQkxFKERBVEFCQVNFKQogICAgIHJldHVybiBEYXRhYmFzZVRyYWNr
ZXI6OnRyYWNrZXIoKS5xdW90YUZvck9yaWdpbihkLT5vcmlnaW4uZ2V0KCkpOworI2Vsc2UKKyAg
ICByZXR1cm4gMDsKKyNlbmRpZgogfQogCiAvKiEKQEAgLTEyMSw3ICsxMjksOSBAQCBxaW50NjQg
UVdlYlNlY3VyaXR5T3JpZ2luOjpkYXRhYmFzZVF1b3RhCiAqLwogdm9pZCBRV2ViU2VjdXJpdHlP
cmlnaW46OnNldERhdGFiYXNlUXVvdGEocWludDY0IHF1b3RhKQogeworI2lmIEVOQUJMRShEQVRB
QkFTRSkKICAgICBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5zZXRRdW90YShkLT5vcmlnaW4u
Z2V0KCksIHF1b3RhKTsKKyNlbmRpZgogfQogCiAvKiEKSW5kZXg6IFdlYktpdC9xdC9BcGkvcXdl
YnNlY3VyaXR5b3JpZ2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0FwaS9xd2Vic2VjdXJp
dHlvcmlnaW4uaAkocmV2aXNpb24gNDI5MzApCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJzZWN1cml0
eW9yaWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSwxMCArNDUsMTIgQEAgcHVibGljOgogICAg
IFFTdHJpbmcgaG9zdCgpIGNvbnN0OwogICAgIGludCBwb3J0KCkgY29uc3Q7CiAKKyNpZiBFTkFC
TEUoREFUQUJBU0UpCiAgICAgcWludDY0IGRhdGFiYXNlVXNhZ2UoKSBjb25zdDsKICAgICBxaW50
NjQgZGF0YWJhc2VRdW90YSgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXREYXRhYmFzZVF1b3RhKHFp
bnQ2NCBxdW90YSk7CisjZW5kaWYKIAogICAgIFFMaXN0PFFXZWJEYXRhYmFzZT4gZGF0YWJhc2Vz
KCkgY29uc3Q7CiAKSW5kZXg6IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRR
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFF0LmNwcAkocmV2aXNpb24gNDI5MzApCisrKyBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zODcsMTUgKzM4NywxNyBAQCB2b2lk
IENocm9tZUNsaWVudFF0OjpwcmludChGcmFtZSAqZnJhbWUpCiAgICAgZW1pdCBtX3dlYlBhZ2Ut
PnByaW50UmVxdWVzdGVkKFFXZWJGcmFtZVByaXZhdGU6OmtpdChmcmFtZSkpOwogfQogCisjaWYg
RU5BQkxFKERBVEFCQVNFKQogdm9pZCBDaHJvbWVDbGllbnRRdDo6ZXhjZWVkZWREYXRhYmFzZVF1
b3RhKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUpCiB7CiAgICAgcXVp
bnQ2NCBxdW90YSA9IFFXZWJTZXR0aW5nczo6b2ZmbGluZVN0b3JhZ2VEZWZhdWx0UXVvdGEoKTsK
LSNpZiBFTkFCTEUoREFUQUJBU0UpCisKICAgICBpZiAoIURhdGFiYXNlVHJhY2tlcjo6dHJhY2tl
cigpLmhhc0VudHJ5Rm9yT3JpZ2luKGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigp
KSkKICAgICAgICAgRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuc2V0UXVvdGEoZnJhbWUtPmRv
Y3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHF1b3RhKTsKLSNlbmRpZgorCiAgICAgZW1pdCBt
X3dlYlBhZ2UtPmRhdGFiYXNlUXVvdGFFeGNlZWRlZChRV2ViRnJhbWVQcml2YXRlOjpraXQoZnJh
bWUpLCBkYXRhYmFzZU5hbWUpOwogfQorI2VuZGlmCiAKIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OnJ1
bk9wZW5QYW5lbChGcmFtZSogZnJhbWUsIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IHBycEZpbGVD
aG9vc2VyKQogewpJbmRleDogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0
LmgJKHJldmlzaW9uIDQyOTMwKQorKysgV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFF0LmgJKHdvcmtpbmcgY29weSkKQEAgLTExMyw5ICsxMTMsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYpOwog
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwcmludChGcmFtZSopOwotCisjaWYgRU5BQkxFKERBVEFC
QVNFKQogICAgICAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiwg
Y29uc3QgU3RyaW5nJik7Ci0KKyNlbmRpZgogICAgICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBh
bmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4pOwogCiAgICAgICAgIHZpcnR1YWwg
dm9pZCBmb3JtU3RhdGVEaWRDaGFuZ2UoY29uc3QgTm9kZSopIHsgfQpJbmRleDogV2ViS2l0L3dp
bi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9u
IDQzMTEyKQorKysgV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyMyBAQAorMjAwOS0wNS0wMSAgQmVuIE11cmRvY2ggIDxiZW5tQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBBZGQg
I2lmIEVOQUJMRShEQVRBQkFTRSkgZ3VhcmRzIGFyb3VuZCBkYXRhYmFzZSBjb2RlIHNvIHRvZ2ds
aW5nIEVOQUJMRV9EQVRBQkFTRSBvZmYgZG9lcyBub3QgYnJlYWsgYnVpbGRzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ3NzYKKworICAgICAgICAq
IEZvckVhY2hDb0NsYXNzLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAg
ICAgICAgKiBXZWJEYXRhYmFzZU1hbmFnZXIuY3BwOgorICAgICAgICAqIFdlYkRhdGFiYXNlTWFu
YWdlci5oOgorICAgICAgICAqIFdlYlNlY3VyaXR5T3JpZ2luLmNwcDoKKyAgICAgICAgKFdlYlNl
Y3VyaXR5T3JpZ2luOjp1c2FnZSk6CisgICAgICAgIChXZWJTZWN1cml0eU9yaWdpbjo6cXVvdGEp
OgorICAgICAgICAoV2ViU2VjdXJpdHlPcmlnaW46OnNldFF1b3RhKToKKyAgICAgICAgKiBXZWJT
ZWN1cml0eU9yaWdpbi5oOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmll
dzo6aW5pdFdpdGhGcmFtZSk6CisKIDIwMDktMDQtMzAgIERhdmlkIEtpbHplciAgPGRka2lsemVy
QGFwcGxlLmNvbT4KIAogICAgICAgICBQcm92aWRlIGEgbWVjaGFuaXNtIHRvIGNyZWF0ZSBhIHF1
aXJrcyBkZWxlZ2F0ZSBmb3IgSFRNTFBhcnNlcgpJbmRleDogV2ViS2l0L3dpbi9Gb3JFYWNoQ29D
bGFzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vRm9yRWFjaENvQ2xhc3MuaAkocmV2aXNp
b24gNDI5MzApCisrKyBXZWJLaXQvd2luL0ZvckVhY2hDb0NsYXNzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMxLDExICszMSwxNyBAQAogCiAjaW5jbHVkZSAiUHJvZ0lETWFjcm9zLmgiCiAKKyNpZiBF
TkFCTEUoREFUQUJBU0UpCisjZGVmaW5lIFdFQl9EQVRBQkFTRV9NQU5BR0VSKG1hY3JvKSBtYWNy
byhXZWJEYXRhYmFzZU1hbmFnZXIpCisjZWxzZQorI2RlZmluZSBXRUJfREFUQUJBU0VfTUFOQUdF
UihtYWNybykKKyNlbmRpZgorCiAvLyBJdGVtcyBtYXkgb25seSBiZSBhZGRlZCB0byB0aGUgZW5k
IG9mIHRoaXMgbWFjcm8uIE5vIGl0ZW1zIG1heSBiZSByZW1vdmVkIGZyb20gaXQuCiAjZGVmaW5l
IEZPUl9FQUNIX0NPQ0xBU1MobWFjcm8pIFwKICAgICBtYWNybyhDRkRpY3Rpb25hcnlQcm9wZXJ0
eUJhZykgXAogICAgIG1hY3JvKFdlYkNhY2hlKSBcCi0gICAgbWFjcm8oV2ViRGF0YWJhc2VNYW5h
Z2VyKSBcCisgICAgV0VCX0RBVEFCQVNFX01BTkFHRVIobWFjcm8pIFwKICAgICBtYWNybyhXZWJE
b3dubG9hZCkgXAogICAgIG1hY3JvKFdlYkVycm9yKSBcCiAgICAgbWFjcm8oV2ViSGlzdG9yeSkg
XApJbmRleDogV2ViS2l0L3dpbi9XZWJEYXRhYmFzZU1hbmFnZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC93aW4vV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcAkocmV2aXNpb24gNDI5MzApCisrKyBX
ZWJLaXQvd2luL1dlYkRhdGFiYXNlTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYg
KzMwLDggQEAKICNpbmNsdWRlICJXZWJEYXRhYmFzZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJL
aXRETEwuaCIKIAorI2lmIEVOQUJMRShEQVRBQkFTRSkKKwogI2luY2x1ZGUgIkNGRGljdGlvbmFy
eVByb3BlcnR5QmFnLmgiCiAjaW5jbHVkZSAiQ09NRW51bVZhcmlhbnQuaCIKICNpbmNsdWRlICJN
YXJzaGFsbGluZ0hlbHBlcnMuaCIKQEAgLTM2NCwzICszNjYsNSBAQCB2b2lkIFdlYktpdFNldFdl
YkRhdGFiYXNlc1BhdGhJZk5lY2Vzc2FyCiAKICAgICBwYXRoU2V0ID0gdHJ1ZTsKIH0KKworI2Vu
ZGlmCkluZGV4OiBXZWJLaXQvd2luL1dlYkRhdGFiYXNlTWFuYWdlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC93aW4vV2ViRGF0YWJhc2VNYW5hZ2VyLmgJKHJldmlzaW9uIDQyOTMwKQorKysgV2Vi
S2l0L3dpbi9XZWJEYXRhYmFzZU1hbmFnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjks
OCBAQAogI2lmbmRlZiBXZWJEYXRhYmFzZU1hbmFnZXJfaAogI2RlZmluZSBXZWJEYXRhYmFzZU1h
bmFnZXJfaAogCisjaWYgRU5BQkxFKERBVEFCQVNFKQorCiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRh
YmFzZVRyYWNrZXJDbGllbnQuaD4KIAogI2luY2x1ZGUgIldlYktpdC5oIgpAQCAtODUsMyArODcs
NSBAQCBwcml2YXRlOgogdm9pZCBXZWJLaXRTZXRXZWJEYXRhYmFzZXNQYXRoSWZOZWNlc3Nhcnko
KTsKIAogI2VuZGlmCisKKyNlbmRpZgpJbmRleDogV2ViS2l0L3dpbi9XZWJTZWN1cml0eU9yaWdp
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJTZWN1cml0eU9yaWdpbi5jcHAJKHJl
dmlzaW9uIDQyOTMwKQorKysgV2ViS2l0L3dpbi9XZWJTZWN1cml0eU9yaWdpbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMzLDYgKzMzLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9CU3RyaW5nLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhYmFzZVRyYWNrZXIuaD4KIAorI2lmICFFTkFCTEUoREFU
QUJBU0UpCisjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CisjZW5kaWYKKwogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIC8vIFdlYlNlY3VyaXR5T3JpZ2luIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTI2LDI4
ICsxMzAsNDMgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJTZWN1cml0eU9yaQogSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJTZWN1cml0eU9yaWdpbjo6dXNhZ2UoIAogICAgIC8q
IFtyZXR2YWxdW291dF0gKi8gdW5zaWduZWQgbG9uZyBsb25nKiByZXN1bHQpCiB7CisjaWYgRU5B
QkxFKERBVEFCQVNFKQogICAgIGlmICghcmVzdWx0KQogICAgICAgICByZXR1cm4gRV9QT0lOVEVS
OwogCiAgICAgKnJlc3VsdCA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLnVzYWdlRm9yT3Jp
Z2luKG1fc2VjdXJpdHlPcmlnaW4uZ2V0KCkpOwogCiAgICAgcmV0dXJuIFNfT0s7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShyZXN1bHQpOworICAgIHJldHVybiBFX05PVElNUEw7CisjZW5kaWYK
IH0KICAgICAgICAgCiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlNlY3VyaXR5T3JpZ2lu
OjpxdW90YSggCiAgICAgLyogW3JldHZhbF1bb3V0XSAqLyB1bnNpZ25lZCBsb25nIGxvbmcqIHJl
c3VsdCkKIHsKKyNpZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAg
IHJldHVybiBFX1BPSU5URVI7CiAKICAgICAqcmVzdWx0ID0gRGF0YWJhc2VUcmFja2VyOjp0cmFj
a2VyKCkucXVvdGFGb3JPcmlnaW4obV9zZWN1cml0eU9yaWdpbi5nZXQoKSk7CiAgICAgcmV0dXJu
IFNfT0s7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShyZXN1bHQpOworICAgIHJldHVybiBFX05P
VElNUEw7CisjZW5kaWYKIH0KICAgICAgICAgCiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdl
YlNlY3VyaXR5T3JpZ2luOjpzZXRRdW90YSggCiAgICAgLyogW2luXSAqLyB1bnNpZ25lZCBsb25n
IGxvbmcgcXVvdGEpIAogeworI2lmIEVOQUJMRShEQVRBQkFTRSkKICAgICBEYXRhYmFzZVRyYWNr
ZXI6OnRyYWNrZXIoKS5zZXRRdW90YShtX3NlY3VyaXR5T3JpZ2luLmdldCgpLCBxdW90YSk7CiAK
ICAgICByZXR1cm4gU19PSzsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHF1b3RhKTsKKyAgICBy
ZXR1cm4gRV9OT1RJTVBMOworI2VuZGlmCiB9CkluZGV4OiBXZWJLaXQvd2luL1dlYlNlY3VyaXR5
T3JpZ2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJTZWN1cml0eU9yaWdpbi5oCShy
ZXZpc2lvbiA0MjkzMCkKKysrIFdlYktpdC93aW4vV2ViU2VjdXJpdHlPcmlnaW4uaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIAogICAgIHZpcnR1YWwg
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBwb3J0KCAKICAgICAgICAgLyogW3JldHZhbF1bb3V0
XSAqLyB1bnNpZ25lZCBzaG9ydCogcmVzdWx0KTsKLSAgICAgICAgCisKICAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgdXNhZ2UoIAogICAgICAgICAvKiBbcmV0dmFsXVtvdXRd
ICovIHVuc2lnbmVkIGxvbmcgbG9uZyogcmVzdWx0KTsKICAgICAgICAgCkBAIC02Niw2ICs2Niw3
IEBAIHB1YmxpYzoKICAgICAgICAgCiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExU
WVBFIHNldFF1b3RhKCAKICAgICAgICAgLyogW2luXSAqLyB1bnNpZ25lZCBsb25nIGxvbmcgcXVv
dGEpOworCiBwcml2YXRlOgogICAgIFdlYlNlY3VyaXR5T3JpZ2luKFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luKik7CiAgICAgfldlYlNlY3VyaXR5T3JpZ2luKCk7CkluZGV4OiBXZWJLaXQvd2luL1dl
YlZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViVmlldy5jcHAJKHJldmlzaW9u
IDQyOTMwKQorKysgV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE2
Nyw3ICsyMTY3LDkgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3Ojppbml0Vwog
ICAgIG1fcHJlZmVyZW5jZXMgPSBzaGFyZWRQcmVmZXJlbmNlczsKIAogICAgIEluaXRpYWxpemVM
b2dnaW5nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOworI2lmIEVOQUJMRShEQVRBQkFTRSkKICAgICBX
ZWJLaXRTZXRXZWJEYXRhYmFzZXNQYXRoSWZOZWNlc3NhcnkoKTsKKyNlbmRpZgogICAgIFdlYktp
dFNldEFwcGxpY2F0aW9uQ2FjaGVQYXRoSWZOZWNlc3NhcnkoKTsKICAgICAKICAgICBtX3BhZ2Ug
PSBuZXcgUGFnZShuZXcgV2ViQ2hyb21lQ2xpZW50KHRoaXMpLCBuZXcgV2ViQ29udGV4dE1lbnVD
bGllbnQodGhpcyksIG5ldyBXZWJFZGl0b3JDbGllbnQodGhpcyksIG5ldyBXZWJEcmFnQ2xpZW50
KHRoaXMpLCBuZXcgV2ViSW5zcGVjdG9yQ2xpZW50KHRoaXMpKTsKSW5kZXg6IFdlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHJldmlzaW9uIDQyOTMwKQor
KysgV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01MDcsNiArNTA3LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnByaW50KEZy
YW1lKiBmcmFtZQogICAgICAgICAgICAgdWlEZWxlZ2F0ZTItPnByaW50RnJhbWUobV93ZWJWaWV3
LCBraXQoZnJhbWUpKTsKIH0KIAorI2lmIEVOQUJMRShEQVRBQkFTRSkKIHZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcm
IGRhdGFiYXNlSWRlbnRpZmllcikKIHsKICAgICBDT01QdHI8V2ViU2VjdXJpdHlPcmlnaW4+IG9y
aWdpbihBZG9wdENPTSwgV2ViU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUluc3RhbmNlKGZyYW1lLT5k
b2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSk7CkBAIC01NDEsNiArNTQyLDcgQEAgdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdQogICAgICAgICB9CiAgICAgfQogfQor
I2VuZGlmCiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpwb3B1bGF0ZVZpc2l0ZWRMaW5rcygpCiB7
CkluZGV4OiBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHJl
dmlzaW9uIDQyOTMwKQorKysgV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDcgKzEwNSw5IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSopOwogCisjaWYgRU5BQkxFKERBVEFCQVNF
KQogICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUq
LCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmKTsKKyNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHBv
cHVsYXRlVmlzaXRlZExpbmtzKCk7CiAKSW5kZXg6IFdlYktpdC93eC9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L3d4L0NoYW5nZUxvZwkocmV2aXNpb24gNDMxMTIpCisrKyBXZWJLaXQv
d3gvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMDUtMDEg
IEJlbiBNdXJkb2NoICA8YmVubUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgQWRkICNpZiBFTkFCTEUoREFUQUJBU0Up
IGd1YXJkcyBhcm91bmQgZGF0YWJhc2UgY29kZSBzbyB0b2dnbGluZyBFTkFCTEVfREFUQUJBU0Ug
b2ZmIGRvZXMgbm90IGJyZWFrIGJ1aWxkcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI0Nzc2CisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0Nocm9t
ZUNsaWVudFd4LmNwcDoKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4Lmg6
CisKIDIwMDktMDQtMzAgIEtldmluIE9sbGl2aWVyICA8a2V2aW5vQHRoZW9sbGl2aWVycy5jb20+
CiAKICAgICAgICAgd3ggYnVpbGQgZml4LCByZW1vdmUgcmVmZXJlbmNlcyB0byBKU0NvcmUgc2hh
cmVkIGxpYnJhcnkuCkluZGV4OiBXZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRX
eC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50
V3guY3BwCShyZXZpc2lvbiA0MjkzMCkKKysrIFdlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9t
ZUNsaWVudFd4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzczLDEwICszNzMsMTIgQEAgdm9pZCBD
aHJvbWVDbGllbnRXeDo6cHJpbnQoRnJhbWUqKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAK
KyNpZiBFTkFCTEUoREFUQUJBU0UpCiB2b2lkIENocm9tZUNsaWVudFd4OjpleGNlZWRlZERhdGFi
YXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CisjZW5kaWYKIAogdm9pZCBDaHJvbWVDbGllbnRXeDo6c2Nyb2xsKGNvbnN0IEludFNpemUm
LCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpCiB7CkluZGV4OiBXZWJLaXQvd3gvV2Vi
S2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93eC9XZWJL
aXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgJKHJldmlzaW9uIDQyOTMwKQorKysgV2ViS2l0L3d4
L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAkod29ya2luZyBjb3B5KQpAQCAtMTEwLDgg
KzExMCw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBwcmludChGcmFtZSopOwogCisj
aWYgRU5BQkxFKERBVEFCQVNFKQogICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVv
dGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmKTsKLQorI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIHJ1
bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KTsKIAogICAgIHZpcnR1
YWwgdm9pZCBmb3JtU3RhdGVEaWRDaGFuZ2UoY29uc3QgTm9kZSopIHsgfQo=
</data>
<flag name="review"
          id="15003"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>